vocalpy / crowsetta

A tool to work with any format for annotating vocalizations
https://crowsetta.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
49 stars 3 forks source link

ENH: Add `from_annot` and/or `from_seq` / `from_bbox` classmethods to format classes? #208

Open NickleDave opened 1 year ago

NickleDave commented 1 year ago

One can make a format from a sequence by unpacking keywords one-by-one, but why not provide a classmethod as a convenience method that does this on a per-class basis? (Since some will require diff't keywords depending on their attributes)

For seq formats, the from_annot method can just check that it has a seq attribute and then call from_seq with that attribute. Same for a bbox format, except we check for a bbox attribute.

This also makes the use case easier where one wants to convert back to a method -- e.g., I have a Sequence (or Annotation with a seq). As in #207, I could write NotMat.from_seq(seq).to_notmat(notmat_path).