kleinkram 0.51.0.dev20251003125418__tar.gz → 0.51.0.dev20251010055743__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.

Potentially problematic release.


This version of kleinkram might be problematic. Click here for more details.

Files changed (57) hide show
  1. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/PKG-INFO +1 -1
  2. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/pagination.py +3 -0
  3. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/routes.py +10 -3
  4. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_project.py +1 -1
  5. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/core.py +3 -1
  6. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram.egg-info/PKG-INFO +1 -1
  7. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/setup.cfg +1 -1
  8. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/README.md +0 -0
  9. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/__init__.py +0 -0
  10. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/__main__.py +0 -0
  11. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/_version.py +0 -0
  12. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/__init__.py +0 -0
  13. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/client.py +0 -0
  14. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/deser.py +0 -0
  15. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/file_transfer.py +0 -0
  16. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/api/query.py +0 -0
  17. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/auth.py +0 -0
  18. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/__init__.py +0 -0
  19. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_download.py +0 -0
  20. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_endpoint.py +0 -0
  21. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_file.py +0 -0
  22. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_list.py +0 -0
  23. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_mission.py +0 -0
  24. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_upload.py +0 -0
  25. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/_verify.py +0 -0
  26. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/app.py +0 -0
  27. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/cli/error_handling.py +0 -0
  28. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/config.py +0 -0
  29. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/errors.py +0 -0
  30. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/main.py +0 -0
  31. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/models.py +0 -0
  32. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/printing.py +0 -0
  33. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/py.typed +0 -0
  34. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/types.py +0 -0
  35. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/utils.py +0 -0
  36. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram/wrappers.py +0 -0
  37. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram.egg-info/SOURCES.txt +0 -0
  38. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram.egg-info/dependency_links.txt +0 -0
  39. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram.egg-info/entry_points.txt +0 -0
  40. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram.egg-info/requires.txt +0 -0
  41. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/kleinkram.egg-info/top_level.txt +0 -0
  42. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/pyproject.toml +0 -0
  43. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/requirements.txt +0 -0
  44. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/setup.py +0 -0
  45. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/testing/__init__.py +0 -0
  46. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/testing/backend_fixtures.py +0 -0
  47. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/__init__.py +0 -0
  48. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/conftest.py +0 -0
  49. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_config.py +0 -0
  50. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_core.py +0 -0
  51. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_end_to_end.py +0 -0
  52. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_error_handling.py +0 -0
  53. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_fixtures.py +0 -0
  54. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_printing.py +0 -0
  55. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_query.py +0 -0
  56. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_utils.py +0 -0
  57. {kleinkram-0.51.0.dev20251003125418 → kleinkram-0.51.0.dev20251010055743}/tests/test_wrappers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kleinkram
3
- Version: 0.51.0.dev20251003125418
3
+ Version: 0.51.0.dev20251010055743
4
4
  Summary: give me your bags
5
5
  Author: Cyrill Püntener, Dominique Garmier, Johann Schwabe
6
6
  Author-email: pucyril@ethz.ch, dgarmier@ethz.ch, jschwab@ethz.ch
@@ -17,6 +17,7 @@ DataPage = Dict[str, Any]
17
17
  PAGE_SIZE = 128
18
18
  SKIP = "skip"
19
19
  TAKE = "take"
20
+ EXACT_MATCH = "exactMatch"
20
21
 
21
22
 
22
23
  def paginated_request(
@@ -25,6 +26,7 @@ def paginated_request(
25
26
  params: Optional[Mapping[str, Any]] = None,
26
27
  max_entries: Optional[int] = None,
27
28
  page_size: int = PAGE_SIZE,
29
+ exact_match: bool = False,
28
30
  ) -> Generator[DataPage, None, None]:
29
31
  total_entries_count = 0
30
32
 
@@ -32,6 +34,7 @@ def paginated_request(
32
34
 
33
35
  params[TAKE] = page_size
34
36
  params[SKIP] = 0
37
+ params[EXACT_MATCH] = str(exact_match).lower() # pass string rather than bool
35
38
 
36
39
  while True:
37
40
  resp = client.get(endpoint, params=params)
@@ -163,15 +163,22 @@ def get_projects(
163
163
  client: AuthenticatedClient,
164
164
  project_query: ProjectQuery,
165
165
  max_entries: Optional[int] = None,
166
+ exact_match: bool = False,
166
167
  ) -> Generator[Project, None, None]:
167
168
  params = _project_query_to_params(project_query)
168
169
  response_stream = paginated_request(
169
- client, PROJECT_ENDPOINT, params=params, max_entries=max_entries
170
+ client,
171
+ PROJECT_ENDPOINT,
172
+ params=params,
173
+ max_entries=max_entries,
174
+ exact_match=exact_match,
170
175
  )
171
176
  yield from map(lambda p: _parse_project(ProjectObject(p)), response_stream)
172
177
 
173
178
 
174
- def get_project(client: AuthenticatedClient, query: ProjectQuery) -> Project:
179
+ def get_project(
180
+ client: AuthenticatedClient, query: ProjectQuery, exact_match: bool = False
181
+ ) -> Project:
175
182
  """\
176
183
  get a unique project by specifying a project spec
177
184
  """
@@ -180,7 +187,7 @@ def get_project(client: AuthenticatedClient, query: ProjectQuery) -> Project:
180
187
  f"Project query does not uniquely determine project: {query}"
181
188
  )
182
189
  try:
183
- return next(get_projects(client, query))
190
+ return next(get_projects(client, query, exact_match=exact_match))
184
191
  except StopIteration:
185
192
  raise ProjectNotFound(f"Project not found: {query}")
186
193
 
@@ -90,7 +90,7 @@ def delete(
90
90
  project_query = ProjectQuery(ids=project_ids, patterns=project_patterns)
91
91
 
92
92
  client = AuthenticatedClient()
93
- project_id = get_project(client=client, query=project_query).id
93
+ project_id = get_project(client=client, query=project_query, exact_match=True).id
94
94
  kleinkram.core.delete_project(client=client, project_id=project_id)
95
95
 
96
96
 
@@ -282,7 +282,9 @@ def delete_mission(*, client: AuthenticatedClient, mission_id: UUID) -> None:
282
282
 
283
283
  def delete_project(*, client: AuthenticatedClient, project_id: UUID) -> None:
284
284
  pquery = ProjectQuery(ids=[project_id])
285
- _ = kleinkram.api.routes.get_project(client, pquery) # check if project exists
285
+ _ = kleinkram.api.routes.get_project(
286
+ client, pquery, exact_match=True
287
+ ) # check if project exists
286
288
 
287
289
  # delete all missions and files
288
290
  missions = list(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kleinkram
3
- Version: 0.51.0.dev20251003125418
3
+ Version: 0.51.0.dev20251010055743
4
4
  Summary: give me your bags
5
5
  Author: Cyrill Püntener, Dominique Garmier, Johann Schwabe
6
6
  Author-email: pucyril@ethz.ch, dgarmier@ethz.ch, jschwab@ethz.ch
@@ -1,6 +1,6 @@
1
1
  [metadata]
2
2
  name = kleinkram
3
- version = 0.51.0-dev20251003125418
3
+ version = 0.51.0-dev20251010055743
4
4
  description = give me your bags
5
5
  long_description = file: README.md
6
6
  long_description_content_type = text/markdown