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