kleinkram 0.30.2.dev20241010132702__py3-none-any.whl → 0.30.4.dev20241010181849__py3-none-any.whl

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.

@@ -156,8 +156,8 @@ def mission_by_uuid(
156
156
 
157
157
  @missionCommands.command("download")
158
158
  def download(
159
- mission_uuid: Annotated[str, typer.Argument()],
160
- local_path: Annotated[str, typer.Argument()],
159
+ mission_uuid: Annotated[List[str], typer.Option(help="UUIDs of Mission to download")],
160
+ local_path: Annotated[str, typer.Option()],
161
161
  ):
162
162
  """
163
163
 
@@ -172,34 +172,40 @@ def download(
172
172
  raise ValueError(f"Local path '{local_path}' is not empty, but must be empty.")
173
173
 
174
174
  client = AuthenticatedClient()
175
- response = client.get("/mission/download", params={"uuid": mission_uuid})
175
+ for single_mission_uuid in mission_uuid:
176
+ response = client.get("/mission/download", params={"uuid": single_mission_uuid})
177
+ try:
178
+ response.raise_for_status()
179
+ except httpx.HTTPError as e:
180
+ raise AccessDeniedException(
181
+ f"Failed to download file."
182
+ f"Consider using the following command to list all missions: 'klein mission list --verbose'\n",
183
+ f"{response.json()['message']} ({response.status_code})",
184
+ )
176
185
 
177
- try:
178
- response.raise_for_status()
179
- except httpx.HTTPError as e:
180
- raise AccessDeniedException(
181
- f"Failed to download file."
182
- f"Consider using the following command to list all missions: 'klein mission list --verbose'\n",
183
- f"{response.json()['message']} ({response.status_code})",
184
- )
186
+ paths = response.json()
187
+ if(len(paths) == 0):
188
+ continue
189
+ mission_name = paths[0].split("/")[5] # Trust me bro
185
190
 
186
- paths = response.json()
191
+ local_mission_path = os.path.join(local_path, mission_name)
192
+ os.mkdir(local_mission_path)
187
193
 
188
- print(f"Downloading files to {local_path}:")
189
- for path in paths:
194
+ print(f"Downloading files to {local_mission_path}:")
195
+ for path in paths:
190
196
 
191
- filename = path.split("/")[-1].split("?")[0]
192
- print(f" - {filename}")
197
+ filename = path.split("/")[-1].split("?")[0]
198
+ print(f" - {filename}")
193
199
 
194
- response = requests.get(path, stream=True) # Enable streaming mode
195
- chunk_size = 1024 * 100 # 100 KB chunks, adjust size if needed
200
+ response = requests.get(path, stream=True) # Enable streaming mode
201
+ chunk_size = 1024 * 100 # 100 KB chunks, adjust size if needed
196
202
 
197
- # Open the file for writing in binary mode
198
- with open(os.path.join(local_path, filename), "wb") as f:
199
- for chunk in response.iter_content(chunk_size=chunk_size):
200
- if chunk: # Filter out keep-alive new chunks
201
- f.write(chunk)
202
- print(f" Downloaded {filename}")
203
+ # Open the file for writing in binary mode
204
+ with open(os.path.join(local_mission_path, filename), "wb") as f:
205
+ for chunk in response.iter_content(chunk_size=chunk_size):
206
+ if chunk: # Filter out keep-alive new chunks
207
+ f.write(chunk)
208
+ print(f" Downloaded {filename}")
203
209
 
204
210
 
205
211
  @missionCommands.command("upload")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kleinkram
3
- Version: 0.30.2.dev20241010132702
3
+ Version: 0.30.4.dev20241010181849
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
@@ -7,14 +7,14 @@ kleinkram/main.py,sha256=9u_msMlPhphfaL92GNrm-cRUeSHxc_mOFPeXLDzv-ok,9642
7
7
  kleinkram/auth/auth.py,sha256=w3-TsxWxURzLQ3_p43zgV4Rlh4dVL_WqI6HG2aes-b4,4991
8
8
  kleinkram/endpoint/endpoint.py,sha256=uez5UrAnP7L5rVHUysA9tFkN3dB3dG1Ojt9g3w-UWuQ,1441
9
9
  kleinkram/file/file.py,sha256=gLCZDHHgQWq25OmeG-lwkIh4aRZaLK12xxLkbhZ_m-g,5390
10
- kleinkram/mission/mission.py,sha256=wI83aQbWj4P6zydVThMJiAdQHAVQWE98_-VWE5K12HQ,8684
10
+ kleinkram/mission/mission.py,sha256=gdkR6IWgyBGf0IgnEfcRBgRlNUSKqm_J25yX1V0dY9Q,9093
11
11
  kleinkram/project/project.py,sha256=yDygz9JJ4Td5VsoCoCLm36HccRyd7jl65Hq05uxEGts,1602
12
12
  kleinkram/queue/queue.py,sha256=MaLBjAu8asi9BkPvbbT-5AobCcpy3ex5rxM1kHpRINA,181
13
13
  kleinkram/tag/tag.py,sha256=JSHbDPVfsvP34MuQhw__DPQk-Bah5G9BgwYsj_K_JGc,1805
14
14
  kleinkram/topic/topic.py,sha256=IaXhrIHcJ3FSIr0WC-N7u9fkz-lAvSBgQklTX67t0Yc,1641
15
15
  kleinkram/user/user.py,sha256=hDrbWeFPPnh2sswDd445SwcIFGyAbfXXWpYq1VqrK0g,1379
16
- kleinkram-0.30.2.dev20241010132702.dist-info/METADATA,sha256=HlmaCi4njfo4z508YFE89BQDHDls5gW7uOTIO1DNSfo,845
17
- kleinkram-0.30.2.dev20241010132702.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
18
- kleinkram-0.30.2.dev20241010132702.dist-info/entry_points.txt,sha256=RHXtRzcreVHImatgjhQwZQ6GdJThElYjHEWcR1BPXUI,45
19
- kleinkram-0.30.2.dev20241010132702.dist-info/licenses/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
20
- kleinkram-0.30.2.dev20241010132702.dist-info/RECORD,,
16
+ kleinkram-0.30.4.dev20241010181849.dist-info/METADATA,sha256=0bO3d5o03qfhq1xTCwd4MahxeJhpGrAL22HEjafD7FQ,845
17
+ kleinkram-0.30.4.dev20241010181849.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
18
+ kleinkram-0.30.4.dev20241010181849.dist-info/entry_points.txt,sha256=RHXtRzcreVHImatgjhQwZQ6GdJThElYjHEWcR1BPXUI,45
19
+ kleinkram-0.30.4.dev20241010181849.dist-info/licenses/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
20
+ kleinkram-0.30.4.dev20241010181849.dist-info/RECORD,,