pacti-org / pacti

A package for compositional system analysis and design
https://www.pacti.org
BSD 3-Clause "New" or "Revised" License
19 stars 5 forks source link

[Feature request] instrumentation support #316

Closed NicolasRouquette closed 1 year ago

NicolasRouquette commented 1 year ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Provide utilities to instrument Pacti's APIs for measuring usage counts and argument/result sizes. Provide utilities for measuring CPU utilization when running parallel jobs that call the instrumented Pacti APIs.

Describe the solution you'd like A clear and concise description of what you want to happen.

Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

Additional context Add any other context or screenshots about the feature request here.

NicolasRouquette commented 1 year ago

Since the instrumentation requires additional dependencies beyond those of pacti, it makes sense to provide this as a separate package.

This suggests that we should use a multi-package repo organization as described here: https://pdm.fming.dev/latest/usage/advanced/#use-pdm-to-manage-a-monorepo

We'd have something like this:

./packages
./packages/pacti-core
./packages/pacti-instrumentation

and pyproject.toml in each directory.

NicolasRouquette commented 1 year ago

The monorepo approach confuses vscode; since there is not much doc about it in PDM, it does not seem to be worth the hassle. I'll put this instrumentation in a separate project.

NicolasRouquette commented 1 year ago

Packaged the instrumentation as a separate repo: https://github.com/NicolasRouquette/pacti-instrumentation

However, using this as a dependency brings a mysterious problem. For the UAV case study, I tried to modify the dependencies like this:

dependencies = [
    "Pacti @ git+https://github.com/pacti-org/pacti.git@5ce142e",
    "Pacti-instrumentation @ git+https://github.com/NicolasRouquette/pacti-instrumentation.git",
]

I get this error:

nfr@nfr-desktop:/opt/local/github.pacti-org/cs-multiagent-planning$ pdm install
Lock file hash doesn't match pyproject.toml, packages may be outdated
Updating the lock file...
Unable to reuse the lock file as it is not compatible with PDM
See /tmp/pdm-lock-r7kb82bi.log for detailed debug log.
[InvalidSpecifier]: Invalid specifier: '==None'
Add '-v' to see the detailed traceback
nfr@nfr-desktop:/opt/local/github.pacti-org/cs-multiagent-planning$

The log file shows:

...
pdm.termui: Stable pins:
pdm.termui:       python None
pdm.termui:   pdm-pep517 1.1.4
...

Where does this python None come from?

The full log file is below:

pdm.termui: ======== Start resolving requirements ========
pdm.termui:   pytest>=6.2
pdm.termui:   pytest-cov>=3.0
pdm.termui:   pytest-randomly>=3.10
pdm.termui:   pytest-xdist>=2.4
pdm.termui:   git-changelog>=0.4
pdm.termui:   urlopen>=1.0.0
pdm.termui:   darglint>=1.8
pdm.termui:   flake8>=5.0.0
pdm.termui:   flake8-bandit
pdm.termui:   flake8-black
pdm.termui:   flake8-bugbear
pdm.termui:   flake8-builtins
pdm.termui:   flake8-comprehensions
pdm.termui:   flake8-docstrings
pdm.termui:   flake8-pytest-style
pdm.termui:   flake8-string-format
pdm.termui:   flake8-tidy-imports
pdm.termui:   flake8-variables-names
pdm.termui:   pep8-naming
pdm.termui:   wps-light
pdm.termui:   nbqa>=1.6.3
pdm.termui:   duty>=0.7
pdm.termui:   Pacti @ git+https://github.com/pacti-org/pacti.git@5ce142e
pdm.termui:   Pacti-instrumentation @ git+https://github.com/NicolasRouquette/pacti-instrumentation.git
pdm.termui:   mypy>=0.910
pdm.termui:   types-markdown>=3.3
pdm.termui:   types-toml>=0.10
pdm.termui:   mkdocs>=1.3
pdm.termui:   mkdocs-jupyter<0.23,>=0.22
pdm.termui:   mkdocs-coverage>=0.2
pdm.termui:   mkdocs-gen-files>=0.3
pdm.termui:   mkdocs-literate-nav>=0.4
pdm.termui:   mkdocs-material>=8.1
pdm.termui:   mkdocs-section-index>=0.3
pdm.termui:   mkdocs-video>=1.3.0
pdm.termui:   mkdocstrings[python]>=0.18
pdm.termui:   markdown-callouts>=0.2
pdm.termui:   markdown-exec>=0.5
pdm.termui:   toml>=0.10
pdm.termui:   autoflake>=1.4
pdm.termui:   black>=21.10b0
pdm.termui:   isort>=5.10
pdm.termui:   certifi>=2022.9.24
pdm.termui:   tox>=4.4.7
pdm.termui:   safety>=2
pdm.termui:   python>=3.8,<3.12
pdm.termui:   Adding requirement pytest>=6.2
unearth.collector: Collecting links from https://pypi.org/simple/pytest/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/pytest/ (from cache)
pdm.termui:   Adding requirement pytest-cov>=3.0
unearth.collector: Collecting links from https://pypi.org/simple/pytest-cov/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/pytest-cov/ (from cache)
pdm.termui:   Adding requirement pytest-randomly>=3.10
unearth.collector: Collecting links from https://pypi.org/simple/pytest-randomly/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/pytest-randomly/ (from cache)
pdm.termui:   Adding requirement pytest-xdist>=2.4
unearth.collector: Collecting links from https://pypi.org/simple/pytest-xdist/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/pytest-xdist/ (from cache)
pdm.termui:   Adding requirement git-changelog>=0.4
unearth.collector: Collecting links from https://pypi.org/simple/git-changelog/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/git-changelog/ (from cache)
pdm.termui:   Adding requirement urlopen>=1.0.0
unearth.collector: Collecting links from https://pypi.org/simple/urlopen/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/urlopen/ (from cache)
pdm.termui:   Adding requirement darglint>=1.8
unearth.collector: Collecting links from https://pypi.org/simple/darglint/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/darglint/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/27/6e/cdfd72468dad6a1da312cded949adf65b15bd7dc577d7e295ae6a42d9161/darglint-0.3.2.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-0.3.2.linux-x86_64: 0.3.2.linux-x86_64
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/2d/f3/bd9cebbca00dc5e6ac0fb58426cb711e3c03c972c5d7fdaf728a85f75636/darglint-0.5.6.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-0.5.6.linux-x86_64: 0.5.6.linux-x86_64
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/a4/1d/92a424eda2cb7ade09d8828f6f639e1fc39092a3ea4fd19871480b4491c2/darglint-0.5.7.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-0.5.7.linux-x86_64: 0.5.7.linux-x86_64
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/d9/29/cb1763bf13b0e6ddc1f42abd1c1957717a2ad4a7ec419d7f47737840aa3a/darglint-0.5.8.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-0.5.8.linux-x86_64: 0.5.8.linux-x86_64
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ce/96/8bbc0d0a8658f5df1682de9c4971042f71766572d5299b124c1c579118ee/darglint-0.6.0.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-0.6.0.linux-x86_64: 0.6.0.linux-x86_64
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/da/97/598b7bb2e376a5ecfdaacdcc022ede7c7715dcc097d1a45c57f7b7a2f028/darglint-1.0.0a1.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-1.0.0a1.linux-x86_64: 1.0.0a1.linux-x86_64
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/56/12/bba2c92d058714e447e61d1c2b9b297e122edcd9c47fffe9bcd68d5a81c9/darglint-1.0.0.linux-x86_64.tar.gz (from https://pypi.org/simple/darglint/)>: Invalid version in the filename darglint-1.0.0.linux-x86_64: 1.0.0.linux-x86_64
pdm.termui:   Adding requirement flake8>=5.0.0
unearth.collector: Collecting links from https://pypi.org/simple/flake8/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8/ (from cache)
pdm.termui:   Adding requirement flake8-bandit
unearth.collector: Collecting links from https://pypi.org/simple/flake8-bandit/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-bandit/ (from cache)
pdm.termui:   Adding requirement flake8-black
unearth.collector: Collecting links from https://pypi.org/simple/flake8-black/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-black/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/3b/a4/93bef44f3c952558877d59cc1559af337c1ed88cf0b202d157a2618419a4/flake8-black-0.2.5.tar.gz (from https://pypi.org/simple/flake8-black/)>: Yanked due to Appears to require latest black (without declaring this)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/5a/64/9ed4166c28c1f5bbf4e1f9b9f29521d14feabb2db847ac60232a65f82577/flake8_black-0.2.5-py3-none-any.whl (from https://pypi.org/simple/flake8-black/)>: Yanked due to Appears to require latest black (without declaring this)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/dd/30/c0f05ec4f1d5fd5d096036f44eb979b222fe6a5db05d60ec6f35005149f1/flake8-black-0.3.1.tar.gz (from https://pypi.org/simple/flake8-black/)>: Yanked due to breaks on latest tomli
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/e5/a1/247399449710286d22297bca6ce1a8ef8e5112c8bed0e09297ad8707f72f/flake8_black-0.3.1-py3-none-any.whl (from https://pypi.org/simple/flake8-black/)>: Yanked due to breaks on latest tomli
pdm.termui:   Adding requirement flake8-bugbear
unearth.collector: Collecting links from https://pypi.org/simple/flake8-bugbear/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-bugbear/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/1d/b0/719f4320ef805241d2c9de72d329630f79235048d6cff97f7447e382f14a/flake8-bugbear-16.4.0.tar.gz (from https://pypi.org/simple/flake8-bugbear/)>: Yanked due to https://github.com/PyCQA/flake8-bugbear/issues/272
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/77/a4/97d43ec710f92ea25c843f7429278c92cfa72a647dc263bc7ca970f3a568/flake8_bugbear-16.12.2-py3.5.egg (from https://pypi.org/simple/flake8-bugbear/)>: Unsupported archive format: flake8_bugbear-16.12.2-py3.5.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/6e/df/a2f5d0318b61c96f1671fc49ec77dac6a8b139cbb046062add522d8aaf4d/flake8-bugbear-21.11.28.tar.gz (from https://pypi.org/simple/flake8-bugbear/)>: Yanked due to Noisy new B018 check on strings reverted in 21.11.29
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9f/d9/f6e04c490457afa6163aa3254a5a70591afc03e0d44d5edd86b1a63dccde/flake8_bugbear-21.11.28-py36.py37.py38-none-any.whl (from https://pypi.org/simple/flake8-bugbear/)>: Yanked due to Noisy new B018 check on strings reverted in 21.11.29
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/54/cb/592814377d9a02a4808687aafd9e0e74aea19f44fca8ae77f28555bae6e5/flake8-bugbear-22.8.22.tar.gz (from https://pypi.org/simple/flake8-bugbear/)>: Yanked due to Missing B024 error code
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/8f/9f/db9138742aa04ac6cf64934b581a6faed98cbf5ee54c56bad00da8e742f1/flake8_bugbear-22.8.22-py3-none-any.whl (from https://pypi.org/simple/flake8-bugbear/)>: Yanked due to Missing B024 error code
pdm.termui:   Adding requirement flake8-builtins
unearth.collector: Collecting links from https://pypi.org/simple/flake8-builtins/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-builtins/ (from cache)
pdm.termui:   Adding requirement flake8-comprehensions
unearth.collector: Collecting links from https://pypi.org/simple/flake8-comprehensions/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-comprehensions/ (from cache)
pdm.termui:   Adding requirement flake8-docstrings
unearth.collector: Collecting links from https://pypi.org/simple/flake8-docstrings/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-docstrings/ (from cache)
pdm.termui:   Adding requirement flake8-pytest-style
unearth.collector: Collecting links from https://pypi.org/simple/flake8-pytest-style/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-pytest-style/ (from cache)
pdm.termui:   Adding requirement flake8-string-format
unearth.collector: Collecting links from https://pypi.org/simple/flake8-string-format/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-string-format/ (from cache)
pdm.termui:   Adding requirement flake8-tidy-imports
unearth.collector: Collecting links from https://pypi.org/simple/flake8-tidy-imports/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-tidy-imports/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/f2/b0/c65b1fd5fba06aa0bd0c0555177443a322d82a282b7b1c8c6dfaa31aaa63/flake8-tidy-imports-4.4.0.tar.gz (from https://pypi.org/simple/flake8-tidy-imports/)>: Yanked due to didn't correctly declare flake8 3.8.0+ dependency
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/c8/40/25d1b2f754ecc21e3052ca1c97fe8142ad51eacb5f81d98345918c3f1eb5/flake8_tidy_imports-4.4.0-py3-none-any.whl (from https://pypi.org/simple/flake8-tidy-imports/)>: Yanked due to didn't correctly declare flake8 3.8.0+ dependency
pdm.termui:   Adding requirement flake8-variables-names
unearth.collector: Collecting links from https://pypi.org/simple/flake8-variables-names/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/flake8-variables-names/ (from cache)
pdm.termui:   Adding requirement pep8-naming
unearth.collector: Collecting links from https://pypi.org/simple/pep8-naming/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/pep8-naming/ (from cache)
pdm.termui:   Adding requirement wps-light
unearth.collector: Collecting links from https://pypi.org/simple/wps-light/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/wps-light/ (from cache)
pdm.termui:   Adding requirement nbqa>=1.6.3
unearth.collector: Collecting links from https://pypi.org/simple/nbqa/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/nbqa/ (from cache)
pdm.termui:   Adding requirement duty>=0.7
unearth.collector: Collecting links from https://pypi.org/simple/duty/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/duty/ (from cache)
pdm.termui:   Adding requirement Pacti @ git+https://github.com/pacti-org/pacti.git@5ce142e
pdm.termui:   Adding requirement Pacti-instrumentation @ git+https://github.com/NicolasRouquette/pacti-instrumentation.git
pdm.termui:   Adding requirement mypy>=0.910
unearth.collector: Collecting links from https://pypi.org/simple/mypy/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mypy/ (from cache)
pdm.termui:   Adding requirement types-markdown>=3.3
unearth.collector: Collecting links from https://pypi.org/simple/types-markdown/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/types-markdown/ (from cache)
pdm.termui:   Adding requirement types-toml>=0.10
unearth.collector: Collecting links from https://pypi.org/simple/types-toml/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/types-toml/ (from cache)
pdm.termui:   Adding requirement mkdocs>=1.3
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs/ (from cache)
pdm.termui:   Adding requirement mkdocs-jupyter<0.23,>=0.22
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-jupyter/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-jupyter/ (from cache)
pdm.termui:   Adding requirement mkdocs-coverage>=0.2
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-coverage/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-coverage/ (from cache)
pdm.termui:   Adding requirement mkdocs-gen-files>=0.3
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-gen-files/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-gen-files/ (from cache)
pdm.termui:   Adding requirement mkdocs-literate-nav>=0.4
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-literate-nav/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-literate-nav/ (from cache)
pdm.termui:   Adding requirement mkdocs-material>=8.1
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-material/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-material/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/7b/54/86dd8b7e038f47676cb0d355043261c91debf88c5be8e3b013a2b07369d4/mkdocs_material-0.1.0-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-0.1.0-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/b9/cf/00cfae1b5208315ef879d4d120561d19f4da3b08163dae24f2a944dd09ba/mkdocs_material-1.5.5-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.5.5-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/08/c6/9eed73d5e3a507e1066f4b807e2f1d86872c73242bf818dafed09c837b4e/mkdocs_material-1.6.0-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.6.0-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/be/d0/c6c486622f2601e2f6437f0c0122886965c41fb3cc59f8c5123a46962e89/mkdocs_material-1.6.1-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.6.1-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/55/7a/cf296bf6bd0b38a3507967ff292ddfb77eae7ddcd654b9b6664056e579a1/mkdocs_material-1.6.2-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.6.2-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/2c/bc/7f170d71bb794a8bb81b2f1ae829dbb8804f459812f71a215f8f5fad5dad/mkdocs_material-1.6.3-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.6.3-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/de/96/30f7e5a9c2ea6f82f94b022c357279667aac982449fe8aa1f167c5844868/mkdocs_material-1.6.4-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.6.4-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/eb/29/18ac4145f311ab104bb7da3bca44056a2d663a68623283133240019994a2/mkdocs_material-1.7.0-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.7.0-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/fb/21/a2b39e880ff9b1da58bd5c035477e4a67412c05024cd124e810cd4e83daf/mkdocs_material-1.7.1-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.7.1-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ae/76/e74df614e8faa170f20dae0e32e3659e1ff5257f48f2431b02dda54e83fc/mkdocs_material-1.7.2-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.7.2-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ac/4d/18e51a1e52ab22d375d830bf4a8e8f3ae62d29d464541237083347d0c92c/mkdocs_material-1.7.3-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.7.3-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/5c/ee/cbdfc7a1fbfe0603676376b4ab2554b44e505133c6c2d95ccf9ac4e96b93/mkdocs_material-1.7.4-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.7.4-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/d7/ea/c2da79a8393bde94dbb9d128c7cfc687e128d3a44c95b635605026ed272e/mkdocs_material-1.7.5-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.7.5-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/59/b7/04096a4be8f31f0118bbd591253aad9cb99f7709b718f11495090e9b561f/mkdocs_material-1.8.0-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.8.0-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/c8/ba/1eb82866995faad8f6a93f4460a629d9b9067fc7f7ae96a88034e6f1720c/mkdocs_material-1.8.1-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.8.1-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/33/93/b1efa25b4e10466754c4d99fa10f33a89e8d73398413e8aa815a79132b78/mkdocs_material-1.9.0-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.9.0-py2.7.egg
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/45/c2/c1fd27727227841b421e9bb4f80ff341a8e8429a668ffae14e54681d0095/mkdocs_material-1.10.0-py2.7.egg (from https://pypi.org/simple/mkdocs-material/)>: Unsupported archive format: mkdocs_material-1.10.0-py2.7.egg
pdm.termui:   Adding requirement mkdocs-section-index>=0.3
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-section-index/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-section-index/ (from cache)
pdm.termui:   Adding requirement mkdocs-video>=1.3.0
unearth.collector: Collecting links from https://pypi.org/simple/mkdocs-video/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocs-video/ (from cache)
pdm.termui:   Adding requirement mkdocstrings[python]>=0.18
unearth.collector: Collecting links from https://pypi.org/simple/mkdocstrings/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/mkdocstrings/ (from cache)
pdm.termui:   Adding requirement markdown-callouts>=0.2
unearth.collector: Collecting links from https://pypi.org/simple/markdown-callouts/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/markdown-callouts/ (from cache)
pdm.termui:   Adding requirement markdown-exec>=0.5
unearth.collector: Collecting links from https://pypi.org/simple/markdown-exec/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/markdown-exec/ (from cache)
pdm.termui:   Adding requirement toml>=0.10
unearth.collector: Collecting links from https://pypi.org/simple/toml/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/toml/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/07/33/ccf5b4258d599e66fb6a4a4d0d10d4ee24cefd201f1a269c0321ce9a9ca9/toml-0.10.0-py2.7.egg (from https://pypi.org/simple/toml/)>: Unsupported archive format: toml-0.10.0-py2.7.egg
pdm.termui:   Adding requirement autoflake>=1.4
unearth.collector: Collecting links from https://pypi.org/simple/autoflake/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/autoflake/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ae/94/656a0fbea6ccd87f16f7b9ba5c5dfbfa7eaa790224b5b5b1ccd21dd30291/autoflake-1.7.2-py2.py3-none-any.whl (from https://pypi.org/simple/autoflake/)>: Yanked due to Pickle error when using --jobs
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/a7/d4/1b13fc1a2436f5e1550b6f6449eb172153ec377541cf0679e672de57f042/autoflake-1.7.2.tar.gz (from https://pypi.org/simple/autoflake/)>: Yanked due to Pickle error when using --jobs
pdm.termui:   Adding requirement black>=21.10b0
unearth.collector: Collecting links from https://pypi.org/simple/black/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/black/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/3d/ad/1cf514e7f9ee4c3d8df7c839d7977f7605ad76557f3fca741ec67f76dba6/black-21.11b0-py3-none-any.whl (from https://pypi.org/simple/black/)>: Yanked due to Broken regex dependency. Use 21.11b1 instead.
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/2f/db/03e8cef689ab0ff857576ee2ee288d1ff2110ef7f3a77cac62e61f18acaf/black-21.11b0.tar.gz (from https://pypi.org/simple/black/)>: Yanked due to Broken regex dependency. Use 21.11b1 instead.
pdm.termui:   Adding requirement isort>=5.10
unearth.collector: Collecting links from https://pypi.org/simple/isort/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/isort/ (from cache)
pdm.termui:   Adding requirement certifi>=2022.9.24
unearth.collector: Collecting links from https://pypi.org/simple/certifi/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/certifi/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/0d/e0/481445ea9f9a8ede3f6f373566c7fb20de435203e4828f3738906013ecfa/certifi-2022.5.18-py3-none-any.whl (from https://pypi.org/simple/certifi/)>: Yanked due to Incorrectly claims to support Python 3.5.
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/c5/63/a8e4b0c24e8538cec5579edbb2df4ed1f980d5f186878905317139d83b61/certifi-2022.5.18.tar.gz (from https://pypi.org/simple/certifi/)>: Yanked due to Incorrectly claims to support Python 3.5.
pdm.termui:   Adding requirement tox>=4.4.7
unearth.collector: Collecting links from https://pypi.org/simple/tox/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/tox/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/ad/0d/773800b6649e1994e1726dc64b0e212896955f38f7d8dc7000bdea47930d/tox-3.16.1-py2.py3-none-any.whl (from https://pypi.org/simple/tox/)>: Yanked due to wheel file is of the rewrite branch
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/89/9b/df7a0a4ea4fbe43cb82cb196b720c7934d3998e1963ca8ff340450c8958c/tox-3.16.1.tar.gz (from https://pypi.org/simple/tox/)>: Yanked due to wheel file is of the rewrite branch
pdm.termui:   Adding requirement safety>=2
unearth.collector: Collecting links from https://pypi.org/simple/safety/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/safety/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/aa/5d/bf0b447767b0dbe12d3a74da0509b3a1cd102eb009a367d86c8c253d943a/safety-2.3.0-py3-none-any.whl (from https://pypi.org/simple/safety/)>: Yanked due to True
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/f9/49/53a69694fb6109835af88b16df8ba9c396bedba6c03000f42aca9d22203f/safety-2.3.0.tar.gz (from https://pypi.org/simple/safety/)>: Yanked due to True
pdm.termui:   Adding requirement python>=3.8,<3.12
pdm.termui: ======== Starting round 0 ========
unearth.vcs.base: /tmp/pdm-build-k5vqdpub is not a repository directory, removing it.
unearth.vcs.git: Cloning https://github.com/pacti-org/pacti.git (revision: 5ce142e) to /tmp/pdm-build-k5vqdpub
unearth.vcs.base: Running command git version
unearth.vcs.base: Running command git clone --filter=blob:none --quiet https://github.com/pacti-org/pacti.git /tmp/pdm-build-k5vqdpub
unearth.vcs.base:
unearth.vcs.base: Running command git checkout -q 5ce142e
unearth.vcs.base:
unearth.vcs.base: Running command git rev-parse HEAD
unearth.vcs.git: Resolved https://github.com/pacti-org/pacti.git to commit 5ce142e187d3da5cdd40f276308ff5298fc8f515
pdm.termui: Running PEP 517 backend to get metadata for <Link git+https://github.com/pacti-org/pacti.git@5ce142e (from None)>
pdm.termui: Preparing isolated env for PEP 517 build...
pdm.termui: ======== Start resolving requirements ========
pdm.termui:   pdm-pep517
pdm.termui:   python>=3.9.16,<3.9.17
pdm.termui:   Adding requirement pdm-pep517
unearth.collector: Collecting links from https://pypi.org/simple/pdm-pep517/
unearth.auth: Found index url https://pypi.org/simple
unearth.collector: Fetching HTML page https://pypi.org/simple/pdm-pep517/ (from cache)
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/9a/56/6a14fd290afe5d29b51249a98871b7f130da770249c2cb6024ffe7bd2c0c/pdm-pep517-0.3.0.tar.gz (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to True
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/cd/9c/f1fc7b224a2a6937972b7639ddeacd596f053a2765d97f949a733e75e73d/pdm_pep517-0.3.0-py3-none-any.whl (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to True
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/37/d6/95aa238e39e92d51c2d94e902149109a1e0f05f9d4c2cdb5d31c3ddf2ad6/pdm-pep517-0.5.0.tar.gz (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to True
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/05/f6/9aa5d8a094af9173da4738610b3ecda29ef286bcc4ca8da5c6106494fae0/pdm_pep517-0.5.0-py3-none-any.whl (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to True
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/02/7e/9d029024a12a8fb7b373e3eff8c1a519f1945d9ee6a677225e9cff7bbbd6/pdm-pep517-0.9.0.tar.gz (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to A typo in the message
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/e6/c8/0a2dc4476133683a85e68ce6fc88c0bd6662178572cced5014bc106d39db/pdm_pep517-0.9.0-py3-none-any.whl (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to A typo in the message
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/7a/63/e9591545817c6834b8670c41b1af16a21af324ab34511102db3ec18c6f2c/pdm-pep517-0.9.1.tar.gz (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to True
unearth.evaluator: Skipping link <Link https://files.pythonhosted.org/packages/8c/06/3f0129c4ee6636e6fefc003b457647004248c1489fde461bb348e3cbe785/pdm_pep517-0.9.1-py3-none-any.whl (from https://pypi.org/simple/pdm-pep517/)>: Yanked due to True
pdm.termui:   Adding requirement python>=3.9.16,<3.9.17
pdm.termui: ======== Starting round 0 ========
pdm.termui: Pinning: python None
pdm.termui: ======== Ending round 0 ========
pdm.termui: ======== Starting round 1 ========
pdm.termui: Pinning: pdm-pep517 1.1.4
pdm.termui: ======== Ending round 1 ========
pdm.termui: ======== Starting round 2 ========
pdm.termui: ======== Resolution Result ========
pdm.termui: Stable pins:
pdm.termui:       python None
pdm.termui:   pdm-pep517 1.1.4
pdm.termui: Error occurs
Traceback (most recent call last):
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/termui.py", line 236, in logging
    yield logger
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/cli/actions.py", line 104, in do_lock
    mapping, dependencies = resolve(
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/resolver/core.py", line 35, in resolve
    result = resolver.resolve(requirements, max_rounds)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/resolvelib/resolvers.py", line 426, in resolve
    name = min(unsatisfied_names, key=self._get_preference)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/resolvelib/resolvers.py", line 203, in _get_preference
    return self._p.get_preference(
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/resolver/providers.py", line 85, in get_preference
    is_backtrack_cause = any(dep.identify() in backtrack_identifiers for dep in self.get_dependencies(candidate))
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/resolver/providers.py", line 182, in get_dependencies
    deps, requires_python, _ = self.repository.get_dependencies(candidate)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/repositories.py", line 82, in get_dependencies
    requirements, requires_python, summary = getter(candidate)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/repositories.py", line 41, in wrapper
    result = func(self, candidate)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/repositories.py", line 213, in _get_dependencies_from_metadata
    deps = prepared.get_dependencies_from_metadata()
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/candidates.py", line 510, in get_dependencies_from_metadata
    self.req.project_name, self.metadata.requires or [], extras  # type: ignore[arg-type]
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/candidates.py", line 496, in metadata
    result = self.prepare_metadata()
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/candidates.py", line 479, in prepare_metadata
    self._metadata_dir = builder(self._unpacked_dir, self.environment).prepare_metadata(metadir_parent)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/builders/wheel.py", line 13, in prepare_metadata
    self.install(self._requires, shared=True)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/builders/base.py", line 297, in install
    install_requirements(missing, env)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/installers/core.py", line 32, in install_requirements
    syncer.synchronize()
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/installers/synchronizers.py", line 238, in synchronize
    to_add, to_update, to_remove = self.compare_with_working_set()
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/installers/synchronizers.py", line 209, in compare_with_working_set
    locked_repository = self.environment.project.locked_repository
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/project/core.py", line 421, in locked_repository
    return LockedRepository(lockfile, self.sources, self.environment)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/repositories.py", line 392, in __init__
    self._read_lockfile(lockfile)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/repositories.py", line 407, in _read_lockfile
    req = Requirement.from_req_dict(package_name, req_dict)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/requirements.py", line 185, in from_req_dict
    return VcsRequirement.create(name=name, vcs=vcs, url=url, **req_dict)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/requirements.py", line 262, in create
    return super().create(**kwargs)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/requirements.py", line 152, in create
    kwargs["specifier"] = get_specifier(version)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/pdm/models/specifiers.py", line 28, in get_specifier
    return SpecifierSet(version_str)
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/packaging/specifiers.py", line 711, in __init__
    parsed.add(Specifier(specifier))
  File "/home/nfr/.local/share/pdm/venv/lib/python3.9/site-packages/packaging/specifiers.py", line 245, in __init__
    raise InvalidSpecifier(f"Invalid specifier: '{spec}'")
packaging.specifiers.InvalidSpecifier: Invalid specifier: '==None'
NicolasRouquette commented 1 year ago

The problem turned out to be due to the misplaced https://github.com/pacti-org/pacti-instrumentation/blob/master/src/pacti/instrumentation/__version__.py file.

Need to verify that the pacti.instrumentation namespace will work w/ the pacti.iocontract and pacti.terms namespaces from Pacti.

NicolasRouquette commented 1 year ago

It turns out we need a different package for the instrumentation; used pacti_instrumentation.

NicolasRouquette commented 1 year ago

Implemented in a separate project: https://github.com/pacti-org/pacti-instrumentation.