Defines EPCIS models and XML parsing.
Project description
QU4RTET EPCIS
=============
.. image:: https://gitlab.com/serial-lab/quartet_epcis/badges/master/pipeline.svg
:target: https://gitlab.com/serial-lab/quartet_epcis/commits/master
.. image:: https://gitlab.com/serial-lab/quartet_epcis/badges/master/coverage.svg
:target: https://gitlab.com/serial-lab/quartet_epcis/pipelines
.. image:: https://badge.fury.io/py/quartet_epcis.svg
:target: https://badge.fury.io/py/quartet_epcis
The essential component for the Open Source EPCIS QU4RTET infrastructure's
GS1 EPCIS support.
The quartet_epcis python package is a Django application that
contains the base database models necessary for the support of
EPCIS 1.2 data persistence to an RDBMS. The quartet_epcis.parsing
package contains an EPCIS XML parser that will take an input stream
of XML data and save it to a configured database back-end.
The quartet_epcis.app_models directory contains a set of
Django ORM models that are used to define the database scheme
and store EPCIS data in the database.
Documentation
-------------
Find the latest docs here:
https://serial-lab.gitlab.io/quartet_epcis/
The full (pre-built )documentation is under the docs directory in this project.
Quickstart
----------
Install QU4RTET EPCIS
---------------------
.. code-block:: text
pip install quartet_epcis
Add it to your `INSTALLED_APPS`:
.. code-block:: text
INSTALLED_APPS = (
...
'quartet_epcis',
...
)
Features
--------
* Maintains the database schema for EPCIS 1.2 support.
* Parses EPCIS 1.2 XML streams to the configured backend database system.
* Enforces business rules around decommissioning, commissioning, aggregation,
disaggregation, etc.
Running The Unit Tests
----------------------
.. code-block:: text
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements_test.txt
(myenv) $ python runtests.py
History
-------
Each release section is appended to until a minor release is created.
Minor patches are added incrementally to the release list.
0.1.0 (2017-12-07)
++++++++++++++++++
* First release on PyPI.
1.0.+ May 4, 2018
++++++++++++++++++
* First production-ready release.
* CI build to auto-deploy tags to PyPI
* Longer fields for document and event ids.
* Changes to CI build.
* Data migration to automatically create EPCIS rule and Step.
1.0.4 June 6, 2018
++++++++++++++++++
* EPCISParsingStep in the steps module was of wrong Type...but was working
anyway. Switched to `rule.Step` from `models.Step`.
* Added on_failure to the EPCISParsingStep to account for the new abstract
method on the base `quartet_capture.rules.Step` class.
1.1 June 21 2018
++++++++++++++++
* Addition of new business parser for EPCIS. The business parser inherits
from the original `quartet_epcis.parsing.parser.QuartetParser` and adds
additional business context processing. The new parser will perform and
track explicit aggregation and dissagregation functions as well as maintain
records of deleted/decommissioned events and check for events containing
EPCs that were never commissioned. Over 800 lines of unit testing code along
with 30 tests now cover just the quartet_epcis parsers and API.
* Fix to aggregation handling with a more aggressive caching strategy- all
entries are cached until the end of processing.
* Added additional ordering to models along with created and modified fields
for the UUID based models.
* Updated LooseEnforcement check on EPCIS Parsing Step to use the boolean
parameter helper.
1.2 August 14 2018
++++++++++++++++++
* Sorted event processing by date for both the business and standard
qu4rtet EPCIS parsers.
* Updated unit tests.
1.3 Sept 28 2018
++++++++++++++++
* Added a generic EPCIS parser that finds EPCIS elements that may or
may not contain an explicit namespace declaration.
* Changed ordering of events to be descending by event time.
* Fixed bug with get entries by event in the EPCISDBProxy class.
=============
.. image:: https://gitlab.com/serial-lab/quartet_epcis/badges/master/pipeline.svg
:target: https://gitlab.com/serial-lab/quartet_epcis/commits/master
.. image:: https://gitlab.com/serial-lab/quartet_epcis/badges/master/coverage.svg
:target: https://gitlab.com/serial-lab/quartet_epcis/pipelines
.. image:: https://badge.fury.io/py/quartet_epcis.svg
:target: https://badge.fury.io/py/quartet_epcis
The essential component for the Open Source EPCIS QU4RTET infrastructure's
GS1 EPCIS support.
The quartet_epcis python package is a Django application that
contains the base database models necessary for the support of
EPCIS 1.2 data persistence to an RDBMS. The quartet_epcis.parsing
package contains an EPCIS XML parser that will take an input stream
of XML data and save it to a configured database back-end.
The quartet_epcis.app_models directory contains a set of
Django ORM models that are used to define the database scheme
and store EPCIS data in the database.
Documentation
-------------
Find the latest docs here:
https://serial-lab.gitlab.io/quartet_epcis/
The full (pre-built )documentation is under the docs directory in this project.
Quickstart
----------
Install QU4RTET EPCIS
---------------------
.. code-block:: text
pip install quartet_epcis
Add it to your `INSTALLED_APPS`:
.. code-block:: text
INSTALLED_APPS = (
...
'quartet_epcis',
...
)
Features
--------
* Maintains the database schema for EPCIS 1.2 support.
* Parses EPCIS 1.2 XML streams to the configured backend database system.
* Enforces business rules around decommissioning, commissioning, aggregation,
disaggregation, etc.
Running The Unit Tests
----------------------
.. code-block:: text
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install -r requirements_test.txt
(myenv) $ python runtests.py
History
-------
Each release section is appended to until a minor release is created.
Minor patches are added incrementally to the release list.
0.1.0 (2017-12-07)
++++++++++++++++++
* First release on PyPI.
1.0.+ May 4, 2018
++++++++++++++++++
* First production-ready release.
* CI build to auto-deploy tags to PyPI
* Longer fields for document and event ids.
* Changes to CI build.
* Data migration to automatically create EPCIS rule and Step.
1.0.4 June 6, 2018
++++++++++++++++++
* EPCISParsingStep in the steps module was of wrong Type...but was working
anyway. Switched to `rule.Step` from `models.Step`.
* Added on_failure to the EPCISParsingStep to account for the new abstract
method on the base `quartet_capture.rules.Step` class.
1.1 June 21 2018
++++++++++++++++
* Addition of new business parser for EPCIS. The business parser inherits
from the original `quartet_epcis.parsing.parser.QuartetParser` and adds
additional business context processing. The new parser will perform and
track explicit aggregation and dissagregation functions as well as maintain
records of deleted/decommissioned events and check for events containing
EPCs that were never commissioned. Over 800 lines of unit testing code along
with 30 tests now cover just the quartet_epcis parsers and API.
* Fix to aggregation handling with a more aggressive caching strategy- all
entries are cached until the end of processing.
* Added additional ordering to models along with created and modified fields
for the UUID based models.
* Updated LooseEnforcement check on EPCIS Parsing Step to use the boolean
parameter helper.
1.2 August 14 2018
++++++++++++++++++
* Sorted event processing by date for both the business and standard
qu4rtet EPCIS parsers.
* Updated unit tests.
1.3 Sept 28 2018
++++++++++++++++
* Added a generic EPCIS parser that finds EPCIS elements that may or
may not contain an explicit namespace declaration.
* Changed ordering of events to be descending by event time.
* Fixed bug with get entries by event in the EPCISDBProxy class.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
quartet_epcis-1.3.4.tar.gz
(49.5 kB
view hashes)
Built Distribution
Close
Hashes for quartet_epcis-1.3.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9eafd4ebaa2474496d5c585036bd0edcbdfe8b4407b4658f50233efff2735952 |
|
MD5 | b8545aaf1708f1ab6d885689f024f7ae |
|
BLAKE2b-256 | 8c6c49e91da98dc677f082e198be4fbb5fc0fa7f59803e24d445af825e3de3b1 |