Skip to content

Commit c30e882

Browse files
Build config and packaging upgrade.
1 parent 3652e5a commit c30e882

8 files changed

Lines changed: 1056 additions & 110 deletions

File tree

.github/workflows/tests.yml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,14 @@ jobs:
1919
with:
2020
python-version: ${{ matrix.python-version }}
2121

22+
- name: Install uv
23+
uses: astral-sh/setup-uv@eac588ad8def6316056a12d4907a9d4d84ff7a3b # v7.3.0
2224

23-
- name: Install Python dependencies
24-
run: |
25-
python3 -m pip install --upgrade pip
26-
pip3 install -r requirements.txt
27-
pip3 install -e .
25+
- name: Install dependencies
26+
run: uv sync --extra test
2827

2928
- name: Test with pytest
30-
run: |
31-
pytest -vvv
29+
run: uv run pytest -vvv
3230

3331
- name: Check coverage
34-
run: |
35-
pytest --cov=cli --cov=pythonanywhere --cov=scripts --cov-fail-under=65
32+
run: uv run pytest --cov=cli --cov=pythonanywhere --cov=scripts --cov-fail-under=83

MANIFEST.in

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

mypy.ini

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

pyproject.toml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
[build-system]
2+
requires = ["setuptools>=77.0.3", "wheel"]
3+
build-backend = "setuptools.build_meta"
4+
5+
[project]
6+
name = "pythonanywhere"
7+
version = "0.18.0"
8+
description = "PythonAnywhere helper tools for users"
9+
authors = [
10+
{name = "PythonAnywhere LLP", email = "developers@pythonanywhere.com"}
11+
]
12+
readme = "README.md"
13+
requires-python = ">=3.10"
14+
license = "MIT"
15+
keywords = ["pythonanywhere", "api", "cloud", "web", "hosting"]
16+
classifiers = [
17+
"Development Status :: 3 - Alpha",
18+
"Intended Audience :: Developers",
19+
"Topic :: Software Development :: Libraries",
20+
"Programming Language :: Python :: 3.14",
21+
"Programming Language :: Python :: 3.13",
22+
"Programming Language :: Python :: 3.12",
23+
"Programming Language :: Python :: 3.11",
24+
"Programming Language :: Python :: 3.10",
25+
]
26+
dependencies = [
27+
"docopt",
28+
"packaging",
29+
"python-dateutil",
30+
"pythonanywhere-core>=0.3.0",
31+
"requests",
32+
"schema==0.7.2",
33+
"snakesay==0.10.4",
34+
"tabulate",
35+
"typer",
36+
]
37+
38+
[project.optional-dependencies]
39+
test = [
40+
"pytest",
41+
"pytest-cov",
42+
"pytest-mock",
43+
"pytest-mypy",
44+
"psutil",
45+
"responses",
46+
"virtualenvwrapper",
47+
]
48+
49+
[project.scripts]
50+
pa = "cli.pa:app"
51+
52+
[project.urls]
53+
Homepage = "https://github.com/pythonanywhere/helper_scripts"
54+
Repository = "https://github.com/pythonanywhere/helper_scripts"
55+
Issues = "https://github.com/pythonanywhere/helper_scripts/issues"
56+
57+
[tool.setuptools]
58+
packages = ["cli", "pythonanywhere"]
59+
script-files = [
60+
"scripts/pa_autoconfigure_django.py",
61+
"scripts/pa_create_scheduled_task.py",
62+
"scripts/pa_create_webapp_with_virtualenv.py",
63+
"scripts/pa_delete_scheduled_task.py",
64+
"scripts/pa_delete_webapp_logs.py",
65+
"scripts/pa_get_scheduled_task_specs.py",
66+
"scripts/pa_get_scheduled_tasks_list.py",
67+
"scripts/pa_install_webapp_letsencrypt_ssl.py",
68+
"scripts/pa_install_webapp_ssl.py",
69+
"scripts/pa_reload_webapp.py",
70+
"scripts/pa_start_django_webapp_with_virtualenv.py",
71+
"scripts/pa_update_scheduled_task.py",
72+
]
73+
74+
[tool.pytest.ini_options]
75+
addopts = "--tb=native"
76+
markers = [
77+
"slowtest: marks tests as one of slowest (deselect with '-m \"not slowtest\"')",
78+
"tasks: marks test as one of related to tasks",
79+
"files: marks test as one of related to files",
80+
"students: marks test as one of related to students",
81+
]
82+
83+
[tool.mypy]
84+
ignore_missing_imports = true

pytest.ini

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

requirements.txt

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

setup.py

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

0 commit comments

Comments
 (0)