@@ -127,10 +127,10 @@ index a8cd133..20dd1e6 100644
127
127
# file in .data maps to same location as file in wheel root).
128
128
diff --git a/pip/_internal/utils/graalpy.py b/pip/_internal/utils/graalpy.py
129
129
new file mode 100644
130
- index 0000000..375f66e
130
+ index 0000000..5b35102
131
131
--- /dev/null
132
132
+++ b/pip/_internal/utils/graalpy.py
133
- @@ -0,0 +1,351 @@
133
+ @@ -0,0 +1,330 @@
134
134
+ import abc
135
135
+ import logging
136
136
+ import os
@@ -175,10 +175,6 @@ index 0000000..375f66e
175
175
+ pass
176
176
+
177
177
+
178
- + class RepositoryNotFoundException(RepositoryException):
179
- + pass
180
- +
181
- +
182
178
+ class AbstractPatchRepository(metaclass=abc.ABCMeta):
183
179
+ def __init__(self, metadata: dict):
184
180
+ self._repository = metadata
@@ -251,8 +247,6 @@ index 0000000..375f66e
251
247
+ try:
252
248
+ with open(patches_path / METADATA_FILENAME) as f:
253
249
+ metadata_content = f.read()
254
- + except FileNotFoundError:
255
- + raise RepositoryNotFoundException(f"'{METADATA_FILENAME}' doesn't exist")
256
250
+ except OSError as e:
257
251
+ raise RepositoryException(f"'{METADATA_FILENAME}' cannot be read: {e}")
258
252
+ return cls(patches_path, cls.metadata_from_string(metadata_content))
@@ -278,12 +272,8 @@ index 0000000..375f66e
278
272
+ try:
279
273
+ url = url_for_file(patches_url, METADATA_FILENAME)
280
274
+ response = cls.get_session().get(url)
281
- + if response.status_code == 404:
282
- + raise RepositoryNotFoundException(f"'{METADATA_FILENAME} not found at url: {url}")
283
275
+ response.raise_for_status()
284
276
+ metadata_content = response.content.decode('utf-8')
285
- + except RepositoryNotFoundException:
286
- + raise
287
277
+ except Exception as e:
288
278
+ raise RepositoryException(f"'{METADATA_FILENAME} cannot be retrieved': {e}")
289
279
+ return cls(patches_url, cls.metadata_from_string(metadata_content))
@@ -321,29 +311,18 @@ index 0000000..375f66e
321
311
+
322
312
+
323
313
+ def create_patch_repository(patches_url):
324
- + if patches_url:
325
- + if VERSION_PARAMETER in patches_url:
326
- + if not GRAALPY_VERSION.endswith('-dev'):
327
- + try_version = GRAALPY_VERSION
328
- + while '.' in try_version:
329
- + url = patches_url.replace(VERSION_PARAMETER, try_version)
330
- + try:
331
- + return repository_from_url_or_path(url)
332
- + except RepositoryNotFoundException:
333
- + logger.debug("No patch repository found for version %s at %s", try_version, url)
334
- + except RepositoryException as e:
335
- + logger.warning("Failed to load GraalPy patch repository from %s: %s", url, e)
336
- + logger.warning("Falling back to internal GraalPy patch repository")
337
- + break
338
- + try_version = try_version.rsplit('.', 1)[0]
339
- + else:
340
- + logger.debug("Skipping versioned GraalPy patch repository on snapshot build")
314
+ + if patches_url and VERSION_PARAMETER in patches_url:
315
+ + if not GRAALPY_VERSION.endswith('-dev'):
316
+ + patches_url = patches_url.replace(VERSION_PARAMETER, GRAALPY_VERSION)
341
317
+ else:
342
- + try:
343
- + return repository_from_url_or_path(patches_url)
344
- + except RepositoryException as e:
345
- + logger.warning("Failed to load GraalPy patch repository from %s: %s", patches_url, e)
346
- + logger.warning("Falling back to internal GraalPy patch repository")
318
+ + logger.debug("Skipping versioned GraalPy patch repository on snapshot build")
319
+ + patches_url = None
320
+ + if patches_url:
321
+ + try:
322
+ + return repository_from_url_or_path(patches_url)
323
+ + except RepositoryException as e:
324
+ + logger.warning("Failed to load GraalPy patch repository from %s: %s", patches_url, e)
325
+ + logger.warning("Falling back to internal GraalPy patch repository")
347
326
+ try:
348
327
+ return LocalPatchRepository.from_path(DEFAULT_PATCHES_PATH)
349
328
+ except RepositoryException as e:
0 commit comments