QuerySource is a Library for Querying Databases. QuerySource Query parser and generator.
Project description
QuerySource
QuerySource is a powerful Python library designed to streamline access to multiple databases and external APIs through a single, unified interface. Utilizing the proxy design pattern, QuerySource allows developers to seamlessly integrate various data sources into their projects without worrying about the complexities of managing multiple connections.
Features
- Unified interface for querying multiple databases (Redis, PostgreSQL, MySQL, Oracle, SQL Server, InfluxDB, CouchDB, Druid)
- Support for external APIs (Salesforce, ShopperTrack, ZipCodeAPI, etc.)
- Easy-to-use API for executing queries
- Extensible design, allowing for easy addition of new data sources
Installation
$ pip install querysource
---> 100%
Successfully installed querysource
Requirements
- Python >= 3.9
- asyncio (https://pypi.python.org/pypi/asyncio/)
Basic Usage
QuerySource can be used in several ways, one is using QS object itself:
from querysource.queries.qs import QS
query = QS(
query='SELECT * FROM tests',
output_format='pandas'
)
result, error = await query.query()
Extending QuerySource
To add support for a new data source, create a new class inheriting from the BaseProvider or BaseAPI class and implement the required methods (prepare_connection, query, close). Then, register the new data source in the QuerySource class by adding it to the appropriate dictionary (_supported_databases or _supported_apis).
Contributing
We welcome contributions to QuerySource! If you'd like to contribute, please follow these steps:
- Fork the repository
- Create a new branch for your feature or bugfix
- Implement your changes
- Add tests covering your changes
- Create a pull request against the original repository
Contribution guidelines
- Writing tests
- Code review
- Other guidelines
License
QuerySource is released under the BSD License. See the LICENSE file for more details.
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 Distributions
Built Distributions
Hashes for querysource-3.11.21-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b2eaefa20c7e66d20e049bb97220e202e736add1db4581c2107642b0cb49d36f |
|
MD5 | 0adac2635d008437e3c5fc3947019803 |
|
BLAKE2b-256 | 1b84f2a5d3354e65e39f5c94c5d600d7d1fa3ec1f764b03151a63fa811adab5d |
Hashes for querysource-3.11.21-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e9cf6a02a9a199d70bbd9b5d23635590d93fd710dd1adf89862e68195274e313 |
|
MD5 | 8300ffbe3f34abfd5f4867e8a9a9984d |
|
BLAKE2b-256 | 75fad8a0061fb5d45d488ef5bbe137f875aa4dd98eaa66c98978865a7272da3a |
Hashes for querysource-3.11.21-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c76801bd159e44ec10630bb0b582dca7a8c37820c921343a1ac87b488893a308 |
|
MD5 | 4a26e4fd79a7e2536ff45e251bdf99d1 |
|
BLAKE2b-256 | ed5afef5c2f7077d07dab91cc6256ba0e5f4f46f32c4e5951571edb52c9faafd |
Hashes for querysource-3.11.21-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcf5df4fe408d5e592c28c5b15f57a1086a83308ed14617c1f3230a17d02e198 |
|
MD5 | e53f3f95690275464edea6571321bef1 |
|
BLAKE2b-256 | 70b75e269a52540a8b9a6476f8e26fe29259e635d608ba150fb7f4eb1b44f232 |