Skip to content

Releases: vocalpy/crowsetta

3.0.0

05 Jan 01:50
Compare
Choose a tag to compare
bump version to 3.0.0

2.3.0

03 Jan 22:30
Compare
Choose a tag to compare
bump version to 2.3.0

2.2.0

20 Apr 23:49
Compare
Choose a tag to compare
bump version to 2.2.0

2.1.0

09 Dec 02:27
Compare
Choose a tag to compare
bump version to 2.1.0 in crowsetta/__about__.py

2.0.0

17 Jul 21:14
Compare
Choose a tag to compare
bump version in crowsetta/__about__.py to 2.0.0

1.1.1

07 May 16:20
Compare
Choose a tag to compare

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

1.1.0

07 May 16:20
Compare
Choose a tag to compare

added

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

1.0.0

07 May 16:19
Compare
Choose a tag to compare

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

0.2.0a5

07 May 16:19
Compare
Choose a tag to compare
0.2.0a5 Pre-release
Pre-release

added

  • Sequence instances have attributes: labels, onsets_s, offsets_s, onsets_Hz,
    offsets_Hz, 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
      user_config dict to strings and then back again; default config just loads as
      a dict from the .json file and we add the user_config dicts to it

0.2.0a4

07 May 16:18
Compare
Choose a tag to compare
0.2.0a4 Pre-release
Pre-release

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