Recent Releases of Crowsetta

Crowsetta - 5.1.2

What's Changed

  • Fix Annotation.init to handle length-zero Sequence, fixes #290 by @NickleDave in https://github.com/vocalpy/crowsetta/pull/291

Full Changelog: https://github.com/vocalpy/crowsetta/compare/5.1.1...5.1.2

Scientific Software - Peer-reviewed - Python
Published by NickleDave 11 months ago

Crowsetta - 5.1.1

What's Changed

  • CLN: Fix pandera imports, fixes #285 by @NickleDave in https://github.com/vocalpy/crowsetta/pull/286
  • DEV: Require python gte 3p11 bump lower bounds scipy stack by @NickleDave in https://github.com/vocalpy/crowsetta/pull/289

Full Changelog: https://github.com/vocalpy/crowsetta/compare/5.1.0...5.1.1

Scientific Software - Peer-reviewed - Python
Published by NickleDave 11 months ago

Crowsetta - 5.1.0

What's Changed

  • Version 5.1 by @NickleDave in https://github.com/vocalpy/crowsetta/pull/280

Full Changelog: https://github.com/vocalpy/crowsetta/compare/5.0.3...5.1.0

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 1 year ago

Crowsetta - 5.0.3

What's Changed

  • BUG: Rename pandera.SchemaModel -> DataFrameModel, fix #265 by @NickleDave in https://github.com/vocalpy/crowsetta/pull/266
  • DEV: Bump lower bound on requires python to >=3.10 by @NickleDave in https://github.com/vocalpy/crowsetta/pull/268

Full Changelog: https://github.com/vocalpy/crowsetta/compare/5.0.2...5.0.3

Scientific Software - Peer-reviewed - Python
Published by NickleDave almost 2 years ago

Crowsetta - 5.0.2

What's Changed

  • docs: add sammlapp as a contributor for ideas by @allcontributors in https://github.com/vocalpy/crowsetta/pull/260
  • CLN/MAINT: Vendor code, fix #262 by @NickleDave in https://github.com/vocalpy/crowsetta/pull/263

Full Changelog: https://github.com/vocalpy/crowsetta/compare/5.0.1...5.0.2

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 2 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 3 years ago

Crowsetta - 3.4.3

What's Changed

  • Revert "Remove exceptions from birdsongrec.py" by @NickleDave in https://github.com/vocalpy/crowsetta/pull/256

Full Changelog: https://github.com/vocalpy/crowsetta/compare/3.4.2...3.4.3

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 3 years ago

Crowsetta - 3.4.2

What's Changed

  • Remove exceptions from birdsongrec.py by @NickleDave in https://github.com/vocalpy/crowsetta/pull/254

Full Changelog: https://github.com/vocalpy/crowsetta/compare/3.4.1...3.4.2

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 3 years ago

Crowsetta -

5.0.0 -- 2023-03-29

This release is the approved version after a successful pyOpenSci review! :tada: https://github.com/pyOpenSci/software-submission/issues/68#issuecomment-1487440398

Added

  • Add information on contributing and setting up a development environment #212. Fixes #30.
  • Add method to convert generic sequence format to a pandas DataFrame #216.
  • Add additional vignettes to docs: on removing "silent" labels from TextGrid annotations, on converting to the simple sequence and generic sequence formats #216. Fixes #152 and #197.
  • Add format class for Audacity extended label track format #226. Fixes #222 and #213.
  • Add the ability for a crowsetta.Annotation to have multiple sequences #243. Fixes #42.
  • Rewrite TextGrid class to better handle file formats: parse both "short" and default format in either UTF-8 or UTF-16 encoding; remove empty intervals from interval tiers by default; can convert multiple interval tiers to a single crowsetta.Annotation with multiple crowsetta.Sequences #243. Fixes #241

Removed

  • Remove Segment.from_row method, no longer used #232. Fixes #231

Fixed

  • Revise landing page of docs, and some vignettes. Make other changes to clean up the docs build process #216.
  • Coerce path-like attributes of GenericSeq dataframe schema to be strings. This helps ensure these columns are always native Pandas types #237.
  • Fix how the crowsetta.Segment class converts onset sample and offset sample to int; correctly handle multiple numpy integer subtypes #238.

Huge thank yous to pyOpenSci reviewers @rhine3 @shaupert and to @YannickJadoul for your expert opinions on all things Praat TextGrid, and to @cmarmo for being the editor that brought it all together. Really appreciate all your contributions and the time you all put into this.

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 3 years ago

Crowsetta -

Second release candidate during pyOpenSci review

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 3 years ago

Crowsetta -

Initial release candidate during pyOpenSci review

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 3 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave almost 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave almost 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave almost 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 4 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 5 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 5 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 5 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 5 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 5 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 5 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 6 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 6 years ago

Crowsetta -

Scientific Software - Peer-reviewed - Python
Published by NickleDave almost 7 years ago

Crowsetta -

changed

  • segments property of a Sequence is a tuple, not a list, so that class is immutable + hashable

fixed

  • __hash__ implementation for Sequence class
    • convert attributes that are numpy.ndarrays into tuples before hashing
  • tests for Sequence
    • no longer assert that calling __hash__ raises NotImplementedError
    • test that segments attribute is a tuple not a list

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 7 years ago

Crowsetta -

added

  • implement hashing and equality for Sequence class
    • this makes it possible to use with concurrency, e.g. with the Dask library

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 7 years ago

Crowsetta -

added

  • entry point group crowsetta.format to make it possible to 'install' formats
    • removes special casing for built-in formats, they just get added via entry point
    • instead of parsing a config.json file built into the package
  • module for working with Praat Textgrid format
  • Meta class which represents metadata about a format
    • such as file extension associated with it
    • and the module / functions that a Transcriber instance should use to work with this format

changed

  • Each instance of Transcriber has only one vocal annotation format that it handles
    • because it's annoying to type file_format every time you call a method like to_seq
    • instead you just make an instance of Transcriber for each format you want
    • This also works better with crowsetta.format entry points and Meta class; when you instantiate a Transcriber for a given voc_format, the __init__ uses the Meta for that format to figure out which function to use for to_seq, to_csv, etc.
    • For this reason bumping to 1.0.0, new Transcriber not backwards compatible
    • although this will be inconvenient for millions of people

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 7 years ago

Crowsetta -

added

  • Sequence instances have attributes: labels, onsetss, offsetss, onsetsHz, offsetsHz, and file.
  • Explanation of default to_csv function for user formats in howto-user-config.

changed

  • Sequence class totally re-written
    • no longer attrs-based
    • because of somewhat complicated logic for validating arguments that was necessary in init (to prevent user from creating a 'bad' instance.)
  • Sequences are immutable. Idea is they are just connectors between annotation and whatever user needs to do with it so you shouldn't need to change any attribute values after loading annotation
  • Segment also immutable (by setting frozen=True in call to attr.s decorator)
  • Transcriber.init uses config.json instead of config.ini to read defaults
    • this makes init logic more readable since we don't have to convert userconfig dict to strings and then back again; default config just loads as a dict from the .json file and we add the userconfig dicts to it

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 7 years ago

Crowsetta -

added

  • data module that downloads small example datasets for each annotation format
    • includes formats function that is imported at package level and prints formats built in to crowsetta
  • to_seq_func_to_csv that takes a yourformat2seq function and returns a function that will convert the same format to csv files (just a wrapper around your function and seq2csv)
  • for docs, Makefile that generates ./notebooks folder from ./doc/notebooks

changed

  • major revamp of docs
  • config_dicts for user_config arg of Transcriber.init only require module and to_seq keys; to_csv and to_format are optional, can be specified Python None or a string 'None'

fixed

  • Transcriber raises NotImplemented error when to_csv or to_format are None for a specified format (instead of crashing mysteriously)
  • seq2csv and csv2seq can deal with None values for one pair of onsets and offsets

Scientific Software - Peer-reviewed - Python
Published by NickleDave about 7 years ago

Crowsetta -

changed

  • fix failing tests

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 7 years ago

Crowsetta -

added

  • Segment class, attrs-based
    • has asdict method (wrapper around attrs function)
    • has class variable _FIELDS which is used in any place where we need to know how to go from Segment attributes to rows of a csv file, e.g. in src/crowsetta/csv.py and in tests

changed

  • Sequence class is now attrs-based, has factory functions, is itself just a list of Segments
    • now has to_dict method
  • Crowsetta class is now called Transcriber

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 7 years ago

Crowsetta -

added

  • add Crowsetta class with simple interface for converting any annotation to
  • add ability to work with user-defined functions
    • user passes an extra_config dict when instantiating Crowsetta
  • add docs

changed

  • change package name to Crowsetta
  • change function names so they are all format2seq or format2csv or toformat for consistency

Scientific Software - Peer-reviewed - Python
Published by NickleDave over 7 years ago