music21.metadata.caching¶
JobProcessor¶
- class music21.metadata.caching.JobProcessor¶
Processes metadata-caching jobs, either serially (e.g. single-threaded) or in parallel, as a generator.
Yields a dictionary of:
MetadataEntry instances
failed file paths
the last processed file path
the number of remaining jobs
>>> jobs = [] >>> mdb = corpus.corpora.CoreCorpus().search('monteverdi')[:3] >>> paths = [x.sourcePath for x in mdb]
>>> for corpusPath in paths: ... job = metadata.caching.MetadataCachingJob( ... corpusPath, ... parseUsingCorpus=True, ... corpusName='core', ... ) ... jobs.append(job) >>> jobGenerator = metadata.caching.JobProcessor.process_serial(jobs) >>> for result in jobGenerator: ... print(result['remainingJobs']) ... 2 1 0
JobProcessor
methods
- static JobProcessor.process_parallel(jobs, processCount=None)¶
Process jobs in parallel, with processCount processes.
If processCount is none, use 1 fewer process than the number of available cores.
jobs is a list of
MetadataCachingJob
objects.
- static JobProcessor.process_serial(jobs: list[music21.metadata.caching.MetadataCachingJob])¶
Process jobs serially.
MetadataCachingJob¶
- class music21.metadata.caching.MetadataCachingJob(filePath, jobNumber=0, parseUsingCorpus=True, corpusName=None)¶
Parses one corpus path, and attempts to extract metadata from it:
>>> job = metadata.caching.MetadataCachingJob( ... 'bach/bwv66.6', ... parseUsingCorpus=True, ... corpusName='core', ... ) >>> job.jobNumber 0 >>> job.corpusName 'core' >>> job.run() ((<music21.metadata.bundles.MetadataEntry 'bach_bwv66_6'>,), ()) >>> results = job.getResults() >>> errors = job.getErrors()
TODO: error list, not just numbers needs to be reported back up.
MetadataCachingJob
read-only properties
- MetadataCachingJob.cleanFilePath¶
MetadataCachingJob
methods
- MetadataCachingJob.getErrors()¶
- MetadataCachingJob.getResults()¶
- MetadataCachingJob.parseFilePath()¶
- MetadataCachingJob.parseNonOpus(parsedObject)¶
- MetadataCachingJob.parseOpus(parsedObject)¶
- MetadataCachingJob.parseScoreInsideOpus(score, scoreNumber)¶
- MetadataCachingJob.run()¶
WorkerProcess¶
- class music21.metadata.caching.WorkerProcess(job_queue, result_queue)¶
A worker process for use by the multithreaded metadata-caching job processor.
WorkerProcess
methods
- WorkerProcess.run()¶
Method to be run in sub-process; can be overridden in sub-class
Functions¶
- music21.metadata.caching.cacheMetadata(corpusNames=None, useMultiprocessing=True, verbose=False)¶
Cache metadata from corpora in corpusNames as local cache files.
Call as
metadata.cacheMetadata()