pipu-cli 0.1.dev0__py3-none-any.whl → 0.1.dev2__py3-none-any.whl
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.
- pipu_cli/__init__.py +1 -1
- pipu_cli/internals.py +26 -3
- pipu_cli/package_constraints.py +15 -2
- {pipu_cli-0.1.dev0.dist-info → pipu_cli-0.1.dev2.dist-info}/METADATA +1 -1
- {pipu_cli-0.1.dev0.dist-info → pipu_cli-0.1.dev2.dist-info}/RECORD +9 -9
- {pipu_cli-0.1.dev0.dist-info → pipu_cli-0.1.dev2.dist-info}/WHEEL +0 -0
- {pipu_cli-0.1.dev0.dist-info → pipu_cli-0.1.dev2.dist-info}/entry_points.txt +0 -0
- {pipu_cli-0.1.dev0.dist-info → pipu_cli-0.1.dev2.dist-info}/licenses/LICENSE +0 -0
- {pipu_cli-0.1.dev0.dist-info → pipu_cli-0.1.dev2.dist-info}/top_level.txt +0 -0
pipu_cli/__init__.py
CHANGED
pipu_cli/internals.py
CHANGED
|
@@ -210,9 +210,16 @@ def list_outdated(
|
|
|
210
210
|
extra_index_urls = []
|
|
211
211
|
extra_index_urls = extra_index_urls or []
|
|
212
212
|
|
|
213
|
-
#
|
|
213
|
+
# Parse extra_index_urls - pip config returns multi-line values as a single string
|
|
214
214
|
if isinstance(extra_index_urls, str):
|
|
215
|
-
|
|
215
|
+
# Split by newlines and clean up each URL (remove comments and whitespace)
|
|
216
|
+
extra_index_urls = [
|
|
217
|
+
url.strip()
|
|
218
|
+
for url in extra_index_urls.split('\n')
|
|
219
|
+
if url.strip() and not url.strip().startswith('#')
|
|
220
|
+
]
|
|
221
|
+
elif not isinstance(extra_index_urls, list):
|
|
222
|
+
extra_index_urls = []
|
|
216
223
|
|
|
217
224
|
# Combine all index URLs
|
|
218
225
|
all_index_urls = [index_url] + extra_index_urls
|
|
@@ -223,14 +230,30 @@ def list_outdated(
|
|
|
223
230
|
except Exception:
|
|
224
231
|
trusted_hosts = []
|
|
225
232
|
trusted_hosts = trusted_hosts or []
|
|
233
|
+
|
|
234
|
+
# Parse trusted_hosts - pip config returns multi-line values as a single string
|
|
226
235
|
if isinstance(trusted_hosts, str):
|
|
227
|
-
|
|
236
|
+
# Split by newlines and clean up each host (remove comments and whitespace)
|
|
237
|
+
trusted_hosts = [
|
|
238
|
+
host.strip()
|
|
239
|
+
for host in trusted_hosts.split('\n')
|
|
240
|
+
if host.strip() and not host.strip().startswith('#')
|
|
241
|
+
]
|
|
242
|
+
elif not isinstance(trusted_hosts, list):
|
|
243
|
+
trusted_hosts = []
|
|
228
244
|
|
|
229
245
|
# Set up pip session and package finder to check for updates
|
|
230
246
|
try:
|
|
231
247
|
session = PipSession()
|
|
232
248
|
# Set timeout on the session
|
|
233
249
|
session.timeout = timeout
|
|
250
|
+
|
|
251
|
+
# Add trusted hosts to the session
|
|
252
|
+
for host in trusted_hosts:
|
|
253
|
+
# Strip whitespace and skip empty strings
|
|
254
|
+
host = host.strip()
|
|
255
|
+
if host:
|
|
256
|
+
session.add_trusted_host(host, source="pip configuration")
|
|
234
257
|
except Exception as e:
|
|
235
258
|
# If we can't create a session (network issues, permissions, etc.), raise error
|
|
236
259
|
raise ConnectionError(f"Failed to create network session: {e}") from e
|
pipu_cli/package_constraints.py
CHANGED
|
@@ -133,6 +133,11 @@ def validate_existing_constraints_and_triggers(env_name: Optional[str] = None) -
|
|
|
133
133
|
installed_packages = _get_installed_packages()
|
|
134
134
|
|
|
135
135
|
try:
|
|
136
|
+
# Check if config file exists - if not, there's nothing to validate
|
|
137
|
+
config_path = get_recommended_pip_config_path()
|
|
138
|
+
if not config_path.exists():
|
|
139
|
+
return invalid_constraint_packages, invalid_trigger_packages
|
|
140
|
+
|
|
136
141
|
# Check constraints
|
|
137
142
|
section_name = _get_section_name(env_name)
|
|
138
143
|
config, _ = _load_config(create_if_missing=False)
|
|
@@ -1107,7 +1112,11 @@ def remove_all_constraints_from_config(env_name: Optional[str] = None) -> Tuple[
|
|
|
1107
1112
|
# Read existing config
|
|
1108
1113
|
config = configparser.ConfigParser()
|
|
1109
1114
|
if not config_path.exists():
|
|
1110
|
-
|
|
1115
|
+
# If file doesn't exist, no constraints to remove
|
|
1116
|
+
if env_name:
|
|
1117
|
+
raise ValueError(f"No constraints found in environment '{env_name}'")
|
|
1118
|
+
else:
|
|
1119
|
+
raise ValueError("No constraints found in any environment")
|
|
1111
1120
|
|
|
1112
1121
|
config.read(config_path)
|
|
1113
1122
|
|
|
@@ -1195,7 +1204,11 @@ def remove_all_ignores_from_config(env_name: Optional[str] = None) -> Tuple[Path
|
|
|
1195
1204
|
# Read existing config
|
|
1196
1205
|
config = configparser.ConfigParser()
|
|
1197
1206
|
if not config_path.exists():
|
|
1198
|
-
|
|
1207
|
+
# If file doesn't exist, no ignores to remove
|
|
1208
|
+
if env_name:
|
|
1209
|
+
raise ValueError(f"No ignores found in environment '{env_name}'")
|
|
1210
|
+
else:
|
|
1211
|
+
raise ValueError("No ignores found in any environment")
|
|
1199
1212
|
|
|
1200
1213
|
config.read(config_path)
|
|
1201
1214
|
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
pipu_cli/__init__.py,sha256=
|
|
1
|
+
pipu_cli/__init__.py,sha256=74gTCnT1Zpk5OVITB9CrYG1pZlSg1s1OJT-jPZpL8OM,1190
|
|
2
2
|
pipu_cli/cli.py,sha256=aCN2Fz1bWhXs8MC7kqy5GdzJggNtTdumW4PQkxKOBpg,39993
|
|
3
3
|
pipu_cli/common.py,sha256=g5krfXFsvVJpOf87Vw4DGi5WIduDgMlRuONKXqO328M,78
|
|
4
4
|
pipu_cli/config.py,sha256=xsfNU4ORAujla_FGfsMKpxy7QTpd_bJhRF_u4IPKLW0,3635
|
|
5
|
-
pipu_cli/internals.py,sha256=
|
|
6
|
-
pipu_cli/package_constraints.py,sha256=
|
|
5
|
+
pipu_cli/internals.py,sha256=1Fds2mMn2SJwfTwfjbeqAcTWJjOazP9QtrjRvgzzspo,32786
|
|
6
|
+
pipu_cli/package_constraints.py,sha256=6LSFlC93HNIFym7dYkfYn0fsOic6QDe1ADyghK94Pk8,93052
|
|
7
7
|
pipu_cli/thread_safe.py,sha256=zdQyCoMVJW73MC-d1pL_4ZO-K4AwkI0JeVyQsd8x7nY,7545
|
|
8
8
|
pipu_cli/utils.py,sha256=ijSHKVuKbjmRbj2RwD9S1606PeY4oDiutzhutpX25wM,5842
|
|
9
9
|
pipu_cli/ui/__init__.py,sha256=nCb_3G_vZXy5_Or9z9r-3XhYV1ppUR1r7nMZ9_6Srwg,1432
|
|
@@ -11,9 +11,9 @@ pipu_cli/ui/apps.py,sha256=ltH24sg-3nqVpoomgCwhVYuAwq3hBUwYRH60JXtV2Yg,59771
|
|
|
11
11
|
pipu_cli/ui/constants.py,sha256=HBPf4KYWHiT18c7ciQ0HeI7gZE3VIFOT0uobLU8YxQA,445
|
|
12
12
|
pipu_cli/ui/modal_dialogs.py,sha256=5OF8UL2lXXH3GoAxFQCqp_T3jc5jeLSk77Y7ffBt6mw,45849
|
|
13
13
|
pipu_cli/ui/table_widgets.py,sha256=PC0CqqrK3KgMbTCYRPG01lxkEtRBz9xr9PN8EzoObz8,14322
|
|
14
|
-
pipu_cli-0.1.
|
|
15
|
-
pipu_cli-0.1.
|
|
16
|
-
pipu_cli-0.1.
|
|
17
|
-
pipu_cli-0.1.
|
|
18
|
-
pipu_cli-0.1.
|
|
19
|
-
pipu_cli-0.1.
|
|
14
|
+
pipu_cli-0.1.dev2.dist-info/licenses/LICENSE,sha256=q6TxVbSI0WMB9ulF2V0FWQfeA5om3d-T9X7QwuhdiYE,1075
|
|
15
|
+
pipu_cli-0.1.dev2.dist-info/METADATA,sha256=oJCC9jxaylP7OopD2r_PcLcUvoQDSF2cHSuDr5q-r9g,13200
|
|
16
|
+
pipu_cli-0.1.dev2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
17
|
+
pipu_cli-0.1.dev2.dist-info/entry_points.txt,sha256=VSv6od00zOPblnFPflNLaci4jBtQIgLYJjL1BKxLz_o,42
|
|
18
|
+
pipu_cli-0.1.dev2.dist-info/top_level.txt,sha256=z3Yce93-jGQjGRpsGZUZvbS8osh3OyS7MVpzG0uBE5M,9
|
|
19
|
+
pipu_cli-0.1.dev2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|