echoing-farmer-15630
04/01/2022, 9:49 AM1976.7s Generate lockfile for python-default
I eventually gave up after those 30 minutes and took out lockfile_generator="pex"
and poetry spit out a 212k lockfile in 25 sec.
Admittedly I have a pretty unclean setup (I'm trying to generate requirements from what was my old constraints.txt file, which represents a pip freeze
of the project, so it's sort of generating a lockfile from a lockfile). But that difference was pretty striking and if the new pex-based JSON-style lockfiles are faster to use after generation, I'd love to make the switch. Any suggestions as to what may be going on?hundreds-father-404
04/01/2022, 1:08 PMechoing-farmer-15630
04/01/2022, 1:42 PMechoing-farmer-15630
04/01/2022, 1:42 PM<<some_env_vars>>
) to do with authentication and the rest should be reasonably straightforward I thinkechoing-farmer-15630
04/01/2022, 1:43 PMhundreds-father-404
04/04/2022, 9:26 PMwitty-crayon-22786
04/04/2022, 9:27 PMhappy-kitchen-89482
04/04/2022, 9:28 PMenough-analyst-54434
04/04/2022, 9:32 PMhundreds-father-404
04/04/2022, 9:33 PMenough-analyst-54434
04/04/2022, 9:33 PMwitty-crayon-22786
04/04/2022, 9:34 PMenough-analyst-54434
04/04/2022, 9:39 PMenough-analyst-54434
04/05/2022, 5:17 PMconstraints.txt
that is feeding into the Pex lock? If so, please plop them on the issue Stu created: https://github.com/pantsbuild/pants/issues/14998echoing-farmer-15630
04/05/2022, 8:42 PMconstraints.txt
, so now constraints.txt
was a superset of our direct requirements.
5. ...and now here we are getting a "proper lockfile" for what is already an overly-specified "improper lockfile" listing all the packages.
So now I'm actually trying to "unpick" our constraints.txt into just the top-level requirements (rather than the transitive dependencies), which may entail walking through pants dependencies...
for every available target that isn't a python_requirements
(ugh). But may still be worth my time.
Disadvantages of migrating a legacy repo over several versions of pants, I'm afraid. I can try to put in that time in the next few days if it would be useful.hundreds-father-404
04/05/2022, 8:48 PMechoing-farmer-15630
04/05/2022, 8:57 PMjq
for "get me the immediate third-party requirements of all my pex or python_sources targets (or some subset) in requirements.txt format", like the
./pants dependencies :: |
xargs ./pants filter --target-type=python_requirement |
xargs ./pants peek |
jq -r '.[]["requirements"][]'
... in "set up a virtual environment" -- but that as itself probably lists everything if I already have it listed in constraints.txt. But I know there's something close.hundreds-father-404
04/05/2022, 8:58 PMhundreds-father-404
04/05/2022, 8:59 PMhundreds-father-404
04/05/2022, 9:00 PMechoing-farmer-15630
04/05/2022, 9:02 PMexport
function 🙂 although it looks handy soon). Working on it.echoing-farmer-15630
04/05/2022, 9:09 PM./pants list ::
| xargs ./pants filter --target-type=python_sources
| xargs ./pants dependencies --transitive
| xargs ./pants peek | jq -r '.[]["requirements"][]'
...I think.
Wow, when you look at it that way the output looks pretty slim. Let me try that.hundreds-father-404
04/05/2022, 9:12 PMechoing-farmer-15630
04/05/2022, 9:15 PMechoing-farmer-15630
04/05/2022, 9:21 PM{ argv: ["/home/vputz/.pyenv/versions/3.10.2/bin/python", "./pex", "--tmpdir", ".tmp", "lock", "create", "--python-path", "/home/vputz/.pyenv/versions/2.7.18/bin:/home/vputz/.pyenv/versions/3.10.2/bin:/home/vputz/.pyenv/versions/3.6.15/bin:/home/vputz/.pyenv/versions/3.7.11/bin:/home/vputz/.pyenv/versions/3.8.12/bin:/home/vputz/.pyenv/versions/3.9.9/bin", "--output=lock.json", "--no-emit-warnings", "--style=universal", "--resolver-version", "pip-2020-resolver", "--indent=2", "--no-pypi", "--index=<https://pypi.org/simple/>", "--manylinux", "manylinux2014", "--interpreter-constraint", "CPython==3.9.*", "SQLAlchemy-Paginator==0.2", "SQLAlchemy==1.3.24", "aiohttp==3.7.4.post0", "amazon-braket-ocean-plugin==1.0.8", "amazon-braket-sdk==1.15.0", "arrow==1.2.1", "azure-quantum[qiskit]==0.24.201332", "backoff==1.11.1", "boto3==1.21.1", "botocore==1.24.1", "celery==5.1.2", "colorama==0.4.4", "deepmerge==1.0.1", "dimod==0.10.6", "dogpile.cache==1.1.4", "dwave-qbsolv==0.3.3.post0", "dwave-system==1.9.0", "fenestrate==0.3.0", "hypothesis==6.21.6", "icontract==2.6.0", "intervaltree==3.1.0", "jsonschema==3.2.0", "lz4==3.1.3", "networkx==2.6.3", "numba==0.53.1", "numpy==1.21.2", "opentelemetry-api==1.8.0", "opentelemetry-exporter-zipkin==1.8.0", "packaging==21.0", "psycopg2-binary==2.9.2", "pydantic==1.8.2", "pyrsistent==0.18.0", "python-decouple==3.4", "qcware-quasar==1.0.6", "qcware-transpile==0.1.1a20", "qiskit-aer==0.10.3", "qiskit-ibmq-provider==0.18.3", "qubovert==1.2.3", "redis==3.5.3", "requests==2.26.0", "scikit-learn==0.24.2", "scipy==1.7.1", "setuptools==58.0.4", "sortedcontainers==2.4.0", "structlog==21.5.0", "tabulate==0.8.9", "toolz==0.11.2", "torch==1.10.2", "types-requests==2.25.8", "unitair==0.1.6"], env: {"CPPFLAGS": "", "LDFLAGS": "", "PATH": "/home/vputz/.pyenv/shims:/home/vputz/.cargo/bin:/home/vputz/.local/bin:/home/vputz/.pyenv/bin:/opt/cuda/bin:/home/vputz/.dotnet/tools:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl", "PEX_IGNORE_RCFILES": "true", "PEX_PYTHON_PATH": "/home/vputz/.pyenv/versions/2.7.18/bin:/home/vputz/.pyenv/versions/3.10.2/bin:/home/vputz/.pyenv/versions/3.6.15/bin:/home/vputz/.pyenv/versions/3.7.11/bin:/home/vputz/.pyenv/versions/3.8.12/bin:/home/vputz/.pyenv/versions/3.9.9/bin", "PEX_ROOT": ".cache/pex_root", "PEX_SCRIPT": "pex3", "SSH_AUTH_SOCK": "/tmp/ssh-XXXXXXq0Ja51/agent.1205"}, working_directory: None, input_digests: InputDigests { complete: DirectoryDigest { digest: Digest { hash: Fingerprint<d81aa8a79bc3999a9e01b5df226e7649edb5bc4e16f187a17cdcc480e3f3196c>, size_bytes: 158 }, tree: "Some(..)" }, nailgun: DirectoryDigest { digest: Digest { hash: Fingerprint<e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855>, size_bytes: 0 }, tree: "Some(..)" }, input_files: DirectoryDigest { digest: Digest { hash: Fingerprint<d81aa8a79bc3999a9e01b5df226e7649edb5bc4e16f187a17cdcc480e3f3196c>, size_bytes: 158 }, tree: "Some(..)" }, immutable_inputs: {}, use_nailgun: [] }, output_files: {RelativePath("lock.json")}, output_directories: {}, timeout: None, execution_slot_variable: None, concurrency_available: 0, description: "Generate lockfile for python-default", level: Info, append_only_caches: {CacheName("pex_root"): RelativePath(".cache/pex_root")}, jdk_home: None, platform_constraint: None, cache_scope: PerSession }
Not sure which libraries in there are the tricky bit.echoing-farmer-15630
04/05/2022, 9:33 PMenough-analyst-54434
04/06/2022, 12:00 AMenough-analyst-54434
04/06/2022, 1:49 AMenough-analyst-54434
04/06/2022, 3:21 AMWARNING: The candidate selected for download or install is a yanked version: 'ipython' candidate (version 7.30.0 at <https://files.pythonhosted.org/packages/56/32/bf656aed2b2e708ee4aca8730e9be78a5e732c767a67c6068a777af5987d/ipython-7.30.0-py3-none-any.whl#sha256=c8f3e07aefb9cf9e067f39686f035ce09b27a1ee602116a3030b91b6fc138ee4|https://files.pythonhosted.org/packages/56/32/bf656aed2b2e708ee4aca8730e9be78a5e732c767a67c6068a777af5987d/ipython-7.30.0-py3-none-any.whl#sha256=c8f3e07aefb9cf9e067f39686f035ce09b27a1ee602116a3030b91b6fc138ee4> (from <https://pypi.org/simple/ipython/|https://pypi.org/simple/ipython/>) (requires-python:>=3.7))
Reason for being yanked: Autoawait feature is broken in 7.30 See <https://github.com/ipython/ipython/pulls?q=milestone%3A7.30.1|https://github.com/ipython/ipython/pulls?q=milestone%3A7.30.1>
echoing-farmer-15630
04/06/2022, 12:30 PM