fix: cap exca to restore a working clean install#67
Open
adi-suresh01 wants to merge 1 commit into
Open
Conversation
neuralset 0.0.2 references exca.steps.base.NoValue, which was removed in
exca 0.5.26 (the symbol moved to exca.steps.identity). neuralset 0.0.2
declares exca>=0.5.20, so a fresh install resolves exca 0.5.26 and fails
at import time:
AttributeError: module 'exca.steps.base' has no attribute 'NoValue'
(neuralset/events/study.py, in StudyLoader.run)
tribev2 also imports exca directly (exca.ConfDict, exca.TaskInfra) without
declaring it. This adds exca as an explicit dependency, capped to the range
that exposes the API neuralset 0.0.2 relies on (0.5.20 through 0.5.25).
Verified in a clean Python 3.12 venv: install now resolves exca 0.5.25 and
'from tribev2.demo_utils import TribeModel' imports successfully.
Closes facebookresearch#65
|
Thank you very much. This solves the import problems but now produces new errors. |
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.
Summary
A clean install of
tribev2currently fails at import time because of anexcaAPI change. This capsexcato a compatible range so a fresh install works again, and declaresexcaas an explicit dependency since the package imports it directly.Closes #65 (also addresses the install failures reported in #2 and #27's environment).
Root cause
neuralset==0.0.2(the pinned version) referencesexca.steps.base.NoValueinneuralset/events/study.py:excaexposedNoValueunderexca.steps.base(re-exported fromexca.steps.backends) up to and including0.5.25. In0.5.26the symbol was moved toexca.steps.identityand the re-export was dropped. Becauseneuralset==0.0.2only constrainsexca>=0.5.20, a fresh install resolves the latestexca(0.5.26) and fails:tribev2also importsexcadirectly (from exca import ConfDict, TaskInfrainmain.pyanddemo_utils.py) without declaring it, so the version it gets is left entirely to transitive resolution.Change
No source changes. Bumping
neuralset/neuraltrainto a newer release is not a viable alternative here: every published version after 0.0.2 (0.0.3 through 0.2.2) removesAddTextfromneuralset.events.transforms, whichtribev2/demo_utils.pyimports, so a version bump trades this error for anImportError. Cappingexcakeeps the code unchanged.Verification
Reproduced and fixed in a clean Python 3.12 virtualenv.
Before (current
main, resolves exca 0.5.26):After (this branch, resolves exca 0.5.25):
Note
This is a compatibility cap, not a permanent fix. The cleaner resolution is to publish a
neuralsetrelease that targets the currentexcaAPI; once that exists, the cap can be relaxed. Until then this restores a working install for everyone.