<div align="center">
<img alt="SQLconnect logo" src="https://raw.githubusercontent.com/JustinFrizzell/SQLconnect/main/images/logo.png"><br>
</div>
---
<p align="center">
<a href="https://pypi.org/project/SQLconnect/"><img alt="PyPI" src="https://img.shields.io/pypi/v/SQLconnect"></a>
<a href='https://sqlconnect.readthedocs.io/en/latest/?badge=latest'><img src='https://readthedocs.org/projects/sqlconnect/badge/?version=latest' alt='Documentation Status' /></a>
<a href="https://github.com/JustinFrizzell/SQLconnect/blob/main/LICENCE"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-purple.svg"></a>
<a href="https://github.com/psf/black"><img alt="Code style: black" src="https://img.shields.io/badge/code%20style-black-000000.svg"></a>
</p>
**SQLconnect** is a Python package designed to simplify the process of connecting to SQL databases. It uses a `connections.yaml` file for database configuration and a `.env` file for secure credentials management. SQLconnect supports executing SQL from `.sql` files or Python strings, and retrieving data into pandas DataFrames. This package is particularly useful for data analysts and developers who need a straightforward way to interact with SQL databases.
## Features
- Allows easy configuration and management of database connections using a `connections.yaml` file.
- Supports the use of a `.env` file for secure storage of database credentials, enhancing security.
- Leverages SQLAlchemy for database connections, providing a robust and flexible framework for SQL operations.
- Enables executing SQL queries and directly retrieving the results into pandas DataFrames, facilitating easy data manipulation and analysis.
- Capable of handling multiple database connections, allowing users to switch between different databases as needed.
- Provides functionality to execute SQL queries either by reading from an external file or directly from a string.
## Installation
```bash
pip install SQLconnect
```
## Configuration
To use SQLconnect, create a `connections.yaml` file in the root of your project (or in your home directory) with the following example structure:
```yaml
connections:
Database_PROD:
sqlalchemy_driver: 'mssql+pyodbc'
odbc_driver: 'SQL+Server'
server: 'prod-server.database.com'
database: 'ProdDB'
username: '${DB_PROD_USERNAME}' # References DB_PROD_USERNAME in .env
password: '${DB_PROD_PASSWORD}' # References DB_PROD_PASSWORD in .env
options:
- 'Trusted_Connection=No'
```
Also create a `.env` file in the root of your project (or in your home directory) with the following example structure:
```bash
# This file should be kept secure and not checked into version control (add to .gitignore)
# Production Database Credentials
DB_PROD_USERNAME=prodUser
DB_PROD_PASSWORD=prodPassword
```
Replace the example values with your actual database connection details.
## Usage
Here's a quick example to get you started:
```python
import SQLconnect as sc
# Set up a database connection, all configuration is handled with connections.yaml and .env
connection = sc.SQLconnector("Database_PROD")
# Assign the results of a query to a pandas DataFrame
df = connection.sql_to_df("your_query.sql")
# Explore the dataframe with pandas
print(df.describe())
```
## Documentation
Full documentation for SQLconnect can be found at https://sqlconnect.readthedocs.io/
## License
This project is licensed under the [MIT License](https://raw.githubusercontent.com/JustinFrizzell/SQLconnect/main/LICENCE).
Raw data
{
"_id": null,
"home_page": "https://github.com/JustinFrizzell/SQLconnect",
"name": "SQLconnect",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "SQL database connection configuration",
"author": "Justin Frizzell",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/29/d8/2545f5c38ebcea4d626a8e5a8b1e2db67a634f10f4e76875f2858ce988be/SQLconnect-0.2.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\r\n <img alt=\"SQLconnect logo\" src=\"https://raw.githubusercontent.com/JustinFrizzell/SQLconnect/main/images/logo.png\"><br>\r\n</div>\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n<a href=\"https://pypi.org/project/SQLconnect/\"><img alt=\"PyPI\" src=\"https://img.shields.io/pypi/v/SQLconnect\"></a>\r\n<a href='https://sqlconnect.readthedocs.io/en/latest/?badge=latest'><img src='https://readthedocs.org/projects/sqlconnect/badge/?version=latest' alt='Documentation Status' /></a>\r\n<a href=\"https://github.com/JustinFrizzell/SQLconnect/blob/main/LICENCE\"><img alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-purple.svg\"></a>\r\n<a href=\"https://github.com/psf/black\"><img alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\"></a>\r\n</p>\r\n\r\n**SQLconnect** is a Python package designed to simplify the process of connecting to SQL databases. It uses a `connections.yaml` file for database configuration and a `.env` file for secure credentials management. SQLconnect supports executing SQL from `.sql` files or Python strings, and retrieving data into pandas DataFrames. This package is particularly useful for data analysts and developers who need a straightforward way to interact with SQL databases.\r\n\r\n## Features\r\n\r\n- Allows easy configuration and management of database connections using a `connections.yaml` file.\r\n\r\n- Supports the use of a `.env` file for secure storage of database credentials, enhancing security.\r\n\r\n- Leverages SQLAlchemy for database connections, providing a robust and flexible framework for SQL operations.\r\n\r\n- Enables executing SQL queries and directly retrieving the results into pandas DataFrames, facilitating easy data manipulation and analysis.\r\n\r\n- Capable of handling multiple database connections, allowing users to switch between different databases as needed.\r\n\r\n- Provides functionality to execute SQL queries either by reading from an external file or directly from a string.\r\n\r\n## Installation\r\n\r\n```bash\r\npip install SQLconnect\r\n```\r\n\r\n## Configuration\r\n\r\nTo use SQLconnect, create a `connections.yaml` file in the root of your project (or in your home directory) with the following example structure:\r\n\r\n```yaml\r\nconnections:\r\n Database_PROD:\r\n sqlalchemy_driver: 'mssql+pyodbc'\r\n odbc_driver: 'SQL+Server'\r\n server: 'prod-server.database.com'\r\n database: 'ProdDB'\r\n username: '${DB_PROD_USERNAME}' # References DB_PROD_USERNAME in .env\r\n password: '${DB_PROD_PASSWORD}' # References DB_PROD_PASSWORD in .env\r\n options:\r\n - 'Trusted_Connection=No'\r\n```\r\n\r\nAlso create a `.env` file in the root of your project (or in your home directory) with the following example structure:\r\n\r\n```bash\r\n# This file should be kept secure and not checked into version control (add to .gitignore)\r\n# Production Database Credentials\r\nDB_PROD_USERNAME=prodUser\r\nDB_PROD_PASSWORD=prodPassword\r\n```\r\n\r\nReplace the example values with your actual database connection details.\r\n\r\n## Usage\r\n\r\nHere's a quick example to get you started:\r\n\r\n```python\r\nimport SQLconnect as sc\r\n\r\n# Set up a database connection, all configuration is handled with connections.yaml and .env\r\nconnection = sc.SQLconnector(\"Database_PROD\")\r\n\r\n# Assign the results of a query to a pandas DataFrame\r\ndf = connection.sql_to_df(\"your_query.sql\")\r\n\r\n# Explore the dataframe with pandas\r\nprint(df.describe())\r\n```\r\n\r\n## Documentation\r\n\r\nFull documentation for SQLconnect can be found at https://sqlconnect.readthedocs.io/\r\n\r\n## License\r\n\r\nThis project is licensed under the [MIT License](https://raw.githubusercontent.com/JustinFrizzell/SQLconnect/main/LICENCE).\r\n",
"bugtrack_url": null,
"license": "",
"summary": "Package to simplify connections to SQL databases.",
"version": "0.2.0",
"project_urls": {
"Documentation": "https://sqlconnect.readthedocs.io/en/latest/",
"Homepage": "https://github.com/JustinFrizzell/SQLconnect",
"Source": "https://github.com/JustinFrizzell/SQLconnect"
},
"split_keywords": [
"sql",
"database",
"connection",
"configuration"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dabc33590fdedfc679e6067d7630021d22197ffb30bc21ab77053f46cd5b2d4a",
"md5": "330b88630ea1ff3b88ac787c44d0d240",
"sha256": "b60852a5e1d9bbb0b8a2cd41cc7a1f83da20dac2b0b5f0b2bef7f3d39c9bd675"
},
"downloads": -1,
"filename": "SQLconnect-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "330b88630ea1ff3b88ac787c44d0d240",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10091,
"upload_time": "2023-11-26T19:54:26",
"upload_time_iso_8601": "2023-11-26T19:54:26.969395Z",
"url": "https://files.pythonhosted.org/packages/da/bc/33590fdedfc679e6067d7630021d22197ffb30bc21ab77053f46cd5b2d4a/SQLconnect-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "29d82545f5c38ebcea4d626a8e5a8b1e2db67a634f10f4e76875f2858ce988be",
"md5": "3caaa99d8226bfb7a9d542119756ad20",
"sha256": "3cc6e1e1f6a7fb7b1a826bbb41bbeda8a6575a424c69127933f63256057c61a3"
},
"downloads": -1,
"filename": "SQLconnect-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "3caaa99d8226bfb7a9d542119756ad20",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8927,
"upload_time": "2023-11-26T19:54:30",
"upload_time_iso_8601": "2023-11-26T19:54:30.124248Z",
"url": "https://files.pythonhosted.org/packages/29/d8/2545f5c38ebcea4d626a8e5a8b1e2db67a634f10f4e76875f2858ce988be/SQLconnect-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-11-26 19:54:30",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "JustinFrizzell",
"github_project": "SQLconnect",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pandas",
"specs": []
},
{
"name": "sqlalchemy",
"specs": []
},
{
"name": "pyyaml",
"specs": []
},
{
"name": "pyodbc",
"specs": []
},
{
"name": "python-dotenv",
"specs": []
}
],
"lcname": "sqlconnect"
}