fancygit 1.0.22__tar.gz → 1.0.24__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 (76) hide show
  1. {fancygit-1.0.22 → fancygit-1.0.24}/MANIFEST.in +3 -1
  2. fancygit-1.0.24/PKG-INFO +96 -0
  3. fancygit-1.0.24/PYPI_DESCRIPTION.md +67 -0
  4. fancygit-1.0.22/fancygit.egg-info/PKG-INFO → fancygit-1.0.24/README.md +42 -28
  5. fancygit-1.0.24/VERSION +1 -0
  6. {fancygit-1.0.22 → fancygit-1.0.24}/command-list.txt +5 -0
  7. fancygit-1.0.24/fancygit.egg-info/PKG-INFO +96 -0
  8. {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/SOURCES.txt +8 -2
  9. fancygit-1.0.24/fancygit.egg-info/requires.txt +2 -0
  10. {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/top_level.txt +1 -0
  11. {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.py +726 -74
  12. fancygit-1.0.24/game_questions.json +332 -0
  13. fancygit-1.0.24/quiz_server.py +41 -0
  14. {fancygit-1.0.22 → fancygit-1.0.24}/setup.py +4 -16
  15. {fancygit-1.0.22 → fancygit-1.0.24}/src/ai_engine.py +5 -1
  16. {fancygit-1.0.22 → fancygit-1.0.24}/src/fancygit_config_dc.py +2 -1
  17. fancygit-1.0.24/src/providers/ollama_model.py +303 -0
  18. fancygit-1.0.24/src/quiz_html_generator.py +1903 -0
  19. fancygit-1.0.24/src/quiz_manager.py +305 -0
  20. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_commands.py +24 -24
  21. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_workflows.py +11 -11
  22. fancygit-1.0.24/tests/test_ollama_model.py +458 -0
  23. fancygit-1.0.24/tests/test_undo_redo.py +319 -0
  24. fancygit-1.0.22/.fancygit_config +0 -30
  25. fancygit-1.0.22/PKG-INFO +0 -250
  26. fancygit-1.0.22/README.md +0 -222
  27. fancygit-1.0.22/VERSION +0 -1
  28. fancygit-1.0.22/fancygit.egg-info/requires.txt +0 -1
  29. fancygit-1.0.22/src/providers/ollama_model.py +0 -172
  30. {fancygit-1.0.22 → fancygit-1.0.24}/CD_GUIDE.md +0 -0
  31. {fancygit-1.0.22 → fancygit-1.0.24}/COLOR_SYSTEM_GUIDE.md +0 -0
  32. {fancygit-1.0.22 → fancygit-1.0.24}/EMAIL_SETUP_GUIDE.md +0 -0
  33. {fancygit-1.0.22 → fancygit-1.0.24}/LICENSE +0 -0
  34. {fancygit-1.0.22 → fancygit-1.0.24}/TESTING_GUIDE.md +0 -0
  35. {fancygit-1.0.22 → fancygit-1.0.24}/TESTING_SUMMARY.md +0 -0
  36. {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/dependency_links.txt +0 -0
  37. {fancygit-1.0.22 → fancygit-1.0.24}/fancygit.egg-info/entry_points.txt +0 -0
  38. {fancygit-1.0.22 → fancygit-1.0.24}/images/Logo.png +0 -0
  39. {fancygit-1.0.22 → fancygit-1.0.24}/images/Logo_with_name.png +0 -0
  40. {fancygit-1.0.22 → fancygit-1.0.24}/images/dark_background_logo.png +0 -0
  41. {fancygit-1.0.22 → fancygit-1.0.24}/images/light_background_logo.png +0 -0
  42. {fancygit-1.0.22 → fancygit-1.0.24}/images/overview.png +0 -0
  43. {fancygit-1.0.22 → fancygit-1.0.24}/setup.cfg +0 -0
  44. {fancygit-1.0.22 → fancygit-1.0.24}/src/__init__.py +0 -0
  45. {fancygit-1.0.22 → fancygit-1.0.24}/src/colors.py +0 -0
  46. {fancygit-1.0.22 → fancygit-1.0.24}/src/config_manager.py +0 -0
  47. {fancygit-1.0.22 → fancygit-1.0.24}/src/git_error.py +0 -0
  48. {fancygit-1.0.22 → fancygit-1.0.24}/src/git_error_parser.py +0 -0
  49. {fancygit-1.0.22 → fancygit-1.0.24}/src/git_insights.py +0 -0
  50. {fancygit-1.0.22 → fancygit-1.0.24}/src/git_runner.py +0 -0
  51. {fancygit-1.0.22 → fancygit-1.0.24}/src/loading_animation.py +0 -0
  52. {fancygit-1.0.22 → fancygit-1.0.24}/src/merge_conflict.py +0 -0
  53. {fancygit-1.0.22 → fancygit-1.0.24}/src/mermaid_export.py +0 -0
  54. {fancygit-1.0.22 → fancygit-1.0.24}/src/model_provider.py +0 -0
  55. {fancygit-1.0.22 → fancygit-1.0.24}/src/output_colorizer.py +0 -0
  56. {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/__init__.py +0 -0
  57. {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/anthropic_model.py +0 -0
  58. {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/base_model.py +0 -0
  59. {fancygit-1.0.22 → fancygit-1.0.24}/src/providers/openai_model.py +0 -0
  60. {fancygit-1.0.22 → fancygit-1.0.24}/src/repo_inspector.py +0 -0
  61. {fancygit-1.0.22 → fancygit-1.0.24}/src/repo_state.py +0 -0
  62. {fancygit-1.0.22 → fancygit-1.0.24}/src/utils.py +0 -0
  63. {fancygit-1.0.22 → fancygit-1.0.24}/tests/__init__.py +0 -0
  64. {fancygit-1.0.22 → fancygit-1.0.24}/tests/conftest.py +0 -0
  65. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_ai_engine.py +0 -0
  66. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_ai_integration.py +0 -0
  67. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_config_manager.py +0 -0
  68. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_conflict_parser_integration.py +0 -0
  69. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_advanced.py +0 -0
  70. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_fancygit_integration.py +0 -0
  71. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_git_error.py +0 -0
  72. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_git_error_parser.py +0 -0
  73. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_git_runner.py +0 -0
  74. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_model_provider.py +0 -0
  75. {fancygit-1.0.22 → fancygit-1.0.24}/tests/test_providers.py +0 -0
  76. {fancygit-1.0.22 → fancygit-1.0.24}/welcome.py +0 -0
@@ -1,10 +1,12 @@
1
1
  include VERSION
2
2
  include README.md
3
+ include PYPI_DESCRIPTION.md
3
4
  include *.md
4
5
  include command-list.txt
5
- include .fancygit_config
6
+ include game_questions.json
6
7
  include welcome.py
7
8
  include fancygit.py
9
+ include quiz_server.py
8
10
  recursive-include src *.py
9
11
  recursive-include tests *.py
10
12
  recursive-include images *.png *.jpg *.jpeg *.gif
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.4
2
+ Name: fancygit
3
+ Version: 1.0.24
4
+ Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
5
+ Author: Youssif Ashmawy
6
+ Author-email: ashmawyyoussif@gmail.com
7
+ License: Apache License 2.0
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Topic :: Software Development :: Version Control :: Git
14
+ Requires-Python: >=3.6
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: requests>=2.25.0
18
+ Requires-Dist: prompt_toolkit>=3.0.0
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: license
25
+ Dynamic: license-file
26
+ Dynamic: requires-dist
27
+ Dynamic: requires-python
28
+ Dynamic: summary
29
+
30
+ # FancyGit
31
+
32
+ **An intelligent Git wrapper that makes version control approachable for beginners — without getting in the way of experienced developers.**
33
+
34
+ FancyGit sits on top of Git and adds smart features that guide you through everyday workflows, help you learn, and speed up your work.
35
+
36
+ ---
37
+
38
+ ## Key Features
39
+
40
+ ### Shortcut Commands
41
+ Common multi-step Git operations condensed into single commands. Less typing, fewer mistakes.
42
+
43
+ ```
44
+ fancygit ship # pull + stage + commit + push in one step
45
+ fancygit sync # fetch all branches and prune deleted remote branches
46
+ fancygit undo # safely undo your last commit (soft, mixed, or hard)
47
+ fancygit redo # restore a commit that was undone
48
+ fancygit explain # explain what any Git command does
49
+ ```
50
+
51
+ ### AI Integration
52
+ FancyGit connects to local AI models via Ollama to help you:
53
+ - **Auto-generate commit messages** from your staged diff
54
+ - **Analyse your repo** and surface useful insights
55
+
56
+ No API key needed — runs entirely on your machine. To unlock the full AI experience, install the following Ollama models:
57
+
58
+ ```bash
59
+ ollama pull codellama
60
+ ollama pull llama3.2
61
+ ```
62
+
63
+ ### Git Quizzes
64
+ Built-in interactive quizzes to help beginners learn Git concepts while they work.
65
+ - 320+ questions covering Git fundamentals to advanced topics
66
+ - Tracks which questions you've seen so you always get fresh ones
67
+ - Runs in your browser, no setup required
68
+
69
+ ```
70
+ fancygit quiz
71
+ ```
72
+
73
+ ### Repo Visualizer
74
+ Generates an interactive visual diagram of your repository's branch history and file dependency graph, opened directly in your browser.
75
+
76
+ ```
77
+ fancygit visualize
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Installation
83
+
84
+ ```bash
85
+ pip install fancygit
86
+ ```
87
+
88
+ Requires Python 3.6+ and Git installed on your system.
89
+
90
+ ## Quick Start
91
+
92
+ ```bash
93
+ fancygit --help # see all available commands
94
+ fancygit quiz # start a Git quiz
95
+ fancygit ship # pull, stage everything, commit with AI message, and push
96
+ ```
@@ -0,0 +1,67 @@
1
+ # FancyGit
2
+
3
+ **An intelligent Git wrapper that makes version control approachable for beginners — without getting in the way of experienced developers.**
4
+
5
+ FancyGit sits on top of Git and adds smart features that guide you through everyday workflows, help you learn, and speed up your work.
6
+
7
+ ---
8
+
9
+ ## Key Features
10
+
11
+ ### Shortcut Commands
12
+ Common multi-step Git operations condensed into single commands. Less typing, fewer mistakes.
13
+
14
+ ```
15
+ fancygit ship # pull + stage + commit + push in one step
16
+ fancygit sync # fetch all branches and prune deleted remote branches
17
+ fancygit undo # safely undo your last commit (soft, mixed, or hard)
18
+ fancygit redo # restore a commit that was undone
19
+ fancygit explain # explain what any Git command does
20
+ ```
21
+
22
+ ### AI Integration
23
+ FancyGit connects to local AI models via Ollama to help you:
24
+ - **Auto-generate commit messages** from your staged diff
25
+ - **Analyse your repo** and surface useful insights
26
+
27
+ No API key needed — runs entirely on your machine. To unlock the full AI experience, install the following Ollama models:
28
+
29
+ ```bash
30
+ ollama pull codellama
31
+ ollama pull llama3.2
32
+ ```
33
+
34
+ ### Git Quizzes
35
+ Built-in interactive quizzes to help beginners learn Git concepts while they work.
36
+ - 320+ questions covering Git fundamentals to advanced topics
37
+ - Tracks which questions you've seen so you always get fresh ones
38
+ - Runs in your browser, no setup required
39
+
40
+ ```
41
+ fancygit quiz
42
+ ```
43
+
44
+ ### Repo Visualizer
45
+ Generates an interactive visual diagram of your repository's branch history and file dependency graph, opened directly in your browser.
46
+
47
+ ```
48
+ fancygit visualize
49
+ ```
50
+
51
+ ---
52
+
53
+ ## Installation
54
+
55
+ ```bash
56
+ pip install fancygit
57
+ ```
58
+
59
+ Requires Python 3.6+ and Git installed on your system.
60
+
61
+ ## Quick Start
62
+
63
+ ```bash
64
+ fancygit --help # see all available commands
65
+ fancygit quiz # start a Git quiz
66
+ fancygit ship # pull, stage everything, commit with AI message, and push
67
+ ```
@@ -1,31 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: fancygit
3
- Version: 1.0.22
4
- Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
5
- Author: Youssif Ashmawy
6
- Author-email: ashmawyyoussif@gmail.com
7
- License: Apache License 2.0
8
- Classifier: Development Status :: 4 - Beta
9
- Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved :: Apache Software License
11
- Classifier: Operating System :: OS Independent
12
- Classifier: Programming Language :: Python :: 3.11
13
- Classifier: Topic :: Software Development :: Version Control :: Git
14
- Requires-Python: >=3.6
15
- Description-Content-Type: text/markdown
16
- License-File: LICENSE
17
- Requires-Dist: requests>=2.25.0
18
- Dynamic: author
19
- Dynamic: author-email
20
- Dynamic: classifier
21
- Dynamic: description
22
- Dynamic: description-content-type
23
- Dynamic: license
24
- Dynamic: license-file
25
- Dynamic: requires-dist
26
- Dynamic: requires-python
27
- Dynamic: summary
28
-
29
1
  # Fancy Git
30
2
 
31
3
  ![FancyGit Overview](images/overview.png)
@@ -134,6 +106,48 @@ fancygit insights [--days=N] [--format=console|json] [--output=filename]
134
106
  fancygit visualize [directory] [--max-commits=N] [--no-open]
135
107
  ```
136
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
+
137
151
  ### How It Works
138
152
 
139
153
  1. **Command Execution**: Runs the actual git command
@@ -0,0 +1 @@
1
+ 1.0.24
@@ -13,6 +13,7 @@ clean
13
13
  clone
14
14
  colors
15
15
  commit
16
+ ship
16
17
  confirmation
17
18
  describe
18
19
  diff
@@ -32,14 +33,17 @@ mv
32
33
  notes
33
34
  pull
34
35
  push
36
+ quiz
35
37
  range-diff
36
38
  rebase
39
+ redo
37
40
  reset
38
41
  restore
39
42
  revert
40
43
  rm
41
44
  shortlog
42
45
  show
46
+ ship
43
47
  sparse-checkout
44
48
  stash
45
49
  status
@@ -49,4 +53,5 @@ sync
49
53
  tag
50
54
  welcome
51
55
  worktree
56
+ undo
52
57
  visualize
@@ -0,0 +1,96 @@
1
+ Metadata-Version: 2.4
2
+ Name: fancygit
3
+ Version: 1.0.24
4
+ Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
5
+ Author: Youssif Ashmawy
6
+ Author-email: ashmawyyoussif@gmail.com
7
+ License: Apache License 2.0
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Topic :: Software Development :: Version Control :: Git
14
+ Requires-Python: >=3.6
15
+ Description-Content-Type: text/markdown
16
+ License-File: LICENSE
17
+ Requires-Dist: requests>=2.25.0
18
+ Requires-Dist: prompt_toolkit>=3.0.0
19
+ Dynamic: author
20
+ Dynamic: author-email
21
+ Dynamic: classifier
22
+ Dynamic: description
23
+ Dynamic: description-content-type
24
+ Dynamic: license
25
+ Dynamic: license-file
26
+ Dynamic: requires-dist
27
+ Dynamic: requires-python
28
+ Dynamic: summary
29
+
30
+ # FancyGit
31
+
32
+ **An intelligent Git wrapper that makes version control approachable for beginners — without getting in the way of experienced developers.**
33
+
34
+ FancyGit sits on top of Git and adds smart features that guide you through everyday workflows, help you learn, and speed up your work.
35
+
36
+ ---
37
+
38
+ ## Key Features
39
+
40
+ ### Shortcut Commands
41
+ Common multi-step Git operations condensed into single commands. Less typing, fewer mistakes.
42
+
43
+ ```
44
+ fancygit ship # pull + stage + commit + push in one step
45
+ fancygit sync # fetch all branches and prune deleted remote branches
46
+ fancygit undo # safely undo your last commit (soft, mixed, or hard)
47
+ fancygit redo # restore a commit that was undone
48
+ fancygit explain # explain what any Git command does
49
+ ```
50
+
51
+ ### AI Integration
52
+ FancyGit connects to local AI models via Ollama to help you:
53
+ - **Auto-generate commit messages** from your staged diff
54
+ - **Analyse your repo** and surface useful insights
55
+
56
+ No API key needed — runs entirely on your machine. To unlock the full AI experience, install the following Ollama models:
57
+
58
+ ```bash
59
+ ollama pull codellama
60
+ ollama pull llama3.2
61
+ ```
62
+
63
+ ### Git Quizzes
64
+ Built-in interactive quizzes to help beginners learn Git concepts while they work.
65
+ - 320+ questions covering Git fundamentals to advanced topics
66
+ - Tracks which questions you've seen so you always get fresh ones
67
+ - Runs in your browser, no setup required
68
+
69
+ ```
70
+ fancygit quiz
71
+ ```
72
+
73
+ ### Repo Visualizer
74
+ Generates an interactive visual diagram of your repository's branch history and file dependency graph, opened directly in your browser.
75
+
76
+ ```
77
+ fancygit visualize
78
+ ```
79
+
80
+ ---
81
+
82
+ ## Installation
83
+
84
+ ```bash
85
+ pip install fancygit
86
+ ```
87
+
88
+ Requires Python 3.6+ and Git installed on your system.
89
+
90
+ ## Quick Start
91
+
92
+ ```bash
93
+ fancygit --help # see all available commands
94
+ fancygit quiz # start a Git quiz
95
+ fancygit ship # pull, stage everything, commit with AI message, and push
96
+ ```
@@ -1,15 +1,17 @@
1
- .fancygit_config
2
1
  CD_GUIDE.md
3
2
  COLOR_SYSTEM_GUIDE.md
4
3
  EMAIL_SETUP_GUIDE.md
5
4
  LICENSE
6
5
  MANIFEST.in
6
+ PYPI_DESCRIPTION.md
7
7
  README.md
8
8
  TESTING_GUIDE.md
9
9
  TESTING_SUMMARY.md
10
10
  VERSION
11
11
  command-list.txt
12
12
  fancygit.py
13
+ game_questions.json
14
+ quiz_server.py
13
15
  setup.py
14
16
  welcome.py
15
17
  fancygit.egg-info/PKG-INFO
@@ -37,6 +39,8 @@ src/merge_conflict.py
37
39
  src/mermaid_export.py
38
40
  src/model_provider.py
39
41
  src/output_colorizer.py
42
+ src/quiz_html_generator.py
43
+ src/quiz_manager.py
40
44
  src/repo_inspector.py
41
45
  src/repo_state.py
42
46
  src/utils.py
@@ -59,4 +63,6 @@ tests/test_git_error.py
59
63
  tests/test_git_error_parser.py
60
64
  tests/test_git_runner.py
61
65
  tests/test_model_provider.py
62
- tests/test_providers.py
66
+ tests/test_ollama_model.py
67
+ tests/test_providers.py
68
+ tests/test_undo_redo.py
@@ -0,0 +1,2 @@
1
+ requests>=2.25.0
2
+ prompt_toolkit>=3.0.0
@@ -1,4 +1,5 @@
1
1
  fancygit
2
+ quiz_server
2
3
  src
3
4
  tests
4
5
  welcome