Skip to main content

The official Python library for the Ouro API

Project description

ouro-py

Version

The Ouro Python library provides convenient access to the Ouro REST API from any Python 3.7+ application. Visit Ouro to learn more about the Ouro platform.

Documentation

The REST API documentation can be found on ouro.foundation/docs/developers/api.

Installation

# install from PyPI
pip install ouro-py

Usage

Generate an API key from your account settings by going to ouro.foundation/settings/api-keys.

Set your Ouro environment variables in a dotenv file, or using the shell:

export OURO_API_KEY="your_api_key"

Init client:

import os
from ouro import Ouro

api_key = os.environ.get("OURO_API_KEY")
ouro = Ouro(api_key=api_key)

Use the client to interface with the Ouro framework.

Create a dataset

data = pd.DataFrame(
    [
        {"name": "Bob", "age": 30},
        {"name": "Alice", "age": 27},
        {"name": "Matt", "age": 26},
    ]
)

res = ouro.datasets.create(
    data=data,
    name="your_dataset_name",
    description="your_dataset_description",
    visibility="private",
)

Read a dataset

id = "3d82308b-0747-45e4-8045-c8f7d2f6c0a6" # penguins dataset

# Retrieve a dataset
dataset = ouro.datasets.retrieve(id)

# Option 1: Load dataset's data as json using the table name
data = ouro.datasets.load("penguins")

# Option 2: Load dataset's data using the PostgREST client
data = ouro.database.table("penguins").select("*").limit(1).execute()

# Option 3: Read dataset's data as a Pandas DataFrame
df = ouro.datasets.query(id)

Update a dataset

id = "3d82308b-0747-45e4-8045-c8f7d2f6c0a6"
data_update = pd.DataFrame([
    {"name": "Bob", "age": 30},
    {"name": "Alice", "age": 27},
    {"name": "Matt", "age": 26},
])

update = {
    "visibility": "private",
    "data": data_update,
}
data = ouro.datasets.update("018f86da-b1be-7099-9556-fe88fb6882c3", **update)

Create a post

content = ouro.posts.Editor()
content.new_header(level=1, text="Hello World")
content.new_paragraph(text="This is a paragraph written in code.")

post = ouro.posts.create(
    content=content,
    name="Hello World",
    description="This is a post from the Python SDK",
    visibility="private",
)

Read a post

id = "b9ff1bfd-b3ae-4e92-9afc-70b1e1e2011a" # The post id

post = ouro.posts.retrieve(id)

Update a post

id = "b9ff1bfd-b3ae-4e92-9afc-70b1e1e2011a" # The post id

new_content = ouro.posts.Editor()
new_content.new_header(level=1, text="Hello World")
new_content.new_paragraph(text="This is a paragraph, but different this time.")

update = {
    "name": "Hello World",
    "visibility": "public",
    "content": new_content,
}
post = ouro.posts.update(id, **update)

Read the full API docs at ouro.foundation/docs/developers/api.

Contributing

Contributing to the Python library is a great way to get involved with the Ouro community. Reach out to us on our Github Discussions page if you want to get involved.

Set up a Local Development Environment

Clone the Repository

git clone git@github.com:ourofoundation/ouro-py.git
cd ouro-py

Create and Activate a Virtual Environment

We recommend activating your virtual environment. Click here for more about Python virtual environments and working with conda and poetry.

Using venv (Python 3 built-in):

python3 -m venv env
source env/bin/activate  # On Windows, use .\env\Scripts\activate

Using conda:

conda create --name ouro-py
conda activate ouro-py

PyPi installation

Install the package (for > Python 3.7):

# with pip
pip install ouro-py

Local installation

You can also install locally after cloning this repo. Install Development mode with pip install -e, which makes it so when you edit the source code the changes will be reflected in your python module.

Badges

License: MIT Python Last commit GitHub commit activity Github Stars Github Forks Github Watchers GitHub contributors

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

ouro_py-0.2.18.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ouro_py-0.2.18-py3-none-any.whl (29.8 kB view details)

Uploaded Python 3

File details

Details for the file ouro_py-0.2.18.tar.gz.

File metadata

  • Download URL: ouro_py-0.2.18.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for ouro_py-0.2.18.tar.gz
Algorithm Hash digest
SHA256 16f29f18387b13d4e8260e7d04338d717282144785cfd1bc77f61f4265656f4a
MD5 6a8c4a62696f5f892ae33fbe12c27554
BLAKE2b-256 84929279c303c8c91b401bfcf4b24b6b8e8dbaba9d7af2e17cf132a8a9323c65

See more details on using hashes here.

File details

Details for the file ouro_py-0.2.18-py3-none-any.whl.

File metadata

  • Download URL: ouro_py-0.2.18-py3-none-any.whl
  • Upload date:
  • Size: 29.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.0

File hashes

Hashes for ouro_py-0.2.18-py3-none-any.whl
Algorithm Hash digest
SHA256 fdfcea11d8e10f8e6ea20e8e5bddb4db7d1f3bd9671a3b7f6097f22f2c92b926
MD5 586efa5858f548a49a78d2ac24a7ef0e
BLAKE2b-256 2df24e5af696b9a3ba2096137532bbd136d6f062b676ada1d972e7e0ea601fc8

See more details on using hashes here.

Supported by

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