lsst-resources 30.0.1rc1__tar.gz → 30.2026.300__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 (56) hide show
  1. {lsst_resources-30.0.1rc1/python/lsst_resources.egg-info → lsst_resources-30.2026.300}/PKG-INFO +1 -2
  2. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/doc/lsst.resources/CHANGES.rst +0 -30
  3. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/pyproject.toml +0 -1
  4. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/eups.py +2 -2
  5. lsst_resources-30.2026.300/python/lsst/resources/version.py +2 -0
  6. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300/python/lsst_resources.egg-info}/PKG-INFO +1 -2
  7. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_eups.py +0 -7
  8. lsst_resources-30.0.1rc1/python/lsst/resources/version.py +0 -2
  9. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/COPYRIGHT +0 -0
  10. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/LICENSE +0 -0
  11. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/MANIFEST.in +0 -0
  12. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/README.md +0 -0
  13. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/doc/lsst.resources/dav.rst +0 -0
  14. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/doc/lsst.resources/index.rst +0 -0
  15. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/doc/lsst.resources/internal-api.rst +0 -0
  16. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/doc/lsst.resources/s3.rst +0 -0
  17. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/__init__.py +0 -0
  18. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/__init__.py +0 -0
  19. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourceHandles/__init__.py +0 -0
  20. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourceHandles/_baseResourceHandle.py +0 -0
  21. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourceHandles/_davResourceHandle.py +0 -0
  22. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourceHandles/_fileResourceHandle.py +0 -0
  23. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourceHandles/_httpResourceHandle.py +0 -0
  24. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourceHandles/_s3ResourceHandle.py +0 -0
  25. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/_resourcePath.py +0 -0
  26. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/dav.py +0 -0
  27. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/davutils.py +0 -0
  28. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/file.py +0 -0
  29. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/gs.py +0 -0
  30. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/http.py +0 -0
  31. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/location.py +0 -0
  32. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/mem.py +0 -0
  33. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/packageresource.py +0 -0
  34. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/proxied.py +0 -0
  35. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/py.typed +0 -0
  36. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/s3.py +0 -0
  37. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/s3utils.py +0 -0
  38. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/schemeless.py +0 -0
  39. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/tests.py +0 -0
  40. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst/resources/utils.py +0 -0
  41. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst_resources.egg-info/SOURCES.txt +0 -0
  42. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst_resources.egg-info/dependency_links.txt +0 -0
  43. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst_resources.egg-info/requires.txt +0 -0
  44. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst_resources.egg-info/top_level.txt +0 -0
  45. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/python/lsst_resources.egg-info/zip-safe +0 -0
  46. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/setup.cfg +0 -0
  47. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_dav.py +0 -0
  48. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_file.py +0 -0
  49. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_gs.py +0 -0
  50. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_http.py +0 -0
  51. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_location.py +0 -0
  52. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_mem.py +0 -0
  53. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_resource.py +0 -0
  54. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_s3.py +0 -0
  55. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_s3utils.py +0 -0
  56. {lsst_resources-30.0.1rc1 → lsst_resources-30.2026.300}/tests/test_schemeless.py +0 -0
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-resources
3
- Version: 30.0.1rc1
3
+ Version: 30.2026.300
4
4
  Summary: An abstraction layer for reading and writing from URI file resources.
5
5
  Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
6
6
  License-Expression: BSD-3-Clause
7
7
  Project-URL: Homepage, https://github.com/lsst/resources
8
- Project-URL: Source, https://github.com/lsst/resources
9
8
  Keywords: lsst
10
9
  Classifier: Intended Audience :: Developers
11
10
  Classifier: Operating System :: OS Independent
@@ -1,33 +1,3 @@
1
- Resources v30.0.0 (2026-01-15)
2
- ==============================
3
-
4
- New Features
5
- ------------
6
-
7
- - Added ``walk_up`` parameter to ``ResourcePath.relative_to`` to match the behavior of ``Path.relative_to``.
8
- Using ``walk_up=True`` allows ``..`` to be present in the returned string.
9
- The default is `False` to remain compatible with previous versions.
10
- This parameter can only be `True` for Python 3.12 and newer. (`DM-41256 <https://rubinobs.atlassian.net/browse/DM-41256>`_)
11
- - Added ``eups:`` URI scheme.
12
- This scheme will use the EUPS ``$<PRODUCT>_DIR`` environment variables if set, else try to find the corresponding Python package and look for a ``resources`` directory inside it following the decisions made in `RFC-1090 <https://rubinobs.atlassian.net/browse/RFC-1090>`_.
13
- Additionally, if a URI starts with ``$PRODUCT_DIR`` it is automatically converted to an EUPS URI. (`DM-50997 <https://rubinobs.atlassian.net/browse/DM-50997>`_)
14
-
15
-
16
- Bug Fixes
17
- ---------
18
-
19
- - Fixed ``ResourcePath.write`` for schemeless URIs that had no directory component. (`DM-41256 <https://rubinobs.atlassian.net/browse/DM-41256>`_)
20
- - Fixed an issue where ``S3ResourcePath.transfer_from(S3ResourcePath)`` would fail when the source and destination were using different S3 endpoints or sets of credentials. (`DM-51384 <https://rubinobs.atlassian.net/browse/DM-51384>`_)
21
- - Two simultaneous copies without overwrite could both succeed in certain cases.
22
- This race condition has now been eliminated. (`DM-51540 <https://rubinobs.atlassian.net/browse/DM-51540>`_)
23
-
24
-
25
- Miscellaneous Changes of Minor Interest
26
- ---------------------------------------
27
-
28
- - Fixed bug where ``.parents()`` and ``.dirname()`` were incorrectly returning the fragment of the file. (`DM-51890 <https://rubinobs.atlassian.net/browse/DM-51890>`_)
29
-
30
-
31
1
  Resources v29.1.0 (2025-06-13)
32
2
  ==============================
33
3
 
@@ -28,7 +28,6 @@ requires-python = ">=3.11.0"
28
28
 
29
29
  [project.urls]
30
30
  "Homepage" = "https://github.com/lsst/resources"
31
- "Source" = "https://github.com/lsst/resources"
32
31
 
33
32
  [project.optional-dependencies]
34
33
  s3 = [
@@ -65,7 +65,7 @@ class EupsResourcePath(ProxiedResourcePath):
65
65
  # Must convert this path into a file URI.
66
66
  new_path = posixpath.join(os2posix(eups_path), os2posix(self.path.lstrip("/")))
67
67
  parsed = self._uri._replace(path=urllib.parse.quote(new_path), scheme="file", netloc="")
68
- self._proxy = ResourcePath(parsed, forceDirectory=self.dirLike, forceAbsolute=True)
68
+ self._proxy = ResourcePath(parsed)
69
69
  return
70
70
 
71
71
  # If there is no _DIR env var we need to look for python package
@@ -89,7 +89,7 @@ class EupsResourcePath(ProxiedResourcePath):
89
89
  if proxy.exists():
90
90
  self._proxy = proxy
91
91
  if self.path:
92
- self._proxy = self._proxy.join(self.path.lstrip("/"), forceDirectory=self.dirLike)
92
+ self._proxy = self._proxy.join(self.path.lstrip("/"))
93
93
  log.debug(f"Found variant {variant}")
94
94
  return
95
95
 
@@ -0,0 +1,2 @@
1
+ __all__ = ["__version__"]
2
+ __version__ = "30.2026.300"
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lsst-resources
3
- Version: 30.0.1rc1
3
+ Version: 30.2026.300
4
4
  Summary: An abstraction layer for reading and writing from URI file resources.
5
5
  Author-email: Rubin Observatory Data Management <dm-admin@lists.lsst.org>
6
6
  License-Expression: BSD-3-Clause
7
7
  Project-URL: Homepage, https://github.com/lsst/resources
8
- Project-URL: Source, https://github.com/lsst/resources
9
8
  Keywords: lsst
10
9
  Classifier: Intended Audience :: Developers
11
10
  Classifier: Operating System :: OS Independent
@@ -94,7 +94,6 @@ class EupsReadTestCase(unittest.TestCase):
94
94
  self.assertTrue(d.dirLike)
95
95
 
96
96
  d = self.root_uri.join("config/", forceDirectory=True)
97
- self.assertTrue(d._proxy.dirLike) # Ensure that dir-ness propagates to proxy.
98
97
  self.assertTrue(d.exists(), f"Check directory {d} exists")
99
98
  self.assertTrue(d.isdir())
100
99
 
@@ -150,12 +149,6 @@ class EupsReadTestCase(unittest.TestCase):
150
149
  resource = ResourcePath(f"{self.scheme}://{self.netloc}/")
151
150
  resources = set(ResourcePath.findFileResources([resource]))
152
151
 
153
- # Make sure that walk() can run and knows this is a directory.
154
- cfg = resource.join("config/")
155
- _, dirs, files = next(cfg.walk())
156
- self.assertEqual(dirs, [])
157
- self.assertEqual(set(files), {"test.txt", "test2.yaml"})
158
-
159
152
  # Do not try to list all possible options. Files can move around
160
153
  # and cache files can appear.
161
154
  subset = {
@@ -1,2 +0,0 @@
1
- __all__ = ["__version__"]
2
- __version__ = "30.0.1rc1"