fancygit 1.0.23__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.23 → fancygit-1.0.24}/MANIFEST.in +4 -1
  2. fancygit-1.0.24/PKG-INFO +96 -0
  3. fancygit-1.0.24/PYPI_DESCRIPTION.md +67 -0
  4. fancygit-1.0.24/VERSION +1 -0
  5. {fancygit-1.0.23 → fancygit-1.0.24}/command-list.txt +2 -0
  6. fancygit-1.0.24/fancygit.egg-info/PKG-INFO +96 -0
  7. {fancygit-1.0.23 → fancygit-1.0.24}/fancygit.egg-info/SOURCES.txt +26 -3
  8. {fancygit-1.0.23 → fancygit-1.0.24}/fancygit.egg-info/top_level.txt +1 -0
  9. {fancygit-1.0.23 → fancygit-1.0.24}/fancygit.py +250 -324
  10. fancygit-1.0.24/game_questions.json +332 -0
  11. fancygit-1.0.24/images/Logo.png +0 -0
  12. fancygit-1.0.24/images/Logo_with_name.png +0 -0
  13. fancygit-1.0.24/images/dark_background_logo.png +0 -0
  14. fancygit-1.0.24/images/light_background_logo.png +0 -0
  15. fancygit-1.0.24/images/overview.png +0 -0
  16. fancygit-1.0.24/quiz_server.py +41 -0
  17. {fancygit-1.0.23 → fancygit-1.0.24}/setup.py +8 -5
  18. fancygit-1.0.24/src/ai_engine.py +116 -0
  19. fancygit-1.0.24/src/config_manager.py +68 -0
  20. fancygit-1.0.24/src/fancygit_config_dc.py +42 -0
  21. {fancygit-1.0.23 → fancygit-1.0.24}/src/mermaid_export.py +85 -2
  22. fancygit-1.0.24/src/model_provider.py +25 -0
  23. fancygit-1.0.24/src/providers/__init__.py +1 -0
  24. fancygit-1.0.24/src/providers/anthropic_model.py +47 -0
  25. fancygit-1.0.24/src/providers/base_model.py +19 -0
  26. fancygit-1.0.24/src/providers/ollama_model.py +303 -0
  27. fancygit-1.0.24/src/providers/openai_model.py +66 -0
  28. {fancygit-1.0.23 → fancygit-1.0.24}/src/quiz_html_generator.py +66 -17
  29. fancygit-1.0.24/src/repo_inspector.py +3 -0
  30. fancygit-1.0.24/tests/conftest.py +139 -0
  31. fancygit-1.0.24/tests/test_ai_engine.py +181 -0
  32. fancygit-1.0.24/tests/test_ai_integration.py +168 -0
  33. fancygit-1.0.24/tests/test_config_manager.py +232 -0
  34. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_conflict_parser_integration.py +6 -4
  35. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_fancygit_advanced.py +16 -15
  36. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_fancygit_commands.py +60 -63
  37. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_fancygit_integration.py +20 -15
  38. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_fancygit_workflows.py +45 -44
  39. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_git_error.py +2 -2
  40. fancygit-1.0.24/tests/test_model_provider.py +204 -0
  41. fancygit-1.0.24/tests/test_ollama_model.py +458 -0
  42. fancygit-1.0.24/tests/test_providers.py +154 -0
  43. fancygit-1.0.24/tests/test_undo_redo.py +319 -0
  44. fancygit-1.0.23/.fancygit_config +0 -4
  45. fancygit-1.0.23/PKG-INFO +0 -293
  46. fancygit-1.0.23/VERSION +0 -1
  47. fancygit-1.0.23/fancygit.egg-info/PKG-INFO +0 -293
  48. fancygit-1.0.23/src/ollama_client.py +0 -343
  49. fancygit-1.0.23/tests/conftest.py +0 -61
  50. {fancygit-1.0.23 → fancygit-1.0.24}/CD_GUIDE.md +0 -0
  51. {fancygit-1.0.23 → fancygit-1.0.24}/COLOR_SYSTEM_GUIDE.md +0 -0
  52. {fancygit-1.0.23 → fancygit-1.0.24}/EMAIL_SETUP_GUIDE.md +0 -0
  53. {fancygit-1.0.23 → fancygit-1.0.24}/LICENSE +0 -0
  54. {fancygit-1.0.23 → fancygit-1.0.24}/README.md +0 -0
  55. {fancygit-1.0.23 → fancygit-1.0.24}/TESTING_GUIDE.md +0 -0
  56. {fancygit-1.0.23 → fancygit-1.0.24}/TESTING_SUMMARY.md +0 -0
  57. {fancygit-1.0.23 → fancygit-1.0.24}/fancygit.egg-info/dependency_links.txt +0 -0
  58. {fancygit-1.0.23 → fancygit-1.0.24}/fancygit.egg-info/entry_points.txt +0 -0
  59. {fancygit-1.0.23 → fancygit-1.0.24}/fancygit.egg-info/requires.txt +0 -0
  60. {fancygit-1.0.23 → fancygit-1.0.24}/setup.cfg +0 -0
  61. {fancygit-1.0.23 → fancygit-1.0.24}/src/__init__.py +0 -0
  62. {fancygit-1.0.23 → fancygit-1.0.24}/src/colors.py +0 -0
  63. {fancygit-1.0.23 → fancygit-1.0.24}/src/git_error.py +0 -0
  64. {fancygit-1.0.23 → fancygit-1.0.24}/src/git_error_parser.py +0 -0
  65. {fancygit-1.0.23 → fancygit-1.0.24}/src/git_insights.py +0 -0
  66. {fancygit-1.0.23 → fancygit-1.0.24}/src/git_runner.py +0 -0
  67. {fancygit-1.0.23 → fancygit-1.0.24}/src/loading_animation.py +0 -0
  68. {fancygit-1.0.23 → fancygit-1.0.24}/src/merge_conflict.py +0 -0
  69. {fancygit-1.0.23 → fancygit-1.0.24}/src/output_colorizer.py +0 -0
  70. {fancygit-1.0.23 → fancygit-1.0.24}/src/quiz_manager.py +0 -0
  71. {fancygit-1.0.23 → fancygit-1.0.24}/src/repo_state.py +0 -0
  72. {fancygit-1.0.23 → fancygit-1.0.24}/src/utils.py +0 -0
  73. {fancygit-1.0.23 → fancygit-1.0.24}/tests/__init__.py +0 -0
  74. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_git_error_parser.py +0 -0
  75. {fancygit-1.0.23 → fancygit-1.0.24}/tests/test_git_runner.py +0 -0
  76. {fancygit-1.0.23 → fancygit-1.0.24}/welcome.py +0 -0
@@ -1,11 +1,14 @@
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
12
+ recursive-include images *.png *.jpg *.jpeg *.gif
10
13
  global-exclude *.pyc
11
14
  global-exclude __pycache__
@@ -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
+ ```
@@ -0,0 +1 @@
1
+ 1.0.24
@@ -17,6 +17,7 @@ ship
17
17
  confirmation
18
18
  describe
19
19
  diff
20
+ explain
20
21
  fetch
21
22
  format-patch
22
23
  gc
@@ -48,6 +49,7 @@ stash
48
49
  status
49
50
  submodule
50
51
  switch
52
+ sync
51
53
  tag
52
54
  welcome
53
55
  worktree
@@ -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
@@ -18,8 +20,16 @@ fancygit.egg-info/dependency_links.txt
18
20
  fancygit.egg-info/entry_points.txt
19
21
  fancygit.egg-info/requires.txt
20
22
  fancygit.egg-info/top_level.txt
23
+ images/Logo.png
24
+ images/Logo_with_name.png
25
+ images/dark_background_logo.png
26
+ images/light_background_logo.png
27
+ images/overview.png
21
28
  src/__init__.py
29
+ src/ai_engine.py
22
30
  src/colors.py
31
+ src/config_manager.py
32
+ src/fancygit_config_dc.py
23
33
  src/git_error.py
24
34
  src/git_error_parser.py
25
35
  src/git_insights.py
@@ -27,14 +37,23 @@ src/git_runner.py
27
37
  src/loading_animation.py
28
38
  src/merge_conflict.py
29
39
  src/mermaid_export.py
30
- src/ollama_client.py
40
+ src/model_provider.py
31
41
  src/output_colorizer.py
32
42
  src/quiz_html_generator.py
33
43
  src/quiz_manager.py
44
+ src/repo_inspector.py
34
45
  src/repo_state.py
35
46
  src/utils.py
47
+ src/providers/__init__.py
48
+ src/providers/anthropic_model.py
49
+ src/providers/base_model.py
50
+ src/providers/ollama_model.py
51
+ src/providers/openai_model.py
36
52
  tests/__init__.py
37
53
  tests/conftest.py
54
+ tests/test_ai_engine.py
55
+ tests/test_ai_integration.py
56
+ tests/test_config_manager.py
38
57
  tests/test_conflict_parser_integration.py
39
58
  tests/test_fancygit_advanced.py
40
59
  tests/test_fancygit_commands.py
@@ -42,4 +61,8 @@ tests/test_fancygit_integration.py
42
61
  tests/test_fancygit_workflows.py
43
62
  tests/test_git_error.py
44
63
  tests/test_git_error_parser.py
45
- tests/test_git_runner.py
64
+ tests/test_git_runner.py
65
+ tests/test_model_provider.py
66
+ tests/test_ollama_model.py
67
+ tests/test_providers.py
68
+ tests/test_undo_redo.py
@@ -1,4 +1,5 @@
1
1
  fancygit
2
+ quiz_server
2
3
  src
3
4
  tests
4
5
  welcome