Skip to content
Back to top
View this page

# 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 `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 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.