What's Changed
* Added functionality for advanced, customizable error handling in the pipeline.
* Restructuring and cleaning up the type annotations
* Updating out-of-date documentation
Breaking Changes
There are a number of breaking changes between MTAP 1.1.0 and 1.2.1
Python
* Functionality for pipelines was split from ``mtap.processing`` to the ``mtap.pipeline`` package.
* ``EventsClient`` is now instantiated via the ``mtap.events_client`` function.
* ``RemoteProcessor`` and ``LocalProcessor`` added to default ``mtap`` package namespace to ease ``Pipeline`` construction
* The ``Pipeline`` object is no longer a context manager and no longer an ``events_client`` property available.
This changes instantiation of pipelines to something like:
python
pipeline = Pipeline.from_yaml_file(pipeline_conf)
with events_client(address=pipeline.events_address) as events:
source = FilesInDirectoryProcessingSource(directory=conf.directory, client=events)
pipeline.run_multithread(source=source)
See [here](https://github.com/nlpie/mtap/blob/main/python/mtap/examples/example_pipeline.py) for a full example.
* Functionality for time results on the pipeline have been moved to a results object returned by ``Pipeline.run_multithread``
* ``ProcessingSource`` is now in ``mtap.pipeline`` and its ``provide`` method has been renamed ``produce``.
* ``get_serializers`` has been removed from ``mtap.serialization``, instead use the ``get`` method on ``SerializerRegistry``.
* The methods on ``Serializer`` have been changed to class methods to better reflect the intended statelessness.
* Processor descriptors like ``labels`` and ``parameter`` have been moved from ``mtap.processing.descriptions`` to ``mtap.descriptors``.
* The ability to add arbitrary key values to the ``processor`` annotation has been replaced with an ``additional_data`` dictionary attribute.
* The ``mtap.data`` package has been removed. Public access to types in this package that are not already in the ``mtap`` namespace have been moved to ``mtap.types``.