{ "info": { "author": "Markus Bergholz", "author_email": "markuman@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# MariaSQL\n\nNowadays selecting data is easy, but inserting and updating data is annoying.\n\n* https://git.osuv.de/m/MariaSQL\n* Mirror, Issues & PRs: https://gitlab.com/markuman/MariaSQL\n\n# install\n\nwith `pip3 install mariasql --user`\n\n# Example / Usage\n\nstart a temporary MariaDB \n`docker run -d -p 3307:3306 --rm --name mariadb -e MYSQL_ROOT_PASSWORD=password mariadb`\n\nstart python3 and go\n\n```python\n>>> import MariaSQL\n>>> db = MariaSQL.MariaSQL(host='127.0.0.1', port=3307)\n>>> db.query('create database mariasql;')\n()\n>>> db.use('mariasql')\n>>> # we can create tables based on dict definitions\n>>> mytable = dict()\n>>> mytable['id'] = int\n>>> mytable['name'] = str\n>>> mytable['some shitty column name'] = float\n>>> db.create_table('test_table', mytable)\n()\n>>> db.show_tables()\n[{'Tables_in_mariasql': 'test_table'}]\n>>> # now we inserting a dict into the create tables\n>>> data = dict()\n>>> data['id'] = 12\n>>> data['name'] = 'Alf'\n>>> data['some shitty column name'] = 3.1415\n>>> db.insert('test_table', data)\n()\n# let's read from create table\n>>> dataset = db.query('select * from test_table')\n>>> dataset\n[{'id': 12, 'name': 'Alf', 'some shitty column name': 3.1415}]\n>>> db.query('show create table test_table')\n[{'Table': 'test_table', 'Create Table': 'CREATE TABLE `test_table` (\\n `id` int(11) DEFAULT NULL,\\n `name` varchar(255) DEFAULT NULL,\\n `some shitty column name` double DEFAULT NULL\\n) ENGINE=InnoDB DEFAULT CHARSET=utf8'}]\n```\n\n# Properties\n\n| variabele | default value |\n| --- | --- |\n| host | localhost |\n| port | 3306 |\n| user | root |\n| password | password |\n| db | mysql |\n| charset | utf8mb4 |\n\n# Methods\n\n* `db.use(dbname)`\n * to change the database\n* `db.show_tables()`\n * get list of current tables in selected database\n* `db.query(sql)`\n * execute raw sql commands\n* `db.create_db(dbname)`\n * create a new database if not exists\n* `db.create_table(name, tabledef = None)`\n * When `tabledef` is not given, `name` must be a raw sql string which will be executed\n * When `tabledef` is a dict() and its `keys` are just datatype definitions, a table based on this dict will be created\n * datatye limitations when using dict() definitions\n * `str` -> `VARCHAR(255)`\n * `int` -> `INT`\n * `float` -> `DOUBLE`\n * `dict` -> `JSON`\n* `db.insert(table, data, on_duplicate = False)`\n * `data` must be a `dict()` with `keys` which exists as `COLUMN_NAME` in the sql table. But it must not include all column names.\n * when `on_duplicate` is set to `True`, it will perform an update when the PKs already exists in the table.\n* `db.insert_on_duplicate(table, data)`\n * just a wrapper for `db.insert()` with `on_duplicate = True`.\n\n# todo\n\n* some tests and setup ci/cd\n* update method\n* insert/update list of dicts\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://git.osuv.de/m/mariasql", "keywords": "", "license": "WTFPL", "maintainer": "", "maintainer_email": "", "name": "mariasql", "package_url": "https://pypi.org/project/mariasql/", "platform": "", "project_url": "https://pypi.org/project/mariasql/", "project_urls": { "Homepage": "https://git.osuv.de/m/mariasql" }, "release_url": "https://pypi.org/project/mariasql/4/", "requires_dist": null, "requires_python": "", "summary": "MariaDB/MySQL query builder primary for inserting and updating Python dictionaries into tables.", "version": "4" }, "last_serial": 4296316, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "65633f1d75f61376e5010e466e109f8b", "sha256": "567c208b6f880ea2d17375fab947564da4fa312395bc0823b16cbca8a8186f34" }, "downloads": -1, "filename": "mariasql-1.tar.gz", "has_sig": false, "md5_digest": "65633f1d75f61376e5010e466e109f8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3387, "upload_time": "2018-08-22T14:36:00", "url": "https://files.pythonhosted.org/packages/cd/b8/c94304c77588a475e4e152afb075f28c36b6953c6303f4ac7e4a6afdaba4/mariasql-1.tar.gz" } ], "2": [ { "comment_text": "", "digests": { "md5": "3b3d9f912604e32cb9de0275d45d87c6", "sha256": "c540a924bd3ddbc98bc553b4079706125e50442942ada1ae687171da30102885" }, "downloads": -1, "filename": "mariasql-2.tar.gz", "has_sig": false, "md5_digest": "3b3d9f912604e32cb9de0275d45d87c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3380, "upload_time": "2018-08-23T09:06:36", "url": "https://files.pythonhosted.org/packages/73/6d/e64082cb996670f970d4e94cd411099148b49a22442510c5c9ec14fe688e/mariasql-2.tar.gz" } ], "3": [ { "comment_text": "", "digests": { "md5": "2e3950f4cc5bca2d9ca36f4b41153ee1", "sha256": "67d6874e8c366408b43339fec7b10c5ed27d7771d885ae46c069de5c98ab7e4d" }, "downloads": -1, "filename": "mariasql-3.tar.gz", "has_sig": false, "md5_digest": "2e3950f4cc5bca2d9ca36f4b41153ee1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3397, "upload_time": "2018-08-23T09:11:44", "url": "https://files.pythonhosted.org/packages/e9/92/d1be37a9240cb876924681e930394274499c8b646d16aa85af0f1d7fa712/mariasql-3.tar.gz" } ], "4": [ { "comment_text": "", "digests": { "md5": "bba68ffb1d0199060dfb123e62344789", "sha256": "d9f2e0cd8e71f160a44b7a7912c198327f3bee2fa4349772849fce259075b333" }, "downloads": -1, "filename": "mariasql-4.tar.gz", "has_sig": false, "md5_digest": "bba68ffb1d0199060dfb123e62344789", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3413, "upload_time": "2018-09-21T13:48:55", "url": "https://files.pythonhosted.org/packages/0a/99/bc7961fa78d7af1cfacbffaa15fc8cf94a8deb269d1eb1009082d7574b38/mariasql-4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bba68ffb1d0199060dfb123e62344789", "sha256": "d9f2e0cd8e71f160a44b7a7912c198327f3bee2fa4349772849fce259075b333" }, "downloads": -1, "filename": "mariasql-4.tar.gz", "has_sig": false, "md5_digest": "bba68ffb1d0199060dfb123e62344789", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3413, "upload_time": "2018-09-21T13:48:55", "url": "https://files.pythonhosted.org/packages/0a/99/bc7961fa78d7af1cfacbffaa15fc8cf94a8deb269d1eb1009082d7574b38/mariasql-4.tar.gz" } ] }