Skip to main content

Euno's CLI library to programmatically interact with Euno instance

Project description

Euno SDK

Euno's CLI library to programmatically interact with Euno instance

Installation

pip install euno-sdk

Quick Start

As a Library

import euno

# Hello world function
message = euno.hello_world("Euno")
print(message)  # Output: Hello, Euno! Welcome to the Euno SDK!

# List resources from your Euno instance
resources = euno.list_resources()
print(f"Found {resources['count']} resources")

# List resources with custom parameters
resources = euno.list_resources(
    properties="uri,type,name,description",
    page_size=10
)

# List resources with EQL query
resources = euno.list_resources(
    eql="type='table'",
    properties="uri,name"
)

# List metadata tags (custom properties)
metadata_tags = euno.list_metadata_tags()
print(f"Found {len(metadata_tags)} metadata tags")

# Set values for a metadata tag
value_updates = [
    {"resource_uri": "table://schema.table1", "value": "production"},
    {"resource_uri": "table://schema.table2", "value": "staging"}
]
result = euno.set_metadata_tag_value(123, value_updates)
print(f"Updated {result.get('updated_count', 0)} values")

As a CLI Tool

# Hello world command
euno hello-world --name Euno

# Show version
euno version

# Show help
euno --help

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/euno-ai/euno-sdk.git
cd euno-sdk

# Install development dependencies
pip install -r requirements-dev.txt

# Install the package in development mode
pip install -e .

Running Tests

pytest

Code Formatting

black euno tests

Type Checking

mypy euno

API Reference

Core Functions

hello_world(name: str = "World") -> str

A simple hello world function to demonstrate the SDK.

Parameters:

  • name (str): The name to greet (default: "World")

Returns:

  • str: A greeting message

Example:

from euno import hello_world

message = hello_world("Euno")
print(message)  # Output: Hello, Euno! Welcome to the Euno SDK!

get_version() -> str

Get the current version of the Euno SDK.

Returns:

  • str: The version string

Example:

from euno import get_version

version = get_version()
print(version)  # Output: 0.2.0

CLI Commands

euno hello-world

A simple hello world command to demonstrate the CLI.

Options:

  • --name, -n: Name to greet (default: "World")

Example:

euno hello-world --name Euno

euno version

Show the version of the Euno SDK.

Example:

euno version

euno init

Initialize the Euno SDK with your API token.

This command will prompt you for your Euno API token and validate it against the Euno backend. The token will be stored securely for future use.

Example:

euno init

Configuration:

  • You can override the stored token by setting the EUNO_TOKEN environment variable
  • You can override the stored account ID by setting the EUNO_ACCOUNT environment variable

euno status

Show the current configuration status.

Displays information about the current configuration including backend URL, token status, and user information.

Example:

euno status

euno logout

Clear the stored configuration and log out.

This will remove the stored API token and require you to run 'euno init' again to authenticate.

Example:

euno logout

euno resources list

List resources from the Euno data model.

Options:

  • --eql, -e: Euno Query Language expression
  • --properties, -p: Comma-separated list of properties (default: uri,type,name)
  • --page: Page number (default: 1)
  • --page-size: Number of resources per page (default: 50)
  • --sorting, -s: Sorting specification
  • --relationships, -r: Comma-separated list of relationships
  • --format, -f: Output format - json, csv, or pretty (default: json)

Examples:

euno resources list
euno resources list --eql "type='table'" --properties "uri,name" --format pretty
euno resources list --relationships "parent,child" --page-size 20

euno metadata-tags list

List all metadata tags (custom properties) for the configured account.

Options:

  • --format, -f: Output format - json, csv, or pretty (default: json)

Examples:

euno metadata-tags list
euno metadata-tags list --format pretty
euno metadata-tags list --format csv

euno metadata-tags set-value

Set values for a metadata tag (custom property).

Arguments:

  • CP_ID: The custom property ID
  • VALUE_UPDATES: JSON string containing the value updates

Options:

  • --format, -f: Output format - json or pretty (default: json)

Examples:

euno metadata-tags set-value 123 '[{"resource_uri": "table://schema.table", "value": "production"}]'
euno metadata-tags set-value 456 '[{"resource_uri": "table://schema.table", "value": "production"}]' --format pretty

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for your changes
  5. Run the test suite
  6. Submit a pull request

Development Setup

# Clone the repository
git clone https://github.com/euno-ai/euno-sdk.git
cd euno-sdk

# Install development dependencies
pip install -r requirements-dev.txt

# Install the package in development mode
pip install -e .

# Install pre-commit hooks
pre-commit install

Running Tests

# Run all tests
make test

# Run tests with coverage
pytest tests/ -v --cov=euno --cov-report=html

# Run specific test file
pytest tests/test_euno.py -v

Code Quality

# Format code
make format

# Run linting
make lint

# Type checking
make type-check

# Run all quality checks
make lint && make type-check

GitHub Actions

This repository uses GitHub Actions for continuous integration:

  • CI: Runs tests on Python 3.8-3.12, linting, type checking, and builds
  • Pre-commit: Ensures code quality with pre-commit hooks
  • Publish: Automatically publishes to PyPI when a release is created

See .github/README.md for detailed workflow documentation.

License

This project is licensed under the MIT License - see the LICENSE file for details.

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

euno-0.5.0.tar.gz (31.6 kB view details)

Uploaded Source

Built Distribution

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

euno-0.5.0-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file euno-0.5.0.tar.gz.

File metadata

  • Download URL: euno-0.5.0.tar.gz
  • Upload date:
  • Size: 31.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for euno-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e210214ab3bf9dc7636976b953e633c54c1f904fe6d6fc77efc0df5837530fc5
MD5 95a38baef57ba32ee5fc19152946f8f0
BLAKE2b-256 fb27801a4366381e03f0e4a5c207aa50fee9f06f640366fcf4dcbc3c37894578

See more details on using hashes here.

File details

Details for the file euno-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: euno-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for euno-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5efac76554e0bbe3afda7271ef75738ec25535803627143444fdca344a105ece
MD5 f549ae4c95abed8379d72c93ac047618
BLAKE2b-256 c4d9629c0b9bd7a5a01a00b9eec16b77b34ae8fb111318292d11c97ffdfb3188

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