Repository URL to install this package:
|
Version:
1.0.22 ▾
|
| namara_pandas |
| namara_python |
| namara_python.egg-info |
| PKG-INFO |
| README.md |
| setup.cfg |
| setup.py |
Python SDK for Namara API and namara-pandas
You need Python 3.7 or above and the package manager pip to install dependencies.
pip3 install -r requirements.txt
Docker is used in this repo only for integration with Jenkins CI, you don't need to run through docker at all.
Can read API key from environment variables or directly passed into Client. The Namara API urls are also read from environement variables
export NAMARA_API_KEY=my_namara_api_key
export NAMARA_API_URL=https://api.ee-dev.namara.io
export NAMARA_AUTH_URL=https://account.ee-dev.namara.io
In Python
from namara_python.client import Client
client = Client()
OR
Pass them in directly
from namara_python.client import Client
client = Client(
api_key='my_namara_api_key',
auth_url='https://account.ee-dev.namara.io',
api_url='https://api.ee-dev.namara.io'
)
The client object is now ready to make requests to Namara API
You can create a .env file to manage environment variables more easily, namara-python will read those.
in .env
export NAMARA_API_KEY=my_namara_api_key
export NAMARA_API_URL=https://api.ee-dev.namara.io
export NAMARA_AUTH_URL=https://account.ee-dev.namara.io
You can pass the query statement directly
from namara_python.client import Client, ExportFailedError
c = Client(
api_key='my_namara_api_key',
auth_url='https://account.ee-dev.namara.io',
api_url='https://api.ee-dev.namara.io'
)
try:
res = client.get(query='SELECT * FROM f78871ca-71f9-4071-859c-7d6ba414972e AS ACM')
print(res)
except ExportFailedError as e:
print(e)
datasets = c.list_datasets()
print(datasets)
You can load a dataframe directly onto namara under a given organization id
...
client.put(data_frame=df, dataset_name:'test_dataset', organization_id:<ORG_UUID> warehouse_name:=None, reference_id:=None)
make test
You can run a specific test by marking it in the test file, above the function:
@pytest.mark.only # <- add this
def only_test_to_run():
...
And then run
make test_only
This project uses Pythons type annotations for some static analysis for types.
Install mypy
pip install mypy
To do type checking
mypy --ignore-missing-imports .
We skip import checks just becuase mypy doesn't quite work as you would expect for imports, especially third party packages
There's scratch file that you could use to import code and quickly test out the sdk.
There's one already called tester.py, fill in your api_key and a valid dataset id and your setup to start testing things out!
Run:
ipython -i tester.py
to get an interactive shell with tester.py code having already been run.
This will error out if you haven't specified your api_key and a proper dataset id (that you have access to) before hand, so dont panic that it failed.
II: DO NOT check in this file with any credentials, especially api key.
Look here: https://github.com/thinkdata-works/namara-python/tree/develop/namara_pandas