kscale 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
kscale/__init__.py CHANGED
@@ -1,6 +1,6 @@
1
1
  """Defines the common interface for the K-Scale Python API."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.1.1"
4
4
 
5
5
  from pathlib import Path
6
6
 
kscale/requirements.txt CHANGED
@@ -3,7 +3,6 @@
3
3
  # Configuration
4
4
  omegaconf
5
5
  email_validator
6
- colorlogging
7
6
 
8
7
  # HTTP requests
9
8
  aiohttp
@@ -17,6 +16,7 @@ yarl
17
16
  # CLI
18
17
  aiofiles
19
18
  click
19
+ colorlogging
20
20
  tabulate
21
21
 
22
22
  # Async
@@ -12,6 +12,9 @@ from kscale.web.utils import get_cache_dir
12
12
 
13
13
  logger = logging.getLogger(__name__)
14
14
 
15
+ UPLOAD_TIMEOUT = 300.0
16
+ DOWNLOAD_TIMEOUT = 60.0
17
+
15
18
 
16
19
  class RobotClassClient(BaseClient):
17
20
  async def get_robot_classes(self) -> list[RobotClass]:
@@ -77,7 +80,9 @@ class RobotClassClient(BaseClient):
77
80
  auth=True,
78
81
  )
79
82
  response = RobotUploadURDFResponse.model_validate(data)
80
- async with httpx.AsyncClient() as client:
83
+ async with httpx.AsyncClient(
84
+ timeout=httpx.Timeout(UPLOAD_TIMEOUT),
85
+ ) as client:
81
86
  async with client.stream(
82
87
  "PUT",
83
88
  response.url,
@@ -97,7 +102,9 @@ class RobotClassClient(BaseClient):
97
102
  cache_path.parent.mkdir(parents=True, exist_ok=True)
98
103
 
99
104
  logger.info("Downloading URDF file from %s", response.url)
100
- async with httpx.AsyncClient() as client:
105
+ async with httpx.AsyncClient(
106
+ timeout=httpx.Timeout(DOWNLOAD_TIMEOUT),
107
+ ) as client:
101
108
  with open(cache_path, "wb") as file:
102
109
  hash_value = hashlib.md5()
103
110
  async with client.stream("GET", response.url) as r:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: kscale
3
- Version: 0.1.0
3
+ Version: 0.1.1
4
4
  Summary: The kscale project
5
5
  Home-page: https://github.com/kscalelabs/kscale
6
6
  Author: Benjamin Bolte
@@ -9,7 +9,6 @@ Description-Content-Type: text/markdown
9
9
  License-File: LICENSE
10
10
  Requires-Dist: omegaconf
11
11
  Requires-Dist: email_validator
12
- Requires-Dist: colorlogging
13
12
  Requires-Dist: aiohttp
14
13
  Requires-Dist: cryptography
15
14
  Requires-Dist: httpx
@@ -19,6 +18,7 @@ Requires-Dist: requests
19
18
  Requires-Dist: yarl
20
19
  Requires-Dist: aiofiles
21
20
  Requires-Dist: click
21
+ Requires-Dist: colorlogging
22
22
  Requires-Dist: tabulate
23
23
  Requires-Dist: async-lru
24
24
  Requires-Dist: krec
@@ -1,10 +1,10 @@
1
- kscale/__init__.py,sha256=2jGtLxds4EdX8FEGT3yA74b0VgrkOEBx_PxiWvoh924,172
1
+ kscale/__init__.py,sha256=VTe_Q7u82mwbBYPfRHuUZc5OSlkHHxN5JxTCKvZnASU,172
2
2
  kscale/api.py,sha256=jmiuFurTN_Gj_-k-6asqxw8wp-_bgJUXgMPFgJ4lqHA,230
3
3
  kscale/cli.py,sha256=PMHLKR5UwdbbReVmqHXpJ-K9-mGHv_0I7KQkwxmFcUA,881
4
4
  kscale/conf.py,sha256=i5gDTs8D73l2OvX4pOlPWtT2PC26MmoKw3PPwf8HM7U,1526
5
5
  kscale/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
6
  kscale/requirements-dev.txt,sha256=WI7-ea4IRJakmqVMN8QKhOsDGrghwtvk03aIsFaNSIw,130
7
- kscale/requirements.txt,sha256=lKDpyebp9nHZ2uHIuS6FQ6SAg7YO_0sDyb67MFmP4h4,214
7
+ kscale/requirements.txt,sha256=_BGbnKTQaXKx0bNEG0wguod9swsiCb2mF6rLm7sFJ2Q,214
8
8
  kscale/artifacts/__init__.py,sha256=RK8wdybtCJPgdLLJ8R8-YMi1Ph5ojqAKVJZowHONtgo,232
9
9
  kscale/artifacts/plane.obj,sha256=x59-IIrWpLjhotChiqT2Ul6U8s0RcHkaEeUZb4KXL1c,348
10
10
  kscale/artifacts/plane.urdf,sha256=LCiTk14AyTHjkZ1jvsb0hNaEaJUxDb8Z1JjsgpXu3YM,819
@@ -24,13 +24,13 @@ kscale/web/clients/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
24
24
  kscale/web/clients/base.py,sha256=NRqRH2JTXjJLUMDM93txKgwFu9bQRYhCYLYy7vE76Ik,11462
25
25
  kscale/web/clients/client.py,sha256=QjBicdHQYNoUG9XRjAYmGu3THae9DzWa_hQox3OO1Gw,214
26
26
  kscale/web/clients/robot.py,sha256=HMfJnkDxaJ_o7X2vdYYS9iob1JRoBG2qiGmQpCQZpAk,1485
27
- kscale/web/clients/robot_class.py,sha256=yC0G4pVPDoEskf0QfQLxejyDgHLT8gR1RLJ8ioCGoOM,4236
27
+ kscale/web/clients/robot_class.py,sha256=skk0XccQGij8VhmeZORjp0UMhWwzromkd6qCf108V7U,4406
28
28
  kscale/web/clients/user.py,sha256=9iv8J-ROm_yBIwi-0oqldReLkNBFktdHRv3UCOxBzjY,377
29
29
  kscale/web/gen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
30
  kscale/web/gen/api.py,sha256=SovcII36JFgK9jd2CXlLPMjiUROGB4vEnapOsYMUrkU,2188
31
- kscale-0.1.0.dist-info/LICENSE,sha256=HCN2bImAzUOXldAZZI7JZ9PYq6OwMlDAP_PpX1HnuN0,1071
32
- kscale-0.1.0.dist-info/METADATA,sha256=EBGeAHNhtgjRQ38M_3n_mQ1LFlaogmA3qgUsVa45zEA,2340
33
- kscale-0.1.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
34
- kscale-0.1.0.dist-info/entry_points.txt,sha256=N_0pCpPnwGDYVzOeuaSOrbJkS5L3lS9d8CxpJF1f8UI,62
35
- kscale-0.1.0.dist-info/top_level.txt,sha256=C2ynjYwopg6YjgttnI2dJjasyq3EKNmYp-IfQg9Xms4,7
36
- kscale-0.1.0.dist-info/RECORD,,
31
+ kscale-0.1.1.dist-info/LICENSE,sha256=HCN2bImAzUOXldAZZI7JZ9PYq6OwMlDAP_PpX1HnuN0,1071
32
+ kscale-0.1.1.dist-info/METADATA,sha256=8N3og_O5jjo8JokdIJrjLFrQEkPj8d413-A5iTbceiA,2340
33
+ kscale-0.1.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
34
+ kscale-0.1.1.dist-info/entry_points.txt,sha256=N_0pCpPnwGDYVzOeuaSOrbJkS5L3lS9d8CxpJF1f8UI,62
35
+ kscale-0.1.1.dist-info/top_level.txt,sha256=C2ynjYwopg6YjgttnI2dJjasyq3EKNmYp-IfQg9Xms4,7
36
+ kscale-0.1.1.dist-info/RECORD,,
File without changes