Skip to main content

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

Built on top of the world-class EPCPyYes python package.
Real EPCIS support for serious people running real systems.

.. code-block:: text

________ ___ ___ _______ ________ ________ ___ ________
|\ __ \|\ \ |\ \|\ ___ \ |\ __ \|\ ____\|\ \|\ ____\
\ \ \|\ \ \ \\_\ \ \ __/|\ \ \|\ \ \ \___|\ \ \ \ \___|_
\ \ \\\ \ \______ \ \ \_|/_\ \ ____\ \ \ \ \ \ \_____ \
\ \ \\\ \|_____|\ \ \ \_|\ \ \ \___|\ \ \____\ \ \|____|\ \
\ \_____ \ \ \__\ \_______\ \__\ \ \_______\ \__\____\_\ \
\|___| \__\ \|__|\|_______|\|__| \|_______|\|__|\_________\
\|__| \|_________|

The essential Open-Source EPCIS component for the QU4RTET traceability
platform.

For more on QU4RTET see http://www.serial-lab.com

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.

1.4 Jan 2 2018
++++++++++++++
* Added a new get_message_by_event_id to the EPCISDBProxy, which allows
calling parties to retrieve an entire inbound message by providing a
single event from that message.
* Added an additional parser that creates a cache of EPCPyYes objects
in memory without storing to a database. Also modified the QuartetParser
so that it puts the Message.id on the rule context after parsing a
full message and storing to the database.
* Added more unit tests for the new feature/functions.

Project details


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.4.11.tar.gz (52.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

quartet_epcis-1.4.11-py2.py3-none-any.whl (56.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file quartet_epcis-1.4.11.tar.gz.

File metadata

  • Download URL: quartet_epcis-1.4.11.tar.gz
  • Upload date:
  • Size: 52.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for quartet_epcis-1.4.11.tar.gz
Algorithm Hash digest
SHA256 b3b26bde0bf8b2891a0e4e1eaab07e1190d5472c22757ef7c3ed1fc143442215
MD5 7354fd85d864ef45ee5eda9779c0636b
BLAKE2b-256 8a34f75b04fa75fa05e131f70b0f5c54d7e2ce1c94d72ede01e22308aef788f5

See more details on using hashes here.

File details

Details for the file quartet_epcis-1.4.11-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for quartet_epcis-1.4.11-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 c7be33dddf74f63757c5024547b8ec641f5f85e6c0cea6b622e062acbab0091e
MD5 5c5781fc4be5cac6829a233259533e64
BLAKE2b-256 1ea41c4f5e36ca1c626edf2225ac6f38ee8c64fd0c9c737bda32db921b79521a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page