fix: pip install now working - #27
Merged
Merged
Conversation
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.
pip install xchem-hipposilently installed 1.0.5 instead of 2.x. Not apublishing failure — 2.0.2 was on PyPI and unyanked. Three independent blockers
made every 2.x candidate unresolvable, so pip backtracked to the last release
predating them. Silent because pip treats "no candidate for a dependency of
version V" as "reject V, try older".
django-rdkitis not on PyPI at all, and PyPI rejects direct-URL depsMolFieldvendored intohippo/designdb/rdkit_fields.pysyndirella>=5.0.7a0— every 5.x is>=3.10,<3.11xchem-syndirella>=1.0.6, which lifted the capuv syncalways worked, which is why this went unnoticed:[tool.uv.sources]git deps are workspace-only, and uv does not enforce a dependency's
requires-pythonwhere pip does.Changes
hippo/designdb/rdkit_fields.py(new) — vendoredMolFieldfromdjango-rdkit (BSD-3, attribution retained): serialization mixins, the three
cartridge lookups (
hassubstruct,issubstruct,exact) and 34 descriptortransforms.
RxnField/BfpField/SfpFieldomitted as unused.xchem-ta-auth-client>=1.0.0replaces the copy ofta_auth_connector.pythat had been vendored into the package; the target-access check in
bootstrap.pyis re-enabled.requires-python = ">=3.13"— floored by xchem-ta-auth-client.Deliberately no upper bound; see the comment in
pyproject.toml.python:3.13-slim, replacingjupyter/minimal-notebook. One interpreter and one environment instead of aconda/venv pair bridged by
PYTHONPATH, no forcedNB_USER, and JupyterLabserved from HIPPO's own dependency. Adds the system libraries the wheels
expect (
libexpat1,zlib1g,libx11-6,libxext6,libxrender1) and animport smoke test so a missing shared library fails the build rather than the
first script run.
tests/conftest.py— stubs the TA-authenticator lookup in theanimalfixture, since an unset
TA_AUTH_QUERY_KEYyields an empty access set andwould make
load_hippo()returnNone.target-versioncorrected topy313, and the vendored file cleaned upto satisfy the now-enabled linting of
hippo/.Verification
pip install --dry-runof the built wheel resolves on 3.13; off-targetinterpreters fail loudly instead of silently downgrading.
make lintclean;tests/test_compound.py+tests/test_pose.py= 3 passed, 1 skipped.
docker compose upserves JupyterLab;testscript_wf2.pyruns.
Known limitations
silent-fallback path stays open for unpinned installs on non-3.13
interpreters. README now leads with a pinned install command and explains why.
import syndirellarequires PyRosetta, which is not installed:xchem-fragmensteinsubstitutes a mock that cannot satisfy submodule imports.This affects nothing today — HIPPO does not import syndirella — but it will
need resolving before
Pose.posebusters()is ported.