2.0.0 (2020-11-01)

  • Removed support for EOL Python 2
  • Testing against Python 3.6+ and Pypy3

1.5.3 (2018-11-20)

  • Reorganised source code to /src
  • Added Python 3.7 support
  • Removed Python 3.3 support due to end-of-life
  • plus minor improvements and bug fixes

1.5.2 (2018-02-06)

  • Fixed association relation in RDF serialisation
  • Fixed compatibility with networkx 2.0+

1.5.1 (2017-07-18)

  • Replaced pydotplus with pydot (see #111)
  • Fixed datetime and bundle error in RDF serialisation
  • Tested against Python 3.6
  • Improved documentation

1.5.0 (2016-10-19)

  • Added: Support for PROV-O (RDF) serialization and deserialization
  • Added: direction option for prov.dot.prov_to_dot()
  • Added: prov.graph.graph_to_prov() to convert a MultiDiGraph back to a ProvDocument
  • Testing with Python 3.5
  • Various minor bug fixes and improvements

1.4.0 (2015-08-13)

  • Changed the type of qualified names to prov:QUALIFIED_NAME (fixed #68)
  • Removed XSDQName class and stopped supporting parsing xsd:QName as qualified names
  • Replaced pydot dependency with pydotplus
  • Removed support for Python 2.6
  • Various minor bug fixes and improvements

1.3.2 (2015-06-17)

  • Added: prov-compare script to check equivalence of two PROV files (currently supporting JSON and XML)
  • Fixed: deserialising Python 3’s bytes objects (issue #67)

1.3.1 (2015-02-27)

  • Fixed unicode issue with deserialising text contents
  • Set the correct version requirement for six
  • Fixed format selection in prov-convert script

1.3.0 (2015-02-03)

  • Python 3.3 and 3.4 supported
  • Updated prov-convert script to support XML output
  • Added missing test JSON and XML files in distributions

1.2.0 (2014-12-19)

  • Added: prov.graph.prov_to_graph() to convert a ProvDocument to a MultiDiGraph
  • Added: PROV-N serializer
  • Fixed: None values for empty formal attributes in PROV-N output (issue #60)
  • Fixed: PROV-N representation for xsd:dateTime (issue #58)
  • Fixed: Unintended merging of Identifier and QualifiedName values
  • Fixed: Cloning the records when creating a new document from them
  • Fixed: incorrect SoftwareAgent records in XML serialization

1.1.0 (2014-08-21)

  • Added: Support for PROV-XML serialization and deserialization
  • A ProvRecord instance can now be used as the value of an attributes
  • Added: convenient assertions methods for ProvEntity, ProvActivity, and ProvAgent
  • Added: prov.model.ProvDocument.update() and prov.model.ProvBundle.update()
  • Fixed: Handling default namespaces of bundles when flattened

1.0.1 (2014-08-18)

  • Added: Default namespace inheritance for bundles
  • Fixed: prov.model.NamespaceManager.valid_qualified_name() did not support XSDQName
  • Added: Convenience prov.read() method with a lazy format detection
  • Added: Convenience plot() method on the ProvBundle class (requiring matplotlib).
  • Changed: The previous add_record() method renamed to new_record()
  • Added: add_record() function which takes one argument, a ProvRecord, has been added
  • Fixed: Document flattening (see flattened())
  • Added: __hash__() function added to ProvRecord (at risk: to be removed as ProvRecord is expected to be mutable)
  • Added: extra_attributes added to mirror existing formal_attributes

1.0.0 (2014-07-15)

  • The underlying data model has been rewritten and is incompatible with pre-1.0 versions.
  • References to PROV elements (i.e. entities, activities, agents) in relation records are now QualifiedName instances.
  • A document or bundle can have multiple records with the same identifier.
  • PROV-JSON serializer and deserializer are now separated from the data model.
  • Many tests added, including round-trip PROV-JSON encoding/decoding.
  • For changes pre-1.0, see CHANGES.txt.