def corpus(self): r''' The `corpus.corpora.Corpus` object associated with the metadata bundle's name. >>> from music21 import metadata >>> coreBundle = corpus.corpora.CoreCorpus().metadataBundle >>> coreBundle <music21.metadata.bundles.MetadataBundle 'core': {140... entries}> >>> coreBundle.corpus <music21.corpus.corpora.CoreCorpus> ''' from music21.corpus import manager if self.name is None: return None return manager.fromName(self.name)
def corpus(self): r''' The `corpus.corpora.Corpus` object associated with the metadata bundle's name. >>> from music21 import metadata >>> coreBundle = corpus.corpora.CoreCorpus().metadataBundle >>> coreBundle <music21.metadata.bundles.MetadataBundle 'core': {144... entries}> >>> coreBundle.corpus <music21.corpus.corpora.CoreCorpus> ''' from music21.corpus import manager if self.name is None: return None return manager.fromName(self.name)
def cacheMetadata(corpusNames=None, useMultiprocessing=True, verbose=False): ''' Cache metadata from corpora in `corpusNames` as local cache files. Call as ``metadata.cacheMetadata()`` ''' from music21.corpus import manager localCorporaNames = manager.listLocalCorporaNames(skipNone=True) if corpusNames is None: corpusNames = localCorporaNames[:] + [ 'local', 'core', ] # + 'virtual'] if not common.isIterable(corpusNames): corpusNames = (corpusNames, ) timer = common.Timer() timer.start() # store list of file paths that caused an error failingFilePaths = [] # the core cache is based on local files stored in music21 # (no-longer-existent virtual is on-line) for corpusName in corpusNames: corpusObject = manager.fromName(corpusName) failingFilePaths += corpusObject.cacheMetadata(useMultiprocessing, verbose, timer) message = f'cache: final writing time: {timer} seconds' if verbose is True: environLocal.warn(message) else: environLocal.printDebug(message) for failingFilePath in failingFilePaths: message = f'path failed to parse: {failingFilePath}' if verbose is True: environLocal.warn(message) else: environLocal.printDebug(message)
def cacheMetadata(corpusNames=None, useMultiprocessing=True, verbose=False): ''' Cache metadata from corpora in `corpusNames` as local cache files. Call as ``metadata.cacheMetadata()`` ''' from music21.corpus import manager localCorporaNames = manager.listLocalCorporaNames(skipNone=True) if corpusNames is None: corpusNames = localCorporaNames[:] + ['local', 'core',] # + 'virtual'] if not common.isIterable(corpusNames): corpusNames = (corpusNames,) timer = common.Timer() timer.start() # store list of file paths that caused an error failingFilePaths = [] # the core cache is based on local files stored in music21 # (no-longer-existent virtual is on-line) for corpusName in corpusNames: corpusObject = manager.fromName(corpusName) failingFilePaths += corpusObject.cacheMetadata(useMultiprocessing, verbose, timer) message = 'cache: final writing time: {0} seconds'.format(timer) if verbose is True: environLocal.warn(message) else: environLocal.printDebug(message) for failingFilePath in failingFilePaths: message = 'path failed to parse: {0}'.format(failingFilePath) if verbose is True: environLocal.warn(message) else: environLocal.printDebug(message)
def corpus(self): r''' The `corpus.corpora.Corpus` object associated with the metadata bundle's name. >>> from music21 import metadata >>> coreBundle = corpus.corpora.CoreCorpus().metadataBundle >>> coreBundle <music21.metadata.bundles.MetadataBundle 'core': {151... entries}> >>> coreBundle.corpus <music21.corpus.corpora.CoreCorpus> ''' if self._corpus is not None: cObj = common.unwrapWeakref(self._corpus) if cObj is not None: return cObj if self.name is None: return None from music21.corpus import manager return manager.fromName(self.name)
def corpus(self): r''' The `corpus.corpora.Corpus` object associated with the metadata bundle's name. >>> from music21 import metadata >>> coreBundle = corpus.corpora.CoreCorpus().metadataBundle >>> coreBundle <music21.metadata.bundles.MetadataBundle 'core': {150... entries}> >>> coreBundle.corpus <music21.corpus.corpora.CoreCorpus> ''' if self._corpus is not None: cObj = common.unwrapWeakref(self._corpus) if cObj is not None: return cObj if self.name is None: return None from music21.corpus import manager return manager.fromName(self.name)