current-data-py 0.1.11__tar.gz → 0.1.12__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 (95) hide show
  1. {current_data_py-0.1.11 → current_data_py-0.1.12}/MANIFEST.in +0 -0
  2. {current_data_py-0.1.11 → current_data_py-0.1.12}/PKG-INFO +36 -13
  3. current_data_py-0.1.11/current_data_py.egg-info/PKG-INFO → current_data_py-0.1.12/README.md +32 -23
  4. {current_data_py-0.1.11 → current_data_py-0.1.12}/__init__.py +0 -0
  5. current_data_py-0.1.11/README.md → current_data_py-0.1.12/current_data_py.egg-info/PKG-INFO +46 -9
  6. {current_data_py-0.1.11 → current_data_py-0.1.12}/current_data_py.egg-info/SOURCES.txt +4 -0
  7. {current_data_py-0.1.11 → current_data_py-0.1.12}/current_data_py.egg-info/dependency_links.txt +0 -0
  8. {current_data_py-0.1.11 → current_data_py-0.1.12}/current_data_py.egg-info/requires.txt +1 -2
  9. {current_data_py-0.1.11 → current_data_py-0.1.12}/current_data_py.egg-info/top_level.txt +0 -0
  10. {current_data_py-0.1.11 → current_data_py-0.1.12}/decoding.py +3 -6
  11. {current_data_py-0.1.11 → current_data_py-0.1.12}/examples/__init__.py +0 -0
  12. {current_data_py-0.1.11 → current_data_py-0.1.12}/examples/list_schemas.py +0 -0
  13. {current_data_py-0.1.11 → current_data_py-0.1.12}/examples/read_remote_td.py +0 -0
  14. {current_data_py-0.1.11 → current_data_py-0.1.12}/examples/read_td.py +0 -0
  15. {current_data_py-0.1.11 → current_data_py-0.1.12}/examples/write_td.py +0 -0
  16. {current_data_py-0.1.11 → current_data_py-0.1.12}/labeling.py +0 -0
  17. {current_data_py-0.1.11 → current_data_py-0.1.12}/management.py +3 -3
  18. {current_data_py-0.1.11 → current_data_py-0.1.12}/oss.py +0 -0
  19. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/labeling/service/service_pb2.py +0 -0
  20. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/labeling/service/service_pb2_grpc.py +0 -0
  21. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/labeling/task/task_pb2.py +0 -0
  22. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/labeling/template/template_pb2.py +0 -0
  23. current_data_py-0.1.12/proto_gen/python/management/metadata/metadata_pb2.py +64 -0
  24. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/management/selection/selection_pb2.py +0 -0
  25. current_data_py-0.1.12/proto_gen/python/management/service/service_pb2.py +80 -0
  26. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/management/service/service_pb2_grpc.py +33 -0
  27. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/builtin_interfaces/duration_pb2.py +0 -0
  28. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/builtin_interfaces/time_pb2.py +0 -0
  29. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/custom_msgs/joint_current_pb2.py +0 -0
  30. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/custom_msgs/pose_rpy_pb2.py +0 -0
  31. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/custom_msgs/slam_quality_pb2.py +0 -0
  32. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/custom_msgs/sonic_frame_pb2.py +0 -0
  33. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/custom_msgs/target_quality_pb2.py +0 -0
  34. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/foxglove/compressed_audio_pb2.py +0 -0
  35. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/foxglove/compressed_video_pb2.py +0 -0
  36. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/point32_pb2.py +0 -0
  37. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/point_pb2.py +0 -0
  38. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/pose_pb2.py +0 -0
  39. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/pose_stamped_pb2.py +0 -0
  40. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/pose_with_covariance_pb2.py +0 -0
  41. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/pose_with_covariance_stamped_pb2.py +0 -0
  42. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/quaternion_pb2.py +0 -0
  43. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/transform_pb2.py +0 -0
  44. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/transform_stamped_pb2.py +0 -0
  45. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/twist_pb2.py +0 -0
  46. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/twist_stamped_pb2.py +0 -0
  47. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/twist_with_covariance_pb2.py +0 -0
  48. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/twist_with_covariance_stamped_pb2.py +0 -0
  49. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/vector3_pb2.py +0 -0
  50. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/wrench_pb2.py +0 -0
  51. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/geometry_msgs/wrench_stamped_pb2.py +0 -0
  52. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/nav_msgs/map_meta_data_pb2.py +0 -0
  53. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/nav_msgs/occupancy_grid_pb2.py +0 -0
  54. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/nav_msgs/odometry_pb2.py +0 -0
  55. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/nav_msgs/path_pb2.py +0 -0
  56. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/battery_state_pb2.py +0 -0
  57. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/camera_info_pb2.py +0 -0
  58. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/compressed_image_pb2.py +0 -0
  59. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/image_pb2.py +0 -0
  60. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/imu_pb2.py +0 -0
  61. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/joint_state_pb2.py +0 -0
  62. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/laser_scan_pb2.py +0 -0
  63. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/nav_sat_fix_pb2.py +0 -0
  64. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/nav_sat_status_pb2.py +0 -0
  65. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/point_cloud2_pb2.py +0 -0
  66. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/point_field_pb2.py +0 -0
  67. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/range_pb2.py +0 -0
  68. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/sensor_msgs/region_of_interest_pb2.py +0 -0
  69. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/bool_pb2.py +0 -0
  70. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/color_rgba_pb2.py +0 -0
  71. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/float32_pb2.py +0 -0
  72. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/float64_pb2.py +0 -0
  73. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/header_pb2.py +0 -0
  74. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/int32_pb2.py +0 -0
  75. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/string_pb2.py +0 -0
  76. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/std_msgs/uint32_pb2.py +0 -0
  77. {current_data_py-0.1.11 → current_data_py-0.1.12}/proto_gen/python/msg/tf2_msgs/tf_message_pb2.py +0 -0
  78. {current_data_py-0.1.11 → current_data_py-0.1.12}/pyproject.toml +4 -4
  79. {current_data_py-0.1.11 → current_data_py-0.1.12}/remote/__init__.py +0 -0
  80. {current_data_py-0.1.11 → current_data_py-0.1.12}/remote/client.py +53 -12
  81. {current_data_py-0.1.11 → current_data_py-0.1.12}/remote/source.py +2 -1
  82. current_data_py-0.1.12/remote/tos_source.py +84 -0
  83. {current_data_py-0.1.11 → current_data_py-0.1.12}/schema/__init__.py +0 -0
  84. {current_data_py-0.1.11 → current_data_py-0.1.12}/schema/message_metadata.py +0 -0
  85. {current_data_py-0.1.11 → current_data_py-0.1.12}/setup.cfg +0 -0
  86. {current_data_py-0.1.11 → current_data_py-0.1.12}/setup.py +0 -0
  87. {current_data_py-0.1.11 → current_data_py-0.1.12}/tests/check_environment.py +0 -0
  88. {current_data_py-0.1.11 → current_data_py-0.1.12}/tests/check_labeling.py +0 -0
  89. {current_data_py-0.1.11 → current_data_py-0.1.12}/tests/check_management.py +2 -2
  90. {current_data_py-0.1.11 → current_data_py-0.1.12}/tests/check_oss.py +0 -0
  91. {current_data_py-0.1.11 → current_data_py-0.1.12}/tests/check_package.py +0 -0
  92. {current_data_py-0.1.11 → current_data_py-0.1.12}/tests/check_remote.py +4 -3
  93. current_data_py-0.1.12/tos.py +170 -0
  94. current_data_py-0.1.11/proto_gen/python/management/metadata/metadata_pb2.py +0 -62
  95. current_data_py-0.1.11/proto_gen/python/management/service/service_pb2.py +0 -83
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: current-data-py
3
- Version: 0.1.11
3
+ Version: 0.1.12
4
4
  Summary: Current Data protobuf messages and schema metadata
5
5
  Requires-Python: >=3.9
6
6
  Description-Content-Type: text/markdown
@@ -8,9 +8,9 @@ Requires-Dist: protobuf>=3.20
8
8
  Requires-Dist: turbodata==0.1.0
9
9
  Requires-Dist: grpcio>=1.51.1
10
10
  Requires-Dist: alibabacloud-oss-v2<2,>=1.4.0
11
- Provides-Extra: decode
12
- Requires-Dist: av>=12; extra == "decode"
13
- Requires-Dist: pillow>=9; extra == "decode"
11
+ Requires-Dist: tos<3,>=2.9
12
+ Requires-Dist: av>=12
13
+ Requires-Dist: pillow>=9
14
14
 
15
15
  # current-data-py
16
16
 
@@ -170,9 +170,8 @@ retry or fall back to earlier RPC versions. Old servers return `UNIMPLEMENTED`;
170
170
  unconfigured destinations return `FAILED_PRECONDITION`. A response whose
171
171
  provider differs from the request raises `ValueError`.
172
172
 
173
- These methods only fetch credentials. Pass TOS credentials to a native TOS
174
- client and refresh them before expiration. `OSSClient`, `DataClient`, metadata
175
- registration and signed URLs have not been extended to TOS by this change.
173
+ These methods only fetch credentials. For file transfers and TD reads with automatic
174
+ credential refresh, see [TOS](#tos). Signed download URLs remain OSS-only.
176
175
 
177
176
  ## Remote TD reads
178
177
 
@@ -180,12 +179,11 @@ registration and signed URLs have not been extended to TOS by this change.
180
179
 
181
180
  > [!IMPORTANT]
182
181
  > **Video decoding requires PyAV, Pillow and the FFmpeg native libraries used by
183
- > PyAV.** `open_td()` enables decoding by default, but a base `current-data-py`
184
- > installation does not install the video dependencies. Install the `[decode]`
185
- > extra in every environment that decodes video, including DataLoader workers.
182
+ > PyAV.** `current-data-py` installs PyAV and Pillow by default. Install the package
183
+ > in every environment that decodes video, including DataLoader workers.
186
184
 
187
185
  ```bash
188
- python -m pip install --only-binary=av,pillow 'current-data-py[decode]'
186
+ python -m pip install --only-binary=av,pillow current-data-py
189
187
  ```
190
188
 
191
189
  - **Prebuilt wheels:** PyAV wheels bundle FFmpeg libraries on supported platforms;
@@ -272,8 +270,9 @@ to each call.
272
270
 
273
271
  ### Storage and credentials
274
272
 
275
- `DataClient.open_td()` accepts an optional `bucket` argument. Without it, reads
276
- use the management service's `OSS_READ_BUCKET` and `OSS_READ_PREFIX` defaults.
273
+ `DataClient.open_td()` accepts optional `bucket` and `provider` arguments. OSS
274
+ references without either selection retain the service's `OSS_READ_BUCKET` and
275
+ `OSS_READ_PREFIX` defaults. See [TOS](#tos) for provider selection.
277
276
  With it, the SDK uses `GetReadCredentialsV2` for whole-bucket credentials in the
278
277
  bucket's region, limited by the server's RAM role, and selects the first matching
279
278
  storage in the reference. An explicit bucket does not inherit the default prefix.
@@ -336,6 +335,28 @@ with ManagementClient(address=os.environ["MANAGEMENT_ADDRESS"]) as management:
336
335
  Deploy the V2 credential APIs and configure bucket regions before using reads
337
336
  or the upload `data_kind` option.
338
337
 
338
+ ## TOS
339
+
340
+ `TOSClient` obtains and refreshes V3 credentials from Management. Keep
341
+ `ManagementClient` open during transfers.
342
+
343
+ ```python
344
+ import os
345
+ from current_data_py.management import ManagementClient
346
+ from current_data_py.tos import TOSClient
347
+
348
+ with ManagementClient() as management:
349
+ with TOSClient(management, permission="read", bucket=os.environ["TOS_READ_BUCKET"],
350
+ endpoint="https://tos-accelerate.volces.com") as source:
351
+ source.download_file(os.environ["SOURCE_OBJECT_KEY"], "/tmp/input.h5")
352
+ ```
353
+
354
+ For uploads, use `permission="upload", data_type="YAM", data_kind="CONVERTED"`;
355
+ register the returned bucket and uploaded object key in `Metadata.storages`. To read a
356
+ TD file, use `DataClient.open_td(reference, provider="tos", bucket=bucket)`.
357
+ `endpoint=` changes the network endpoint without changing the signing region;
358
+ it cannot be combined with `use_internal_endpoint=True`.
359
+
339
360
  ## Pre-annotation
340
361
 
341
362
  `current_data_py.labeling.LabelingClient` wraps the pre-annotation RPCs
@@ -399,6 +420,8 @@ python -I tests/check_management.py
399
420
  python -I tests/check_labeling.py
400
421
  python -I tests/check_remote.py
401
422
  python -I tests/check_oss.py
423
+ # With the tos extra installed:
424
+ python -I tests/check_tos.py
402
425
  ```
403
426
 
404
427
  ## 推送
@@ -1,17 +1,3 @@
1
- Metadata-Version: 2.4
2
- Name: current-data-py
3
- Version: 0.1.11
4
- Summary: Current Data protobuf messages and schema metadata
5
- Requires-Python: >=3.9
6
- Description-Content-Type: text/markdown
7
- Requires-Dist: protobuf>=3.20
8
- Requires-Dist: turbodata==0.1.0
9
- Requires-Dist: grpcio>=1.51.1
10
- Requires-Dist: alibabacloud-oss-v2<2,>=1.4.0
11
- Provides-Extra: decode
12
- Requires-Dist: av>=12; extra == "decode"
13
- Requires-Dist: pillow>=9; extra == "decode"
14
-
15
1
  # current-data-py
16
2
 
17
3
  ## Environment
@@ -170,9 +156,8 @@ retry or fall back to earlier RPC versions. Old servers return `UNIMPLEMENTED`;
170
156
  unconfigured destinations return `FAILED_PRECONDITION`. A response whose
171
157
  provider differs from the request raises `ValueError`.
172
158
 
173
- These methods only fetch credentials. Pass TOS credentials to a native TOS
174
- client and refresh them before expiration. `OSSClient`, `DataClient`, metadata
175
- registration and signed URLs have not been extended to TOS by this change.
159
+ These methods only fetch credentials. For file transfers and TD reads with automatic
160
+ credential refresh, see [TOS](#tos). Signed download URLs remain OSS-only.
176
161
 
177
162
  ## Remote TD reads
178
163
 
@@ -180,12 +165,11 @@ registration and signed URLs have not been extended to TOS by this change.
180
165
 
181
166
  > [!IMPORTANT]
182
167
  > **Video decoding requires PyAV, Pillow and the FFmpeg native libraries used by
183
- > PyAV.** `open_td()` enables decoding by default, but a base `current-data-py`
184
- > installation does not install the video dependencies. Install the `[decode]`
185
- > extra in every environment that decodes video, including DataLoader workers.
168
+ > PyAV.** `current-data-py` installs PyAV and Pillow by default. Install the package
169
+ > in every environment that decodes video, including DataLoader workers.
186
170
 
187
171
  ```bash
188
- python -m pip install --only-binary=av,pillow 'current-data-py[decode]'
172
+ python -m pip install --only-binary=av,pillow current-data-py
189
173
  ```
190
174
 
191
175
  - **Prebuilt wheels:** PyAV wheels bundle FFmpeg libraries on supported platforms;
@@ -272,8 +256,9 @@ to each call.
272
256
 
273
257
  ### Storage and credentials
274
258
 
275
- `DataClient.open_td()` accepts an optional `bucket` argument. Without it, reads
276
- use the management service's `OSS_READ_BUCKET` and `OSS_READ_PREFIX` defaults.
259
+ `DataClient.open_td()` accepts optional `bucket` and `provider` arguments. OSS
260
+ references without either selection retain the service's `OSS_READ_BUCKET` and
261
+ `OSS_READ_PREFIX` defaults. See [TOS](#tos) for provider selection.
277
262
  With it, the SDK uses `GetReadCredentialsV2` for whole-bucket credentials in the
278
263
  bucket's region, limited by the server's RAM role, and selects the first matching
279
264
  storage in the reference. An explicit bucket does not inherit the default prefix.
@@ -336,6 +321,28 @@ with ManagementClient(address=os.environ["MANAGEMENT_ADDRESS"]) as management:
336
321
  Deploy the V2 credential APIs and configure bucket regions before using reads
337
322
  or the upload `data_kind` option.
338
323
 
324
+ ## TOS
325
+
326
+ `TOSClient` obtains and refreshes V3 credentials from Management. Keep
327
+ `ManagementClient` open during transfers.
328
+
329
+ ```python
330
+ import os
331
+ from current_data_py.management import ManagementClient
332
+ from current_data_py.tos import TOSClient
333
+
334
+ with ManagementClient() as management:
335
+ with TOSClient(management, permission="read", bucket=os.environ["TOS_READ_BUCKET"],
336
+ endpoint="https://tos-accelerate.volces.com") as source:
337
+ source.download_file(os.environ["SOURCE_OBJECT_KEY"], "/tmp/input.h5")
338
+ ```
339
+
340
+ For uploads, use `permission="upload", data_type="YAM", data_kind="CONVERTED"`;
341
+ register the returned bucket and uploaded object key in `Metadata.storages`. To read a
342
+ TD file, use `DataClient.open_td(reference, provider="tos", bucket=bucket)`.
343
+ `endpoint=` changes the network endpoint without changing the signing region;
344
+ it cannot be combined with `use_internal_endpoint=True`.
345
+
339
346
  ## Pre-annotation
340
347
 
341
348
  `current_data_py.labeling.LabelingClient` wraps the pre-annotation RPCs
@@ -399,6 +406,8 @@ python -I tests/check_management.py
399
406
  python -I tests/check_labeling.py
400
407
  python -I tests/check_remote.py
401
408
  python -I tests/check_oss.py
409
+ # With the tos extra installed:
410
+ python -I tests/check_tos.py
402
411
  ```
403
412
 
404
413
  ## 推送
@@ -1,3 +1,17 @@
1
+ Metadata-Version: 2.4
2
+ Name: current-data-py
3
+ Version: 0.1.12
4
+ Summary: Current Data protobuf messages and schema metadata
5
+ Requires-Python: >=3.9
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: protobuf>=3.20
8
+ Requires-Dist: turbodata==0.1.0
9
+ Requires-Dist: grpcio>=1.51.1
10
+ Requires-Dist: alibabacloud-oss-v2<2,>=1.4.0
11
+ Requires-Dist: tos<3,>=2.9
12
+ Requires-Dist: av>=12
13
+ Requires-Dist: pillow>=9
14
+
1
15
  # current-data-py
2
16
 
3
17
  ## Environment
@@ -156,9 +170,8 @@ retry or fall back to earlier RPC versions. Old servers return `UNIMPLEMENTED`;
156
170
  unconfigured destinations return `FAILED_PRECONDITION`. A response whose
157
171
  provider differs from the request raises `ValueError`.
158
172
 
159
- These methods only fetch credentials. Pass TOS credentials to a native TOS
160
- client and refresh them before expiration. `OSSClient`, `DataClient`, metadata
161
- registration and signed URLs have not been extended to TOS by this change.
173
+ These methods only fetch credentials. For file transfers and TD reads with automatic
174
+ credential refresh, see [TOS](#tos). Signed download URLs remain OSS-only.
162
175
 
163
176
  ## Remote TD reads
164
177
 
@@ -166,12 +179,11 @@ registration and signed URLs have not been extended to TOS by this change.
166
179
 
167
180
  > [!IMPORTANT]
168
181
  > **Video decoding requires PyAV, Pillow and the FFmpeg native libraries used by
169
- > PyAV.** `open_td()` enables decoding by default, but a base `current-data-py`
170
- > installation does not install the video dependencies. Install the `[decode]`
171
- > extra in every environment that decodes video, including DataLoader workers.
182
+ > PyAV.** `current-data-py` installs PyAV and Pillow by default. Install the package
183
+ > in every environment that decodes video, including DataLoader workers.
172
184
 
173
185
  ```bash
174
- python -m pip install --only-binary=av,pillow 'current-data-py[decode]'
186
+ python -m pip install --only-binary=av,pillow current-data-py
175
187
  ```
176
188
 
177
189
  - **Prebuilt wheels:** PyAV wheels bundle FFmpeg libraries on supported platforms;
@@ -258,8 +270,9 @@ to each call.
258
270
 
259
271
  ### Storage and credentials
260
272
 
261
- `DataClient.open_td()` accepts an optional `bucket` argument. Without it, reads
262
- use the management service's `OSS_READ_BUCKET` and `OSS_READ_PREFIX` defaults.
273
+ `DataClient.open_td()` accepts optional `bucket` and `provider` arguments. OSS
274
+ references without either selection retain the service's `OSS_READ_BUCKET` and
275
+ `OSS_READ_PREFIX` defaults. See [TOS](#tos) for provider selection.
263
276
  With it, the SDK uses `GetReadCredentialsV2` for whole-bucket credentials in the
264
277
  bucket's region, limited by the server's RAM role, and selects the first matching
265
278
  storage in the reference. An explicit bucket does not inherit the default prefix.
@@ -322,6 +335,28 @@ with ManagementClient(address=os.environ["MANAGEMENT_ADDRESS"]) as management:
322
335
  Deploy the V2 credential APIs and configure bucket regions before using reads
323
336
  or the upload `data_kind` option.
324
337
 
338
+ ## TOS
339
+
340
+ `TOSClient` obtains and refreshes V3 credentials from Management. Keep
341
+ `ManagementClient` open during transfers.
342
+
343
+ ```python
344
+ import os
345
+ from current_data_py.management import ManagementClient
346
+ from current_data_py.tos import TOSClient
347
+
348
+ with ManagementClient() as management:
349
+ with TOSClient(management, permission="read", bucket=os.environ["TOS_READ_BUCKET"],
350
+ endpoint="https://tos-accelerate.volces.com") as source:
351
+ source.download_file(os.environ["SOURCE_OBJECT_KEY"], "/tmp/input.h5")
352
+ ```
353
+
354
+ For uploads, use `permission="upload", data_type="YAM", data_kind="CONVERTED"`;
355
+ register the returned bucket and uploaded object key in `Metadata.storages`. To read a
356
+ TD file, use `DataClient.open_td(reference, provider="tos", bucket=bucket)`.
357
+ `endpoint=` changes the network endpoint without changing the signing region;
358
+ it cannot be combined with `use_internal_endpoint=True`.
359
+
325
360
  ## Pre-annotation
326
361
 
327
362
  `current_data_py.labeling.LabelingClient` wraps the pre-annotation RPCs
@@ -385,6 +420,8 @@ python -I tests/check_management.py
385
420
  python -I tests/check_labeling.py
386
421
  python -I tests/check_remote.py
387
422
  python -I tests/check_oss.py
423
+ # With the tos extra installed:
424
+ python -I tests/check_tos.py
388
425
  ```
389
426
 
390
427
  ## 推送
@@ -7,11 +7,13 @@ management.py
7
7
  oss.py
8
8
  pyproject.toml
9
9
  setup.py
10
+ tos.py
10
11
  ./__init__.py
11
12
  ./decoding.py
12
13
  ./labeling.py
13
14
  ./management.py
14
15
  ./oss.py
16
+ ./tos.py
15
17
  ./examples/__init__.py
16
18
  ./examples/list_schemas.py
17
19
  ./examples/read_remote_td.py
@@ -20,6 +22,7 @@ setup.py
20
22
  ./remote/__init__.py
21
23
  ./remote/client.py
22
24
  ./remote/source.py
25
+ ./remote/tos_source.py
23
26
  ./schema/__init__.py
24
27
  ./schema/message_metadata.py
25
28
  current_data_py.egg-info/PKG-INFO
@@ -35,6 +38,7 @@ examples/write_td.py
35
38
  remote/__init__.py
36
39
  remote/client.py
37
40
  remote/source.py
41
+ remote/tos_source.py
38
42
  schema/__init__.py
39
43
  schema/message_metadata.py
40
44
  tests/check_environment.py
@@ -2,7 +2,6 @@ protobuf>=3.20
2
2
  turbodata==0.1.0
3
3
  grpcio>=1.51.1
4
4
  alibabacloud-oss-v2<2,>=1.4.0
5
-
6
- [decode]
5
+ tos<3,>=2.9
7
6
  av>=12
8
7
  pillow>=9
@@ -67,12 +67,9 @@ class DecodedMessage:
67
67
  class _VideoStream:
68
68
  """Hold one topic's H.264 decoder for the lifetime of a forward iterator."""
69
69
  def __init__(self, *, keep_timestamp=None):
70
- """Load optional video dependencies and create a fresh decoder."""
71
- try:
72
- import av
73
- from PIL import Image # noqa: F401
74
- except ImportError as exc:
75
- raise ImportError("Video decoding requires pip install 'current-data-py[decode]'") from exc
70
+ """Load video dependencies and create a fresh decoder."""
71
+ import av
72
+ from PIL import Image # noqa: F401
76
73
  self.av = av
77
74
  self.codec = av.CodecContext.create("h264", "r")
78
75
  self.codec.thread_count = 1
@@ -8,14 +8,13 @@ import current_data_py as _package
8
8
  from . import DEFAULT_ADDRESS # Compatibility export; configure current_data_py.DEFAULT_ADDRESS.
9
9
 
10
10
  from ._proto.management.metadata import metadata_pb2
11
- from ._proto.management.metadata.metadata_pb2 import Metadata, MetadataFilter
11
+ from ._proto.management.metadata.metadata_pb2 import Metadata, MetadataFilter, StorageProvider
12
12
  from ._proto.management.service import service_pb2, service_pb2_grpc
13
13
  from ._proto.management.service.service_pb2 import (
14
14
  DataKind,
15
15
  GetReadCredentialsResponse,
16
16
  GetUploadCredentialsResponse,
17
17
  StorageCredentials,
18
- StorageProvider,
19
18
  )
20
19
 
21
20
 
@@ -30,9 +29,10 @@ __all__ = [
30
29
 
31
30
  def _storage_provider(value: Union[int, str]) -> int:
32
31
  if isinstance(value, str):
32
+ value = value.upper()
33
33
  name = value if value.startswith("STORAGE_PROVIDER_") else "STORAGE_PROVIDER_" + value
34
34
  value = StorageProvider.Value(name)
35
- if isinstance(value, bool) or value not in (service_pb2.STORAGE_PROVIDER_OSS, service_pb2.STORAGE_PROVIDER_TOS):
35
+ if isinstance(value, bool) or value not in (metadata_pb2.STORAGE_PROVIDER_OSS, metadata_pb2.STORAGE_PROVIDER_TOS):
36
36
  raise ValueError("provider must explicitly select OSS or TOS")
37
37
  return value
38
38
 
@@ -0,0 +1,64 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: management/metadata/metadata.proto
4
+ """Generated protocol buffer code."""
5
+ from google.protobuf.internal import builder as _builder
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ # @@protoc_insertion_point(imports)
10
+
11
+ _sym_db = _symbol_database.Default()
12
+
13
+
14
+ from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
15
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
16
+
17
+
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\"management/metadata/metadata.proto\x12\x16management.metadata.v1\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xa6\x03\n\x08Metadata\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12.\n\ncreated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x31\n\x08storages\x18\x05 \x03(\x0b\x32\x1f.management.metadata.v1.Storage\x12\x33\n\tfile_info\x18\x06 \x01(\x0b\x32 .management.metadata.v1.FileInfo\x12/\n\x07\x64\x65vices\x18\x07 \x03(\x0b\x32\x1e.management.metadata.v1.Device\x12=\n\x0erecording_info\x18\x08 \x01(\x0b\x32%.management.metadata.v1.RecordingInfo\x12\x33\n\tdata_type\x18\t \x01(\x0e\x32 .management.metadata.v1.DataType\x12\x13\n\x0boptional_id\x18\n \x01(\t\"h\n\x07Storage\x12\x0e\n\x06\x62ucket\x18\x01 \x01(\t\x12\x12\n\nobject_key\x18\x02 \x01(\t\x12\x39\n\x08provider\x18\x03 \x01(\x0e\x32\'.management.metadata.v1.StorageProvider\"_\n\x08\x46ileInfo\x12\x12\n\nsize_bytes\x18\x01 \x01(\x03\x12-\n\x06topics\x18\x02 \x03(\x0b\x32\x1d.management.metadata.v1.Topic\x12\x10\n\x08\x63hecksum\x18\x03 \x01(\t\"3\n\x05Topic\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x07samples\x18\x02 \x01(\x03\x12\x0b\n\x03\x66ps\x18\x03 \x01(\x02\"\x9c\x02\n\x06\x44\x65vice\x12\r\n\x05model\x18\x01 \x01(\t\x12\x30\n\x04type\x18\x02 \x01(\x0e\x32\".management.metadata.v1.DeviceType\x12\x18\n\x10\x66irmware_version\x18\x03 \x01(\t\x12\x0b\n\x03\x66ps\x18\x04 \x01(\x02\x12\x32\n\x08modality\x18\x05 \x01(\x0e\x32 .management.metadata.v1.Modality\x12>\n\x0fmount_body_part\x18\x06 \x01(\x0e\x32%.management.metadata.v1.MountBodyPart\x12\x36\n\nresolution\x18\x07 \x01(\x0b\x32\".management.metadata.v1.Resolution\"+\n\nResolution\x12\x0e\n\x06height\x18\x01 \x01(\r\x12\r\n\x05width\x18\x02 \x01(\r\"\x8b\x02\n\rRecordingInfo\x12\x39\n\x0erecording_time\x18\x01 \x01(\x0b\x32!.management.metadata.v1.TimeRange\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration\x12\x32\n\x08location\x18\x03 \x01(\x0b\x32 .management.metadata.v1.Location\x12*\n\x04task\x18\x04 \x01(\x0b\x32\x1c.management.metadata.v1.Task\x12\x32\n\x08operator\x18\x05 \x01(\x0b\x32 .management.metadata.v1.Operator\"J\n\x08Location\x12\x19\n\x11\x63oordinate_system\x18\x01 \x01(\t\x12\x10\n\x08latitude\x18\x02 \x01(\x01\x12\x11\n\tlongitude\x18\x03 \x01(\x01\"}\n\x04Task\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\x12\r\n\x05scene\x18\x03 \x01(\t\x12\x43\n\x11\x63ollection_method\x18\x04 \x01(\x0b\x32(.management.metadata.v1.CollectionMethod\"9\n\x10\x43ollectionMethod\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x10\n\x08paradigm\x18\x02 \x01(\t\"L\n\x08Operator\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08\x61rm_span\x18\x02 \x01(\x01\x12\x0e\n\x06height\x18\x03 \x01(\x01\x12\x12\n\nleg_length\x18\x04 \x01(\x01\"\xe8\x01\n\x0eMetadataFilter\x12\x13\n\x0bname_prefix\x18\x01 \x01(\t\x12\x34\n\ndata_types\x18\x02 \x03(\x0e\x32 .management.metadata.v1.DataType\x12\x42\n\x17recording_started_range\x18\x03 \x01(\x0b\x32!.management.metadata.v1.TimeRange\x12G\n\x18recording_duration_range\x18\x04 \x01(\x0b\x32%.management.metadata.v1.DurationRange\"]\n\tTimeRange\x12(\n\x04\x66rom\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12&\n\x02to\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"_\n\rDurationRange\x12&\n\x03min\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x12&\n\x03max\x18\x02 \x01(\x0b\x32\x19.google.protobuf.Duration*g\n\x0fStorageProvider\x12 \n\x1cSTORAGE_PROVIDER_UNSPECIFIED\x10\x00\x12\x18\n\x14STORAGE_PROVIDER_OSS\x10\x01\x12\x18\n\x14STORAGE_PROVIDER_TOS\x10\x02*S\n\nDeviceType\x12\x1b\n\x17\x44\x45VICE_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0f\x44\x45VICE_TYPE_CAM\x10\x01\x12\x13\n\x0f\x44\x45VICE_TYPE_IMU\x10\x02*J\n\x08Modality\x12\x18\n\x14MODALITY_UNSPECIFIED\x10\x00\x12\x10\n\x0cMODALITY_RGB\x10\x01\x12\x12\n\x0eMODALITY_DEPTH\x10\x02*0\n\rMountBodyPart\x12\x1f\n\x1bMOUNT_BODY_PART_UNSPECIFIED\x10\x00*j\n\x08\x44\x61taType\x12\x19\n\x15\x44\x41TA_TYPE_UNSPECIFIED\x10\x00\x12\x16\n\x12\x44\x41TA_TYPE_EGOSUITE\x10\x01\x12\x11\n\rDATA_TYPE_YAM\x10\x02\x12\x18\n\x14\x44\x41TA_TYPE_CURRENT_V2\x10\x03\x42*Z(proto_gen/management/metadata;metadatapbb\x06proto3')
19
+
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'management.metadata.metadata_pb2', globals())
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+
24
+ DESCRIPTOR._options = None
25
+ DESCRIPTOR._serialized_options = b'Z(proto_gen/management/metadata;metadatapb'
26
+ _STORAGEPROVIDER._serialized_start=2177
27
+ _STORAGEPROVIDER._serialized_end=2280
28
+ _DEVICETYPE._serialized_start=2282
29
+ _DEVICETYPE._serialized_end=2365
30
+ _MODALITY._serialized_start=2367
31
+ _MODALITY._serialized_end=2441
32
+ _MOUNTBODYPART._serialized_start=2443
33
+ _MOUNTBODYPART._serialized_end=2491
34
+ _DATATYPE._serialized_start=2493
35
+ _DATATYPE._serialized_end=2599
36
+ _METADATA._serialized_start=128
37
+ _METADATA._serialized_end=550
38
+ _STORAGE._serialized_start=552
39
+ _STORAGE._serialized_end=656
40
+ _FILEINFO._serialized_start=658
41
+ _FILEINFO._serialized_end=753
42
+ _TOPIC._serialized_start=755
43
+ _TOPIC._serialized_end=806
44
+ _DEVICE._serialized_start=809
45
+ _DEVICE._serialized_end=1093
46
+ _RESOLUTION._serialized_start=1095
47
+ _RESOLUTION._serialized_end=1138
48
+ _RECORDINGINFO._serialized_start=1141
49
+ _RECORDINGINFO._serialized_end=1408
50
+ _LOCATION._serialized_start=1410
51
+ _LOCATION._serialized_end=1484
52
+ _TASK._serialized_start=1486
53
+ _TASK._serialized_end=1611
54
+ _COLLECTIONMETHOD._serialized_start=1613
55
+ _COLLECTIONMETHOD._serialized_end=1670
56
+ _OPERATOR._serialized_start=1672
57
+ _OPERATOR._serialized_end=1748
58
+ _METADATAFILTER._serialized_start=1751
59
+ _METADATAFILTER._serialized_end=1983
60
+ _TIMERANGE._serialized_start=1985
61
+ _TIMERANGE._serialized_end=2078
62
+ _DURATIONRANGE._serialized_start=2080
63
+ _DURATIONRANGE._serialized_end=2175
64
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,80 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # source: management/service/service.proto
4
+ """Generated protocol buffer code."""
5
+ from google.protobuf.internal import builder as _builder
6
+ from google.protobuf import descriptor as _descriptor
7
+ from google.protobuf import descriptor_pool as _descriptor_pool
8
+ from google.protobuf import symbol_database as _symbol_database
9
+ # @@protoc_insertion_point(imports)
10
+
11
+ _sym_db = _symbol_database.Default()
12
+
13
+
14
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
15
+ from management.metadata import metadata_pb2 as management_dot_metadata_dot_metadata__pb2
16
+
17
+
18
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n management/service/service.proto\x12\x15management.service.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\"management/metadata/metadata.proto\"R\n\x1bGetUploadCredentialsRequest\x12\x33\n\tdata_type\x18\x01 \x01(\x0e\x32 .management.metadata.v1.DataType\"\xa7\x01\n\x1dGetUploadCredentialsV2Request\x12\x33\n\tdata_type\x18\x01 \x01(\x0e\x32 .management.metadata.v1.DataType\x12\x32\n\tdata_kind\x18\x02 \x01(\x0e\x32\x1f.management.service.v1.DataKind\x12\x1d\n\x15use_internal_endpoint\x18\x03 \x01(\x08\"\xe5\x01\n\x1cGetUploadCredentialsResponse\x12\x15\n\raccess_key_id\x18\x01 \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_key_secret\x18\x02 \x01(\t\x12\x16\n\x0esecurity_token\x18\x03 \x01(\t\x12.\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0coss_endpoint\x18\x05 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x06 \x01(\t\x12\x15\n\robject_prefix\x18\x07 \x01(\t\x12\x0e\n\x06region\x18\x08 \x01(\t\"\xe2\x01\n\x1dGetUploadCredentialsV3Request\x12\x39\n\x08provider\x18\x01 \x01(\x0e\x32\'.management.metadata.v1.StorageProvider\x12\x33\n\tdata_type\x18\x02 \x01(\x0e\x32 .management.metadata.v1.DataType\x12\x32\n\tdata_kind\x18\x03 \x01(\x0e\x32\x1f.management.service.v1.DataKind\x12\x1d\n\x15use_internal_endpoint\x18\x04 \x01(\x08\"\x87\x01\n\x1bGetReadCredentialsV3Request\x12\x39\n\x08provider\x18\x01 \x01(\x0e\x32\'.management.metadata.v1.StorageProvider\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x1d\n\x15use_internal_endpoint\x18\x03 \x01(\x08\"\x92\x02\n\x12StorageCredentials\x12\x39\n\x08provider\x18\x01 \x01(\x0e\x32\'.management.metadata.v1.StorageProvider\x12\x10\n\x08\x65ndpoint\x18\x02 \x01(\t\x12\x0e\n\x06region\x18\x03 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x04 \x01(\t\x12\x15\n\robject_prefix\x18\x05 \x01(\t\x12\x15\n\raccess_key_id\x18\x06 \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_key_secret\x18\x07 \x01(\t\x12\x16\n\x0esecurity_token\x18\x08 \x01(\t\x12.\n\nexpires_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"r\n\x16\x43reateUploadURLRequest\x12\x0f\n\x07\x64\x61ta_id\x18\x01 \x01(\t\x12\x33\n\tdata_type\x18\x02 \x01(\x0e\x32 .management.metadata.v1.DataType\x12\x12\n\nobject_key\x18\x03 \x01(\t\"z\n\x17\x43reateUploadURLResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x12\n\nobject_key\x18\x03 \x01(\t\x12.\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"E\n\x13RegisterDataRequest\x12.\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32 .management.metadata.v1.Metadata\"F\n\x14RegisterDataResponse\x12.\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32 .management.metadata.v1.Metadata\"Y\n\x14\x41ppendStorageRequest\x12\x0f\n\x07\x64\x61ta_id\x18\x01 \x01(\t\x12\x30\n\x07storage\x18\x02 \x01(\x0b\x32\x1f.management.metadata.v1.Storage\"G\n\x15\x41ppendStorageResponse\x12.\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32 .management.metadata.v1.Metadata\"p\n\x0fListDataRequest\x12\x11\n\tpage_size\x18\x01 \x01(\x05\x12\x12\n\npage_token\x18\x02 \x01(\t\x12\x36\n\x06\x66ilter\x18\x03 \x01(\x0b\x32&.management.metadata.v1.MetadataFilter\"[\n\x10ListDataResponse\x12.\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32 .management.metadata.v1.Metadata\x12\x17\n\x0fnext_page_token\x18\x02 \x01(\t\"6\n\x0eGetDataRequest\x12\x0f\n\x07\x64\x61ta_id\x18\x01 \x01(\t\x12\x13\n\x0boptional_id\x18\x02 \x01(\t\"A\n\x0fGetDataResponse\x12.\n\x04\x64\x61ta\x18\x01 \x01(\x0b\x32 .management.metadata.v1.Metadata\"+\n\x18\x43reateDownloadURLRequest\x12\x0f\n\x07\x64\x61ta_id\x18\x01 \x01(\t\"X\n\x19\x43reateDownloadURLResponse\x12\x0b\n\x03url\x18\x01 \x01(\t\x12.\n\nexpires_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"K\n\x11SelectDataRequest\x12\x36\n\x06\x66ilter\x18\x01 \x01(\x0b\x32&.management.metadata.v1.MetadataFilter\"&\n\x12SelectDataResponse\x12\x10\n\x08\x64\x61ta_ids\x18\x01 \x03(\t\"l\n\x1bStreamDataReferencesRequest\x12\x36\n\x06\x66ilter\x18\x01 \x01(\x0b\x32&.management.metadata.v1.MetadataFilter\x12\x15\n\rreturn_fields\x18\x02 \x03(\t\"N\n\x1cStreamDataReferencesResponse\x12.\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32 .management.metadata.v1.Metadata\"+\n\x19GetReadCredentialsRequest\x12\x0e\n\x06\x62ucket\x18\x01 \x01(\t\"L\n\x1bGetReadCredentialsV2Request\x12\x0e\n\x06\x62ucket\x18\x01 \x01(\t\x12\x1d\n\x15use_internal_endpoint\x18\x02 \x01(\x08\"\xcc\x01\n\x1aGetReadCredentialsResponse\x12\x15\n\raccess_key_id\x18\x01 \x01(\t\x12\x19\n\x11\x61\x63\x63\x65ss_key_secret\x18\x02 \x01(\t\x12\x16\n\x0esecurity_token\x18\x03 \x01(\t\x12.\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x14\n\x0coss_endpoint\x18\x05 \x01(\t\x12\x0e\n\x06region\x18\x06 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x07 \x01(\t*Q\n\x08\x44\x61taKind\x12\x19\n\x15\x44\x41TA_KIND_UNSPECIFIED\x10\x00\x12\x11\n\rDATA_KIND_RAW\x10\x01\x12\x17\n\x13\x44\x41TA_KIND_CONVERTED\x10\x02\x32\xe7\x0c\n\x15\x44\x61taManagementService\x12\x81\x01\n\x14StreamDataReferences\x12\x32.management.service.v1.StreamDataReferencesRequest\x1a\x33.management.service.v1.StreamDataReferencesResponse0\x01\x12y\n\x12GetReadCredentials\x12\x30.management.service.v1.GetReadCredentialsRequest\x1a\x31.management.service.v1.GetReadCredentialsResponse\x12}\n\x14GetReadCredentialsV2\x12\x32.management.service.v1.GetReadCredentialsV2Request\x1a\x31.management.service.v1.GetReadCredentialsResponse\x12u\n\x14GetReadCredentialsV3\x12\x32.management.service.v1.GetReadCredentialsV3Request\x1a).management.service.v1.StorageCredentials\x12g\n\x0cRegisterData\x12*.management.service.v1.RegisterDataRequest\x1a+.management.service.v1.RegisterDataResponse\x12j\n\rAppendStorage\x12+.management.service.v1.AppendStorageRequest\x1a,.management.service.v1.AppendStorageResponse\x12p\n\x0f\x43reateUploadURL\x12-.management.service.v1.CreateUploadURLRequest\x1a..management.service.v1.CreateUploadURLResponse\x12\x7f\n\x14GetUploadCredentials\x12\x32.management.service.v1.GetUploadCredentialsRequest\x1a\x33.management.service.v1.GetUploadCredentialsResponse\x12\x83\x01\n\x16GetUploadCredentialsV2\x12\x34.management.service.v1.GetUploadCredentialsV2Request\x1a\x33.management.service.v1.GetUploadCredentialsResponse\x12y\n\x16GetUploadCredentialsV3\x12\x34.management.service.v1.GetUploadCredentialsV3Request\x1a).management.service.v1.StorageCredentials\x12[\n\x08ListData\x12&.management.service.v1.ListDataRequest\x1a\'.management.service.v1.ListDataResponse\x12X\n\x07GetData\x12%.management.service.v1.GetDataRequest\x1a&.management.service.v1.GetDataResponse\x12v\n\x11\x43reateDownloadURL\x12/.management.service.v1.CreateDownloadURLRequest\x1a\x30.management.service.v1.CreateDownloadURLResponse\x12\x61\n\nSelectData\x12(.management.service.v1.SelectDataRequest\x1a).management.service.v1.SelectDataResponseB(Z&proto_gen/management/service;servicepbb\x06proto3')
19
+
20
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
21
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'management.service.service_pb2', globals())
22
+ if _descriptor._USE_C_DESCRIPTORS == False:
23
+
24
+ DESCRIPTOR._options = None
25
+ DESCRIPTOR._serialized_options = b'Z&proto_gen/management/service;servicepb'
26
+ _DATAKIND._serialized_start=2907
27
+ _DATAKIND._serialized_end=2988
28
+ _GETUPLOADCREDENTIALSREQUEST._serialized_start=128
29
+ _GETUPLOADCREDENTIALSREQUEST._serialized_end=210
30
+ _GETUPLOADCREDENTIALSV2REQUEST._serialized_start=213
31
+ _GETUPLOADCREDENTIALSV2REQUEST._serialized_end=380
32
+ _GETUPLOADCREDENTIALSRESPONSE._serialized_start=383
33
+ _GETUPLOADCREDENTIALSRESPONSE._serialized_end=612
34
+ _GETUPLOADCREDENTIALSV3REQUEST._serialized_start=615
35
+ _GETUPLOADCREDENTIALSV3REQUEST._serialized_end=841
36
+ _GETREADCREDENTIALSV3REQUEST._serialized_start=844
37
+ _GETREADCREDENTIALSV3REQUEST._serialized_end=979
38
+ _STORAGECREDENTIALS._serialized_start=982
39
+ _STORAGECREDENTIALS._serialized_end=1256
40
+ _CREATEUPLOADURLREQUEST._serialized_start=1258
41
+ _CREATEUPLOADURLREQUEST._serialized_end=1372
42
+ _CREATEUPLOADURLRESPONSE._serialized_start=1374
43
+ _CREATEUPLOADURLRESPONSE._serialized_end=1496
44
+ _REGISTERDATAREQUEST._serialized_start=1498
45
+ _REGISTERDATAREQUEST._serialized_end=1567
46
+ _REGISTERDATARESPONSE._serialized_start=1569
47
+ _REGISTERDATARESPONSE._serialized_end=1639
48
+ _APPENDSTORAGEREQUEST._serialized_start=1641
49
+ _APPENDSTORAGEREQUEST._serialized_end=1730
50
+ _APPENDSTORAGERESPONSE._serialized_start=1732
51
+ _APPENDSTORAGERESPONSE._serialized_end=1803
52
+ _LISTDATAREQUEST._serialized_start=1805
53
+ _LISTDATAREQUEST._serialized_end=1917
54
+ _LISTDATARESPONSE._serialized_start=1919
55
+ _LISTDATARESPONSE._serialized_end=2010
56
+ _GETDATAREQUEST._serialized_start=2012
57
+ _GETDATAREQUEST._serialized_end=2066
58
+ _GETDATARESPONSE._serialized_start=2068
59
+ _GETDATARESPONSE._serialized_end=2133
60
+ _CREATEDOWNLOADURLREQUEST._serialized_start=2135
61
+ _CREATEDOWNLOADURLREQUEST._serialized_end=2178
62
+ _CREATEDOWNLOADURLRESPONSE._serialized_start=2180
63
+ _CREATEDOWNLOADURLRESPONSE._serialized_end=2268
64
+ _SELECTDATAREQUEST._serialized_start=2270
65
+ _SELECTDATAREQUEST._serialized_end=2345
66
+ _SELECTDATARESPONSE._serialized_start=2347
67
+ _SELECTDATARESPONSE._serialized_end=2385
68
+ _STREAMDATAREFERENCESREQUEST._serialized_start=2387
69
+ _STREAMDATAREFERENCESREQUEST._serialized_end=2495
70
+ _STREAMDATAREFERENCESRESPONSE._serialized_start=2497
71
+ _STREAMDATAREFERENCESRESPONSE._serialized_end=2575
72
+ _GETREADCREDENTIALSREQUEST._serialized_start=2577
73
+ _GETREADCREDENTIALSREQUEST._serialized_end=2620
74
+ _GETREADCREDENTIALSV2REQUEST._serialized_start=2622
75
+ _GETREADCREDENTIALSV2REQUEST._serialized_end=2698
76
+ _GETREADCREDENTIALSRESPONSE._serialized_start=2701
77
+ _GETREADCREDENTIALSRESPONSE._serialized_end=2905
78
+ _DATAMANAGEMENTSERVICE._serialized_start=2991
79
+ _DATAMANAGEMENTSERVICE._serialized_end=4630
80
+ # @@protoc_insertion_point(module_scope)
@@ -39,6 +39,11 @@ class DataManagementServiceStub(object):
39
39
  request_serializer=management_dot_service_dot_service__pb2.RegisterDataRequest.SerializeToString,
40
40
  response_deserializer=management_dot_service_dot_service__pb2.RegisterDataResponse.FromString,
41
41
  )
42
+ self.AppendStorage = channel.unary_unary(
43
+ '/management.service.v1.DataManagementService/AppendStorage',
44
+ request_serializer=management_dot_service_dot_service__pb2.AppendStorageRequest.SerializeToString,
45
+ response_deserializer=management_dot_service_dot_service__pb2.AppendStorageResponse.FromString,
46
+ )
42
47
  self.CreateUploadURL = channel.unary_unary(
43
48
  '/management.service.v1.DataManagementService/CreateUploadURL',
44
49
  request_serializer=management_dot_service_dot_service__pb2.CreateUploadURLRequest.SerializeToString,
@@ -114,6 +119,12 @@ class DataManagementServiceServicer(object):
114
119
  context.set_details('Method not implemented!')
115
120
  raise NotImplementedError('Method not implemented!')
116
121
 
122
+ def AppendStorage(self, request, context):
123
+ """Missing associated documentation comment in .proto file."""
124
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
125
+ context.set_details('Method not implemented!')
126
+ raise NotImplementedError('Method not implemented!')
127
+
117
128
  def CreateUploadURL(self, request, context):
118
129
  """Missing associated documentation comment in .proto file."""
119
130
  context.set_code(grpc.StatusCode.UNIMPLEMENTED)
@@ -190,6 +201,11 @@ def add_DataManagementServiceServicer_to_server(servicer, server):
190
201
  request_deserializer=management_dot_service_dot_service__pb2.RegisterDataRequest.FromString,
191
202
  response_serializer=management_dot_service_dot_service__pb2.RegisterDataResponse.SerializeToString,
192
203
  ),
204
+ 'AppendStorage': grpc.unary_unary_rpc_method_handler(
205
+ servicer.AppendStorage,
206
+ request_deserializer=management_dot_service_dot_service__pb2.AppendStorageRequest.FromString,
207
+ response_serializer=management_dot_service_dot_service__pb2.AppendStorageResponse.SerializeToString,
208
+ ),
193
209
  'CreateUploadURL': grpc.unary_unary_rpc_method_handler(
194
210
  servicer.CreateUploadURL,
195
211
  request_deserializer=management_dot_service_dot_service__pb2.CreateUploadURLRequest.FromString,
@@ -325,6 +341,23 @@ class DataManagementService(object):
325
341
  options, channel_credentials,
326
342
  insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
327
343
 
344
+ @staticmethod
345
+ def AppendStorage(request,
346
+ target,
347
+ options=(),
348
+ channel_credentials=None,
349
+ call_credentials=None,
350
+ insecure=False,
351
+ compression=None,
352
+ wait_for_ready=None,
353
+ timeout=None,
354
+ metadata=None):
355
+ return grpc.experimental.unary_unary(request, target, '/management.service.v1.DataManagementService/AppendStorage',
356
+ management_dot_service_dot_service__pb2.AppendStorageRequest.SerializeToString,
357
+ management_dot_service_dot_service__pb2.AppendStorageResponse.FromString,
358
+ options, channel_credentials,
359
+ insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
360
+
328
361
  @staticmethod
329
362
  def CreateUploadURL(request,
330
363
  target,