repoglance 0.2.1__tar.gz → 0.2.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 (39) hide show
  1. {repoglance-0.2.1 → repoglance-0.2.2}/.github/workflows/release.yml +1 -1
  2. repoglance-0.2.2/.repoglance-badge.json +1 -0
  3. repoglance-0.2.2/CHANGELOG.md +41 -0
  4. {repoglance-0.2.1 → repoglance-0.2.2}/PKG-INFO +15 -15
  5. {repoglance-0.2.1 → repoglance-0.2.2}/README.md +11 -11
  6. {repoglance-0.2.1 → repoglance-0.2.2}/RELEASING.md +2 -2
  7. {repoglance-0.2.1 → repoglance-0.2.2}/assets/badge.svg +4 -4
  8. repoglance-0.2.2/assets/demo.svg +329 -0
  9. repoglance-0.2.2/assets/showcase/flask.svg +268 -0
  10. repoglance-0.2.2/assets/showcase/httpie.svg +311 -0
  11. repoglance-0.2.2/assets/showcase/requests.svg +290 -0
  12. {repoglance-0.2.1 → repoglance-0.2.2}/pyproject.toml +4 -4
  13. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/__init__.py +1 -1
  14. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/complexity.py +8 -19
  15. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/metrics.py +1 -1
  16. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/report.py +5 -5
  17. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/scanner.py +116 -46
  18. repoglance-0.2.2/tests/test_cli.py +54 -0
  19. repoglance-0.2.2/tests/test_scanner_extra.py +65 -0
  20. repoglance-0.2.1/.repolens-badge.json +0 -1
  21. repoglance-0.2.1/assets/demo.svg +0 -289
  22. repoglance-0.2.1/assets/showcase/flask.svg +0 -268
  23. repoglance-0.2.1/assets/showcase/httpie.svg +0 -311
  24. repoglance-0.2.1/assets/showcase/requests.svg +0 -290
  25. {repoglance-0.2.1 → repoglance-0.2.2}/.github/workflows/ci.yml +0 -0
  26. {repoglance-0.2.1 → repoglance-0.2.2}/.github/workflows/repoglance.yml +0 -0
  27. {repoglance-0.2.1 → repoglance-0.2.2}/.gitignore +0 -0
  28. {repoglance-0.2.1 → repoglance-0.2.2}/.pre-commit-hooks.yaml +0 -0
  29. {repoglance-0.2.1 → repoglance-0.2.2}/CONTRIBUTING.md +0 -0
  30. {repoglance-0.2.1 → repoglance-0.2.2}/LICENSE +0 -0
  31. {repoglance-0.2.1 → repoglance-0.2.2}/action.yml +0 -0
  32. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/__main__.py +0 -0
  33. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/badge.py +0 -0
  34. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/cli.py +0 -0
  35. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/gitinfo.py +0 -0
  36. {repoglance-0.2.1 → repoglance-0.2.2}/src/repoglance/languages.py +0 -0
  37. {repoglance-0.2.1 → repoglance-0.2.2}/tests/test_complexity.py +0 -0
  38. {repoglance-0.2.1 → repoglance-0.2.2}/tests/test_features.py +0 -0
  39. {repoglance-0.2.1 → repoglance-0.2.2}/tests/test_scanner.py +0 -0
@@ -5,7 +5,7 @@ name: Release
5
5
  #
6
6
  # One-time setup on PyPI: create the project's "pending publisher" at
7
7
  # https://pypi.org/manage/account/publishing/ with
8
- # owner: SRJ-ai repo: repolens workflow: release.yml environment: pypi
8
+ # owner: SRJ-ai repo: repoglance workflow: release.yml environment: pypi
9
9
 
10
10
  on:
11
11
  push:
@@ -0,0 +1 @@
1
+ {"schemaVersion": 1, "label": "repoglance", "message": "1.6k loc \u2022 Python", "color": "blue"}
@@ -0,0 +1,41 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented here. The format is based on
4
+ [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
5
+ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [0.2.2] - 2026-08-01
8
+
9
+ ### Added
10
+ - Respect the repository's `.gitignore`: when scanning a git repo, the file
11
+ list comes from `git ls-files` so ignored files are excluded (matches the
12
+ behavior of `tokei`/`scc`). Non-git directories still use a pruned walk.
13
+ - Count C-style `/* ... */` block comments when classifying lines, improving the
14
+ comment ratio (and therefore the health score) for C-family languages.
15
+ - Expanded test suite: CLI end-to-end (`click` runner), `.gitignore` handling,
16
+ block comments, and inline complexity scoring.
17
+
18
+ ### Changed
19
+ - Every file is now read exactly once. Complexity is computed during the scan
20
+ from the text already in memory instead of re-reading every file in a second
21
+ pass — roughly halving I/O on large repositories.
22
+
23
+ ## [0.2.1] - 2026-08-01
24
+
25
+ ### Changed
26
+ - Marketplace listing name set to a globally-unique title.
27
+
28
+ ## [0.2.0] - 2026-08-01
29
+
30
+ ### Changed
31
+ - Renamed the PyPI package and CLI to **repoglance** (the GitHub repository is
32
+ unchanged). Only line-comment TODO markers are counted, avoiding false
33
+ positives from prose and marker lists.
34
+
35
+ ## [0.1.0] - 2026-08-01
36
+
37
+ ### Added
38
+ - Initial release: rich terminal report (languages, complexity hotspots, TODO
39
+ tracker, biggest files, git activity), health score, JSON/Markdown/SVG/HTML
40
+ output, self-contained and dynamic badges, CI gate, GitHub Action, and
41
+ pre-commit hook.
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: repoglance
3
- Version: 0.2.1
3
+ Version: 0.2.2
4
4
  Summary: Instant, gorgeous insight into any code repository — languages, complexity hotspots, TODOs and git activity in one terminal command.
5
- Project-URL: Homepage, https://github.com/SRJ-ai/repolens
6
- Project-URL: Repository, https://github.com/SRJ-ai/repolens
7
- Project-URL: Issues, https://github.com/SRJ-ai/repolens/issues
5
+ Project-URL: Homepage, https://github.com/SRJ-ai/repoglance
6
+ Project-URL: Repository, https://github.com/SRJ-ai/repoglance
7
+ Project-URL: Issues, https://github.com/SRJ-ai/repoglance/issues
8
8
  Author: repoglance contributors
9
9
  License: MIT
10
10
  License-File: LICENSE
@@ -37,11 +37,11 @@ Point it at any folder. In under a second you get a beautiful terminal report:
37
37
  language breakdown, complexity hotspots, TODO tracker, biggest files, and git
38
38
  activity. **Zero config. Zero API keys. Zero telemetry.**
39
39
 
40
- [![CI](https://github.com/SRJ-ai/repolens/actions/workflows/ci.yml/badge.svg)](https://github.com/SRJ-ai/repolens/actions/workflows/ci.yml)
40
+ [![CI](https://github.com/SRJ-ai/repoglance/actions/workflows/ci.yml/badge.svg)](https://github.com/SRJ-ai/repoglance/actions/workflows/ci.yml)
41
41
  [![Python](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/)
42
42
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
43
43
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
44
- [![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repolens/main/.repolens-badge.json)](https://github.com/SRJ-ai/repolens)
44
+ [![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repoglance/main/.repoglance-badge.json)](https://github.com/SRJ-ai/repoglance)
45
45
 
46
46
  </div>
47
47
 
@@ -69,9 +69,9 @@ repoglance run against well-known projects (click to view the full report):
69
69
 
70
70
  | Project | Files | Lines of code | Health |
71
71
  |---|--:|--:|:--:|
72
- | [flask](assets/showcase/flask.svg) | 200 | 25,030 | D (64) |
73
- | [httpie](assets/showcase/httpie.svg) | 217 | 19,604 | D (62) |
74
- | [requests](assets/showcase/requests.svg) | 71 | 13,215 | D (69) |
72
+ | [flask](assets/showcase/flask.svg) | 209 | 25,293 | D (64) |
73
+ | [httpie](assets/showcase/httpie.svg) | 236 | 20,114 | D (62) |
74
+ | [requests](assets/showcase/requests.svg) | 89 | 13,785 | C (70) |
75
75
 
76
76
  <div align="center">
77
77
 
@@ -196,7 +196,7 @@ jobs:
196
196
  runs-on: ubuntu-latest
197
197
  steps:
198
198
  - uses: actions/checkout@v4
199
- - uses: SRJ-ai/repolens@main
199
+ - uses: SRJ-ai/repoglance@main
200
200
  with:
201
201
  fail-under: "70" # optional health gate
202
202
  max-complexity: "25" # optional complexity gate
@@ -209,8 +209,8 @@ The report also lands in the workflow's **job summary** every run.
209
209
  ```yaml
210
210
  # .pre-commit-config.yaml
211
211
  repos:
212
- - repo: https://github.com/SRJ-ai/repolens
213
- rev: v0.2.0
212
+ - repo: https://github.com/SRJ-ai/repoglance
213
+ rev: v0.2.2
214
214
  hooks:
215
215
  - id: repoglance
216
216
  args: ["--ci", "--fail-under", "70"]
@@ -222,11 +222,11 @@ Commit a shields endpoint file and point a dynamic badge at it — the badge
222
222
  refreshes itself, no service to run:
223
223
 
224
224
  ```bash
225
- repoglance --badge-json .repolens-badge.json # commit this file
225
+ repoglance --badge-json .repoglance-badge.json # commit this file
226
226
  ```
227
227
 
228
228
  ```markdown
229
- ![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repolens/main/.repolens-badge.json)
229
+ ![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repoglance/main/.repoglance-badge.json)
230
230
  ```
231
231
 
232
232
  ### Markdown anywhere
@@ -237,7 +237,7 @@ repoglance --md # paste into a PR, wiki, or Slack
237
237
 
238
238
  ## Design goals
239
239
 
240
- - **Fast** — a single `os.walk`, no external services.
240
+ - **Fast** — a single pass, no external services.
241
241
  - **Honest** — no network, no telemetry, no surprise writes.
242
242
  - **Pretty** — powered by [rich](https://github.com/Textualize/rich).
243
243
  - **Scriptable** — everything the report shows is available as `--json`.
@@ -8,11 +8,11 @@ Point it at any folder. In under a second you get a beautiful terminal report:
8
8
  language breakdown, complexity hotspots, TODO tracker, biggest files, and git
9
9
  activity. **Zero config. Zero API keys. Zero telemetry.**
10
10
 
11
- [![CI](https://github.com/SRJ-ai/repolens/actions/workflows/ci.yml/badge.svg)](https://github.com/SRJ-ai/repolens/actions/workflows/ci.yml)
11
+ [![CI](https://github.com/SRJ-ai/repoglance/actions/workflows/ci.yml/badge.svg)](https://github.com/SRJ-ai/repoglance/actions/workflows/ci.yml)
12
12
  [![Python](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/)
13
13
  [![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)
14
14
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](CONTRIBUTING.md)
15
- [![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repolens/main/.repolens-badge.json)](https://github.com/SRJ-ai/repolens)
15
+ [![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repoglance/main/.repoglance-badge.json)](https://github.com/SRJ-ai/repoglance)
16
16
 
17
17
  </div>
18
18
 
@@ -40,9 +40,9 @@ repoglance run against well-known projects (click to view the full report):
40
40
 
41
41
  | Project | Files | Lines of code | Health |
42
42
  |---|--:|--:|:--:|
43
- | [flask](assets/showcase/flask.svg) | 200 | 25,030 | D (64) |
44
- | [httpie](assets/showcase/httpie.svg) | 217 | 19,604 | D (62) |
45
- | [requests](assets/showcase/requests.svg) | 71 | 13,215 | D (69) |
43
+ | [flask](assets/showcase/flask.svg) | 209 | 25,293 | D (64) |
44
+ | [httpie](assets/showcase/httpie.svg) | 236 | 20,114 | D (62) |
45
+ | [requests](assets/showcase/requests.svg) | 89 | 13,785 | C (70) |
46
46
 
47
47
  <div align="center">
48
48
 
@@ -167,7 +167,7 @@ jobs:
167
167
  runs-on: ubuntu-latest
168
168
  steps:
169
169
  - uses: actions/checkout@v4
170
- - uses: SRJ-ai/repolens@main
170
+ - uses: SRJ-ai/repoglance@main
171
171
  with:
172
172
  fail-under: "70" # optional health gate
173
173
  max-complexity: "25" # optional complexity gate
@@ -180,8 +180,8 @@ The report also lands in the workflow's **job summary** every run.
180
180
  ```yaml
181
181
  # .pre-commit-config.yaml
182
182
  repos:
183
- - repo: https://github.com/SRJ-ai/repolens
184
- rev: v0.2.0
183
+ - repo: https://github.com/SRJ-ai/repoglance
184
+ rev: v0.2.2
185
185
  hooks:
186
186
  - id: repoglance
187
187
  args: ["--ci", "--fail-under", "70"]
@@ -193,11 +193,11 @@ Commit a shields endpoint file and point a dynamic badge at it — the badge
193
193
  refreshes itself, no service to run:
194
194
 
195
195
  ```bash
196
- repoglance --badge-json .repolens-badge.json # commit this file
196
+ repoglance --badge-json .repoglance-badge.json # commit this file
197
197
  ```
198
198
 
199
199
  ```markdown
200
- ![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repolens/main/.repolens-badge.json)
200
+ ![repoglance](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/SRJ-ai/repoglance/main/.repoglance-badge.json)
201
201
  ```
202
202
 
203
203
  ### Markdown anywhere
@@ -208,7 +208,7 @@ repoglance --md # paste into a PR, wiki, or Slack
208
208
 
209
209
  ## Design goals
210
210
 
211
- - **Fast** — a single `os.walk`, no external services.
211
+ - **Fast** — a single pass, no external services.
212
212
  - **Honest** — no network, no telemetry, no surprise writes.
213
213
  - **Pretty** — powered by [rich](https://github.com/Textualize/rich).
214
214
  - **Scriptable** — everything the report shows is available as `--json`.
@@ -5,7 +5,7 @@ via GitHub Actions using PyPI's **trusted publisher** (OIDC) — there is no API
5
5
  token stored anywhere.
6
6
 
7
7
  > The PyPI distribution is **`repoglance`**; the GitHub repository is
8
- > **`SRJ-ai/repolens`**. Keep that distinction in mind below.
8
+ > **`SRJ-ai/repoglance`**. Keep that distinction in mind below.
9
9
 
10
10
  ## One-time PyPI setup
11
11
 
@@ -13,7 +13,7 @@ token stored anywhere.
13
13
  2. Fill in:
14
14
  - **PyPI project name:** `repoglance`
15
15
  - **Owner:** `SRJ-ai`
16
- - **Repository:** `repolens`
16
+ - **Repository:** `repoglance`
17
17
  - **Workflow name:** `release.yml`
18
18
  - **Environment:** `pypi`
19
19
  3. Save.
@@ -1,5 +1,5 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="200" height="20" role="img" aria-label="repoglance: 1.4k loc • Python">
2
- <title>repoglance: 1.4k loc • Python</title>
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="200" height="20" role="img" aria-label="repoglance: 1.6k loc • Python">
2
+ <title>repoglance: 1.6k loc • Python</title>
3
3
  <linearGradient id="s" x2="0" y2="100%">
4
4
  <stop offset="0" stop-color="#bbb" stop-opacity=".1"/>
5
5
  <stop offset="1" stop-opacity=".1"/>
@@ -13,7 +13,7 @@
13
13
  <g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" font-size="110" text-rendering="geometricPrecision">
14
14
  <text aria-hidden="true" x="418" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="635">repoglance</text>
15
15
  <text x="418" y="140" transform="scale(.1)" textLength="635">repoglance</text>
16
- <text aria-hidden="true" x="1420" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="970">1.4k loc • Python</text>
17
- <text x="1420" y="140" transform="scale(.1)" textLength="970">1.4k loc • Python</text>
16
+ <text aria-hidden="true" x="1420" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="970">1.6k loc • Python</text>
17
+ <text x="1420" y="140" transform="scale(.1)" textLength="970">1.6k loc • Python</text>
18
18
  </g>
19
19
  </svg>