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 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