Skip to content

Commit c65e6f1

Browse files
author
Zoran Simic
committed
Metadata in pyproject.toml
1 parent a3b0a1f commit c65e6f1

10 files changed

Lines changed: 82 additions & 88 deletions

File tree

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
python-version: "3.14"
2121

2222
- uses: astral-sh/setup-uv@v7
23-
- run: uvx --with tox-uv tox -e py,docs,style
23+
- run: uvx --with tox-uv tox -e py,style
2424
- run: uv build
2525
- name: Publish to PyPI
2626
uses: pypa/gh-action-pypi-publish@release/v1

.github/workflows/tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,4 +56,4 @@ jobs:
5656
python-version: "3.14"
5757

5858
- uses: astral-sh/setup-uv@v7
59-
- run: uvx --with tox-uv tox -e docs,style
59+
- run: uvx --with tox-uv tox -e style

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ root/
2525
venv*/
2626

2727
pp*.yml
28+
uv.lock

DEVELOP.md

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
Create a dev venv:
44

55
```shell
6-
uv venv
7-
uv pip install -r requirements.txt -r tests/requirements.txt
8-
uv pip install -e .
6+
uv sync
97
```
108

119
You can then run `portable-python` from that venv:
@@ -107,7 +105,7 @@ portable-python build 3.13.2
107105

108106
## Bump Python Support
109107

110-
1. Update `pyproject.toml` classifiers and `setup.py` `python_requires`
108+
1. Update `pyproject.toml` classifiers and `requires-python`
111109
2. Update `.github/workflows/tests.yml` matrix
112110
3. Update `CPythonFamily.min_version` if needed
113111
4. Run full test matrix with `tox`

MANIFEST.in

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,3 @@ include LICENSE
22
include README.rst
33
include DEVELOP.md
44
include SECURITY.md
5-
include requirements.txt

pyproject.toml

Lines changed: 75 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,81 @@
11
[build-system]
2-
requires = ["setuptools", "setupmeta"]
2+
requires = ["setuptools", "setuptools-scm"]
33
build-backend = "setuptools.build_meta"
44

5+
[tool.setuptools_scm]
6+
local_scheme = "dirty-tag"
7+
8+
[tool.setuptools.packages.find]
9+
where = ["src"]
10+
11+
[project]
12+
name = "portable-python"
13+
dynamic = ["version"]
14+
description = "Portable python binaries"
15+
readme = "README.rst"
16+
requires-python = ">=3.10"
17+
license = "MIT"
18+
license-files = ["LICENSE"]
19+
authors = [
20+
{name = "Zoran Simic", email = "zoran@simicweb.com"},
21+
]
22+
keywords = ["python", "portable", "binary"]
23+
classifiers = [
24+
"Development Status :: 5 - Production/Stable",
25+
"Environment :: Console",
26+
"Intended Audience :: Developers",
27+
"Operating System :: MacOS :: MacOS X",
28+
"Operating System :: POSIX",
29+
"Operating System :: Unix",
30+
"Programming Language :: Python",
31+
"Programming Language :: Python :: 3",
32+
"Programming Language :: Python :: 3.10",
33+
"Programming Language :: Python :: 3.11",
34+
"Programming Language :: Python :: 3.12",
35+
"Programming Language :: Python :: 3.13",
36+
"Programming Language :: Python :: 3.14",
37+
"Programming Language :: Python :: Implementation :: CPython",
38+
"Topic :: Software Development :: Build Tools",
39+
"Topic :: System :: Installation/Setup",
40+
"Topic :: System :: Software Distribution",
41+
"Topic :: Utilities",
42+
]
43+
dependencies = [
44+
"click<9",
45+
"pyyaml<7",
46+
"requests<3",
47+
"runez<6",
48+
"urllib3<3",
49+
]
50+
51+
[dependency-groups]
52+
test = [
53+
"pytest-cov",
54+
]
55+
dev = [
56+
{ include-group = "test" },
57+
]
58+
59+
[project.scripts]
60+
portable-python = "portable_python.__main__:main"
61+
62+
[project.urls]
63+
Source = "https://github.com/codrsquad/portable-python"
64+
65+
[tool.coverage.run]
66+
concurrency = ["thread"]
67+
data_file = ".tox/.coverage"
68+
patch = ["subprocess"]
69+
70+
[tool.coverage.xml]
71+
output = ".tox/test-reports/coverage.xml"
72+
73+
[tool.coverage.html]
74+
directory = ".tox/test-reports/htmlcov"
75+
76+
[tool.pytest.ini_options]
77+
cache_dir = ".tox/.cache"
78+
579
[tool.ruff]
680
cache-dir = ".tox/.ruff_cache"
781
line-length = 140

requirements.txt

Lines changed: 0 additions & 5 deletions
This file was deleted.

setup.py

Lines changed: 0 additions & 41 deletions
This file was deleted.

tests/requirements.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

tox.ini

Lines changed: 2 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
[tox]
2-
envlist = py{310,311,312,313,314}, coverage, docs, style
2+
envlist = py{310,311,312,313,314}, coverage, style
33
skip_missing_interpreters = true
44

55
[testenv]
66
setenv = COVERAGE_FILE={toxworkdir}/.coverage.{envname}
77
usedevelop = True
8-
deps = -rrequirements.txt
9-
-rtests/requirements.txt
8+
dependency_groups = test
109
commands = pytest {posargs:-vv --cov=src/ --cov=tests/ --cov-report=xml tests/}
1110

1211
[testenv:coverage]
@@ -30,33 +29,3 @@ deps = ruff
3029
commands = ruff check --fix
3130
ruff format
3231

33-
# Old check-manifest + readme-renderer, see if there's better out there nowadays
34-
[testenv:docs]
35-
skip_install = True
36-
deps = check-manifest
37-
readme-renderer
38-
pip
39-
setuptools
40-
commands = check-manifest
41-
python setup.py check --strict --restructuredtext
42-
43-
[check-manifest]
44-
ignore = .dockerignore
45-
Dockerfile
46-
scripts/*
47-
portable-python*.yml
48-
retired/**
49-
tests/**
50-
tox.ini
51-
52-
[coverage:run]
53-
concurrency =
54-
thread
55-
patch = subprocess
56-
[coverage:xml]
57-
output = .tox/test-reports/coverage.xml
58-
[coverage:html]
59-
directory = .tox/test-reports/htmlcov
60-
61-
[pytest]
62-
cache_dir = .tox/.cache

0 commit comments

Comments
 (0)