current-data-py
Management
ManagementClient() connects to data.current-robotics.work:443 over TLS.
Pass address="host:443" to override it, or supply your own gRPC channel.
from current_data_py.management import ManagementClient, Metadata, MetadataFilter
with ManagementClient() as client:
upload = client.get_upload_credentials(data_type="CURRENT_V2")
read = client.get_read_credentials(bucket="data-infra-raw-data")
# Register an already uploaded file; replace the example file details.
record = client.register_data(Metadata(
name="recording",
data_type="DATA_TYPE_CURRENT_V2",
storages=[{"bucket": "data-infra-202607", "object_key": "raw_converted/recording.td"}],
file_info={"size_bytes": 1234, "checksum": "sha256:<file-hash>"},
))
for item in client.stream_data_references(MetadataFilter(name_prefix="recording")):
print(item.id, item.storages)
Metadata, MetadataFilter, and responses are Protobuf objects exported by the
SDK. Registration only saves metadata; it does not upload files. Credential
calls return fresh credentials without caching. Calls accept timeout= and
metadata= for gRPC headers.
OSS
from current_data_py.management import ManagementClient
from current_data_py.oss import OSSClient
with ManagementClient() as management:
with OSSClient(management, permission="read", bucket="data-infra-raw-data") as source:
source.download_file("collections/recording/input.h5", "/tmp/input.h5")
# Convert the input into /tmp/output.td before uploading.
with OSSClient(management, permission="upload", data_type="CURRENT_V2") as destination:
key = destination.object_prefix + "recording/output.td"
destination.upload_file(key, "/tmp/output.td")
print(destination.bucket, key) # Use these values when registering metadata.
- Read access covers the requested bucket, subject to server permissions.
Uploads default to
data_type="RAW"; the server chooses the bucket and prefix. - Credentials refresh automatically. Expired tokens trigger one refresh and retry.
- Uploads reject overwrites by default; set
forbid_overwrite=Falseto replace. Downloads replace the local file only on success; its parent directory must exist. - Uploads use a single PutObject request (maximum 5 GiB); multipart upload is not supported.
- Supply
region=for custom upload endpoints. Deploy the current management credential API before using the new bucket and data-type arguments.
打包
cd current_data_py # 从仓库根目录执行
# 发布新版本前,更新 pyproject.toml 中的 version
python -m pip install build twine
rm -rf build dist
python -m build
测试
python -m twine check dist/*
python tests/check_distribution.py
python -m pip install --force-reinstall dist/*.whl
python -I tests/check_package.py
python -I tests/check_management.py
python -I tests/check_remote.py
python -I tests/check_oss.py
推送
# TestPyPI
python -m twine upload --repository testpypi dist/*
# PyPI
python -m twine upload dist/*
Metadata
Release files for current-data-py 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| current_data_py-0.1.5.tar.gz | 35.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| current_data_py-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 97.3 kB
Release files / current_data_py-0.1.5.tar.gz
| Download URL | current_data_py-0.1.5.tar.gz |
|---|---|
| Size | 35.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
09665a6e082f73d54d4e681bdfbcd349953b5b6c131e84cc910301e8b480f211
|
|
BLAKE2b-256 checksum How to use checksums |
64478fcaaba6ae01733c0f5cbf571fdd8a05ccb96a13fa57afaba48203d33afe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / current_data_py-0.1.5-py3-none-any.whl
| Download URL | current_data_py-0.1.5-py3-none-any.whl |
|---|---|
| Size | 61.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
17ea14347ee8e053beeaab07eede1d6b6df336329b24172637ddfe6ff9d25380
|
|
BLAKE2b-256 checksum How to use checksums |
e528247d771a425ef0d0bd04801749d2fb57c5056fe13def745762b82be87944
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|