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 hashes)
Built Distribution
Close
Hashes for dbt_rpc_client-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a0674ea01278c61d76af2fdaec54ce50fc1e6c2767cc7a8bc2a050c31e4bfab6 |
|
MD5 | d752d65a7931229082982c688e717c72 |
|
BLAKE2b-256 | 3fd9b4ab8c4327cd0f8cc962296ac03dd2f3609b4625ada6160eb10c5a8b3c67 |