Skip to content

v3.0.0

Choose a tag to compare

@github-actions github-actions released this 13 Dec 02:41
227a3b8

3.0.0 (2023-12-13)

⚠ BREAKING CHANGES

  • eliminates .apply_steps() in favour of a single .apply_step(*step), that is, with variadic argument. For backward compatibility, the method still accepts a single list or tuple

Features

  • adds four additional columns to HarmonyLabels and BassNotes which contain the (main) chord tones expressed as scale degrees (396dce9)
  • adds Result.compute_entropy() and Transitions.compute_information_gain() (c1257a8)
  • AdjacencyGroupSlicers now process the required_feature during .fit_to_dataset(), store it as property .slice_metadata and join it onto any processed Metadata object. In the future, there could also be a mode where this metadata is joined onto any processed feature. (cea586e)
  • empowers NgramTable to make_bi/ngram_tables and NgramTuples with components made up from different columns and with individual join_str and fillna settings (c8488cf)
  • enables adding context_columns for the NgramTable's methods .get_bi/ngram_tuples() and get_bi/ngram_table(). The NgramAnalyzer therefore adds the relevant column names in post-processing. (fe7ee3a)
  • enables applying Slicers to Metadata by joining them on the SliceIntervals (DimcatIndex) (a4c3929)
  • enables dropping ngram rows which include/correspond to terminals (89a2552)
  • enables the detailed control of terminals which may differ for different n-gram components (except the first one). (f6a807f)
  • HarmonyLabels and BassNotes features now come with an intervals_over_bass and (for the former) with an intervals_over_root column (be8d06d)
  • includes "root" as auxiliary column for BassNotes (3f7bd35)
  • makes the 'data' argument to PipelineStep.process() a variadic one, too (concordant with .apply_step()), while still accepting a single argument that can be a list or tuple (7a37aaa)
  • Metadata.get_composition_years() now with 'group_cols' parameter to compute composition year means of groups (e.g. corpora) (fef9860)
  • methods .make_ngram_table() and .make_bigram_table() of NgramTable now actually return a new NgramTable, whereas the previous functions of that name (which returned dataframes) have been renamed to .make_bigram_df() and .make_ngram_df(). (8dbff20)
  • NgramTable gets the convenience method .compute_information_gain() to skip an intermediate call to .get_transitions() (5b37414)
  • NgramTable._get_transitions() is cached and now complete with the terminal_symbols argument (bd12568)
  • reduces the amount of parentheses in n-grams by not turning 'single' components (with only one column) into tuples (02f91d4)
  • streamlines turning n-grams into strings and allows for doing it recursively (useful when columns making up n-gram components contain tuples themselves) (745df2e)

Bug Fixes

  • adapts scipy.stats.entropy() to fix bug caused by pd.Float64Dtype (4938170)
  • allow DimcatResource.filter_index_level() to just drop the level without filtering rows (5c07d97)
  • applying a Grouper needs to be an inner join. Also, the index levels should come in systematic order, first the grouper levels, then the remaining ones (8f80fc2)
  • enables (de-)serialization for Filter objects (976c179)
  • fills up missing 'quarterbeats_all_endings' column for older parts of the dataset (390e0a5)
  • Groupers that use metadata now should use Dataset.get_metadata(raw=True) (5d35b20)
  • grouping by a single level that contains tuples resulted in several levels in the resulting MultiIndex; this fix applied for completeness before the whole function is simplified (0ed6091)
  • NgramTable.get_default_analysis() returns Transitions (b90f0ae)
  • omit duplicate computation of 'proportions' by Transitions._sort_combined_result() (2f09bbb)
  • raise NotImplementedError when trying to use convenience methods directly on Transitions object (7cf61c4)
  • re-inserts missing import (02bd96c)
  • singular ngram_components should also become strings (even if they are not joined on 'join_str') (3987162)
  • when an index level is dropped, make sure to remove it from the default_groupby (260f8f1)
  • when applying a Filter with drop_level=True, do not turn a Dataset into a GroupedDataset (as per virtue of the respective parent Grouper) (937002c)
  • when Counter is used with smallest_unit=GROUP, it recurs to self.compute() (737b6a6)

Reverts

  • eliminates .apply_steps() in favour of a single .apply_step(*step), that is, with variadic argument. For backward compatibility, the method still accepts a single list or tuple (fab8e13)