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.
v2.5.8 - 2024-09-14
- Extraction of implicit string annotation in RDF/XML files (#231).
- RDF/XML parser crash on
oboInOwl:SynonymTypeProperty
when missing a scope (#230).
- Migrate documentation to PyData theme.
v2.5.7 - 2024-04-24
- Handling of RDF datatypes in RDF/XML parser (#223, by @chrishmorris).
v2.5.6 - 2024-02-21
- Explicit support for Python 3.12.
- Synonym types not being properly extracted by RDF/XML parser (#218).
v2.5.5 - 2023-08-17
replaced_by
andconsider
attributes not being extracted from RDF/XML documents on missing RDF datatype (#209).- Hard requirement on
multiprocessing.pool
preventing the package to work single-threaded on more restrictive environments (#208).
v2.5.4 - 2023-04-10
Entity.synonyms
setter not acceptingfrozenset
arguments as expected (#207).
- Bump supported
networkx
version tov3.0
(#206).
v2.5.3 - 2023-01-11
- Crash in
LineageIterator.to_set
when starting from an empty set of entities.
v2.5.2 - 2022-12-07
- Explicit support for Python 3.11.
- Bumped
fastobo
dependency tov0.12.2
. - Bumped
chardet
dependency tov5.0
.
v2.5.1 - 2022-10-12
EntitySet.ids
iterating on its elements instead of copying the internal identifiers.- RDF/XML parser failing on unknown datatypes (#187).
- Disable typechecking when collecting entities in
to_set
methods.
v2.5.0 - 2022-07-12
- Bumped
fastobo
dependecy tov0.12.1
- Support for Python 3.6.
v2.4.7 - 2022-06-28
- Serialization of
is_class_level
properties withfastobo
-based serializers (#178). - Parsing of
SynonymTypeProperty
elements in RDF/XML without a label attribute (#176).
v2.4.6 - 2022-06-18
- Setters for the
holds_over_chain
andequivalent_to_chain
properties ofRelationship
objects.
- Serialization of
holds_over_chain
properties withfastobo
-based serializers (#175).
v2.4.5 - 2022-04-21
- Serialization of metadata tag relationships by
fastobo
(#164).
v2.4.4 - 2022-01-24
OwlFunctionalSerializer
to dump anOntology
to OWL Functional-style syntax.
- Bumped
fastobo
dependency tov0.11.1
. - Make
FastoboParser
raise aSyntaxWarning
when encoutering creation dates that are notdatetime.datetime
.
v2.4.3 - 2021-08-02
- Missing documentation for the
pronto.Entity.relationships
property.
- RDX/XML parser crashing on files containing a relationship and a term with the same ID (#138).
v2.4.2 - 2021-05-26
- Support for
chardet
version4.0
(in addition to older3.0
).
- Serialization of
Ontology
failing with non-emptyidspaces
. - Typo in OWL2 URL in
README.md
(#130).
v2.4.1 - 2021-02-19
pronto.pv.PropertyValue
is now an abstract class.pronto.parsers.RdfXmlParser
now ignores synonym Xrefs not in the right format.
pronto.Entity.definition
documentation now lists return type aspronto.definition.Definition
as expected.- CURIE compaction in RDF/XML not being handled consistently, causing some crashes on ontologies using aliased relationships.
pronto.utils.typechecked.disabled
is now reentrant and should not be disabled in multithreaded contexts anymore.
- Implicit injection of
lxml
instead ofxml.etree
, which caused issues withRdfXmlParser
.
v2.4.0 - 2021-02-18
- Deprecation warnings for the retrieval of relationships via
indexing, to be deprecated in
v3
.
- Replaced Travis-CI with GitHub Actions to handle continuous integration.
- Bumped
fastobo
dependency tov0.10.0
.
- Retrieval of terms via their alternate IDs (introduced in
v2.3.0
, caused multiple issues (#120, #126).
v2.3.2 - 2020-12-17
- Support for path-like objects when creating an
Ontology
(#108).
- Avoid decoding file-like objects if they are already UTF-8
encoded when creating an
Ontology
(#110).
v2.3.1 - 2020-09-21
pronto.entity
package not being included in source distribution.
v2.3.0 - 2020-09-21 - YANKED
- Retrieval of entities via their alternate IDs on the source
Ontology
. - Direct edition of entity relationships via the
Relationships
view. __all__
attribute to all modules of the data model.RelationshipSet
container likeTermSet
with shortcut attributes and proxying of actualRelationship
instances.Relationship.subproperties
andRelationship.superproperties
methods to add, remove, clear and iterate over the subproperties and superproperties of aRelationship
instance.Ontology.synonym_types
method to count (viaSizedIterator
) and iterate over the synonym types of an ontology and all of its imports.Ontology.get_synonym_type
method to retrieve a single synonym type by ID from an ontology or one of its imports.
- Management of sub-properties / super-properties is now consistent with the management of subclasses / superclasses.
consider
,disjoint_from
,disjoint_over
,equivalent_to
,replaced_by
transitive_over
andunion_of
properties ofRelationship
now return aRelationshipSet
.
- Outdated documentation in
Term.subclasses
describing the performances of the previous algorithm. - Possible
AttributeError
with the setter of theEntity.synonyms
property. - Issue with synonym types declared in imported ontologies not being usable with synonyms of the actual ontology.
- Various type annotations not updated since version v2.2.2.
v2.2.4 - 2020-09-11
- Make
Entity.annotations
return a mutable set and add a setter.
Term.relationship
erroneously updating theOntology._lineage
cache.- Unneeded code in
pronto.serializers._fastobo
handlingis_a
clauses.
v2.2.3 - 2020-07-31
- Replaced
frozendict
withimmutabledict
(#90). - Bumped
fastobo
dependency tov0.9.0
to support inline comments. - Parsers will now process their imports in parallel using a thread pool.
- Argument type checking in view layer is now disabled during the parsing phase to reduce overhead.
v2.2.2 - 2020-07-18
- Extraction of basic relationships from RDF/XML documents.
- Erroneous type annotations on
Term.subclasses
andTerm.superclasses
. - Bug with
Term.equivalent_to
setter crashing with aNameError
. - Bug with
Entity.synonyms
setter not extracting synonym data.
v2.2.1 - 2020-06-17
- Extraction of subclasses/superclasses hierarchy from nested imports.
- Serialization of OBO frames not being done in order.
- Parsing issue with
anti_symmetric
clauses in OBO typedefs. - Xrefs not being extracted when declared as axioms in RDF/XML documents.
ResourceWarning
when creatingOntology
from file-handles not mapping to a filesystem location.
v2.2.0 - 2020-06-17
threads
parameter toOntology
constructor to control the number of threads used by parsers supporting multithreading (OBO and OBO JSON at the moment).- Deprecation warnings for suspected uses of the
is_a
pseudo-relationship since subclasses/superclasses is now to be handled by the ownerOntology
. - Support for subclass/superclass edition directly from the objects returned
by
Term.subclasses()
andTerm.superclasses()
. (#84)
- Updated
fastobo
tov0.8
, which reduce memory footprint of identifiers, and improves the parser speed. - Improved OBO parser performance using threading plus zero-copy validation
of identifiers on
Xref
instantiation. - Improved performance in debug mode by having the typechecker only extract the wrapped function signature once.
- OBO parser crashing on files containing
idspace
clauses in their headers. - Reference management issue with binary operations of
TermSet
.
nanoset
depency, which was not useful anymore in Python 3.8 and caused issues with multithreading when processing OBO frames in parallel.
v2.1.0 - 2020-03-23
Synonym.xrefs
now has a setter. (#70)pickle
support forOntology
. (#66)RdfXmlParser
support forowl:inverseOf
andrdfs:subPropertyOf
.
Synonym.xrefs
now returns a mutable set that can be used to addXref
to the synonym directly.
SynonymType.type
setter does not consider all synonym types as undeclared anymore. (#71)RdfXmlParser
crashing on synonym types definition without a label like in Uberon. (#67)FastoboSerializer
crashing when encountering a relationship with at least onereplaced_by
clause.
v2.0.1 - 2020-02-19
- Internal handling of ontology data forcing an
Ontology
to outlive all of theTerm
s created from it. Term.id
property missing a return type annotation.Term.equivalent_to
not returning aTermSet
but a set of strings.
- Refactored implementation of
SubclassesIterator
and
SuperclassesIterator
to make both use the interal subclassing cache. - Make
Term.is_leaf
use internal subclassing cache to make it run in constant time.
v2.0.0 - 2020-02-14
TermSet.subclasses
andTermSet.superclasses
methods to query all
the subclasses / superclasses of allTerm
.TermSet
class to the top-levelpronto
module.- Dynamic management of subclassing cache for the
Ontology
class. - Setters for
Term.consider
,Term.union_of
andTerm.intersection_of
.
cache
keyword argument for theOntology
.
SuperclassesIterator.to_set
being namedto_self
because of a typo.- Several bugs affecting the
fastobo
-backed serializer.
v1.2.0 - 2020-02-10
- Parameter
with_self
to disable reflexivity ofTerm.subclasses
andTerm.superclasses
iterators. TermSet
class which stores a set of terms efficiently while providing some useful shortcuts to access the underlying data.
- Moved code of
Term.subclasses
andTerm.superclasses
to a dedicated iterator class in thepronto.logic
submodule. - Dropped
contexter
requirement.
- Fix a typo in
Synonym.type
setter leading to a potential bug when the giventype
isNone
. - 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.
v1.1.5 - 2020-01-25
- Bumped
fastobo
tov0.7.0
, switching parser implementation to use multi-threading in order to speedup the parser process.
v1.1.4 - 2020-01-21
- Explicit support for Python 3.8.
- Support for Windows-style line endings (#53)
v1.1.3 - 2019-11-10
- Handling of some clauses in
FastoboParser
. OboSerializer
occasionaly missing lines between term and typedef frames.
- Missing docstrings to some
Entity
properties.
v1.1.2 - 2019-10-30
RdfXMLParser
crashing on entities withrdf:label
elements without literal content.
v1.1.1 - 2019-10-29
pronto.serializers
module not being embedded in Wheel distribution.
v1.1.0 - 2019-10-24
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 ofTerm.subclasses
.
Entity
subclasses now store theirid
directly to improve performance.Term.subclasses
andTerm.superclasses
usecollections.deque
instead ofqueue.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 toOntology
.
SynonymType
comparison implementation.Synonym.type
getter crashing ontype
not beingNone
.RdfXMLParser
crashing on synonymtypedefs without scope specifiers.
v1.0.0 - 2019-10-11
- Issues with typedef serialization in
FastoboSerializer
. Ontology.create_term
andOntology.create_relationship
not raisingValueError
when given an identifier already in the knowledge graph.- Signature of
BaseSerializer.dump
to removeencoding
argument. - Missing
__slots__
inEntity
in non-typechecking runtime.
- Bumped
fastobo
requirement tov0.6.0
.
v1.0.0-alpha.3 - 2019-10-10
- Extraction of
oboInOwl:consider
annotation inRdfXMLParser
. - Extraction of
oboInOwl:savedBy
annotation inRdfXMLParser
. - Extraction of
subsetdef
andsynonymtypedef
as annotation properties inRdfXMLParser
. - Support for
doap:Version
instead ofowl:VersionIri
for specification of ontology data version. - Proper comparison of
PropertyValue
classes, based on the lexicographic order of their serialization. Ontology.dump
andOntology.dumps
methods to serialize an ontology in obo or obojson format.
Metadata
not storing optional description of ID spaces if any.- Wrong type hints in
RelationshipData.equivalent_to_chain
.
- Added type checking to some more property setters.
- Avoid using
networkx
inTerm.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.
v1.0.0-alpha.2 - 2019-10-03
- Support for extraction of relationships from OWL/XML files to
OwlXMLParser
.
- Type hints of
RelationshipData.synonyms
attribute.
v1.0.0-alpha.1 - 2019-10-02
- 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.
- 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.
- OBO and JSON serialization support (for now).
Term.rchildren
andTerm.rparents
and stop making direction assumptions on relationships.