Changelog archive (1.5.3 and earlier) ------------------------------------- Releases before 2.0.0. For 2.0.0 and later, see the `current changelog `_. 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 :py:meth:`prov.dot.prov_to_dot` * Added: :py:meth:`prov.graph.graph_to_prov` to convert a `MultiDiGraph `_ back to a :py:class:`~prov.model.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: :py:meth:`prov.graph.prov_to_graph` to convert a :py:class:`~prov.model.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 :py:class:`~prov.model.ProvRecord` instance can now be used as the value of an attributes * Added: convenient assertions methods for :py:class:`~prov.model.ProvEntity`, :py:class:`~prov.model.ProvActivity`, and :py:class:`~prov.model.ProvAgent` * Added: :py:meth:`prov.model.ProvDocument.update` and :py:meth:`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: :py:meth:`prov.model.NamespaceManager.valid_qualified_name` did not support :py:class:`~prov.model.XSDQName` * Added: Convenience :py:func:`prov.read` method with a lazy format detection * Added: Convenience :py:meth:`~prov.model.ProvBundle.plot` method on the :py:class:`~prov.model.ProvBundle` class (requiring matplotlib). * Changed: The previous :py:meth:`!add_record` method renamed to :py:meth:`~prov.model.ProvBundle.new_record` * Added: :py:meth:`~prov.model.ProvBundle.add_record` function which takes one argument, a :py:class:`~prov.model.ProvRecord`, has been added * Fixed: Document flattening (see :py:meth:`~prov.model.ProvDocument.flattened`) * Added: :py:meth:`~prov.model.ProvRecord.__hash__` function added to :py:class:`~prov.model.ProvRecord` (**at risk**: to be removed as :py:class:`~prov.model.ProvRecord` is expected to be mutable) * Added: :py:attr:`~prov.model.ProvRecord.extra_attributes` added to mirror existing :py:attr:`~prov.model.ProvRecord.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 the "Pre-1.0 change log" section below. Pre-1.0 change log ------------------ 0.5.3 (2013-12-13) ^^^^^^^^^^^^^^^^^^ - Changed: Allowed namespaces at bundle level - Fixed: Only check equality of ProvBundles on asserted records - Fixed: Some string literals are wrongly converted to QNames - Updated test cases from ProvToolbox (v4.1) - Added text explanations for some ProvException subclasses - Added support for langtag in prov.persistence.LiteralAttribute - Fixed: Support for prov:InternationalizedString literals - Fixed: Keep timezone information when parsing xsd:dateTime 0.5.2 (2013-10-18) ^^^^^^^^^^^^^^^^^^ - Added South migrations for prov.persistence - Fixed: Support for unlimited-length record identifier - Fixed: Support for unlimited-length URI in namespace - Fixed: Support for long literals (i.e. longer than 255 characters) - Fixed: (JSON) Support for membership with multiple members - Fixed: UnicodeEncodeError error - Fixed: Support for JSON having records sharing the same identifier - Fixed: Refactor the flattening code - Fixed: Parsing XSD dateTime - Fixed: Triple quoted multi-line string literals in PROV-N - Added: Support initialising namespaces when creating a ProvBundle 0.5.1 (2013-09-13) ^^^^^^^^^^^^^^^^^^ - Added: JSON membership relation with a single entity (in a list) - Fixed: Not generating inferred records in JSON encoding. - Fixed: Generating JSON arrays for multi-value attributes - Fixed: Comparing unicode literal values (fixed #12) - Fixed: Returning the identifier of a record if the required attribute type is Identifier - Fixed: No longer trying to find the actual generalEntity record when creating a Mention record - Added informative arguments to ProvException classes - Fixed: Attribute validation does not fail if the attribute is already a ProvRecord 0.5.0 (2013-09-02) ^^^^^^^^^^^^^^^^^^ - Allow inferred records to be retyped when flattening - prov.model.graph: check if a node of a relation already drawn - Add get_flattened() function to ProvBundle - Added: hash functions for Literal and Namespace - Changed: Add new bundle's namespaces to parent document - Fixed: prov.persistence only saves namespaces at document level - Added: is_document() and is_bundle() for ProvBundle - Fixed: Stop outputting prefix in an bundle's PROV-JSON - Changed: Removed namespace declarations in example bundles - Better handling of ids when generating PROV-JSON - Changed: Bundles cannot have their own namespace prefixes - When exporting a bundle as a document add namespaces from parent - Return pdbundle when calling add_prov_bundle - Fixed support for the default namespace - Fixed minor bugs. 0.4.9 (2013-08-09) ^^^^^^^^^^^^^^^^^^ - Fixed: Cannot get_label() when self._extra_attributes is None 0.4.8 (2013-08-06) ^^^^^^^^^^^^^^^^^^ - Added: Option to show attributes of relations in DOT graph generation - Added: option to show attributes of nodes in DOT graph representation - Added: Convenient methods for (de)serialising PROV-JSON (closes #17) - Fixed: No longer output inferred records in PROV-N and PROV-JSON - Fixed: Bundles now can have own namespaces - Fixed: missing return Literal(...) - Fixed: Error getting the value and datatype of Literal 0.4.7 (2013-07-10) ^^^^^^^^^^^^^^^^^^ - Changed: Removed out-dated example_graph() - Changed: Improved mappings between default Python and XSD data types - Changed: Removed ProvElement as the inferred record for influence - Changed: Updated examples (primer, bundles1, bundles2) - Fixed: Removed the duplicated Bundle definition in PROV_RECORD_TYPES - Added JSON test files from ProvToolbox and a test for loading these - Changed: Improved Literal equality test - Added langtag getter to Literal 0.4.6 (2013-04-24) ^^^^^^^^^^^^^^^^^^ - Fixed: Removed the 'activity' attribute from Influence expression - Fixed: Inferred records couldn't be created when the expected types provided as a list 0.4.5 (2013-03-13) ^^^^^^^^^^^^^^^^^^ - Changed: ProvActivity.set_time() can now accept just one argument. It previously sets the time of the missing argument to None. - Changed: ProvAgent is now eligible for entity arguments and ProvEntity for agent ones - Fixed: Producing the right PROV-N representation for float values 0.4.4 ^^^^^ - Added float data type support for prov.persistence - Removed ProvCollection class since collections should be instantiated as entities - Added get_attribute() and get_value() to ProvRecord - Changed: Check if an attribute's value is a valid QName and return the QName - Fixed exception rendering graphs with empty records 0.4.3 ^^^^^ - Fixed: PROV-N export - top-level bundle -> document - Fixed: Bug when renaming prefixes 0.4.2 ^^^^^ - Updated graph colors to the PROV style 0.4.1 ^^^^^ - Restructured package folder - Moved to a new repo. - Fixed: 'memberof' -> 'hadMember' 0.4.0 (2012-10-31) ^^^^^^^^^^^^^^^^^^ - Initial release.