pronto

A Python frontend to (Open Biomedical) Ontologies.

MIT License

Downloads
66K
Stars
224
Committers
13

Bot releases are visible (Hide)

pronto - 2.2.0

Published by althonos over 4 years ago

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.
pronto - 2.1.0

Published by althonos over 4 years ago

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.
pronto - 2.0.1

Published by althonos over 4 years ago

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.
pronto - 2.0.0

Published by althonos over 4 years ago

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.
pronto - 1.2.0

Published by althonos over 4 years ago

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.
pronto - 1.1.5

Published by althonos almost 5 years ago

Changed

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

Published by althonos almost 5 years ago

Added

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

Published by althonos almost 5 years ago

Fixed

  • Handling of some clauses in FastoboParser.
  • OboSerializer occasionaly missing lines between term and typedef frames.

Added

  • Missing docstrings to some Entity properties.
pronto - 1.1.2

Published by althonos almost 5 years ago

Fixed

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

Published by althonos almost 5 years ago

Fixed

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

Published by althonos about 5 years ago

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.
pronto - 1.0.0

Published by althonos about 5 years ago

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.
pronto - 1.0.0-alpha.3

Published by althonos about 5 years ago

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.
pronto - 1.0.0-alpha.2

Published by althonos about 5 years ago

Added

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

Fixed

  • Type hints of RelationshipData.synonyms attribute.
pronto - 1.0.0-alpha.1

Published by althonos about 5 years ago

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.
pronto - v0.10.2

Published by althonos almost 7 years ago

  • Fix bug with property annotation on restriction classes
pronto - v0.10.1

Published by althonos almost 7 years ago

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

Published by althonos almost 7 years ago

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

Published by althonos about 7 years ago

  • 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
pronto - v0.8.0

Published by althonos about 7 years ago

  • 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