Recent Releases of pronto

pronto - v2.7.0

Added

  • encoding argument to Ontology constructor to skip auto-detection if needed (#221, #241). ### Fixed
  • Broken implementation of EncodedFile.readinto causing issues with some encodings (#109).
  • tests module being included in site-install (#237).
  • Ignore Unicode BOM in BaseParser.can_parse if any.

- Python
Published by github-actions[bot] 12 months ago

pronto - v2.6.0

Added

  • Explicit support for Python 3.13.
  • OWL/XML and RDF/XML format support for Ontology.dump (#232, #149). ### Changed
  • Bump fastobo to v0.13.0.
  • Use pyproject.toml to store project metadata instead of setup.cfg. ### Fixed
  • RDF/XML parser not supporting owl:annotatedTarget given as attributes.
  • Warn when failing to parse a xref in RDF/XML class parser.
  • Allow undeclared synonym types in RDF/XML parser (#229).

- Python
Published by github-actions[bot] about 1 year ago

pronto - v2.5.8

Fixed

  • Extraction of implicit string annotation in RDF/XML files (#231).
  • RDF/XML parser crash on oboInOwl:SynonymTypeProperty when missing a scope (#230). ### Changed
  • Migrate documentation to PyData theme.

- Python
Published by althonos over 1 year ago

pronto - v2.5.7

Fixed

  • Handling of RDF datatypes in RDF/XML parser (#223.

- Python
Published by github-actions[bot] almost 2 years ago

pronto - v2.5.6

Added

  • Explicit support for Python 3.12. ### Fixed
  • Synonym types not being properly extracted by RDF/XML parser (#218).

- Python
Published by github-actions[bot] almost 2 years ago

pronto - v2.5.5

Fixed

  • replaced_by and consider 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).

- Python
Published by github-actions[bot] over 2 years ago

pronto - v2.5.4

Fixed

  • Entity.synonyms setter not accepting frozenset arguments as expected (#207). ### Changed
  • Bump supported networkx version to v3.0 (#206).

- Python
Published by github-actions[bot] almost 3 years ago

pronto - v2.5.3

Fixed

  • Crash in LineageIterator.to_set when starting from an empty set of entities.

- Python
Published by althonos about 3 years ago

pronto - v2.5.2

Added

  • Explicit support for Python 3.11. ### Changed
  • Bumped fastobo dependency to v0.12.2.
  • Bumped chardet dependency to v5.0.

- Python
Published by github-actions[bot] about 3 years ago

pronto - v2.5.0

Changed

  • Bumped fastobo dependecy to v0.12.1 ### Removed
  • Support for Python 3.6.

- Python
Published by althonos over 3 years ago

pronto - v2.4.7

Fixed

  • Serialization of is_class_level properties with fastobo-based serializers (#178).
  • Parsing of SynonymTypeProperty elements in RDF/XML without a label attribute (#176).

- Python
Published by althonos over 3 years ago

pronto - v2.4.6

Added

  • Setters for the holds_over_chain and equivalent_to_chain properties of Relationship objects. ### Fixed
  • Serialization of holds_over_chain properties with fastobo-based serializers (#175).

- Python
Published by github-actions[bot] over 3 years ago

pronto - 2.4.3

Added

  • Missing documentation for the pronto.Entity.relationships property. ### Fixed
  • RDX/XML parser crashing on files containing a relationship and a term with the same ID (#138).

- Python
Published by althonos over 4 years ago

pronto - 2.4.2

Added

  • Support for chardet version 4.0 (in addition to older 3.0). ### Fixed
  • Serialization of Ontology failing with non-empty idspaces.
  • Typo in OWL2 URL in README.md (#130).

- Python
Published by althonos over 4 years ago

pronto - 2.4.1

Changed

  • pronto.pv.PropertyValue is now an abstract class.
  • pronto.parsers.RdfXmlParser now ignores synonym Xrefs not in the right format. ### Fixed
  • pronto.Entity.definition documentation now lists return type as pronto.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. ### Removed
  • Implicit injection of lxml instead of xml.etree, which caused issues with RdfXmlParser.

- Python
Published by althonos about 5 years ago

pronto - 2.4.0

Added

  • Deprecation warnings for the retrieval of relationships via indexing, to be deprecated in v3. ### Changed
  • Replaced Travis-CI with GitHub Actions to handle continuous integration.
  • Bumped fastobo dependency to v0.10.0. ### Removed
  • Retrieval of terms via their alternate IDs (introduced in v2.3.0, caused multiple issues (#120, #126).

- Python
Published by althonos about 5 years ago

pronto - 2.3.2

Added

  • Support for path-like objects when creating an Ontology (#108). ### Fixed
  • Avoid decoding file-like objects if they are already UTF-8 encoded when creating an Ontology (#110).

- Python
Published by althonos about 5 years ago

pronto - 2.3.1

Fixed

  • pronto.entity package not being included in source distribution.

- Python
Published by althonos over 5 years ago

pronto - 2.3.0

Added

  • 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 like TermSet with shortcut attributes and proxying of actual Relationship instances.
  • Relationship.subproperties and Relationship.superproperties methods to add, remove, clear and iterate over the subproperties and superproperties of a Relationship instance.
  • Ontology.synonym_types method to count (via SizedIterator) 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. ### Changed
  • 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 and union_of properties of Relationship now return a RelationshipSet. ### Fixed
  • Outdated documentation in Term.subclasses describing the performances of the previous algorithm.
  • Possible AttributeError with the setter of the Entity.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 2.2.2.

- Python
Published by althonos over 5 years ago

pronto - 2.2.4

Changed

  • Make Entity.annotations return a mutable set and add a setter. ### Fixed
  • Term.relationship erroneously updating the Ontology._lineage cache.
  • Unneeded code in pronto.serializers._fastobo handling is_a clauses.

- Python
Published by althonos over 5 years ago

pronto - 2.2.3

Changed

  • Replaced frozendict with immutabledict (#90).
  • Bumped fastobo dependency to v0.9.0 to support inline comments.
  • Parsers will now process their imports in parallel using a thread pool. ### Fixed
  • Argument type checking in view layer is now disabled during the parsing phase to reduce overhead.

- Python
Published by althonos over 5 years ago

pronto - 2.2.2

Added

  • Extraction of basic relationships from RDF/XML documents. ### Fixed
  • Erroneous type annotations on Term.subclasses and Term.superclasses.
  • Bug with Term.equivalent_to setter crashing with a NameError.
  • Bug with Entity.synonyms setter not extracting synonym data.

- Python
Published by althonos over 5 years ago

pronto - 2.2.1

Fixed

  • 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 creating Ontology from file-handles not mapping to a filesystem location.

- Python
Published by althonos over 5 years ago

pronto - 2.2.0

Added

  • threads parameter to Ontology 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 owner Ontology.
  • Support for subclass/superclass edition directly from the objects returned by Term.subclasses() and Term.superclasses(). (#84) ### Changed
  • Updated fastobo to v0.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. ### Fixed
  • OBO parser crashing on files containing idspace clauses in their headers.
  • Reference management issue with binary operations of TermSet. ### Removed
  • nanoset depency, which was not useful anymore in Python 3.8 and caused issues with multithreading when processing OBO frames in parallel.

- Python
Published by althonos over 5 years ago

pronto - 2.1.0

Added

  • Synonym.xrefs now has a setter. (#70)
  • pickle support for Ontology. (#66)
  • RdfXmlParser support for owl:inverseOf and rdfs:subPropertyOf. ### Changed
  • Synonym.xrefs now returns a mutable set that can be used to add Xref to the synonym directly. ### Fixed
  • 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 one replaced_by clause.

- Python
Published by althonos almost 6 years ago

pronto - 2.0.1

Fixed

  • Internal handling of ontology data forcing an Ontology to outlive all of the Terms created from it.
  • Term.id property missing a return type annotation.
  • Term.equivalent_to not returning a TermSet but a set of strings. ### Changed
  • 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.

- Python
Published by althonos about 6 years ago

pronto - 2.0.0

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.

- Python
Published by althonos about 6 years ago

pronto - 1.2.0

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.

- Python
Published by althonos about 6 years ago

pronto - 1.1.5

Changed

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

- Python
Published by althonos about 6 years ago

pronto - 1.1.4

Added

  • Explicit support for Python 3.8.
  • Support for Windows-style line endings (#53)

- Python
Published by althonos about 6 years ago

pronto - 1.1.3

Fixed

  • Handling of some clauses in FastoboParser.
  • OboSerializer occasionaly missing lines between term and typedef frames. ### Added
  • Missing docstrings to some Entity properties.

- Python
Published by althonos over 6 years ago

pronto - 1.1.2

Fixed

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

- Python
Published by althonos over 6 years ago

pronto - 1.1.1

Fixed

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

- Python
Published by althonos over 6 years ago

pronto - 1.1.0

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.

- Python
Published by althonos over 6 years ago

pronto - 1.0.0

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.

- Python
Published by althonos over 6 years ago

pronto - 1.0.0-alpha.3

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.

- Python
Published by althonos over 6 years ago

pronto - 1.0.0-alpha.2

Added

  • Support for extraction of relationships from OWL/XML files to OwlXMLParser. ### Fixed
  • Type hints of RelationshipData.synonyms attribute.

- Python
Published by althonos over 6 years ago

pronto - 1.0.0-alpha.1

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.

- Python
Published by althonos over 6 years ago

pronto - v0.10.2

  • Fix bug with property annotation on restriction classes

- Python
Published by althonos over 8 years ago

pronto - v0.10.1

  • Fix multi-line summary making PyPI deny the package
  • Fix sdist format to release a zip file

- Python
Published by althonos over 8 years ago

pronto - v0.10.0

  • Add support for descriptions with xrefs given by Axioms in OwlXML ontologies
  • Drop support of OwlXMLTargetParser
  • Remove debug code
  • Improve docstrins and documentation

- Python
Published by althonos over 8 years ago

pronto -

  • Relicense to MIT
  • Add Description class inheriting from string to hold xrefs
  • Use pkg_resources to get the version of the module
  • Remove import safeguards in __init__.py : import pronto will fail if some of the dependencies are missing
  • Add repr method to Ontology
  • Add test and dev extras
  • Improve docstrings

- Python
Published by althonos over 8 years ago

pronto - v0.8.0

  • Allow creating an Ontology directly from a stream
  • Allow data-based parser discovery using a 1KiB data block
  • Improve README
  • Drop CI support for Python 2.6

- Python
Published by althonos over 8 years ago

pronto -

  • Make setup.py Python2.6 compatible
  • Fix obo export to display synonyms in lexicographic order
  • Fix terms not being exported in obo correctly
  • Fix error occuring when calling Synonym.obo
  • Fix bug causing synonyms not being imported from obo files

- Python
Published by althonos over 8 years ago

pronto - v0.7.3

  • Fix tests being added to source distribution

- Python
Published by althonos almost 9 years ago

pronto -

  • Fix owl parser crashing on inline comments in some specific files
  • Add decorator to silence warnings in xml target parser code

- Python
Published by althonos almost 9 years ago

pronto - v0.7.1

  • Switch to coroutines for Obo parsing
  • Add support for Python 3.6
  • Fix several bugs
  • Embed custom materials in tests

- Python
Published by althonos almost 9 years ago

pronto -

- Python
Published by althonos almost 9 years ago

pronto - v0.6.2

  • Fix unpickling of Term not adding back attributes

- Python
Published by althonos about 9 years ago

pronto - v0.6.1

  • Fix requirements-test.txt not being embedded in the wheelfile

- Python
Published by althonos over 9 years ago

pronto - v0.6.0

  • Completely rewrote Parsers in a Pythonic, non-multiprocessed way
  • Remove lxml from requirements. pronto now looks for any available xml parser among (in that order): lxml, xml.etree.cElementTree, xml.etree.ElementTree.
  • Added a second OwlXML parser using a TargetCollector instead of building a tree, that is longer but less memory-hungry
  • Added a 'parser' kwarg to Ontology to force usage of a parser.
  • Removed Parser being imported with 'from pronto import *'
  • Implemented partial Unicode sandwich, at least in Relationship. Complete use of unicode internals is a v1.0.0 requirement.
  • Added a try/except block to use enums if available to represent the current section of the files parsers are exploring
  • Ensured PyPy support
  • Add full support in Python3 and partial support in Python2 of gzipped files parsing.
  • Refactored tests. Now all tests are run through the unittest interface, even doctest.
  • Cleaned dead code

- Python
Published by althonos over 9 years ago

pronto - v0.5.0

  • Use six functions when possible
  • Add try/except blocks to pronto/init.py (will stop raising ImportError if six is not installed)
  • Add support for obo defined relationships (typedef)
  • Add support for gzipped ontology files
  • Revert to nested loops in Ontology.reference (may improve performance in versions other than 3.5)

- Python
Published by althonos over 9 years ago

pronto - v0.4.2

  • Fix obo export with utf-8 chars

- Python
Published by althonos over 9 years ago

pronto - v0.4.1

  • Fix owl parser
  • Fix obo export on headerless ontology files

- Python
Published by althonos over 9 years ago

pronto - v0.4.0

  • Changed Term obo export to be more compliant with the Obo File Format
  • Added metadata extraction of Owl files (for now, only oboInOwl tags are supported, but more xml namespaces will be added
  • Added obo export of metadata (Obo headers)
  • Switched imports to absolute imports
  • Reversed to the stdlib multiprocessing.queues.Queue implementation. This should fix both deadlocks and #4, but sometimes produces a BrokenPipeError in background processes after the end of the parsing...
  • Enhanced API documentation
  • Fixed occasional duplication of Terms in TermList

- Python
Published by althonos over 9 years ago

pronto - v0.3.3

  • Attempted compatibility patch for multiprocessing to work with Mac OS X

- Python
Published by althonos over 9 years ago

pronto -

  • Improved Python2/3 compatibility & performance using six

- Python
Published by althonos over 9 years ago

pronto -

  • Added a stricter timeout to ontology opening to avoid waiting ages for each imports

- Python
Published by althonos over 9 years ago

pronto -

  • Increased multiprocessing support
  • Made all pronto types pickable (protocol >=2 required)
  • Fix many performance issues

- Python
Published by althonos over 9 years ago

pronto - v0.2.1

  • Fix Relationships other than predefined ones not extracting
  • Moved Relationship class properties bottomup and topdown to class methods

- Python
Published by althonos over 9 years ago

pronto - v0.2.0

  • Relationship are now extracted as objects
  • Children, parents, rchildren and rparents properties and methods of each Term are now memoized
  • Relationship classes have a Lock class property to avoid data races when Relationship objects may be created at the same time they are iterated over

- Python
Published by althonos over 9 years ago