Repository navigation
Vj/ferrific concept recognizer - #124
Merged
Merged
Conversation
Wraps fast_hpo_cr (FastHPOCR on PyPI) as an opt-in third recognizer, never installed by default. Works around two real upstream packaging issues: FastHPOCR's own PyPI release doesn't declare pronto as a dependency despite needing it, and its README's ~3-minute indexing estimate is closer to 19 minutes against a real, current hp.obo - both documented honestly rather than silently absorbed. Index is built once and cached on disk; excluded is always False since fast_hpo_cr has no negation detection.
Mirrors fenominal_cr.py's shape, using ferrific's native map_text_longest output instead of a JSON round trip. Not yet added to pyproject.toml's pinned dependencies - ferrific's published PyPI version (0.1.2) predates this session's fast_hpo_cr-parity work; wiring the real pin waits for a new release. Verified locally via maturin develop: all tests pass, including the two cases fenominal xfails (Dandy-Walker malformation, multi-item negation-scope leaks) - ferrific closes both.
ferrific published its first real PyPI release, so this replaces the local maturin-develop-only build with a real, exact pin - matching fast_hpo_cr's optional-extra treatment, never installed by default. Also moves ferrific's import inside FerrificConceptRecognizer.__init__ so importing the module doesn't require the package to be installed unless the class is actually instantiated.
Lets a caller choose fenominal, ferrific, fast_hpo_cr, or an ordered chain of them, instead of always constructing FenominalConceptRecognizer. Each name is imported lazily so selecting one engine never requires the others' optional packages. Default stays fenominal, so every existing caller is unaffected.
pip-audit found 13 known vulnerabilities in 6 packages; this closes 11 of them (command injection in click, predictable /tmp dir in pytest, plus idna/tornado/urllib3's own fixes). protobuf's 2 remaining CVEs are documented separately as currently unfixable.
Neither workflow performs an OIDC token exchange - only cd.yaml needs it, and already has it correctly job-scoped. Same fix already applied to ferrific's equivalent workflows.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add
ferrificandfast_hpo_cras optional HPO concept recognizers as I continue to test the text parsing, especially on the Observer files