floralatin-hubble-sdk8
Install
pip install floralatin-hubble-sdk8
Core functionality
- Python API and CLI.
- Authentication and token management.
- Artifact management.
Python API
Detecting logging status
import hubble
if hubble.is_logged_in():
print('yeah')
else:
print('no')
Get a token
Notice that the token you got from this function is always valid. If the token is invalid or expired, the result is None.
import hubble
hubble.get_token()
If you are using inside an interactive environment, i.e. user can input via stdin:
import hubble
hubble.get_token(interactive=True)
Mark a function as login required,
import hubble
@hubble.login_required
def foo():
pass
Login to Hubble
import hubble
# Open browser automatically and login via 3rd party.
# Token will be saved locally.
hubble.login()
Login to Hubble from notebook environments (like Google Colab).
import hubble
# Use Personal Access Token or browser to login.
# Token will be saved locally.
hubble.notebook_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')
CLI
Login to Jina Cloud
Open browser automatically and login via 3rd party. Token will be saved locally.
jina auth login
Logout
If there is a valid token locally, this will disable that token and remove it from local config.
jina auth logout
Personal access token (PAT) management
Create a new PAT
jina auth token create <name of PAT> -e <expiration days>
List PATs
jina auth token list
Delete PAT
jina auth token delete <name of PAT>
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
mainbranch, CD workflow will generate a new release both on GitHub and Pypi. - Each time new commits come into
alphabranch, 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 this code in Google Colab.
import hubble
hubble.login()
The way to bypass this problem is using hubble.notebook_login(),
specially designed for logging into Jina from notebook environments.
import hubble
hubble.notebook_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.
Release files for floralatin-hubble-sdk8 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| floralatin-hubble-sdk8-1.0.0.tar.gz | 46.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| floralatin_hubble_sdk8-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 105.2 kB
Release files / floralatin-hubble-sdk8-1.0.0.tar.gz
| Download URL | floralatin-hubble-sdk8-1.0.0.tar.gz |
|---|---|
| Size | 46.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
de0bc9db01e50aa01128fd672c10c6c775a24671892111c3cb394750bf9cc011
|
|
BLAKE2b-256 checksum How to use checksums |
9be7fd181b98e7026cdaea8c55d1914baa22c30dd125a56487c59257c5271c58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.15
|
Release files / floralatin_hubble_sdk8-1.0.0-py3-none-any.whl
| Download URL | floralatin_hubble_sdk8-1.0.0-py3-none-any.whl |
|---|---|
| Size | 58.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
572dffda47ddb7b2c6a61feba689d3a271e126d85fb4fd1c80842b19125efd5a
|
|
BLAKE2b-256 checksum How to use checksums |
df08d8a1073fd3ab477328410884ac56c1d8ce67931f3a9baf21b5a80e52267d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.7.15
|