Changelog
October 25, 2025 ยท View on GitHub
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.
Unreleased
v0.14.1 - 2025-10-25
Fixed
- Compilation of Python 3.14 wheels.
- Documentation of
QualifierandQualifierList.
v0.14.0 - 2025-10-25
Changed
- Bump
pyo3tov0.27.1. - Bump
fastobotov0.15.5. - Use
BoundAPI ofpyo3while the GIL is held where applicable.
Added
- Support for accessing the
qualifiersandcommentof anyAbstractEntityClause(#365).
v0.13.0 - 2025-02-14
Added
- Support for exporting to OWL/XML and RDF/XML syntaxes in
fastobo.dump_owl. - Support for
os.PathLikearguments as files in allfastobotop-level functions.
Changed
- Bump
pyo3tov0.23.4. - Bump
fastobotov0.15.4. - Bump
fastobo-owltov0.3.2. - Bump
horned-owltov1.0. - Bump
synderive dependency tov2.0. - Use
maturininstead ofsetuptools-rustto build the project withpip. - Use PyData theme to render the Sphinx documentation.
Removed
fastobo.syn.SynonymScopetype (replaced by literal strings where applicable).
v0.12.3 - 2023-12-06
Added
- Explicit support for Python 3.12.
Changed
- Bump
pyo3tov0.19.2. - Make
DisconnectedChannelErrorinherit fromRuntimeErrorinstead ofChildProcessError.
v0.12.2 - 2022-12-06
Added
- Explicit support for Python 3.11.
- Pre-built wheels for MacOS
aarch64platforms.
Changed
- Bump
pyo3tov0.17.3. - Bump
fastobotov0.15.1. - Bump
fastobo-graphstov0.4.8.
v0.12.1 - 2022-07-08
Changed
- Stop releasing the GIL when loading an ontology from a file to fix Windows compilation.
v0.12.0 - 2022-07-08
Changed
- Improve handling of exceptions in Rust code.
- Bump
pyo3dependency tov0.16. - Intern constant strings returned by
raw_tagmethods of clause objects.
Fixed
- Compilation of
fastoboextension with newersetuptools-rustversions (#300).
Removed
- Support for Python 3.6.
v0.11.1 - 2022-01-23
Fixed
- Extraction of date argument when creating a
CreationDateClause. - Skip displaying empty xrefs in
fastobo.typedef.DefClause.__repr__.
v0.11.0 - 2022-01-23
Added
fastobo.exceptionsmodule with dedicated exception types to report specific errors.fastobo.dump_owlto convert and write an OBO document to an OWL ontology (usingfastobo-owlandhorned-owl) in Functional-style syntax (usinghorned-functional).
Changed
- Bumped
fastobotov0.14.0. - Bumped
fastobo-graphstov0.4.4. DateClausemay now store adatetime.dateinstead of adatetime.datetimeif the source document contains a date without time specifier.- PyPI source distribution now contains vendored Rust sources, allowing compilation without network access.
Fixed
setup.pyscript not auto-installing the Rust compiler in latestsetuptools_rustversions.
v0.10.2-post1 - 2021-09-19
Added
- Aarch64 wheels built from GitHub Actions and deployed to PyPI (#245).
v0.10.2 - 2021-08-02
Changed
- Bumped
pyo3dependency tov0.14.1.
Fixed
fastobo.itererroneously wrappingSyntaxErrorraised in the header into aTypeError.
v0.10.1 - 2021-03-30
Changed
- Bumped
fastobodependency tov0.13.1.
Fixed
- Curly braces not being properly escaped when writing unquoted strings.
v0.10.0 - 2021-02-19
Added
__hash__implementation tofastobo.id.BaseIdentsubclasses.__init__method to classes missing one infastobo.header.
Changed
- Bumped
pyo3dependency tov0.13.2. - Bumped
fastobodependency tov0.13.0.
Fixed
- Broken
__repr__implementation for some types.
Removed
unsafeblocks in derive macros implementation ofIntoPyObjectfor OBO clauses.- Support for Python 3.5.
fastobo.id.IdentPrefixandfastobo.id.IdentLocalclasses.
v0.9.3 - 2020-12-04
Fixed
setup.pycrashing when compiling from source on a platform with stable Rust as the default toolchain (#182, thanks to @alexhenrie).
v0.9.2 - 2020-09-04
Changed
- Bumped
fastobotov0.11.2.
v0.9.1 - 2020-08-15
Added
- Wheel compilation for older OSX versions.
- Automatic download on UNIX platforms for platforms without
rustcinstalling from source distribution.
v0.9.0 - 2020-07-29
Changed
- Bumped
fastobotov0.10.0to support comment lines. - Bumped
pyo3tov0.11.1.
Fixed
fastobo.id.parsewill chain the eventualSyntaxErrorto theValueErrorraised if the identifier is invalid.- Python threads are now released during intensive operations running only on the Rust side.
v0.8.2 - 2020-06-16
Fixed
OboDocnot implementing list methods (.append, etc.).
v0.8.1 - 2020-06-14
Changed
- Bumped
fastobotov0.9.0. - Bumped
fastobo-graphstov0.3.0.
Added
fastobo.id.is_validfunction to check whether or not a string is a valid OBO identifier.
v0.8.0 - 2020-06-12
Changed
- Bumped
fastobotov0.8.4. - Bumped
pyo3tov0.10.1. - Removed occurences of unsafe code for Python type management.
- Reduced number of GIL acquisition where possible.
- Changed implementation of file wrappers to use
PyAnywhere applicable.
Added
- Configuratble support for multithreading in
fastobo.iter,fastobo.loadandfastobo.loadsusing thethreadskeyword argument.
v0.7.2 - 2020-02-12
Changed
- Bumped
fastobotov0.8.3to fixDisplayimplementation offastobo::ast::IsoDateTime.
v0.7.1 - 2020-02-11
Changed
- Bumped
fastobotov0.8.2to fixDisplayimplementation ofHeaderClause::Unreservedvariant. - Bumped
builtbuild-dependency tov0.4.0.
v0.7.0 - 2020-01-24
Changed
- Bumped
fastobotov0.8.1to use multi-threaded parser implementation. - Added
orderedkeyword argument to top-levelfastobofunction to disable requirement to parse the document in order-preserving mode.
v0.6.2 - 2020-01-18
Added
- Compilation of Python 3.8, PyPy 3.5 and PyPy 3.6 wheels for OSX.
Fixed
- Bumped
fastobotov0.7.5, which should finally support Windows style line-endings.
v0.6.1 - 2019-11-19
Added
- Compilation of Python 3.8 wheels for Linux and Windows (#67).
Fixed
BaseTypedefClausenot being declared infastobo.typdefsubmodule.fastobo.idmodule performing unneeded string allocation.
v0.6.0 - 2019-10-08
Added
__init__to all classes offastobo.typedef.
Changed
- Renamed
termfield offastobo.typedef.Relationshiptotarget.
v0.5.4 - 2019-10-08
Added
__init__implementation forfastobo.doc.OboDoc.__init__implementation forfastobo.term.ConsiderClause.__init__implementation forfastobo.term.IsObsoleteClause.- Add constructor signatures to classes in
fastobo.termandfastobo.header.
Changed
- Bumped
pyo3dependency tov0.8.1.
Fixed
- Automatic generation of
pyproject.tomlinsdist.
v0.5.3 - 2019-10-06
Added
__init__anddategetter toCreationDateClausein bothfastobo.termandfastobo.typedefwith proper timezone support.
v0.5.2 - 2019-09-28
Added
- Getters for
ReplacedByClauseinfastobo.typedef.
Fixed
PyFileGILRead(used infastobo.iter) should now be thread safe.
v0.5.1 - 2019-09-19
Added
- Getters for
ExpandExpressionToClauseandExpandAssertionToClauseinfastobo.typedef.
Fixed
- Missing
NamespaceIdRuleClauseclass is now a member offastobo.header.
v0.5.0 - 2019-09-18
Added
fastobo.iterfunction to iterate over the entity frames of an OBO document.From<std::io::Error>impl forError.
Changed
OboDoccannot be subclassed anymore.
v0.4.2 - 2019-09-16
Added
- Getters for
IsClassLevelClauseandIsMetadataTaginfastobo.typedef. - Getters for
RelationshipClauseinfastobo.term.
Changed
- Inconsistent naming for
PropertyValueClausebetweenfastobo.headerand other submodules.
Fixed
- Bug with
fastobo.header.ImportClause.referencereturning the whole clause serialization instead.
v0.4.1 - 2019-09-15
Added
- Precompiled wheels for CPython 3.5, 3.6 and 3.7 on Windows x86-64.
v0.4.0 - 2019-09-14
Added
__init__implementation forfastobo.term.DefClause__init__implementation forfastobo.syn.Synonym- Precompiled wheels for PyPy3 on OSX and Linux.
Fixed
XrefList.__repr__implementation entering infinite recursion.- Derive macros generating weird error messages for some
TypeErrors. - Enabled
extension-modulefeature ofpyo3to allow static linking to Python interpreter. - Inconsistent error-chaining in Python causing issues with
try/exceptblocks.
v0.3.3 - 2019-09-10
Changed
- Use stable PyO3 release (
v0.8.0). - Add back
__build__attribute to check build variables.
v0.3.2 - 2019-08-29
Added
- Added BOSC 2019 poster reference to
README.md. - Added
__richcmp__implementation tofastobo.id.PrefixedIdent.
Changed
- Bumped Rust dependencies to latest PyO3 version.
v0.3.1 - 2019-08-08
Fixed
PyFile.writecallingwritewith two arguments causing duck typing check to fail all the time indump_graph.
v0.3.0 - 2019-08-08
Added
load_graphanddump_graphfunctions to read and write OBO JSON files.
Changed
- Updated to
fastobov0.7.1.
v0.2.2 - 2019-07-24
Changed
- Updated to
fastobov0.6.1. - Updated to
urlv2.0.0.
v0.2.1 - 2019-07-23
Changed
- Updated to
fastobov0.6.0.
Fixed
- Parser now accepts ISO 8601 dates with fractional second.
v0.2.0 - 2019-07-22
Changed
- Updated to
fastobov0.5.0.
Added
- Support for OBO graph deserialization using
fastobo-graphs. - Limited support for instance frames in
fastobo.instancemodule. - Methods
OboDoc.compact_idsandOboDoc.decompact_idsto create semantically equivalent OBO document with compacted/decompacted identifiers.
v0.1.1 - 2019-06-28
Fixed
- PyPI release not being uploaded because of older development release.
v0.1.0 - 2019-06-28
Initial release.