Releases: alea-institute/folio-python
Releases · alea-institute/folio-python
v0.3.6
Changes
- Docs: Migrated user-facing documentation to openlegalstandard.org/resources/folio-python-library — a comprehensive 9-page reference covering install, search, structured queries, taxonomy, properties and triples, serialization, LLM integration, and a complete API surface for
FOLIO,OWLClass,OWLObjectProperty, andFOLIOConfiguration. Every code snippet is validated against the published wheel. - Removed:
docs/directory (Sphinx site that targeted the broken folio-python.readthedocs.io) - Removed:
.readthedocs.yaml(RTD config no longer needed) - Removed:
.github/workflows/publish.yml(Trusted Publisher workflow that was never wired up; releases are published locally viauv build && uvx twine upload) - Updated: README documentation link now points at openlegalstandard.org; logo path moved from
docs/_static/folio-logo.pngtoassets/folio-logo.png - Updated: CONTRIBUTING.md notes that user-facing docs live in the openlegalstandard.org repo
Closes #14.
Full Changelog
v0.3.5
Changes
- Added:
case_sensitiveparameter (defaultFalse) onsearch_by_prefix()— lowercase and mixed-case queries now match labels via a parallel lowercase MARISA trie usingstr.casefold()for Unicode-safe folding - Changed:
search_by_prefix()ranks primary-label matches before alt-label matches and deduplicates results by IRI; affects default ordering for queries likeMich,Tax, andCal - Fixed: Case-sensitive
search_by_prefix()no longer returns duplicate entries when a class matches a prefix via both its label and an alt-label - Fixed: Prefix caches are now cleared on
refresh()to avoid stale results - Fixed:
folio.__version__was stuck at0.3.0since v0.3.0; now trackspyproject.toml
Thanks to @damienriehl for the implementation in #16. Follow-up #17 tracks the larger ranking-function rework.
Note: The ReadTheDocs documentation site is currently down (#14). Documentation is being migrated to https://openlegalstandard.org — link updates will follow in a separate change.
Full Changelog
v0.3.4
Changes
- Fix: Include lang-tagged altLabels in search index with deduplication — 90% of altLabels (52K of 57K) were previously invisible to
search_by_label() - Backfilled CHANGES.md for v0.3.1–v0.3.3
Full Changelog
v0.3.0
What's Changed
New Features
FOLIO.query()— Structured concept queries with composable text and structural filters (label, definition, alt_label, example, any_text, branch, parent_iri, has_children, deprecated, country). Supports substring, exact, regex, and fuzzy match modes.FOLIO.query_properties()— Structured property queries with text filters (label, definition) and structural filters (domain_iri, range_iri, has_inverse).
Bug Fixes
- Fix: Make
alea_llm_clientimport optional — Base install (pip install folio-python) no longer crashes withModuleNotFoundError. LLM features requirepip install folio-python[search]. (Closes #10)
Documentation
- Document
[search]extra in installation instructions (Closes #10) - Add soli-python migration note for users hitting httpx conflicts (Closes #9)
- Add Structured Queries section with
query()andquery_properties()examples - Add CLAUDE.md with project conventions
Other
- Add regression tests for prefLabel indexing fix from v0.2.1 (Closes #12)
- Replace black with ruff in dev dependencies (resolves CVE in black < 26.3.1)
- Apply ruff format across codebase
- Add Python 3.13 and 3.14 classifiers
- Published to PyPI (supersedes v0.2.1 which was GitHub-only)
Full Changelog: v0.2.1...v0.3.0
v0.2.1
What's Changed
Bug Fixes
- Index preferred_label (skos:prefLabel) for search — Add
preferred_labeltoalt_label_to_indexduring class parsing andproperty_label_to_indexduring property parsing, so that prefLabels are included in the marisa-trie and found bysearch_by_prefix()andsearch_by_label(). Previously,preferred_labelwas parsed and stored but never indexed, making entities unfindable by their canonical name.
Full Changelog: v0.2.0...v0.2.1