git-ember 1.3.2__tar.gz → 1.4.1__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 (26) hide show
  1. git_ember-1.4.1/PKG-INFO +274 -0
  2. git_ember-1.4.1/README.md +252 -0
  3. git_ember-1.4.1/pyproject.toml +38 -0
  4. git_ember-1.4.1/src/git_ember.egg-info/PKG-INFO +274 -0
  5. {git_ember-1.3.2 → git_ember-1.4.1}/src/git_ember.egg-info/SOURCES.txt +0 -1
  6. git_ember-1.4.1/src/gitember/__init__.py +6 -0
  7. {git_ember-1.3.2 → git_ember-1.4.1}/src/gitember/cli.py +216 -56
  8. {git_ember-1.3.2 → git_ember-1.4.1}/src/gitember/colors.py +16 -2
  9. {git_ember-1.3.2 → git_ember-1.4.1}/src/gitember/config.py +40 -3
  10. {git_ember-1.3.2 → git_ember-1.4.1}/src/gitember/git.py +254 -110
  11. {git_ember-1.3.2 → git_ember-1.4.1}/src/gitember/render.py +113 -40
  12. git_ember-1.4.1/tests/test_config.py +189 -0
  13. {git_ember-1.3.2 → git_ember-1.4.1}/tests/test_git.py +88 -0
  14. {git_ember-1.3.2 → git_ember-1.4.1}/tests/test_render.py +81 -3
  15. git_ember-1.3.2/PKG-INFO +0 -207
  16. git_ember-1.3.2/README.md +0 -197
  17. git_ember-1.3.2/pyproject.toml +0 -19
  18. git_ember-1.3.2/src/git_ember.egg-info/PKG-INFO +0 -207
  19. git_ember-1.3.2/src/git_ember.egg-info/requires.txt +0 -1
  20. git_ember-1.3.2/src/gitember/__init__.py +0 -1
  21. git_ember-1.3.2/tests/test_config.py +0 -62
  22. {git_ember-1.3.2 → git_ember-1.4.1}/LICENSE +0 -0
  23. {git_ember-1.3.2 → git_ember-1.4.1}/setup.cfg +0 -0
  24. {git_ember-1.3.2 → git_ember-1.4.1}/src/git_ember.egg-info/dependency_links.txt +0 -0
  25. {git_ember-1.3.2 → git_ember-1.4.1}/src/git_ember.egg-info/entry_points.txt +0 -0
  26. {git_ember-1.3.2 → git_ember-1.4.1}/src/git_ember.egg-info/top_level.txt +0 -0
@@ -0,0 +1,274 @@
1
+ Metadata-Version: 2.4
2
+ Name: git-ember
3
+ Version: 1.4.1
4
+ Summary: A GitHub-style heatmap of commits and local repo statistics for your terminal
5
+ Author-email: Luka van Rooyen <lukavrooyen@proton.me>
6
+ License-Expression: MIT
7
+ Project-URL: repository, https://codeberg.org/lukavr05/git-ember
8
+ Keywords: git,cli,tui
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.11
11
+ Classifier: Programming Language :: Python :: 3.12
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Operating System :: OS Independent
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Environment :: Console
16
+ Classifier: Topic :: Software Development :: Version Control :: Git
17
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
18
+ Requires-Python: >=3.11
19
+ Description-Content-Type: text/markdown
20
+ License-File: LICENSE
21
+ Dynamic: license-file
22
+
23
+ # git-ember
24
+
25
+ [![PyPI](https://img.shields.io/pypi/v/git-ember)](https://pypi.org/project/git-ember/)
26
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
27
+
28
+ A GitHub-style heatmap of commit activity for your terminal.
29
+
30
+ ## Overview
31
+
32
+ git-ember reads directly from your local Git repository history—no external APIs or network requests—and displays a colored contribution heatmap similar to what you see on GitHub profiles. It supports multiple color schemes, branch filtering, custom date ranges, repository statistics, branch tree visualizations, and hour-of-day activity heatmaps.
33
+
34
+ ## Prerequisites
35
+
36
+ - Python 3.11 or higher
37
+ - Git installed and available in PATH
38
+
39
+ ## Installation
40
+
41
+ ### From PyPI (recommended)
42
+
43
+ ```bash
44
+ pip install git-ember
45
+ ```
46
+
47
+ ### From source
48
+
49
+ 1. Clone the repository:
50
+
51
+ ```bash
52
+ git clone https://codeberg.org/lukavr05/git-ember.git
53
+ cd git-ember
54
+ ```
55
+
56
+ 2. Install the package:
57
+
58
+ ```bash
59
+ pip install -e .
60
+ ```
61
+
62
+ 3. Verify the installation:
63
+
64
+ ```bash
65
+ git-ember --version
66
+ ```
67
+
68
+ ### Running without installation
69
+
70
+ If you prefer not to install the package, run directly:
71
+
72
+ ```bash
73
+ PYTHONPATH=src python3 main.py /path/to/repo
74
+ ```
75
+
76
+ ### Uninstall
77
+
78
+ ```bash
79
+ pip uninstall git-ember
80
+ ```
81
+
82
+ ## Configuration
83
+
84
+ git-ember reads configuration from `~/.config/git-ember/config.toml` (or the platform-specific config directory). CLI arguments take precedence over config values.
85
+
86
+ | Variable | Required | Default | Description |
87
+ |----------------|----------|-----------|--------------------------------------------------|
88
+ | `color` | No | `green` | Color scheme name |
89
+ | `border` | No | `=` | Border character |
90
+ | `week_start` | No | `sunday` | Week start day (sunday/monday) |
91
+ | `ascii` | No | `false` | Use ASCII characters |
92
+ | `scale` | No | `auto` | Intensity scaling (auto/adaptive) |
93
+ | `extended` | No | `false` | Show extended report by default |
94
+ | `compact` | No | `false` | Show last 4 months only |
95
+ | `tree` | No | `false` | Show branch tree by default |
96
+ | `years` | No | `1` | Number of years to show |
97
+ | `recent_count` | No | `5` | Number of recent commits to display |
98
+
99
+ ### Example config file
100
+
101
+ ```toml
102
+ color = "blue"
103
+ border = "-"
104
+ week_start = "monday"
105
+ ascii = "true"
106
+ scale = "adaptive"
107
+ extended = "true"
108
+ compact = "true"
109
+ tree = "true"
110
+ years = 2
111
+ recent_count = 10
112
+ ```
113
+
114
+ ## Usage
115
+
116
+ Show commit heatmap for the current year:
117
+
118
+ ```bash
119
+ git-ember
120
+ ```
121
+
122
+ Show heatmap for a specific repository:
123
+
124
+ ```bash
125
+ git-ember /path/to/repo
126
+ ```
127
+
128
+ Show multiple years:
129
+
130
+ ```bash
131
+ git-ember --years 2
132
+ git-ember -y 3
133
+ ```
134
+
135
+ Use different color schemes:
136
+
137
+ ```bash
138
+ git-ember --color green # default
139
+ git-ember --color blue
140
+ git-ember --color orange
141
+ git-ember --color purple
142
+ git-ember --color mono
143
+ ```
144
+
145
+ Show heatmap for a specific branch:
146
+
147
+ ```bash
148
+ git-ember --branch feature-x
149
+ ```
150
+
151
+ Display branch tree visualization:
152
+
153
+ ```bash
154
+ git-ember --tree
155
+ git-ember --branch feature-x --tree
156
+ ```
157
+
158
+ Show custom date range:
159
+
160
+ ```bash
161
+ git-ember --after 2025-01-01 --before 2025-06-30
162
+ git-ember --after 2025-01-01
163
+ ```
164
+
165
+ Show extended report with recent commits, top contributors, and statistics:
166
+
167
+ ```bash
168
+ git-ember --extended
169
+ git-ember -e
170
+ ```
171
+
172
+ Filter commits by author:
173
+
174
+ ```bash
175
+ git-ember --author "John Doe"
176
+ git-ember -A "john@"
177
+ ```
178
+
179
+ Exclude or include only merge commits:
180
+
181
+ ```bash
182
+ git-ember --no-merges
183
+ git-ember --merges-only
184
+ ```
185
+
186
+ Filter commits by message content:
187
+
188
+ ```bash
189
+ git-ember --grep "bugfix"
190
+ git-ember --grep "feat"
191
+ ```
192
+
193
+ Show hour-of-day activity heatmap:
194
+
195
+ ```bash
196
+ git-ember --hourly
197
+ ```
198
+
199
+ Strip ANSI color codes for piping or file export:
200
+
201
+ ```bash
202
+ git-ember --plain
203
+ git-ember --plain > heatmap.txt
204
+ ```
205
+
206
+ ### Command-line options
207
+
208
+ | Flag | Alias | Description | Default |
209
+ |-----------------|---------|----------------------------------------------|-------------|
210
+ | `--color` | `-c` | Color scheme | `green` |
211
+ | `--years` | `-y` | Number of years to show (max 10) | `1` |
212
+ | `--border` | `-b` | Border character | `=` |
213
+ | `--extended` | `-e` | Show commits, contributors, stats | `false` |
214
+ | `--ascii` | `-a` | Use ASCII characters instead of Unicode | `false` |
215
+ | `--plain` | `-p` | Strip all ANSI color codes | `false` |
216
+ | `--compact` | - | Show last 4 months only | `false` |
217
+ | `--branch` | - | Show heatmap for specific branch | all branches|
218
+ | `--tree` | `-t` | Show branch tree under heatmap | `false` |
219
+ | `--scale` | - | Intensity scaling: auto or adaptive | `auto` |
220
+ | `--after` | - | Show commits after date (YYYY-MM-DD) | - |
221
+ | `--before` | - | Show commits before date (YYYY-MM-DD) | - |
222
+ | `--week-start` | - | Week start: sunday or monday | `sunday` |
223
+ | `--author` | `-A` | Filter commits by author | - |
224
+ | `--no-merges` | - | Exclude merge commits | `false` |
225
+ | `--merges-only` | - | Show only merge commits | `false` |
226
+ | `--grep` | - | Filter commits by message content | - |
227
+ | `--hourly` | - | Show hour-of-day x day-of-week heatmap | `false` |
228
+ | `--version` | `-V` | Show version | - |
229
+ | `--help` | `-h` | Show help | - |
230
+
231
+ ## Project Structure
232
+
233
+ ```
234
+ git-ember/
235
+ ├── main.py # CLI entry point (when running without install)
236
+ ├── pyproject.toml # Package configuration
237
+ ├── Makefile # Build targets (install, lint, test)
238
+ ├── .python-version # Python version (3.11)
239
+ ├── README.md # This file
240
+ ├── LICENSE # MIT license
241
+ ├── docs/
242
+ │ └── CHANGELOG.md # Version history
243
+ ├── src/
244
+ │ └── gitember/
245
+ │ ├── __init__.py # Package version
246
+ │ ├── cli.py # CLI argument parsing and main logic
247
+ │ ├── git.py # Git subprocess calls and data parsing
248
+ │ ├── render.py # Heatmap and branch tree rendering
249
+ │ ├── colors.py # ANSI color scheme definitions
250
+ │ └── config.py # Config file load/save
251
+ └── tests/
252
+ ├── conftest.py # Pytest fixtures for git repos
253
+ ├── test_config.py # Config tests
254
+ ├── test_git.py # Git operations tests
255
+ └── test_render.py # Rendering tests
256
+ ```
257
+
258
+ ## Development
259
+
260
+ Run the linter:
261
+
262
+ ```bash
263
+ make lint
264
+ ```
265
+
266
+ Run tests:
267
+
268
+ ```bash
269
+ pytest
270
+ ```
271
+
272
+ ## License
273
+
274
+ MIT License — see [LICENSE](LICENSE) file.
@@ -0,0 +1,252 @@
1
+ # git-ember
2
+
3
+ [![PyPI](https://img.shields.io/pypi/v/git-ember)](https://pypi.org/project/git-ember/)
4
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+
6
+ A GitHub-style heatmap of commit activity for your terminal.
7
+
8
+ ## Overview
9
+
10
+ git-ember reads directly from your local Git repository history—no external APIs or network requests—and displays a colored contribution heatmap similar to what you see on GitHub profiles. It supports multiple color schemes, branch filtering, custom date ranges, repository statistics, branch tree visualizations, and hour-of-day activity heatmaps.
11
+
12
+ ## Prerequisites
13
+
14
+ - Python 3.11 or higher
15
+ - Git installed and available in PATH
16
+
17
+ ## Installation
18
+
19
+ ### From PyPI (recommended)
20
+
21
+ ```bash
22
+ pip install git-ember
23
+ ```
24
+
25
+ ### From source
26
+
27
+ 1. Clone the repository:
28
+
29
+ ```bash
30
+ git clone https://codeberg.org/lukavr05/git-ember.git
31
+ cd git-ember
32
+ ```
33
+
34
+ 2. Install the package:
35
+
36
+ ```bash
37
+ pip install -e .
38
+ ```
39
+
40
+ 3. Verify the installation:
41
+
42
+ ```bash
43
+ git-ember --version
44
+ ```
45
+
46
+ ### Running without installation
47
+
48
+ If you prefer not to install the package, run directly:
49
+
50
+ ```bash
51
+ PYTHONPATH=src python3 main.py /path/to/repo
52
+ ```
53
+
54
+ ### Uninstall
55
+
56
+ ```bash
57
+ pip uninstall git-ember
58
+ ```
59
+
60
+ ## Configuration
61
+
62
+ git-ember reads configuration from `~/.config/git-ember/config.toml` (or the platform-specific config directory). CLI arguments take precedence over config values.
63
+
64
+ | Variable | Required | Default | Description |
65
+ |----------------|----------|-----------|--------------------------------------------------|
66
+ | `color` | No | `green` | Color scheme name |
67
+ | `border` | No | `=` | Border character |
68
+ | `week_start` | No | `sunday` | Week start day (sunday/monday) |
69
+ | `ascii` | No | `false` | Use ASCII characters |
70
+ | `scale` | No | `auto` | Intensity scaling (auto/adaptive) |
71
+ | `extended` | No | `false` | Show extended report by default |
72
+ | `compact` | No | `false` | Show last 4 months only |
73
+ | `tree` | No | `false` | Show branch tree by default |
74
+ | `years` | No | `1` | Number of years to show |
75
+ | `recent_count` | No | `5` | Number of recent commits to display |
76
+
77
+ ### Example config file
78
+
79
+ ```toml
80
+ color = "blue"
81
+ border = "-"
82
+ week_start = "monday"
83
+ ascii = "true"
84
+ scale = "adaptive"
85
+ extended = "true"
86
+ compact = "true"
87
+ tree = "true"
88
+ years = 2
89
+ recent_count = 10
90
+ ```
91
+
92
+ ## Usage
93
+
94
+ Show commit heatmap for the current year:
95
+
96
+ ```bash
97
+ git-ember
98
+ ```
99
+
100
+ Show heatmap for a specific repository:
101
+
102
+ ```bash
103
+ git-ember /path/to/repo
104
+ ```
105
+
106
+ Show multiple years:
107
+
108
+ ```bash
109
+ git-ember --years 2
110
+ git-ember -y 3
111
+ ```
112
+
113
+ Use different color schemes:
114
+
115
+ ```bash
116
+ git-ember --color green # default
117
+ git-ember --color blue
118
+ git-ember --color orange
119
+ git-ember --color purple
120
+ git-ember --color mono
121
+ ```
122
+
123
+ Show heatmap for a specific branch:
124
+
125
+ ```bash
126
+ git-ember --branch feature-x
127
+ ```
128
+
129
+ Display branch tree visualization:
130
+
131
+ ```bash
132
+ git-ember --tree
133
+ git-ember --branch feature-x --tree
134
+ ```
135
+
136
+ Show custom date range:
137
+
138
+ ```bash
139
+ git-ember --after 2025-01-01 --before 2025-06-30
140
+ git-ember --after 2025-01-01
141
+ ```
142
+
143
+ Show extended report with recent commits, top contributors, and statistics:
144
+
145
+ ```bash
146
+ git-ember --extended
147
+ git-ember -e
148
+ ```
149
+
150
+ Filter commits by author:
151
+
152
+ ```bash
153
+ git-ember --author "John Doe"
154
+ git-ember -A "john@"
155
+ ```
156
+
157
+ Exclude or include only merge commits:
158
+
159
+ ```bash
160
+ git-ember --no-merges
161
+ git-ember --merges-only
162
+ ```
163
+
164
+ Filter commits by message content:
165
+
166
+ ```bash
167
+ git-ember --grep "bugfix"
168
+ git-ember --grep "feat"
169
+ ```
170
+
171
+ Show hour-of-day activity heatmap:
172
+
173
+ ```bash
174
+ git-ember --hourly
175
+ ```
176
+
177
+ Strip ANSI color codes for piping or file export:
178
+
179
+ ```bash
180
+ git-ember --plain
181
+ git-ember --plain > heatmap.txt
182
+ ```
183
+
184
+ ### Command-line options
185
+
186
+ | Flag | Alias | Description | Default |
187
+ |-----------------|---------|----------------------------------------------|-------------|
188
+ | `--color` | `-c` | Color scheme | `green` |
189
+ | `--years` | `-y` | Number of years to show (max 10) | `1` |
190
+ | `--border` | `-b` | Border character | `=` |
191
+ | `--extended` | `-e` | Show commits, contributors, stats | `false` |
192
+ | `--ascii` | `-a` | Use ASCII characters instead of Unicode | `false` |
193
+ | `--plain` | `-p` | Strip all ANSI color codes | `false` |
194
+ | `--compact` | - | Show last 4 months only | `false` |
195
+ | `--branch` | - | Show heatmap for specific branch | all branches|
196
+ | `--tree` | `-t` | Show branch tree under heatmap | `false` |
197
+ | `--scale` | - | Intensity scaling: auto or adaptive | `auto` |
198
+ | `--after` | - | Show commits after date (YYYY-MM-DD) | - |
199
+ | `--before` | - | Show commits before date (YYYY-MM-DD) | - |
200
+ | `--week-start` | - | Week start: sunday or monday | `sunday` |
201
+ | `--author` | `-A` | Filter commits by author | - |
202
+ | `--no-merges` | - | Exclude merge commits | `false` |
203
+ | `--merges-only` | - | Show only merge commits | `false` |
204
+ | `--grep` | - | Filter commits by message content | - |
205
+ | `--hourly` | - | Show hour-of-day x day-of-week heatmap | `false` |
206
+ | `--version` | `-V` | Show version | - |
207
+ | `--help` | `-h` | Show help | - |
208
+
209
+ ## Project Structure
210
+
211
+ ```
212
+ git-ember/
213
+ ├── main.py # CLI entry point (when running without install)
214
+ ├── pyproject.toml # Package configuration
215
+ ├── Makefile # Build targets (install, lint, test)
216
+ ├── .python-version # Python version (3.11)
217
+ ├── README.md # This file
218
+ ├── LICENSE # MIT license
219
+ ├── docs/
220
+ │ └── CHANGELOG.md # Version history
221
+ ├── src/
222
+ │ └── gitember/
223
+ │ ├── __init__.py # Package version
224
+ │ ├── cli.py # CLI argument parsing and main logic
225
+ │ ├── git.py # Git subprocess calls and data parsing
226
+ │ ├── render.py # Heatmap and branch tree rendering
227
+ │ ├── colors.py # ANSI color scheme definitions
228
+ │ └── config.py # Config file load/save
229
+ └── tests/
230
+ ├── conftest.py # Pytest fixtures for git repos
231
+ ├── test_config.py # Config tests
232
+ ├── test_git.py # Git operations tests
233
+ └── test_render.py # Rendering tests
234
+ ```
235
+
236
+ ## Development
237
+
238
+ Run the linter:
239
+
240
+ ```bash
241
+ make lint
242
+ ```
243
+
244
+ Run tests:
245
+
246
+ ```bash
247
+ pytest
248
+ ```
249
+
250
+ ## License
251
+
252
+ MIT License — see [LICENSE](LICENSE) file.
@@ -0,0 +1,38 @@
1
+ [project]
2
+ name = "git-ember"
3
+ version = "1.4.1"
4
+ description = "A GitHub-style heatmap of commits and local repo statistics for your terminal"
5
+ readme = "README.md"
6
+ authors = [{name = "Luka van Rooyen", email = "lukavrooyen@proton.me"}]
7
+ requires-python = ">=3.11"
8
+ dependencies = []
9
+
10
+ license = "MIT"
11
+ classifiers = [
12
+ "Programming Language :: Python :: 3",
13
+ "Programming Language :: Python :: 3.11",
14
+ "Programming Language :: Python :: 3.12",
15
+ "Intended Audience :: Developers",
16
+ "Operating System :: OS Independent",
17
+ "Development Status :: 4 - Beta",
18
+ "Environment :: Console",
19
+ "Topic :: Software Development :: Version Control :: Git",
20
+ "Topic :: Software Development :: Libraries :: Python Modules",
21
+ ]
22
+ keywords = ["git", "cli", "tui"]
23
+
24
+ [dependency-groups]
25
+ dev = ["ruff>=0.15.9", "pytest"]
26
+
27
+ [project.scripts]
28
+ git-ember = "gitember.cli:main"
29
+
30
+ [project.urls]
31
+ repository = "https://codeberg.org/lukavr05/git-ember"
32
+
33
+ [tool.setuptools.packages.find]
34
+ where = ["src"]
35
+
36
+ [build-system]
37
+ requires = ["setuptools>=63", "wheel"]
38
+ build-backend = "setuptools.build_meta"