euler-loading 2.19.0__tar.gz → 2.19.1__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 (59) hide show
  1. {euler_loading-2.19.0 → euler_loading-2.19.1}/PKG-INFO +2 -2
  2. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/_writing.py +9 -2
  3. {euler_loading-2.19.0 → euler_loading-2.19.1}/pyproject.toml +2 -2
  4. euler_loading-2.19.1/tests/test_python_compat.py +29 -0
  5. {euler_loading-2.19.0 → euler_loading-2.19.1}/.github/workflows/workflow.yml +0 -0
  6. {euler_loading-2.19.0 → euler_loading-2.19.1}/.gitignore +0 -0
  7. {euler_loading-2.19.0 → euler_loading-2.19.1}/README.md +0 -0
  8. {euler_loading-2.19.0 → euler_loading-2.19.1}/docs/loader-attributes.md +0 -0
  9. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/__init__.py +0 -0
  10. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/_dataset_contract.py +0 -0
  11. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/_ds_crawler_utils.py +0 -0
  12. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/_metadata.py +0 -0
  13. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/_resolution.py +0 -0
  14. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/dataset.py +0 -0
  15. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/indexing.py +0 -0
  16. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/__init__.py +0 -0
  17. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/_annotations.py +0 -0
  18. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/_princeton_dense.py +0 -0
  19. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/_writer_utils.py +0 -0
  20. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/contracts.py +0 -0
  21. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/__init__.py +0 -0
  22. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/generic.py +0 -0
  23. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/generic_dense_depth.py +0 -0
  24. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/muses.py +0 -0
  25. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/princeton_dense.py +0 -0
  26. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/real_drive_sim.py +0 -0
  27. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/cpu/vkitti2.py +0 -0
  28. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/generate/__init__.py +0 -0
  29. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/generate/__main__.py +0 -0
  30. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/generate/loaders.json +0 -0
  31. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/generic.py +0 -0
  32. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/__init__.py +0 -0
  33. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/generic.py +0 -0
  34. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/generic_dense_depth.py +0 -0
  35. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/muses.py +0 -0
  36. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/princeton_dense.py +0 -0
  37. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/real_drive_sim.py +0 -0
  38. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/gpu/vkitti2.py +0 -0
  39. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/muses.py +0 -0
  40. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/princeton_dense.py +0 -0
  41. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/real_drive_sim.py +0 -0
  42. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/loaders/vkitti2.py +0 -0
  43. {euler_loading-2.19.0 → euler_loading-2.19.1}/euler_loading/preprocessing.py +0 -0
  44. {euler_loading-2.19.0 → euler_loading-2.19.1}/example.py +0 -0
  45. {euler_loading-2.19.0 → euler_loading-2.19.1}/gen_loaders.sh +0 -0
  46. {euler_loading-2.19.0 → euler_loading-2.19.1}/package-lock.json +0 -0
  47. {euler_loading-2.19.0 → euler_loading-2.19.1}/sample_rds.py +0 -0
  48. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/__init__.py +0 -0
  49. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/conftest.py +0 -0
  50. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/example_rds_calib.json +0 -0
  51. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_dataset.py +0 -0
  52. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_id_schema.py +0 -0
  53. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_indexing.py +0 -0
  54. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_loaders.py +0 -0
  55. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_preprocessing.py +0 -0
  56. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_real_dataset.py +0 -0
  57. {euler_loading-2.19.0 → euler_loading-2.19.1}/tests/test_writing.py +0 -0
  58. {euler_loading-2.19.0 → euler_loading-2.19.1}/vkitti_cpu_example_output.json +0 -0
  59. {euler_loading-2.19.0 → euler_loading-2.19.1}/vkitti_gpu_example_output.json +0 -0
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: euler-loading
3
- Version: 2.19.0
3
+ Version: 2.19.1
4
4
  Summary: Multi-modal PyTorch dataloader using ds-crawler indices
5
5
  Requires-Python: >=3.9
6
6
  Requires-Dist: ds-crawler>=2.3.0
7
- Requires-Dist: euler-dataset-contract
7
+ Requires-Dist: euler-dataset-contract>=0.2.1
8
8
  Requires-Dist: numpy
9
9
  Requires-Dist: pillow
10
10
  Provides-Extra: dev
@@ -7,7 +7,7 @@ import tempfile
7
7
  import zipfile
8
8
  from collections.abc import Mapping
9
9
  from pathlib import Path
10
- from typing import Any, Callable
10
+ from typing import Any, Callable, Union
11
11
 
12
12
  from ds_crawler import DatasetWriter, ZipDatasetWriter, get_dataset_contract
13
13
 
@@ -23,7 +23,14 @@ logger = logging.getLogger(__name__)
23
23
  _DEFAULT_WRITER_INDEX_FILENAME = "output.json"
24
24
 
25
25
 
26
- OutputDestination = str | os.PathLike[str] | DatasetWriter | ZipDatasetWriter
26
+ # Type aliases are evaluated at import time even with postponed annotations.
27
+ # ``typing.Union`` keeps this module importable on the supported Python 3.9.
28
+ OutputDestination = Union[
29
+ str,
30
+ os.PathLike[str],
31
+ DatasetWriter,
32
+ ZipDatasetWriter,
33
+ ]
27
34
 
28
35
 
29
36
  def _wrap_writer_save_index(
@@ -1,13 +1,13 @@
1
1
  [project]
2
2
  name = "euler-loading"
3
- version = "2.19.0"
3
+ version = "2.19.1"
4
4
  description = "Multi-modal PyTorch dataloader using ds-crawler indices"
5
5
  requires-python = ">=3.9"
6
6
  dependencies = [
7
7
  "numpy",
8
8
  "Pillow",
9
9
  "ds-crawler>=2.3.0",
10
- "euler-dataset-contract",
10
+ "euler-dataset-contract>=0.2.1",
11
11
  ]
12
12
 
13
13
  [project.optional-dependencies]
@@ -0,0 +1,29 @@
1
+ """Static checks for constructs evaluated at the Python version floor."""
2
+
3
+ from __future__ import annotations
4
+
5
+ import ast
6
+ from pathlib import Path
7
+
8
+
9
+ PACKAGE_ROOT = Path(__file__).parents[1] / "euler_loading"
10
+
11
+
12
+ def test_no_runtime_pep604_type_aliases() -> None:
13
+ """PEP 604 unions in assignment expressions fail during Python 3.9 imports."""
14
+ offenders: list[str] = []
15
+ for path in PACKAGE_ROOT.rglob("*.py"):
16
+ tree = ast.parse(path.read_text(encoding="utf-8"), filename=str(path))
17
+ for statement in tree.body:
18
+ if not isinstance(statement, ast.Assign):
19
+ continue
20
+ if any(
21
+ isinstance(node, ast.BinOp) and isinstance(node.op, ast.BitOr)
22
+ for node in ast.walk(statement.value)
23
+ ):
24
+ offenders.append(f"{path.relative_to(PACKAGE_ROOT)}:{statement.lineno}")
25
+
26
+ assert offenders == [], (
27
+ "Runtime PEP 604 aliases are not Python 3.9 compatible; use "
28
+ f"typing.Union/Optional instead: {offenders}"
29
+ )
File without changes