mirror of
https://github.com/moraroy/NonSteamLaunchers-On-Steam-Deck.git
synced 2026-06-13 04:04:59 +03:00
ci: Switch from poetry to uv
- Convert pyproject.toml to work with uv - Remove poetry references/lock file - Decouple ruff config - Freeze current deps - Manually bump version to match github release
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
".": "3.8.2"
|
".": "4.2.3"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -431,17 +431,13 @@ cz-cli@4.3.0, cz-conventional-changelog@3.3.0
|
|||||||
|
|
||||||
### Additional tooling
|
### Additional tooling
|
||||||
|
|
||||||
#### TODO
|
<!-- TODO: swap with mise -->
|
||||||
|
|
||||||
* Add [devbox](https://www.jetpack.io/devbox/) 👌
|
|
||||||
|
|
||||||
#### asdf
|
#### asdf
|
||||||
|
|
||||||
* Install [asdf](https://asdf-vm.com/guide/getting-started.html#_2-download-asdf)
|
* Install [asdf](https://asdf-vm.com/guide/getting-started.html#_2-download-asdf)
|
||||||
* Add plugins
|
* Add plugins
|
||||||
```bash
|
```bash
|
||||||
asdf plugin-add python
|
asdf plugin-add python
|
||||||
asdf plugin-add poetry https://github.com/asdf-community/asdf-poetry.git
|
|
||||||
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
|
asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
|
||||||
```
|
```
|
||||||
* Usage
|
* Usage
|
||||||
@@ -458,6 +454,53 @@ cz-cli@4.3.0, cz-conventional-changelog@3.3.0
|
|||||||
asdf global python latest
|
asdf global python latest
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### uv
|
||||||
|
|
||||||
|
[uv](https://docs.astral.sh/uv/) is a faster drop-in replacement for `poetry` among other dependency and virtual environment managers written in rust.
|
||||||
|
|
||||||
|
Common operations after [installing](https://docs.astral.sh/uv/getting-started/installation/):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# create venv w/pinned python version
|
||||||
|
uv venv --python ">=3.11,<3.13"
|
||||||
|
|
||||||
|
# activate venv
|
||||||
|
source .venv/bin/activate
|
||||||
|
|
||||||
|
# add deps
|
||||||
|
uv add redis
|
||||||
|
uv add --optional dev ruff
|
||||||
|
|
||||||
|
# install optional (extra) deps
|
||||||
|
uv pip install -r pyproject.toml --all-extras
|
||||||
|
|
||||||
|
# pip freeze
|
||||||
|
uv pip freeze > requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Ruff
|
||||||
|
|
||||||
|
[Ruff](https://docs.astral.sh/ruff/) is a linter and formatter compatible with various other tools like black, flake8, isort, etc. Like [uv](#uv), it's by Astral and written in rust.
|
||||||
|
|
||||||
|
Install is handled by `uv`. These are a few of my favorite things 🎵:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# run linter
|
||||||
|
ruff check .
|
||||||
|
|
||||||
|
# formatter
|
||||||
|
ruff format .
|
||||||
|
|
||||||
|
# run tests
|
||||||
|
ruff
|
||||||
|
|
||||||
|
# run tests with coverage
|
||||||
|
ruff --coverage
|
||||||
|
|
||||||
|
# run tests with coverage and open in browser
|
||||||
|
ruff --coverage --open
|
||||||
|
```
|
||||||
|
|
||||||
#### shellcheck
|
#### shellcheck
|
||||||
|
|
||||||
`.shellcheckrc` excludes various [bash language rules](https://github.com/koalaman/shellcheck/wiki/Ignore#ignoring-one-or-more-types-of-errors-forever). Useful to control noise vs. legitimate warnings/errors when using the shellcheck extension.
|
`.shellcheckrc` excludes various [bash language rules](https://github.com/koalaman/shellcheck/wiki/Ignore#ignoring-one-or-more-types-of-errors-forever). Useful to control noise vs. legitimate warnings/errors when using the shellcheck extension.
|
||||||
|
|||||||
Generated
-1974
File diff suppressed because it is too large
Load Diff
+28
-76
@@ -1,86 +1,38 @@
|
|||||||
[tool.poetry]
|
[project]
|
||||||
name = "non-steam-launchers"
|
name = "non-steam-launchers"
|
||||||
version = "3.8.2"
|
version = "4.2.3"
|
||||||
description = ""
|
description = ""
|
||||||
authors = [
|
authors = [
|
||||||
"moraroy <88516395+moraroy@users.noreply.github.com>",
|
{ name = "moraroy", email = "88516395+moraroy@users.noreply.github.com" },
|
||||||
"pythoninthegrass <4097471+pythoninthegrass@users.noreply.github.com>"
|
{ name = "pythoninthegrass", email = "4097471+pythoninthegrass@users.noreply.github.com" },
|
||||||
]
|
]
|
||||||
license = "MIT"
|
requires-python = ">=3.11,<3.13"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
|
license = "MIT"
|
||||||
|
|
||||||
[tool.poetry.dependencies]
|
dependencies = [
|
||||||
python = ">=3.11,<3.13"
|
"python-decouple~=3.8",
|
||||||
python-decouple = "^3.8"
|
"python-steamgriddb>=1.0.5,<2",
|
||||||
python-steamgriddb = "^1.0.5"
|
"requests>=2.31.0,<3",
|
||||||
requests = "^2.31.0"
|
"vdf~=3.4",
|
||||||
vdf = "^3.4"
|
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
|
||||||
coverage = "^7.3.2"
|
|
||||||
hypothesis = {extras = ["cli"], version = "^6.88.4"}
|
|
||||||
icecream = "^2.1.3"
|
|
||||||
ipython = "^9.0.2"
|
|
||||||
poetry-plugin-export = "^1.6.0"
|
|
||||||
pytest = "^8.0.2"
|
|
||||||
pytest-asyncio = "^1.0.0"
|
|
||||||
pytest-cov = "^6.0.0"
|
|
||||||
pytest-datafiles = "^3.0.0"
|
|
||||||
pytest-xdist = "^3.4.0"
|
|
||||||
rich = "^14.0.0"
|
|
||||||
ruff = "^0.12.1"
|
|
||||||
|
|
||||||
[tool.ruff]
|
|
||||||
# Enable pycodestyle (`E`) and Pyflakes (`F`) codes by default.
|
|
||||||
select = ["E", "F"]
|
|
||||||
ignore = []
|
|
||||||
# Skip unused variable rules
|
|
||||||
extend-ignore = ["D203", "E203", "E251", "E266", "E401", "E402", "E501", "F401", "F403"]
|
|
||||||
|
|
||||||
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
|
||||||
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TCH", "TID", "TRY", "UP", "YTT"]
|
|
||||||
unfixable = []
|
|
||||||
|
|
||||||
# Exclude a variety of commonly ignored directories.
|
|
||||||
exclude = [
|
|
||||||
".bzr",
|
|
||||||
".direnv",
|
|
||||||
"dist",
|
|
||||||
".eggs",
|
|
||||||
".git",
|
|
||||||
".git-rewrite",
|
|
||||||
".hg",
|
|
||||||
".mypy_cache",
|
|
||||||
".nox",
|
|
||||||
".pants.d",
|
|
||||||
"__pycache__",
|
|
||||||
".pytype",
|
|
||||||
".ruff_cache",
|
|
||||||
".svn",
|
|
||||||
".tox",
|
|
||||||
".venv",
|
|
||||||
"__pypackages__",
|
|
||||||
"_build",
|
|
||||||
"buck-out",
|
|
||||||
"build",
|
|
||||||
"dist",
|
|
||||||
"node_modules",
|
|
||||||
"venv",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
# Black (default: 88)
|
[dependency-groups]
|
||||||
line-length = 130
|
dev = [
|
||||||
|
"coverage>=7.3.2,<8",
|
||||||
# Allow unused variables when underscore-prefixed.
|
"hypothesis[cli]>=6.88.4,<7",
|
||||||
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
"icecream>=2.1.3,<3",
|
||||||
|
"ipython>=9.0.2,<10",
|
||||||
# Assume Python 3.11.
|
"poetry-plugin-export>=1.6.0,<2",
|
||||||
target-version = "py311"
|
"pytest>=8.0.2,<9",
|
||||||
|
"pytest-asyncio>=1.0.0,<2",
|
||||||
[tool.ruff.mccabe]
|
"pytest-cov>=6.0.0,<7",
|
||||||
# Unlike Flake8, default to a complexity level of 10.
|
"pytest-datafiles>=3.0.0,<4",
|
||||||
max-complexity = 10
|
"pytest-xdist>=3.4.0,<4",
|
||||||
|
"rich>=14.0.0,<15",
|
||||||
|
"ruff>=0.12.1,<0.13",
|
||||||
|
]
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["hatchling"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "hatchling.build"
|
||||||
|
|||||||
+8
-8
@@ -1,8 +1,8 @@
|
|||||||
certifi==2025.8.3 ; python_version >= "3.11" and python_version < "3.13"
|
certifi==2025.8.3
|
||||||
charset-normalizer==3.4.3 ; python_version >= "3.11" and python_version < "3.13"
|
charset-normalizer==3.4.3
|
||||||
idna==3.10 ; python_version >= "3.11" and python_version < "3.13"
|
idna==3.10
|
||||||
python-decouple==3.8 ; python_version >= "3.11" and python_version < "3.13"
|
python-decouple==3.8
|
||||||
python-steamgriddb==1.0.5 ; python_version >= "3.11" and python_version < "3.13"
|
python-steamgriddb==1.0.5
|
||||||
requests==2.32.4 ; python_version >= "3.11" and python_version < "3.13"
|
requests==2.32.5
|
||||||
urllib3==2.5.0 ; python_version >= "3.11" and python_version < "3.13"
|
urllib3==2.5.0
|
||||||
vdf==3.4 ; python_version >= "3.11" and python_version < "3.13"
|
vdf==3.4
|
||||||
|
|||||||
@@ -0,0 +1,87 @@
|
|||||||
|
# Fix without reporting on leftover violations
|
||||||
|
fix-only = true
|
||||||
|
|
||||||
|
# Enumerate all fixed violations
|
||||||
|
show-fixes = true
|
||||||
|
|
||||||
|
# Indent width (default: 4)
|
||||||
|
indent-width = 4
|
||||||
|
|
||||||
|
# Black (default: 88)
|
||||||
|
line-length = 130
|
||||||
|
|
||||||
|
# Exclude a variety of commonly ignored directories.
|
||||||
|
exclude = [
|
||||||
|
".bzr",
|
||||||
|
".direnv",
|
||||||
|
"dist",
|
||||||
|
".eggs",
|
||||||
|
".git",
|
||||||
|
".git-rewrite",
|
||||||
|
".hg",
|
||||||
|
".mypy_cache",
|
||||||
|
".nox",
|
||||||
|
".pants.d",
|
||||||
|
"__pycache__",
|
||||||
|
".pytype",
|
||||||
|
".ruff_cache",
|
||||||
|
".svn",
|
||||||
|
".tox",
|
||||||
|
".venv",
|
||||||
|
"__pypackages__",
|
||||||
|
"_build",
|
||||||
|
"buck-out",
|
||||||
|
"build",
|
||||||
|
"dist",
|
||||||
|
"node_modules",
|
||||||
|
"venv",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Assume Python 3.13
|
||||||
|
target-version = "py313"
|
||||||
|
|
||||||
|
[format]
|
||||||
|
# Use spaces instead of tabs
|
||||||
|
indent-style = "space"
|
||||||
|
|
||||||
|
# Use `\n` line endings for all files
|
||||||
|
line-ending = "lf"
|
||||||
|
|
||||||
|
# Set quote style for strings
|
||||||
|
quote-style = "preserve"
|
||||||
|
|
||||||
|
[lint]
|
||||||
|
select = [
|
||||||
|
# pycodestyle
|
||||||
|
"E",
|
||||||
|
# Pyflakes
|
||||||
|
"F",
|
||||||
|
# pyupgrade
|
||||||
|
"UP",
|
||||||
|
# flake8-bugbear
|
||||||
|
"B",
|
||||||
|
# flake8-simplify
|
||||||
|
"SIM",
|
||||||
|
# isort
|
||||||
|
"I",
|
||||||
|
]
|
||||||
|
ignore = ["D203", "E203", "E251", "E266", "E401", "E402", "E501", "F401", "F403", "F841"]
|
||||||
|
|
||||||
|
# Allow unused variables when underscore-prefixed.
|
||||||
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
||||||
|
|
||||||
|
# Allow autofix for all enabled rules (when `--fix`) is provided.
|
||||||
|
fixable = ["A", "B", "C", "D", "E", "F", "G", "I", "N", "Q", "S", "T", "W", "ANN", "ARG", "BLE", "COM", "DJ", "DTZ", "EM", "ERA", "EXE", "FBT", "ICN", "INP", "ISC", "NPY", "PD", "PGH", "PIE", "PL", "PT", "PTH", "PYI", "RET", "RSE", "RUF", "SIM", "SLF", "TID", "TRY", "UP", "YTT"]
|
||||||
|
|
||||||
|
[lint.isort]
|
||||||
|
combine-as-imports = true
|
||||||
|
from-first = false
|
||||||
|
no-sections = true
|
||||||
|
order-by-type = true
|
||||||
|
|
||||||
|
[lint.flake8-quotes]
|
||||||
|
docstring-quotes = "double"
|
||||||
|
|
||||||
|
[lint.mccabe]
|
||||||
|
# Unlike Flake8, default to a complexity level of 10.
|
||||||
|
max-complexity = 10
|
||||||
Reference in New Issue
Block a user