Skip to content

taosdata/taos-connector-python

Repository files navigation

TDengine Python Connector

GitHub Actions Workflow Status codecov GitHub commit activity PyPI GitHub License PyPI
Twitter Follow YouTube Channel Discord Community LinkedIn StackOverflow

English | 简体中文

Table of Contents

1. Introduction

taospy is the official Python Connector for TDengine, allowing Python developers to develop applications that access the TDengine database. It supports functions such as data writing, querying, subscription, schemaless writing, and parameter binding.

The API for taospy is compliant with the Python DB API 2.0 (PEP-249). It contains two modules:

  1. The taos module. It uses TDengine C client library for client server communications.
  2. The taosrest module. It wraps TDengine RESTful API to Python DB API 2.0 (PEP-249). With this module, you do not need to install the TDengine C client library.

2. Documentation

  • To use Python Connector, please check Developer Guide, which includes how an application can introduce the Python Connector , as well as examples of data writing, querying, schemaless writing, parameter binding, and data subscription.
  • For other reference information, please check Reference Manual, which includes version history, data types, example programs, API descriptions, and FAQs.
  • This quick guide is mainly for developers who like to contribute/build/test the Python Connector by themselves. To learn about TDengine, you can visit the official documentation.

3. Prerequisites

System Requirements

  • Python >= 3.7, pip
  • For taos native connector: TDengine client library (libtaos.so)
  • For taos-ws-py: Rust toolchain >= 1.64, maturin
  • TDengine has been deployed locally. For specific steps, please refer to Deploy TDengine, and taosd and taosAdapter have been started.

Installing Build Tools

Ubuntu/Debian:

sudo apt-get install -y python3 python3-pip python3-venv

CentOS/RHEL:

sudo yum install -y python3 python3-pip

Installing maturin (for taos-ws-py only)

pip3 install maturin

4. Building

# taospy (pure Python)
git clone https://github.com/taosdata/taos-connector-python.git
cd taos-connector-python
pip3 install -e ".[dev]"

# taos-ws-py (Rust WebSocket bindings)
cd taos-ws-py
maturin develop    # builds and installs in current venv
# or
maturin build --release   # produces a wheel in target/wheels/

5. Testing

5.1 Test Execution

The Python Connector testing framework is pytest
The testing directory for taospy is located in the root directory: tests/
The testing directory for taos-ws-py is located in the root directory: taos-ws-py/tests/
The test code has been written into one bash file. You can open and view the detailed testing process
The following command runs all test cases on Linux platform:

# taospy
pytest tests/
# or
bash ./test_taospy.sh
# taos-ws-py
cd taos-ws-py
maturin develop
pytest tests/
cd ..
# or
bash ./test_taos-ws-py.sh

5.2 Test Case Addition

You can add new test files or add test cases in existing test files that comply with pytest standards

5.3 Performance Testing

Performance testing is in progress.

6. Packaging

# taospy
python3 -m build
# Output: dist/taospy-<version>.tar.gz, dist/taospy-<version>-py3-none-any.whl

# taos-ws-py
cd taos-ws-py
maturin build --release
# Output: target/wheels/taos_ws_py-<version>-*.whl

7. CI/CD

8. Submitting Issues

We welcome the submission of GitHub Issue. When submitting, please provide the following information:

  • Problem description, whether it always occurs, and it's best to include a detailed call stack.
  • Python Connector version.
  • Python Connection parameters (username and password not required).
  • TDengine server version.

9. Submitting PRs

We welcome developers to contribute to this project. When submitting PRs, please follow these steps:

  1. Fork this project, refer to (how to fork a repo).
  2. Create a new branch from the main branch with a meaningful branch name (git checkout -b my_branch). Do not modify the main branch directly.
  3. Modify the code, ensure all unit tests pass, and add new unit tests to verify the changes.
  4. Push the changes to the remote branch (git push origin my_branch).
  5. Create a Pull Request on GitHub (how to create a pull request).
  6. After submitting the PR, you can find your PR through the Pull Request. Click on the corresponding link to see if the CI for your PR has passed. If it has passed, it will display "All checks have passed". Regardless of whether the CI passes or not, you can click "Show all checks" -> "Details" to view the detailed test case logs.
  7. After submitting the PR, if CI passes, you can find your PR on the codecov page to check the test coverage.

10. References

11. License

MIT License

About

TDengine connector for Python

Topics

Resources

License

Code of conduct

Contributing

Stars

60 stars

Watchers

23 watching

Forks

Packages

 
 
 

Contributors