You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
An intelligent, feature-rich CLI tool to manage and upgrade Python packages with a clean, modern interface and a powerful dependency safety-check.
7
+
5
8
6
-
An intelligent, feature-rich CLI tool to manage and upgrade Python packages with a clean, modern interface.
7
9
8
10
## Key Features
9
11
10
-
-**Interactive & Beautiful UI**: Uses Rich to display outdated packages in a clean, readable table.
11
-
-**Blazing Fast**: Upgrades packages with a clear progress bar.
12
+
-**Intelligent Dependency Analysis**: Automatically performs a pre-flight check to detect and warn you about potential dependency conflicts *before* you upgrade, preventing broken environments.
13
+
-**Concurrent & Fast**: Upgrades packages in parallel using multiple workers, dramatically reducing the time you spend waiting.
14
+
-**Rich & Interactive UI**: Uses `rich` to display outdated packages in a clean, readable table with clear progress bars.
12
15
-**Selective Upgrades**: Upgrade all packages, or specify exactly which ones to include or exclude.
13
-
-**Safety First**: Includes a `--dry-run` mode to see what would be upgraded without making changes.
16
+
-**Safety First**: Includes a `--dry-run` mode to see what would be upgraded without making any changes.
14
17
-**Automation Friendly**: A `--yes` flag allows for use in automated scripts.
15
18
16
19
## Installation
17
20
18
-
The tool is now available on PyPI. Install it with pip:
21
+
The tool is available on PyPI. Install it with pip:
19
22
20
23
```bash
21
24
pip install ultimate-python-upgrader
22
-
```
25
+
````
23
26
24
27
## Usage
25
28
26
29
Once installed, the `py-upgrade`command will be available.
27
30
28
31
**1. Check and upgrade all packages interactively**
32
+
The tool will first check for dependency conflicts before asking to proceed.
33
+
29
34
```bash
30
35
py-upgrade
31
36
```
32
37
33
-
**2. Upgrade all packages without confirmation**
38
+
**2. Upgrade with more parallel workers**
39
+
34
40
```bash
35
-
py-upgrade --yes
41
+
py-upgrade --yes --workers 20
36
42
```
37
43
38
44
**3. Perform a dry run to see what needs upgrading**
45
+
39
46
```bash
40
47
py-upgrade --dry-run
41
48
```
42
49
43
50
**4. Upgrade only specific packages**
51
+
44
52
```bash
45
53
py-upgrade numpy pandas
46
54
```
47
55
48
56
**5. Upgrade all packages EXCEPT certain ones**
57
+
49
58
```bash
50
59
py-upgrade --exclude black ruff
51
60
```
52
61
53
62
## Contributing
54
63
55
-
Contributions are welcome! Please feel free to submit a pull request.
64
+
Contributions are welcome\! Please feel free to submit a pull request.
# Find the specific dependency conflict block in pip's output
48
+
conflict_match=re.search(
49
+
r"ERROR: pip's dependency resolver does not currently take into account all the packages that are installed\. This behaviour is the source of the following dependency conflicts\.(.+)",
0 commit comments