{ "info": { "author": "Brenno Flavio de Almeida", "author_email": "brenno.flavio412@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Magical SQL Server\n\nA tool that integrates Microsoft SQL Server into applications like magic.\n\n## What is this?\n\nDo you have an application that needs to consume data stored on SQL Server Database, or needs to post data into this database? Magical SQL Server will handle that for you easily.\n\n## Requirements\n\nTo use this module, you have to install python3 and pymssql:\n\n```\npip3 install pymssql\n```\n\nBulk insert method uses BCP to copy multiple rows efficiently. See [Microsoft Documentation](https://docs.microsoft.com/pt-br/sql/tools/bcp-utility?view=sql-server-2017) to install it on your machine.\n\n## Usage\n\nLet's say that you have a table called ```my_database.dbo.users```:\n\nid | name | team\n-- | ----- | ----\n1 | example | example\n2 | new_user | users\n\nTo retrieve all the data from the table:\n```\nfrom magical_sqlserver import SQLServer\nsql = SQLServer (\n user,\n password,\n host,\n my_database,\n port=1433,\n)\n\ndata = sql.select(\"users\")\n```\n\nThis will return:\n```\n[\n {\n \"id\": 1,\n \"name\": \"example\",\n \"team\": \"example\"\n },\n {\n \"id\": 2,\n \"name\": \"new_user\",\n \"team\": \"users\"\n }\n]\n```\n\nYou can filter columns and get specific columns:\n```\ndata = sql.select(\"users\", condition={\"id\":1}, columns=[\"name\"])\n```\n\nWith result ```{\"name\":\"example\"}```.\n\n### With Context\n\nYou may use ```with``` statement then Magical SQL Server will open and close a connection for you as your statement ends:\n\n```\nwith SQLServer(user, host, password, my_database) as sql:\n sql.select(\"users\")\n```\n\nYou can close your connection manually with ```sql.close()``` method too.\n\n### As a decorator\n\nYou may want to decorate your funciton with this module. To to that, simply use the ```provide_session``` module. It will try replace sql argument if it exists in your funcion, or add a kwarg argument called ```sql```. This decorator opens an close an SQL Server connection for you. Example:\n\n```\nfrom magical_sqlserver import provide_session\n\n@provide_session(user, host, password, my_database)\ndef awesome_function(sql=None):\n sql.select(\"users\")\n```\n\nOr with kwargs:\n```\n@provide_session(user, host, password, my_database)\ndef awesome_function(**kwargs):\n sql = kwargs[\"sql\"]\n sql.select(\"users\")\n```\n\n## Writing data\n\n### Single records\n\nTo create new record:\n\n```\ndata = {\"id\":3, \"name\":\"bar\"}\n\nsql.insert(\"users\", data)\n```\n\nTo update existing records:\n```\nsql.update(\"users\", data={\"name\":\"new_name\"}, contition={\"id\":1})\n```\n\nYou can delete records too:\n```\nsql.delete(\"users\", {\"id\":2, \"name\":\"new_user\"})\n```\n\nIt's important to say that all conditions are additive. For example, if your update has condition ```{\"id\": 1, \"name\": \"new_user\"}```, this module will build an sql query that has ```id = 1 and name = 'new_user'``` and will try this against the database. In the table above, no data will be updated.\n\n### Bulk Insert\nSimply pass a list of dicts to ```bulk_insert``` method. It will transform it to csv temporary files and copy it to table with BCP method. See requirements for more details.\n\n```\ndata = [{\"id\":4, \"name\":\"me\"},{\"id\":5, \"name\":\"you\"}]\n\nsql.bulk_insert(\"users\", data)\n```\n\n## Other Stuff\nYou can run generic queries with the method query:\n```\ndata = sql.query(\"select top(10) * from my_table join users on my_table.id = users.id\")\n```\n\nAnd retrieve all tables from Sql Server Schema:\n```\ntables_list = sql.tables()\n```\n\n\n", "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/brennoflavio/magical-sqlserver", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "magical-sqlserver", "package_url": "https://pypi.org/project/magical-sqlserver/", "platform": "", "project_url": "https://pypi.org/project/magical-sqlserver/", "project_urls": { "Homepage": "https://github.com/brennoflavio/magical-sqlserver" }, "release_url": "https://pypi.org/project/magical-sqlserver/0.4.0/", "requires_dist": [ "pymssql" ], "requires_python": "", "summary": "Microsoft SQL Server for applications, like magic", "version": "0.4.0" }, "last_serial": 4866708, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "b1702288a1a862f0b02015edc3557fc5", "sha256": "c79d107bbd94c71675d219c47fb31580ef28886469a0eb354361bfe9af16cf5e" }, "downloads": -1, "filename": "magical_sqlserver-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1702288a1a862f0b02015edc3557fc5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5401, "upload_time": "2018-12-27T12:42:27", "url": "https://files.pythonhosted.org/packages/8f/61/d4dc53e37e6543e7eddaa08d10a2d0a9a37a64e20f1aae389f8bd401f078/magical_sqlserver-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "718fd0ab5a578ed771d6d4550e2d1082", "sha256": "1ef515470b5dc6c3d34fe4ba3bcb19b4459946f4f97c63c528f1f509bd59f5b4" }, "downloads": -1, "filename": "magical_sqlserver-0.1.0.tar.gz", "has_sig": false, "md5_digest": "718fd0ab5a578ed771d6d4550e2d1082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4211, "upload_time": "2018-12-27T12:42:29", "url": "https://files.pythonhosted.org/packages/6d/99/338a89feff49d33eb0a78d80c4ab8776807a202bdf3b686290f32e98f7df/magical_sqlserver-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "6b8bb6569faf154509d454bf76fe0991", "sha256": "eb706a30961d91e1ff003aa37a07eb0851feaf6e0ba02205833aac5155ec716a" }, "downloads": -1, "filename": "magical_sqlserver-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6b8bb6569faf154509d454bf76fe0991", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5426, "upload_time": "2018-12-28T13:59:53", "url": "https://files.pythonhosted.org/packages/ac/7f/0b22babeafd1be335f76a60780e7ff4851e19c2e0afa6ca494772aad44a7/magical_sqlserver-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "071ae9f95e847f6f3cf995a7429c7167", "sha256": "261df8d7ed5646810ebed9f7a576ed3cfcbf6f00642eaeb2ba157bf7e8cc7038" }, "downloads": -1, "filename": "magical_sqlserver-0.1.1.tar.gz", "has_sig": false, "md5_digest": "071ae9f95e847f6f3cf995a7429c7167", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4233, "upload_time": "2018-12-28T13:59:55", "url": "https://files.pythonhosted.org/packages/ac/ff/b7da1792081d88be5900a332ea3c27b507f4c3b6a30ccc9577ceab8de96e/magical_sqlserver-0.1.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "13695f5ec541f2663a15457b1be98af6", "sha256": "f55599800e2ab36fa8ddc06835d6ab62116c2885f41b290c6531cb35f569a741" }, "downloads": -1, "filename": "magical_sqlserver-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "13695f5ec541f2663a15457b1be98af6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6111, "upload_time": "2019-01-07T13:30:32", "url": "https://files.pythonhosted.org/packages/87/d3/99cc9102221ec51c545197383170539f1eb1844515f9d717e68125db905f/magical_sqlserver-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "126970a1e63970fb68a35ed29d59d275", "sha256": "73feb729b28a351910ebbd2465972ed09d809c2f1bc6ca76f3aaac63cac1428c" }, "downloads": -1, "filename": "magical_sqlserver-0.3.0.tar.gz", "has_sig": false, "md5_digest": "126970a1e63970fb68a35ed29d59d275", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4748, "upload_time": "2019-01-07T13:30:35", "url": "https://files.pythonhosted.org/packages/f7/73/23317f0c823d478401a4b9ca2ed1c51dcac4ba655dbfc9e4cfecb9dbac7c/magical_sqlserver-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "e34065c87805180ea947ffa855d373a7", "sha256": "c4eff87b064ebd5fa4099045a4c37d3cfc6ed404efc05e270c262846ea131d52" }, "downloads": -1, "filename": "magical_sqlserver-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e34065c87805180ea947ffa855d373a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6152, "upload_time": "2019-02-25T21:10:38", "url": "https://files.pythonhosted.org/packages/ce/02/59b57d74da76ec48b4c1636fb64bec239c245da1ae699e4ac582c873ad1e/magical_sqlserver-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af7662cd80027dfceeff124a8c6fbaa4", "sha256": "96b98762109200b3eedd1e102eac8e24463926f3c436c711677703a5f9e9af93" }, "downloads": -1, "filename": "magical_sqlserver-0.4.0.tar.gz", "has_sig": false, "md5_digest": "af7662cd80027dfceeff124a8c6fbaa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4808, "upload_time": "2019-02-25T21:10:42", "url": "https://files.pythonhosted.org/packages/c2/c8/5717f67515953b7d29ec492530b4c1b37b81ec1335f5b09fb5bc8b8f48bc/magical_sqlserver-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e34065c87805180ea947ffa855d373a7", "sha256": "c4eff87b064ebd5fa4099045a4c37d3cfc6ed404efc05e270c262846ea131d52" }, "downloads": -1, "filename": "magical_sqlserver-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "e34065c87805180ea947ffa855d373a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6152, "upload_time": "2019-02-25T21:10:38", "url": "https://files.pythonhosted.org/packages/ce/02/59b57d74da76ec48b4c1636fb64bec239c245da1ae699e4ac582c873ad1e/magical_sqlserver-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "af7662cd80027dfceeff124a8c6fbaa4", "sha256": "96b98762109200b3eedd1e102eac8e24463926f3c436c711677703a5f9e9af93" }, "downloads": -1, "filename": "magical_sqlserver-0.4.0.tar.gz", "has_sig": false, "md5_digest": "af7662cd80027dfceeff124a8c6fbaa4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4808, "upload_time": "2019-02-25T21:10:42", "url": "https://files.pythonhosted.org/packages/c2/c8/5717f67515953b7d29ec492530b4c1b37b81ec1335f5b09fb5bc8b8f48bc/magical_sqlserver-0.4.0.tar.gz" } ] }