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.
- fancygit-1.0.5/PKG-INFO +169 -0
- fancygit-1.0.5/README.md +143 -0
- fancygit-1.0.5/fancygit.egg-info/PKG-INFO +169 -0
- fancygit-1.0.5/fancygit.egg-info/SOURCES.txt +32 -0
- fancygit-1.0.5/fancygit.egg-info/dependency_links.txt +1 -0
- fancygit-1.0.5/fancygit.egg-info/entry_points.txt +2 -0
- fancygit-1.0.5/fancygit.egg-info/requires.txt +1 -0
- fancygit-1.0.5/fancygit.egg-info/top_level.txt +2 -0
- fancygit-1.0.5/setup.cfg +4 -0
- fancygit-1.0.5/setup.py +63 -0
- fancygit-1.0.5/src/__init__.py +1 -0
- fancygit-1.0.5/src/colors.py +260 -0
- fancygit-1.0.5/src/git_error.py +55 -0
- fancygit-1.0.5/src/git_error_parser.py +43 -0
- fancygit-1.0.5/src/git_insights.py +304 -0
- fancygit-1.0.5/src/git_runner.py +20 -0
- fancygit-1.0.5/src/loading_animation.py +167 -0
- fancygit-1.0.5/src/merge_conflict.py +27 -0
- fancygit-1.0.5/src/mermaid_export.py +430 -0
- fancygit-1.0.5/src/ollama_client.py +142 -0
- fancygit-1.0.5/src/output_colorizer.py +358 -0
- fancygit-1.0.5/src/repo_state.py +29 -0
- fancygit-1.0.5/src/utils.py +0 -0
- fancygit-1.0.5/tests/README.md +186 -0
- fancygit-1.0.5/tests/__init__.py +0 -0
- fancygit-1.0.5/tests/conftest.py +61 -0
- fancygit-1.0.5/tests/test_conflict_parser_integration.py +65 -0
- fancygit-1.0.5/tests/test_fancygit_advanced.py +504 -0
- fancygit-1.0.5/tests/test_fancygit_commands.py +507 -0
- fancygit-1.0.5/tests/test_fancygit_integration.py +158 -0
- fancygit-1.0.5/tests/test_fancygit_workflows.py +441 -0
- fancygit-1.0.5/tests/test_git_error.py +74 -0
- fancygit-1.0.5/tests/test_git_error_parser.py +129 -0
- fancygit-1.0.5/tests/test_git_runner.py +118 -0
fancygit-1.0.5/PKG-INFO
ADDED
|
@@ -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
|
+

|
|
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)
|
fancygit-1.0.5/README.md
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Fancy Git
|
|
2
|
+
|
|
3
|
+

|
|
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
|
+

|
|
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 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
requests>=2.25.0
|
fancygit-1.0.5/setup.cfg
ADDED
fancygit-1.0.5/setup.py
ADDED
|
@@ -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
|