{ "info": { "author": "Kiseev Nikolay", "author_email": "kiseev.nikolay@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# S_Connector\n\nSimple to use connector to DB for Python code.
\nSupport DB engine: MySQL and Redshift Amazon\n\n## Description\n\nIt is wrapper for simple connecting to DB in Python.\n\n## Dependencies\n\n- __python >= 3.7__ or more (maybe will be work on Python 2.x, but I didn't test it).\n- [__PyYAML__](https://pyyaml.org/) or more (needed for file settings)\n- __psycopg2__ module for connection to Redshift Amazon DB\n- __mysqlclient__ module for connection to MySQL DB\n- __s_logger__ implementation of a simple logger module\n\n## Before install\n\nBefore install the `mysqlclient` need to do some extra steps:\n- `sudo apt-get install python3-dev default-libmysqlclient-dev` # Debian / Ubuntu\n- `sudo yum install python3-devel mysql-devel` # Red Hat / CentOS\n- `brew install mysql-connector-c` # macOS (Homebrew) (Currently, it has bug. See below)\n\nopen file: `/usr/local/Cellar/mysql-connector-c/x.x.x/bin/mysql-config` - instead `x.x.x` number of `mysql-connector-c`\nversion\n\nfind follow lines\n\n```\n# on macOS, on or about line 112:\n# Create options\nlibs=\"-L$pkglibdir\"\nlibs=\"$libs -l \"\n```\n\nand change to \n\n```\n# Create options\nlibs=\"-L$pkglibdir\"\nlibs=\"$libs -lmysqlclient -lssl -lcrypto\"\n```\n\nBut, before start changing this file need to add access to write:\n\n```bash\nchmod 0666 /usr/local/Cellar/mysql-connector-c/x.x.x/bin/mysql-config\n```\n\nand after changing need to restore access:\n\n```bash\nchmod 0555 /usr/local/Cellar/mysql-connector-c/x.x.x/bin/mysql-config\n```\n\n## How use\n\nFile __main.py__ have a little example.\n- need install module: __pip install s_connector__\n- create **'db_credential.yaml'** which contains path to file with connection credential. See \nformat [below](#format-db-credential)\n- create file with connection credential. See format [below](#format-credential) file name `credential.yaml`\n- in your code need use import fro importing module\n```pyhton\nfrom s_connector.S_Connector import MySQLConnector\n```\n__or/and__\n```python\nfrom s_connector.SConnector import RedshiftConnector\n```\n- create the object of class S_Logger and give it settings file name\n\n```python\nconnector = RedshiftConnector('redshift_credential') # 'redshift_credential' - name of group for Redshift Amaon credential\n```\n__or/and__\n```python\nconnector = MySQLConnector('mysql_credential') # 'mysql_credential' - name og group for MySql credential\n```\n\nWe can use __open__ method for establish connection and __close__ method for close connection\n```python\nconnector.open()\nres = connector.select('SELECT 1;')\nprint(res[0][0])\nconnector.close()\n```\n__or__\n\nuse Context Manager:\n```python\nwith MySQLConnector('mysql_credential') as connector:\n res = connector.select('SELECT 1;')\n print(res[0][0])\n```\n\n#### Example:\n\n```python\nfrom s_connector.SConnector import MySQLConnector\nfrom s_connector.SConnector import RedshiftConnector\n\n\nif __name__ == '__main__':\n connector = RedshiftConnector('redshift_credential')\n connector.open()\n print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))\n connector.close()\n\n with RedshiftConnector('redshift_credential') as connector:\n print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))\n\n connector = MySQLConnector('mysql_credential')\n connector.open()\n print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))\n connector.close()\n\n with MySQLConnector('mysql_credential') as connector:\n print(connector.select('SELECT CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP;'))\n```\n\n### format db_credential.yaml:\n\n```\npath_to_cred: credential.yaml\n```\n\n### format credential.yaml:\n\n**IMPORTANT** This file need to move to protected place.\n```\nredshift_credential: # connection name\n host: redshift.data.db.test # or IP\n port: 5432\n database: test\n user: user_db\n passcode: somepwd\n\nmysql_credential: # connection name\n host: mysql.data.db.test # or IP\n port: 3306\n database: test_db\n user: user_db\n passcode: somepwd\n```\n\n## Current version: 1.0.2", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nkiseev/S_Connector", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "s-connector", "package_url": "https://pypi.org/project/s-connector/", "platform": "", "project_url": "https://pypi.org/project/s-connector/", "project_urls": { "Homepage": "https://github.com/nkiseev/S_Connector" }, "release_url": "https://pypi.org/project/s-connector/1.0.3/", "requires_dist": null, "requires_python": "", "summary": "S_Connector", "version": "1.0.3" }, "last_serial": 5634159, "releases": { "1.0.1": [ { "comment_text": "", "digests": { "md5": "c1e75e7ac42809c79a5e1f1df30498cc", "sha256": "4a9c8ae5a3a22a4ef8190b260d888d5829ae3774f85547b7ec457435612880bd" }, "downloads": -1, "filename": "s_connector-1.0.1.tar.gz", "has_sig": false, "md5_digest": "c1e75e7ac42809c79a5e1f1df30498cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3544, "upload_time": "2018-11-27T18:16:13", "url": "https://files.pythonhosted.org/packages/5e/54/57b4ca5517f63aab8364e0e69c9c3837be78558d03835846ca635b43e82e/s_connector-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "8a707958fcb91d430f5e8d75131d1806", "sha256": "cb20326e3746c6175149c8a6c23beaf9c61a31644422a922f8c6e66292fdac24" }, "downloads": -1, "filename": "s_connector-1.0.2.tar.gz", "has_sig": false, "md5_digest": "8a707958fcb91d430f5e8d75131d1806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2657, "upload_time": "2018-11-27T18:16:15", "url": "https://files.pythonhosted.org/packages/2e/5c/56ab76ff983cd33a65eacbf8be3c6f78810c91e66beaabd6c3e9ccf2d2c9/s_connector-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "220221f1fdaebc4567149d2bc7e4b1d4", "sha256": "5355e97fbd410d9338eaa6a48bafed119f8c3a54afc4722b7fd339ba99a908c7" }, "downloads": -1, "filename": "s_connector-1.0.3.tar.gz", "has_sig": false, "md5_digest": "220221f1fdaebc4567149d2bc7e4b1d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4062, "upload_time": "2019-08-05T12:59:40", "url": "https://files.pythonhosted.org/packages/06/e1/642bbb25a4a5a27ab9560bc4e8d00288a8f7e53734dd96f5dcdcfcaadf86/s_connector-1.0.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "220221f1fdaebc4567149d2bc7e4b1d4", "sha256": "5355e97fbd410d9338eaa6a48bafed119f8c3a54afc4722b7fd339ba99a908c7" }, "downloads": -1, "filename": "s_connector-1.0.3.tar.gz", "has_sig": false, "md5_digest": "220221f1fdaebc4567149d2bc7e4b1d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4062, "upload_time": "2019-08-05T12:59:40", "url": "https://files.pythonhosted.org/packages/06/e1/642bbb25a4a5a27ab9560bc4e8d00288a8f7e53734dd96f5dcdcfcaadf86/s_connector-1.0.3.tar.gz" } ] }