DiMCAT Errors#

This notebook is a collection of errors. It serves as a resource to look up explanations for various kinds of errors and for other parts of the documentation to link to.

import dimcat as dc

package_path = "dcml_corpora.datapackage.json"
dataset = dc.Dataset.from_package(package_path)
dataset
Dataset
=======
{'inputs': {'basepath': None,
            'packages': {'dcml_corpora': ["'dcml_corpora.measures' (MuseScoreMeasures)",
                                          "'dcml_corpora.notes' (MuseScoreNotes)",
                                          "'dcml_corpora.expanded' (MuseScoreHarmonies)",
                                          "'dcml_corpora.chords' (MuseScoreChords)",
                                          "'dcml_corpora.metadata' (Metadata)"]}},
 'outputs': {'basepath': None, 'packages': {}},
 'pipeline': []}

DimcatConfig Errors#

Invalid dtype#

config = dc.DimcatConfig(dtype="Bananas")
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:757, in get_class(name)
    756 try:
--> 757     return DimcatObject._registry[name]
    758 except KeyError:

KeyError: 'Bananas'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:763, in get_class(name)
    760     lower_case_registry = {
    761         name.lower(): cls for name, cls in DimcatObject._registry.items()
    762     }
--> 763     return lower_case_registry[name.lower()]
    764 except KeyError:

KeyError: 'bananas'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:562, in DimcatConfig.__init__(self, options, dtype, **kwargs)
    561 try:
--> 562     dtype_str = get_class(dtype).name
    563 except KeyError:

File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:765, in get_class(name)
    764 except KeyError:
--> 765     raise KeyError(
    766         f"{name!r} is not among the registered DimcatObjects:\n{sorted(DimcatObject._registry.keys())}"
    767     )

KeyError: "'Bananas' is not among the registered DimcatObjects:\n['AnalyzedDataset', 'Analyzer', 'Annotations', 'AnnotationsFacet', 'Articulation', 'BassNotes', 'BigramAnalyzer', 'CadenceCounter', 'CadenceCounts', 'CadenceLabels', 'ColumnGrouper', 'ControlsFacet', 'CorpusFilter', 'CorpusGrouper', 'Counter', 'Counts', 'CriterionGrouper', 'CulledPrevalenceMatrix', 'CulledRelativePrevalenceMatrix', 'CustomPieceGrouper', 'Data', 'Dataset', 'DcmlAnnotations', 'DimcatCatalog', 'DimcatConfig', 'DimcatIndex', 'DimcatPackage', 'DimcatResource', 'DimcatSettings', 'Durations', 'EventsFacet', 'Facet', 'Feature', 'FeatureDimensionsSlicer', 'FeatureExtractor', 'FeatureProcessingStep', 'GroupedAnalyzedDataset', 'GroupedDataset', 'Grouper', 'GroupwisePrevalenceMatrix', 'HarmonyLabelSlicer', 'HarmonyLabels', 'HasCadenceAnnotationsFilter', 'HasCadenceAnnotationsGrouper', 'HasHarmonyLabelsFilter', 'HasHarmonyLabelsGrouper', 'InputsCatalog', 'KeyAnnotations', 'KeySlicer', 'Loader', 'MappingGrouper', 'MeasureGrouper', 'Measures', 'Metadata', 'ModeGrouper', 'MuseScoreChords', 'MuseScoreFacet', 'MuseScoreHarmonies', 'MuseScoreLoader', 'MuseScoreMeasures', 'MuseScoreNotes', 'MuseScorePackage', 'Music21Loader', 'NgramAnalyzer', 'NgramTable', 'NgramTuples', 'Notes', 'OutputsCatalog', 'Package', 'PackageLoader', 'PathPackage', 'PathResource', 'PhraseAnnotations', 'PhraseComponents', 'PhraseData', 'PhraseDataAnalyzer', 'PhraseLabels', 'PhraseSlicer', 'PieceFilter', 'PieceGrouper', 'PieceIndex', 'Pipeline', 'PipelineStep', 'PitchClassVectors', 'PrevalenceAnalyzer', 'PrevalenceMatrix', 'Proportions', 'RelativePrevalenceMatrix', 'Resource', 'ResourceTransformation', 'Result', 'ScoreLoader', 'ScorePathPackage', 'SliceIntervals', 'SlicedAnalyzedDataset', 'SlicedDataset', 'SlicedGroupedAnalyzedDataset', 'SlicedGroupedDataset', 'Slicer', 'StructureFacet', 'Transitions', 'YearGrouper', '_IdGrouper']"

During handling of the above exception, another exception occurred:

ValidationError                           Traceback (most recent call last)
Cell In[2], line 1
----> 1 config = dc.DimcatConfig(dtype="Bananas")

File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:564, in DimcatConfig.__init__(self, options, dtype, **kwargs)
    562         dtype_str = get_class(dtype).name
    563     except KeyError:
--> 564         raise mm.ValidationError(error_msg)
    565 else:
    566     raise mm.ValidationError(error_msg)

ValidationError: 'dtype' key needs to be the name of a DimcatObject, not 'Bananas'. Registry:
{'DimcatConfig': <class 'dimcat.base.DimcatConfig'>, 'DimcatSettings': <class 'dimcat.base.DimcatSettings'>, 'Data': <class 'dimcat.data.base.Data'>, 'Resource': <class 'dimcat.data.resources.base.Resource'>, 'PathResource': <class 'dimcat.data.resources.base.PathResource'>, 'DimcatResource': <class 'dimcat.data.resources.dc.DimcatResource'>, 'DimcatIndex': <class 'dimcat.data.resources.dc.DimcatIndex'>, 'SliceIntervals': <class 'dimcat.data.resources.dc.SliceIntervals'>, 'PieceIndex': <class 'dimcat.data.resources.dc.PieceIndex'>, 'Feature': <class 'dimcat.data.resources.dc.Feature'>, 'Result': <class 'dimcat.data.resources.results.Result'>, 'Counts': <class 'dimcat.data.resources.results.Counts'>, 'CadenceCounts': <class 'dimcat.data.resources.results.CadenceCounts'>, 'Durations': <class 'dimcat.data.resources.results.Durations'>, 'NgramTable': <class 'dimcat.data.resources.results.NgramTable'>, 'NgramTuples': <class 'dimcat.data.resources.results.NgramTuples'>, 'PhraseData': <class 'dimcat.data.resources.results.PhraseData'>, 'Transitions': <class 'dimcat.data.resources.results.Transitions'>, 'PrevalenceMatrix': <class 'dimcat.data.resources.results.PrevalenceMatrix'>, 'RelativePrevalenceMatrix': <class 'dimcat.data.resources.results.RelativePrevalenceMatrix'>, 'GroupwisePrevalenceMatrix': <class 'dimcat.data.resources.results.GroupwisePrevalenceMatrix'>, 'CulledPrevalenceMatrix': <class 'dimcat.data.resources.results.CulledPrevalenceMatrix'>, 'CulledRelativePrevalenceMatrix': <class 'dimcat.data.resources.results.CulledRelativePrevalenceMatrix'>, 'Metadata': <class 'dimcat.data.resources.features.Metadata'>, 'Annotations': <class 'dimcat.data.resources.features.Annotations'>, 'DcmlAnnotations': <class 'dimcat.data.resources.features.DcmlAnnotations'>, 'HarmonyLabels': <class 'dimcat.data.resources.features.HarmonyLabels'>, 'BassNotes': <class 'dimcat.data.resources.features.BassNotes'>, 'CadenceLabels': <class 'dimcat.data.resources.features.CadenceLabels'>, 'KeyAnnotations': <class 'dimcat.data.resources.features.KeyAnnotations'>, 'PhraseAnnotations': <class 'dimcat.data.resources.features.PhraseAnnotations'>, 'PhraseComponents': <class 'dimcat.data.resources.features.PhraseComponents'>, 'PhraseLabels': <class 'dimcat.data.resources.features.PhraseLabels'>, 'Articulation': <class 'dimcat.data.resources.features.Articulation'>, 'Notes': <class 'dimcat.data.resources.features.Notes'>, 'Measures': <class 'dimcat.data.resources.features.Measures'>, 'Facet': <class 'dimcat.data.resources.facets.Facet'>, 'EventsFacet': <class 'dimcat.data.resources.facets.EventsFacet'>, 'ControlsFacet': <class 'dimcat.data.resources.facets.ControlsFacet'>, 'AnnotationsFacet': <class 'dimcat.data.resources.facets.AnnotationsFacet'>, 'StructureFacet': <class 'dimcat.data.resources.facets.StructureFacet'>, 'MuseScoreFacet': <class 'dimcat.data.resources.facets.MuseScoreFacet'>, 'MuseScoreChords': <class 'dimcat.data.resources.facets.MuseScoreChords'>, 'MuseScoreHarmonies': <class 'dimcat.data.resources.facets.MuseScoreHarmonies'>, 'MuseScoreMeasures': <class 'dimcat.data.resources.facets.MuseScoreMeasures'>, 'MuseScoreNotes': <class 'dimcat.data.resources.facets.MuseScoreNotes'>, 'Package': <class 'dimcat.data.packages.base.Package'>, 'PathPackage': <class 'dimcat.data.packages.base.PathPackage'>, 'DimcatPackage': <class 'dimcat.data.packages.dc.DimcatPackage'>, 'ScorePathPackage': <class 'dimcat.data.packages.score.ScorePathPackage'>, 'MuseScorePackage': <class 'dimcat.data.packages.score.MuseScorePackage'>, 'DimcatCatalog': <class 'dimcat.data.catalogs.base.DimcatCatalog'>, 'InputsCatalog': <class 'dimcat.data.catalogs.inputs.InputsCatalog'>, 'OutputsCatalog': <class 'dimcat.data.catalogs.outputs.OutputsCatalog'>, 'Dataset': <class 'dimcat.data.datasets.base.Dataset'>, 'SlicedGroupedAnalyzedDataset': <class 'dimcat.data.datasets.processed.SlicedGroupedAnalyzedDataset'>, 'SlicedGroupedDataset': <class 'dimcat.data.datasets.processed.SlicedGroupedDataset'>, 'SlicedAnalyzedDataset': <class 'dimcat.data.datasets.processed.SlicedAnalyzedDataset'>, 'GroupedAnalyzedDataset': <class 'dimcat.data.datasets.processed.GroupedAnalyzedDataset'>, 'SlicedDataset': <class 'dimcat.data.datasets.processed.SlicedDataset'>, 'GroupedDataset': <class 'dimcat.data.datasets.processed.GroupedDataset'>, 'AnalyzedDataset': <class 'dimcat.data.datasets.processed.AnalyzedDataset'>, 'PipelineStep': <class 'dimcat.steps.base.PipelineStep'>, 'FeatureProcessingStep': <class 'dimcat.steps.base.FeatureProcessingStep'>, 'ResourceTransformation': <class 'dimcat.steps.base.ResourceTransformation'>, 'Analyzer': <class 'dimcat.steps.analyzers.base.Analyzer'>, 'Counter': <class 'dimcat.steps.analyzers.counters.Counter'>, 'CadenceCounter': <class 'dimcat.steps.analyzers.counters.CadenceCounter'>, 'NgramAnalyzer': <class 'dimcat.steps.analyzers.counters.NgramAnalyzer'>, 'BigramAnalyzer': <class 'dimcat.steps.analyzers.counters.BigramAnalyzer'>, 'PhraseDataAnalyzer': <class 'dimcat.steps.analyzers.phrases.PhraseDataAnalyzer'>, 'PrevalenceAnalyzer': <class 'dimcat.steps.analyzers.prevalence.PrevalenceAnalyzer'>, 'Proportions': <class 'dimcat.steps.analyzers.proportions.Proportions'>, 'PitchClassVectors': <class 'dimcat.steps.analyzers.proportions.PitchClassVectors'>, 'FeatureExtractor': <class 'dimcat.steps.extractors.base.FeatureExtractor'>, 'Grouper': <class 'dimcat.steps.groupers.base.Grouper'>, '_IdGrouper': <class 'dimcat.steps.groupers.base._IdGrouper'>, 'CorpusGrouper': <class 'dimcat.steps.groupers.base.CorpusGrouper'>, 'PieceGrouper': <class 'dimcat.steps.groupers.base.PieceGrouper'>, 'MappingGrouper': <class 'dimcat.steps.groupers.base.MappingGrouper'>, 'CriterionGrouper': <class 'dimcat.steps.groupers.base.CriterionGrouper'>, 'CustomPieceGrouper': <class 'dimcat.steps.groupers.base.CustomPieceGrouper'>, 'HasCadenceAnnotationsGrouper': <class 'dimcat.steps.groupers.annotations.HasCadenceAnnotationsGrouper'>, 'HasHarmonyLabelsGrouper': <class 'dimcat.steps.groupers.annotations.HasHarmonyLabelsGrouper'>, 'ColumnGrouper': <class 'dimcat.steps.groupers.columns.ColumnGrouper'>, 'MeasureGrouper': <class 'dimcat.steps.groupers.columns.MeasureGrouper'>, 'ModeGrouper': <class 'dimcat.steps.groupers.columns.ModeGrouper'>, 'YearGrouper': <class 'dimcat.steps.groupers.metadata.YearGrouper'>, 'CorpusFilter': <class 'dimcat.steps.filters.base.CorpusFilter'>, 'PieceFilter': <class 'dimcat.steps.filters.base.PieceFilter'>, 'HasCadenceAnnotationsFilter': <class 'dimcat.steps.filters.annotations.HasCadenceAnnotationsFilter'>, 'HasHarmonyLabelsFilter': <class 'dimcat.steps.filters.annotations.HasHarmonyLabelsFilter'>, 'Loader': <class 'dimcat.steps.loaders.base.Loader'>, 'PackageLoader': <class 'dimcat.steps.loaders.base.PackageLoader'>, 'ScoreLoader': <class 'dimcat.steps.loaders.base.ScoreLoader'>, 'Music21Loader': <class 'dimcat.steps.loaders.m21.Music21Loader'>, 'MuseScoreLoader': <class 'dimcat.steps.loaders.musescore.MuseScoreLoader'>, 'Slicer': <class 'dimcat.steps.slicers.base.Slicer'>, 'FeatureDimensionsSlicer': <class 'dimcat.steps.slicers.feature_dimensions.FeatureDimensionsSlicer'>, 'HarmonyLabelSlicer': <class 'dimcat.steps.slicers.feature_dimensions.HarmonyLabelSlicer'>, 'KeySlicer': <class 'dimcat.steps.slicers.feature_dimensions.KeySlicer'>, 'PhraseSlicer': <class 'dimcat.steps.slicers.feature_dimensions.PhraseSlicer'>, 'Pipeline': <class 'dimcat.steps.pipelines.base.Pipeline'>}

Invalid option#

The Counter analyzer has no option called invalid_option.

config = dc.DimcatConfig(dtype="Counter", invalid_option="Notes")
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
Cell In[3], line 1
----> 1 config = dc.DimcatConfig(dtype="Counter", invalid_option="Notes")

File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:573, in DimcatConfig.__init__(self, options, dtype, **kwargs)
    571 report = self.validate(partial=True)
    572 if report:
--> 573     raise mm.ValidationError(
    574         f"{self.options_schema}: Cannot instantiate DimcatConfig with dtype={dtype!r} and invalid options:"
    575         f"\n{report}"
    576         f"\n\nOPTIONS:\n{pformat(self._options, sort_dicts=False)}"
    577     )

ValidationError: Counter.Schema(many=False): Cannot instantiate DimcatConfig with dtype='Counter' and invalid options:
{'invalid_option': ['Unknown field.']}

OPTIONS:
{'invalid_option': 'Notes', 'dtype': 'Counter'}

The Notes features has an option called format, but it does not accept the value "bananas".

config = dc.DimcatConfig(dtype="Notes", format="bananas")
---------------------------------------------------------------------------
ValidationError                           Traceback (most recent call last)
Cell In[4], line 1
----> 1 config = dc.DimcatConfig(dtype="Notes", format="bananas")

File ~/checkouts/readthedocs.org/user_builds/dimcat/envs/stable/lib/python3.10/site-packages/dimcat/base.py:573, in DimcatConfig.__init__(self, options, dtype, **kwargs)
    571 report = self.validate(partial=True)
    572 if report:
--> 573     raise mm.ValidationError(
    574         f"{self.options_schema}: Cannot instantiate DimcatConfig with dtype={dtype!r} and invalid options:"
    575         f"\n{report}"
    576         f"\n\nOPTIONS:\n{pformat(self._options, sort_dicts=False)}"
    577     )

ValidationError: Notes.Schema(many=False): Cannot instantiate DimcatConfig with dtype='Notes' and invalid options:
{'format': ['Must be one of: NAME, FIFTHS, MIDI.']}

OPTIONS:
{'format': 'bananas', 'dtype': 'Notes'}