SDK for Hubble API at Jina AI.
Project description
Hubble Python SDK: Talk with Hubble in a Pythonic Way
Install
pip install jina-hubble-sdk
Core functionality
- Authentication and token management.
- Artifact management.
Usage
Login to Hubble
import hubble
# Open browser automatically and login via 3rd party.
# Token will be saved locally.
hubble.login()
Logout
import hubble
# If there is a valid token locally,
# this will disable that token and remove it from local config.
hubble.logout()
Authentication and Token Management
After calling hubble.login()
, you can use the client with:
import hubble
client = hubble.Client(
max_retries=None,
jsonify=True
)
# Get current user information.
response = client.get_user_info()
# Create a new personally access token for longer expiration period.
response = client.create_personal_access_token(
name='my-pat',
expiration_days=30
)
# Query all personal access tokens.
response = client.list_personal_access_tokens()
Artifact Management
import hubble
import io
client = hubble.Client(
max_retries=None,
jsonify=True
)
# Upload artifact to Hubble Artifact Storage by providing path.
response = client.upload_artifact(
f='~/Documents/my-model.onnx',
is_public=False
)
# Upload artifact to Hubble Artifact Storage by providing `io.BytesIO`
response = client.upload_artifact(
f=io.BytesIO(b"some initial binary data: \x00\x01"),
is_public=False
)
# Get current artifact information.
response = client.get_artifact_info(id='my-artifact-id')
# Download artifact to local directory.
response = client.download_artifact(
id='my-artifact-id',
f='my-local-filepath'
)
# Download artifact as an io.BytesIO object
response = client.download_artifact(
id='my-artifact-id',
f=io.BytesIO()
)
# Get list of artifacts.
response = client.list_artifacts(filter={'metaData.foo': 'bar'}, sort={'type': -1})
# Delete the artifact.
response = client.delete_artifact(id='my-artifact-id')
Error Handling
import hubble
client = hubble.Client()
try:
client.get_user_info()
except hubble.excepts.AuthenticationRequiredError:
print('Please login first.')
except Exception:
print('Unknown error')
Development
Local test
- Make a new virtual env.
make env
- Install dependencies.
make init
- The test should be run in a logged in environment. So need to login to Jina.
jina auth login
- Test locally.
make test
Release cycle
- Each time new commits come into
main
branch, CD workflow will generate a new release both on GitHub and Pypi. - Each time new commits come into
alpha
branch, CD workflow will generate a new pre-release both on GitHub and Pypi.
FAQ (Frequently Asked Questions)
Run into RuntimeError: asyncio.run() cannot be called from a running event loop
in Google Colab?
You could run into a problem when you trying to run these codes in Google Colab
import hubble
hubble.login()
The way to bypass this problem is adding nest_asyncio
and use it first.
import hubble
import nest_asyncio
nest_asyncio.apply()
hubble.login()
Support
- Use Discussions to talk about your use cases, questions, and support queries.
- Join our Slack community and chat with other Jina community members about ideas.
- Join our Engineering All Hands meet-up to discuss your use case and learn Jina's new features.
- When? The second Tuesday of every month
- Where? Zoom (see our public events calendar/.ical) and live stream on YouTube
- Subscribe to the latest video tutorials on our YouTube channel
Join Us
Hubble Python SDK is backed by Jina AI and licensed under Apache-2.0. We are actively hiring AI engineers, solution engineers to build the next neural search ecosystem in opensource.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jina-hubble-sdk-0.9.2.tar.gz
(13.1 kB
view details)
Built Distribution
File details
Details for the file jina-hubble-sdk-0.9.2.tar.gz
.
File metadata
- Download URL: jina-hubble-sdk-0.9.2.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 413194d1794568aea002d61588922a9b0dcf6dd2d2b9761b015f4e2c09b226b6 |
|
MD5 | 12b84d68938eac044623c0f7d9a648a3 |
|
BLAKE2b-256 | 2d5c9a19759f26c21b0c73694870d6b9004301a67dbd09829567443e810542c5 |
File details
Details for the file jina_hubble_sdk-0.9.2-py3-none-any.whl
.
File metadata
- Download URL: jina_hubble_sdk-0.9.2-py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.13
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 515665a60683a56fee8836e85c326574cdc9d8b1aae04d63ac040f63cf8f6779 |
|
MD5 | 7696132d2234aaa0208a511e27100162 |
|
BLAKE2b-256 | b3e50d96b5314876d2c22dd403885a98b44ef6e925ae4eb2d3aca9f8c85dc948 |