[Git][debian-gis-team/pystac][upstream] New upstream version 1.12.1
Antonio Valentino (@antonio.valentino)
gitlab at salsa.debian.org
Wed Jan 29 07:32:04 GMT 2025
Antonio Valentino pushed to branch upstream at Debian GIS Project / pystac
Commits:
c3fef8a9 by Antonio Valentino at 2025-01-29T06:42:22+00:00
New upstream version 1.12.1
- - - - -
19 changed files:
- CHANGELOG.md
- pystac/catalog.py
- pystac/collection.py
- pystac/extensions/projection.py
- pystac/item.py
- pystac/stac_io.py
- pystac/stac_object.py
- pystac/version.py
- + tests/data-files/projection/another-1.1.json
- tests/extensions/test_classification.py
- tests/extensions/test_eo.py
- tests/extensions/test_grid.py
- tests/extensions/test_projection.py
- tests/extensions/test_raster.py
- tests/test_catalog.py
- tests/test_collection.py
- tests/test_item.py
- tests/utils/__init__.py
- uv.lock
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -2,6 +2,16 @@
## [Unreleased]
+## [v1.12.1]
+
+### Changed
+
+- `migrate=True` is now the default in `from_dict` ([#1509](https://github.com/stac-utils/pystac/pull/1509))
+
+### Fixed
+
+- Fall back to `epsg` when `code` is not present in the Projection extension ([#1505](https://github.com/stac-utils/pystac/pull/1505), [#1510](https://github.com/stac-utils/pystac/pull/1510))
+
## [v1.12.0]
### Added
@@ -894,7 +904,8 @@ use `Band.create`
Initial release.
-[Unreleased]: <https://github.com/stac-utils/pystac/compare/v1.12.0..main>
+[Unreleased]: <https://github.com/stac-utils/pystac/compare/v1.12.1..main>
+[v1.12.1]: <https://github.com/stac-utils/pystac/compare/v1.12.0..v1.12.1>
[v1.12.0]: <https://github.com/stac-utils/pystac/compare/v1.11.0..v1.12.0>
[v1.11.0]: <https://github.com/stac-utils/pystac/compare/v1.10.1..v1.11.0>
[v1.10.1]: <https://github.com/stac-utils/pystac/compare/v1.10.0..v1.10.1>
=====================================
pystac/catalog.py
=====================================
@@ -1224,7 +1224,7 @@ class Catalog(STACObject):
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> C:
if migrate:
=====================================
pystac/collection.py
=====================================
@@ -632,7 +632,7 @@ class Collection(Catalog, Assets):
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> C:
from pystac.extensions.version import CollectionVersionExtension
=====================================
pystac/extensions/projection.py
=====================================
@@ -136,6 +136,10 @@ class ProjectionExtension(
"""
if self.code is not None and self.code.startswith("EPSG:"):
return int(self.code.replace("EPSG:", ""))
+ elif epsg := self._get_property(
+ EPSG_PROP, int
+ ): # In case the dictionary was not migrated
+ return epsg
return None
@epsg.setter
@@ -214,6 +218,8 @@ class ProjectionExtension(
"""
if self.code:
return self.code
+ elif self.epsg:
+ return f"EPSG:{self.epsg}"
elif self.wkt2:
return self.wkt2
elif self.projjson:
=====================================
pystac/item.py
=====================================
@@ -416,7 +416,7 @@ class Item(STACObject, Assets):
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> T:
from pystac.extensions.version import ItemVersionExtension
=====================================
pystac/stac_io.py
=====================================
@@ -169,19 +169,19 @@ class StacIO(ABC):
if info.object_type == pystac.STACObjectType.CATALOG:
result = pystac.Catalog.from_dict(
- d, href=href_str, root=root, migrate=False, preserve_dict=preserve_dict
+ d, href=href_str, root=root, migrate=True, preserve_dict=preserve_dict
)
result._stac_io = self
return result
if info.object_type == pystac.STACObjectType.COLLECTION:
return pystac.Collection.from_dict(
- d, href=href_str, root=root, migrate=False, preserve_dict=preserve_dict
+ d, href=href_str, root=root, migrate=True, preserve_dict=preserve_dict
)
if info.object_type == pystac.STACObjectType.ITEM:
return pystac.Item.from_dict(
- d, href=href_str, root=root, migrate=False, preserve_dict=preserve_dict
+ d, href=href_str, root=root, migrate=True, preserve_dict=preserve_dict
)
raise ValueError(f"Unknown STAC object type {info.object_type}")
=====================================
pystac/stac_object.py
=====================================
@@ -647,7 +647,7 @@ class STACObject(ABC):
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> S:
"""Parses this STACObject from the passed in dictionary.
@@ -659,8 +659,9 @@ class STACObject(ABC):
root : Optional root catalog for this object.
If provided, the root of the returned STACObject will be set
to this parameter.
- migrate: Use True if this dict represents JSON from an older STAC object,
- so that migrations are run against it.
+ migrate: By default, STAC objects and extensions are migrated to
+ their latest supported version. Set this to False to disable
+ this behavior.
preserve_dict: If False, the dict parameter ``d`` may be modified
during this method call. Otherwise the dict is not mutated.
Defaults to True, which results results in a deepcopy of the
=====================================
pystac/version.py
=====================================
@@ -1,6 +1,6 @@
import os
-__version__ = "1.12.0"
+__version__ = "1.12.1"
"""Library version"""
=====================================
tests/data-files/projection/another-1.1.json
=====================================
@@ -0,0 +1,94 @@
+{
+ "stac_version": "0.9.0",
+ "stac_extensions": [
+ "https://stac-extensions.github.io/file/v2.1.0/schema.json",
+ "https://stac-extensions.github.io/projection/v1.1.0/schema.json"
+ ],
+ "type": "Feature",
+ "id": "JQT-123456789",
+ "bbox": [-81.3085227080129, 32.10817938759764, -78.81735409341113, 34.22870275071835],
+ "geometry": {
+ "type": "Polygon",
+ "coordinates": [
+ [
+ [
+ -81.3085227080129,
+ 32.10817938759764
+ ],
+ [
+ -78.81735409341113,
+ 32.10817938759764
+ ],
+ [
+ -78.81735409341113,
+ 34.22870275071835
+ ],
+ [
+ -81.3085227080129,
+ 34.22870275071835
+ ],
+ [
+ -81.3085227080129,
+ 32.10817938759764
+ ]
+ ]
+ ]
+ },
+ "properties": {
+ "proj:epsg": 32617,
+ "proj:shape": [
+ 259,
+ 255
+ ],
+ "proj:transform": [
+ 900.0,
+ 0.0,
+ 471585.0,
+ 0.0,
+ -900.0,
+ 3787515.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "datetime": "2016-05-03T13:21:30.040Z",
+ "collection": "JQT"
+ },
+ "links": [
+ {
+ "rel": "self",
+ "href": "http://cool-sat.com/catalog/JQT/a-fake-item.json"
+ },
+ {
+ "rel": "collection",
+ "href": "http://cool-sat.com/catalog.json"
+ }
+ ],
+ "assets": {
+ "red": {
+ "href": "http://somewhere-over-the-rainbow.io/red.tif",
+ "title": "red",
+ "file:header_size": 16384
+ },
+ "green": {
+ "href": "http://somewhere-over-the-rainbow.io/green.tif",
+ "title": "green",
+ "file:header_size": 30000
+ },
+ "blue": {
+ "href": "http://somewhere-over-the-rainbow.io/blue.tif",
+ "title": "blue",
+ "file:header_size": 20000
+ },
+ "lowres": {
+ "href": "http://somewhere-over-the-rainbow.io/lowres.tif",
+ "title": "lowres"
+ },
+ "thumbnail": {
+ "href": "http://cool-sat.com/catalog/a-fake-item/thumbnail.png",
+ "title": "Thumbnail",
+ "type": "image/png",
+ "roles": [ "thumbnail" ]
+ }
+ }
+}
=====================================
tests/extensions/test_classification.py
=====================================
@@ -260,7 +260,7 @@ def test_to_from_dict(item_dict: dict[str, Any]) -> None:
a_dict[k] = a_dict[k].replace(microsecond=0)
d1 = deepcopy(item_dict)
- d2 = Item.from_dict(item_dict).to_dict()
+ d2 = Item.from_dict(item_dict, migrate=False).to_dict()
_parse_times(d1)
_parse_times(d2)
assert d1 == d2, f"Mismatch between dictionaries: \n{d1}\n{d2}"
@@ -343,7 +343,7 @@ def test_older_extension_version(landsat_item: Item) -> None:
stac_extensions.add(old)
item_as_dict = landsat_item.to_dict(include_self_link=False, transform_hrefs=False)
item_as_dict["stac_extensions"] = list(stac_extensions)
- item = Item.from_dict(item_as_dict)
+ item = Item.from_dict(item_as_dict, migrate=False)
assert ClassificationExtension.has_extension(item)
assert old in item.stac_extensions
=====================================
tests/extensions/test_eo.py
=====================================
@@ -439,7 +439,7 @@ def test_older_extension_version(ext_item: Item) -> None:
stac_extensions.add(old)
item_as_dict = ext_item.to_dict(include_self_link=False, transform_hrefs=False)
item_as_dict["stac_extensions"] = list(stac_extensions)
- item = Item.from_dict(item_as_dict)
+ item = Item.from_dict(item_as_dict, migrate=False)
assert EOExtension.has_extension(item)
assert old in item.stac_extensions
=====================================
tests/extensions/test_grid.py
=====================================
@@ -160,7 +160,7 @@ def test_older_extension_version(ext_item: pystac.Item) -> None:
stac_extensions.add(old)
item_as_dict = ext_item.to_dict(include_self_link=False, transform_hrefs=False)
item_as_dict["stac_extensions"] = list(stac_extensions)
- item = pystac.Item.from_dict(item_as_dict)
+ item = pystac.Item.from_dict(item_as_dict, migrate=False)
assert GridExtension.has_extension(item)
assert old in item.stac_extensions
=====================================
tests/extensions/test_projection.py
=====================================
@@ -602,7 +602,7 @@ def test_older_extension_version(projection_landsat8_item: Item) -> None:
include_self_link=False, transform_hrefs=False
)
item_as_dict["stac_extensions"] = list(stac_extensions)
- item = Item.from_dict(item_as_dict)
+ item = Item.from_dict(item_as_dict, migrate=False)
assert ProjectionExtension.has_extension(item)
assert old in item.stac_extensions
@@ -647,3 +647,21 @@ def test_ext_syntax_remove(projection_landsat8_item: pystac.Item) -> None:
def test_ext_syntax_add(item: pystac.Item) -> None:
item.ext.add("proj")
assert isinstance(item.ext.proj, ProjectionExtension)
+
+
+def test_v1_from_dict() -> None:
+ with open(
+ TestCases.get_path("data-files/projection/example-with-version-1.1.json")
+ ) as f:
+ data = json.load(f)
+ item = pystac.Item.from_dict(data, migrate=False)
+ assert item.ext.proj.epsg is not None
+ assert item.ext.proj.crs_string is not None
+
+
+def test_v1_crs_string() -> None:
+ with open(TestCases.get_path("data-files/projection/another-1.1.json")) as f:
+ data = json.load(f)
+ item = pystac.Item.from_dict(data, migrate=False)
+ assert item.ext.proj.epsg is not None
+ assert item.ext.proj.crs_string == "EPSG:32617"
=====================================
tests/extensions/test_raster.py
=====================================
@@ -305,7 +305,7 @@ def test_older_extension_version(ext_item: pystac.Item) -> None:
stac_extensions.add(old)
item_as_dict = ext_item.to_dict(include_self_link=False, transform_hrefs=False)
item_as_dict["stac_extensions"] = list(stac_extensions)
- item = pystac.Item.from_dict(item_as_dict)
+ item = pystac.Item.from_dict(item_as_dict, migrate=False)
assert RasterExtension.has_extension(item)
assert old in item.stac_extensions
=====================================
tests/test_catalog.py
=====================================
@@ -115,7 +115,7 @@ class TestCatalog:
# assert that the parameter is not preserved with
# non-default parameter
- _ = Catalog.from_dict(param_dict, preserve_dict=False)
+ _ = Catalog.from_dict(param_dict, preserve_dict=False, migrate=False)
assert param_dict != catalog_dict
def test_from_file_bad_catalog(self) -> None:
@@ -1595,7 +1595,7 @@ def test_custom_catalog_from_dict(catalog: Catalog) -> None:
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> CustomCatalog:
return super().from_dict(d)
=====================================
tests/test_collection.py
=====================================
@@ -306,7 +306,7 @@ class CollectionTest(unittest.TestCase):
# assert that the parameter is not preserved with
# non-default parameter
- _ = Collection.from_dict(param_dict, preserve_dict=False)
+ _ = Collection.from_dict(param_dict, preserve_dict=False, migrate=False)
self.assertNotEqual(param_dict, collection_dict)
def test_from_dict_set_root(self) -> None:
@@ -594,7 +594,7 @@ def test_custom_collection_from_dict(collection: Collection) -> None:
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> CustomCollection:
return super().from_dict(d)
=====================================
tests/test_item.py
=====================================
@@ -464,7 +464,7 @@ def test_custom_item_from_dict(item: Item) -> None:
d: dict[str, Any],
href: str | None = None,
root: Catalog | None = None,
- migrate: bool = False,
+ migrate: bool = True,
preserve_dict: bool = True,
) -> CustomItem:
return super().from_dict(d)
@@ -481,13 +481,13 @@ def test_item_from_dict_raises_useful_error() -> None:
def test_item_from_dict_with_missing_stac_version_raises_useful_error() -> None:
item_dict = {"type": "Feature", "id": "lalalalala"}
with pytest.raises(pystac.STACTypeError, match="'stac_version' is missing"):
- Item.from_dict(item_dict)
+ Item.from_dict(item_dict, migrate=False)
def test_item_from_dict_with_missing_type_raises_useful_error() -> None:
item_dict = {"stac_version": "0.8.0", "id": "lalalalala"}
with pytest.raises(pystac.STACTypeError, match="'type' is missing"):
- Item.from_dict(item_dict)
+ Item.from_dict(item_dict, migrate=False)
@pytest.mark.parametrize("add_canonical", (True, False))
@@ -721,3 +721,12 @@ def test_copy_with_unresolveable_root(item: Item) -> None:
def test_no_collection(item: Item) -> None:
# https://github.com/stac-utils/stac-api-validator/issues/527
assert item.collection is None
+
+
+def test_migrate_by_default() -> None:
+ with open(
+ TestCases.get_path("data-files/projection/example-with-version-1.1.json")
+ ) as f:
+ data = json.load(f)
+ item = pystac.Item.from_dict(data) # default used to be migrate=False
+ assert item.ext.proj.code == "EPSG:32614"
=====================================
tests/utils/__init__.py
=====================================
@@ -42,7 +42,7 @@ def assert_to_from_dict(
a_dict[k] = a_dict[k].replace(microsecond=0)
d1 = deepcopy(d)
- d2 = stac_object_class.from_dict(d).to_dict()
+ d2 = stac_object_class.from_dict(d, migrate=False).to_dict()
_parse_times(d1)
_parse_times(d2)
assert d1 == d2
=====================================
uv.lock
=====================================
@@ -46,10 +46,10 @@ name = "anyio"
version = "4.6.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "exceptiongroup", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
{ name = "idna" },
{ name = "sniffio" },
- { name = "typing-extensions", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/78/49/f3f17ec11c4a91fe79275c426658e509b07547f874b14c1a526d86a83fc8/anyio-4.6.0.tar.gz", hash = "sha256:137b4559cbb034c477165047febb6ff83f390fc3b20bf181c1fc0a728cb8beeb", size = 170983 }
wheels = [
@@ -130,12 +130,12 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "asv-runner" },
{ name = "build" },
- { name = "colorama", marker = "platform_system == 'Windows'" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
{ name = "json5" },
{ name = "pympler", marker = "platform_python_implementation != 'PyPy'" },
{ name = "pyyaml", marker = "platform_python_implementation != 'PyPy'" },
{ name = "tabulate" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
{ name = "virtualenv" },
]
sdist = { url = "https://files.pythonhosted.org/packages/75/0c/31fe4135b378ee17131a804b11380a1ec1406c3925cb24ecdff5b86e673c/asv-0.6.4.tar.gz", hash = "sha256:1d124184171cfe106e3e57ac04e3221b8d4571c9bd6ca2c6498a8c7407339df1", size = 389611 }
@@ -184,7 +184,7 @@ name = "async-lru"
version = "2.0.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "typing-extensions", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/80/e2/2b4651eff771f6fd900d233e175ddc5e2be502c7eb62c0c42f975c6d36cd/async-lru-2.0.4.tar.gz", hash = "sha256:b8a59a5df60805ff63220b2a0c5b5393da5521b113cd5465a44eb037d81a5627", size = 10019 }
wheels = [
@@ -255,7 +255,7 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "jmespath" },
{ name = "python-dateutil" },
- { name = "urllib3", marker = "python_full_version >= '3.10'" },
+ { name = "urllib3" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f7/28/d83dbd69d7015892b53ada4fded79a5bc1b7d77259361eb8302f88c2da81/botocore-1.35.39.tar.gz", hash = "sha256:cb7f851933b5ccc2fba4f0a8b846252410aa0efac5bfbe93b82d10801f5f8e90", size = 12826384 }
wheels = [
@@ -268,10 +268,10 @@ version = "1.2.2.post1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "os_name == 'nt'" },
- { name = "importlib-metadata", marker = "python_full_version < '3.10.2' and python_full_version >= '3.10'" },
+ { name = "importlib-metadata", marker = "python_full_version < '3.10.2'" },
{ name = "packaging" },
{ name = "pyproject-hooks" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/7d/46/aeab111f8e06793e4f0e421fcad593d547fb8313b50990f31681ee2fb1ad/build-1.2.2.post1.tar.gz", hash = "sha256:b36993e92ca9375a219c99e606a122ff365a760a2d4bba0caa09bd5278b608b7", size = 46701 }
wheels = [
@@ -427,7 +427,7 @@ name = "click"
version = "8.1.7"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "colorama", marker = "platform_system == 'Windows'" },
+ { name = "colorama", marker = "sys_platform == 'win32'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121 }
wheels = [
@@ -549,7 +549,7 @@ wheels = [
[package.optional-dependencies]
toml = [
- { name = "tomli", marker = "python_full_version <= '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version <= '3.11'" },
]
[[package]]
@@ -613,7 +613,7 @@ dependencies = [
{ name = "pygments" },
{ name = "restructuredtext-lint" },
{ name = "stevedore" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/11/28/b0a576233730b756ca1ebb422bc6199a761b826b86e93e5196dfa85331ea/doc8-1.1.2.tar.gz", hash = "sha256:1225f30144e1cc97e388dbaf7fe3e996d2897473a53a6dae268ddde21c354b98", size = 27030 }
wheels = [
@@ -778,7 +778,7 @@ name = "ipykernel"
version = "6.29.5"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "appnope", marker = "platform_system == 'Darwin'" },
+ { name = "appnope", marker = "sys_platform == 'darwin'" },
{ name = "comm" },
{ name = "debugpy" },
{ name = "ipython" },
@@ -804,7 +804,7 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "sys_platform == 'win32'" },
{ name = "decorator" },
- { name = "exceptiongroup", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
{ name = "jedi" },
{ name = "matplotlib-inline" },
{ name = "pexpect", marker = "sys_platform != 'emscripten' and sys_platform != 'win32'" },
@@ -812,7 +812,7 @@ dependencies = [
{ name = "pygments" },
{ name = "stack-data" },
{ name = "traitlets" },
- { name = "typing-extensions", marker = "python_full_version < '3.12' and python_full_version >= '3.10'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.12'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/f7/21/48db7d9dd622b9692575004c7c98f85f5629428f58596c59606d36c51b58/ipython-8.28.0.tar.gz", hash = "sha256:0d0d15ca1e01faeb868ef56bc7ee5a0de5bd66885735682e8a322ae289a13d1a", size = 5495762 }
wheels = [
@@ -1092,7 +1092,7 @@ dependencies = [
{ name = "notebook-shim" },
{ name = "packaging" },
{ name = "setuptools" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
{ name = "tornado" },
{ name = "traitlets" },
]
@@ -1221,7 +1221,7 @@ name = "multidict"
version = "6.1.0"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "typing-extensions", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/d6/be/504b89a5e9ca731cd47487e91c469064f8ae5af93b7259758dcfc2b9c848/multidict-6.1.0.tar.gz", hash = "sha256:22ae2ebf9b0c69d206c003e2f6a914ea33f0a932d4aa16f236afc049d9958f4a", size = 64002 }
wheels = [
@@ -1294,7 +1294,7 @@ version = "1.11.2"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "mypy-extensions" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
{ name = "typing-extensions" },
]
sdist = { url = "https://files.pythonhosted.org/packages/5c/86/5d7cbc4974fd564550b80fbb8103c05501ea11aa7835edf3351d90095896/mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79", size = 3078806 }
@@ -1809,7 +1809,7 @@ name = "pympler"
version = "1.1"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and platform_system == 'Windows'" },
+ { name = "pywin32", marker = "platform_python_implementation != 'PyPy' and sys_platform == 'win32'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/dd/37/c384631908029676d8e7213dd956bb686af303a80db7afbc9be36bc49495/pympler-1.1.tar.gz", hash = "sha256:1eaa867cb8992c218430f1708fdaccda53df064144d1c5656b1e6f1ee6000424", size = 179954 }
wheels = [
@@ -1960,11 +1960,11 @@ version = "8.3.3"
source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "colorama", marker = "sys_platform == 'win32'" },
- { name = "exceptiongroup", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
{ name = "iniconfig" },
{ name = "packaging" },
{ name = "pluggy" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/8b/6c/62bbd536103af674e227c41a8f3dcd022d591f6eed5facb5a0f31ee33bbc/pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181", size = 1442487 }
wheels = [
@@ -2501,7 +2501,7 @@ dependencies = [
{ name = "sphinxcontrib-jsmath" },
{ name = "sphinxcontrib-qthelp" },
{ name = "sphinxcontrib-serializinghtml" },
- { name = "tomli", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "tomli", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/ca/ff/60f166ff66cce657ef6275f013c9555a9a814a80e0a8e86707ac5fdbf247/sphinx-8.1.1.tar.gz", hash = "sha256:65e0ee8f76c9cbfd53ec8466ac8c87a73f9ed911767a8ef36c3bf3c522242bcd", size = 8184277 }
wheels = [
@@ -2788,7 +2788,7 @@ source = { registry = "https://pypi.org/simple" }
dependencies = [
{ name = "click" },
{ name = "h11" },
- { name = "typing-extensions", marker = "python_full_version < '3.11' and python_full_version >= '3.10'" },
+ { name = "typing-extensions", marker = "python_full_version < '3.11'" },
]
sdist = { url = "https://files.pythonhosted.org/packages/76/87/a886eda9ed495a3a4506d5a125cd07c54524280718c4969bde88f075fe98/uvicorn-0.31.1.tar.gz", hash = "sha256:f5167919867b161b7bcaf32646c6a94cdbd4c3aa2eb5c17d36bb9aa5cfd8c493", size = 77368 }
wheels = [
@@ -2821,7 +2821,7 @@ resolution-markers = [
]
dependencies = [
{ name = "pyyaml", marker = "platform_python_implementation != 'PyPy'" },
- { name = "urllib3", marker = "platform_python_implementation != 'PyPy' and python_full_version >= '3.10'" },
+ { name = "urllib3", marker = "platform_python_implementation != 'PyPy'" },
{ name = "wrapt", marker = "platform_python_implementation != 'PyPy'" },
{ name = "yarl", marker = "platform_python_implementation != 'PyPy'" },
]
View it on GitLab: https://salsa.debian.org/debian-gis-team/pystac/-/commit/c3fef8a96d4cb795366ceb1410c8fc0a34e133c3
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/pystac/-/commit/c3fef8a96d4cb795366ceb1410c8fc0a34e133c3
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20250129/8f2eb713/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list