A Python SDK/CLI for Lunar API
Project description
lunar-sdk
Contents
SDK for lunar microservices
Description
A Python based SDK & CLI for Lunar microservices
This python package includes
- Functions for lunar-rec
- CLI (Command Line Interface) named
lunar
Installation
Build package and wheel files with poetry
.
# installation
poetry install
poetry run lunar -h
How to use
Credentials
lunar
uses a credentials file to setup a config(env
, apikey
) with a init
file type.
The path for credentials file and format must be as follow:
[Path]
.lunar/credentials
[default]
env=local
apikey=ABCDEFG123
[dev]
env=dev
apikey=AERSDF123
[stg]
env=stg
apikey=HIJKLMNO456
[prd]
env=prd
apikey=PQRSTUV789
The first [default] is used when SDK / CLI is run without a specified profile.
To specify a profile, use AWS_PROFILE
to overrides the default profile for commands that run in that session.
export AWS_PROFILE=stg
SDK
lunar
package provides functions for using all lunar microservices.
For the detailed information related to each function, please refer to Docs.
Here is an example for CRUDing channels:
import lunar
# Environment for Lunar-rec is automatically set with credential file
client = lunar.client("channel")
# Get list of channels
channels = client.get_channels()
# Get a channel
channel = client.get_channel(id="test_channel")
# Create a channel
channel = client.create_channel(id="new_channel", experiment_id="new_experiment")
# Update(or partial) a channel
updated_channel = client.update_channel(id="test_channel", experiment_id="a")
partially_updated_channel = client.update_channel_partial(id="test_channel", experiment_id="ab")
# Delete a channel
client.delete_channel(channel.id)
All functions on the SDK also supports asyncio. If necessary, use an async version of each function.
- Naming rule: Suffix with _async. (e.g.
list_channels()
→list_channels_async()
)
CLI
lunar
also provides CLI (Command Line Interface) generated by click package.
poetry run lunar -h
should show something like the below:
Usage: lunar [OPTIONS] COMMAND [ARGS]...
Options:
-h, --help Show this message and exit.
Commands:
channel Channels on lunar-rec
experiment Experiments on lunar-rec
recommend Recommendation on lunar-rec
Each option also has its own usage instruction.
poetry run lunar experiments -h
Usage: lunar experiment [OPTIONS] {CREATE|LIST|READ|UPDATE|DELETE}
Experiments on lunar-rec
Send a request to Lunar Recommendation API (`/v1/experiemnts/`).
Return: dict or list(dict)
Options:
-i, --id TEXT Unique identifier of a channel
-b, --buckets <TEXT INTEGER>...
Bucket list
-s, --bucketing-seed TEXT Random seed for bucketing
-p, --partial Partial update or not (default: False)
-h, --help Show this message and exit.
Development
Requirements for development
- Python 3.8
- Poetry
Installing Python 3.8 with pyenv is recommended. Check this.
For zsh,
# Install Xcode command line tools (Only if you don't have it already)
xcode-select --install
# Install pyenv and its dependencies
brew update
brew install pyenv openssl readline sqlite3 xz zlib
echo 'eval "$(pyenv init --path)"' >> ~/.zshrc
eval '"$(pyenv init -)"' >> ~/.zshrc
# Restart the terminal
# Install Python 3.8
pyenv install 3.8.10
pyenv global 3.8.10
# Restart the terminal
# Check if the version is right
python -V
# Install Poetry
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
poetry config virtualenvs.in-project true
should work.
Python environment
poetry install
If you need additional deps,
# For production
poetry add package_name
# For development only
poetry add --dev package_name
Documents generation
rm -rf docs
pdoc --html --config show_source_code=False -f -o ./docs lunar
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
Built Distribution
File details
Details for the file apollo-lunar-2022.7.1.tar.gz
.
File metadata
- Download URL: apollo-lunar-2022.7.1.tar.gz
- Upload date:
- Size: 22.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.8.13 Linux/5.13.0-1031-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 420edb4ab871428a9b13bf5eeba8727543c71562742f148113470266b2a87194 |
|
MD5 | f838bfce90f6497c1b19e1e8656e42e1 |
|
BLAKE2b-256 | a97c800735429aed6f14109cef940038630bc1bd6663e8880ca03d06bcd9fd38 |
File details
Details for the file apollo_lunar-2022.7.1-py3-none-any.whl
.
File metadata
- Download URL: apollo_lunar-2022.7.1-py3-none-any.whl
- Upload date:
- Size: 33.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.7 CPython/3.8.13 Linux/5.13.0-1031-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 69e866c6ffb568a9eeba498c4964c3798e86c8ae8192110e303cca836aa1abc2 |
|
MD5 | cf3d37fb54e4cc02fe190a93b03a6680 |
|
BLAKE2b-256 | 3a407edd01a8c299b7940d686156dea2f0ef1393d3d07b771ce24730b07408b5 |