poetry
poetry copied to clipboard
Stabilize 'build.py'
- [x] I have searched the issues of this repo and believe that this is not a duplicate.
- [x] I have searched the documentation and believe that my question is not covered.
Feature Request
In order to compile C-extensions, it is currently required to add a build script to the project directory and to pyproject.toml
:
[tool.poetry]
build = "build.py"
This feature is described in #11, but not in the official Poetry documentation. So my question is whether this feature is stable. If this is the case, I would like to propose to include it in the official documentation.
@padix-key this feature is, today, an undocumented and really unsupported features. However, we do plan on making support for build scripts more standard. This will be added to documentation once it is fully supported and flushed out. Changes like python-poetry/poetry-core#45 are stepping stones to this.
As an additional note we are also improve support for "build" configuration section along with this. So, this will become something like the following in newer versions.
[tool.poetry.build]
script = "build.py"
I'm confused about the new build system. I've modified my pyproject.py
to use
[tool.poetry.build]
script = "build.py"
generate-setup-file = false
and
[build-system]
requires = ["poetry-core>=1.0.0a9"]
build-backend = "poetry.core.masonry.api"
and my build.py
to
def build():
distribution = Distribution({'name': 'extended', 'ext_modules': ext_modules})
distribution.package_dir = 'extended'
cmd = build_ext(distribution)
cmd.ensure_finalized()
cmd.run()
# Copy built extensions back to the project
for output in cmd.get_outputs():
relative_extension = os.path.relpath(output, cmd.build_lib)
shutil.copyfile(output, relative_extension)
mode = os.stat(relative_extension).st_mode
mode |= (mode & 0o444) >> 2
os.chmod(relative_extension, mode)
if __name__ == '__main__':
build()
where ext_modules
is a list of distutils.core.Extension
.
This works fine with poetry install
(in the sense that the extension is compiled and I get the shared library) but when I run pip install .
no compilation happens.
Am I missing something?
Looking at the pendulum
example, it seems one also needs to add
include = [
{path = "flicamera/*.so", format = "wheel"}
]
for the compiled extension to be installed. This should be documented when the feature becomes stable.
This include is not in the test at tests/masonry/builders/fixtures/extended_with_no_setup/pyproject.toml
so I'm not sure how that test would pass.
@albireox moving forward we will make it the responsibility if the build script to move the compiled files around such that they are in the right places as expected. If the built files are within an included package it will automatically be picked up. This is probably why it works in the test (did not look into it). If it is in another location, the include
configuration is the way to go. We might try and include this wil some "not final" warning in the documentation for 1.1.0
so it is useful for maintainers till it stabilises.
Thanks for the explanation.
I would really encourage that if this change become part of 1.1.0
it gets documented, even if it's considered an experimental feature. The old build system, although undocumented worked as expected and a stable release should not break that.
The old mechanism should still work out of the box; since the default is to generate the setup file for this release. But yes, I agree, some documentation explaining all this would be good.
With the new poetry 1.1.0 release i have found in my projects that my line: script = "build.py"
no longer works and an error is thrown if i try to install the tarball that build.
Seeing this issue, i modified my pyproject.toml to use the poetry-core build-system and added the following lines. Now everything seems to be working again.
[tool.poetry.build]
generate-setup-file = false
Is this the intended behaviour? Is now the new method of building extensions?
@ahobsonsayers you will still probably also need https://github.com/python-poetry/poetry/issues/2740#issuecomment-665073135.
Sorry, yes, it seems I missed that line in my copy and paste of the lines. So is it intended for the script = "build.py"
under [tool.poetry]
to be deprecated and no longer work?
@ahobsonsayers I would have expected the old configuration to have worked even if it was depreciated. However if you have both [tool.poetry.build]
and tool.poetry.build = "build.py"
it would fail.
@abn The details from the non-poetry based build.py not being ran
pyproject.toml
[tool.poetry]
name = "steamio"
version = "0.7.0a"
description = "A Python wrapper for the Steam API"
authors = ["Gobot1234"]
license = "MIT"
keywords = ["steam.py", "steam", "steamio", "steam-api"]
classifiers=[
"Development Status :: 5 - Production/Stable",
"Framework :: AsyncIO",
"Intended Audience :: Developers",
"Natural Language :: English",
"Operating System :: OS Independent",
"Topic :: Software Development :: Libraries",
"Topic :: Software Development :: Libraries :: Python Modules",
"Typing :: Typed",
]
include = [
"LICENSE",
"steam/__metadata__.py",
"steam/py.typed",
"steam/ext/__init__.pyi",
]
packages = [
{ include = "steam" },
]
[tool.poetry.build]
script = "build.py"
generate-setup-file = false
[tool.poetry.urls]
"Documentation" = "https://steampy.readthedocs.io/en/latest"
"Code" = "https://github.com/Gobot1234/steam.py"
"Bug Tracker" = "https://github.com/Gobot1234/steam.py/issues"
[tool.poetry.dependencies]
python = "^3.7"
aiohttp = ">=3.7.0,<3.8.0"
beautifulsoup4 = ">=4.9.1"
rsa = ">=4.6"
betterproto = "2.0.0b3"
typing-extensions = "3.7.4.3"
importlib-metadata = { version = ">=1.7.0", python = "<3.8" }
# docs option
sphinx = { version = "3.5.4", optional = true }
sphinxcontrib_trio = { version = "1.1.2", optional = true }
csscompressor = { version = "*", optional = true }
htmlmin = { version = "*", optional = true }
rjsmin = { version = "*", optional = true }
[tool.poetry.extras]
docs = ["sphinx", "sphinxcontrib_trio", "csscompressor", "htmlmin", "rjsmin"]
[tool.poetry.dev-dependencies]
black = "^21.4b0"
isort = "*"
flake8 = "*"
pytest = "*"
pytest-asyncio = "*"
mypy = "*"
[build-system]
requires = ["poetry-core>=1.0.0", "toml"]
build-backend = "poetry.core.masonry.api"
build.py file
from __future__ import annotations
import pathlib
import re
import subprocess
from typing import Any
import toml
ROOT = pathlib.Path(".").resolve()
PYPROJECT = toml.load(ROOT / "pyproject.toml")
try:
VERSION: str = PYPROJECT["tool"]["poetry"]["version"]
except KeyError:
raise RuntimeError("Version is not set") from None
RELEASE_LEVELS = {
"a": "alpha",
"b": "beta",
"rc": "candidate",
}
try:
end_char = re.findall(r"\d+.\d+.\d+([^\d]*).*", VERSION)[0]
except IndexError:
end_char = ""
release_level = "final"
else:
release_level = RELEASE_LEVELS[end_char]
if release_level != "final":
# try to find out the commit hash if checked out from git, and append it to __version__ (since we use this value
# from setup.py, it gets automatically propagated to an installed copy as well)
try:
out = subprocess.check_output("git rev-list --count HEAD")
if out:
VERSION = f"{VERSION}{out.strip()}"
out = subprocess.check_output("git rev-parse --short HEAD")
if out:
VERSION = f"{VERSION}+g{out.strip()}"
except Exception:
pass
major, minor, micro = VERSION.split(".")
micro = micro.split(end_char, maxsplit=1)[0]
file = f"""from typing import NamedTuple
from typing_extensions import Literal
__all__ = (
"__title__",
"__author__",
"__license__",
"__version__",
"version_info",
)
class VersionInfo(NamedTuple):
major: int
minor: int
micro: int
releaselevel: Literal["alpha", "beta", "candidate", "final"]
__title__ = "steam"
__author__ = "Gobot1234"
__license__ = "MIT"
__version__ = "{VERSION}"
version_info = VersionInfo(major={major}, minor={minor}, micro={micro}, releaselevel="{release_level}")
"""
def build(setup_kwargs: dict[str, Any]) -> None:
metadata = ROOT / "steam" / "__metadata__.py"
metadata.write_text(file)
Verbose pip install log
James@Jamess-MacBook-Air ~ % python3 -m pip install -U git+https://github.com/Gobot1234/steam.py.git --verbose
Using pip 21.1 from /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip (python 3.9)
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN
sysconfig: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
Non-user install because site-packages writeable
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-ephem-wheel-cache-1kup9cm4
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4
Initialized build tracking at /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4
Created build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4
Entered build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-install-qf_oz4vk
Collecting git+https://github.com/Gobot1234/steam.py.git
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3
Cloning https://github.com/Gobot1234/steam.py.git to /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3
Running command git clone -q https://github.com/Gobot1234/steam.py.git /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3
Added git+https://github.com/Gobot1234/steam.py.git to build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-standalone-pip-61b82u3w
Running command /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-standalone-pip-61b82u3w/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay --no-warn-script-location -v --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'poetry-core>=1.0.0' toml
Using pip 21.1 from /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-standalone-pip-61b82u3w/__env_pip__.zip/pip (python 3.9)
Non-user install by explicit request
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-ephem-wheel-cache-ziz11f7j
Created build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4
Entered build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-install-si3kzawp
1 location(s) to search for versions of poetry-core:
* https://pypi.org/simple/poetry-core/
Fetching project page and analyzing links: https://pypi.org/simple/poetry-core/
Getting page https://pypi.org/simple/poetry-core/
Found index url https://pypi.org/simple
Looking up "https://pypi.org/simple/poetry-core/" in the cache
Request header has "max_age" as 0, cache bypassed
Starting new HTTPS connection (1): pypi.org:443
https://pypi.org:443 "GET /simple/poetry-core/ HTTP/1.1" 304 0
Found link https://files.pythonhosted.org/packages/a5/6a/ae017843c144c627b37c125134ab32fd1287fcb2bc95793cd00af2c584af/poetry-core-1.0.0a0.tar.gz#sha256=361a8cdcb833c14c0e754fe12ccf0f23a1c8b6261095279d9272a759e8935396 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a0
Found link https://files.pythonhosted.org/packages/65/9d/2c3285421474412a0b16048b6405cf45615bb8c2437bba2e99f20801a2cc/poetry_core-1.0.0a0-py2.py3-none-any.whl#sha256=8161315a5ae9984af7ffe1004644a462ffbbc9736d2890f40345ddb857e732a1 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a0
Found link https://files.pythonhosted.org/packages/b9/9d/ee3b9c3ca4e15562bf3bc383d64ab1a11c6434c187ca6c951c3327f72c51/poetry-core-1.0.0a1.tar.gz#sha256=8baeb2d9980091bf8e4375c0f6a87e19a8d56083bdfb5a3875a7bd57befc257e (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a1
Found link https://files.pythonhosted.org/packages/50/a6/ede2185e777bbce89530c3f1c7f5ef155eb8510fa8655af77a1763de72b2/poetry_core-1.0.0a1-py2.py3-none-any.whl#sha256=ed6c10cd45b91281e535f6ae5d223d9347278ef847805307615b32269693eb73 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a1
Found link https://files.pythonhosted.org/packages/17/c6/05e0e09b564178dd7b81821dd5448d9d366f6dccccd28c2dfe5cda7c8183/poetry-core-1.0.0a2.tar.gz#sha256=7ca384da50b14cf163f6cf04d3b0900bdb32aefa04b13652a49551090722f188 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a2
Found link https://files.pythonhosted.org/packages/b2/f8/aa9dbbd5cab341ac91aa13dea969732f15f02b0e5f963c339f0629147215/poetry_core-1.0.0a2-py2.py3-none-any.whl#sha256=e742467689173a282d9f83d35a72f7e42ac5543cb6ad55130aebbc4e314c8302 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a2
Found link https://files.pythonhosted.org/packages/7d/38/bbc4ecee9c0cf121d7354733e2778d708fc30da48395e20069f2487333bc/poetry-core-1.0.0a3.tar.gz#sha256=02d1bfed4a53dbe8570c6bc94164d7a5e1b01630f74174f03bc932e8b334be5a (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a3
Found link https://files.pythonhosted.org/packages/1c/bc/905daad562b9b6114044f156188f965e1f3ffa8e8486bef7633482657457/poetry_core-1.0.0a3-py2.py3-none-any.whl#sha256=2351a1e3a8e18414236f1c7db31c0c7d19bd240c27b5540abf9d81156a10da4c (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a3
Found link https://files.pythonhosted.org/packages/cc/7a/8103474ff3820db01120cfc4a7ee3e4c69620703b6c92939783f8d99a0ef/poetry-core-1.0.0a4.tar.gz#sha256=a95aa0454b539ca6f98056aac5743de273762161aaf2db68152b8510de6849f1 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a4
Found link https://files.pythonhosted.org/packages/3e/b4/57fa9a5a7723814045dd6869b4c2865001b62b0ecaa80c5fe721d8e94416/poetry_core-1.0.0a4-py2.py3-none-any.whl#sha256=2c6b7be852f9eb772823fcff8a0a912b49cbe57c6dfe26f17799df65eccee8b8 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a4
Found link https://files.pythonhosted.org/packages/b7/70/5c287bd1e7c8c86a318755514e02c6d431335de541c43eef65d0fb5af955/poetry-core-1.0.0a5.tar.gz#sha256=afac65874baf2030328f43df840cec2b5a17bcdad0a04c55b0f830e444ef1120 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a5
Found link https://files.pythonhosted.org/packages/a3/15/e4992c1fd66765a47b267f3d390e67066ff16764d419101dc9af7cb0d6a6/poetry_core-1.0.0a5-py2.py3-none-any.whl#sha256=ffbd0512d80affce937ce53db2d35bf28ea52d287bae61da5b5d63058618d6b9 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a5
Found link https://files.pythonhosted.org/packages/7b/c9/f6acb3b355be9cebb7c9e40c5db24f1da6592fe16754de0472c8659cef77/poetry-core-1.0.0a6.tar.gz#sha256=965869ce488869e473f5afb96e6155724fce9ce8ed2ef71c7e47a900c6159ea8 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a6
Found link https://files.pythonhosted.org/packages/37/07/1c188d7ea2c91a5e792dde29aa6d931e84a44f4f5cf06342ab85d5cead94/poetry_core-1.0.0a6-py2.py3-none-any.whl#sha256=440d3b43b64db47c2c348f784f770a1cbc83ae0aacb4f66d9f2f82b35366303f (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a6
Found link https://files.pythonhosted.org/packages/45/1d/34f0f441d48bece9c92488977ce4aa72f464e79bb8e9c8f454976864bcaf/poetry-core-1.0.0a7.tar.gz#sha256=f627d32e0c78e7219e0f3b040f3a2a6a6eb9074e0cc04f8d0fec13f258013929 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a7
Found link https://files.pythonhosted.org/packages/a9/f4/b65a655c632e11ffdd156beb2965cd0876d01317c0a589fdbd519d015932/poetry_core-1.0.0a7-py2.py3-none-any.whl#sha256=ccaf834e5e015452fa637781c0125c24458dc66eb7af2db88a6d3cba1c42f6e0 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a7
Found link https://files.pythonhosted.org/packages/1b/47/3f770be8226e0e34d40dbe42e19076c793194ea936163c9fb1c79e9510f5/poetry-core-1.0.0a8.tar.gz#sha256=02237e5abaa4fda4ef865cc49111a3f8a7999cfb149b30d5e93f85c3acdc4d95 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a8
Found link https://files.pythonhosted.org/packages/43/68/084aa9085f903b19ea85f1993035998cb78ebdb244648a097b39b6c37755/poetry_core-1.0.0a8-py2.py3-none-any.whl#sha256=d7d9e702fbae06c05abb1ada63678e940d746b2696f4601b951b27ac7c2c5337 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a8
Found link https://files.pythonhosted.org/packages/90/cd/b65ab6b3a3a44a474f43a7906f31a1b159ffa63bebd7125ed1f91c06c5e4/poetry-core-1.0.0a9.tar.gz#sha256=f08e9829fd06609ca5615faa91739b589eb71e025a6aaf7ddffb698676eb7c8c (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a9
Found link https://files.pythonhosted.org/packages/6f/d3/dd3d7c608d495b3f2a5f0dd40c2901e6c1d6aceba6e3f3131147f9259b3e/poetry_core-1.0.0a9-py2.py3-none-any.whl#sha256=79a63629ae44533ba9aa828e0eff0002c61b3af5fc9bec212e006cc643f4eb19 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a9
Found link https://files.pythonhosted.org/packages/dc/c9/d0a648ca07e20810d889f33d0ea3ddc7ef610f42510305dc484a00425ed0/poetry-core-1.0.0b1.tar.gz#sha256=c7a64770780f6a4998eee1e260fc3b7e22fa1c9b94b05c0faa13aa512f95eaa1 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0b1
Found link https://files.pythonhosted.org/packages/db/81/6447beb70ca2ab3274046b1276b6301782392cd39e0e946dc4d08f7f8c3b/poetry_core-1.0.0b1-py2.py3-none-any.whl#sha256=92d2a33c27c733e746425c6506fdf583909e3ce5de4591deb23a4efb13f1a72c (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0b1
Found link https://files.pythonhosted.org/packages/90/2c/b440db634995f35cf7430b6a6c030ac629858e7620edb28992e89a08ec53/poetry-core-1.0.0rc1.tar.gz#sha256=aad65fe96586f741afe582590912ad8e82823671c46c2550a8f9dc74cd4f769d (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc1
Found link https://files.pythonhosted.org/packages/5a/98/47251b64c62f949ece8f5e6b6086a4cc591df364ca2fdbc80d96e7b7b271/poetry_core-1.0.0rc1-py2.py3-none-any.whl#sha256=f63476c92d4d6205ea4fd28a9a9496a465ad15f573ce974dd3ef3a7807c4a919 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc1
Found link https://files.pythonhosted.org/packages/10/dd/21b1c5e89504bfa746b58cdecaeae3cf423f438f690706b3ea3a68f562bf/poetry-core-1.0.0rc2.tar.gz#sha256=abbe4059433e6d51aff024986b19919319e084592203f17e5354e7c0a7dee6f4 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc2
Found link https://files.pythonhosted.org/packages/32/67/9906f8cd22b09d17aa1d5998e7284ecb4099a7886734d65febf4561538df/poetry_core-1.0.0rc2-py2.py3-none-any.whl#sha256=f536d59ee0be81f7c689a1a30e9894cb24abeb23f4ff4e2130583fca9863272d (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc2
Found link https://files.pythonhosted.org/packages/a0/90/93840d54683cd7f407fc83cb5a998e4d758cf53b879e59689db292785a7c/poetry-core-1.0.0rc3.tar.gz#sha256=0e3d23a4c5acc14c5f1703b12645692bf24461c8c8e3fff32ca80a5462beccdf (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc3
Found link https://files.pythonhosted.org/packages/89/ef/5170513520199fef278f3dfe110f1ddb6607103453c7f1db2543dbc4f9d8/poetry_core-1.0.0rc3-py2.py3-none-any.whl#sha256=2c9ee2b3f7b40047bafdc2239fbb9de73637edc07a9697a3a66ac15fe6b040f5 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc3
Found link https://files.pythonhosted.org/packages/42/21/5335c7eceff3dccb3b415018bb17db0c442b599f610fd5712021d5f9403f/poetry-core-1.0.0.tar.gz#sha256=6a664ff389b9f45382536f8fa1611a0cb4d2de7c5a5c885db1f0c600cd11fbd5 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0
Found link https://files.pythonhosted.org/packages/4f/c1/2222bcb8040b32c2119bb70ac59711fd916f6f029d598439a2fecaab9b55/poetry_core-1.0.0-py2.py3-none-any.whl#sha256=769288e0e1b88dfcceb3185728f0b7388b26d5f93d6c22d2dcae372da51d200d (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0
Found link https://files.pythonhosted.org/packages/26/b8/8156fb0992cc8cbde9d3ad74c467aa8ab454a7fc6a34f701255b57c7b5da/poetry-core-1.0.1.tar.gz#sha256=a54bbb12c445b266eee0faf5d38f09dae9860cffa32ad7d99c7b345c94fb6f7b (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.1
Found link https://files.pythonhosted.org/packages/ba/21/4b0a3fa8f42518c885955c924dcca6eeb7b8ebbc30b71c5ff00b0abe090b/poetry_core-1.0.1-py2.py3-none-any.whl#sha256=94db888849966730a12111a2530548b01b0c22720b69d5561648af8de6a3ea5f (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.1
Found link https://files.pythonhosted.org/packages/d7/5a/58944c8905bb2519ae58cfab0a663fdfd88c692a6bdc51cc99416cd2f9e8/poetry-core-1.0.2.tar.gz#sha256=ff505d656a6cf40ffbf84393d8b5bf37b78523a15def3ac473b6fad74261ee71 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.2
Found link https://files.pythonhosted.org/packages/a0/56/d7923fb39395c662bab9e6044e290458a77204ea3cafc3b1ea88e27b8f4c/poetry_core-1.0.2-py2.py3-none-any.whl#sha256=ee0ed4164440eeab27d1b01bc7b9b3afdc3124f68d4ea28d0821a402a9c7c044 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.2
Found link https://files.pythonhosted.org/packages/d0/b3/1017f2f6d801f1e3e4ffee3f058a10d20df1a9560aba9c5b49e92cdd9912/poetry-core-1.0.3.tar.gz#sha256=2315c928249fc3207801a81868b64c66273077b26c8d8da465dccf8f488c90c5 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.3
Found link https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl#sha256=c6bde46251112de8384013e1ab8d66e7323d2c75172f80220aba2bc07e208e9a (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.3
Found link https://files.pythonhosted.org/packages/5a/32/90805a7927d4d3c64a03e37e71e4086b35528ab0941ca0dd772149f54308/poetry-core-1.1.0a1.tar.gz#sha256=e73d8728904a05318a972315b0c68f53e5cf5314f540f57c232cc92acc699934 (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a1
Found link https://files.pythonhosted.org/packages/c0/1d/84f368958a065ed0825daf05ee68bab2e8c33c27a5d837aaf0af7863908c/poetry_core-1.1.0a1-py3-none-any.whl#sha256=eb1630413dece7c7b385c61a3d1bffaae9fc9f80075479ef5adb5afb49a1877f (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a1
Found link https://files.pythonhosted.org/packages/3a/8a/45f9bdaabcebb3a92320457d67d123ca8c81812da3c473e0c52280ad7db1/poetry-core-1.1.0a2.tar.gz#sha256=f9c95c06aee80c3f9251cc7d1005f9bcc2adc8a81296474b373432973e1e6fef (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a2
Found link https://files.pythonhosted.org/packages/c5/00/826928996815d97ff75aef4ad3ac45b86b9c7d0f2079e5281b909fab00f4/poetry_core-1.1.0a2-py3-none-any.whl#sha256=60e11977e8d767e575683ffb17c42eac8fdc45e262480e80010e8d37d879f286 (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a2
Found link https://files.pythonhosted.org/packages/53/bf/e464e2a6b8e7688a964a76bdaa800ba32d8f2c9226de036720e1fbd67532/poetry-core-1.1.0a3.tar.gz#sha256=579f35c98b0cdbc4e0fd2f7172de7deca74849a2ccfef05bf1df71d3855aa421 (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a3
Found link https://files.pythonhosted.org/packages/5c/c7/4fca8817212797f1b6426e0d2c68eef4a616787ea8e92964a233ad180aee/poetry_core-1.1.0a3-py3-none-any.whl#sha256=406da64d43dc0b954a1f446f8ec1b7f21e02cb8307542e8c366fa184a86f5c2e (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a3
Skipping link: not a file: https://pypi.org/simple/poetry-core/
Given no hashes to check 8 links for project 'poetry-core': discarding no candidates
Collecting poetry-core>=1.0.0
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-fn2i8j09
Looking up "https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl" in the cache
Current age based on date: 775155
Ignoring unknown cache-control directive: immutable
Freshness lifetime from max-age: 365000000
The response is "fresh", returning cached response
365000000 > 775155
Using cached poetry_core-1.0.3-py2.py3-none-any.whl (424 kB)
Added poetry-core>=1.0.0 from https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl#sha256=c6bde46251112de8384013e1ab8d66e7323d2c75172f80220aba2bc07e208e9a to build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
Removed poetry-core>=1.0.0 from https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl#sha256=c6bde46251112de8384013e1ab8d66e7323d2c75172f80220aba2bc07e208e9a from build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
1 location(s) to search for versions of toml:
* https://pypi.org/simple/toml/
Fetching project page and analyzing links: https://pypi.org/simple/toml/
Getting page https://pypi.org/simple/toml/
Found index url https://pypi.org/simple
Looking up "https://pypi.org/simple/toml/" in the cache
Request header has "max_age" as 0, cache bypassed
https://pypi.org:443 "GET /simple/toml/ HTTP/1.1" 304 0
Found link https://files.pythonhosted.org/packages/11/79/d88a538950184342693ed829db6a59999513eade0706a26f4bf6f76122fa/toml-0.6.0.tar.gz#sha256=0103cd3598cac83f5c4eb281c1e3381aec214776b8c719a373c7d07f52c18d9b (from https://pypi.org/simple/toml/), version: 0.6.0
Found link https://files.pythonhosted.org/packages/69/a4/f7d29d4cb673a6c18486802f84d287d48cdd2af810d6df4211194967aa20/toml-0.6.5.tar.gz#sha256=e4d9f53755b2bdeab220b455b6654ba1080f2eee3dc3ab9adf245762c3de9f2b (from https://pypi.org/simple/toml/), version: 0.6.5
Found link https://files.pythonhosted.org/packages/9d/79/457a4f0212935884ac2b5632d88f69a0123825fae5a1da42119f6bc5649a/toml-0.7.0.tar.gz#sha256=58bf09e991d5474191420d206b72fa6f50ac5503269c5bd936123e4b545342f2 (from https://pypi.org/simple/toml/), version: 0.7.0
Found link https://files.pythonhosted.org/packages/a2/98/a1b3df99dfe03b7a9cf9ccfd8fb53957cb882c5d25110f9852cb119a92d9/toml-0.7.1.tar.gz#sha256=53dd619be5a027e9c8510dd492113f643df1cccc13188a8698914e51720a1a89 (from https://pypi.org/simple/toml/), version: 0.7.1
Found link https://files.pythonhosted.org/packages/72/e4/c69b62ee516758aff09aee08bbbef965b6b94bc10a1cf11f05f8d36a3b4c/toml-0.8.0.tar.gz#sha256=24250090512f1295d75f3db558ba26130b56b7dec7d30abbfc3bbde89a67825d (from https://pypi.org/simple/toml/), version: 0.8.0
Found link https://files.pythonhosted.org/packages/ea/b9/caf57d47c401a37a538b5d27660391b763425d888261af2441c2432fb6be/toml-0.8.1.tar.gz#sha256=b9fa91d6fa70958c47905be17750283692c95ef06fac52671229c461b49d503d (from https://pypi.org/simple/toml/), version: 0.8.1
Found link https://files.pythonhosted.org/packages/92/f4/559c5dfe5755c5730ba18cb8c8f06c49789d9e1880219f9565b6f1352acf/toml-0.8.2.tar.gz#sha256=1260e1b94ca934ab48229720a88ce71910c886e136e209b8d76a83528c56e499 (from https://pypi.org/simple/toml/), version: 0.8.2
Found link https://files.pythonhosted.org/packages/0c/d4/48756e8b47c7638695646de87529ea7d6feba132b741a8970a17eeeebeed/toml-0.9.0.tar.gz#sha256=d803e90b790ca561ae08f77c7b728ca11185d646c769d09d965879c129ef0dee (from https://pypi.org/simple/toml/), version: 0.9.0
Found link https://files.pythonhosted.org/packages/5c/44/23bda89772ea8da0c4561637b6694abd1d21805e107bc324e66f4b54cdb3/toml-0.9.1.tar.gz#sha256=e835834f1de5c60657e588a4cc48544945e03569a3d9f8b489436abb987840cf (from https://pypi.org/simple/toml/), version: 0.9.1
Found link https://files.pythonhosted.org/packages/5c/b2/8a18ced00a43f2cc5261f9ac9f1c94621251400a80db1567177719355177/toml-0.9.2.tar.gz#sha256=b3953bffe848ad9a6d554114d82f2dcb3e23945e90b4d9addc9956f37f336594 (from https://pypi.org/simple/toml/), version: 0.9.2
Found link https://files.pythonhosted.org/packages/af/06/edd820aa8a04ba82354a841af00aa28dcde391a7759a1e34579bb33d63bf/toml-0.9.3.1.tar.gz#sha256=e1e8c220046889234df5ec688d6f97b734fc4a08a6d8edfc176f4e6abf90cfb5 (from https://pypi.org/simple/toml/), version: 0.9.3.1
Found link https://files.pythonhosted.org/packages/f5/f9/044110c267e6408013b85166a7cfcd352cf85275aa8ce700aa5c0eb407ba/toml-0.9.4.tar.gz#sha256=8e86bd6ce8cc11b9620cb637466453d94f5d57ad86f17e98a98d1f73e3baab2d (from https://pypi.org/simple/toml/), version: 0.9.4
Found link https://files.pythonhosted.org/packages/c7/19/76c3cb84949a0593767b32b9be83a604d8a68c3580ff5d0ee64856b39ade/toml-0.9.6-py2.py3-none-any.whl#sha256=a7901919d3e4f92ffba7ff40a9d697e35bbbc8a8049fe8da742f34c83606d957 (from https://pypi.org/simple/toml/), version: 0.9.6
Found link https://files.pythonhosted.org/packages/0e/e8/1aa958599e5326b690a31334112da68a9b75e7563879e2c5103ca219d30a/toml-0.9.6.tar.gz#sha256=380178cde50a6a79f9d2cf6f42a62a5174febe5eea4126fe4038785f1d888d42 (from https://pypi.org/simple/toml/), version: 0.9.6
Skipping link: unsupported archive format: .egg: https://files.pythonhosted.org/packages/07/33/ccf5b4258d599e66fb6a4a4d0d10d4ee24cefd201f1a269c0321ce9a9ca9/toml-0.10.0-py2.7.egg#sha256=f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3 (from https://pypi.org/simple/toml/)
Found link https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl#sha256=235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e (from https://pypi.org/simple/toml/), version: 0.10.0
Found link https://files.pythonhosted.org/packages/b9/19/5cbd78eac8b1783671c40e34bb0fa83133a06d340a38b55c645076d40094/toml-0.10.0.tar.gz#sha256=229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c (from https://pypi.org/simple/toml/), version: 0.10.0
Found link https://files.pythonhosted.org/packages/9f/e1/1b40b80f2e1663a6b9f497123c11d7d988c0919abbf3c3f2688e448c5363/toml-0.10.1-py2.py3-none-any.whl#sha256=bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88 (from https://pypi.org/simple/toml/), version: 0.10.1
Found link https://files.pythonhosted.org/packages/da/24/84d5c108e818ca294efe7c1ce237b42118643ce58a14d2462b3b2e3800d5/toml-0.10.1.tar.gz#sha256=926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f (from https://pypi.org/simple/toml/), version: 0.10.1
Found link https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl#sha256=806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b (from https://pypi.org/simple/toml/) (requires-python:>=2.6, !=3.0.*, !=3.1.*, !=3.2.*), version: 0.10.2
Found link https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz#sha256=b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f (from https://pypi.org/simple/toml/) (requires-python:>=2.6, !=3.0.*, !=3.1.*, !=3.2.*), version: 0.10.2
Skipping link: not a file: https://pypi.org/simple/toml/
Given no hashes to check 20 links for project 'toml': discarding no candidates
Collecting toml
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-ltixwryu
Looking up "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl" in the cache
Current age based on date: 10284827
Ignoring unknown cache-control directive: immutable
Freshness lifetime from max-age: 365000000
The response is "fresh", returning cached response
365000000 > 10284827
Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Added toml from https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl#sha256=806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b to build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
Removed toml from https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl#sha256=806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b from build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-fd4oj5kp
Installing collected packages: toml, poetry-core
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay/include/python3.9/UNKNOWN
sysconfig: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay/include/python3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay'
Successfully installed poetry-core-1.0.3 toml-0.10.2
Removed build tracker: '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
Installing build dependencies ... done
Running command /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/tmp0xlywr_8
Getting requirements to build wheel ... done
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-modern-metadata-t6u0ndc0
Running command /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/tmp34_4sd9w
Preparing wheel metadata ... done
Source in /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3 has version 0.7.0a0, which satisfies requirement steamio==0.7.0a0 from git+https://github.com/Gobot1234/steam.py.git
Removed steamio==0.7.0a0 from git+https://github.com/Gobot1234/steam.py.git from build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
Requirement already satisfied: betterproto==2.0.0b3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (2.0.0b3)
Requirement already satisfied: aiohttp<3.8.0,>=3.7.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (3.7.3)
Requirement already satisfied: rsa>=4.6 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (4.6)
Requirement already satisfied: beautifulsoup4>=4.9.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (4.9.3)
Requirement already satisfied: typing-extensions==3.7.4.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (3.7.4.3)
Requirement already satisfied: grpclib<0.5.0,>=0.4.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from betterproto==2.0.0b3->steamio==0.7.0a0) (0.4.1)
Requirement already satisfied: python-dateutil<3.0,>=2.8 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from betterproto==2.0.0b3->steamio==0.7.0a0) (2.8.1)
Requirement already satisfied: yarl<2.0,>=1.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (1.6.3)
Requirement already satisfied: attrs>=17.3.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (20.3.0)
Requirement already satisfied: async-timeout<4.0,>=3.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (3.0.1)
Requirement already satisfied: chardet<4.0,>=2.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (3.0.4)
Requirement already satisfied: multidict<7.0,>=4.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (5.1.0)
Requirement already satisfied: soupsieve>1.2 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from beautifulsoup4>=4.9.1->steamio==0.7.0a0) (2.1)
Requirement already satisfied: h2<5,>=3.1.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from grpclib<0.5.0,>=0.4.1->betterproto==2.0.0b3->steamio==0.7.0a0) (4.0.0)
Requirement already satisfied: hyperframe<7,>=6.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from h2<5,>=3.1.0->grpclib<0.5.0,>=0.4.1->betterproto==2.0.0b3->steamio==0.7.0a0) (6.0.0)
Requirement already satisfied: hpack<5,>=4.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from h2<5,>=3.1.0->grpclib<0.5.0,>=0.4.1->betterproto==2.0.0b3->steamio==0.7.0a0) (4.0.0)
Requirement already satisfied: six>=1.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from python-dateutil<3.0,>=2.8->betterproto==2.0.0b3->steamio==0.7.0a0) (1.15.0)
Requirement already satisfied: pyasn1>=0.1.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from rsa>=4.6->steamio==0.7.0a0) (0.4.8)
Requirement already satisfied: idna>=2.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from yarl<2.0,>=1.0->aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (2.10)
Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-y0qh6n9t
WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617>
distutils: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN
sysconfig: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9
WARNING: Additional context:
user = False
home = None
root = None
prefix = None
Removed build tracker: '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
>>> import steam
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
"/steam.py/steam/__init__.py", line 11, in <module>
from .__metadata__ import *
ModuleNotFoundError: No module named 'steam.__metadata__'
@abn The details from the non-poetry based build.py not being ran
pyproject.toml
[tool.poetry] name = "steamio" version = "0.7.0a" description = "A Python wrapper for the Steam API" authors = ["Gobot1234"] license = "MIT" keywords = ["steam.py", "steam", "steamio", "steam-api"] classifiers=[ "Development Status :: 5 - Production/Stable", "Framework :: AsyncIO", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules", "Typing :: Typed", ] include = [ "LICENSE", "steam/__metadata__.py", "steam/py.typed", "steam/ext/__init__.pyi", ] packages = [ { include = "steam" }, ] [tool.poetry.build] script = "build.py" generate-setup-file = false [tool.poetry.urls] "Documentation" = "https://steampy.readthedocs.io/en/latest" "Code" = "https://github.com/Gobot1234/steam.py" "Bug Tracker" = "https://github.com/Gobot1234/steam.py/issues" [tool.poetry.dependencies] python = "^3.7" aiohttp = ">=3.7.0,<3.8.0" beautifulsoup4 = ">=4.9.1" rsa = ">=4.6" betterproto = "2.0.0b3" typing-extensions = "3.7.4.3" importlib-metadata = { version = ">=1.7.0", python = "<3.8" } # docs option sphinx = { version = "3.5.4", optional = true } sphinxcontrib_trio = { version = "1.1.2", optional = true } csscompressor = { version = "*", optional = true } htmlmin = { version = "*", optional = true } rjsmin = { version = "*", optional = true } [tool.poetry.extras] docs = ["sphinx", "sphinxcontrib_trio", "csscompressor", "htmlmin", "rjsmin"] [tool.poetry.dev-dependencies] black = "^21.4b0" isort = "*" flake8 = "*" pytest = "*" pytest-asyncio = "*" mypy = "*" [build-system] requires = ["poetry-core>=1.0.0", "toml"] build-backend = "poetry.core.masonry.api"
build.py file
from __future__ import annotations import pathlib import re import subprocess from typing import Any import toml ROOT = pathlib.Path(".").resolve() PYPROJECT = toml.load(ROOT / "pyproject.toml") try: VERSION: str = PYPROJECT["tool"]["poetry"]["version"] except KeyError: raise RuntimeError("Version is not set") from None RELEASE_LEVELS = { "a": "alpha", "b": "beta", "rc": "candidate", } try: end_char = re.findall(r"\d+.\d+.\d+([^\d]*).*", VERSION)[0] except IndexError: end_char = "" release_level = "final" else: release_level = RELEASE_LEVELS[end_char] if release_level != "final": # try to find out the commit hash if checked out from git, and append it to __version__ (since we use this value # from setup.py, it gets automatically propagated to an installed copy as well) try: out = subprocess.check_output("git rev-list --count HEAD") if out: VERSION = f"{VERSION}{out.strip()}" out = subprocess.check_output("git rev-parse --short HEAD") if out: VERSION = f"{VERSION}+g{out.strip()}" except Exception: pass major, minor, micro = VERSION.split(".") micro = micro.split(end_char, maxsplit=1)[0] file = f"""from typing import NamedTuple from typing_extensions import Literal __all__ = ( "__title__", "__author__", "__license__", "__version__", "version_info", ) class VersionInfo(NamedTuple): major: int minor: int micro: int releaselevel: Literal["alpha", "beta", "candidate", "final"] __title__ = "steam" __author__ = "Gobot1234" __license__ = "MIT" __version__ = "{VERSION}" version_info = VersionInfo(major={major}, minor={minor}, micro={micro}, releaselevel="{release_level}") """ def build(setup_kwargs: dict[str, Any]) -> None: metadata = ROOT / "steam" / "__metadata__.py" metadata.write_text(file)
Verbose pip install log
James@Jamess-MacBook-Air ~ % python3 -m pip install -U git+https://github.com/Gobot1234/steam.py.git --verbose Using pip 21.1 from /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip (python 3.9) WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN sysconfig: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 WARNING: Additional context: user = False home = None root = None prefix = None Non-user install because site-packages writeable Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-ephem-wheel-cache-1kup9cm4 Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4 Initialized build tracking at /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4 Created build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4 Entered build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4 Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-install-qf_oz4vk Collecting git+https://github.com/Gobot1234/steam.py.git Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3 Cloning https://github.com/Gobot1234/steam.py.git to /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3 Running command git clone -q https://github.com/Gobot1234/steam.py.git /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3 Added git+https://github.com/Gobot1234/steam.py.git to build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0 Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-standalone-pip-61b82u3w Running command /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-standalone-pip-61b82u3w/__env_pip__.zip/pip install --ignore-installed --no-user --prefix /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay --no-warn-script-location -v --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- 'poetry-core>=1.0.0' toml Using pip 21.1 from /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-standalone-pip-61b82u3w/__env_pip__.zip/pip (python 3.9) Non-user install by explicit request Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-ephem-wheel-cache-ziz11f7j Created build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4 Entered build tracker: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4 Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-install-si3kzawp 1 location(s) to search for versions of poetry-core: * https://pypi.org/simple/poetry-core/ Fetching project page and analyzing links: https://pypi.org/simple/poetry-core/ Getting page https://pypi.org/simple/poetry-core/ Found index url https://pypi.org/simple Looking up "https://pypi.org/simple/poetry-core/" in the cache Request header has "max_age" as 0, cache bypassed Starting new HTTPS connection (1): pypi.org:443 https://pypi.org:443 "GET /simple/poetry-core/ HTTP/1.1" 304 0 Found link https://files.pythonhosted.org/packages/a5/6a/ae017843c144c627b37c125134ab32fd1287fcb2bc95793cd00af2c584af/poetry-core-1.0.0a0.tar.gz#sha256=361a8cdcb833c14c0e754fe12ccf0f23a1c8b6261095279d9272a759e8935396 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a0 Found link https://files.pythonhosted.org/packages/65/9d/2c3285421474412a0b16048b6405cf45615bb8c2437bba2e99f20801a2cc/poetry_core-1.0.0a0-py2.py3-none-any.whl#sha256=8161315a5ae9984af7ffe1004644a462ffbbc9736d2890f40345ddb857e732a1 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a0 Found link https://files.pythonhosted.org/packages/b9/9d/ee3b9c3ca4e15562bf3bc383d64ab1a11c6434c187ca6c951c3327f72c51/poetry-core-1.0.0a1.tar.gz#sha256=8baeb2d9980091bf8e4375c0f6a87e19a8d56083bdfb5a3875a7bd57befc257e (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a1 Found link https://files.pythonhosted.org/packages/50/a6/ede2185e777bbce89530c3f1c7f5ef155eb8510fa8655af77a1763de72b2/poetry_core-1.0.0a1-py2.py3-none-any.whl#sha256=ed6c10cd45b91281e535f6ae5d223d9347278ef847805307615b32269693eb73 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*), version: 1.0.0a1 Found link https://files.pythonhosted.org/packages/17/c6/05e0e09b564178dd7b81821dd5448d9d366f6dccccd28c2dfe5cda7c8183/poetry-core-1.0.0a2.tar.gz#sha256=7ca384da50b14cf163f6cf04d3b0900bdb32aefa04b13652a49551090722f188 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a2 Found link https://files.pythonhosted.org/packages/b2/f8/aa9dbbd5cab341ac91aa13dea969732f15f02b0e5f963c339f0629147215/poetry_core-1.0.0a2-py2.py3-none-any.whl#sha256=e742467689173a282d9f83d35a72f7e42ac5543cb6ad55130aebbc4e314c8302 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a2 Found link https://files.pythonhosted.org/packages/7d/38/bbc4ecee9c0cf121d7354733e2778d708fc30da48395e20069f2487333bc/poetry-core-1.0.0a3.tar.gz#sha256=02d1bfed4a53dbe8570c6bc94164d7a5e1b01630f74174f03bc932e8b334be5a (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a3 Found link https://files.pythonhosted.org/packages/1c/bc/905daad562b9b6114044f156188f965e1f3ffa8e8486bef7633482657457/poetry_core-1.0.0a3-py2.py3-none-any.whl#sha256=2351a1e3a8e18414236f1c7db31c0c7d19bd240c27b5540abf9d81156a10da4c (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a3 Found link https://files.pythonhosted.org/packages/cc/7a/8103474ff3820db01120cfc4a7ee3e4c69620703b6c92939783f8d99a0ef/poetry-core-1.0.0a4.tar.gz#sha256=a95aa0454b539ca6f98056aac5743de273762161aaf2db68152b8510de6849f1 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a4 Found link https://files.pythonhosted.org/packages/3e/b4/57fa9a5a7723814045dd6869b4c2865001b62b0ecaa80c5fe721d8e94416/poetry_core-1.0.0a4-py2.py3-none-any.whl#sha256=2c6b7be852f9eb772823fcff8a0a912b49cbe57c6dfe26f17799df65eccee8b8 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a4 Found link https://files.pythonhosted.org/packages/b7/70/5c287bd1e7c8c86a318755514e02c6d431335de541c43eef65d0fb5af955/poetry-core-1.0.0a5.tar.gz#sha256=afac65874baf2030328f43df840cec2b5a17bcdad0a04c55b0f830e444ef1120 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a5 Found link https://files.pythonhosted.org/packages/a3/15/e4992c1fd66765a47b267f3d390e67066ff16764d419101dc9af7cb0d6a6/poetry_core-1.0.0a5-py2.py3-none-any.whl#sha256=ffbd0512d80affce937ce53db2d35bf28ea52d287bae61da5b5d63058618d6b9 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a5 Found link https://files.pythonhosted.org/packages/7b/c9/f6acb3b355be9cebb7c9e40c5db24f1da6592fe16754de0472c8659cef77/poetry-core-1.0.0a6.tar.gz#sha256=965869ce488869e473f5afb96e6155724fce9ce8ed2ef71c7e47a900c6159ea8 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a6 Found link https://files.pythonhosted.org/packages/37/07/1c188d7ea2c91a5e792dde29aa6d931e84a44f4f5cf06342ab85d5cead94/poetry_core-1.0.0a6-py2.py3-none-any.whl#sha256=440d3b43b64db47c2c348f784f770a1cbc83ae0aacb4f66d9f2f82b35366303f (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a6 Found link https://files.pythonhosted.org/packages/45/1d/34f0f441d48bece9c92488977ce4aa72f464e79bb8e9c8f454976864bcaf/poetry-core-1.0.0a7.tar.gz#sha256=f627d32e0c78e7219e0f3b040f3a2a6a6eb9074e0cc04f8d0fec13f258013929 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a7 Found link https://files.pythonhosted.org/packages/a9/f4/b65a655c632e11ffdd156beb2965cd0876d01317c0a589fdbd519d015932/poetry_core-1.0.0a7-py2.py3-none-any.whl#sha256=ccaf834e5e015452fa637781c0125c24458dc66eb7af2db88a6d3cba1c42f6e0 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a7 Found link https://files.pythonhosted.org/packages/1b/47/3f770be8226e0e34d40dbe42e19076c793194ea936163c9fb1c79e9510f5/poetry-core-1.0.0a8.tar.gz#sha256=02237e5abaa4fda4ef865cc49111a3f8a7999cfb149b30d5e93f85c3acdc4d95 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a8 Found link https://files.pythonhosted.org/packages/43/68/084aa9085f903b19ea85f1993035998cb78ebdb244648a097b39b6c37755/poetry_core-1.0.0a8-py2.py3-none-any.whl#sha256=d7d9e702fbae06c05abb1ada63678e940d746b2696f4601b951b27ac7c2c5337 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a8 Found link https://files.pythonhosted.org/packages/90/cd/b65ab6b3a3a44a474f43a7906f31a1b159ffa63bebd7125ed1f91c06c5e4/poetry-core-1.0.0a9.tar.gz#sha256=f08e9829fd06609ca5615faa91739b589eb71e025a6aaf7ddffb698676eb7c8c (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a9 Found link https://files.pythonhosted.org/packages/6f/d3/dd3d7c608d495b3f2a5f0dd40c2901e6c1d6aceba6e3f3131147f9259b3e/poetry_core-1.0.0a9-py2.py3-none-any.whl#sha256=79a63629ae44533ba9aa828e0eff0002c61b3af5fc9bec212e006cc643f4eb19 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0a9 Found link https://files.pythonhosted.org/packages/dc/c9/d0a648ca07e20810d889f33d0ea3ddc7ef610f42510305dc484a00425ed0/poetry-core-1.0.0b1.tar.gz#sha256=c7a64770780f6a4998eee1e260fc3b7e22fa1c9b94b05c0faa13aa512f95eaa1 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0b1 Found link https://files.pythonhosted.org/packages/db/81/6447beb70ca2ab3274046b1276b6301782392cd39e0e946dc4d08f7f8c3b/poetry_core-1.0.0b1-py2.py3-none-any.whl#sha256=92d2a33c27c733e746425c6506fdf583909e3ce5de4591deb23a4efb13f1a72c (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0b1 Found link https://files.pythonhosted.org/packages/90/2c/b440db634995f35cf7430b6a6c030ac629858e7620edb28992e89a08ec53/poetry-core-1.0.0rc1.tar.gz#sha256=aad65fe96586f741afe582590912ad8e82823671c46c2550a8f9dc74cd4f769d (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc1 Found link https://files.pythonhosted.org/packages/5a/98/47251b64c62f949ece8f5e6b6086a4cc591df364ca2fdbc80d96e7b7b271/poetry_core-1.0.0rc1-py2.py3-none-any.whl#sha256=f63476c92d4d6205ea4fd28a9a9496a465ad15f573ce974dd3ef3a7807c4a919 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc1 Found link https://files.pythonhosted.org/packages/10/dd/21b1c5e89504bfa746b58cdecaeae3cf423f438f690706b3ea3a68f562bf/poetry-core-1.0.0rc2.tar.gz#sha256=abbe4059433e6d51aff024986b19919319e084592203f17e5354e7c0a7dee6f4 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc2 Found link https://files.pythonhosted.org/packages/32/67/9906f8cd22b09d17aa1d5998e7284ecb4099a7886734d65febf4561538df/poetry_core-1.0.0rc2-py2.py3-none-any.whl#sha256=f536d59ee0be81f7c689a1a30e9894cb24abeb23f4ff4e2130583fca9863272d (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc2 Found link https://files.pythonhosted.org/packages/a0/90/93840d54683cd7f407fc83cb5a998e4d758cf53b879e59689db292785a7c/poetry-core-1.0.0rc3.tar.gz#sha256=0e3d23a4c5acc14c5f1703b12645692bf24461c8c8e3fff32ca80a5462beccdf (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc3 Found link https://files.pythonhosted.org/packages/89/ef/5170513520199fef278f3dfe110f1ddb6607103453c7f1db2543dbc4f9d8/poetry_core-1.0.0rc3-py2.py3-none-any.whl#sha256=2c9ee2b3f7b40047bafdc2239fbb9de73637edc07a9697a3a66ac15fe6b040f5 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0rc3 Found link https://files.pythonhosted.org/packages/42/21/5335c7eceff3dccb3b415018bb17db0c442b599f610fd5712021d5f9403f/poetry-core-1.0.0.tar.gz#sha256=6a664ff389b9f45382536f8fa1611a0cb4d2de7c5a5c885db1f0c600cd11fbd5 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0 Found link https://files.pythonhosted.org/packages/4f/c1/2222bcb8040b32c2119bb70ac59711fd916f6f029d598439a2fecaab9b55/poetry_core-1.0.0-py2.py3-none-any.whl#sha256=769288e0e1b88dfcceb3185728f0b7388b26d5f93d6c22d2dcae372da51d200d (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.0 Found link https://files.pythonhosted.org/packages/26/b8/8156fb0992cc8cbde9d3ad74c467aa8ab454a7fc6a34f701255b57c7b5da/poetry-core-1.0.1.tar.gz#sha256=a54bbb12c445b266eee0faf5d38f09dae9860cffa32ad7d99c7b345c94fb6f7b (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.1 Found link https://files.pythonhosted.org/packages/ba/21/4b0a3fa8f42518c885955c924dcca6eeb7b8ebbc30b71c5ff00b0abe090b/poetry_core-1.0.1-py2.py3-none-any.whl#sha256=94db888849966730a12111a2530548b01b0c22720b69d5561648af8de6a3ea5f (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.1 Found link https://files.pythonhosted.org/packages/d7/5a/58944c8905bb2519ae58cfab0a663fdfd88c692a6bdc51cc99416cd2f9e8/poetry-core-1.0.2.tar.gz#sha256=ff505d656a6cf40ffbf84393d8b5bf37b78523a15def3ac473b6fad74261ee71 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.2 Found link https://files.pythonhosted.org/packages/a0/56/d7923fb39395c662bab9e6044e290458a77204ea3cafc3b1ea88e27b8f4c/poetry_core-1.0.2-py2.py3-none-any.whl#sha256=ee0ed4164440eeab27d1b01bc7b9b3afdc3124f68d4ea28d0821a402a9c7c044 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.2 Found link https://files.pythonhosted.org/packages/d0/b3/1017f2f6d801f1e3e4ffee3f058a10d20df1a9560aba9c5b49e92cdd9912/poetry-core-1.0.3.tar.gz#sha256=2315c928249fc3207801a81868b64c66273077b26c8d8da465dccf8f488c90c5 (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.3 Found link https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl#sha256=c6bde46251112de8384013e1ab8d66e7323d2c75172f80220aba2bc07e208e9a (from https://pypi.org/simple/poetry-core/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*), version: 1.0.3 Found link https://files.pythonhosted.org/packages/5a/32/90805a7927d4d3c64a03e37e71e4086b35528ab0941ca0dd772149f54308/poetry-core-1.1.0a1.tar.gz#sha256=e73d8728904a05318a972315b0c68f53e5cf5314f540f57c232cc92acc699934 (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a1 Found link https://files.pythonhosted.org/packages/c0/1d/84f368958a065ed0825daf05ee68bab2e8c33c27a5d837aaf0af7863908c/poetry_core-1.1.0a1-py3-none-any.whl#sha256=eb1630413dece7c7b385c61a3d1bffaae9fc9f80075479ef5adb5afb49a1877f (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a1 Found link https://files.pythonhosted.org/packages/3a/8a/45f9bdaabcebb3a92320457d67d123ca8c81812da3c473e0c52280ad7db1/poetry-core-1.1.0a2.tar.gz#sha256=f9c95c06aee80c3f9251cc7d1005f9bcc2adc8a81296474b373432973e1e6fef (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a2 Found link https://files.pythonhosted.org/packages/c5/00/826928996815d97ff75aef4ad3ac45b86b9c7d0f2079e5281b909fab00f4/poetry_core-1.1.0a2-py3-none-any.whl#sha256=60e11977e8d767e575683ffb17c42eac8fdc45e262480e80010e8d37d879f286 (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a2 Found link https://files.pythonhosted.org/packages/53/bf/e464e2a6b8e7688a964a76bdaa800ba32d8f2c9226de036720e1fbd67532/poetry-core-1.1.0a3.tar.gz#sha256=579f35c98b0cdbc4e0fd2f7172de7deca74849a2ccfef05bf1df71d3855aa421 (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a3 Found link https://files.pythonhosted.org/packages/5c/c7/4fca8817212797f1b6426e0d2c68eef4a616787ea8e92964a233ad180aee/poetry_core-1.1.0a3-py3-none-any.whl#sha256=406da64d43dc0b954a1f446f8ec1b7f21e02cb8307542e8c366fa184a86f5c2e (from https://pypi.org/simple/poetry-core/) (requires-python:>=3.6,<4.0), version: 1.1.0a3 Skipping link: not a file: https://pypi.org/simple/poetry-core/ Given no hashes to check 8 links for project 'poetry-core': discarding no candidates Collecting poetry-core>=1.0.0 Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-fn2i8j09 Looking up "https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl" in the cache Current age based on date: 775155 Ignoring unknown cache-control directive: immutable Freshness lifetime from max-age: 365000000 The response is "fresh", returning cached response 365000000 > 775155 Using cached poetry_core-1.0.3-py2.py3-none-any.whl (424 kB) Added poetry-core>=1.0.0 from https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl#sha256=c6bde46251112de8384013e1ab8d66e7323d2c75172f80220aba2bc07e208e9a to build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' Removed poetry-core>=1.0.0 from https://files.pythonhosted.org/packages/bf/e1/08c7478df1e93dea47b06c9d9a80dbb54af7421462e1b22c280d063df807/poetry_core-1.0.3-py2.py3-none-any.whl#sha256=c6bde46251112de8384013e1ab8d66e7323d2c75172f80220aba2bc07e208e9a from build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' 1 location(s) to search for versions of toml: * https://pypi.org/simple/toml/ Fetching project page and analyzing links: https://pypi.org/simple/toml/ Getting page https://pypi.org/simple/toml/ Found index url https://pypi.org/simple Looking up "https://pypi.org/simple/toml/" in the cache Request header has "max_age" as 0, cache bypassed https://pypi.org:443 "GET /simple/toml/ HTTP/1.1" 304 0 Found link https://files.pythonhosted.org/packages/11/79/d88a538950184342693ed829db6a59999513eade0706a26f4bf6f76122fa/toml-0.6.0.tar.gz#sha256=0103cd3598cac83f5c4eb281c1e3381aec214776b8c719a373c7d07f52c18d9b (from https://pypi.org/simple/toml/), version: 0.6.0 Found link https://files.pythonhosted.org/packages/69/a4/f7d29d4cb673a6c18486802f84d287d48cdd2af810d6df4211194967aa20/toml-0.6.5.tar.gz#sha256=e4d9f53755b2bdeab220b455b6654ba1080f2eee3dc3ab9adf245762c3de9f2b (from https://pypi.org/simple/toml/), version: 0.6.5 Found link https://files.pythonhosted.org/packages/9d/79/457a4f0212935884ac2b5632d88f69a0123825fae5a1da42119f6bc5649a/toml-0.7.0.tar.gz#sha256=58bf09e991d5474191420d206b72fa6f50ac5503269c5bd936123e4b545342f2 (from https://pypi.org/simple/toml/), version: 0.7.0 Found link https://files.pythonhosted.org/packages/a2/98/a1b3df99dfe03b7a9cf9ccfd8fb53957cb882c5d25110f9852cb119a92d9/toml-0.7.1.tar.gz#sha256=53dd619be5a027e9c8510dd492113f643df1cccc13188a8698914e51720a1a89 (from https://pypi.org/simple/toml/), version: 0.7.1 Found link https://files.pythonhosted.org/packages/72/e4/c69b62ee516758aff09aee08bbbef965b6b94bc10a1cf11f05f8d36a3b4c/toml-0.8.0.tar.gz#sha256=24250090512f1295d75f3db558ba26130b56b7dec7d30abbfc3bbde89a67825d (from https://pypi.org/simple/toml/), version: 0.8.0 Found link https://files.pythonhosted.org/packages/ea/b9/caf57d47c401a37a538b5d27660391b763425d888261af2441c2432fb6be/toml-0.8.1.tar.gz#sha256=b9fa91d6fa70958c47905be17750283692c95ef06fac52671229c461b49d503d (from https://pypi.org/simple/toml/), version: 0.8.1 Found link https://files.pythonhosted.org/packages/92/f4/559c5dfe5755c5730ba18cb8c8f06c49789d9e1880219f9565b6f1352acf/toml-0.8.2.tar.gz#sha256=1260e1b94ca934ab48229720a88ce71910c886e136e209b8d76a83528c56e499 (from https://pypi.org/simple/toml/), version: 0.8.2 Found link https://files.pythonhosted.org/packages/0c/d4/48756e8b47c7638695646de87529ea7d6feba132b741a8970a17eeeebeed/toml-0.9.0.tar.gz#sha256=d803e90b790ca561ae08f77c7b728ca11185d646c769d09d965879c129ef0dee (from https://pypi.org/simple/toml/), version: 0.9.0 Found link https://files.pythonhosted.org/packages/5c/44/23bda89772ea8da0c4561637b6694abd1d21805e107bc324e66f4b54cdb3/toml-0.9.1.tar.gz#sha256=e835834f1de5c60657e588a4cc48544945e03569a3d9f8b489436abb987840cf (from https://pypi.org/simple/toml/), version: 0.9.1 Found link https://files.pythonhosted.org/packages/5c/b2/8a18ced00a43f2cc5261f9ac9f1c94621251400a80db1567177719355177/toml-0.9.2.tar.gz#sha256=b3953bffe848ad9a6d554114d82f2dcb3e23945e90b4d9addc9956f37f336594 (from https://pypi.org/simple/toml/), version: 0.9.2 Found link https://files.pythonhosted.org/packages/af/06/edd820aa8a04ba82354a841af00aa28dcde391a7759a1e34579bb33d63bf/toml-0.9.3.1.tar.gz#sha256=e1e8c220046889234df5ec688d6f97b734fc4a08a6d8edfc176f4e6abf90cfb5 (from https://pypi.org/simple/toml/), version: 0.9.3.1 Found link https://files.pythonhosted.org/packages/f5/f9/044110c267e6408013b85166a7cfcd352cf85275aa8ce700aa5c0eb407ba/toml-0.9.4.tar.gz#sha256=8e86bd6ce8cc11b9620cb637466453d94f5d57ad86f17e98a98d1f73e3baab2d (from https://pypi.org/simple/toml/), version: 0.9.4 Found link https://files.pythonhosted.org/packages/c7/19/76c3cb84949a0593767b32b9be83a604d8a68c3580ff5d0ee64856b39ade/toml-0.9.6-py2.py3-none-any.whl#sha256=a7901919d3e4f92ffba7ff40a9d697e35bbbc8a8049fe8da742f34c83606d957 (from https://pypi.org/simple/toml/), version: 0.9.6 Found link https://files.pythonhosted.org/packages/0e/e8/1aa958599e5326b690a31334112da68a9b75e7563879e2c5103ca219d30a/toml-0.9.6.tar.gz#sha256=380178cde50a6a79f9d2cf6f42a62a5174febe5eea4126fe4038785f1d888d42 (from https://pypi.org/simple/toml/), version: 0.9.6 Skipping link: unsupported archive format: .egg: https://files.pythonhosted.org/packages/07/33/ccf5b4258d599e66fb6a4a4d0d10d4ee24cefd201f1a269c0321ce9a9ca9/toml-0.10.0-py2.7.egg#sha256=f1db651f9657708513243e61e6cc67d101a39bad662eaa9b5546f789338e07a3 (from https://pypi.org/simple/toml/) Found link https://files.pythonhosted.org/packages/a2/12/ced7105d2de62fa7c8fb5fce92cc4ce66b57c95fb875e9318dba7f8c5db0/toml-0.10.0-py2.py3-none-any.whl#sha256=235682dd292d5899d361a811df37e04a8828a5b1da3115886b73cf81ebc9100e (from https://pypi.org/simple/toml/), version: 0.10.0 Found link https://files.pythonhosted.org/packages/b9/19/5cbd78eac8b1783671c40e34bb0fa83133a06d340a38b55c645076d40094/toml-0.10.0.tar.gz#sha256=229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c (from https://pypi.org/simple/toml/), version: 0.10.0 Found link https://files.pythonhosted.org/packages/9f/e1/1b40b80f2e1663a6b9f497123c11d7d988c0919abbf3c3f2688e448c5363/toml-0.10.1-py2.py3-none-any.whl#sha256=bda89d5935c2eac546d648028b9901107a595863cb36bae0c73ac804a9b4ce88 (from https://pypi.org/simple/toml/), version: 0.10.1 Found link https://files.pythonhosted.org/packages/da/24/84d5c108e818ca294efe7c1ce237b42118643ce58a14d2462b3b2e3800d5/toml-0.10.1.tar.gz#sha256=926b612be1e5ce0634a2ca03470f95169cf16f939018233a670519cb4ac58b0f (from https://pypi.org/simple/toml/), version: 0.10.1 Found link https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl#sha256=806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b (from https://pypi.org/simple/toml/) (requires-python:>=2.6, !=3.0.*, !=3.1.*, !=3.2.*), version: 0.10.2 Found link https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz#sha256=b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f (from https://pypi.org/simple/toml/) (requires-python:>=2.6, !=3.0.*, !=3.1.*, !=3.2.*), version: 0.10.2 Skipping link: not a file: https://pypi.org/simple/toml/ Given no hashes to check 20 links for project 'toml': discarding no candidates Collecting toml Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-ltixwryu Looking up "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl" in the cache Current age based on date: 10284827 Ignoring unknown cache-control directive: immutable Freshness lifetime from max-age: 365000000 The response is "fresh", returning cached response 365000000 > 10284827 Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB) Added toml from https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl#sha256=806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b to build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' Removed toml from https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl#sha256=806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b from build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-fd4oj5kp Installing collected packages: toml, poetry-core WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay/include/python3.9/UNKNOWN sysconfig: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay/include/python3.9 WARNING: Additional context: user = False home = None root = None prefix = '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-build-env-p4ufcs_0/overlay' Successfully installed poetry-core-1.0.3 toml-0.10.2 Removed build tracker: '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' Installing build dependencies ... done Running command /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py get_requires_for_build_wheel /var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/tmp0xlywr_8 Getting requirements to build wheel ... done Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-modern-metadata-t6u0ndc0 Running command /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/_vendor/pep517/in_process/_in_process.py prepare_metadata_for_build_wheel /var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/tmp34_4sd9w Preparing wheel metadata ... done Source in /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-build-1l34pck3 has version 0.7.0a0, which satisfies requirement steamio==0.7.0a0 from git+https://github.com/Gobot1234/steam.py.git Removed steamio==0.7.0a0 from git+https://github.com/Gobot1234/steam.py.git from build tracker '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4' Requirement already satisfied: betterproto==2.0.0b3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (2.0.0b3) Requirement already satisfied: aiohttp<3.8.0,>=3.7.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (3.7.3) Requirement already satisfied: rsa>=4.6 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (4.6) Requirement already satisfied: beautifulsoup4>=4.9.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (4.9.3) Requirement already satisfied: typing-extensions==3.7.4.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from steamio==0.7.0a0) (3.7.4.3) Requirement already satisfied: grpclib<0.5.0,>=0.4.1 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from betterproto==2.0.0b3->steamio==0.7.0a0) (0.4.1) Requirement already satisfied: python-dateutil<3.0,>=2.8 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from betterproto==2.0.0b3->steamio==0.7.0a0) (2.8.1) Requirement already satisfied: yarl<2.0,>=1.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (1.6.3) Requirement already satisfied: attrs>=17.3.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (20.3.0) Requirement already satisfied: async-timeout<4.0,>=3.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (3.0.1) Requirement already satisfied: chardet<4.0,>=2.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (3.0.4) Requirement already satisfied: multidict<7.0,>=4.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (5.1.0) Requirement already satisfied: soupsieve>1.2 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from beautifulsoup4>=4.9.1->steamio==0.7.0a0) (2.1) Requirement already satisfied: h2<5,>=3.1.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from grpclib<0.5.0,>=0.4.1->betterproto==2.0.0b3->steamio==0.7.0a0) (4.0.0) Requirement already satisfied: hyperframe<7,>=6.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from h2<5,>=3.1.0->grpclib<0.5.0,>=0.4.1->betterproto==2.0.0b3->steamio==0.7.0a0) (6.0.0) Requirement already satisfied: hpack<5,>=4.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from h2<5,>=3.1.0->grpclib<0.5.0,>=0.4.1->betterproto==2.0.0b3->steamio==0.7.0a0) (4.0.0) Requirement already satisfied: six>=1.5 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from python-dateutil<3.0,>=2.8->betterproto==2.0.0b3->steamio==0.7.0a0) (1.15.0) Requirement already satisfied: pyasn1>=0.1.3 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from rsa>=4.6->steamio==0.7.0a0) (0.4.8) Requirement already satisfied: idna>=2.0 in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (from yarl<2.0,>=1.0->aiohttp<3.8.0,>=3.7.0->steamio==0.7.0a0) (2.10) Created temporary directory: /private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-unpack-y0qh6n9t WARNING: Value for scheme.headers does not match. Please report this to <https://github.com/pypa/pip/issues/9617> distutils: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9/UNKNOWN sysconfig: /Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 WARNING: Additional context: user = False home = None root = None prefix = None Removed build tracker: '/private/var/folders/bd/p72x03b96rgczw4hyt2hhsyw0000gn/T/pip-req-tracker-5seuazu4'
>>> import steam Traceback (most recent call last): File "<stdin>", line 1, in <module> "/steam.py/steam/__init__.py", line 11, in <module> from .__metadata__ import * ModuleNotFoundError: No module named 'steam.__metadata__'
The issue has been resolved I don't think the build function was being ran, just the module.
@Gobot1234, it seems it behaves differently for each distribution format: for sdist
the build
method gets called and for wheel
the module gets called. Also, for sdist
, the file is only taken into account if generate-setup-file
is True
(here is the call), and on the other hand, while building wheel
, the module is run when generate-setup-file
is False
but the build
method gets called when generate-setup-file
is True
(as SdistBuilder
is used).
I'm not sure I'm right though, maybe @abn or any other member could confirm this?
It sounds like there are some design decisions to be made around this (e.g. how much to automate vs how much responsibility to put on the build.py script) but it seems like a really crucial feature to support building extensions both during poetry install
and poetry build
in a consistent and documented way. I vote to prioritize this. I'm currently evangelizing poetry within my organization but it will be a hard sell without a supported way to build extensions.
I can say that from my point of view the current the build system works well and it covers all my needs. I've been using it extensively on my projects without issues. I'm sure that there are things that could be improved but the main issue seems to be that this feature is not documented at all, which I don't understand since it seems to work quite robustly. To me that would be the main priority.
Once 1.2 is out and supports editable installs, another thing that seems important is to make sure that editable installs of poetry projects also support the build system.
@albireox I agree. As far as I can tell, the current system using build.py
seems to work just fine. However, I am not an expert python package distributor and there might be details that I'm not aware of, like supporting various build types consistently (mentioned above by @LECbg). And yes, we need documentation. Also, just the phrasing of @abn 's comment from 2020 indicates that this is explicitly not supported. Before people will use it widely, that needs to change.
Just a note. If using script named build.py
and building the wheel using build package, i.e. python -m build
, if a build.py
script is present, you get collision with the local build.py
.
Does anyone have an example of a build.py
script that doesn't rely on the (deprecated, soon to be removed) distutils package? e.g. a replacement for the example given by @albireox? I'd like to suggest adding such an example build script to the documentation.
I'm using setuptools
and cython
, does this help? https://github.com/davidcortesortuno/poetry_cython_proj/blob/main/build.py
@medley56 setuptools
re-exports build_ext
. This is what I use:
from setuptools.command.build_ext import build_ext
You can see in their source that this attempts to use the Cython
build_ext
that @davidcortesortuno is using, before falling back to the (deprecated) distutils version: https://github.com/pypa/setuptools/blob/e30999503add90052a1bbf4526c3025baed947f7/setuptools/command/build_ext.py#L14-L21
This build.py
script uses just setuptools.Distribution
(there's a distutils
import, but that only resolves an issue on macOS) and also shows how to use cffi
to build the extension:
https://github.com/libmbd/libmbd/blob/master/build.py#L25-L46
It seems like the expectation is that build scripts will only be used for building C-API extensions. However, there are other tools that may generate Python package components. In my case, I want to use Kaitai to create a binary reader from a Kaitai binary layout file (*.ksy). It seems like this could work, but adding a [tool.poetry.build] script seems to automatically change the type of the wheel that is created from a universal wheel (e.g. buildtest-0.2.0-py3-none-any.whl) to a platform wheel (e.g. buildtest-0.2.0-cp38-cp38-macosx_10_15_x86_64.whl). Kaitai generates pure python source code.
How are tools like Kaitai integrated into a Poetry build?
I have attached my test build files (for what it's worth... apparently python files cannot be attached so I added the "txt" extension).
I've decided to play around with poetry + build.py
+ C extensions today and I put together a "hello world" package that builds a minimal extension and one that depends on an external C library.
The project lives here and my goal is to have a minimal example for myself (and others) for future reference. If somebody would like to take a look and see if I have any unnecessary parts in there that could be removed that would be appreciated :)
One thing that I've noticed is that all examples I found online rely on distutils
to build the extensions. The build.py
hook seems to do the same thing by generating a setup.py
internally. However, distutils
will get deprecated in python 3.10 and as far as I can tell, there is no good replacement for this in flight. The best I've seen is to rely on setuptools
to build the extension, but it seems a bit counterintuitive to have poetry call on setuptools. Is there any discussion on what to do once distutils
disappears?
I think relying on setuptools is the only way forward. One, replicating all that functionality would be waste of time. Two, a lot of tooling around C extensions directly builds on top of setuptools.
Here's my setuptools-based build.py: https://github.com/libmbd/libmbd/blob/a3ce4b1bc3e27457299443a7fafafec8845c0333/build.py#L33-L46
Here's my setuptools-based build.py:
Thanks :) I'm surface-level familiar with setuptools at best, but it looks like a copy/fork of distutils for all the places we care about when building C code, so I guess it is fairly easy to use from a build.py
.
I guess this means that one also has to declare it as a build dependency in pyproject.toml
?
Thanks :) I'm surface-level familiar with setuptools at best, but it looks like a copy/fork of distutils for all the places we care about when building C code, so I guess it is fairly easy to use from a
build.py
.
That's my view as well.
I guess this means that one also has to declare it as a build dependency in
pyproject.toml
?
Correct.
:sparkles: This is an old work account. Please reference @brandonchinn178 for all future communication :sparkles:
Note: this issue has similarities with https://github.com/python-poetry/poetry/issues/5701, as both has to do with customizing the build. Overall, it would be great to provide a simpler hooks system that supports both modifying existing logic (e.g. get version dynamically instead of from pyproject.toml
) and building/processing files (e.g. C extension files, as discussed already in this issue).
Another use-case not mentioned in this discussion yet is preprocessing files. For example, my company strips out TODO
comments and adds a copyright header to all the files in the build step (currently done by hooking into install_lib
in setup.py
). The distinction here from the C extension files is that C extensions can be built into a git-ignored directory and everything's fine, but when preprocessing files, you can't just write the new file back to be discovered by poetry, because you'd be leaving the file in a modified state afterwards.
simpler hooks system that supports both modifying existing logic (e.g. get version dynamically instead of from pyproject.toml)
Just wanted to mention that this has been explicitly ruled out for inclusion in Poetry itself -- we don't intend to reinvent setuptools_scm
, and as the plugin API and install mechanism matures/stabilizes it is intended to be the long term solution to this ask.
:sparkles: This is an old work account. Please reference @brandonchinn178 for all future communication :sparkles:
Sorry, let me clarify:
A simpler hooks system that enables users/plugins to modify existing logic (e.g. get version dynamically).
I agree, Poetry shouldn't try to do dynamic version stuff. But I think a better fleshed out hooks system would make it easier to write plugins and custom build logic (when I say "hooks system", I think I mean the same thing you're saying by "plugin API"). The current system isn't great; #5701 goes into detail about how the current system doesn't really have hooks; it just allows plugins to monkeypatch things in Poetry. I think it would be better if Poetry could provide more first-class entrypoints into specific phases of Poetry's system, like what Pytest's plugin system provides.
(In fact, my current workaround monkeypatches poetry by subclassing WheelBuilder
and defining my own logic in there. This is super fragile, as it depends on Poetry internals that could very well change between versions.)
The workaround I'm currently using to preprocess files
pyproject.toml
[build-system]
# hardpin because we're monkeypatching
requires = ["poetry-core==1.2.0"]
build-backend = "backend"
backend-path = ["./build_system/"]
myproject/build_system/backend.py
import tempfile
from pathlib import Path
import poetry.core.masonry.api as poetry
import poetry.core.masonry.builders.wheel as poetry_wheel
def prepare_metadata_for_build_wheel(metadata_directory, config_settings=None):
return poetry.prepare_metadata_for_build_wheel(metadata_directory, config_settings)
def build_wheel(wheel_directory, config_settings=None, metadata_directory=None):
monkeypatch_poetry()
return poetry.build_wheel(wheel_directory, config_settings, metadata_directory)
def build_sdist(sdist_directory, config_settings=None):
# we only build wheels, so we don't need this hook
raise NotImplementedError("Create a wheel file instead.")
def monkeypatch_poetry():
class MyWheelBuilder(poetry.WheelBuilder):
def _add_file(self, wheel, full_path, rel_path):
full_path = Path(full_path)
rel_path = Path(rel_path)
old_contents = full_path.read_text()
new_contents = preprocess_file(rel_path, old_contents)
with tempfile.TemporaryDirectory() as tmpdir:
tmpfile = Path(tmpdir) / rel_path.name
tmpfile.write_text(new_contents)
super()._add_file(wheel, tmpfile, rel_path)
def preprocess_file(path: Path, contents: str) -> str:
# modify contents as desired
return contents
poetry_wheel.WheelBuilder = MyWheelBuilder
That is the long term intention -- currently we need to figure out a stable API that can be consumed by plugins so they are not dependent on Poetry internals, and as part of that work we can decide what is unstable and needs entrypoints/hooks instead.