Skip to content
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
1 change: 1 addition & 0 deletions src/usethis/_integrations/pre_commit/hooks.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
"ruff-check", # ruff-check followed by ruff-format seems to be the recommended way by Astral
"ruff-format",
"deptry",
"lint_imports", # Alias used for import-linter used in the Import Linter docs, see https://github.com/usethis-python/usethis-python/issues/1022
"import-linter",
"codespell",
]
Expand Down
57 changes: 40 additions & 17 deletions src/usethis/_tool/impl/deptry.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,24 +87,47 @@ def get_config_spec(self) -> ConfigSpec:
)

def get_pre_commit_config(self) -> PreCommitConfig:
backend = get_backend()

_dir = get_source_dir_str()
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="deptry",
name="deptry",
entry=f"uv run --frozen --offline deptry {_dir}",
language=Language("system"),
always_run=True,
pass_filenames=False,
)
],
),
requires_venv=True,
inform_how_to_use_on_migrate=False,
)
if backend is BackendEnum.uv:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="deptry",
name="deptry",
entry=f"uv run --frozen --offline deptry {_dir}",
language=Language("system"),
always_run=True,
pass_filenames=False,
)
],
),
requires_venv=True,
inform_how_to_use_on_migrate=False,
)
elif backend is BackendEnum.none:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="deptry",
name="deptry",
entry=f"deptry {_dir}",
language=Language("system"),
always_run=True,
pass_filenames=False,
)
],
),
requires_venv=True,
inform_how_to_use_on_migrate=False,
)
else:
assert_never(backend)

def get_bitbucket_steps(self) -> list[BitbucketStep]:
backend = get_backend()
Expand Down
58 changes: 40 additions & 18 deletions src/usethis/_tool/impl/import_linter.py
Original file line number Diff line number Diff line change
Expand Up @@ -321,24 +321,46 @@ def _is_root_package_singular(self) -> bool:
raise NotImplementedError(msg)

def get_pre_commit_config(self) -> PreCommitConfig:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="import-linter",
name="import-linter",
pass_filenames=False,
entry="uv run --frozen --offline lint-imports",
language=Language("system"),
require_serial=True,
always_run=True,
)
],
),
requires_venv=True,
inform_how_to_use_on_migrate=False,
)
backend = get_backend()

if backend is BackendEnum.uv:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="import-linter",
name="import-linter",
pass_filenames=False,
entry="uv run --frozen --offline lint-imports",
language=Language("system"),
require_serial=True,
always_run=True,
)
],
),
requires_venv=True,
inform_how_to_use_on_migrate=False,
)
elif backend is BackendEnum.none:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="import-linter",
name="import-linter",
pass_filenames=False,
entry="lint-imports",
language=Language("system"),
)
],
),
requires_venv=True,
inform_how_to_use_on_migrate=False,
)
else:
assert_never(backend)

def get_managed_files(self) -> list[Path]:
return [Path(".importlinter")]
Expand Down
2 changes: 1 addition & 1 deletion src/usethis/_tool/impl/pyproject_fmt.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from usethis._types.backend import BackendEnum
from usethis._types.deps import Dependency

_PYPROJECT_FMT_VERSION = "v2.10.0" # Manually bump this version when necessary
_PYPROJECT_FMT_VERSION = "v2.11.0" # Manually bump this version when necessary


class PyprojectFmtTool(Tool):
Expand Down
42 changes: 25 additions & 17 deletions src/usethis/_tool/impl/requirements_txt.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,20 +58,28 @@ def get_managed_files(self) -> list[Path]:
return [Path("requirements.txt")]

def get_pre_commit_config(self) -> PreCommitConfig:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="uv-export",
name="uv-export",
files="^uv\\.lock$",
pass_filenames=False,
entry="uv export --frozen --offline --quiet --no-default-groups -o=requirements.txt",
language=Language("system"),
require_serial=True,
)
],
),
requires_venv=True,
)
backend = get_backend()

if backend is BackendEnum.uv:
return PreCommitConfig.from_single_repo(
LocalRepo(
repo="local",
hooks=[
HookDefinition(
id="uv-export",
name="uv-export",
files="^uv\\.lock$",
pass_filenames=False,
entry="uv export --frozen --offline --quiet --no-default-groups -o=requirements.txt",
language=Language("system"),
require_serial=True,
)
],
),
requires_venv=True,
)
elif backend is BackendEnum.none:
# Need a backend to generate requirements.txt files
return PreCommitConfig(repo_configs=[], inform_how_to_use_on_migrate=False)
else:
assert_never(backend)
2 changes: 1 addition & 1 deletion src/usethis/_tool/impl/ruff.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
from usethis._io import KeyValueFileManager
from usethis._tool.rule import Rule, RuleConfig

_RUFF_VERSION = "v0.14.0" # Manually bump this version when necessary
_RUFF_VERSION = "v0.14.1" # Manually bump this version when necessary


class RuffTool(Tool):
Expand Down
2 changes: 1 addition & 1 deletion tests/usethis/_tool/impl/test_requirements_txt.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ def test_pre_commit_and_not_uv(
out, err = capfd.readouterr()
assert not err
assert out == (
"☐ Run 'pre-commit run uv-export' to write 'requirements.txt'.\n"
"☐ Run 'usethis tool requirements.txt' to re-write 'requirements.txt'.\n"
)