git-ember 1.3.2__tar.gz → 1.4.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.
@@ -0,0 +1,253 @@
1
+ Metadata-Version: 2.4
2
+ Name: git-ember
3
+ Version: 1.4.0
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
+ A GitHub-style heatmap of commit activity for your terminal.
26
+
27
+ ## Overview
28
+
29
+ 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.
30
+
31
+ ## Prerequisites
32
+
33
+ - Python 3.11 or higher
34
+ - Git installed and available in PATH
35
+
36
+ ## Installation
37
+
38
+ 1. Clone the repository:
39
+
40
+ ```bash
41
+ git clone https://codeberg.org/lukavr05/git-ember.git
42
+ cd git-ember
43
+ ```
44
+
45
+ 2. Install the package:
46
+
47
+ ```bash
48
+ pip install -e .
49
+ ```
50
+
51
+ 3. Verify the installation:
52
+
53
+ ```bash
54
+ git-ember --version
55
+ ```
56
+
57
+ ### Running without installation
58
+
59
+ If you prefer not to install the package, run directly:
60
+
61
+ ```bash
62
+ PYTHONPATH=src python3 main.py /path/to/repo
63
+ ```
64
+
65
+ ### Uninstall
66
+
67
+ ```bash
68
+ pip uninstall git-ember
69
+ ```
70
+
71
+ ## Configuration
72
+
73
+ git-ember reads configuration from `~/.config/git-ember/config.toml` (or the platform-specific config directory). CLI arguments take precedence over config values.
74
+
75
+ | Variable | Required | Default | Description |
76
+ |------------|----------|-----------|-------------------------------------|
77
+ | `color` | No | `green` | Color scheme name |
78
+ | `border` | No | `=` | Border character |
79
+ | `week_start`| No | `sunday` | Week start day (sunday/monday) |
80
+ | `ascii` | No | `false` | Use ASCII characters |
81
+ | `scale` | No | `auto` | Intensity scaling (auto/adaptive) |
82
+
83
+ ### Example config file
84
+
85
+ ```toml
86
+ color = "blue"
87
+ border = "-"
88
+ week_start = "monday"
89
+ ascii = "true"
90
+ scale = "adaptive"
91
+ ```
92
+
93
+ ## Usage
94
+
95
+ Show commit heatmap for the current year:
96
+
97
+ ```bash
98
+ git-ember
99
+ ```
100
+
101
+ Show heatmap for a specific repository:
102
+
103
+ ```bash
104
+ git-ember /path/to/repo
105
+ ```
106
+
107
+ Show multiple years:
108
+
109
+ ```bash
110
+ git-ember --years 2
111
+ git-ember -y 3
112
+ ```
113
+
114
+ Use different color schemes:
115
+
116
+ ```bash
117
+ git-ember --color green # default
118
+ git-ember --color blue
119
+ git-ember --color orange
120
+ git-ember --color purple
121
+ git-ember --color mono
122
+ ```
123
+
124
+ Show heatmap for a specific branch:
125
+
126
+ ```bash
127
+ git-ember --branch feature-x
128
+ ```
129
+
130
+ Display branch tree visualization:
131
+
132
+ ```bash
133
+ git-ember --tree
134
+ git-ember --branch feature-x --tree
135
+ ```
136
+
137
+ Show custom date range:
138
+
139
+ ```bash
140
+ git-ember --after 2025-01-01 --before 2025-06-30
141
+ git-ember --after 2025-01-01
142
+ ```
143
+
144
+ Show extended report with recent commits, top contributors, and statistics:
145
+
146
+ ```bash
147
+ git-ember --extended
148
+ git-ember -e
149
+ ```
150
+
151
+ Filter commits by author:
152
+
153
+ ```bash
154
+ git-ember --author "John Doe"
155
+ git-ember -A "john@"
156
+ ```
157
+
158
+ Exclude or include only merge commits:
159
+
160
+ ```bash
161
+ git-ember --no-merges
162
+ git-ember --merges-only
163
+ ```
164
+
165
+ Filter commits by message content:
166
+
167
+ ```bash
168
+ git-ember --grep "bugfix"
169
+ git-ember --grep "feat"
170
+ ```
171
+
172
+ Show hour-of-day activity heatmap:
173
+
174
+ ```bash
175
+ git-ember --hourly
176
+ ```
177
+
178
+ Strip ANSI color codes for piping or file export:
179
+
180
+ ```bash
181
+ git-ember --plain
182
+ git-ember --plain > heatmap.txt
183
+ ```
184
+
185
+ ### Command-line options
186
+
187
+ | Flag | Alias | Description | Default |
188
+ |-----------------|---------|----------------------------------------------|-------------|
189
+ | `--color` | `-c` | Color scheme | `green` |
190
+ | `--years` | `-y` | Number of years to show (max 10) | `1` |
191
+ | `--border` | `-b` | Border character | `=` |
192
+ | `--extended` | `-e` | Show commits, contributors, stats | `false` |
193
+ | `--ascii` | `-a` | Use ASCII characters instead of Unicode | `false` |
194
+ | `--plain` | `-p` | Strip all ANSI color codes | `false` |
195
+ | `--compact` | - | Show last 4 months only | `false` |
196
+ | `--branch` | - | Show heatmap for specific branch | all branches|
197
+ | `--tree` | `-t` | Show branch tree under heatmap | `false` |
198
+ | `--scale` | - | Intensity scaling: auto or adaptive | `auto` |
199
+ | `--after` | - | Show commits after date (YYYY-MM-DD) | - |
200
+ | `--before` | - | Show commits before date (YYYY-MM-DD) | - |
201
+ | `--week-start` | - | Week start: sunday or monday | `sunday` |
202
+ | `--author` | `-A` | Filter commits by author | - |
203
+ | `--no-merges` | - | Exclude merge commits | `false` |
204
+ | `--merges-only` | - | Show only merge commits | `false` |
205
+ | `--grep` | - | Filter commits by message content | - |
206
+ | `--hourly` | - | Show hour-of-day x day-of-week heatmap | `false` |
207
+ | `--version` | `-V` | Show version | - |
208
+ | `--help` | `-h` | Show help | - |
209
+
210
+ ## Project Structure
211
+
212
+ ```
213
+ git-ember/
214
+ ├── main.py # CLI entry point (when running without install)
215
+ ├── pyproject.toml # Package configuration
216
+ ├── Makefile # Build targets (install, lint, test)
217
+ ├── .python-version # Python version (3.11)
218
+ ├── README.md # This file
219
+ ├── LICENSE # MIT license
220
+ ├── docs/
221
+ │ └── CHANGELOG.md # Version history
222
+ ├── src/
223
+ │ └── gitember/
224
+ │ ├── __init__.py # Package version
225
+ │ ├── cli.py # CLI argument parsing and main logic
226
+ │ ├── git.py # Git subprocess calls and data parsing
227
+ │ ├── render.py # Heatmap and branch tree rendering
228
+ │ ├── colors.py # ANSI color scheme definitions
229
+ │ └── config.py # Config file load/save
230
+ └── tests/
231
+ ├── conftest.py # Pytest fixtures for git repos
232
+ ├── test_config.py # Config tests
233
+ ├── test_git.py # Git operations tests
234
+ └── test_render.py # Rendering tests
235
+ ```
236
+
237
+ ## Development
238
+
239
+ Run the linter:
240
+
241
+ ```bash
242
+ make lint
243
+ ```
244
+
245
+ Run tests:
246
+
247
+ ```bash
248
+ pytest
249
+ ```
250
+
251
+ ## License
252
+
253
+ MIT License — see [LICENSE](LICENSE) file.
@@ -0,0 +1,231 @@
1
+ # git-ember
2
+
3
+ A GitHub-style heatmap of commit activity for your terminal.
4
+
5
+ ## Overview
6
+
7
+ 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.
8
+
9
+ ## Prerequisites
10
+
11
+ - Python 3.11 or higher
12
+ - Git installed and available in PATH
13
+
14
+ ## Installation
15
+
16
+ 1. Clone the repository:
17
+
18
+ ```bash
19
+ git clone https://codeberg.org/lukavr05/git-ember.git
20
+ cd git-ember
21
+ ```
22
+
23
+ 2. Install the package:
24
+
25
+ ```bash
26
+ pip install -e .
27
+ ```
28
+
29
+ 3. Verify the installation:
30
+
31
+ ```bash
32
+ git-ember --version
33
+ ```
34
+
35
+ ### Running without installation
36
+
37
+ If you prefer not to install the package, run directly:
38
+
39
+ ```bash
40
+ PYTHONPATH=src python3 main.py /path/to/repo
41
+ ```
42
+
43
+ ### Uninstall
44
+
45
+ ```bash
46
+ pip uninstall git-ember
47
+ ```
48
+
49
+ ## Configuration
50
+
51
+ git-ember reads configuration from `~/.config/git-ember/config.toml` (or the platform-specific config directory). CLI arguments take precedence over config values.
52
+
53
+ | Variable | Required | Default | Description |
54
+ |------------|----------|-----------|-------------------------------------|
55
+ | `color` | No | `green` | Color scheme name |
56
+ | `border` | No | `=` | Border character |
57
+ | `week_start`| No | `sunday` | Week start day (sunday/monday) |
58
+ | `ascii` | No | `false` | Use ASCII characters |
59
+ | `scale` | No | `auto` | Intensity scaling (auto/adaptive) |
60
+
61
+ ### Example config file
62
+
63
+ ```toml
64
+ color = "blue"
65
+ border = "-"
66
+ week_start = "monday"
67
+ ascii = "true"
68
+ scale = "adaptive"
69
+ ```
70
+
71
+ ## Usage
72
+
73
+ Show commit heatmap for the current year:
74
+
75
+ ```bash
76
+ git-ember
77
+ ```
78
+
79
+ Show heatmap for a specific repository:
80
+
81
+ ```bash
82
+ git-ember /path/to/repo
83
+ ```
84
+
85
+ Show multiple years:
86
+
87
+ ```bash
88
+ git-ember --years 2
89
+ git-ember -y 3
90
+ ```
91
+
92
+ Use different color schemes:
93
+
94
+ ```bash
95
+ git-ember --color green # default
96
+ git-ember --color blue
97
+ git-ember --color orange
98
+ git-ember --color purple
99
+ git-ember --color mono
100
+ ```
101
+
102
+ Show heatmap for a specific branch:
103
+
104
+ ```bash
105
+ git-ember --branch feature-x
106
+ ```
107
+
108
+ Display branch tree visualization:
109
+
110
+ ```bash
111
+ git-ember --tree
112
+ git-ember --branch feature-x --tree
113
+ ```
114
+
115
+ Show custom date range:
116
+
117
+ ```bash
118
+ git-ember --after 2025-01-01 --before 2025-06-30
119
+ git-ember --after 2025-01-01
120
+ ```
121
+
122
+ Show extended report with recent commits, top contributors, and statistics:
123
+
124
+ ```bash
125
+ git-ember --extended
126
+ git-ember -e
127
+ ```
128
+
129
+ Filter commits by author:
130
+
131
+ ```bash
132
+ git-ember --author "John Doe"
133
+ git-ember -A "john@"
134
+ ```
135
+
136
+ Exclude or include only merge commits:
137
+
138
+ ```bash
139
+ git-ember --no-merges
140
+ git-ember --merges-only
141
+ ```
142
+
143
+ Filter commits by message content:
144
+
145
+ ```bash
146
+ git-ember --grep "bugfix"
147
+ git-ember --grep "feat"
148
+ ```
149
+
150
+ Show hour-of-day activity heatmap:
151
+
152
+ ```bash
153
+ git-ember --hourly
154
+ ```
155
+
156
+ Strip ANSI color codes for piping or file export:
157
+
158
+ ```bash
159
+ git-ember --plain
160
+ git-ember --plain > heatmap.txt
161
+ ```
162
+
163
+ ### Command-line options
164
+
165
+ | Flag | Alias | Description | Default |
166
+ |-----------------|---------|----------------------------------------------|-------------|
167
+ | `--color` | `-c` | Color scheme | `green` |
168
+ | `--years` | `-y` | Number of years to show (max 10) | `1` |
169
+ | `--border` | `-b` | Border character | `=` |
170
+ | `--extended` | `-e` | Show commits, contributors, stats | `false` |
171
+ | `--ascii` | `-a` | Use ASCII characters instead of Unicode | `false` |
172
+ | `--plain` | `-p` | Strip all ANSI color codes | `false` |
173
+ | `--compact` | - | Show last 4 months only | `false` |
174
+ | `--branch` | - | Show heatmap for specific branch | all branches|
175
+ | `--tree` | `-t` | Show branch tree under heatmap | `false` |
176
+ | `--scale` | - | Intensity scaling: auto or adaptive | `auto` |
177
+ | `--after` | - | Show commits after date (YYYY-MM-DD) | - |
178
+ | `--before` | - | Show commits before date (YYYY-MM-DD) | - |
179
+ | `--week-start` | - | Week start: sunday or monday | `sunday` |
180
+ | `--author` | `-A` | Filter commits by author | - |
181
+ | `--no-merges` | - | Exclude merge commits | `false` |
182
+ | `--merges-only` | - | Show only merge commits | `false` |
183
+ | `--grep` | - | Filter commits by message content | - |
184
+ | `--hourly` | - | Show hour-of-day x day-of-week heatmap | `false` |
185
+ | `--version` | `-V` | Show version | - |
186
+ | `--help` | `-h` | Show help | - |
187
+
188
+ ## Project Structure
189
+
190
+ ```
191
+ git-ember/
192
+ ├── main.py # CLI entry point (when running without install)
193
+ ├── pyproject.toml # Package configuration
194
+ ├── Makefile # Build targets (install, lint, test)
195
+ ├── .python-version # Python version (3.11)
196
+ ├── README.md # This file
197
+ ├── LICENSE # MIT license
198
+ ├── docs/
199
+ │ └── CHANGELOG.md # Version history
200
+ ├── src/
201
+ │ └── gitember/
202
+ │ ├── __init__.py # Package version
203
+ │ ├── cli.py # CLI argument parsing and main logic
204
+ │ ├── git.py # Git subprocess calls and data parsing
205
+ │ ├── render.py # Heatmap and branch tree rendering
206
+ │ ├── colors.py # ANSI color scheme definitions
207
+ │ └── config.py # Config file load/save
208
+ └── tests/
209
+ ├── conftest.py # Pytest fixtures for git repos
210
+ ├── test_config.py # Config tests
211
+ ├── test_git.py # Git operations tests
212
+ └── test_render.py # Rendering tests
213
+ ```
214
+
215
+ ## Development
216
+
217
+ Run the linter:
218
+
219
+ ```bash
220
+ make lint
221
+ ```
222
+
223
+ Run tests:
224
+
225
+ ```bash
226
+ pytest
227
+ ```
228
+
229
+ ## License
230
+
231
+ MIT License — see [LICENSE](LICENSE) file.
@@ -0,0 +1,38 @@
1
+ [project]
2
+ name = "git-ember"
3
+ version = "1.4.0"
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"