# 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
<div class="termy">
```console
$ 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:
```python
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.
Raw data
{
"_id": null,
"home_page": "https://github.com/phenobarbital/querysource/",
"name": "querysource",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9.16",
"maintainer_email": null,
"keywords": null,
"author": "Jesus Lara",
"author_email": "\"Jesus Lara G.\" <jesuslarag@gmail.com>",
"download_url": null,
"platform": null,
"description": "# QuerySource #\n\nQuerySource 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.\n\n## Features ##\n\n* Unified interface for querying multiple databases (Redis, PostgreSQL, MySQL, Oracle, SQL Server, InfluxDB, CouchDB, Druid)\n* Support for external APIs (Salesforce, ShopperTrack, ZipCodeAPI, etc.)\n* Easy-to-use API for executing queries\n* Extensible design, allowing for easy addition of new data sources\n\n## Installation\n\n<div class=\"termy\">\n\n```console\n$ pip install querysource\n---> 100%\nSuccessfully installed querysource\n```\n\n\n### Requirements ###\n\n* Python >= 3.9\n* asyncio (https://pypi.python.org/pypi/asyncio/)\n\n## Basic Usage ##\n\nQuerySource can be used in several ways, one is using QS object itself:\n\n```python\nfrom querysource.queries.qs import QS\n\nquery = QS(\n query='SELECT * FROM tests',\n output_format='pandas'\n)\nresult, error = await query.query()\n```\n\n## Extending QuerySource ##\n\nTo 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).\n\n\n### Contributing ###\n\nWe welcome contributions to QuerySource! If you'd like to contribute, please follow these steps:\n\n* Fork the repository\n* Create a new branch for your feature or bugfix\n* Implement your changes\n* Add tests covering your changes\n* Create a pull request against the original repository\n\n### Contribution guidelines ###\n\n* Writing tests\n* Code review\n* Other guidelines\n\n### License ###\n\nQuerySource is released under the BSD License. See the LICENSE file for more details.\n",
"bugtrack_url": null,
"license": "BSD",
"summary": "QuerySource is a Library for Querying Databases. QuerySource Query parser and generator.",
"version": "3.13.4",
"project_urls": {
"Documentation": "https://querysource.readthedocs.io/en/latest/",
"Funding": "https://paypal.me/phenobarbital",
"Homepage": "https://github.com/phenobarbital/querysource/",
"Say Thanks!": "https://saythanks.io/to/phenobarbital",
"Source": "https://github.com/phenobarbital/querysource/",
"Tracker": "https://github.com/phenobarbital/querysource/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "1058ef7e506efdcd36f49f7b156f4b3b9488c05f7a45d97501e82facb645fdfb",
"md5": "3d512cb293c9492f8145b8fc400d5a5a",
"sha256": "f767b0b476036c15a94766224ca92af6ec53fd1a12f74cbdf8c9bf8dc4cb0845"
},
"downloads": -1,
"filename": "querysource-3.13.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3d512cb293c9492f8145b8fc400d5a5a",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.9.16",
"size": 5092626,
"upload_time": "2024-12-02T22:48:12",
"upload_time_iso_8601": "2024-12-02T22:48:12.436378Z",
"url": "https://files.pythonhosted.org/packages/10/58/ef7e506efdcd36f49f7b156f4b3b9488c05f7a45d97501e82facb645fdfb/querysource-3.13.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "582e31b79d4b29a73f116d9c5b6eb9190fe0f07808d1605e005f38723f7fa306",
"md5": "038bf35b06acce1bf5d1f793934cb9c2",
"sha256": "f162d4e1e5691458065ba6818c7c7c445d6cf8d28d4950325a9782832943dfae"
},
"downloads": -1,
"filename": "querysource-3.13.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "038bf35b06acce1bf5d1f793934cb9c2",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.9.16",
"size": 5359521,
"upload_time": "2024-12-02T22:48:15",
"upload_time_iso_8601": "2024-12-02T22:48:15.123684Z",
"url": "https://files.pythonhosted.org/packages/58/2e/31b79d4b29a73f116d9c5b6eb9190fe0f07808d1605e005f38723f7fa306/querysource-3.13.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d5be205081ca3f007b6b46093e63bde4d453f4105041c4fed554b4c8c18ce19f",
"md5": "c6391d0ebf8b614fac7c9ed79977e078",
"sha256": "276c41f4690b3cc9cb08d0512ac02c9e339aff478d84a75e4a5ccdf42fd175e5"
},
"downloads": -1,
"filename": "querysource-3.13.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c6391d0ebf8b614fac7c9ed79977e078",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.9.16",
"size": 5812534,
"upload_time": "2024-12-02T22:48:16",
"upload_time_iso_8601": "2024-12-02T22:48:16.563545Z",
"url": "https://files.pythonhosted.org/packages/d5/be/205081ca3f007b6b46093e63bde4d453f4105041c4fed554b4c8c18ce19f/querysource-3.13.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "469439e90c2dac647a3553e5a87a0a6d4ab3e21d55be806ad28e49033a33df87",
"md5": "6c1af058dd4d87a333a247db423c70c1",
"sha256": "08d967e5351ae286dfd46011b8c5dc3fd7a8ac86d66d41afc5662eb94e046b4d"
},
"downloads": -1,
"filename": "querysource-3.13.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "6c1af058dd4d87a333a247db423c70c1",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.9.16",
"size": 5109704,
"upload_time": "2024-12-02T22:48:19",
"upload_time_iso_8601": "2024-12-02T22:48:19.585634Z",
"url": "https://files.pythonhosted.org/packages/46/94/39e90c2dac647a3553e5a87a0a6d4ab3e21d55be806ad28e49033a33df87/querysource-3.13.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-02 22:48:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "phenobarbital",
"github_project": "querysource",
"github_not_found": true,
"lcname": "querysource"
}