fancygit 1.0.22__tar.gz → 1.0.23__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.
- fancygit-1.0.23/.fancygit_config +4 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/MANIFEST.in +0 -1
- {fancygit-1.0.22/fancygit.egg-info → fancygit-1.0.23}/PKG-INFO +44 -1
- {fancygit-1.0.22 → fancygit-1.0.23}/README.md +42 -0
- fancygit-1.0.23/VERSION +1 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/command-list.txt +5 -2
- {fancygit-1.0.22 → fancygit-1.0.23/fancygit.egg-info}/PKG-INFO +44 -1
- {fancygit-1.0.22 → fancygit-1.0.23}/fancygit.egg-info/SOURCES.txt +4 -21
- fancygit-1.0.23/fancygit.egg-info/requires.txt +2 -0
- fancygit-1.0.23/fancygit.py +1627 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/setup.py +1 -16
- {fancygit-1.0.22 → fancygit-1.0.23}/src/mermaid_export.py +2 -85
- fancygit-1.0.23/src/ollama_client.py +343 -0
- fancygit-1.0.23/src/quiz_html_generator.py +1854 -0
- fancygit-1.0.23/src/quiz_manager.py +305 -0
- fancygit-1.0.23/tests/conftest.py +61 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_conflict_parser_integration.py +4 -6
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_fancygit_advanced.py +15 -16
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_fancygit_commands.py +45 -42
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_fancygit_integration.py +15 -20
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_fancygit_workflows.py +33 -34
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_git_error.py +2 -2
- fancygit-1.0.22/.fancygit_config +0 -30
- fancygit-1.0.22/VERSION +0 -1
- fancygit-1.0.22/fancygit.egg-info/requires.txt +0 -1
- fancygit-1.0.22/fancygit.py +0 -901
- fancygit-1.0.22/images/Logo.png +0 -0
- fancygit-1.0.22/images/Logo_with_name.png +0 -0
- fancygit-1.0.22/images/dark_background_logo.png +0 -0
- fancygit-1.0.22/images/light_background_logo.png +0 -0
- fancygit-1.0.22/images/overview.png +0 -0
- fancygit-1.0.22/src/ai_engine.py +0 -112
- fancygit-1.0.22/src/config_manager.py +0 -68
- fancygit-1.0.22/src/fancygit_config_dc.py +0 -41
- fancygit-1.0.22/src/model_provider.py +0 -25
- fancygit-1.0.22/src/providers/__init__.py +0 -1
- fancygit-1.0.22/src/providers/anthropic_model.py +0 -47
- fancygit-1.0.22/src/providers/base_model.py +0 -19
- fancygit-1.0.22/src/providers/ollama_model.py +0 -172
- fancygit-1.0.22/src/providers/openai_model.py +0 -66
- fancygit-1.0.22/src/repo_inspector.py +0 -3
- fancygit-1.0.22/tests/conftest.py +0 -139
- fancygit-1.0.22/tests/test_ai_engine.py +0 -181
- fancygit-1.0.22/tests/test_ai_integration.py +0 -168
- fancygit-1.0.22/tests/test_config_manager.py +0 -232
- fancygit-1.0.22/tests/test_model_provider.py +0 -204
- fancygit-1.0.22/tests/test_providers.py +0 -154
- {fancygit-1.0.22 → fancygit-1.0.23}/CD_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/COLOR_SYSTEM_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/EMAIL_SETUP_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/LICENSE +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/TESTING_GUIDE.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/TESTING_SUMMARY.md +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/fancygit.egg-info/dependency_links.txt +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/fancygit.egg-info/entry_points.txt +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/fancygit.egg-info/top_level.txt +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/setup.cfg +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/__init__.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/colors.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/git_error.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/git_error_parser.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/git_insights.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/git_runner.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/loading_animation.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/merge_conflict.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/output_colorizer.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/repo_state.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/src/utils.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/__init__.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_git_error_parser.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/tests/test_git_runner.py +0 -0
- {fancygit-1.0.22 → fancygit-1.0.23}/welcome.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fancygit
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.23
|
|
4
4
|
Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
|
|
5
5
|
Author: Youssif Ashmawy
|
|
6
6
|
Author-email: ashmawyyoussif@gmail.com
|
|
@@ -15,6 +15,7 @@ Requires-Python: >=3.6
|
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Requires-Dist: requests>=2.25.0
|
|
18
|
+
Requires-Dist: prompt_toolkit>=3.0.0
|
|
18
19
|
Dynamic: author
|
|
19
20
|
Dynamic: author-email
|
|
20
21
|
Dynamic: classifier
|
|
@@ -134,6 +135,48 @@ fancygit insights [--days=N] [--format=console|json] [--output=filename]
|
|
|
134
135
|
fancygit visualize [directory] [--max-commits=N] [--no-open]
|
|
135
136
|
```
|
|
136
137
|
|
|
138
|
+
#### **🚀 Complete Push Workflow**
|
|
139
|
+
```bash
|
|
140
|
+
# Interactive complete push workflow (pull → stage → commit → push)
|
|
141
|
+
fancygit complete-push
|
|
142
|
+
|
|
143
|
+
# With specific files
|
|
144
|
+
fancygit complete-push file1.py file2.py
|
|
145
|
+
|
|
146
|
+
# Skip pull or push
|
|
147
|
+
fancygit complete-push --no-pull --no-push
|
|
148
|
+
|
|
149
|
+
# With custom commit message (still asks for confirmation)
|
|
150
|
+
fancygit complete-push --message="Fix bug"
|
|
151
|
+
|
|
152
|
+
# With AI commit message suggestions (automatically generated, Press Enter to use)
|
|
153
|
+
fancygit complete-push
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Complete Push Features:**
|
|
157
|
+
- **Branch Selection**: Shows current branch and allows switching before operations
|
|
158
|
+
- **Interactive File Selection**: Displays available files with status (staged/modified/untracked)
|
|
159
|
+
- **Smart Defaults**: Press Enter for all files, stay on current branch
|
|
160
|
+
- **AI Commit Suggestions**: Automatically generated AI commit messages (Press Enter to use, requires Ollama)
|
|
161
|
+
- **Dry Run Preview**: Shows all planned operations before execution
|
|
162
|
+
- **User Confirmation**: Must confirm before any git operations run
|
|
163
|
+
- **Continuous Commit Message Prompt**: Re-asks until non-empty message provided
|
|
164
|
+
|
|
165
|
+
**AI Commit Message Features:**
|
|
166
|
+
- **Context-Aware**: Analyzes git diff and repository state
|
|
167
|
+
- **Conventional Commits**: Follows feat/fix/docs/style/refactor/test/chore format
|
|
168
|
+
- **Smart Suggestions**: Based on actual changes being committed
|
|
169
|
+
- **Optional**: Can accept or reject AI suggestions
|
|
170
|
+
- **Fallback**: Works even if AI is unavailable
|
|
171
|
+
|
|
172
|
+
**Workflow Steps:**
|
|
173
|
+
1. 🌿 Select/confirm branch
|
|
174
|
+
2. 📋 Choose files to stage (interactive)
|
|
175
|
+
3. 📝 Enter commit message (required)
|
|
176
|
+
4. 🔍 Review dry run of all operations
|
|
177
|
+
5. ❓ Confirm execution
|
|
178
|
+
6. 🚀 Execute: pull → add → commit → push
|
|
179
|
+
|
|
137
180
|
### How It Works
|
|
138
181
|
|
|
139
182
|
1. **Command Execution**: Runs the actual git command
|
|
@@ -106,6 +106,48 @@ fancygit insights [--days=N] [--format=console|json] [--output=filename]
|
|
|
106
106
|
fancygit visualize [directory] [--max-commits=N] [--no-open]
|
|
107
107
|
```
|
|
108
108
|
|
|
109
|
+
#### **🚀 Complete Push Workflow**
|
|
110
|
+
```bash
|
|
111
|
+
# Interactive complete push workflow (pull → stage → commit → push)
|
|
112
|
+
fancygit complete-push
|
|
113
|
+
|
|
114
|
+
# With specific files
|
|
115
|
+
fancygit complete-push file1.py file2.py
|
|
116
|
+
|
|
117
|
+
# Skip pull or push
|
|
118
|
+
fancygit complete-push --no-pull --no-push
|
|
119
|
+
|
|
120
|
+
# With custom commit message (still asks for confirmation)
|
|
121
|
+
fancygit complete-push --message="Fix bug"
|
|
122
|
+
|
|
123
|
+
# With AI commit message suggestions (automatically generated, Press Enter to use)
|
|
124
|
+
fancygit complete-push
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Complete Push Features:**
|
|
128
|
+
- **Branch Selection**: Shows current branch and allows switching before operations
|
|
129
|
+
- **Interactive File Selection**: Displays available files with status (staged/modified/untracked)
|
|
130
|
+
- **Smart Defaults**: Press Enter for all files, stay on current branch
|
|
131
|
+
- **AI Commit Suggestions**: Automatically generated AI commit messages (Press Enter to use, requires Ollama)
|
|
132
|
+
- **Dry Run Preview**: Shows all planned operations before execution
|
|
133
|
+
- **User Confirmation**: Must confirm before any git operations run
|
|
134
|
+
- **Continuous Commit Message Prompt**: Re-asks until non-empty message provided
|
|
135
|
+
|
|
136
|
+
**AI Commit Message Features:**
|
|
137
|
+
- **Context-Aware**: Analyzes git diff and repository state
|
|
138
|
+
- **Conventional Commits**: Follows feat/fix/docs/style/refactor/test/chore format
|
|
139
|
+
- **Smart Suggestions**: Based on actual changes being committed
|
|
140
|
+
- **Optional**: Can accept or reject AI suggestions
|
|
141
|
+
- **Fallback**: Works even if AI is unavailable
|
|
142
|
+
|
|
143
|
+
**Workflow Steps:**
|
|
144
|
+
1. 🌿 Select/confirm branch
|
|
145
|
+
2. 📋 Choose files to stage (interactive)
|
|
146
|
+
3. 📝 Enter commit message (required)
|
|
147
|
+
4. 🔍 Review dry run of all operations
|
|
148
|
+
5. ❓ Confirm execution
|
|
149
|
+
6. 🚀 Execute: pull → add → commit → push
|
|
150
|
+
|
|
109
151
|
### How It Works
|
|
110
152
|
|
|
111
153
|
1. **Command Execution**: Runs the actual git command
|
fancygit-1.0.23/VERSION
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.0.23
|
|
@@ -13,10 +13,10 @@ clean
|
|
|
13
13
|
clone
|
|
14
14
|
colors
|
|
15
15
|
commit
|
|
16
|
+
ship
|
|
16
17
|
confirmation
|
|
17
18
|
describe
|
|
18
19
|
diff
|
|
19
|
-
explain
|
|
20
20
|
fetch
|
|
21
21
|
format-patch
|
|
22
22
|
gc
|
|
@@ -32,21 +32,24 @@ mv
|
|
|
32
32
|
notes
|
|
33
33
|
pull
|
|
34
34
|
push
|
|
35
|
+
quiz
|
|
35
36
|
range-diff
|
|
36
37
|
rebase
|
|
38
|
+
redo
|
|
37
39
|
reset
|
|
38
40
|
restore
|
|
39
41
|
revert
|
|
40
42
|
rm
|
|
41
43
|
shortlog
|
|
42
44
|
show
|
|
45
|
+
ship
|
|
43
46
|
sparse-checkout
|
|
44
47
|
stash
|
|
45
48
|
status
|
|
46
49
|
submodule
|
|
47
50
|
switch
|
|
48
|
-
sync
|
|
49
51
|
tag
|
|
50
52
|
welcome
|
|
51
53
|
worktree
|
|
54
|
+
undo
|
|
52
55
|
visualize
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fancygit
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.23
|
|
4
4
|
Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
|
|
5
5
|
Author: Youssif Ashmawy
|
|
6
6
|
Author-email: ashmawyyoussif@gmail.com
|
|
@@ -15,6 +15,7 @@ Requires-Python: >=3.6
|
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
17
|
Requires-Dist: requests>=2.25.0
|
|
18
|
+
Requires-Dist: prompt_toolkit>=3.0.0
|
|
18
19
|
Dynamic: author
|
|
19
20
|
Dynamic: author-email
|
|
20
21
|
Dynamic: classifier
|
|
@@ -134,6 +135,48 @@ fancygit insights [--days=N] [--format=console|json] [--output=filename]
|
|
|
134
135
|
fancygit visualize [directory] [--max-commits=N] [--no-open]
|
|
135
136
|
```
|
|
136
137
|
|
|
138
|
+
#### **🚀 Complete Push Workflow**
|
|
139
|
+
```bash
|
|
140
|
+
# Interactive complete push workflow (pull → stage → commit → push)
|
|
141
|
+
fancygit complete-push
|
|
142
|
+
|
|
143
|
+
# With specific files
|
|
144
|
+
fancygit complete-push file1.py file2.py
|
|
145
|
+
|
|
146
|
+
# Skip pull or push
|
|
147
|
+
fancygit complete-push --no-pull --no-push
|
|
148
|
+
|
|
149
|
+
# With custom commit message (still asks for confirmation)
|
|
150
|
+
fancygit complete-push --message="Fix bug"
|
|
151
|
+
|
|
152
|
+
# With AI commit message suggestions (automatically generated, Press Enter to use)
|
|
153
|
+
fancygit complete-push
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Complete Push Features:**
|
|
157
|
+
- **Branch Selection**: Shows current branch and allows switching before operations
|
|
158
|
+
- **Interactive File Selection**: Displays available files with status (staged/modified/untracked)
|
|
159
|
+
- **Smart Defaults**: Press Enter for all files, stay on current branch
|
|
160
|
+
- **AI Commit Suggestions**: Automatically generated AI commit messages (Press Enter to use, requires Ollama)
|
|
161
|
+
- **Dry Run Preview**: Shows all planned operations before execution
|
|
162
|
+
- **User Confirmation**: Must confirm before any git operations run
|
|
163
|
+
- **Continuous Commit Message Prompt**: Re-asks until non-empty message provided
|
|
164
|
+
|
|
165
|
+
**AI Commit Message Features:**
|
|
166
|
+
- **Context-Aware**: Analyzes git diff and repository state
|
|
167
|
+
- **Conventional Commits**: Follows feat/fix/docs/style/refactor/test/chore format
|
|
168
|
+
- **Smart Suggestions**: Based on actual changes being committed
|
|
169
|
+
- **Optional**: Can accept or reject AI suggestions
|
|
170
|
+
- **Fallback**: Works even if AI is unavailable
|
|
171
|
+
|
|
172
|
+
**Workflow Steps:**
|
|
173
|
+
1. 🌿 Select/confirm branch
|
|
174
|
+
2. 📋 Choose files to stage (interactive)
|
|
175
|
+
3. 📝 Enter commit message (required)
|
|
176
|
+
4. 🔍 Review dry run of all operations
|
|
177
|
+
5. ❓ Confirm execution
|
|
178
|
+
6. 🚀 Execute: pull → add → commit → push
|
|
179
|
+
|
|
137
180
|
### How It Works
|
|
138
181
|
|
|
139
182
|
1. **Command Execution**: Runs the actual git command
|
|
@@ -18,16 +18,8 @@ fancygit.egg-info/dependency_links.txt
|
|
|
18
18
|
fancygit.egg-info/entry_points.txt
|
|
19
19
|
fancygit.egg-info/requires.txt
|
|
20
20
|
fancygit.egg-info/top_level.txt
|
|
21
|
-
images/Logo.png
|
|
22
|
-
images/Logo_with_name.png
|
|
23
|
-
images/dark_background_logo.png
|
|
24
|
-
images/light_background_logo.png
|
|
25
|
-
images/overview.png
|
|
26
21
|
src/__init__.py
|
|
27
|
-
src/ai_engine.py
|
|
28
22
|
src/colors.py
|
|
29
|
-
src/config_manager.py
|
|
30
|
-
src/fancygit_config_dc.py
|
|
31
23
|
src/git_error.py
|
|
32
24
|
src/git_error_parser.py
|
|
33
25
|
src/git_insights.py
|
|
@@ -35,21 +27,14 @@ src/git_runner.py
|
|
|
35
27
|
src/loading_animation.py
|
|
36
28
|
src/merge_conflict.py
|
|
37
29
|
src/mermaid_export.py
|
|
38
|
-
src/
|
|
30
|
+
src/ollama_client.py
|
|
39
31
|
src/output_colorizer.py
|
|
40
|
-
src/
|
|
32
|
+
src/quiz_html_generator.py
|
|
33
|
+
src/quiz_manager.py
|
|
41
34
|
src/repo_state.py
|
|
42
35
|
src/utils.py
|
|
43
|
-
src/providers/__init__.py
|
|
44
|
-
src/providers/anthropic_model.py
|
|
45
|
-
src/providers/base_model.py
|
|
46
|
-
src/providers/ollama_model.py
|
|
47
|
-
src/providers/openai_model.py
|
|
48
36
|
tests/__init__.py
|
|
49
37
|
tests/conftest.py
|
|
50
|
-
tests/test_ai_engine.py
|
|
51
|
-
tests/test_ai_integration.py
|
|
52
|
-
tests/test_config_manager.py
|
|
53
38
|
tests/test_conflict_parser_integration.py
|
|
54
39
|
tests/test_fancygit_advanced.py
|
|
55
40
|
tests/test_fancygit_commands.py
|
|
@@ -57,6 +42,4 @@ tests/test_fancygit_integration.py
|
|
|
57
42
|
tests/test_fancygit_workflows.py
|
|
58
43
|
tests/test_git_error.py
|
|
59
44
|
tests/test_git_error_parser.py
|
|
60
|
-
tests/test_git_runner.py
|
|
61
|
-
tests/test_model_provider.py
|
|
62
|
-
tests/test_providers.py
|
|
45
|
+
tests/test_git_runner.py
|