reqfix 0.1.0__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.
reqfix-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,210 @@
1
+ Metadata-Version: 2.4
2
+ Name: reqfix
3
+ Version: 0.1.0
4
+ Summary: Fix your Python dependency conflicts automatically
5
+ Author: Sakshi Rajesh Kamble
6
+ Author-email: sakshikamble512@gmail.com
7
+ Maintainer: Sakshi Rajesh Kamble
8
+ Maintainer-email: sakshikamble512@gmail.com
9
+ License: MIT
10
+ Keywords: pip,dependencies,requirements,conflict,resolver,packaging,devtools,cli
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Topic :: Software Development :: Build Tools
13
+ Classifier: Topic :: System :: Systems Administration
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.8
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Development Status :: 3 - Alpha
22
+ Classifier: Operating System :: OS Independent
23
+ Requires-Python: >=3.8
24
+ Description-Content-Type: text/markdown
25
+ Requires-Dist: requests>=2.28.0
26
+ Requires-Dist: packaging>=23.0
27
+ Requires-Dist: rich>=13.0.0
28
+ Requires-Dist: click>=8.1.0
29
+ Dynamic: author
30
+ Dynamic: author-email
31
+ Dynamic: classifier
32
+ Dynamic: description
33
+ Dynamic: description-content-type
34
+ Dynamic: keywords
35
+ Dynamic: license
36
+ Dynamic: maintainer
37
+ Dynamic: maintainer-email
38
+ Dynamic: requires-dist
39
+ Dynamic: requires-python
40
+ Dynamic: summary
41
+
42
+ # 🔧 Reqfix
43
+
44
+ > Fix your Python dependency conflicts automatically.
45
+
46
+ [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://python.org)
47
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
48
+ [![PyPI](https://img.shields.io/badge/pypi-coming%20soon-orange.svg)]()
49
+
50
+ ---
51
+
52
+ ## The Problem
53
+
54
+ You clone a Python project, create a virtual environment, run `pip install -r requirements.txt` and get this:
55
+
56
+ ```
57
+ ERROR: Cannot install flask==1.0.0 and werkzeug==2.3.0 because these
58
+ package versions have conflicting dependencies.
59
+ ```
60
+
61
+ Then you spend the next hour manually hunting for compatible versions.
62
+ It's tedious, frustrating, and happens to every developer.
63
+
64
+ ---
65
+
66
+ ## The Solution
67
+
68
+ Reqfix analyzes your `requirements.txt`, talks to PyPI, finds compatible versions for every package, verifies they all work **together**, and installs them.
69
+
70
+ ```bash
71
+ reqfix install
72
+ ```
73
+
74
+ That's it.
75
+
76
+ ---
77
+
78
+ ## ✨ Features
79
+
80
+ - 🔍 **Analyze** — Detects conflicts, unpinned packages, and outdated versions
81
+ - 🔧 **Fix** — Generates a clean `requirements.fixed.txt` with pinned compatible versions
82
+ - 🚀 **Install** — Auto-installs all fixed packages in one command
83
+ - 🛡️ **Verify** — Cross-checks ALL packages are mutually compatible before installing anything
84
+ - 🎨 **Beautiful output** — Color-coded terminal reports powered by Rich
85
+
86
+ ---
87
+
88
+ ## 📦 Installation
89
+
90
+ ### Option 1 — Via pip (recommended)
91
+ ```bash
92
+ pip install reqfix
93
+ ```
94
+
95
+ ### Option 2 — From source (for contributors)
96
+ ```bash
97
+ git clone https://github.com/Sakshi-512/reqfix.git
98
+ cd reqfix
99
+ pip install -e .
100
+ ```
101
+
102
+ > 💡 Install globally (outside any virtualenv) so `reqfix` is available in every project.
103
+
104
+ ---
105
+
106
+ ## 🚀 Usage
107
+
108
+ ### The most common flow
109
+ ```bash
110
+ # You cloned a project and pip install failed?
111
+ # Just run:
112
+ reqfix install
113
+ ```
114
+
115
+ ### Analyze — see what's broken (no changes made)
116
+ ```bash
117
+ reqfix analyze
118
+ ```
119
+
120
+ ```
121
+ ╭─────────────────────────────────────────╮
122
+ │ Reqfix — Python Dependency Doctor │
123
+ ╰─────────────────────────────────────────╯
124
+
125
+ Found 4 packages in requirements.txt
126
+
127
+ ┌─────────────┬────────────┬─────────────┬──────────────────────┬──────────────────────────────────────┐
128
+ │ Package │ Original │ Status │ Suggested Fix │ Reason │
129
+ ├─────────────┼────────────┼─────────────┼──────────────────────┼──────────────────────────────────────┤
130
+ │ flask │ >=2.0.0 │ ✅ Healthy │ flask==3.1.2 │ Pinned to latest compatible version │
131
+ │ requests │ ==2.28.1 │ ✅ Healthy │ requests==2.28.1 │ Pinned to latest compatible version │
132
+ │ numpy │ none │ 📌 Unpinned │ numpy==2.4.2 │ Pinned to latest stable │
133
+ │ pandas │ >=1.3.0 │ ✅ Healthy │ pandas==3.0.0 │ Pinned to latest compatible version │
134
+ └─────────────┴────────────┴─────────────┴──────────────────────┴──────────────────────────────────────┘
135
+
136
+ 💥 Conflicts: 0 📌 Unpinned: 1 ✅ Healthy: 3
137
+
138
+ ✅ All packages verified — no cross-package conflicts.
139
+ ```
140
+
141
+ ### Fix — generate a clean requirements file
142
+ ```bash
143
+ reqfix fix
144
+ ```
145
+ Writes a `requirements.fixed.txt` with every package pinned to a compatible version. Nothing is installed.
146
+
147
+ ### Install — fix and install in one step
148
+ ```bash
149
+ reqfix install
150
+ ```
151
+ Asks for confirmation, verifies cross-package compatibility, then installs everything.
152
+
153
+ ### Custom file paths
154
+ ```bash
155
+ reqfix analyze --file path/to/requirements.txt
156
+ reqfix fix --output my-fixed-requirements.txt
157
+ ```
158
+
159
+ ---
160
+
161
+ ## 🗺️ Roadmap
162
+
163
+ This is just the beginning. Here's what's coming:
164
+
165
+ - [ ] **v0.2** — Parallel PyPI requests (faster analysis)
166
+ - [ ] **v0.3** — Support for `pyproject.toml` and `setup.py`
167
+ - [ ] **v0.4** — Conflict graph visualization
168
+ - [ ] **v1.0** — SaaS web app with team features
169
+ - [ ] **v1.x** — VS Code extension with inline conflict highlighting
170
+
171
+ ---
172
+
173
+ ## 🤝 Contributing
174
+
175
+ Contributions are welcome! This project is actively developed.
176
+
177
+ 1. Fork the repo
178
+ 2. Create a branch: `git checkout -b feat/your-feature`
179
+ 3. Make your changes
180
+ 4. Push and open a Pull Request
181
+
182
+ Please follow the existing code style — type hints, docstrings, and single-responsibility functions throughout.
183
+
184
+ ---
185
+
186
+ ## 📁 Project Structure
187
+
188
+ ```
189
+ reqfix/
190
+ ├── core/
191
+ │ ├── parser.py # Parses requirements.txt into objects
192
+ │ ├── resolver.py # Fetches versions from PyPI, detects conflicts
193
+ │ ├── fixer.py # Determines best version for each package
194
+ │ ├── verifier.py # Verifies all packages are mutually compatible
195
+ │ └── installer.py # Writes fixed file and runs pip install
196
+ ├── cli/
197
+ │ └── main.py # Terminal interface (analyze, fix, install)
198
+ ├── setup.py # Package configuration
199
+ └── requirements.txt # Reqfix's own dependencies
200
+ ```
201
+
202
+ ---
203
+
204
+ ## 📄 License
205
+
206
+ MIT — free to use, modify, and distribute.
207
+
208
+ ---
209
+
210
+ <p align="center">Built with ❤️ to save developers from dependency hell</p>
reqfix-0.1.0/README.md ADDED
@@ -0,0 +1,169 @@
1
+ # 🔧 Reqfix
2
+
3
+ > Fix your Python dependency conflicts automatically.
4
+
5
+ [![Python](https://img.shields.io/badge/python-3.8+-blue.svg)](https://python.org)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7
+ [![PyPI](https://img.shields.io/badge/pypi-coming%20soon-orange.svg)]()
8
+
9
+ ---
10
+
11
+ ## The Problem
12
+
13
+ You clone a Python project, create a virtual environment, run `pip install -r requirements.txt` and get this:
14
+
15
+ ```
16
+ ERROR: Cannot install flask==1.0.0 and werkzeug==2.3.0 because these
17
+ package versions have conflicting dependencies.
18
+ ```
19
+
20
+ Then you spend the next hour manually hunting for compatible versions.
21
+ It's tedious, frustrating, and happens to every developer.
22
+
23
+ ---
24
+
25
+ ## The Solution
26
+
27
+ Reqfix analyzes your `requirements.txt`, talks to PyPI, finds compatible versions for every package, verifies they all work **together**, and installs them.
28
+
29
+ ```bash
30
+ reqfix install
31
+ ```
32
+
33
+ That's it.
34
+
35
+ ---
36
+
37
+ ## ✨ Features
38
+
39
+ - 🔍 **Analyze** — Detects conflicts, unpinned packages, and outdated versions
40
+ - 🔧 **Fix** — Generates a clean `requirements.fixed.txt` with pinned compatible versions
41
+ - 🚀 **Install** — Auto-installs all fixed packages in one command
42
+ - 🛡️ **Verify** — Cross-checks ALL packages are mutually compatible before installing anything
43
+ - 🎨 **Beautiful output** — Color-coded terminal reports powered by Rich
44
+
45
+ ---
46
+
47
+ ## 📦 Installation
48
+
49
+ ### Option 1 — Via pip (recommended)
50
+ ```bash
51
+ pip install reqfix
52
+ ```
53
+
54
+ ### Option 2 — From source (for contributors)
55
+ ```bash
56
+ git clone https://github.com/Sakshi-512/reqfix.git
57
+ cd reqfix
58
+ pip install -e .
59
+ ```
60
+
61
+ > 💡 Install globally (outside any virtualenv) so `reqfix` is available in every project.
62
+
63
+ ---
64
+
65
+ ## 🚀 Usage
66
+
67
+ ### The most common flow
68
+ ```bash
69
+ # You cloned a project and pip install failed?
70
+ # Just run:
71
+ reqfix install
72
+ ```
73
+
74
+ ### Analyze — see what's broken (no changes made)
75
+ ```bash
76
+ reqfix analyze
77
+ ```
78
+
79
+ ```
80
+ ╭─────────────────────────────────────────╮
81
+ │ Reqfix — Python Dependency Doctor │
82
+ ╰─────────────────────────────────────────╯
83
+
84
+ Found 4 packages in requirements.txt
85
+
86
+ ┌─────────────┬────────────┬─────────────┬──────────────────────┬──────────────────────────────────────┐
87
+ │ Package │ Original │ Status │ Suggested Fix │ Reason │
88
+ ├─────────────┼────────────┼─────────────┼──────────────────────┼──────────────────────────────────────┤
89
+ │ flask │ >=2.0.0 │ ✅ Healthy │ flask==3.1.2 │ Pinned to latest compatible version │
90
+ │ requests │ ==2.28.1 │ ✅ Healthy │ requests==2.28.1 │ Pinned to latest compatible version │
91
+ │ numpy │ none │ 📌 Unpinned │ numpy==2.4.2 │ Pinned to latest stable │
92
+ │ pandas │ >=1.3.0 │ ✅ Healthy │ pandas==3.0.0 │ Pinned to latest compatible version │
93
+ └─────────────┴────────────┴─────────────┴──────────────────────┴──────────────────────────────────────┘
94
+
95
+ 💥 Conflicts: 0 📌 Unpinned: 1 ✅ Healthy: 3
96
+
97
+ ✅ All packages verified — no cross-package conflicts.
98
+ ```
99
+
100
+ ### Fix — generate a clean requirements file
101
+ ```bash
102
+ reqfix fix
103
+ ```
104
+ Writes a `requirements.fixed.txt` with every package pinned to a compatible version. Nothing is installed.
105
+
106
+ ### Install — fix and install in one step
107
+ ```bash
108
+ reqfix install
109
+ ```
110
+ Asks for confirmation, verifies cross-package compatibility, then installs everything.
111
+
112
+ ### Custom file paths
113
+ ```bash
114
+ reqfix analyze --file path/to/requirements.txt
115
+ reqfix fix --output my-fixed-requirements.txt
116
+ ```
117
+
118
+ ---
119
+
120
+ ## 🗺️ Roadmap
121
+
122
+ This is just the beginning. Here's what's coming:
123
+
124
+ - [ ] **v0.2** — Parallel PyPI requests (faster analysis)
125
+ - [ ] **v0.3** — Support for `pyproject.toml` and `setup.py`
126
+ - [ ] **v0.4** — Conflict graph visualization
127
+ - [ ] **v1.0** — SaaS web app with team features
128
+ - [ ] **v1.x** — VS Code extension with inline conflict highlighting
129
+
130
+ ---
131
+
132
+ ## 🤝 Contributing
133
+
134
+ Contributions are welcome! This project is actively developed.
135
+
136
+ 1. Fork the repo
137
+ 2. Create a branch: `git checkout -b feat/your-feature`
138
+ 3. Make your changes
139
+ 4. Push and open a Pull Request
140
+
141
+ Please follow the existing code style — type hints, docstrings, and single-responsibility functions throughout.
142
+
143
+ ---
144
+
145
+ ## 📁 Project Structure
146
+
147
+ ```
148
+ reqfix/
149
+ ├── core/
150
+ │ ├── parser.py # Parses requirements.txt into objects
151
+ │ ├── resolver.py # Fetches versions from PyPI, detects conflicts
152
+ │ ├── fixer.py # Determines best version for each package
153
+ │ ├── verifier.py # Verifies all packages are mutually compatible
154
+ │ └── installer.py # Writes fixed file and runs pip install
155
+ ├── cli/
156
+ │ └── main.py # Terminal interface (analyze, fix, install)
157
+ ├── setup.py # Package configuration
158
+ └── requirements.txt # Reqfix's own dependencies
159
+ ```
160
+
161
+ ---
162
+
163
+ ## 📄 License
164
+
165
+ MIT — free to use, modify, and distribute.
166
+
167
+ ---
168
+
169
+ <p align="center">Built with ❤️ to save developers from dependency hell</p>
File without changes