Skip to main content

Nyx Client offers a simple API for interacting with data in your Nyx network.

Project description

Nyx Client SDK

Version License Build Read The Docs GitHub Repo stars Discord

🌟 Nyx Client SDK offers a simple API for interacting with data in your Nyx network. Subscribe, search and download data from across your federated network with ease, or if you're a publisher, easily created, update, or delete your existing data products programmatically!

If you're looking for an out of the box experience, try installing nyx-extras, to seamlessly and quickly build powerful AI applications, to interact with data from your Nyx network!

https://iotics.com

🚧 Status

The Nyx ecosystem is at an early stage of its development, please give us feedback through the Github issues.

What is the Nyx Client SDK

The Nyx Client SDK is a Python library that provides an API for easy interaction with the Nyx Platform. It enables end users to seamlessly connect their data to the Nyx ecosystem, search for data, subscribe to it, and consume it. With this SDK, users can ultimately build powerful AI applications.

Several examples of SDK usage in an AI context are available:

See also What is Nyx

🔥 Quick Start

Installation

The Nyx Client SDK is available on PyPI and can be installed via pip running the following command.

pip install nyx-client

First time set up

Once the library is installed you can run nyx-client init to generate the .env file. You'll be asked to provide your Nyx username, password and Nyx endpoint.

Example output
NYX_URL=<ENTER URL>
NYX_EMAIL=<ENTER EMAIL>
NYX_PASSWORD=<ENTER PASSWORD>

As a data producer

I want to connect my Data

from nyx_client import NyxClient

client = NyxClient()
client.create_data(
    name="MyData1",
    title="My Data #1",
    description="The description of the data #1",
    size=1080,
    genre="ai",
    categories=["cat1", "cat2", "cat3"],
    download_url="http://storage/dataset1.csv",
    content_type="text/csv",
    lang="fr",
    preview="col1, col2, col3\naaa, bbb, ccc",
    license_url="https://opensource.org/licenses/MIT",
)

I want to share data using the instance's storage to upload

from nyx_client import NyxClient

client = NyxClient()

# Open in binary mode with 'b', optionally
# you can supply and encoding if required
with open("somefile.csv", 'rb') as infile:
  client.create_data(
      name="MyData1",
      title="My Data #1",
      description="The description of the data #1",
      size=1080,
      genre="ai",
      categories=["cat1", "cat2", "cat3"],
      file=infile,
      content_type="text/csv",
      lang="fr",
      preview="col1, col2, col3\naaa, bbb, ccc",
      license_url="https://opensource.org/licenses/MIT",
  )

I want to delete/disconnect my Data

from nyx_client import NyxClient

client = NyxClient()
client.delete_data_by_name(name="MyData1")

As an application builder

I want to subscribe to some data

from nyx_client import NyxClient

client = NyxClient()
found_data = client.get_data(categories[genre="ai", categories=["cat1", "cat"], content_type="text/csv"])
for data in found_data:
  client.subscribe(data)

I want to consume the data

from nyx_client import NyxClient

client = NyxClient()
subscribed_data = client.my_subscriptions()
for data in subscribed_data:
  print(f"Downloading data {data.name}")
  content = data.as_string() # NOTE: If this is a binary file, use as_bytes() instead.

👉 Gotchas

  • If the Data has been deleted/disconnected from Nyx, the SDK will no longer be able to access it. Ensure that the data is still available.

The Nyx ecosystem is at an early stage of its development, please give us feedback through Github issues.

  • If you get the SSL error httpcore.ConnectError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate

then it may be that you need to set some environment variables like this before running your script:

CERT_PATH=$(python -m certifi)
export SSL_CERT_FILE=${CERT_PATH}
export REQUESTS_CA_BUNDLE=${CERT_PATH}

🐞 Troubleshooting

If you encounter any issues, ensure that:

  • Your virtual environment is activated.
  • All required dependencies are installed.
  • Environment variables are set correctly.
  • If an issue persists, check the Issues section on github

For further assistance:

🤝 Contributing

We welcome contributions! Please see our CONTRIBUTING.md for guidelines.

⚖️ Terms and conditions

https://www.get-nyx.io/terms

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nyx_client-0.2.4.tar.gz (16.8 kB view details)

Uploaded Source

Built Distribution

nyx_client-0.2.4-py3-none-any.whl (19.7 kB view details)

Uploaded Python 3

File details

Details for the file nyx_client-0.2.4.tar.gz.

File metadata

  • Download URL: nyx_client-0.2.4.tar.gz
  • Upload date:
  • Size: 16.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for nyx_client-0.2.4.tar.gz
Algorithm Hash digest
SHA256 5a0099fb0845ef9f6a60110294b073d02a97b465bb385afa945c89f153b1fb3d
MD5 24400a2bed6258a8bbab0157109dfe02
BLAKE2b-256 3626403f05ced973af245957cd2510a35d9c89c2d8acc35ad0469228abca5a50

See more details on using hashes here.

Provenance

The following attestation bundles were made for nyx_client-0.2.4.tar.gz:

Publisher: publish.yaml on Iotic-Labs/nyx-sdk

Attestations:

File details

Details for the file nyx_client-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: nyx_client-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 19.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for nyx_client-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fb8a65f95de05c56c20e6b5bb79881014e0a9ec6e0e4fcc474d7060f856fe914
MD5 c897ef2ee414b3a7229e229b99e77db6
BLAKE2b-256 87c6ceab26622fb60b2c7513fe64e8f845ae679b2bc20c17bd850e599d9082e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for nyx_client-0.2.4-py3-none-any.whl:

Publisher: publish.yaml on Iotic-Labs/nyx-sdk

Attestations:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page