A python SDK for the dbt RPC server.
Project description
dbt-rpc-client
A python SDK for interacting with a dbt rpc server.
Installation
$ pip install dbt-rpc-client
Basic Usage
from dbt_rpc_client import DbtRpcClient
import requests
rpc = DbtRpcClient(hostname="0.0.0.0", port=8580)
# Getting the current status of the dbt rpc server.
response = rpc.status()
assert isinstance(response, requests.Response)
assert response.ok
# Running dbt models via CLI command.
response = rpc.cli(cli_args="dbt run --models @model1 +model2+")
assert response.ok
# Running dbt models via `run` method.
response = rpc.run(models=["@model1", "+model2+"])
assert response.ok
# Polling a dbt rpc operation.
response = rpc.poll(request_token=response.get("id"))
assert response.ok
print(response.get("result").get("status"))
# Compiling/Running a SQL query.
sql = """
select 1
from {{ ref("my_dbt_model") }}
"""
response = rpc.compile_sql(sql=sql, name="my_sql_query")
assert response.ok
response = rpc.run_sql(sql=sql, name="my_sql_query")
assert response.ok
Contributing
- The first step to contributing is getting a copy of the source code. First, fork
dbt-rpc-client
on GitHub. Then,cd
into the directory where you want your copy of the source code to live and clone the source code:
$ cd repos
$ git clone git@github.com:YourGitHubName/dbt-rpc-client.git
- Now that you have a copy of the source code on your machine, create and activate a virtual envionment for
dbt-rpc-client
:
$ python3 -mvenv ~/.venvs/dbt-rpc-client
$ source ~/.venvs/dbt-rpc-client/bin/activate
- Once inside the virtual environment, run
make dev_install
at the root of the repository:
$ (dbt-rpc-client) make dev_install
- Run the tox testing suite in the appropriate python environment to ensure things are working properly:
$ (dbt-rpc-client) tox -e py37
To format your code using isort and flake8 before commiting changes, run the following commands:
$ (dbt-rpc-client) make isort
$ (dbt-rpc-client) make flake8
Once you've confirmed that your changes work and the testing suite passes, feel free to put out a PR!
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
dbt_rpc_client-0.1.0.tar.gz
(4.2 kB
view details)
Built Distribution
File details
Details for the file dbt_rpc_client-0.1.0.tar.gz
.
File metadata
- Download URL: dbt_rpc_client-0.1.0.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f85e85b89a33439da47046bbb7a07ec62ef832e542e77c137f83fe929bb4d02 |
|
MD5 | bc984b0da77a2a3823a2b735f77f57a2 |
|
BLAKE2b-256 | 33110057d0f3d78c4738f7d5464aec4e415f536c438097cb861542a4196f115e |
File details
Details for the file dbt_rpc_client-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: dbt_rpc_client-0.1.0-py3-none-any.whl
- Upload date:
- Size: 5.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.20.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0674ea01278c61d76af2fdaec54ce50fc1e6c2767cc7a8bc2a050c31e4bfab6 |
|
MD5 | d752d65a7931229082982c688e717c72 |
|
BLAKE2b-256 | 3fd9b4ab8c4327cd0f8cc962296ac03dd2f3609b4625ada6160eb10c5a8b3c67 |