Recent Releases of pronto
pronto - v2.7.0
Added
encodingargument toOntologyconstructor to skip auto-detection if needed (#221, #241). ### Fixed- Broken implementation of
EncodedFile.readintocausing issues with some encodings (#109). testsmodule being included in site-install (#237).- Ignore Unicode BOM in
BaseParser.can_parseif 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
fastobotov0.13.0. - Use
pyproject.tomlto store project metadata instead ofsetup.cfg. ### Fixed - RDF/XML parser not supporting
owl:annotatedTargetgiven 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.5
Fixed
replaced_byandconsiderattributes not being extracted from RDF/XML documents on missing RDF datatype (#209).- Hard requirement on
multiprocessing.poolpreventing the package to work single-threaded on more restrictive environments (#208).
- Python
Published by github-actions[bot] over 2 years ago
pronto - 2.4.1
Changed
pronto.pv.PropertyValueis now an abstract class.pronto.parsers.RdfXmlParsernow ignores synonym Xrefs not in the right format. ### Fixedpronto.Entity.definitiondocumentation now lists return type aspronto.definition.Definitionas expected.- CURIE compaction in RDF/XML not being handled consistently, causing some crashes on ontologies using aliased relationships.
pronto.utils.typechecked.disabledis now reentrant and should not be disabled in multithreaded contexts anymore. ### Removed- Implicit injection of
lxmlinstead ofxml.etree, which caused issues withRdfXmlParser.
- 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
fastobodependency tov0.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.0
Added
- Retrieval of entities via their alternate IDs on the source
Ontology. - Direct edition of entity relationships via the
Relationshipsview. __all__attribute to all modules of the data model.RelationshipSetcontainer likeTermSetwith shortcut attributes and proxying of actualRelationshipinstances.Relationship.subpropertiesandRelationship.superpropertiesmethods to add, remove, clear and iterate over the subproperties and superproperties of aRelationshipinstance.Ontology.synonym_typesmethod to count (viaSizedIterator) and iterate over the synonym types of an ontology and all of its imports.Ontology.get_synonym_typemethod 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_bytransitive_overandunion_ofproperties ofRelationshipnow return aRelationshipSet. ### Fixed- Outdated documentation in
Term.subclassesdescribing the performances of the previous algorithm. - Possible
AttributeErrorwith the setter of theEntity.synonymsproperty. - 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.3
Changed
- Replaced
frozendictwithimmutabledict(#90). - Bumped
fastobodependency tov0.9.0to 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.subclassesandTerm.superclasses. - Bug with
Term.equivalent_tosetter crashing with aNameError. - Bug with
Entity.synonymssetter 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_symmetricclauses in OBO typedefs. - Xrefs not being extracted when declared as axioms in RDF/XML documents.
ResourceWarningwhen creatingOntologyfrom file-handles not mapping to a filesystem location.
- Python
Published by althonos over 5 years ago
pronto - 2.2.0
Added
threadsparameter toOntologyconstructor 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_apseudo-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) ### Changed - Updated
fastobotov0.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
Xrefinstantiation. - Improved performance in debug mode by having the typechecker only extract the wrapped function signature once. ### Fixed
- OBO parser crashing on files containing
idspaceclauses in their headers. - Reference management issue with binary operations of
TermSet. ### Removed nanosetdepency, 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.xrefsnow has a setter. (#70)picklesupport forOntology. (#66)RdfXmlParsersupport forowl:inverseOfandrdfs:subPropertyOf. ### ChangedSynonym.xrefsnow returns a mutable set that can be used to addXrefto the synonym directly. ### FixedSynonymType.typesetter does not consider all synonym types as undeclared anymore. (#71)RdfXmlParsercrashing on synonym types definition without a label like in Uberon. (#67)FastoboSerializercrashing when encountering a relationship with at least onereplaced_byclause.
- Python
Published by althonos almost 6 years ago
pronto - 2.0.1
Fixed
- Internal handling of ontology data forcing an
Ontologyto outlive all of theTerms created from it. Term.idproperty missing a return type annotation.Term.equivalent_tonot returning aTermSetbut a set of strings. ### Changed- Refactored implementation of
SubclassesIteratorand
SuperclassesIteratorto make both use the interal subclassing cache. - Make
Term.is_leafuse internal subclassing cache to make it run in constant time.
- Python
Published by althonos about 6 years ago
pronto - 2.0.0
Added
TermSet.subclassesandTermSet.superclassesmethods to query all
the subclasses / superclasses of allTerm.TermSetclass to the top-levelprontomodule.- Dynamic management of subclassing cache for the
Ontologyclass. - Setters for
Term.consider,Term.union_ofandTerm.intersection_of. ### Removed cachekeyword argument for theOntology. ### FixedSuperclassesIterator.to_setbeing namedto_selfbecause 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_selfto disable reflexivity ofTerm.subclassesandTerm.superclassesiterators. TermSetclass which stores a set of terms efficiently while providing some useful shortcuts to access the underlying data. ### Changed- Moved code of
Term.subclassesandTerm.superclassesto a dedicated iterator class in thepronto.logicsubmodule. - Dropped
contexterrequirement. ### Fixed - Fix a typo in
Synonym.typesetter leading to a potential bug when the giventypeisNone. - Fix miscellaneous bugs found with
mypy. fastoboserializer crashing on namespace clauses because of a type issue.fastoboparsers using data version clauses as format version clauses.
- Python
Published by althonos about 6 years ago
pronto - 1.1.0
Added
Entity.add_synonymmethod to create a new synonym and add it to an entity.@roundreprnow adds a minimal docstring to the generated__repr__method.Ontologycaches subclassing relationships to greatly improve performance ofTerm.subclasses. ### ChangedEntitysubclasses now store theiriddirectly to improve performance.Term.subclassesandTerm.superclassesusecollections.dequeinstead ofqueue.Queueas a LIFO structure since thread-safety is not needed.chardetresult is now used even when prediction confidence is under 100% to detect encoding of the handle passed toOntology. ### FixedSynonymTypecomparison implementation.Synonym.typegetter crashing ontypenot beingNone.RdfXMLParsercrashing 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_termandOntology.create_relationshipnot raisingValueErrorwhen given an identifier already in the knowledge graph.- Signature of
BaseSerializer.dumpto removeencodingargument. - Missing
__slots__inEntityin non-typechecking runtime. ### Changed - Bumped
fastoborequirement tov0.6.0.
- Python
Published by althonos over 6 years ago
pronto - 1.0.0-alpha.3
Added
- Extraction of
oboInOwl:considerannotation inRdfXMLParser. - Extraction of
oboInOwl:savedByannotation inRdfXMLParser. - Extraction of
subsetdefandsynonymtypedefas annotation properties inRdfXMLParser. - Support for
doap:Versioninstead ofowl:VersionIrifor specification of ontology data version. - Proper comparison of
PropertyValueclasses, based on the lexicographic order of their serialization. Ontology.dumpandOntology.dumpsmethods to serialize an ontology in obo or obojson format. ### FixedMetadatanot 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
networkxinTerm.subclasses. fastobo-derived parsers will not create a new entity if one exists in the graph of dependencies already.- Exposed
pronto.warningsand 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.synonymsattribute.
- 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,SynonymTypecompare only based on their ID.Subset,Definitioncompare only based on their textual value. ### Added- Support for OBO JSON parser based on
fastobo. - Provisional
mypytype hints. - Type checking for most properties in
__debug__mode. - Proper
reprimplementation 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.rchildrenandTerm.rparentsand stop making direction assumptions on relationships.
- Python
Published by althonos over 6 years ago
pronto -
- Relicense to MIT
- Add
Descriptionclass inheriting from string to hold xrefs - Use pkg_resources to get the version of the module
- Remove import safeguards in
__init__.py:import prontowill fail if some of the dependencies are missing - Add repr method to
Ontology - Add
testanddevextras - Improve docstrings
- 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 -
- Fix
owlparser 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.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.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 -
- 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.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