Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ruff and pre-commit update #24

Merged
merged 5 commits into from
Aug 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 9 additions & 11 deletions .github/workflows/lint-test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,35 +10,33 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
# use minimum version here from setup.py
python-version: "3.9"
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m pip install -e .[pinned,dev]
- name: Run pre-commit checks
run: |
./pre-commit
test:
runs-on: ubuntu-latest
strategy:
matrix:
# lowest, common (defaut ubuntu LTS), newest
python-version: ["3.9", "3.10", "3.11"]
# lowest, common (default ubuntu LTS), newest
python-version: ["3.9", "3.12"]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
python -m pip install -e .[pinned,dev,test]
- name: Run tests
run: |
pytest
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/python-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
# don't use shallow checkout to determine an intermediary version correctly
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
Expand Down
5 changes: 0 additions & 5 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,4 @@
{
"black-formatter.args": [
"--skip-string-normalization",
"--line-length",
"100"
],
"python.testing.pytestArgs": [
"tests"
],
Expand Down
6 changes: 3 additions & 3 deletions alphaconf/internal/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def __init__(
self.argument_parser = self._build_argument_parser()

def _build_argument_parser(self) -> arg_parser.ArgumentParser:
from .. import _global_configuration
from .. import _global_configuration # noqa: TID252

p = arg_parser.ArgumentParser(_global_configuration.helpers)
arg_parser.configure_parser(p, app=self)
Expand Down Expand Up @@ -162,7 +162,7 @@ def setup_configuration(
env_prefixes: Union[bool, Iterable[str]] = True,
resolve_configuration: bool = True,
):
from .. import _global_configuration as ctx_configuration
from .. import _global_configuration as ctx_configuration # noqa: TID252
from .dotenv_vars import try_dotenv

try_dotenv(load_dotenv=load_dotenv)
Expand Down Expand Up @@ -208,7 +208,7 @@ def masked_configuration(
:param mask_keys: Which keys to mask
:return: Configuration copy with masked values
"""
from .. import SECRET_MASKS
from .. import SECRET_MASKS # noqa: TID252

config = cast(dict, OmegaConf.to_container(self.configuration.c))
if mask_secrets:
Expand Down
2 changes: 1 addition & 1 deletion alphaconf/internal/arg_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ def _add_config(self, value: Union[list[str], DictConfig, dict, str]):
if isinstance(value, list):
self._config.extend(value)
return
elif isinstance(value, DictConfig):
if isinstance(value, DictConfig):
pass
elif isinstance(value, dict):
value = OmegaConf.create(value)
Expand Down
2 changes: 1 addition & 1 deletion alphaconf/internal/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,7 @@ def _find_name(parts: list[str], conf: DictConfig) -> str:
sub_conf = conf.get(name)
if next_offset == len(parts):
return name
elif isinstance(sub_conf, DictConfig):
if isinstance(sub_conf, DictConfig):
return name + "." + Configuration._find_name(parts[next_offset:], sub_conf)
return ".".join([name, *parts[next_offset:]])
return ".".join(parts)
Expand Down
2 changes: 1 addition & 1 deletion alphaconf/internal/load_file.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ def read_configuration_file(path: str) -> DictConfig:
"""
if path.endswith('.toml') and toml:
config = toml.load(path, decoder=TomlDecoderPrimitive())
return OmegaConf.create(config)
return OmegaConf.create(dict(config))
conf = OmegaConf.load(path)
if not isinstance(conf, DictConfig):
conf = OmegaConf.create({'config': conf})
Expand Down
33 changes: 22 additions & 11 deletions pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,39 @@ cd "$(dirname "$0")"
[ -d .git ] || cd ../..
[ -d .git ]

pre_commit() {
ruff check .
black --check .
check() {
echo " ruff:"
ruff check
ruff format --check
}

lint() {
check
echo " mypy:"
mypy .
}

fix_all() {
black .
fix() {
ruff check --fix-only .
}

format() {
black .
ruff format
}

# Commands
case "${1:-run}" in
run|lint)
pre_commit
echo "All good to commit"
run|check)
check
echo " all good to commit."
;;
lint)
lint
;;
fix)
fix_all
echo "Fix all..."
fix
format
;;
format)
format
Expand All @@ -42,5 +53,5 @@ case "${1:-run}" in
;;
*)
echo "Invalid argument: $*"
echo "Supported options: lint, format, install, uninstall"
echo "Supported options: lint, fix, format, install, uninstall"
esac
67 changes: 50 additions & 17 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,17 @@
[build-system]
requires = [
"setuptools>=61",
"setuptools-scm>=6",
"setuptools>=70",
"setuptools-scm>=8",
"wheel",
]
build-backend = "setuptools.build_meta"

[tools.setuptools]
packages = ["alphaconf"]

[tool.setuptools_scm]
local_scheme = "no-local-version"

[project]
name = "alphaconf"
dynamic = ["version"]
Expand All @@ -31,6 +37,22 @@ dotenv = ["python-dotenv"]
invoke = ["invoke"]
pydantic = ["pydantic>=2"]
toml = ["toml"]
pinned = [
"invoke==2.2.0",
"omegaconf==2.3.0",
"pydantic==2.7.4",
"pyyaml~=6.0",
"toml==0.10.2",
]
dev = [
"mypy~=1.11",
"ruff==0.5.6",
"types-pyyaml~=6.0",
"types-toml>=0.10.8",
]
test = [
"pytest==8.3.2",
]

[project.urls]
Homepage = "https://github.com/kmagusiak/alphaconf"
Expand All @@ -46,38 +68,49 @@ skip-string-normalization = 1
[tool.mypy]
ignore_missing_imports = true

[tools.setuptools]
packages = ["alphaconf"]

[tool.setuptools_scm]
local_scheme = "no-local-version"

[tool.ruff]
line-length = 100
target-version = "py39"

[tool.ruff.format]
quote-style="preserve"

[tool.ruff.lint]
# https://beta.ruff.rs/docs/rules/
select = [
"C4", # flake8 comprehensions
#"C9", # mccabe
#"D", # documentation
"E",
"F",
"W",
"COM", # flake8 commas
#"D", # pydocstyle, pydoclint
"E", # pycodestyle
"EXE", # flake8-executable
"F", # pyflakes
"I", # isort
"LOG", # flake8 logging
"N", # naming
"PLE", # pylint errors
"RET", # flake8 return
"RUF", # ruff specific
"SIM", # flake8 simplify
"TID", # flake8 tidy imports
"UP", # pyupdate
"C4", # comprehensions
"EXE",
"SIM",
"RUF",
"W", # pycodestyle
# specific rules
"FIX003" # comments with XXX should become TODO or FIXME
]
ignore = [
"COM812", # trailing commas (because we use the ruff formatter)
"D102", # mission doc in public method, function
"D205", # blank line required betweeen summary and description
"D205", # blank line required between summary and description
"D400", # first line should end with a period
"E731", # don't assign lambda
"SIM108", # simplify ITE by operator
"SIM300", # yoda condition
"UP038", # isinstance must use union operator on types
]

[tool.ruff.lint.mccabe]
max-complexity = 10

[tool.ruff.lint.per-file-ignores]
"__init__.py" = ["F401"]
16 changes: 0 additions & 16 deletions requirements.txt

This file was deleted.