Crowsetta

Latest version: v5.1.0

Safety actively analyzes 682532 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 4 of 5

2.1.0

changed
- modify functions for `.not.mat` annotation files (created by evsonganaly GUI)
so they do not require other files such as `.rec` files (created by evTAF data
acquisition program)
- `notmat.notmat2annot` no longer looks for `.rec` files, which it used to get
the sampling rate and convert onsets and offsets from seconds to Hz
- the `make_notmat` for creating `.not.mat` files from `Annotation`s also
now expects onsets and offsets in seconds, not Hz.
+ the idea being that one can go from `.not.mat` to `Annotation` and back
without doing any extra conversion. If user needs conversion to Hz for
some other reason they can do this using the `Annotation`

2.0.0

added
- add `Annotation` class
+ which has 'audio_file' and 'annot_file' attributes,
along with 'seq' attribute

changed
- rewrite everything centered around `Annotation` class
+ meaning `Sequence` and `Segment` lose their redundant 'file'
attributes and all format modules convert to and from `Annotations`
and so does the csv module
- single-source version
+ now found in an `__about__.py` file in `src/crowsetta` that is used
by `setup.py`.

1.1.1

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.ndarray`s 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

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

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

added
- Sequence instances have attributes: labels, onsets_s, offsets_s, onset_inds,
offset_inds, 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

Page 4 of 5

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.