Metadata-Version: 2.1
Name: querysource
Version: 3.12.12
Summary: QuerySource is a Library for Querying Databases. QuerySource Query parser and generator.
Home-page: https://github.com/phenobarbital/querysource/
Author: Jesus Lara
Author-email: "Jesus Lara G." <jesuslarag@gmail.com>
License: BSD
Project-URL: Source, https://github.com/phenobarbital/querysource/
Project-URL: Tracker, https://github.com/phenobarbital/querysource/issues
Project-URL: Documentation, https://querysource.readthedocs.io/en/latest/
Project-URL: Funding, https://paypal.me/phenobarbital
Project-URL: Say Thanks!, https://saythanks.io/to/phenobarbital
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python
Classifier: Typing :: Typed
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: AsyncIO
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Software Development :: Build Tools
Classifier: License :: OSI Approved :: BSD License
Requires-Python: >=3.9.16
Description-Content-Type: text/markdown
Requires-Dist: LivePopularTimes==1.3
Requires-Dist: httpx<=0.27.0,>=0.25.0
Requires-Dist: hubspot-api-client==7.5.0
Requires-Dist: oauth2client==4.1.3
Requires-Dist: google-analytics-data==0.16.2
Requires-Dist: google-api-python-client==2.86.0
Requires-Dist: google-auth-oauthlib==1.0.0
Requires-Dist: sqloxide==0.1.39
Requires-Dist: aiocsv==1.3.2
Requires-Dist: lxml==4.9.3
Requires-Dist: xlsxwriter==3.2.0
Requires-Dist: odswriter==0.4.0
Requires-Dist: odfpy==1.4.1
Requires-Dist: xlrd==2.0.1
Requires-Dist: reportlab==4.1.0
Requires-Dist: WeasyPrint==61.2
Requires-Dist: APScheduler==3.10.4
Requires-Dist: bs4==0.0.1
Requires-Dist: simple-salesforce==1.12.3
Requires-Dist: psycopg2-binary==2.9.9
Requires-Dist: sqlalchemy==2.0.23
Requires-Dist: proxylists>=0.12.5
Requires-Dist: async-notify>=1.3.1
Requires-Dist: navconfig[default]>=1.7.2
Requires-Dist: jsonschema==4.22.0
Requires-Dist: jinja2-iso8601==1.0.0
Requires-Dist: jinja2-time==0.2.0
Requires-Dist: jinja2-humanize-extension==0.4.0
Requires-Dist: statsmodels==0.14.2
Requires-Dist: pmdarima==2.0.4
Requires-Dist: scikit-learn==1.5.1
Requires-Dist: pygal==3.0.0
Requires-Dist: pandas-bokeh==0.5.5
Requires-Dist: plotly==5.22.0
Requires-Dist: seaborn==0.13.2
Requires-Dist: matplotlib==3.8.3
Requires-Dist: prompt-toolkit==3.0.47
Provides-Extra: analytics
Requires-Dist: pygwalker>=0.4.8.9; extra == "analytics"
Requires-Dist: ydata-profiling>=4.8.3; extra == "analytics"
Requires-Dist: sweetviz==2.3.1; extra == "analytics"
Requires-Dist: pandas-eda>=1.2.0; extra == "analytics"
Requires-Dist: scpy==1.1.4; extra == "analytics"
Requires-Dist: keras-cv==0.9.0; extra == "analytics"
Requires-Dist: keras==3.4.1; extra == "analytics"
Requires-Dist: tiktoken==0.6.0; extra == "analytics"
Requires-Dist: yfinance==0.2.40; extra == "analytics"
Requires-Dist: safetensors==0.4.2; extra == "analytics"
Requires-Dist: selenium==4.18.1; extra == "analytics"
Requires-Dist: sentence-transformers==2.6.1; extra == "analytics"
Requires-Dist: tensorflow==2.17.0; extra == "analytics"
Requires-Dist: spacy==3.7.6; extra == "analytics"
Requires-Dist: pydqc==0.1.0; extra == "analytics"
Requires-Dist: prophet==1.1.5; extra == "analytics"
Requires-Dist: dtale==3.13.1; extra == "analytics"
Requires-Dist: lux-api==0.5.1; extra == "analytics"
Requires-Dist: pomegranate==1.1.0; extra == "analytics"
Requires-Dist: autoviz==0.1.905; extra == "analytics"

# 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.
