gret 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gret-0.1.0/PKG-INFO +54 -0
- gret-0.1.0/README.md +41 -0
- gret-0.1.0/pyproject.toml +112 -0
- gret-0.1.0/src/gret/__init__.py +25 -0
- gret-0.1.0/src/gret/cli.py +53 -0
- gret-0.1.0/src/gret/py.typed +1 -0
gret-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: gret
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Golden Retriever - CLI and developer toolkit.
|
|
5
|
+
Author: Yuichi Ito
|
|
6
|
+
Author-email: Yuichi Ito <yuichi@yuichi.com>
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Requires-Dist: typer>=0.12.0
|
|
9
|
+
Requires-Dist: rich>=13.0.0
|
|
10
|
+
Requires-Python: >=3.11
|
|
11
|
+
Project-URL: Repository, https://github.com/yuichi110/golden_retriever
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
|
|
14
|
+
# golden_retriever
|
|
15
|
+
|
|
16
|
+
Golden Retriever CLI and developer toolkit.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Overview
|
|
21
|
+
|
|
22
|
+
- **Package Name (PyPI)**: `gret`
|
|
23
|
+
- **Import Module**: `gret`
|
|
24
|
+
- **CLI Command**: `gret`
|
|
25
|
+
- **Developer Management Tool**: `./gcli`
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Development Setup
|
|
30
|
+
|
|
31
|
+
This project uses [uv](https://github.com/astral-sh/uv) for dependency management and packaging.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
# Sync dependencies and set up virtual environment
|
|
35
|
+
uv sync
|
|
36
|
+
|
|
37
|
+
# Run the CLI
|
|
38
|
+
uv run gret --help
|
|
39
|
+
|
|
40
|
+
# Run developer CLI toolsets
|
|
41
|
+
./gcli --help
|
|
42
|
+
./gcli code-check all
|
|
43
|
+
./gcli test all
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Developer Toolset (`./gcli`)
|
|
49
|
+
|
|
50
|
+
The `./gcli` script provides unified developer utilities:
|
|
51
|
+
|
|
52
|
+
- `./gcli code-check all`: Run Ruff linter and Ty type checker.
|
|
53
|
+
- `./gcli test all`: Run full pytest suite with coverage.
|
|
54
|
+
- `./gcli pypi check-version`: Verify package release version against PyPI.
|
gret-0.1.0/README.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# golden_retriever
|
|
2
|
+
|
|
3
|
+
Golden Retriever CLI and developer toolkit.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
- **Package Name (PyPI)**: `gret`
|
|
10
|
+
- **Import Module**: `gret`
|
|
11
|
+
- **CLI Command**: `gret`
|
|
12
|
+
- **Developer Management Tool**: `./gcli`
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Development Setup
|
|
17
|
+
|
|
18
|
+
This project uses [uv](https://github.com/astral-sh/uv) for dependency management and packaging.
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# Sync dependencies and set up virtual environment
|
|
22
|
+
uv sync
|
|
23
|
+
|
|
24
|
+
# Run the CLI
|
|
25
|
+
uv run gret --help
|
|
26
|
+
|
|
27
|
+
# Run developer CLI toolsets
|
|
28
|
+
./gcli --help
|
|
29
|
+
./gcli code-check all
|
|
30
|
+
./gcli test all
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Developer Toolset (`./gcli`)
|
|
36
|
+
|
|
37
|
+
The `./gcli` script provides unified developer utilities:
|
|
38
|
+
|
|
39
|
+
- `./gcli code-check all`: Run Ruff linter and Ty type checker.
|
|
40
|
+
- `./gcli test all`: Run full pytest suite with coverage.
|
|
41
|
+
- `./gcli pypi check-version`: Verify package release version against PyPI.
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["uv-build<0.12"]
|
|
3
|
+
build-backend = "uv_build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "gret"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Golden Retriever - CLI and developer toolkit."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
license = { text = "Apache-2.0" }
|
|
12
|
+
authors = [{name = "Yuichi Ito", email = "yuichi@yuichi.com"}]
|
|
13
|
+
dependencies = [
|
|
14
|
+
"typer>=0.12.0",
|
|
15
|
+
"rich>=13.0.0",
|
|
16
|
+
]
|
|
17
|
+
|
|
18
|
+
[project.urls]
|
|
19
|
+
Repository = "https://github.com/yuichi110/golden_retriever"
|
|
20
|
+
|
|
21
|
+
[project.scripts]
|
|
22
|
+
gret = "gret.cli:main"
|
|
23
|
+
|
|
24
|
+
[tool.uv.build-backend]
|
|
25
|
+
module-name = "gret"
|
|
26
|
+
|
|
27
|
+
[[tool.uv.index]]
|
|
28
|
+
name = "pypi"
|
|
29
|
+
url = "https://pypi.org/simple"
|
|
30
|
+
|
|
31
|
+
[dependency-groups]
|
|
32
|
+
dev = [
|
|
33
|
+
"ruff>=0.9.0",
|
|
34
|
+
"pytest>=8.3.0",
|
|
35
|
+
"pytest-cov>=6.0.0",
|
|
36
|
+
"tomlkit>=0.14.0",
|
|
37
|
+
"ty>=0.0.35",
|
|
38
|
+
"typer>=0.12.0",
|
|
39
|
+
"rich>=13.0.0",
|
|
40
|
+
"pytest-xdist>=3.8.0",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[tool.ruff]
|
|
44
|
+
preview = false
|
|
45
|
+
fix = true
|
|
46
|
+
unsafe-fixes = false
|
|
47
|
+
line-length = 120
|
|
48
|
+
|
|
49
|
+
[tool.ruff.lint]
|
|
50
|
+
select = [
|
|
51
|
+
"C90", # mccabe
|
|
52
|
+
"F", # Pyflakes
|
|
53
|
+
"D", # pydocstyle
|
|
54
|
+
"E", # Pycodestyle Error
|
|
55
|
+
"I", # isort
|
|
56
|
+
"N", # pep8-naming (N)
|
|
57
|
+
"W", # Pycodestyle Warning
|
|
58
|
+
"ANN", # flake8-annotations (ANN)
|
|
59
|
+
"CPY", # flake8-copyright
|
|
60
|
+
"S", # flake8-bandit
|
|
61
|
+
"PL" # Pylint
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
ignore = [
|
|
65
|
+
"D203", # 1 blank line required before class docstring
|
|
66
|
+
"D212", # Multi-line docstring summary should start at the first line
|
|
67
|
+
"D415", # First line should end with a period, question mark, or exclamation point
|
|
68
|
+
"F401", # imported but unused
|
|
69
|
+
"PLC0414", # Import alias does not rename original package
|
|
70
|
+
"PLC1901", # compare-to-empty-string
|
|
71
|
+
"PLR0904", # Too many public methods
|
|
72
|
+
"PLR0912", # Too many branches
|
|
73
|
+
"PLR0913", # Too many arguments in function definition
|
|
74
|
+
"PLR0914", # Too many local variables
|
|
75
|
+
"PLR0915", # Too many statements
|
|
76
|
+
"PLR0917", # Too many positional arguments
|
|
77
|
+
"PLR2004", # Magic value used in comparison
|
|
78
|
+
"PLW2901" # Outer variable overwritten by inner target
|
|
79
|
+
]
|
|
80
|
+
|
|
81
|
+
[tool.ruff.lint.per-file-ignores]
|
|
82
|
+
"tools/**.py" = [
|
|
83
|
+
"ANN", # flake8-annotations
|
|
84
|
+
"S101", # Use of assert detected
|
|
85
|
+
"S310", # Audit URL open for permitted schemes
|
|
86
|
+
"S404", # Subprocess module usage
|
|
87
|
+
"S603", # Subprocess call without shell=True
|
|
88
|
+
"S607", # Subprocess with partial executable path
|
|
89
|
+
"PLC2701", # Private name import from external module
|
|
90
|
+
"PLR6301", # Method could be a function/static method
|
|
91
|
+
]
|
|
92
|
+
"tests/**.py" = [
|
|
93
|
+
"F403", # undefined-local-with-import-star
|
|
94
|
+
"F405", # undefined-local-with-import-star-usage
|
|
95
|
+
"D100", # undocumented-public-module
|
|
96
|
+
"D101", # undocumented-public-class
|
|
97
|
+
"D102", # undocumented-public-method
|
|
98
|
+
"D103", # undocumented-public-function
|
|
99
|
+
"D104", # undocumented-public-package
|
|
100
|
+
"D107", # undocumented-public-init
|
|
101
|
+
"ANN", # flake8-annotations
|
|
102
|
+
"CPY", # flake8-copyright
|
|
103
|
+
"S101", # Use of assert detected
|
|
104
|
+
"PLC2701", # Private name import from external module (standard for unit tests)
|
|
105
|
+
"PLR6301" # Method could be a function/static method (standard for pytest classes)
|
|
106
|
+
]
|
|
107
|
+
|
|
108
|
+
[tool.ruff.lint.pydocstyle]
|
|
109
|
+
convention = "google"
|
|
110
|
+
|
|
111
|
+
[tool.pytest.ini_options]
|
|
112
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2026 Yuichi Ito (yuichi@yuichi.com)
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed under the Apache License, Version 2.0.
|
|
4
|
+
# For more information, please visit: https://github.com/yuichi110/golden_retriever
|
|
5
|
+
#
|
|
6
|
+
# This software is provided "as is", without warranty of any kind,
|
|
7
|
+
# express or implied, including but not limited to the warranties of
|
|
8
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
9
|
+
|
|
10
|
+
"""Golden Retriever - CLI and developer toolkit."""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
from typing import Final
|
|
15
|
+
|
|
16
|
+
LIB_NAME: Final[str] = "gret"
|
|
17
|
+
LIB_VERSION: Final[str] = "0.1.0"
|
|
18
|
+
|
|
19
|
+
__version__: Final[str] = LIB_VERSION
|
|
20
|
+
|
|
21
|
+
__all__ = [
|
|
22
|
+
"LIB_NAME",
|
|
23
|
+
"LIB_VERSION",
|
|
24
|
+
"__version__",
|
|
25
|
+
]
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Copyright (c) 2026 Yuichi Ito (yuichi@yuichi.com)
|
|
2
|
+
#
|
|
3
|
+
# This software is licensed under the Apache License, Version 2.0.
|
|
4
|
+
# For more information, please visit: https://github.com/yuichi110/golden_retriever
|
|
5
|
+
#
|
|
6
|
+
# This software is provided "as is", without warranty of any kind,
|
|
7
|
+
# express or implied, including but not limited to the warranties of
|
|
8
|
+
# merchantability, fitness for a particular purpose and noninfringement.
|
|
9
|
+
|
|
10
|
+
"""Command line interface for Golden Retriever (gret)."""
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import typer
|
|
15
|
+
from rich.console import Console
|
|
16
|
+
|
|
17
|
+
from gret import LIB_NAME, LIB_VERSION
|
|
18
|
+
|
|
19
|
+
app = typer.Typer(
|
|
20
|
+
name="gret",
|
|
21
|
+
help="Golden Retriever CLI application.",
|
|
22
|
+
no_args_is_help=False,
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
console = Console()
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@app.command("version")
|
|
29
|
+
def version() -> None:
|
|
30
|
+
"""Display version information."""
|
|
31
|
+
console.print(f"[bold cyan]{LIB_NAME}[/bold cyan] version [bold green]{LIB_VERSION}[/bold green]")
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@app.callback(invoke_without_command=True)
|
|
35
|
+
def callback(ctx: typer.Context) -> None:
|
|
36
|
+
"""Golden Retriever entrypoint callback.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
ctx: Typer context object.
|
|
40
|
+
"""
|
|
41
|
+
if ctx.invoked_subcommand is None:
|
|
42
|
+
console.print("[bold cyan]Golden Retriever CLI[/bold cyan]")
|
|
43
|
+
console.print(f"{LIB_NAME} version [bold green]{LIB_VERSION}[/bold green]\n")
|
|
44
|
+
console.print("Run [bold]gret --help[/bold] for available commands.")
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def main() -> None:
|
|
48
|
+
"""Execute gret CLI."""
|
|
49
|
+
app()
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
if __name__ == "__main__":
|
|
53
|
+
main()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Marker file for PEP 561
|