The Python Client for PolyAPI, the IPaaS by Developers for Developers
Project description
PolyAPI Python Library
The PolyAPI Python Library lets you use and define PolyAPI functions using Python.
PolyAPI Quickstart
1. Install Libraries
First install the client.
We recommend the use of venv so you can have multiple projects each with separate credentials:
python -m venv myvenv
source myvenv/bin/activate
pip install polyapi-python
Replace myvenv
with whatever you'd like your venv to be named!
For more on Python virtual environments, we recommend this venv primer.
However, if you only need to use polyapi with a single project, you can do a basic install:
pip install polyapi-python
2. Generate Your Functions
Now you can run the following to generate your library
python -m polyapi generate
You will be prompted to enter the Poly server url you use and your Poly API key.
You can also provide the key and url as environment variables (useful for deployment):
POLY_API_KEY='your_key'
POLY_API_BASE_URL='your_server' # e.g. na1.polyapi.io
3. Test
That's it! Now open up a test file and you can run some code like so:
from polyapi import poly
print(poly.polyapi.function.api.list(my_server, my_api_key))
Add New Server Functions
To add a new server function, please follow the quickstart. Then you can add a server function like so:
python -m polyapi --context mycontext --description mydesc --server function add <function_name> foo.py
The code in foo.py
should contain a single defined function named the same as your <function_name>
variable.
So for example, if you want to add a function named bar
, your file foo.py
would look like this:
def bar():
return "Hello World"
See Server Function Logs
In order to see function logs, please first set logsEnabled
to true
in Canopy for the function.
https://na1.polyapi.io/canopy/polyui/collections/server-functions
Then in your code, get the poly logger and log with it like so:
logger = logging.getLogger("poly")
def bar():
logger.warning("I AM THE LOG")
return "Hello World"
Finally, click the "Show Logs" button to see your server function logs in Canopy!
Complex Types In Server Functions
You can define arbitrarily complex argument and return types using TypedDicts.
NOTE: you must use TypedDict
from typing_extensions
, not from the base typing
module.
from typing_extensions import TypedDict
class Foobar(TypedDict):
count: int
def bar(n: int) -> Foobar:
return Foobar(count=n)
Pypi
This library is hosted on Pypi. You can find the latest version on the pypi polyapi-python project.
Upgrade
To upgrade your library to the latest version, pass the upgrade flag.
pip install polyapi-python --upgrade
Pre-Release
To upgrade your library to the latest dev version, pass the --pre
flag.
pip install polyapi-python --pre --upgrade
Change Your API Key
If you need to change your API key or what server you are pointing to, you can run:
python -m polyapi setup
Unit Tests
To run this library's unit tests, please clone the repo then run:
python -m unittest discover
Support
If you run into any issues or want help getting started with this project, please contact support@polyapi.io
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 polyapi_python-0.3.0.tar.gz
.
File metadata
- Download URL: polyapi_python-0.3.0.tar.gz
- Upload date:
- Size: 26.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ba5a989edb2a7b44b1ad1883b2020be535047b7e931cf61733e4c53d0d272f0 |
|
MD5 | c96c874b76edbe9a6b8beae8e1ff995b |
|
BLAKE2b-256 | 1f095ec8dcd4444763c86b58cc9f1b4ea105220a5b1a40b19401c7205eca6748 |
Provenance
The following attestation bundles were made for polyapi_python-0.3.0.tar.gz
:
Publisher:
polyapi-update-python-package.yml
on polyapi/polyapi-python
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
polyapi_python-0.3.0.tar.gz
- Subject digest:
9ba5a989edb2a7b44b1ad1883b2020be535047b7e931cf61733e4c53d0d272f0
- Sigstore transparency entry: 145557408
- Sigstore integration time:
- Predicate type:
File details
Details for the file polyapi_python-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: polyapi_python-0.3.0-py3-none-any.whl
- Upload date:
- Size: 27.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 77de7d70e638590034a64438efaf3871aeed6f9afd7e24f6a0c7243cef231230 |
|
MD5 | b0c0b61632d6ebef7c6e337582dfd7b7 |
|
BLAKE2b-256 | 6fa88c44a29e2f082378fb722b3b4ae6bd151a17abc51fa89955450eb3e580c8 |
Provenance
The following attestation bundles were made for polyapi_python-0.3.0-py3-none-any.whl
:
Publisher:
polyapi-update-python-package.yml
on polyapi/polyapi-python
-
Statement type:
https://in-toto.io/Statement/v1
- Predicate type:
https://docs.pypi.org/attestations/publish/v1
- Subject name:
polyapi_python-0.3.0-py3-none-any.whl
- Subject digest:
77de7d70e638590034a64438efaf3871aeed6f9afd7e24f6a0c7243cef231230
- Sigstore transparency entry: 145557409
- Sigstore integration time:
- Predicate type: