Added
- add Raven format
[164](https://github.com/NickleDave/crowsetta/pull/164).
Fixes [84](https://github.com/NickleDave/crowsetta/issues/84).
- add example data
[180](https://github.com/NickleDave/crowsetta/pull/180).
Fixes [90](https://github.com/NickleDave/crowsetta/issues/90).
- add examples to docstrings, using example data
[180](https://github.com/NickleDave/crowsetta/pull/180).
Fixes [158](https://github.com/NickleDave/crowsetta/issues/158).
- import `register_format` at top level of package,
to be able to just write `crowsetta.register_format`
[181](https://github.com/NickleDave/crowsetta/pull/181).
Fixes [177](https://github.com/NickleDave/crowsetta/issues/177).
- add `'aud-txt'` format, for Audacity standard LabelTracks exported to .txt files
[183](https://github.com/NickleDave/crowsetta/pull/183).
Fixes [96](https://github.com/NickleDave/crowsetta/issues/96).
- add ability to extract example data to local file system;
avoids need to use context manager returned by `importlib.resources`
to access the example data files.
[185](https://github.com/NickleDave/crowsetta/pull/185).
Fixes [184](https://github.com/NickleDave/crowsetta/issues/184).
- add logo
[198](https://github.com/NickleDave/crowsetta/pull/198).
Fixes [17](https://github.com/NickleDave/crowsetta/issues/17).
Changed
- change `Annotation` class to represent both sequence-like
annotation formats and bounding box-like annotation formats
[164](https://github.com/NickleDave/crowsetta/pull/164).
Resolves [149](https://github.com/NickleDave/crowsetta/issues/149)
and [150](https://github.com/NickleDave/crowsetta/issues/150).
- re-design API, and rewrite annotation formats as classes
[161](https://github.com/NickleDave/crowsetta/pull/161).
+ Re-writing as classes fixes [99](https://github.com/NickleDave/crowsetta/issues/99).
+ API re-design fixes [120](https://github.com/NickleDave/crowsetta/issues/120).
+ Adds an `interface` sub-package that specifies an interface for two
types of annotations: *sequence-like* and *bounding-box like*.
Fixes [105](https://github.com/NickleDave/crowsetta/issues/105)
+ All existing annotation formats were sequence-like, and they now
adhere to that interface; the classes are registered as sub-classes.
+ Some classes were additionally re-factored; e.g.
+ `'generic-seq'` now uses `pandas` (fixes [63](https://github.com/NickleDave/crowsetta/issues/63))
+ `'simple-seq'` can parse multiple formats (fixes [134](https://github.com/vocalpy/crowsetta/issues/134))
+ Formats themselves are now in a `formats` sub-package,
fixes [109](https://github.com/NickleDave/crowsetta/issues/109)
+ Add better functions to list the formats in this sub-package
(fixes [92](https://github.com/NickleDave/crowsetta/issues/92));
can call `crowsetta.formats.as_list` to get a list of shorthand string names,
and `crowsetta.formats.by_name` with the shorthand string name to get back
to the corresponding class.
+ `Transcriber.from_file` now returns an instance of an annotation format classes.
Methods like `to_annot` can be called on this instance.
This refactor greatly simplifies the `Transcriber` class while maintaining mostly
the same API (now need to chain calls like `Transcriber.from_file().to_annot()`,
or capture the returned annotation instance in a variable and use it instead).
Fixes [144](https://github.com/NickleDave/crowsetta/issues/144).
- convert docs to markdown and use `myst-parser`
[153](https://github.com/NickleDave/crowsetta/pull/153).
Fixes [151](https://github.com/NickleDave/crowsetta/issues/151).
- require Python >= 3.8
to adhere to [NEP-29]()
[168](https://github.com/NickleDave/crowsetta/pull/168).
Fixes [166](https://github.com/NickleDave/crowsetta/issues/166).
- rename `Annotation.audio_path` attribute to `notated_path`
to be more general, e.g., because annotations can also annotate
a spectrogram
[169](https://github.com/NickleDave/crowsetta/pull/169).
Fixes [148](https://github.com/NickleDave/crowsetta/issues/148).
- rename `onset_ind` and `offset_ind` to `onset_sample` and
`offset_sample` for clarity
[174](https://github.com/NickleDave/crowsetta/pull/174).
Fixes [156](https://github.com/NickleDave/crowsetta/issues/156).
- rename first parameter of `from_file` method for all format classes
to `annot_path` for consistency.
[182](https://github.com/NickleDave/crowsetta/pull/182).
Fixes [178](https://github.com/NickleDave/crowsetta/issues/178).
- Revise documentation
[191](https://github.com/NickleDave/crowsetta/pull/191).
Fixes [152](https://github.com/NickleDave/crowsetta/issues/152) as well as
[21](https://github.com/NickleDave/crowsetta/issues/21),
[35](https://github.com/NickleDave/crowsetta/issues/35),
[138](https://github.com/NickleDave/crowsetta/issues/138),
and [157](https://github.com/NickleDave/crowsetta/issues/157).
- have `formats.as_list` return list `sorted` (i.e., alphabetically)
[194](https://github.com/NickleDave/crowsetta/pull/194).
Fixes [187](https://github.com/NickleDave/crowsetta/issues/187).
Fixed
- fix `crowsetta.formats.register_format` function added in
[161](https://github.com/NickleDave/crowsetta/pull/161)
and rewrite example custom annotation formats
to use it
[176](https://github.com/NickleDave/crowsetta/pull/176).
Fixes [119](https://github.com/NickleDave/crowsetta/issues/119).
Removed
- remove `Stack` class -- was not being used
[172](https://github.com/NickleDave/crowsetta/pull/172).
Fixes [170](https://github.com/NickleDave/crowsetta/issues/170).
- remove deprecated `'csv'` format that was replaced by `'generic-seq'`
[173](https://github.com/NickleDave/crowsetta/pull/173).
Fixes [171](https://github.com/NickleDave/crowsetta/issues/171).
- remove `Meta` class -- no longer used
[193](https://github.com/NickleDave/crowsetta/pull/193).
Fixes [190](https://github.com/NickleDave/crowsetta/issues/190).