Skip to main content

CLI and SDK tools for interacting with the Shaped API.

Project description

Python SDK

Installation

Local Development

pip install -e .

Pip Installation

pip install shaped

Rank

import shaped

api_key = 'your_api_key' 
client = shaped.Client(api_key=api_key)

api_response = client.rank(
    model_name="amazon_beauty_product_recommendations",
    user_id="A2FRWMTWYJUK7P",
    return_metadata=True,
    item_ids=['B01AHSUT8M', 'B00GW7H5EY', 'B01GLA54SA', 'B0016PKWK6', 'B00PJD7KPG', 'B00BCI8OP2', 'B004FK7R02'],
)
print(api_response)

Retrieve

import shaped

api_key = 'your_api_key' 
client = shaped.Client(api_key=api_key)

api_response = client.retrieve(
    model_name="amazon_beauty_product_recommendations",
)
print(api_response)

Similar Items

import shaped

api_key = 'your_api_key' 
client = shaped.Client(api_key=api_key)

api_response = client.similar_items(
    model_name="amazon_beauty_product_recommendations", 
    item_id="B000FOI48G",
)
print(api_response)

Similar Users

import shaped

api_key = 'your_api_key' 
client = shaped.Client(api_key=api_key)

api_response = client.similar_users(
    model_name="amazon_beauty_product_recommendations", 
    user_id="A2FRWMTWYJUK7P",
)
print(api_response)

Complement Items

import shaped

api_key = 'your_api_key' 
client = shaped.Client(api_key=api_key)

api_response = client.complement_items(
    model_name="amazon_beauty_product_recommendations", 
    item_ids=['B000URXP6E', 'B0012Y0ZG2'],
)
print(api_response)

Maintainer Notes

To recreate the autogenerated code:

  1. brew install openapi-generator
  2. Copy across openapi.yaml from the shaped-docs repository to ~
  3. Change -g python to the language you want to generate
  4. Change -o python/ to the directory you want to output to
  5. Navigate to ~ and run the command:

Python

openapi-generator generate -g python -i openapi.yaml -o python/ -p packageName=shaped.autogen --global-property models,apis,apiDocs=false,modelDocs=false,modelTests=false,apiTests=false,supportingFiles=api_client.py:api_response.py:configuration.py:exceptions.py:rest.py:__init__.py

Node.js

openapi-generator generate -i openapi.yaml -g javascript -o nodejs/src -c config.yaml --global-property models,apis,apiDocs=false,modelDocs=false,modelTests=false,apiTests=false,supportingFiles=ApiClient.js

Testing

pytest python/tests/test_rank.py --api-key 'api_key' npm test

Shaped CLI

CLI for interactions with the Shaped API.

Installing the Shaped CLI

pip install shaped

Initialize

shaped init --api-key <API_KEY>

Model API

Create Model (File)

shaped create-model --file <PATH_TO_FILE>

Create Model (STDIN)

cat $(PATH_TO_FILE) | shaped create-model

List Models

shaped list-models

View Model

shaped view-model --model-name <MODEL_NAME>

Delete Model

shaped delete-model --model-name <MODEL_NAME>

Dataset API

Create Dataset

shaped create-dataset --file <PATH_TO_FILE>

List Datasets

shaped list-datasets

Dataset Insert

shaped dataset-insert --dataset-name <DATASET_NAME> --file <DATAFRAME_FILE> --type <FILE_TYPE> 

Delete dataset

shaped delete-dataset --dataset-name <DATASET_NAME>

Rank API

Rank

shaped rank --model-name <MODEL_NAME> --user-id <USER_ID>

Similar Items

shaped similar --model-name <MODEL_NAME> --item-id <ITEM_ID>

Similar Users

shaped similar --model-name <MODEL_NAME> --user-id <USER_ID>

Development

Installing the Shaped CLI from Test PyPI

Upon all pushes to main branch, a new version of the CLI is published to Test PyPI. To install the latest version of the CLI from Test PyPI, run the following commands:

conda create -n cli-dev python=3.9
conda activate cli-dev
export PACKAGE_VERSION={} # Specify the version you want to install
pip install --extra-index-url https://test.pypi.org/simple/ shaped-cli==$PACKAGE_VERSION

Releasing a new CLI version to PyPI

To release a new version of the CLI to PyPI, open a PR changing the version of the package in setup.py, following Semantic Versioning principles, e.g. 0.1.1.

CircleCI will generate an approval prompt when this branch is merged to main, and upon approval will publish to PyPI.

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

shaped-0.14.1.tar.gz (56.7 kB view details)

Uploaded Source

Built Distribution

shaped-0.14.1-py3-none-any.whl (162.7 kB view details)

Uploaded Python 3

File details

Details for the file shaped-0.14.1.tar.gz.

File metadata

  • Download URL: shaped-0.14.1.tar.gz
  • Upload date:
  • Size: 56.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for shaped-0.14.1.tar.gz
Algorithm Hash digest
SHA256 ca5dace2b5bff86d1eaf607293d273f30d34273606ce68494f7ac08f09a47e77
MD5 a100fe78afc446a6d8a9b412a86604b7
BLAKE2b-256 fe79e29aa103406b4530bf26a5477383f1d4b2bdc9e3461da643e4e25cbe91d7

See more details on using hashes here.

File details

Details for the file shaped-0.14.1-py3-none-any.whl.

File metadata

  • Download URL: shaped-0.14.1-py3-none-any.whl
  • Upload date:
  • Size: 162.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.20

File hashes

Hashes for shaped-0.14.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4d00794e21232d8af5e581f97e1e97b38c409c65595f1230a2ba318a31ed0f86
MD5 b0f0924a92da29997d117371337a001a
BLAKE2b-256 3b7a8f3669f6cb46bb1513ec0cb29d1d3dc8ccf24436b69f918483d862394a2f

See more details on using hashes here.

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