eotdl 2025.4.22.post2__tar.gz → 2025.4.22.post3__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 (125) hide show
  1. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/PKG-INFO +1 -1
  2. eotdl-2025.4.22.post3/eotdl/__init__.py +1 -0
  3. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/commands/datasets.py +7 -4
  4. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/commands/models.py +7 -4
  5. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/datasets/update.py +6 -4
  6. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/models/update.py +6 -4
  7. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/DatasetsAPIRepo.py +3 -2
  8. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/ModelsAPIRepo.py +3 -2
  9. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/pyproject.toml +1 -1
  10. eotdl-2025.4.22.post2/eotdl/__init__.py +0 -1
  11. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/.gitignore +0 -0
  12. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/README.md +0 -0
  13. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/__init__.py +0 -0
  14. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/airbus/__init__.py +0 -0
  15. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/airbus/client.py +0 -0
  16. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/airbus/parameters.py +0 -0
  17. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/airbus/utils.py +0 -0
  18. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/download.py +0 -0
  19. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/search.py +0 -0
  20. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/sentinelhub/__init__.py +0 -0
  21. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/sentinelhub/client.py +0 -0
  22. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/sentinelhub/evalscripts.py +0 -0
  23. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/sentinelhub/parameters.py +0 -0
  24. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/access/sentinelhub/utils.py +0 -0
  25. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/auth/__init__.py +0 -0
  26. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/auth/auth.py +0 -0
  27. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/auth/errors.py +0 -0
  28. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/auth/is_logged.py +0 -0
  29. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/auth/logout.py +0 -0
  30. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/cli.py +0 -0
  31. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/commands/__init__.py +0 -0
  32. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/commands/auth.py +0 -0
  33. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/commands/stac.py +0 -0
  34. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/curation/__init__.py +0 -0
  35. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/curation/stac/__init__.py +0 -0
  36. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/curation/stac/api.py +0 -0
  37. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/curation/stac/stac.py +0 -0
  38. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/datasets/__init__.py +0 -0
  39. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/datasets/ingest.py +0 -0
  40. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/datasets/retrieve.py +0 -0
  41. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/datasets/stage.py +0 -0
  42. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/files/__init__.py +0 -0
  43. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/files/ingest.bck +0 -0
  44. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/files/ingest.py +0 -0
  45. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/files/metadata.py +0 -0
  46. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/models/__init__.py +0 -0
  47. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/models/download.py +0 -0
  48. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/models/ingest.py +0 -0
  49. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/models/retrieve.py +0 -0
  50. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/models/stage.py +0 -0
  51. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/APIRepo.py +0 -0
  52. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/AuthAPIRepo.py +0 -0
  53. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/AuthRepo.py +0 -0
  54. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/FilesAPIRepo.py +0 -0
  55. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/STACAPIRepo.py +0 -0
  56. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/repos/__init__.py +0 -0
  57. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/shared/__init__.py +0 -0
  58. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/shared/checksum.py +0 -0
  59. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/__init__.py +0 -0
  60. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/geo_utils.py +0 -0
  61. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/metadata.py +0 -0
  62. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/paths.py +0 -0
  63. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/stac.py +0 -0
  64. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/time_utils.py +0 -0
  65. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/tools/tools.py +0 -0
  66. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/wrappers/__init__.py +0 -0
  67. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl/wrappers/models.py +0 -0
  68. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/eotdl.png +0 -0
  69. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/main.py +0 -0
  70. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/__init__.py +0 -0
  71. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/_test_access.py +0 -0
  72. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/_test_hello.py +0 -0
  73. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/load/conftest.py +0 -0
  74. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/load/eotdl.tiers.json +0 -0
  75. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/load/test_upload_size.py +0 -0
  76. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/load/upload_times.log +0 -0
  77. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/load/upload_times_tifs.log +0 -0
  78. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/__init__.py +0 -0
  79. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/_test_auth.py +0 -0
  80. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/access/__init__.py +0 -0
  81. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/__init__.py +0 -0
  82. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/__init__.py +0 -0
  83. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/fixtures.py +0 -0
  84. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac/catalog.json +0 -0
  85. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac/sentinel-2-l2a/Jaca_1/Jaca_1.json +0 -0
  86. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac/sentinel-2-l2a/Jaca_2/Jaca_2.json +0 -0
  87. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac/sentinel-2-l2a/Jaca_3/Jaca_3.json +0 -0
  88. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac/sentinel-2-l2a/Jaca_4/Jaca_4.json +0 -0
  89. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac/sentinel-2-l2a/collection.json +0 -0
  90. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/catalog.json +0 -0
  91. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/labels/Jaca_1/Jaca_1.json +0 -0
  92. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/labels/Jaca_2/Jaca_2.json +0 -0
  93. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/labels/Jaca_3/Jaca_3.json +0 -0
  94. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/labels/Jaca_4/Jaca_4.json +0 -0
  95. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/labels/collection.json +0 -0
  96. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/sentinel-2-l2a/Jaca_1/Jaca_1.json +0 -0
  97. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/sentinel-2-l2a/Jaca_2/Jaca_2.json +0 -0
  98. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/sentinel-2-l2a/Jaca_3/Jaca_3.json +0 -0
  99. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/sentinel-2-l2a/Jaca_4/Jaca_4.json +0 -0
  100. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/jaca_dataset_stac_labels/sentinel-2-l2a/collection.json +0 -0
  101. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/labels_scaneo/Jaca_1_labels.geojson +0 -0
  102. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/labels_scaneo/Jaca_2_labels.geojson +0 -0
  103. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/labels_scaneo/Jaca_3_labels.geojson +0 -0
  104. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/labels_scaneo/Jaca_4_labels.geojson +0 -0
  105. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/labels_scaneo/labels.json +0 -0
  106. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/sentinel_2/Boadella_2020-01-13.tif +0 -0
  107. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/sentinel_2/Boadella_2020-01-13_labels.geojson +0 -0
  108. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/sentinel_2/Boadella_2020-01-28.tif +0 -0
  109. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_data/sentinel_2/Boadella_2020-02-02_labels.geojson +0 -0
  110. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_dataframe.py +0 -0
  111. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_extent.py +0 -0
  112. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_labels.py +0 -0
  113. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_ml_dataset.py +0 -0
  114. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/curation/stac/test_stac.py +0 -0
  115. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/datasets/__init__.py +0 -0
  116. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/datasets/_test_datasets.py +0 -0
  117. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/datasets/_test_download_dataset.py +0 -0
  118. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/datasets/_test_retrieve_datasets.py +0 -0
  119. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/tools/__init__.py +0 -0
  120. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/tools/test_geo_utils.py +0 -0
  121. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/tools/test_metadata.py +0 -0
  122. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/tools/test_paths.py +0 -0
  123. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/tools/test_time_utils.py +0 -0
  124. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/tests/unit/tools/test_tools.py +0 -0
  125. {eotdl-2025.4.22.post2 → eotdl-2025.4.22.post3}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: eotdl
3
- Version: 2025.4.22.post2
3
+ Version: 2025.4.22.post3
4
4
  Summary: Earth Observation Training Data Lab
5
5
  Author-email: earthpulse <it@earthpulse.es>
6
6
  License-Expression: MIT
@@ -0,0 +1 @@
1
+ __version__ = "2025.04.22-3"
@@ -143,12 +143,15 @@ def get(
143
143
 
144
144
 
145
145
  @app.command()
146
- def deactivate(
147
- dataset_id: str = typer.Argument(None, help="ID of the dataset to deactivate")
146
+ def delete(
147
+ dataset: str = typer.Argument(None, help="Name of the dataset to deactivate")
148
148
  ):
149
+ """
150
+ Delete a dataset from the EOTDL.
151
+ """
149
152
  try:
150
- deactivate_dataset(dataset_id)
151
- typer.echo(f"Dataset {dataset_id} deactivated")
153
+ deactivate_dataset(dataset)
154
+ typer.echo(f"Dataset {dataset} deleted")
152
155
  except Exception as e:
153
156
  typer.echo(e)
154
157
 
@@ -134,12 +134,15 @@ def get(
134
134
 
135
135
 
136
136
  @app.command()
137
- def deactivate(
138
- model_id: str = typer.Argument(None, help="ID of the model to deactivate")
137
+ def delete(
138
+ model_name: str = typer.Argument(None, help="Name of the model to delete")
139
139
  ):
140
+ """
141
+ Delete a model from the EOTDL.
142
+ """
140
143
  try:
141
- deactivate_model(model_id)
142
- typer.echo(f"Model {model_id} deactivated")
144
+ deactivate_model(model_name)
145
+ typer.echo(f"Model {model_name} deleted")
143
146
  except Exception as e:
144
147
  typer.echo(e)
145
148
 
@@ -1,5 +1,6 @@
1
1
  from ..repos import DatasetsAPIRepo
2
-
2
+ from ..auth import with_auth
3
+ from .retrieve import retrieve_dataset
3
4
 
4
5
  def update_dataset(dataset_id, metadata, content, user):
5
6
  repo = DatasetsAPIRepo()
@@ -16,10 +17,11 @@ def update_dataset(dataset_id, metadata, content, user):
16
17
  raise Exception(error)
17
18
  return data
18
19
 
19
-
20
- def deactivate_dataset(dataset_id):
20
+ @with_auth
21
+ def deactivate_dataset(dataset_name, user):
22
+ dataset = retrieve_dataset(dataset_name)
21
23
  repo = DatasetsAPIRepo()
22
- data, error = repo.deactivate_dataset(dataset_id)
24
+ data, error = repo.deactivate_dataset(dataset['id'], user)
23
25
  if error:
24
26
  raise Exception(error)
25
27
  return data
@@ -1,6 +1,6 @@
1
1
  from ..repos import ModelsAPIRepo
2
-
3
-
2
+ from ..auth import with_auth
3
+ from .retrieve import retrieve_model
4
4
  def update_model(model_id, metadata, content, user):
5
5
  repo = ModelsAPIRepo()
6
6
  data, error = repo.update_model(
@@ -16,9 +16,11 @@ def update_model(model_id, metadata, content, user):
16
16
  raise Exception(error)
17
17
  return data
18
18
 
19
- def deactivate_model(model_id):
19
+ @with_auth
20
+ def deactivate_model(model_name, user):
21
+ model = retrieve_model(model_name)
20
22
  repo = ModelsAPIRepo()
21
- data, error = repo.deactivate_model(model_id)
23
+ data, error = repo.deactivate_model(model['id'], user)
22
24
  if error:
23
25
  raise Exception(error)
24
26
  return data
@@ -42,8 +42,9 @@ class DatasetsAPIRepo(APIRepo):
42
42
  )
43
43
  return self.format_response(response)
44
44
 
45
- def deactivate_dataset(self, dataset_name):
45
+ def deactivate_dataset(self, dataset_name, user):
46
46
  response = requests.patch(
47
- self.url + "datasets/deactivate/" + dataset_name
47
+ self.url + "datasets/deactivate/" + dataset_name,
48
+ headers=self.generate_headers(user),
48
49
  )
49
50
  return self.format_response(response)
@@ -38,8 +38,9 @@ class ModelsAPIRepo(APIRepo):
38
38
  )
39
39
  return self.format_response(response)
40
40
 
41
- def deactivate_model(self, model_name):
41
+ def deactivate_model(self, model_name, user):
42
42
  response = requests.patch(
43
- self.url + "models/deactivate/" + model_name
43
+ self.url + "models/deactivate/" + model_name,
44
+ headers=self.generate_headers(user),
44
45
  )
45
46
  return self.format_response(response)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "eotdl"
3
- version = "2025.04.22-2"
3
+ version = "2025.04.22-3"
4
4
  description = "Earth Observation Training Data Lab"
5
5
  authors = [
6
6
  {name = "earthpulse", email = "it@earthpulse.es"},
@@ -1 +0,0 @@
1
- __version__ = "2025.04.22-2"
File without changes
File without changes