- merge all api's into timeside.api
- add core.get_processor()
- put all exceptions into exceptions.py
- use SubProcessError instead of EncodeProcesError, DecodeProcessError and VampProcessError
- rename TimeSideError to Error (= timeside.Error)
- move id() into to IProcessor, all processors are required to implement this static method
- MetaProcessor now ensures that all id's are wellformed and unique and raise an exception otherwise
- add id() to all encoders and decoders, and make it static in analyzers and graphers
- remove underscores and shorten a couple of id's, see the doc of IProcessor.id()
- move generic component/interface architecture from core to component.py
- add Processor, MetaProcessor and processors() to core
- add IProcessor base interface for all processor interfaces
- let IAnalyzer, IGrapher, IEncoder and IDecoder subclass IProcessor
- let all actual processor classes descend from Processor
- use processors() instead of implementations() in test.py
- add listprocessors.py test script
- turn all such methods as name(), id(), file_extension() into static methods
- add the self argument to non static methods in interfaces for clarity
- encode api: the constructor doesn't conflict anymore with the new core, fixme gone
replace the core with the new core:
- requires absolutely no change in the encode, decode, analyze and graph code
- the test scripts needed a few changes
add new core:
- less intrusive component/interface mechanism
- no need for a component manager
- one can create several instances of a component (no singleton)
- component constructors do not need component manager anymore
- unit test included