gd-tools-cli 0.1.0__tar.gz → 0.1.2__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.
Files changed (36) hide show
  1. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/PKG-INFO +192 -191
  2. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/pyproject.toml +105 -96
  3. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/setup.cfg +4 -4
  4. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/addons/gd-tools-coverage/post_run_hook.gd +1 -1
  5. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/cli.py +31 -0
  6. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/config.py +28 -4
  7. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/cobertura_reporter.py +23 -5
  8. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/html_reporter.py +36 -5
  9. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/lcov_reporter.py +27 -4
  10. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/orchestrator.py +22 -5
  11. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/plan_generator.py +13 -6
  12. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/reporter.py +3 -3
  13. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/doctor.py +3 -2
  14. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/format_runner.py +17 -4
  15. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/godot.py +6 -0
  16. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/init.py +32 -34
  17. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/lint_runner.py +13 -3
  18. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/test_runner.py +17 -3
  19. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools_cli.egg-info/PKG-INFO +192 -191
  20. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools_cli.egg-info/requires.txt +1 -0
  21. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/README.md +0 -0
  22. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/__init__.py +0 -0
  23. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/__main__.py +0 -0
  24. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/addons/__init__.py +0 -0
  25. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/addons/gd-tools-coverage/coverage.gd +0 -0
  26. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/addons/gd-tools-coverage/pre_run_hook.gd +0 -0
  27. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/__init__.py +0 -0
  28. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/templates/file.html +0 -0
  29. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/templates/index.html +0 -0
  30. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/coverage/terminal_reporter.py +0 -0
  31. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/errors.py +0 -0
  32. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools/file_discovery.py +0 -0
  33. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools_cli.egg-info/SOURCES.txt +0 -0
  34. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools_cli.egg-info/dependency_links.txt +0 -0
  35. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools_cli.egg-info/entry_points.txt +0 -0
  36. {gd_tools_cli-0.1.0 → gd_tools_cli-0.1.2}/src/gd_tools_cli.egg-info/top_level.txt +0 -0
@@ -1,191 +1,192 @@
1
- Metadata-Version: 2.4
2
- Name: gd-tools-cli
3
- Version: 0.1.0
4
- Summary: A modern development workflow CLI for GDScript projects in Godot 4.5+
5
- Author-email: mansyar <m.ansyarafi@gmail.com>
6
- License: MIT
7
- Project-URL: Homepage, https://github.com/mansyar/gd-tools
8
- Project-URL: Repository, https://github.com/mansyar/gd-tools
9
- Project-URL: Documentation, https://github.com/mansyar/gd-tools#readme
10
- Project-URL: Bug Tracker, https://github.com/mansyar/gd-tools/issues
11
- Classifier: Development Status :: 4 - Beta
12
- Classifier: Environment :: Console
13
- Classifier: Intended Audience :: Developers
14
- Classifier: License :: OSI Approved :: MIT License
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.10
18
- Classifier: Programming Language :: Python :: 3.11
19
- Classifier: Programming Language :: Python :: 3.12
20
- Classifier: Topic :: Software Development :: Testing
21
- Classifier: Topic :: Software Development :: Quality Assurance
22
- Requires-Python: >=3.10
23
- Description-Content-Type: text/markdown
24
- Requires-Dist: gdtoolkit
25
- Requires-Dist: click
26
- Requires-Dist: junitparser
27
- Requires-Dist: jinja2
28
- Requires-Dist: rich
29
- Requires-Dist: pyyaml
30
- Requires-Dist: tomli; python_version < "3.11"
31
- Requires-Dist: tomli_w
32
- Requires-Dist: pydantic>=2.0
33
- Requires-Dist: requests
34
- Provides-Extra: dev
35
- Requires-Dist: pytest; extra == "dev"
36
- Requires-Dist: pytest-cov; extra == "dev"
37
- Requires-Dist: ruff; extra == "dev"
38
- Requires-Dist: black; extra == "dev"
39
-
40
- # gd-tools
41
-
42
- A modern development workflow CLI for GDScript projects in Godot 4.5+.
43
-
44
- [![CI](https://github.com/mansyar/gd-tools/actions/workflows/ci.yml/badge.svg)](https://github.com/mansyar/gd-tools/actions/workflows/ci.yml)
45
- [![Coverage](https://codecov.io/gh/mansyar/gd-tools/branch/main/graph/badge.svg)](https://codecov.io/gh/mansyar/gd-tools)
46
- [![PyPI version](https://img.shields.io/pypi/v/gd-tools.svg)](https://pypi.org/project/gd-tools/)
47
- [![Python versions](https://img.shields.io/pypi/pyversions/gd-tools.svg)](https://pypi.org/project/gd-tools/)
48
- [![Godot version](https://img.shields.io/badge/Godot-4.5%2B-blue.svg)](https://godotengine.org)
49
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
50
-
51
- ---
52
-
53
- ## 1. Overview
54
-
55
- `gd-tools` brings professional development tooling to GDScript -- test, lint,
56
- format, and code coverage in a single CLI. It wraps mature, community-trusted
57
- tools (GUT for testing, gdtoolkit for linting and formatting) and fills the
58
- remaining gap with a custom hybrid coverage system -- production-quality line
59
- and branch coverage for GDScript that no existing tool provides.
60
-
61
- One install, one config, one mental model.
62
-
63
- ## 2. Features
64
-
65
- | Feature | Description |
66
- |---------|-------------|
67
- | **Unified workflow** | One install, one config (`gd-tools.toml`), one mental model for test, lint, format, and coverage. |
68
- | **Zero-friction bootstrap** | `gd-tools init` gets a project fully set up in under a minute -- GUT installed, coverage addon deployed, configs generated. |
69
- | **Coverage gap-filling** | Production-quality line and branch coverage for GDScript -- HTML, LCOV, and Cobertura reports that integrate with CI and code review tools. |
70
- | **CI/CD friendly** | Exit codes, `--check` flags, machine-readable output (JSON, JUnit XML, LCOV, Cobertura), no interactive prompts in CI mode. |
71
- | **Standalone compatibility** | gdlint, gdformat, and GUT continue to work if invoked directly. `gd-tools` is a layer on top, not a lock-in. |
72
-
73
- ## 3. Installation
74
-
75
- ```bash
76
- pip install gd-tools-cli
77
- ```
78
-
79
- `gd-tools` requires Python 3.10+ and a Godot 4.5+ binary on your system.
80
- The Godot binary is auto-detected from configuration, environment variables
81
- (`GODOT_BIN`, `GODOT4_BIN`, `GODOT_PATH`), `PATH`, or common install locations.
82
-
83
- ## 4. Quick Start
84
-
85
- ```bash
86
- # 1. Install
87
- pip install gd-tools-cli
88
-
89
- # 2. Bootstrap your Godot project
90
- cd your-godot-project
91
- gd-tools init
92
-
93
- # 3. Run your tests
94
- gd-tools test
95
-
96
- # 4. Run tests with coverage
97
- gd-tools test --coverage --min 80
98
- ```
99
-
100
- `gd-tools init` installs GUT, deploys the coverage addon, generates
101
- `gd-tools.toml`, and creates per-tool config files (`.gutconfig.json`,
102
- `gdlintrc`, `gdformatrc`). The command is idempotent -- safe to re-run.
103
-
104
- ## 5. CLI Command Summary
105
-
106
- | Command | Description |
107
- |---------|-------------|
108
- | `gd-tools init` | Bootstrap a Godot project -- install GUT, deploy coverage addon, generate configs. |
109
- | `gd-tools doctor` | Diagnose the development environment -- Godot, GUT, coverage addon, tooling. |
110
- | `gd-tools test` | Run GUT tests with optional coverage, thresholds, JUnit XML output. |
111
- | `gd-tools lint` | Lint GDScript files using gdlint with text or JSON output. |
112
- | `gd-tools format` | Format GDScript files using gdformat with check and diff modes. |
113
- | `gd-tools coverage` | Coverage subcommands -- `report`, `merge`, `show`. |
114
-
115
- See the [User Guide](./docs/USER_GUIDE.md) for full command reference,
116
- flags, examples, and exit codes.
117
-
118
- ## 6. Configuration
119
-
120
- `gd-tools` uses a single `gd-tools.toml` file as the source of truth for
121
- all tool configuration. `gd-tools init` generates this file with sensible
122
- defaults.
123
-
124
- ```toml
125
- [godot]
126
- binary = "" # Optional -- auto-detected if unset
127
-
128
- [test]
129
- test_dirs = ["test", "tests"]
130
- prefix = "test_"
131
- suffix = ".gd"
132
- gutconfig = ".gutconfig.json"
133
-
134
- [lint]
135
- exclude = ["addons", ".godot", ".gd-tools", ".git"]
136
-
137
- [format]
138
- exclude = ["addons", ".godot", ".gd-tools", ".git"]
139
-
140
- [coverage]
141
- enabled = false
142
- min_percent = 0
143
- format = "html" # html, lcov, cobertura, text
144
- output_dir = ".gd-tools/coverage"
145
- exclude = ["addons", ".godot", ".gd-tools", ".git"]
146
- test_dirs = ["test", "tests"]
147
- ```
148
-
149
- See the [User Guide](./docs/USER_GUIDE.md) for a full configuration reference
150
- with all keys, defaults, and examples.
151
-
152
- ## 7. Documentation
153
-
154
- | Document | Description |
155
- |----------|-------------|
156
- | [User Guide](./docs/USER_GUIDE.md) | Complete CLI reference -- all commands, flags, examples, and troubleshooting. |
157
- | [Contributing Guide](./docs/CONTRIBUTING.md) | Development setup, code style, testing requirements, and PR process. |
158
- | [Architecture](./docs/ARCHITECTURE.md) | Coverage system architecture -- hybrid instrumentation design and data flows. |
159
- | [Product Requirements](./docs/PRD.md) | Full product specification -- features, design decisions, technical detail. |
160
- | [Roadmap](./docs/ROADMAP.md) | Release phases and milestones. |
161
- | [Testing Strategy](./docs/TESTING_STRATEGY.md) | Test pyramid, coverage targets, and CI integration. |
162
-
163
- ## 8. Development
164
-
165
- ```bash
166
- # Clone and install in editable mode with dev dependencies
167
- git clone https://github.com/mansyar/gd-tools.git
168
- cd gd-tools
169
- pip install -e ".[dev]"
170
- ```
171
-
172
- ### Running Tests
173
-
174
- Unit tests run without Godot. Integration tests require a Godot 4.5+
175
- binary -- configure via `.env` (see `.env.example`):
176
-
177
- ```bash
178
- cp .env.example .env
179
- # Edit .env: set GODOT_BIN to your Godot binary path
180
-
181
- # Run all tests with coverage
182
- pytest --cov=src/gd_tools --cov-report=term-missing
183
- ```
184
-
185
- See [Testing Strategy](./docs/TESTING_STRATEGY.md) for the full testing
186
- guide and [Contributing Guide](./docs/CONTRIBUTING.md) for development
187
- setup details.
188
-
189
- ## 9. License
190
-
191
- MIT
1
+ Metadata-Version: 2.4
2
+ Name: gd-tools-cli
3
+ Version: 0.1.2
4
+ Summary: A modern development workflow CLI for GDScript projects in Godot 4.5+
5
+ Author-email: mansyar <m.ansyarafi@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/mansyar/gd-tools
8
+ Project-URL: Repository, https://github.com/mansyar/gd-tools
9
+ Project-URL: Documentation, https://github.com/mansyar/gd-tools#readme
10
+ Project-URL: Bug Tracker, https://github.com/mansyar/gd-tools/issues
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Environment :: Console
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development :: Testing
21
+ Classifier: Topic :: Software Development :: Quality Assurance
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ Requires-Dist: gdtoolkit
25
+ Requires-Dist: click
26
+ Requires-Dist: junitparser
27
+ Requires-Dist: jinja2
28
+ Requires-Dist: rich
29
+ Requires-Dist: pyyaml
30
+ Requires-Dist: tomli; python_version < "3.11"
31
+ Requires-Dist: tomli_w
32
+ Requires-Dist: pydantic>=2.0
33
+ Requires-Dist: requests
34
+ Provides-Extra: dev
35
+ Requires-Dist: pytest; extra == "dev"
36
+ Requires-Dist: pytest-cov; extra == "dev"
37
+ Requires-Dist: ruff; extra == "dev"
38
+ Requires-Dist: black; extra == "dev"
39
+ Requires-Dist: commitizen; extra == "dev"
40
+
41
+ # gd-tools
42
+
43
+ A modern development workflow CLI for GDScript projects in Godot 4.5+.
44
+
45
+ [![CI](https://github.com/mansyar/gd-tools/actions/workflows/ci.yml/badge.svg)](https://github.com/mansyar/gd-tools/actions/workflows/ci.yml)
46
+ [![Coverage](https://codecov.io/gh/mansyar/gd-tools/branch/main/graph/badge.svg)](https://codecov.io/gh/mansyar/gd-tools)
47
+ [![PyPI version](https://img.shields.io/pypi/v/gd-tools.svg)](https://pypi.org/project/gd-tools/)
48
+ [![Python versions](https://img.shields.io/pypi/pyversions/gd-tools.svg)](https://pypi.org/project/gd-tools/)
49
+ [![Godot version](https://img.shields.io/badge/Godot-4.5%2B-blue.svg)](https://godotengine.org)
50
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
51
+
52
+ ---
53
+
54
+ ## 1. Overview
55
+
56
+ `gd-tools` brings professional development tooling to GDScript -- test, lint,
57
+ format, and code coverage in a single CLI. It wraps mature, community-trusted
58
+ tools (GUT for testing, gdtoolkit for linting and formatting) and fills the
59
+ remaining gap with a custom hybrid coverage system -- production-quality line
60
+ and branch coverage for GDScript that no existing tool provides.
61
+
62
+ One install, one config, one mental model.
63
+
64
+ ## 2. Features
65
+
66
+ | Feature | Description |
67
+ |---------|-------------|
68
+ | **Unified workflow** | One install, one config (`gd-tools.toml`), one mental model for test, lint, format, and coverage. |
69
+ | **Zero-friction bootstrap** | `gd-tools init` gets a project fully set up in under a minute -- GUT installed, coverage addon deployed, configs generated. |
70
+ | **Coverage gap-filling** | Production-quality line and branch coverage for GDScript -- HTML, LCOV, and Cobertura reports that integrate with CI and code review tools. |
71
+ | **CI/CD friendly** | Exit codes, `--check` flags, machine-readable output (JSON, JUnit XML, LCOV, Cobertura), no interactive prompts in CI mode. |
72
+ | **Standalone compatibility** | gdlint, gdformat, and GUT continue to work if invoked directly. `gd-tools` is a layer on top, not a lock-in. |
73
+
74
+ ## 3. Installation
75
+
76
+ ```bash
77
+ pip install gd-tools-cli
78
+ ```
79
+
80
+ `gd-tools` requires Python 3.10+ and a Godot 4.5+ binary on your system.
81
+ The Godot binary is auto-detected from configuration, environment variables
82
+ (`GODOT_BIN`, `GODOT4_BIN`, `GODOT_PATH`), `PATH`, or common install locations.
83
+
84
+ ## 4. Quick Start
85
+
86
+ ```bash
87
+ # 1. Install
88
+ pip install gd-tools-cli
89
+
90
+ # 2. Bootstrap your Godot project
91
+ cd your-godot-project
92
+ gd-tools init
93
+
94
+ # 3. Run your tests
95
+ gd-tools test
96
+
97
+ # 4. Run tests with coverage
98
+ gd-tools test --coverage --min 80
99
+ ```
100
+
101
+ `gd-tools init` installs GUT, deploys the coverage addon, generates
102
+ `gd-tools.toml`, and creates per-tool config files (`.gutconfig.json`,
103
+ `gdlintrc`, `gdformatrc`). The command is idempotent -- safe to re-run.
104
+
105
+ ## 5. CLI Command Summary
106
+
107
+ | Command | Description |
108
+ |---------|-------------|
109
+ | `gd-tools init` | Bootstrap a Godot project -- install GUT, deploy coverage addon, generate configs. |
110
+ | `gd-tools doctor` | Diagnose the development environment -- Godot, GUT, coverage addon, tooling. |
111
+ | `gd-tools test` | Run GUT tests with optional coverage, thresholds, JUnit XML output. |
112
+ | `gd-tools lint` | Lint GDScript files using gdlint with text or JSON output. |
113
+ | `gd-tools format` | Format GDScript files using gdformat with check and diff modes. |
114
+ | `gd-tools coverage` | Coverage subcommands -- `report`, `merge`, `show`. |
115
+
116
+ See the [User Guide](./docs/USER_GUIDE.md) for full command reference,
117
+ flags, examples, and exit codes.
118
+
119
+ ## 6. Configuration
120
+
121
+ `gd-tools` uses a single `gd-tools.toml` file as the source of truth for
122
+ all tool configuration. `gd-tools init` generates this file with sensible
123
+ defaults.
124
+
125
+ ```toml
126
+ [godot]
127
+ binary = "" # Optional -- auto-detected if unset
128
+
129
+ [test]
130
+ test_dirs = ["test", "tests"]
131
+ prefix = "test_"
132
+ suffix = ".gd"
133
+ gutconfig = ".gutconfig.json"
134
+
135
+ [lint]
136
+ exclude = ["addons", ".godot", ".gd-tools", ".git"]
137
+
138
+ [format]
139
+ exclude = ["addons", ".godot", ".gd-tools", ".git"]
140
+
141
+ [coverage]
142
+ enabled = false
143
+ min_percent = 0
144
+ format = "html" # html, lcov, cobertura, text
145
+ output_dir = ".gd-tools/coverage"
146
+ exclude = ["addons", ".godot", ".gd-tools", ".git"]
147
+ test_dirs = ["test", "tests"]
148
+ ```
149
+
150
+ See the [User Guide](./docs/USER_GUIDE.md) for a full configuration reference
151
+ with all keys, defaults, and examples.
152
+
153
+ ## 7. Documentation
154
+
155
+ | Document | Description |
156
+ |----------|-------------|
157
+ | [User Guide](./docs/USER_GUIDE.md) | Complete CLI reference -- all commands, flags, examples, and troubleshooting. |
158
+ | [Contributing Guide](./docs/CONTRIBUTING.md) | Development setup, code style, testing requirements, and PR process. |
159
+ | [Architecture](./docs/ARCHITECTURE.md) | Coverage system architecture -- hybrid instrumentation design and data flows. |
160
+ | [Product Requirements](./docs/PRD.md) | Full product specification -- features, design decisions, technical detail. |
161
+ | [Roadmap](./docs/ROADMAP.md) | Release phases and milestones. |
162
+ | [Testing Strategy](./docs/TESTING_STRATEGY.md) | Test pyramid, coverage targets, and CI integration. |
163
+
164
+ ## 8. Development
165
+
166
+ ```bash
167
+ # Clone and install in editable mode with dev dependencies
168
+ git clone https://github.com/mansyar/gd-tools.git
169
+ cd gd-tools
170
+ pip install -e ".[dev]"
171
+ ```
172
+
173
+ ### Running Tests
174
+
175
+ Unit tests run without Godot. Integration tests require a Godot 4.5+
176
+ binary -- configure via `.env` (see `.env.example`):
177
+
178
+ ```bash
179
+ cp .env.example .env
180
+ # Edit .env: set GODOT_BIN to your Godot binary path
181
+
182
+ # Run all tests with coverage
183
+ pytest --cov=src/gd_tools --cov-report=term-missing
184
+ ```
185
+
186
+ See [Testing Strategy](./docs/TESTING_STRATEGY.md) for the full testing
187
+ guide and [Contributing Guide](./docs/CONTRIBUTING.md) for development
188
+ setup details.
189
+
190
+ ## 9. License
191
+
192
+ MIT
@@ -1,96 +1,105 @@
1
- [build-system]
2
- requires = ["setuptools>=68.0", "wheel"]
3
- build-backend = "setuptools.build_meta"
4
-
5
- [project]
6
- name = "gd-tools-cli"
7
- version = "0.1.0"
8
- description = "A modern development workflow CLI for GDScript projects in Godot 4.5+"
9
- readme = "README.md"
10
- license = {text = "MIT"}
11
- requires-python = ">=3.10"
12
- authors = [
13
- {name = "mansyar", email = "m.ansyarafi@gmail.com"}
14
- ]
15
- classifiers = [
16
- "Development Status :: 4 - Beta",
17
- "Environment :: Console",
18
- "Intended Audience :: Developers",
19
- "License :: OSI Approved :: MIT License",
20
- "Operating System :: OS Independent",
21
- "Programming Language :: Python :: 3",
22
- "Programming Language :: Python :: 3.10",
23
- "Programming Language :: Python :: 3.11",
24
- "Programming Language :: Python :: 3.12",
25
- "Topic :: Software Development :: Testing",
26
- "Topic :: Software Development :: Quality Assurance",
27
- ]
28
- dependencies = [
29
- "gdtoolkit",
30
- "click",
31
- "junitparser",
32
- "jinja2",
33
- "rich",
34
- "pyyaml",
35
- "tomli; python_version < '3.11'",
36
- "tomli_w",
37
- "pydantic >= 2.0",
38
- "requests",
39
- ]
40
-
41
- [project.urls]
42
- Homepage = "https://github.com/mansyar/gd-tools"
43
- Repository = "https://github.com/mansyar/gd-tools"
44
- Documentation = "https://github.com/mansyar/gd-tools#readme"
45
- "Bug Tracker" = "https://github.com/mansyar/gd-tools/issues"
46
-
47
- [project.optional-dependencies]
48
- dev = [
49
- "pytest",
50
- "pytest-cov",
51
- "ruff",
52
- "black",
53
- ]
54
-
55
- [project.scripts]
56
- gd-tools = "gd_tools.cli:cli"
57
-
58
- [tool.setuptools.packages.find]
59
- where = ["src"]
60
-
61
- [tool.setuptools.package-data]
62
- "gd_tools.addons" = ["gd-tools-coverage/*.gd"]
63
- "gd_tools.coverage" = ["templates/*.html"]
64
-
65
- [tool.pytest.ini_options]
66
- testpaths = ["tests"]
67
- markers = [
68
- "unit: Unit tests for individual modules.",
69
- "integration: Integration tests for command flows.",
70
- "e2e: End-to-end tests for full workflows.",
71
- "slow: Tests that take a long time to run.",
72
- ]
73
- addopts = [
74
- "--strict-markers",
75
- "--strict-config",
76
- "--cov=gd_tools",
77
- "--cov-branch",
78
- "--cov-report=term-missing",
79
- "--cov-report=html",
80
- ]
81
-
82
- [tool.coverage.run]
83
- source = ["gd_tools"]
84
- omit = ["*/tests/*", "*/addons/*"]
85
-
86
- [tool.coverage.report]
87
- fail_under = 80
88
- show_missing = true
89
-
90
- [tool.ruff]
91
- line-length = 80
92
- target-version = "py310"
93
-
94
- [tool.black]
95
- line-length = 80
96
- target-version = ["py310"]
1
+ [build-system]
2
+ requires = ["setuptools>=68.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "gd-tools-cli"
7
+ version = "0.1.2"
8
+ description = "A modern development workflow CLI for GDScript projects in Godot 4.5+"
9
+ readme = "README.md"
10
+ license = {text = "MIT"}
11
+ requires-python = ">=3.10"
12
+ authors = [
13
+ {name = "mansyar", email = "m.ansyarafi@gmail.com"}
14
+ ]
15
+ classifiers = [
16
+ "Development Status :: 4 - Beta",
17
+ "Environment :: Console",
18
+ "Intended Audience :: Developers",
19
+ "License :: OSI Approved :: MIT License",
20
+ "Operating System :: OS Independent",
21
+ "Programming Language :: Python :: 3",
22
+ "Programming Language :: Python :: 3.10",
23
+ "Programming Language :: Python :: 3.11",
24
+ "Programming Language :: Python :: 3.12",
25
+ "Topic :: Software Development :: Testing",
26
+ "Topic :: Software Development :: Quality Assurance",
27
+ ]
28
+ dependencies = [
29
+ "gdtoolkit",
30
+ "click",
31
+ "junitparser",
32
+ "jinja2",
33
+ "rich",
34
+ "pyyaml",
35
+ "tomli; python_version < '3.11'",
36
+ "tomli_w",
37
+ "pydantic >= 2.0",
38
+ "requests",
39
+ ]
40
+
41
+ [project.urls]
42
+ Homepage = "https://github.com/mansyar/gd-tools"
43
+ Repository = "https://github.com/mansyar/gd-tools"
44
+ Documentation = "https://github.com/mansyar/gd-tools#readme"
45
+ "Bug Tracker" = "https://github.com/mansyar/gd-tools/issues"
46
+
47
+ [project.optional-dependencies]
48
+ dev = [
49
+ "pytest",
50
+ "pytest-cov",
51
+ "ruff",
52
+ "black",
53
+ "commitizen",
54
+ ]
55
+
56
+ [project.scripts]
57
+ gd-tools = "gd_tools.cli:cli"
58
+
59
+ [tool.setuptools.packages.find]
60
+ where = ["src"]
61
+
62
+ [tool.setuptools.package-data]
63
+ "gd_tools.addons" = ["gd-tools-coverage/*.gd"]
64
+ "gd_tools.coverage" = ["templates/*.html"]
65
+
66
+ [tool.pytest.ini_options]
67
+ testpaths = ["tests"]
68
+ markers = [
69
+ "unit: Unit tests for individual modules.",
70
+ "integration: Integration tests for command flows.",
71
+ "e2e: End-to-end tests for full workflows.",
72
+ "slow: Tests that take a long time to run.",
73
+ ]
74
+ addopts = [
75
+ "--strict-markers",
76
+ "--strict-config",
77
+ "--cov=gd_tools",
78
+ "--cov-branch",
79
+ "--cov-report=term-missing",
80
+ "--cov-report=html",
81
+ ]
82
+
83
+ [tool.coverage.run]
84
+ source = ["gd_tools"]
85
+ omit = ["*/tests/*", "*/addons/*"]
86
+
87
+ [tool.coverage.report]
88
+ fail_under = 80
89
+ show_missing = true
90
+
91
+ [tool.ruff]
92
+ line-length = 80
93
+ target-version = "py310"
94
+
95
+ [tool.black]
96
+ line-length = 80
97
+ target-version = ["py310"]
98
+
99
+ [tool.commitizen]
100
+ name = "cz_conventional_commits"
101
+ version = "0.1.2"
102
+ version_files = ["pyproject.toml:version"]
103
+ changelog_file = "CHANGELOG.md"
104
+ tag_format = "v$version"
105
+ update_changelog_on_bump = true
@@ -1,4 +1,4 @@
1
- [egg_info]
2
- tag_build =
3
- tag_date = 0
4
-
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -101,7 +101,7 @@ func _log_summary(hits: Dictionary, output_path: String) -> String:
101
101
  var total_lines: int = 0
102
102
  for file_id in hits:
103
103
  total_lines += hits[file_id].size()
104
- var summary: String = (
104
+ var summary = (
105
105
  "[gd-tools] Coverage summary: %d files, %d lines tracked, output: %s"
106
106
  % [total_files, total_lines, output_path]
107
107
  )