depkeeper 0.1.0.dev1__tar.gz → 0.1.0.dev2__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.
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/PKG-INFO +86 -41
- depkeeper-0.1.0.dev2/README.md +167 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/__version__.py +1 -1
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper.egg-info/PKG-INFO +86 -41
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper.egg-info/requires.txt +9 -9
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/pyproject.toml +10 -10
- depkeeper-0.1.0.dev1/README.md +0 -122
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/LICENSE +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/__init__.py +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/__main__.py +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/cli.py +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/constants.py +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/context.py +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper/exceptions.py +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper.egg-info/SOURCES.txt +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper.egg-info/dependency_links.txt +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper.egg-info/entry_points.txt +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/depkeeper.egg-info/top_level.txt +0 -0
- {depkeeper-0.1.0.dev1 → depkeeper-0.1.0.dev2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: depkeeper
|
|
3
|
-
Version: 0.1.0.
|
|
3
|
+
Version: 0.1.0.dev2
|
|
4
4
|
Summary: Modern Python dependency management for requirements.txt files
|
|
5
5
|
Author: depkeeper Contributors
|
|
6
6
|
License: Apache-2.0
|
|
@@ -27,29 +27,29 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: click>=8.1.8
|
|
29
29
|
Requires-Dist: packaging>=23.2
|
|
30
|
-
Requires-Dist: httpx>=0.24.
|
|
30
|
+
Requires-Dist: httpx[http2]>=0.24.1
|
|
31
31
|
Requires-Dist: rich>=13.9.4
|
|
32
32
|
Provides-Extra: dev
|
|
33
|
-
Requires-Dist: pytest>=7.4.
|
|
33
|
+
Requires-Dist: pytest>=7.4.4; extra == "dev"
|
|
34
34
|
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
35
|
-
Requires-Dist: pytest-asyncio>=0.
|
|
36
|
-
Requires-Dist: pytest-mock>=3.
|
|
35
|
+
Requires-Dist: pytest-asyncio>=0.23.8; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
|
|
37
37
|
Requires-Dist: pytest-httpx>=0.22.0; extra == "dev"
|
|
38
|
-
Requires-Dist: mypy>=1.
|
|
38
|
+
Requires-Dist: mypy>=1.14.1; extra == "dev"
|
|
39
39
|
Requires-Dist: types-setuptools; extra == "dev"
|
|
40
|
-
Requires-Dist: pre-commit>=3.
|
|
40
|
+
Requires-Dist: pre-commit>=3.5.0; extra == "dev"
|
|
41
41
|
Provides-Extra: test
|
|
42
|
-
Requires-Dist: pytest>=7.4.
|
|
42
|
+
Requires-Dist: pytest>=7.4.4; extra == "test"
|
|
43
43
|
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
44
|
-
Requires-Dist: pytest-asyncio>=0.
|
|
45
|
-
Requires-Dist: pytest-mock>=3.
|
|
44
|
+
Requires-Dist: pytest-asyncio>=0.23.8; extra == "test"
|
|
45
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == "test"
|
|
46
46
|
Requires-Dist: pytest-httpx>=0.22.0; extra == "test"
|
|
47
47
|
Provides-Extra: docs
|
|
48
48
|
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
|
|
49
49
|
Requires-Dist: mkdocs-material>=9.7.1; extra == "docs"
|
|
50
50
|
Requires-Dist: mkdocstrings[python]>=0.26.1; extra == "docs"
|
|
51
51
|
|
|
52
|
-
# depkeeper
|
|
52
|
+
# depkeeper
|
|
53
53
|
|
|
54
54
|
[](https://github.com/rahulkaushal04/depkeeper/actions)
|
|
55
55
|
[](https://codecov.io/gh/rahulkaushal04/depkeeper)
|
|
@@ -58,26 +58,31 @@ Requires-Dist: mkdocstrings[python]>=0.26.1; extra == "docs"
|
|
|
58
58
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
59
59
|
|
|
60
60
|
Modern, intelligent Python dependency management for `requirements.txt` files.
|
|
61
|
-
Keep your dependencies up-to-date
|
|
61
|
+
Keep your dependencies up-to-date and conflict-free — without switching from pip.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
65
|
-
##
|
|
65
|
+
## Features
|
|
66
66
|
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
- **Smart Version Checking** — discover available package updates with intelligent recommendations
|
|
68
|
+
- **Dependency Conflict Resolution** — detect and resolve version conflicts automatically
|
|
69
|
+
- **Safe Updates** — never cross major version boundaries to prevent breaking changes
|
|
70
|
+
- **Fast & Concurrent** — async PyPI queries for maximum performance
|
|
71
|
+
- **Beautiful CLI** — rich terminal UI with colors & status indicators
|
|
72
|
+
- **Multiple Output Formats** — table, simple text, or JSON for CI/CD integration
|
|
73
|
+
- **Full Requirements Parsing** — PEP 440/508 compliant with support for `-r`, `-c`, VCS URLs, and more
|
|
74
|
+
- **Flexible** — works alongside pip, not instead of it
|
|
75
|
+
|
|
76
|
+
### Coming Soon
|
|
77
|
+
|
|
78
|
+
- **Security Scanning** — detect known vulnerabilities
|
|
79
|
+
- **Lock File Generation** — create reproducible environments
|
|
80
|
+
- **Health Scoring** — measure package quality & maintainability
|
|
81
|
+
- **Format Conversion** — import/export between `requirements.txt`, `pyproject.toml`, Pipfile, and more
|
|
77
82
|
|
|
78
83
|
---
|
|
79
84
|
|
|
80
|
-
##
|
|
85
|
+
## Quick Start
|
|
81
86
|
|
|
82
87
|
### Installation
|
|
83
88
|
|
|
@@ -91,28 +96,69 @@ pip install depkeeper
|
|
|
91
96
|
# Check for available updates
|
|
92
97
|
depkeeper check
|
|
93
98
|
|
|
94
|
-
#
|
|
99
|
+
# Check and show only outdated packages
|
|
100
|
+
depkeeper check --outdated-only
|
|
101
|
+
|
|
102
|
+
# Output as JSON (for CI/CD pipelines)
|
|
103
|
+
depkeeper check --format json
|
|
104
|
+
|
|
105
|
+
# Update all packages to safe versions (within major version)
|
|
95
106
|
depkeeper update
|
|
96
107
|
|
|
97
|
-
#
|
|
98
|
-
depkeeper
|
|
108
|
+
# Preview updates without applying
|
|
109
|
+
depkeeper update --dry-run
|
|
110
|
+
|
|
111
|
+
# Update specific packages only
|
|
112
|
+
depkeeper update -p flask -p requests
|
|
113
|
+
|
|
114
|
+
# Create backup before updating and skip confirmation
|
|
115
|
+
depkeeper update --backup -y
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Commands
|
|
121
|
+
|
|
122
|
+
### `depkeeper check`
|
|
99
123
|
|
|
100
|
-
|
|
101
|
-
depkeeper lock
|
|
124
|
+
Analyze your `requirements.txt` file to identify packages with available updates.
|
|
102
125
|
|
|
103
|
-
|
|
104
|
-
depkeeper
|
|
126
|
+
```bash
|
|
127
|
+
depkeeper check [FILE] [OPTIONS]
|
|
128
|
+
|
|
129
|
+
Options:
|
|
130
|
+
--outdated-only Show only packages with available updates
|
|
131
|
+
-f, --format [table|simple|json]
|
|
132
|
+
Output format (default: table)
|
|
133
|
+
--strict-version-matching Only use exact version pins
|
|
134
|
+
--check-conflicts Check for dependency conflicts (default: enabled)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### `depkeeper update`
|
|
138
|
+
|
|
139
|
+
Update packages to their safe recommended versions (within major version boundaries).
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
depkeeper update [FILE] [OPTIONS]
|
|
143
|
+
|
|
144
|
+
Options:
|
|
145
|
+
--dry-run Preview changes without applying
|
|
146
|
+
-y, --yes Skip confirmation prompt
|
|
147
|
+
--backup Create backup file before updating
|
|
148
|
+
-p, --packages TEXT Update only specific packages (repeatable)
|
|
149
|
+
--strict-version-matching Only use exact version pins
|
|
150
|
+
--check-conflicts Check for conflicts (default: enabled)
|
|
105
151
|
```
|
|
106
152
|
|
|
107
153
|
---
|
|
108
154
|
|
|
109
|
-
##
|
|
155
|
+
## Documentation
|
|
110
156
|
|
|
111
157
|
Full documentation will be available soon at **[https://docs.depkeeper.dev](https://docs.depkeeper.dev)**
|
|
112
158
|
|
|
113
159
|
---
|
|
114
160
|
|
|
115
|
-
##
|
|
161
|
+
## Why depkeeper?
|
|
116
162
|
|
|
117
163
|
Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophistication:
|
|
118
164
|
|
|
@@ -121,12 +167,13 @@ Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophisticati
|
|
|
121
167
|
| simple | powerful | simple + powerful |
|
|
122
168
|
| minimal tooling | strict workflow | flexible workflow |
|
|
123
169
|
| limited dependency checking | strong resolver | strong resolver + update automation |
|
|
170
|
+
| no conflict detection | automatic | automatic with safe boundaries |
|
|
124
171
|
|
|
125
172
|
**Focus on code — let depkeeper handle dependency hygiene.**
|
|
126
173
|
|
|
127
174
|
---
|
|
128
175
|
|
|
129
|
-
##
|
|
176
|
+
## Contributing
|
|
130
177
|
|
|
131
178
|
We welcome contributions of all kinds!
|
|
132
179
|
Please see our **[Contributing Guide](CONTRIBUTING.md)** for details.
|
|
@@ -150,24 +197,22 @@ pre-commit install
|
|
|
150
197
|
|
|
151
198
|
---
|
|
152
199
|
|
|
153
|
-
##
|
|
200
|
+
## License
|
|
154
201
|
|
|
155
202
|
This project is licensed under the **Apache-2.0 License** — see the [LICENSE](LICENSE) file for details.
|
|
156
203
|
|
|
157
204
|
---
|
|
158
205
|
|
|
159
|
-
##
|
|
206
|
+
## Acknowledgments
|
|
160
207
|
|
|
161
208
|
- Built with amazing libraries like **Click**, **Rich**, and **httpx**
|
|
162
209
|
- Inspired by tools such as **pip-tools**, **Poetry**, and **Dependabot**
|
|
163
210
|
|
|
164
211
|
---
|
|
165
212
|
|
|
166
|
-
##
|
|
213
|
+
## Support
|
|
167
214
|
|
|
168
|
-
-
|
|
169
|
-
-
|
|
215
|
+
- GitHub Discussions: [https://github.com/rahulkaushal04/depkeeper/discussions](https://github.com/rahulkaushal04/depkeeper/discussions)
|
|
216
|
+
- Issues: [https://github.com/rahulkaushal04/depkeeper/issues](https://github.com/rahulkaushal04/depkeeper/issues)
|
|
170
217
|
|
|
171
218
|
---
|
|
172
|
-
|
|
173
|
-
**Made with ❤️ by the depkeeper team**
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
# depkeeper
|
|
2
|
+
|
|
3
|
+
[](https://github.com/rahulkaushal04/depkeeper/actions)
|
|
4
|
+
[](https://codecov.io/gh/rahulkaushal04/depkeeper)
|
|
5
|
+
[](https://badge.fury.io/py/depkeeper)
|
|
6
|
+
[](https://pypi.org/project/depkeeper/)
|
|
7
|
+
[](https://opensource.org/licenses/Apache-2.0)
|
|
8
|
+
|
|
9
|
+
Modern, intelligent Python dependency management for `requirements.txt` files.
|
|
10
|
+
Keep your dependencies up-to-date and conflict-free — without switching from pip.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Features
|
|
15
|
+
|
|
16
|
+
- **Smart Version Checking** — discover available package updates with intelligent recommendations
|
|
17
|
+
- **Dependency Conflict Resolution** — detect and resolve version conflicts automatically
|
|
18
|
+
- **Safe Updates** — never cross major version boundaries to prevent breaking changes
|
|
19
|
+
- **Fast & Concurrent** — async PyPI queries for maximum performance
|
|
20
|
+
- **Beautiful CLI** — rich terminal UI with colors & status indicators
|
|
21
|
+
- **Multiple Output Formats** — table, simple text, or JSON for CI/CD integration
|
|
22
|
+
- **Full Requirements Parsing** — PEP 440/508 compliant with support for `-r`, `-c`, VCS URLs, and more
|
|
23
|
+
- **Flexible** — works alongside pip, not instead of it
|
|
24
|
+
|
|
25
|
+
### Coming Soon
|
|
26
|
+
|
|
27
|
+
- **Security Scanning** — detect known vulnerabilities
|
|
28
|
+
- **Lock File Generation** — create reproducible environments
|
|
29
|
+
- **Health Scoring** — measure package quality & maintainability
|
|
30
|
+
- **Format Conversion** — import/export between `requirements.txt`, `pyproject.toml`, Pipfile, and more
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Quick Start
|
|
35
|
+
|
|
36
|
+
### Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install depkeeper
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Basic Usage
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# Check for available updates
|
|
46
|
+
depkeeper check
|
|
47
|
+
|
|
48
|
+
# Check and show only outdated packages
|
|
49
|
+
depkeeper check --outdated-only
|
|
50
|
+
|
|
51
|
+
# Output as JSON (for CI/CD pipelines)
|
|
52
|
+
depkeeper check --format json
|
|
53
|
+
|
|
54
|
+
# Update all packages to safe versions (within major version)
|
|
55
|
+
depkeeper update
|
|
56
|
+
|
|
57
|
+
# Preview updates without applying
|
|
58
|
+
depkeeper update --dry-run
|
|
59
|
+
|
|
60
|
+
# Update specific packages only
|
|
61
|
+
depkeeper update -p flask -p requests
|
|
62
|
+
|
|
63
|
+
# Create backup before updating and skip confirmation
|
|
64
|
+
depkeeper update --backup -y
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Commands
|
|
70
|
+
|
|
71
|
+
### `depkeeper check`
|
|
72
|
+
|
|
73
|
+
Analyze your `requirements.txt` file to identify packages with available updates.
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
depkeeper check [FILE] [OPTIONS]
|
|
77
|
+
|
|
78
|
+
Options:
|
|
79
|
+
--outdated-only Show only packages with available updates
|
|
80
|
+
-f, --format [table|simple|json]
|
|
81
|
+
Output format (default: table)
|
|
82
|
+
--strict-version-matching Only use exact version pins
|
|
83
|
+
--check-conflicts Check for dependency conflicts (default: enabled)
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### `depkeeper update`
|
|
87
|
+
|
|
88
|
+
Update packages to their safe recommended versions (within major version boundaries).
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
depkeeper update [FILE] [OPTIONS]
|
|
92
|
+
|
|
93
|
+
Options:
|
|
94
|
+
--dry-run Preview changes without applying
|
|
95
|
+
-y, --yes Skip confirmation prompt
|
|
96
|
+
--backup Create backup file before updating
|
|
97
|
+
-p, --packages TEXT Update only specific packages (repeatable)
|
|
98
|
+
--strict-version-matching Only use exact version pins
|
|
99
|
+
--check-conflicts Check for conflicts (default: enabled)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Documentation
|
|
105
|
+
|
|
106
|
+
Full documentation will be available soon at **[https://docs.depkeeper.dev](https://docs.depkeeper.dev)**
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Why depkeeper?
|
|
111
|
+
|
|
112
|
+
Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophistication:
|
|
113
|
+
|
|
114
|
+
| pip | poetry | depkeeper |
|
|
115
|
+
| --------------------------- | --------------- | ----------------------------------- |
|
|
116
|
+
| simple | powerful | simple + powerful |
|
|
117
|
+
| minimal tooling | strict workflow | flexible workflow |
|
|
118
|
+
| limited dependency checking | strong resolver | strong resolver + update automation |
|
|
119
|
+
| no conflict detection | automatic | automatic with safe boundaries |
|
|
120
|
+
|
|
121
|
+
**Focus on code — let depkeeper handle dependency hygiene.**
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Contributing
|
|
126
|
+
|
|
127
|
+
We welcome contributions of all kinds!
|
|
128
|
+
Please see our **[Contributing Guide](CONTRIBUTING.md)** for details.
|
|
129
|
+
|
|
130
|
+
### Development Setup
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
# Clone the repository
|
|
134
|
+
git clone https://github.com/rahulkaushal04/depkeeper.git
|
|
135
|
+
cd depkeeper
|
|
136
|
+
|
|
137
|
+
# Run setup script
|
|
138
|
+
bash scripts/setup_dev.sh
|
|
139
|
+
|
|
140
|
+
# Or manually:
|
|
141
|
+
python -m venv venv
|
|
142
|
+
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
143
|
+
pip install -e ".[dev]"
|
|
144
|
+
pre-commit install
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## License
|
|
150
|
+
|
|
151
|
+
This project is licensed under the **Apache-2.0 License** — see the [LICENSE](LICENSE) file for details.
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Acknowledgments
|
|
156
|
+
|
|
157
|
+
- Built with amazing libraries like **Click**, **Rich**, and **httpx**
|
|
158
|
+
- Inspired by tools such as **pip-tools**, **Poetry**, and **Dependabot**
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Support
|
|
163
|
+
|
|
164
|
+
- GitHub Discussions: [https://github.com/rahulkaushal04/depkeeper/discussions](https://github.com/rahulkaushal04/depkeeper/discussions)
|
|
165
|
+
- Issues: [https://github.com/rahulkaushal04/depkeeper/issues](https://github.com/rahulkaushal04/depkeeper/issues)
|
|
166
|
+
|
|
167
|
+
---
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: depkeeper
|
|
3
|
-
Version: 0.1.0.
|
|
3
|
+
Version: 0.1.0.dev2
|
|
4
4
|
Summary: Modern Python dependency management for requirements.txt files
|
|
5
5
|
Author: depkeeper Contributors
|
|
6
6
|
License: Apache-2.0
|
|
@@ -27,29 +27,29 @@ Description-Content-Type: text/markdown
|
|
|
27
27
|
License-File: LICENSE
|
|
28
28
|
Requires-Dist: click>=8.1.8
|
|
29
29
|
Requires-Dist: packaging>=23.2
|
|
30
|
-
Requires-Dist: httpx>=0.24.
|
|
30
|
+
Requires-Dist: httpx[http2]>=0.24.1
|
|
31
31
|
Requires-Dist: rich>=13.9.4
|
|
32
32
|
Provides-Extra: dev
|
|
33
|
-
Requires-Dist: pytest>=7.4.
|
|
33
|
+
Requires-Dist: pytest>=7.4.4; extra == "dev"
|
|
34
34
|
Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
35
|
-
Requires-Dist: pytest-asyncio>=0.
|
|
36
|
-
Requires-Dist: pytest-mock>=3.
|
|
35
|
+
Requires-Dist: pytest-asyncio>=0.23.8; extra == "dev"
|
|
36
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == "dev"
|
|
37
37
|
Requires-Dist: pytest-httpx>=0.22.0; extra == "dev"
|
|
38
|
-
Requires-Dist: mypy>=1.
|
|
38
|
+
Requires-Dist: mypy>=1.14.1; extra == "dev"
|
|
39
39
|
Requires-Dist: types-setuptools; extra == "dev"
|
|
40
|
-
Requires-Dist: pre-commit>=3.
|
|
40
|
+
Requires-Dist: pre-commit>=3.5.0; extra == "dev"
|
|
41
41
|
Provides-Extra: test
|
|
42
|
-
Requires-Dist: pytest>=7.4.
|
|
42
|
+
Requires-Dist: pytest>=7.4.4; extra == "test"
|
|
43
43
|
Requires-Dist: pytest-cov>=4.1.0; extra == "test"
|
|
44
|
-
Requires-Dist: pytest-asyncio>=0.
|
|
45
|
-
Requires-Dist: pytest-mock>=3.
|
|
44
|
+
Requires-Dist: pytest-asyncio>=0.23.8; extra == "test"
|
|
45
|
+
Requires-Dist: pytest-mock>=3.14.1; extra == "test"
|
|
46
46
|
Requires-Dist: pytest-httpx>=0.22.0; extra == "test"
|
|
47
47
|
Provides-Extra: docs
|
|
48
48
|
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
|
|
49
49
|
Requires-Dist: mkdocs-material>=9.7.1; extra == "docs"
|
|
50
50
|
Requires-Dist: mkdocstrings[python]>=0.26.1; extra == "docs"
|
|
51
51
|
|
|
52
|
-
# depkeeper
|
|
52
|
+
# depkeeper
|
|
53
53
|
|
|
54
54
|
[](https://github.com/rahulkaushal04/depkeeper/actions)
|
|
55
55
|
[](https://codecov.io/gh/rahulkaushal04/depkeeper)
|
|
@@ -58,26 +58,31 @@ Requires-Dist: mkdocstrings[python]>=0.26.1; extra == "docs"
|
|
|
58
58
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
59
59
|
|
|
60
60
|
Modern, intelligent Python dependency management for `requirements.txt` files.
|
|
61
|
-
Keep your dependencies up-to-date
|
|
61
|
+
Keep your dependencies up-to-date and conflict-free — without switching from pip.
|
|
62
62
|
|
|
63
63
|
---
|
|
64
64
|
|
|
65
|
-
##
|
|
65
|
+
## Features
|
|
66
66
|
|
|
67
|
-
-
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
67
|
+
- **Smart Version Checking** — discover available package updates with intelligent recommendations
|
|
68
|
+
- **Dependency Conflict Resolution** — detect and resolve version conflicts automatically
|
|
69
|
+
- **Safe Updates** — never cross major version boundaries to prevent breaking changes
|
|
70
|
+
- **Fast & Concurrent** — async PyPI queries for maximum performance
|
|
71
|
+
- **Beautiful CLI** — rich terminal UI with colors & status indicators
|
|
72
|
+
- **Multiple Output Formats** — table, simple text, or JSON for CI/CD integration
|
|
73
|
+
- **Full Requirements Parsing** — PEP 440/508 compliant with support for `-r`, `-c`, VCS URLs, and more
|
|
74
|
+
- **Flexible** — works alongside pip, not instead of it
|
|
75
|
+
|
|
76
|
+
### Coming Soon
|
|
77
|
+
|
|
78
|
+
- **Security Scanning** — detect known vulnerabilities
|
|
79
|
+
- **Lock File Generation** — create reproducible environments
|
|
80
|
+
- **Health Scoring** — measure package quality & maintainability
|
|
81
|
+
- **Format Conversion** — import/export between `requirements.txt`, `pyproject.toml`, Pipfile, and more
|
|
77
82
|
|
|
78
83
|
---
|
|
79
84
|
|
|
80
|
-
##
|
|
85
|
+
## Quick Start
|
|
81
86
|
|
|
82
87
|
### Installation
|
|
83
88
|
|
|
@@ -91,28 +96,69 @@ pip install depkeeper
|
|
|
91
96
|
# Check for available updates
|
|
92
97
|
depkeeper check
|
|
93
98
|
|
|
94
|
-
#
|
|
99
|
+
# Check and show only outdated packages
|
|
100
|
+
depkeeper check --outdated-only
|
|
101
|
+
|
|
102
|
+
# Output as JSON (for CI/CD pipelines)
|
|
103
|
+
depkeeper check --format json
|
|
104
|
+
|
|
105
|
+
# Update all packages to safe versions (within major version)
|
|
95
106
|
depkeeper update
|
|
96
107
|
|
|
97
|
-
#
|
|
98
|
-
depkeeper
|
|
108
|
+
# Preview updates without applying
|
|
109
|
+
depkeeper update --dry-run
|
|
110
|
+
|
|
111
|
+
# Update specific packages only
|
|
112
|
+
depkeeper update -p flask -p requests
|
|
113
|
+
|
|
114
|
+
# Create backup before updating and skip confirmation
|
|
115
|
+
depkeeper update --backup -y
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Commands
|
|
121
|
+
|
|
122
|
+
### `depkeeper check`
|
|
99
123
|
|
|
100
|
-
|
|
101
|
-
depkeeper lock
|
|
124
|
+
Analyze your `requirements.txt` file to identify packages with available updates.
|
|
102
125
|
|
|
103
|
-
|
|
104
|
-
depkeeper
|
|
126
|
+
```bash
|
|
127
|
+
depkeeper check [FILE] [OPTIONS]
|
|
128
|
+
|
|
129
|
+
Options:
|
|
130
|
+
--outdated-only Show only packages with available updates
|
|
131
|
+
-f, --format [table|simple|json]
|
|
132
|
+
Output format (default: table)
|
|
133
|
+
--strict-version-matching Only use exact version pins
|
|
134
|
+
--check-conflicts Check for dependency conflicts (default: enabled)
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### `depkeeper update`
|
|
138
|
+
|
|
139
|
+
Update packages to their safe recommended versions (within major version boundaries).
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
depkeeper update [FILE] [OPTIONS]
|
|
143
|
+
|
|
144
|
+
Options:
|
|
145
|
+
--dry-run Preview changes without applying
|
|
146
|
+
-y, --yes Skip confirmation prompt
|
|
147
|
+
--backup Create backup file before updating
|
|
148
|
+
-p, --packages TEXT Update only specific packages (repeatable)
|
|
149
|
+
--strict-version-matching Only use exact version pins
|
|
150
|
+
--check-conflicts Check for conflicts (default: enabled)
|
|
105
151
|
```
|
|
106
152
|
|
|
107
153
|
---
|
|
108
154
|
|
|
109
|
-
##
|
|
155
|
+
## Documentation
|
|
110
156
|
|
|
111
157
|
Full documentation will be available soon at **[https://docs.depkeeper.dev](https://docs.depkeeper.dev)**
|
|
112
158
|
|
|
113
159
|
---
|
|
114
160
|
|
|
115
|
-
##
|
|
161
|
+
## Why depkeeper?
|
|
116
162
|
|
|
117
163
|
Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophistication:
|
|
118
164
|
|
|
@@ -121,12 +167,13 @@ Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophisticati
|
|
|
121
167
|
| simple | powerful | simple + powerful |
|
|
122
168
|
| minimal tooling | strict workflow | flexible workflow |
|
|
123
169
|
| limited dependency checking | strong resolver | strong resolver + update automation |
|
|
170
|
+
| no conflict detection | automatic | automatic with safe boundaries |
|
|
124
171
|
|
|
125
172
|
**Focus on code — let depkeeper handle dependency hygiene.**
|
|
126
173
|
|
|
127
174
|
---
|
|
128
175
|
|
|
129
|
-
##
|
|
176
|
+
## Contributing
|
|
130
177
|
|
|
131
178
|
We welcome contributions of all kinds!
|
|
132
179
|
Please see our **[Contributing Guide](CONTRIBUTING.md)** for details.
|
|
@@ -150,24 +197,22 @@ pre-commit install
|
|
|
150
197
|
|
|
151
198
|
---
|
|
152
199
|
|
|
153
|
-
##
|
|
200
|
+
## License
|
|
154
201
|
|
|
155
202
|
This project is licensed under the **Apache-2.0 License** — see the [LICENSE](LICENSE) file for details.
|
|
156
203
|
|
|
157
204
|
---
|
|
158
205
|
|
|
159
|
-
##
|
|
206
|
+
## Acknowledgments
|
|
160
207
|
|
|
161
208
|
- Built with amazing libraries like **Click**, **Rich**, and **httpx**
|
|
162
209
|
- Inspired by tools such as **pip-tools**, **Poetry**, and **Dependabot**
|
|
163
210
|
|
|
164
211
|
---
|
|
165
212
|
|
|
166
|
-
##
|
|
213
|
+
## Support
|
|
167
214
|
|
|
168
|
-
-
|
|
169
|
-
-
|
|
215
|
+
- GitHub Discussions: [https://github.com/rahulkaushal04/depkeeper/discussions](https://github.com/rahulkaushal04/depkeeper/discussions)
|
|
216
|
+
- Issues: [https://github.com/rahulkaushal04/depkeeper/issues](https://github.com/rahulkaushal04/depkeeper/issues)
|
|
170
217
|
|
|
171
218
|
---
|
|
172
|
-
|
|
173
|
-
**Made with ❤️ by the depkeeper team**
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
click>=8.1.8
|
|
2
2
|
packaging>=23.2
|
|
3
|
-
httpx>=0.24.
|
|
3
|
+
httpx[http2]>=0.24.1
|
|
4
4
|
rich>=13.9.4
|
|
5
5
|
|
|
6
6
|
[dev]
|
|
7
|
-
pytest>=7.4.
|
|
7
|
+
pytest>=7.4.4
|
|
8
8
|
pytest-cov>=4.1.0
|
|
9
|
-
pytest-asyncio>=0.
|
|
10
|
-
pytest-mock>=3.
|
|
9
|
+
pytest-asyncio>=0.23.8
|
|
10
|
+
pytest-mock>=3.14.1
|
|
11
11
|
pytest-httpx>=0.22.0
|
|
12
|
-
mypy>=1.
|
|
12
|
+
mypy>=1.14.1
|
|
13
13
|
types-setuptools
|
|
14
|
-
pre-commit>=3.
|
|
14
|
+
pre-commit>=3.5.0
|
|
15
15
|
|
|
16
16
|
[docs]
|
|
17
17
|
mkdocs>=1.6.1
|
|
@@ -19,8 +19,8 @@ mkdocs-material>=9.7.1
|
|
|
19
19
|
mkdocstrings[python]>=0.26.1
|
|
20
20
|
|
|
21
21
|
[test]
|
|
22
|
-
pytest>=7.4.
|
|
22
|
+
pytest>=7.4.4
|
|
23
23
|
pytest-cov>=4.1.0
|
|
24
|
-
pytest-asyncio>=0.
|
|
25
|
-
pytest-mock>=3.
|
|
24
|
+
pytest-asyncio>=0.23.8
|
|
25
|
+
pytest-mock>=3.14.1
|
|
26
26
|
pytest-httpx>=0.22.0
|
|
@@ -13,7 +13,7 @@ build-backend = "setuptools.build_meta"
|
|
|
13
13
|
|
|
14
14
|
[project]
|
|
15
15
|
name = "depkeeper"
|
|
16
|
-
version = "0.1.0.
|
|
16
|
+
version = "0.1.0.dev2"
|
|
17
17
|
description = "Modern Python dependency management for requirements.txt files"
|
|
18
18
|
readme = "README.md"
|
|
19
19
|
requires-python = ">=3.8"
|
|
@@ -51,7 +51,7 @@ classifiers = [
|
|
|
51
51
|
dependencies = [
|
|
52
52
|
"click>=8.1.8",
|
|
53
53
|
"packaging>=23.2",
|
|
54
|
-
"httpx>=0.24.
|
|
54
|
+
"httpx[http2]>=0.24.1",
|
|
55
55
|
"rich>=13.9.4",
|
|
56
56
|
]
|
|
57
57
|
|
|
@@ -63,20 +63,20 @@ dependencies = [
|
|
|
63
63
|
[project.optional-dependencies]
|
|
64
64
|
|
|
65
65
|
dev = [
|
|
66
|
-
"pytest>=7.4.
|
|
66
|
+
"pytest>=7.4.4",
|
|
67
67
|
"pytest-cov>=4.1.0",
|
|
68
|
-
"pytest-asyncio>=0.
|
|
69
|
-
"pytest-mock>=3.
|
|
68
|
+
"pytest-asyncio>=0.23.8",
|
|
69
|
+
"pytest-mock>=3.14.1",
|
|
70
70
|
"pytest-httpx>=0.22.0",
|
|
71
|
-
"mypy>=1.
|
|
71
|
+
"mypy>=1.14.1",
|
|
72
72
|
"types-setuptools",
|
|
73
|
-
"pre-commit>=3.
|
|
73
|
+
"pre-commit>=3.5.0",
|
|
74
74
|
]
|
|
75
75
|
test = [
|
|
76
|
-
"pytest>=7.4.
|
|
76
|
+
"pytest>=7.4.4",
|
|
77
77
|
"pytest-cov>=4.1.0",
|
|
78
|
-
"pytest-asyncio>=0.
|
|
79
|
-
"pytest-mock>=3.
|
|
78
|
+
"pytest-asyncio>=0.23.8",
|
|
79
|
+
"pytest-mock>=3.14.1",
|
|
80
80
|
"pytest-httpx>=0.22.0",
|
|
81
81
|
]
|
|
82
82
|
docs = [
|
depkeeper-0.1.0.dev1/README.md
DELETED
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# depkeeper 🛡️🐍
|
|
2
|
-
|
|
3
|
-
[](https://github.com/rahulkaushal04/depkeeper/actions)
|
|
4
|
-
[](https://codecov.io/gh/rahulkaushal04/depkeeper)
|
|
5
|
-
[](https://badge.fury.io/py/depkeeper)
|
|
6
|
-
[](https://pypi.org/project/depkeeper/)
|
|
7
|
-
[](https://opensource.org/licenses/Apache-2.0)
|
|
8
|
-
|
|
9
|
-
Modern, intelligent Python dependency management for `requirements.txt` files.
|
|
10
|
-
Keep your dependencies up-to-date, secure, and conflict-free — without switching from pip.
|
|
11
|
-
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## ✨ Features
|
|
15
|
-
|
|
16
|
-
- 🔍 **Smart Version Checking** — discover available package updates automatically
|
|
17
|
-
- 🛡️ **Security Scanning** — detect known vulnerabilities via advisories
|
|
18
|
-
- 🔒 **Lock File Generation** — create reproducible environments
|
|
19
|
-
- 📊 **Health Scoring** — measure package quality & maintainability
|
|
20
|
-
- 🧠 **Dependency Resolution** — detect and resolve version conflicts
|
|
21
|
-
- 🎯 **Update Strategies** — conservative, moderate, or aggressive upgrade modes
|
|
22
|
-
- 🔄 **Format Conversion** — import/export: `requirements.txt`, `pyproject.toml`, Pipfile, Poetry, Conda
|
|
23
|
-
- ⚡ **Fast & Concurrent** — async operations for maximum performance
|
|
24
|
-
- 🎨 **Beautiful CLI** — rich terminal UI with progress bars & status indicators
|
|
25
|
-
- 🤝 **Flexible** — works with pip instead of replacing it
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## 🚀 Quick Start
|
|
30
|
-
|
|
31
|
-
### Installation
|
|
32
|
-
|
|
33
|
-
```bash
|
|
34
|
-
pip install depkeeper
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
### Basic Usage
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
# Check for available updates
|
|
41
|
-
depkeeper check
|
|
42
|
-
|
|
43
|
-
# Update dependencies (safe, patch-level updates by default)
|
|
44
|
-
depkeeper update
|
|
45
|
-
|
|
46
|
-
# Run security audit
|
|
47
|
-
depkeeper audit
|
|
48
|
-
|
|
49
|
-
# Generate lock file
|
|
50
|
-
depkeeper lock
|
|
51
|
-
|
|
52
|
-
# Show dependency tree
|
|
53
|
-
depkeeper tree
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## 📚 Documentation
|
|
59
|
-
|
|
60
|
-
Full documentation will be available soon at **[https://docs.depkeeper.dev](https://docs.depkeeper.dev)**
|
|
61
|
-
|
|
62
|
-
---
|
|
63
|
-
|
|
64
|
-
## 💡 Why depkeeper?
|
|
65
|
-
|
|
66
|
-
Depkeeper bridges the gap between pip’s simplicity and Poetry’s sophistication:
|
|
67
|
-
|
|
68
|
-
| pip | poetry | depkeeper |
|
|
69
|
-
| --------------------------- | --------------- | ----------------------------------- |
|
|
70
|
-
| simple | powerful | simple + powerful |
|
|
71
|
-
| minimal tooling | strict workflow | flexible workflow |
|
|
72
|
-
| limited dependency checking | strong resolver | strong resolver + update automation |
|
|
73
|
-
|
|
74
|
-
**Focus on code — let depkeeper handle dependency hygiene.**
|
|
75
|
-
|
|
76
|
-
---
|
|
77
|
-
|
|
78
|
-
## 🤝 Contributing
|
|
79
|
-
|
|
80
|
-
We welcome contributions of all kinds!
|
|
81
|
-
Please see our **[Contributing Guide](CONTRIBUTING.md)** for details.
|
|
82
|
-
|
|
83
|
-
### Development Setup
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
# Clone the repository
|
|
87
|
-
git clone https://github.com/rahulkaushal04/depkeeper.git
|
|
88
|
-
cd depkeeper
|
|
89
|
-
|
|
90
|
-
# Run setup script
|
|
91
|
-
bash scripts/setup_dev.sh
|
|
92
|
-
|
|
93
|
-
# Or manually:
|
|
94
|
-
python -m venv venv
|
|
95
|
-
source venv/bin/activate # Windows: venv\Scripts\activate
|
|
96
|
-
pip install -e ".[dev]"
|
|
97
|
-
pre-commit install
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## 📄 License
|
|
103
|
-
|
|
104
|
-
This project is licensed under the **Apache-2.0 License** — see the [LICENSE](LICENSE) file for details.
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## 🙌 Acknowledgments
|
|
109
|
-
|
|
110
|
-
- Built with amazing libraries like **Click**, **Rich**, and **httpx**
|
|
111
|
-
- Inspired by tools such as **pip-tools**, **Poetry**, and **Dependabot**
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## ❤️ Support
|
|
116
|
-
|
|
117
|
-
- 💬 GitHub Discussions: [https://github.com/rahulkaushal04/depkeeper/discussions](https://github.com/rahulkaushal04/depkeeper/discussions)
|
|
118
|
-
- 🐞 Issues: [https://github.com/rahulkaushal04/depkeeper/issues](https://github.com/rahulkaushal04/depkeeper/issues)
|
|
119
|
-
|
|
120
|
-
---
|
|
121
|
-
|
|
122
|
-
**Made with ❤️ by the depkeeper team**
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|