Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

2.0.0 - 2020-02-14

Added

  • TermSet.subclasses and TermSet.superclasses methods to query all
    the subclasses / superclasses of all Term.

  • TermSet class to the top-level pronto module.

  • Dynamic management of subclassing cache for the Ontology class.

  • Setters for Term.consider, Term.union_of and Term.intersection_of.

Removed

  • cache keyword argument for the Ontology.

Fixed

  • SuperclassesIterator.to_set being named to_self because of a typo.

  • Several bugs affecting the fastobo-backed serializer.

1.2.0 - 2020-02-10

Added

  • Parameter with_self to disable reflexivity of Term.subclasses and Term.superclasses iterators.

  • TermSet class which stores a set of terms efficiently while providing some useful shortcuts to access the underlying data.

Changed

  • Moved code of Term.subclasses and Term.superclasses to a dedicated iterator class in the pronto.logic submodule.

  • Dropped contexter requirement.

Fixed

  • Fix a typo in Synonym.type setter leading to a potential bug when the given type is None.

  • Fix miscellaneous bugs found with mypy.

  • fastobo serializer crashing on namespace clauses because of a type issue.

  • fastobo parsers using data version clauses as format version clauses.

1.1.5 - 2020-01-25

Changed

  • Bumped fastobo to v0.7.0, switching parser implementation to use multi-threading in order to speedup the parser process.

1.1.4 - 2020-01-21

Added

  • Explicit support for Python 3.8.

  • Support for Windows-style line endings (#53)

1.1.3 - 2019-11-10

Fixed

  • Handling of some clauses in FastoboParser.

  • OboSerializer occasionaly missing lines between term and typedef frames.

Added

  • Missing docstrings to some Entity properties.

1.1.2 - 2019-10-30

Fixed

  • RdfXMLParser crashing on entities with rdf:label elements without literal content.

1.1.1 - 2019-10-29

Fixed

  • pronto.serializers module not being embedded in Wheel distribution.

1.1.0 - 2019-10-24

Added

  • Entity.add_synonym method to create a new synonym and add it to an entity.

  • @roundrepr now adds a minimal docstring to the generated __repr__ method.

  • Ontology caches subclassing relationships to greatly improve performance of Term.subclasses.

Changed

  • Entity subclasses now store their id directly to improve performance.

  • Term.subclasses and Term.superclasses use collections.deque instead of queue.Queue as a LIFO structure since thread-safety is not needed.

  • chardet result is now used even when prediction confidence is under 100% to detect encoding of the handle passed to Ontology.

Fixed

  • SynonymType comparison implementation.

  • Synonym.type getter crashing on type not being None.

  • RdfXMLParser crashing on synonymtypedefs without scope specifiers.

1.0.0 - 2019-10-11

Fixed

  • Issues with typedef serialization in FastoboSerializer.

  • Ontology.create_term and Ontology.create_relationship not raising ValueError when given an identifier already in the knowledge graph.

  • Signature of BaseSerializer.dump to remove encoding argument.

  • Missing __slots__ in Entity in non-typechecking runtime.

Changed

  • Bumped fastobo requirement to v0.6.0.

1.0.0-alpha.3 - 2019-10-10

Added

  • Extraction of oboInOwl:consider annotation in RdfXMLParser.

  • Extraction of oboInOwl:savedBy annotation in RdfXMLParser.

  • Extraction of subsetdef and synonymtypedef as annotation properties in RdfXMLParser.

  • Support for doap:Version instead of owl:VersionIri for specification of ontology data version.

  • Proper comparison of PropertyValue classes, based on the lexicographic order of their serialization.

  • Ontology.dump and Ontology.dumps methods to serialize an ontology in obo or obojson format.

Fixed

  • Metadata not storing optional description of ID spaces if any.

  • Wrong type hints in RelationshipData.equivalent_to_chain.

Changed

  • Added type checking to some more property setters.

  • Avoid using networkx in Term.subclasses.

  • fastobo-derived parsers will not create a new entity if one exists in the graph of dependencies already.

  • Exposed pronto.warnings and the complete warnings hierarchy.

1.0.0-alpha.2 - 2019-10-03

Added

  • Support for extraction of relationships from OWL/XML files to OwlXMLParser.

Fixed

  • Type hints of RelationshipData.synonyms attribute.

1.0.0-alpha.1 - 2019-10-02

Changed

  • Dropped support for Python earlier than 3.6.

  • Brand new data model that follow the OBO 1.4 object model.

  • Partial OWL XML parser implementation using the OBO 1.4 semantics.

  • New OBO parser implementation based on fastobo.

  • Imports are properly separated from the top-level ontology.

  • Ontology.__getitem__ can also access entities from imports.

  • Term, Relationship, Xref, SynonymType compare only based on their ID.

  • Subset, Definition compare only based on their textual value.

Added

  • Support for OBO JSON parser based on fastobo.

  • Provisional mypy type hints.

  • Type checking for most properties in __debug__ mode.

  • Proper repr implementation that should roundtrip most of the time.

  • Detection of file format and encoding based on buffer content.

Removed

  • OBO and JSON serialization support (for now).

  • Term.rchildren and Term.rparents and stop making direction assumptions on relationships.