Source code for musif.extract.features.prefix

from musif.extract.constants import DATA_PART_ABBREVIATION, DATA_SOUND_ABBREVIATION


[docs]def get_part_prefix(part_abbreviation: str) -> str: """ Returns prefix name for a specific part given instrument's abbreviation Example 'vnI' -> 'PartVnI_' Parameters ---------- part_abbreviation: str String that represents the abbreviated name of an instrument """ if part_abbreviation is None or len(part_abbreviation) == 0: return "Part" return f"Part{part_abbreviation[0].upper() + part_abbreviation[1:]}_"
[docs]def get_sound_prefix(sound_abbreviation: str) -> str: """ Returns prefix name for a specific part given sound's abbreviation Example 'vnI' -> 'SoundVn_' Parameters ---------- part_abbreviation: str String that represents the abbreviated name of a sound """ if sound_abbreviation is None or len(sound_abbreviation) == 0: return "Sound" return f"Sound{sound_abbreviation[0].upper() + sound_abbreviation[1:]}_"
[docs]def get_family_prefix(family_abbreviation: str) -> str: """ Returns prefix name for a specific part given sound's abbreviation Example 'vnI' -> 'SoundVn_' Parameters ---------- part_abbreviation: str String that represents the abbreviated name of a sound """ if family_abbreviation is None or len(family_abbreviation) == 0: return "Family" return f"Family{family_abbreviation[0].upper() + family_abbreviation[1:]}_"
[docs]def get_score_prefix() -> str: return "Score_"
[docs]def get_corpus_prefix() -> str: return "Corpus_"
[docs]def get_part_feature(part: str, feature: str) -> str: """ It builds the name of a feature with part scope. For instance, if the feature is "NumberOfIntervals" and the part is "VnI", this class would return: "PartVnI_NumberOfIntervals". Args: part (str): The part name. feature (str): Name of the feature to be prefixed. Returns: str: The feature properly prefixed for the part passed as argument. """ return get_part_prefix(part) + feature
[docs]def get_sound_feature(sound: str, feature: str) -> str: """ It builds the name of a feature with sound scope. For instance, if the feature is "NumberOfIntervals" and the sound is "Ob", this class would return: "SoundOb_NumberOfIntervals". Args: sound (str): The sound name. feature (str): Name of the feature to be prefixed. Returns: str: The feature properly prefixed for the sound passed as argument. """ return get_sound_prefix(sound) + feature
[docs]def get_family_feature(family: str, feature: str) -> str: """ It builds the name of a feature with family scope. For instance, if the feature is "NumberOfIntervals" and the family is "Str", this class would return: "FamilyStr_NumberOfIntervals". Args: family (str): The family name. feature (str): Name of the feature to be prefixed. Returns: str: The feature properly prefixed for the family passed as argument. """ return get_family_prefix(family) + feature
[docs]def get_score_feature(feature: str) -> str: """ It builds the name of a feature with Score scope. For instance, if the feature is "NumberOfIntervals", this class would return: "Score_NumberOfIntervals". Args: feature (str): Name of the feature to be prefixed. Returns: str: The feature properly prefixed for score scope. """ return get_score_prefix() + feature