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!