kleinkram 0.21.8.dev20240920104547__tar.gz → 0.21.9.dev20240920112301__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 (24) hide show
  1. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/PKG-INFO +1 -1
  2. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/pyproject.toml +1 -1
  3. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/helper.py +33 -1
  4. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/main.py +2 -27
  5. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/.gitignore +0 -0
  6. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/LICENSE +0 -0
  7. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/README.md +0 -0
  8. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/deploy.sh +0 -0
  9. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/dev.sh +0 -0
  10. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/requirements.txt +0 -0
  11. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/klein.py +0 -0
  12. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/__init__.py +0 -0
  13. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/api_client.py +0 -0
  14. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/auth/auth.py +0 -0
  15. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/consts.py +0 -0
  16. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/endpoint/endpoint.py +0 -0
  17. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/error_handling.py +0 -0
  18. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/file/file.py +0 -0
  19. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/mission/mission.py +0 -0
  20. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/project/project.py +0 -0
  21. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/queue/queue.py +0 -0
  22. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/tag/tag.py +0 -0
  23. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/topic/topic.py +0 -0
  24. {kleinkram-0.21.8.dev20240920104547 → kleinkram-0.21.9.dev20240920112301}/src/kleinkram/user/user.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kleinkram
3
- Version: 0.21.8.dev20240920104547
3
+ Version: 0.21.9.dev20240920112301
4
4
  Summary: A CLI for the ETH project kleinkram
5
5
  Project-URL: Homepage, https://github.com/leggedrobotics/kleinkram
6
6
  Project-URL: Issues, https://github.com/leggedrobotics/kleinkram/issues
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "kleinkram"
7
- version = "0.21.8-dev20240920104547"
7
+ version = "0.21.9-dev20240920112301"
8
8
  description = "A CLI for the ETH project kleinkram"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.7"
@@ -2,8 +2,10 @@ import glob
2
2
  import os
3
3
  import queue
4
4
  import threading
5
+ from datetime import datetime
5
6
  from functools import partial
6
7
 
8
+ import typer
7
9
  from botocore.config import Config
8
10
  from typing_extensions import Dict
9
11
  import boto3
@@ -117,7 +119,7 @@ def uploadFiles(files: Dict[str, str], credentials: Dict[str, str], nrThreads: i
117
119
  else:
118
120
  minio_endpoint = api_endpoint.replace("api", "minio")
119
121
 
120
- config = Config(retries = {
122
+ config = Config(retries={
121
123
  'max_attempts': 10,
122
124
  'mode': 'standard'
123
125
  })
@@ -168,6 +170,7 @@ def uploadFile(_queue: queue.Queue, s3: BaseClient, transferCallback: TransferCa
168
170
  print(f"Error uploading {filename}: {e}")
169
171
  _queue.task_done()
170
172
 
173
+
171
174
  def canUploadMission(client: AuthenticatedClient, project_uuid: str):
172
175
  permissions = client.get("/user/permissions")
173
176
  permissions.raise_for_status()
@@ -177,6 +180,35 @@ def canUploadMission(client: AuthenticatedClient, project_uuid: str):
177
180
  return max_for_project >= 10
178
181
 
179
182
 
183
+ def promptForTags(setTags: Dict[str, str], requiredTags: Dict[str, str]):
184
+ for required_tag in requiredTags:
185
+ if required_tag["name"] not in setTags:
186
+ while True:
187
+ if required_tag["datatype"] in ["LOCATION", "STRING", "LINK"]:
188
+ tag_value = typer.prompt("Provide value for required tag " + required_tag["name"])
189
+ if tag_value != "":
190
+ break
191
+ elif required_tag["datatype"] == "BOOLEAN":
192
+ tag_value = typer.confirm("Provide (y/N) for required tag " + required_tag["name"])
193
+ break
194
+ elif required_tag["datatype"] == "NUMBER":
195
+ tag_value = typer.prompt("Provide number for required tag " + required_tag["name"])
196
+ try:
197
+ tag_value = float(tag_value)
198
+ break
199
+ except ValueError:
200
+ typer.echo("Invalid number format. Please provide a number.")
201
+ elif required_tag["datatype"] == "DATE":
202
+ tag_value = typer.prompt("Provide date for required tag " + required_tag["name"])
203
+ try:
204
+ tag_value = datetime.strptime(tag_value, "%Y-%m-%d %H:%M:%S")
205
+ break
206
+ except ValueError:
207
+ print("Invalid date format. Please use 'YYYY-MM-DD HH:MM:SS'")
208
+
209
+ setTags[required_tag["uuid"]] = tag_value
210
+
211
+
180
212
  if __name__ == "__main__":
181
213
  res = expand_and_match(
182
214
  "~/Downloads/dodo_mission_2024_02_08-20240408T074313Z-003/**.bag"
@@ -22,7 +22,7 @@ from kleinkram.queue.queue import queue
22
22
  from kleinkram.tag.tag import tag
23
23
  from kleinkram.topic.topic import topic
24
24
  from kleinkram.user.user import user
25
- from .helper import uploadFiles, expand_and_match, canUploadMission
25
+ from .helper import uploadFiles, expand_and_match, canUploadMission, promptForTags
26
26
 
27
27
 
28
28
  class CommandPanel(str, Enum):
@@ -168,32 +168,7 @@ def upload(
168
168
  tags = []
169
169
  tags_dict = {item.split(":")[0]: item.split(":")[1] for item in tags}
170
170
 
171
- for required_tag in project_json["requiredTags"]:
172
- if required_tag["name"] not in tags_dict:
173
- while True:
174
- if required_tag["datatype"] in ["LOCATION", "STRING", "LINK"]:
175
- tag_value = typer.prompt("Provide value for required tag " + required_tag["name"])
176
- if tag_value != "":
177
- break
178
- elif required_tag["datatype"] == "BOOLEAN":
179
- tag_value = typer.confirm("Provide (y/N) for required tag " + required_tag["name"])
180
- break
181
- elif required_tag["datatype"] == "NUMBER":
182
- tag_value = typer.prompt("Provide number for required tag " + required_tag["name"])
183
- try:
184
- tag_value = float(tag_value)
185
- break
186
- except ValueError:
187
- typer.echo("Invalid number format. Please provide a number.")
188
- elif required_tag["datatype"] == "DATE":
189
- tag_value = typer.prompt("Provide date for required tag " + required_tag["name"])
190
- try:
191
- tag_value = datetime.strptime(tag_value, "%Y-%m-%d %H:%M:%S")
192
- break
193
- except ValueError:
194
- print("Invalid date format. Please use 'YYYY-MM-DD HH:MM:SS'")
195
-
196
- tags_dict[required_tag["uuid"]] = tag_value
171
+ promptForTags(tags_dict, project_json["requiredTags"])
197
172
 
198
173
  get_mission_url = "/mission/byName"
199
174
  mission_response = client.get(get_mission_url, params={"name": mission})