Skip to content

Commit 0633684

Browse files
authored
Consolidate linting rules, switch to Ruff in CI (#157)
1 parent 84de807 commit 0633684

File tree

6 files changed

+30
-74
lines changed

6 files changed

+30
-74
lines changed

.github/workflows/lint.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,16 @@ jobs:
1717
# because typing of stdlib might be different.
1818
os: [ubuntu-latest, windows-latest]
1919
runs-on: ${{ matrix.os }}
20+
permissions: {}
2021
steps:
2122
- uses: actions/checkout@v4
23+
with:
24+
persist-credentials: false
2225
- uses: actions/setup-python@v5
2326
with:
2427
python-version: "3.12"
25-
- uses: psf/black@stable
26-
- uses: python/mypy@master
28+
- uses: astral-sh/ruff-action@9828f49eb4cadf267b40eaa330295c412c68c1f9 # 3.2.2
29+
- uses: python/mypy@9397454fb5aead107461b089e7cf190bf538d20a # 1.5.0
2730
with:
2831
install_types: no
2932
paths: edgedbpkg

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@ docs/_build
2424
/.coverage*
2525
!/.coveragerc
2626
/.vscode
27-
/.mypy_cache
27+
.mypy_cache
28+
.ruff_cache
2829
/.venv

pyproject.toml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "edgedb-pkg"
33
dynamic = ["version"]
44
requires-python = '>=3.12.0'
5-
dependencies = ["metapkg@git+https://github.com/edgedb/metapkg.git"]
5+
dependencies = ["metapkg@git+https://github.com/geldata/metapkg.git"]
66

77
[build-system]
88
requires = ["setuptools>=64", "setuptools-scm>=8"]
@@ -11,9 +11,11 @@ build-backend = "setuptools.build_meta"
1111
[project.optional-dependencies]
1212
dev = ['black', 'ruff', 'mypy']
1313
server = [
14-
"boto3-stubs[boto3,s3] ~= 1.35.40",
15-
"python-debian ~= 0.1.49",
16-
"semver ~= 3.0.2",
14+
"boto3-stubs[boto3,s3] ~= 1.37",
15+
"click ~= 8.0",
16+
"filelock ~= 3.18",
17+
"python-debian ~= 1.0",
18+
"semver ~= 3.0",
1719
]
1820

1921
[tool.setuptools]
@@ -32,9 +34,7 @@ exclude = [".github"]
3234

3335
[tool.mypy]
3436
files = ["edgedbpkg", "server/process_incoming.py"]
35-
3637
python_version = "3.12"
37-
ignore_missing_imports = true
3838
show_error_codes = true
3939
strict = true
4040
namespace_packages = true

server/README.rst

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

server/process_incoming.py

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
import tarfile
2222
import tempfile
2323
import textwrap
24+
import tomllib
2425

25-
import boto3
26-
import boto3.session
26+
import boto3 # type: ignore [import-untyped]
27+
import boto3.session # type: ignore [import-untyped]
2728
import click
2829
import filelock
2930
import semver
30-
import tomli
3131

3232
from debian import debian_support
3333

@@ -119,7 +119,8 @@ class Version(TypedDict):
119119

120120

121121
def subprocess_run(
122-
*args: Any, **kwargs: Any,
122+
*args: Any,
123+
**kwargs: Any,
123124
) -> subprocess.CompletedProcess[str]:
124125
kw = dict(kwargs)
125126
if kw.get("stdout") is None and not kw.get("capture_output"):
@@ -257,7 +258,7 @@ def format_version_key(ver: Version, revision: str) -> str:
257258
# or debian version comparison algorithm.
258259
prerelease = (
259260
("~" if pre["phase"] == "dev" else ".")
260-
+ f'{pre["phase"]}.{pre["number"]}'
261+
+ f"{pre['phase']}.{pre['number']}"
261262
for pre in ver["prerelease"]
262263
)
263264
ver_key += "~" + "".join(prerelease).lstrip(".~")
@@ -314,7 +315,8 @@ def remove_old(
314315
build_date = datetime.datetime.fromisoformat(build_date_str)
315316
else:
316317
build_date = datetime.datetime.fromtimestamp(
317-
0, tz=datetime.UTC,
318+
0,
319+
tz=datetime.UTC,
318320
)
319321
ver_key = (version, build_date)
320322
index.setdefault(key, {}).setdefault(ver_key, []).append(obj.key)
@@ -568,7 +570,7 @@ def main(
568570
upload_listing: str,
569571
) -> None:
570572
with open(config, "rb") as cf:
571-
cfg = cast(Config, tomli.load(cf))
573+
cfg = cast(Config, tomllib.load(cf))
572574
if "common" not in cfg:
573575
raise ValueError("missing required [common] section in config")
574576
if not cfg["common"].get("buckets"):
@@ -1324,7 +1326,8 @@ def process_rpm(
13241326
pkgmetadata["name"] = basename
13251327

13261328
version_key = format_version_key(
1327-
pkgmetadata["version_details"], pkgmetadata["revision"],
1329+
pkgmetadata["version_details"],
1330+
pkgmetadata["revision"],
13281331
)
13291332

13301333
slot_name = pkgmetadata["name"]
@@ -1355,10 +1358,10 @@ def process_rpm(
13551358
comp = functools.cmp_to_key(debian_support.version_compare)
13561359
for _slot_name, versions in slot_index.items():
13571360
sorted_versions = sorted(
1358-
versions,
1359-
key=lambda v: comp(v[0]),
1360-
reverse=True,
1361-
)
1361+
versions,
1362+
key=lambda v: comp(v[0]),
1363+
reverse=True,
1364+
)
13621365

13631366
for ver_key, name, ver_nevra, arch in sorted_versions[3:]:
13641367
logger.info(f"process_rpm: deleting outdated {ver_nevra}")

server/pyproject.toml

Lines changed: 2 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,5 @@
1-
[project]
2-
name = "process_incoming"
3-
description = "Universal package processor"
4-
authors = [{ name = "Gel Data Inc", email = "hello@geldata.com" }]
5-
requires-python = ">=3.12"
6-
readme = "README.rst"
7-
version = "1.0.0"
8-
dependencies = [
9-
'boto3',
10-
'mypy-boto3-s3',
11-
'click',
12-
'typing-extensions',
13-
'tomli',
14-
'semver',
15-
'filelock',
16-
'python-debian',
17-
]
18-
19-
[project.urls]
20-
github = "https://github.com/geldata/gel-pkg/"
21-
22-
[project.scripts]
23-
process_incoming = "process_incoming:main"
24-
25-
[build-system]
26-
requires = ["setuptools>=59", "wheel"]
27-
build-backend = "setuptools.build_meta"
28-
29-
[tool.setuptools]
30-
py-modules = ["process_incoming"]
31-
32-
[tool.black]
33-
line-length = 79
34-
target-version = ["py312"]
35-
36-
[tool.mypy]
37-
files = "process_incoming.py"
38-
python_version = "3.12"
39-
ignore_missing_imports = true
40-
show_error_codes = true
41-
strict = true
42-
431
[tool.ruff]
44-
line-length = 79
45-
indent-width = 4
46-
target-version = "py312"
2+
extend = "../pyproject.toml"
473

484
[tool.ruff.lint]
495
preview = true
@@ -66,3 +22,4 @@ extend-select = [
6622
"UP", # pyupgrade
6723
"W", # warning
6824
]
25+
ignore = ["COM812"]

0 commit comments

Comments
 (0)