fancygit 1.0.5__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 (34) hide show
  1. fancygit-1.0.5/PKG-INFO +169 -0
  2. fancygit-1.0.5/README.md +143 -0
  3. fancygit-1.0.5/fancygit.egg-info/PKG-INFO +169 -0
  4. fancygit-1.0.5/fancygit.egg-info/SOURCES.txt +32 -0
  5. fancygit-1.0.5/fancygit.egg-info/dependency_links.txt +1 -0
  6. fancygit-1.0.5/fancygit.egg-info/entry_points.txt +2 -0
  7. fancygit-1.0.5/fancygit.egg-info/requires.txt +1 -0
  8. fancygit-1.0.5/fancygit.egg-info/top_level.txt +2 -0
  9. fancygit-1.0.5/setup.cfg +4 -0
  10. fancygit-1.0.5/setup.py +63 -0
  11. fancygit-1.0.5/src/__init__.py +1 -0
  12. fancygit-1.0.5/src/colors.py +260 -0
  13. fancygit-1.0.5/src/git_error.py +55 -0
  14. fancygit-1.0.5/src/git_error_parser.py +43 -0
  15. fancygit-1.0.5/src/git_insights.py +304 -0
  16. fancygit-1.0.5/src/git_runner.py +20 -0
  17. fancygit-1.0.5/src/loading_animation.py +167 -0
  18. fancygit-1.0.5/src/merge_conflict.py +27 -0
  19. fancygit-1.0.5/src/mermaid_export.py +430 -0
  20. fancygit-1.0.5/src/ollama_client.py +142 -0
  21. fancygit-1.0.5/src/output_colorizer.py +358 -0
  22. fancygit-1.0.5/src/repo_state.py +29 -0
  23. fancygit-1.0.5/src/utils.py +0 -0
  24. fancygit-1.0.5/tests/README.md +186 -0
  25. fancygit-1.0.5/tests/__init__.py +0 -0
  26. fancygit-1.0.5/tests/conftest.py +61 -0
  27. fancygit-1.0.5/tests/test_conflict_parser_integration.py +65 -0
  28. fancygit-1.0.5/tests/test_fancygit_advanced.py +504 -0
  29. fancygit-1.0.5/tests/test_fancygit_commands.py +507 -0
  30. fancygit-1.0.5/tests/test_fancygit_integration.py +158 -0
  31. fancygit-1.0.5/tests/test_fancygit_workflows.py +441 -0
  32. fancygit-1.0.5/tests/test_git_error.py +74 -0
  33. fancygit-1.0.5/tests/test_git_error_parser.py +129 -0
  34. fancygit-1.0.5/tests/test_git_runner.py +118 -0
@@ -0,0 +1,169 @@
1
+ Metadata-Version: 2.4
2
+ Name: fancygit
3
+ Version: 1.0.5
4
+ Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
5
+ Home-page: https://github.com/Youssif-Ashmawy/Fancy_Git
6
+ Author: Youssif Ashmawy
7
+ Author-email: ashmawyyoussif@gmail.com
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT 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
+ Requires-Dist: requests>=2.25.0
17
+ Dynamic: author
18
+ Dynamic: author-email
19
+ Dynamic: classifier
20
+ Dynamic: description
21
+ Dynamic: description-content-type
22
+ Dynamic: home-page
23
+ Dynamic: requires-dist
24
+ Dynamic: requires-python
25
+ Dynamic: summary
26
+
27
+ # Fancy Git
28
+
29
+ ![FancyGit Overview](images/overview.png)
30
+
31
+ A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts by analyzing git command outputs.
32
+
33
+ ## Email Notifications Test
34
+ *Testing email notification system - this change should trigger an email to the commit author.*
35
+
36
+ ## Overview
37
+
38
+ FancyGit is a CLI wrapper around git commands that:
39
+ - Runs git commands and captures their output
40
+ - Detects warnings and errors in real-time
41
+ - Provides user confirmation for clean operations
42
+ - Prepares for AI-powered recommendations (future phase)
43
+
44
+ ## Current Implementation (Phase 1)
45
+
46
+ ### ✅ Features Implemented
47
+ - **CLI Interface**: `fancygit` command works system-wide
48
+ - **Git Commands**: Full support for `add`, `commit`, `push`, and `pull` with argument passing
49
+ - **Warning/Error Detection**: Regex-based pattern matching for common git issues
50
+ - **User Confirmation**: Prompts for confirmation when no issues detected
51
+ - **Cross-platform**: Works on macOS, Linux, and Windows
52
+
53
+ ### 🔍 Detection Patterns
54
+
55
+ **Error Patterns:**
56
+ - `error:`, `fatal:`, `failed`, `rejected`
57
+ - `conflict`, `merge conflict`, `unable to`
58
+
59
+ **Warning Patterns:**
60
+ - `warning:`, `WARNING:`, `behind`, `ahead`, `diverged`
61
+
62
+ ## Installation
63
+
64
+ ### Quick Setup
65
+
66
+ Run the automated cross-platform launcher script:
67
+ ```bash
68
+ python3 launcher.py
69
+ ```
70
+
71
+ This script will:
72
+ - Automatically detect your operating system (Linux, macOS, or Windows)
73
+ - Run the appropriate installation script for your system
74
+ - Check Python 3.6+ and Git installation
75
+ - Make fancygit.py executable
76
+ - Create system-wide symlink (Unix-like systems) or add to PATH (Windows)
77
+ - Test the installation
78
+
79
+ ## Usage
80
+
81
+ ### Basic Commands
82
+ ```bash
83
+ # Add files
84
+ fancygit add .
85
+ fancygit add filename.txt
86
+
87
+ # Commit changes
88
+ fancygit commit -m "Your commit message"
89
+ fancygit commit --amend
90
+
91
+ # Push to remote
92
+ fancygit push origin main
93
+
94
+ # Pull from remote
95
+ fancygit pull origin main
96
+
97
+ # With additional arguments
98
+ fancygit push origin main --force-with-lease
99
+ fancygit pull origin main --rebase
100
+ ```
101
+
102
+ ### How It Works
103
+
104
+ 1. **Command Execution**: Runs the actual git command
105
+ 2. **Output Analysis**: Scans stdout/stderr for warning/error patterns
106
+ 3. **User Feedback**:
107
+ - If issues detected: Shows detailed error/warning messages
108
+ - If no issues: Prompts for confirmation with "enter 'y' to run the command"
109
+ 4. **Action**: Executes or cancels based on user input
110
+
111
+ ### Example Output
112
+
113
+ **No Issues:**
114
+ ```
115
+ Running: git push origin main
116
+ ✅ No warnings or errors detected
117
+ No warning messages - enter 'y' to run the command: y
118
+ Command executed successfully!
119
+ ```
120
+
121
+ **Issues Detected:**
122
+ ```
123
+ Running: git pull origin main
124
+ ❌ Errors detected:
125
+ error: couldn't find remote ref refs/heads/main
126
+ ```
127
+
128
+ ## Architecture
129
+
130
+ ```
131
+ FancyGit CLI → Git Commands → Collect Output → Pattern Matching → User Interface (CLI)
132
+ ```
133
+
134
+ ## Future Roadmap
135
+
136
+ ### Phase 2: AI Pipeline
137
+ - Implement AI model for parsing warnings/errors
138
+ - Generate intelligent recommendations
139
+ - Add confidence scoring (backend only)
140
+
141
+ ### Phase 3: Smart Resolution
142
+ - Automatic conflict resolution suggestions
143
+ - Context-aware recommendations
144
+ - Integration with popular Git workflows
145
+
146
+ ## File Structure
147
+
148
+ ```
149
+ Fancy_Git/
150
+ ├── fancygit.py # Main CLI application
151
+ ├── launcher.py # Cross-platform launcher script
152
+ ├── README.md # This file
153
+ ├── images/ # Images and documentation
154
+ │ └── overview.png # Project overview image
155
+ └── .git/ # Git repository
156
+ ```
157
+
158
+ *Note: Platform-specific installation scripts (`start.sh`, `start.bat`) are included but automatically managed by `launcher.py`.*
159
+ THIS SHOULD BE UPDATED ASAP
160
+ ## Requirements
161
+
162
+ - Python 3.6+
163
+ - Git installed and configured
164
+ - System permissions for symlink creation
165
+ - Note: No external dependecies for now so no environment setup required
166
+
167
+ ## License
168
+
169
+ MIT License (For now as it is still a private project)
@@ -0,0 +1,143 @@
1
+ # Fancy Git
2
+
3
+ ![FancyGit Overview](images/overview.png)
4
+
5
+ A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts by analyzing git command outputs.
6
+
7
+ ## Email Notifications Test
8
+ *Testing email notification system - this change should trigger an email to the commit author.*
9
+
10
+ ## Overview
11
+
12
+ FancyGit is a CLI wrapper around git commands that:
13
+ - Runs git commands and captures their output
14
+ - Detects warnings and errors in real-time
15
+ - Provides user confirmation for clean operations
16
+ - Prepares for AI-powered recommendations (future phase)
17
+
18
+ ## Current Implementation (Phase 1)
19
+
20
+ ### ✅ Features Implemented
21
+ - **CLI Interface**: `fancygit` command works system-wide
22
+ - **Git Commands**: Full support for `add`, `commit`, `push`, and `pull` with argument passing
23
+ - **Warning/Error Detection**: Regex-based pattern matching for common git issues
24
+ - **User Confirmation**: Prompts for confirmation when no issues detected
25
+ - **Cross-platform**: Works on macOS, Linux, and Windows
26
+
27
+ ### 🔍 Detection Patterns
28
+
29
+ **Error Patterns:**
30
+ - `error:`, `fatal:`, `failed`, `rejected`
31
+ - `conflict`, `merge conflict`, `unable to`
32
+
33
+ **Warning Patterns:**
34
+ - `warning:`, `WARNING:`, `behind`, `ahead`, `diverged`
35
+
36
+ ## Installation
37
+
38
+ ### Quick Setup
39
+
40
+ Run the automated cross-platform launcher script:
41
+ ```bash
42
+ python3 launcher.py
43
+ ```
44
+
45
+ This script will:
46
+ - Automatically detect your operating system (Linux, macOS, or Windows)
47
+ - Run the appropriate installation script for your system
48
+ - Check Python 3.6+ and Git installation
49
+ - Make fancygit.py executable
50
+ - Create system-wide symlink (Unix-like systems) or add to PATH (Windows)
51
+ - Test the installation
52
+
53
+ ## Usage
54
+
55
+ ### Basic Commands
56
+ ```bash
57
+ # Add files
58
+ fancygit add .
59
+ fancygit add filename.txt
60
+
61
+ # Commit changes
62
+ fancygit commit -m "Your commit message"
63
+ fancygit commit --amend
64
+
65
+ # Push to remote
66
+ fancygit push origin main
67
+
68
+ # Pull from remote
69
+ fancygit pull origin main
70
+
71
+ # With additional arguments
72
+ fancygit push origin main --force-with-lease
73
+ fancygit pull origin main --rebase
74
+ ```
75
+
76
+ ### How It Works
77
+
78
+ 1. **Command Execution**: Runs the actual git command
79
+ 2. **Output Analysis**: Scans stdout/stderr for warning/error patterns
80
+ 3. **User Feedback**:
81
+ - If issues detected: Shows detailed error/warning messages
82
+ - If no issues: Prompts for confirmation with "enter 'y' to run the command"
83
+ 4. **Action**: Executes or cancels based on user input
84
+
85
+ ### Example Output
86
+
87
+ **No Issues:**
88
+ ```
89
+ Running: git push origin main
90
+ ✅ No warnings or errors detected
91
+ No warning messages - enter 'y' to run the command: y
92
+ Command executed successfully!
93
+ ```
94
+
95
+ **Issues Detected:**
96
+ ```
97
+ Running: git pull origin main
98
+ ❌ Errors detected:
99
+ error: couldn't find remote ref refs/heads/main
100
+ ```
101
+
102
+ ## Architecture
103
+
104
+ ```
105
+ FancyGit CLI → Git Commands → Collect Output → Pattern Matching → User Interface (CLI)
106
+ ```
107
+
108
+ ## Future Roadmap
109
+
110
+ ### Phase 2: AI Pipeline
111
+ - Implement AI model for parsing warnings/errors
112
+ - Generate intelligent recommendations
113
+ - Add confidence scoring (backend only)
114
+
115
+ ### Phase 3: Smart Resolution
116
+ - Automatic conflict resolution suggestions
117
+ - Context-aware recommendations
118
+ - Integration with popular Git workflows
119
+
120
+ ## File Structure
121
+
122
+ ```
123
+ Fancy_Git/
124
+ ├── fancygit.py # Main CLI application
125
+ ├── launcher.py # Cross-platform launcher script
126
+ ├── README.md # This file
127
+ ├── images/ # Images and documentation
128
+ │ └── overview.png # Project overview image
129
+ └── .git/ # Git repository
130
+ ```
131
+
132
+ *Note: Platform-specific installation scripts (`start.sh`, `start.bat`) are included but automatically managed by `launcher.py`.*
133
+ THIS SHOULD BE UPDATED ASAP
134
+ ## Requirements
135
+
136
+ - Python 3.6+
137
+ - Git installed and configured
138
+ - System permissions for symlink creation
139
+ - Note: No external dependecies for now so no environment setup required
140
+
141
+ ## License
142
+
143
+ MIT License (For now as it is still a private project)
@@ -0,0 +1,169 @@
1
+ Metadata-Version: 2.4
2
+ Name: fancygit
3
+ Version: 1.0.5
4
+ Summary: A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts
5
+ Home-page: https://github.com/Youssif-Ashmawy/Fancy_Git
6
+ Author: Youssif Ashmawy
7
+ Author-email: ashmawyyoussif@gmail.com
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: License :: OSI Approved :: MIT 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
+ Requires-Dist: requests>=2.25.0
17
+ Dynamic: author
18
+ Dynamic: author-email
19
+ Dynamic: classifier
20
+ Dynamic: description
21
+ Dynamic: description-content-type
22
+ Dynamic: home-page
23
+ Dynamic: requires-dist
24
+ Dynamic: requires-python
25
+ Dynamic: summary
26
+
27
+ # Fancy Git
28
+
29
+ ![FancyGit Overview](images/overview.png)
30
+
31
+ A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts by analyzing git command outputs.
32
+
33
+ ## Email Notifications Test
34
+ *Testing email notification system - this change should trigger an email to the commit author.*
35
+
36
+ ## Overview
37
+
38
+ FancyGit is a CLI wrapper around git commands that:
39
+ - Runs git commands and captures their output
40
+ - Detects warnings and errors in real-time
41
+ - Provides user confirmation for clean operations
42
+ - Prepares for AI-powered recommendations (future phase)
43
+
44
+ ## Current Implementation (Phase 1)
45
+
46
+ ### ✅ Features Implemented
47
+ - **CLI Interface**: `fancygit` command works system-wide
48
+ - **Git Commands**: Full support for `add`, `commit`, `push`, and `pull` with argument passing
49
+ - **Warning/Error Detection**: Regex-based pattern matching for common git issues
50
+ - **User Confirmation**: Prompts for confirmation when no issues detected
51
+ - **Cross-platform**: Works on macOS, Linux, and Windows
52
+
53
+ ### 🔍 Detection Patterns
54
+
55
+ **Error Patterns:**
56
+ - `error:`, `fatal:`, `failed`, `rejected`
57
+ - `conflict`, `merge conflict`, `unable to`
58
+
59
+ **Warning Patterns:**
60
+ - `warning:`, `WARNING:`, `behind`, `ahead`, `diverged`
61
+
62
+ ## Installation
63
+
64
+ ### Quick Setup
65
+
66
+ Run the automated cross-platform launcher script:
67
+ ```bash
68
+ python3 launcher.py
69
+ ```
70
+
71
+ This script will:
72
+ - Automatically detect your operating system (Linux, macOS, or Windows)
73
+ - Run the appropriate installation script for your system
74
+ - Check Python 3.6+ and Git installation
75
+ - Make fancygit.py executable
76
+ - Create system-wide symlink (Unix-like systems) or add to PATH (Windows)
77
+ - Test the installation
78
+
79
+ ## Usage
80
+
81
+ ### Basic Commands
82
+ ```bash
83
+ # Add files
84
+ fancygit add .
85
+ fancygit add filename.txt
86
+
87
+ # Commit changes
88
+ fancygit commit -m "Your commit message"
89
+ fancygit commit --amend
90
+
91
+ # Push to remote
92
+ fancygit push origin main
93
+
94
+ # Pull from remote
95
+ fancygit pull origin main
96
+
97
+ # With additional arguments
98
+ fancygit push origin main --force-with-lease
99
+ fancygit pull origin main --rebase
100
+ ```
101
+
102
+ ### How It Works
103
+
104
+ 1. **Command Execution**: Runs the actual git command
105
+ 2. **Output Analysis**: Scans stdout/stderr for warning/error patterns
106
+ 3. **User Feedback**:
107
+ - If issues detected: Shows detailed error/warning messages
108
+ - If no issues: Prompts for confirmation with "enter 'y' to run the command"
109
+ 4. **Action**: Executes or cancels based on user input
110
+
111
+ ### Example Output
112
+
113
+ **No Issues:**
114
+ ```
115
+ Running: git push origin main
116
+ ✅ No warnings or errors detected
117
+ No warning messages - enter 'y' to run the command: y
118
+ Command executed successfully!
119
+ ```
120
+
121
+ **Issues Detected:**
122
+ ```
123
+ Running: git pull origin main
124
+ ❌ Errors detected:
125
+ error: couldn't find remote ref refs/heads/main
126
+ ```
127
+
128
+ ## Architecture
129
+
130
+ ```
131
+ FancyGit CLI → Git Commands → Collect Output → Pattern Matching → User Interface (CLI)
132
+ ```
133
+
134
+ ## Future Roadmap
135
+
136
+ ### Phase 2: AI Pipeline
137
+ - Implement AI model for parsing warnings/errors
138
+ - Generate intelligent recommendations
139
+ - Add confidence scoring (backend only)
140
+
141
+ ### Phase 3: Smart Resolution
142
+ - Automatic conflict resolution suggestions
143
+ - Context-aware recommendations
144
+ - Integration with popular Git workflows
145
+
146
+ ## File Structure
147
+
148
+ ```
149
+ Fancy_Git/
150
+ ├── fancygit.py # Main CLI application
151
+ ├── launcher.py # Cross-platform launcher script
152
+ ├── README.md # This file
153
+ ├── images/ # Images and documentation
154
+ │ └── overview.png # Project overview image
155
+ └── .git/ # Git repository
156
+ ```
157
+
158
+ *Note: Platform-specific installation scripts (`start.sh`, `start.bat`) are included but automatically managed by `launcher.py`.*
159
+ THIS SHOULD BE UPDATED ASAP
160
+ ## Requirements
161
+
162
+ - Python 3.6+
163
+ - Git installed and configured
164
+ - System permissions for symlink creation
165
+ - Note: No external dependecies for now so no environment setup required
166
+
167
+ ## License
168
+
169
+ MIT License (For now as it is still a private project)
@@ -0,0 +1,32 @@
1
+ README.md
2
+ setup.py
3
+ fancygit.egg-info/PKG-INFO
4
+ fancygit.egg-info/SOURCES.txt
5
+ fancygit.egg-info/dependency_links.txt
6
+ fancygit.egg-info/entry_points.txt
7
+ fancygit.egg-info/requires.txt
8
+ fancygit.egg-info/top_level.txt
9
+ src/__init__.py
10
+ src/colors.py
11
+ src/git_error.py
12
+ src/git_error_parser.py
13
+ src/git_insights.py
14
+ src/git_runner.py
15
+ src/loading_animation.py
16
+ src/merge_conflict.py
17
+ src/mermaid_export.py
18
+ src/ollama_client.py
19
+ src/output_colorizer.py
20
+ src/repo_state.py
21
+ src/utils.py
22
+ tests/README.md
23
+ tests/__init__.py
24
+ tests/conftest.py
25
+ tests/test_conflict_parser_integration.py
26
+ tests/test_fancygit_advanced.py
27
+ tests/test_fancygit_commands.py
28
+ tests/test_fancygit_integration.py
29
+ tests/test_fancygit_workflows.py
30
+ tests/test_git_error.py
31
+ tests/test_git_error_parser.py
32
+ tests/test_git_runner.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ fancygit = fancygit:main
@@ -0,0 +1 @@
1
+ requests>=2.25.0
@@ -0,0 +1,2 @@
1
+ src
2
+ tests
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,63 @@
1
+ from setuptools import setup, find_packages
2
+ import os
3
+
4
+ # Read version from VERSION file or default to 1.0.0
5
+ def get_version():
6
+ try:
7
+ with open("VERSION", "r") as f:
8
+ return f.read().strip()
9
+ except FileNotFoundError:
10
+ return "1.0.0"
11
+
12
+ version = get_version()
13
+
14
+ # Read requirements
15
+ def get_requirements():
16
+ try:
17
+ with open("requirements.txt", "r") as f:
18
+ return [line.strip() for line in f if line.strip() and not line.startswith("#")]
19
+ except FileNotFoundError:
20
+ return ["requests>=2.25.0"]
21
+
22
+ requirements = get_requirements()
23
+
24
+ # Read README
25
+ def get_long_description():
26
+ try:
27
+ with open("README.md", "r", encoding="utf-8") as f:
28
+ return f.read()
29
+ except FileNotFoundError:
30
+ return "FancyGit - A smart CLI tool for git"
31
+
32
+ long_description = get_long_description()
33
+
34
+ setup(
35
+ name="fancygit",
36
+ version=version,
37
+ author="Youssif Ashmawy",
38
+ author_email="ashmawyyoussif@gmail.com",
39
+ description="A smart CLI tool that provides intelligent recommendations and helps solve merge conflicts",
40
+ long_description=long_description,
41
+ long_description_content_type="text/markdown",
42
+ url="https://github.com/Youssif-Ashmawy/Fancy_Git",
43
+ packages=find_packages(),
44
+ classifiers=[
45
+ "Development Status :: 4 - Beta",
46
+ "Intended Audience :: Developers",
47
+ "License :: OSI Approved :: MIT License",
48
+ "Operating System :: OS Independent",
49
+ "Programming Language :: Python :: 3.11",
50
+ "Topic :: Software Development :: Version Control :: Git",
51
+ ],
52
+ python_requires=">=3.6",
53
+ install_requires=requirements,
54
+ entry_points={
55
+ "console_scripts": [
56
+ "fancygit=fancygit:main",
57
+ ],
58
+ },
59
+ include_package_data=True,
60
+ package_data={
61
+ "": ["VERSION", "README.md", "*.md"],
62
+ },
63
+ )
@@ -0,0 +1 @@
1
+ # This file makes the src directory a Python package