{ "info": { "author": "Lucas McGartland", "author_email": "lucasmcgartland@gmail.com", "bugtrack_url": null, "classifiers": [], "description": ".. image:: https://badge.fury.io/py/graphene-file-upload.svg\n :target: https://badge.fury.io/py/graphene-file-upload\n\ngraphene-file-upload\n====================\n\n``graphene-file-upload`` is a drop in replacement for the the GraphQL\nview in Graphene for Django, and for Flask-Graphql. It supports\nmulti-part file uploads that adhere to the `Multipart Request Spec`_.\n\nIt currently supports Python 2.7 and 3.4+.\n\nInstallation:\n-------------\n\n``pip install graphene-file-upload``\n\nUsage\n-----\n\nTo add an upload type to your mutation, import and use ``Upload``.\nUpload is a scalar type.\n\n.. code:: python\n\n from graphene_file_upload.scalars import Upload\n\n class UploadMutation(graphene.Mutation):\n class Arguments:\n file = Upload(required=True)\n\n success = graphene.Boolean()\n\n def mutate(self, info, file, **kwargs):\n # do something with your file\n\n return UploadMutation(success=True)\n\nDjango Integration:\n~~~~~~~~~~~~~~~~~~~\n\nTo use, import the view, then add to your list of urls (replace previous\nGraphQL view).\n\n.. code:: python\n\n from graphene_file_upload.django import FileUploadGraphQLView\n\n urlpatterns = [\n url(r'^graphql', FileUploadGraphQLView.as_view(graphiql=True)),\n ]\n\nFlask Integration:\n~~~~~~~~~~~~~~~~~~\n\nNote that ``flask-graphql`` version ``<2.0`` is not supported. At the\ntime of writing this README, you must install ``flask-graphql`` with\n``pip install --pre flask-graphql``\n\nSimply import the modified view and create a new url rule on your app:\n\n.. code:: python\n\n from graphene_file_upload.flask import FileUploadGraphQLView\n\n app.add_url_rule(\n '/graphql',\n view_func=FileUploadGraphQLView.as_view(\n ...\n )\n )\n\nContributing:\n~~~~~~~~~~~~~\n\nIf you'd like to contribute, please run the test suite prior to sending a PR.\n\nIn order to run the testing environment, create a virtual environment, install\ntox, and run the tox commands:\n\n.. code:: bash\n\n python3 -m venv venv\n source venv/bin/activate\n pip install -r requirements-tox.txt\n # You may have to deactivate and reactivate to have access to the tox command,\n # depending on your system.\n\n # Run the test suite with the versions of python you have installed\n tox -e py27,py34\n # Alternatively, if you're using something like pyenv and can easily install\n # Multiple versions of python, then try running the following command\n tox\n\n # If for some reason you need to recreate the tox environment (e.g. a new\n # dependency has been added since you last ran it, add the -r flag to the\n # tox command)\n tox -r {...additional flags...}\n\nCheck out `pyenv\n`_ if you'd like a simple way of\ninstalling multiple python versions to test out.\n\nPackaging for PyPi:\n~~~~~~~~~~~~~~~~~~~\n\nBuild the distribution.\n\n``python3 setup.py sdist bdist_wheel``\n\nUpload to PyPi test servers.\n\n``twine upload --repository-url https://test.pypi.org/legacy/ dist/*``\n\nUpload to PyPi production servers.\n\n``twine upload dist/*``\n\n.. _Multipart Request Spec: https://github.com/jaydenseric/graphql-multipart-request-spec\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lmcgartland/graphene-file-upload", "keywords": "graphql,graphene,apollo,upload", "license": "", "maintainer": "", "maintainer_email": "", "name": "graphene-file-upload", "package_url": "https://pypi.org/project/graphene-file-upload/", "platform": "", "project_url": "https://pypi.org/project/graphene-file-upload/", "project_urls": { "Homepage": "https://github.com/lmcgartland/graphene-file-upload" }, "release_url": "https://pypi.org/project/graphene-file-upload/1.2.2/", "requires_dist": [ "six (>=1.11.0)", "Flask (>=1.0.2); extra == 'all'", "graphene (>=2.1.2); extra == 'all'", "Flask-Graphql (>=2.0.0); extra == 'all'", "graphene-django (>=2.0.0); extra == 'all'", "graphene-django (>=2.0.0); extra == 'django'", "Flask (>=1.0.2); extra == 'flask'", "graphene (>=2.1.2); extra == 'flask'", "Flask-Graphql (>=2.0.0); extra == 'flask'" ], "requires_python": "", "summary": "Lib for adding file upload functionality to GraphQL mutations in Graphene Django and Flask-Graphql", "version": "1.2.2" }, "last_serial": 4508438, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "6fbe31f741bbfcc8d8268996ab8adaab", "sha256": "47bc766634235af66f8da06b34512239817ace6f581f764cd5ea6da8edd778ef" }, "downloads": -1, "filename": "graphene_file_upload-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fbe31f741bbfcc8d8268996ab8adaab", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3330, "upload_time": "2018-04-06T09:35:01", "url": "https://files.pythonhosted.org/packages/81/34/b579201d559914c341e094628f9e88c911af61e1f2b868975de42aebe093/graphene_file_upload-0.1.1-py2.py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "cd93cfdf0fff244bdb2acde0e0d04cfa", "sha256": "804af6c43296f87ebc4999cc0b7d7e01fea36fc6af9c344bed9341bb61006692" }, "downloads": -1, "filename": "graphene_file_upload-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "cd93cfdf0fff244bdb2acde0e0d04cfa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3338, "upload_time": "2018-06-03T23:02:32", "url": "https://files.pythonhosted.org/packages/0c/6f/0891c501c701f8f645386f0c397b7692be795d93fa30648f88403865c4d5/graphene_file_upload-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eab360c5966dab96862b0adbf535ce5e", "sha256": "aed0a9702eccda0750403b58e837b2631357457c7f4d793724d9930c1bb997a1" }, "downloads": -1, "filename": "graphene_file_upload-0.1.2.tar.gz", "has_sig": false, "md5_digest": "eab360c5966dab96862b0adbf535ce5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3301, "upload_time": "2018-06-03T23:02:33", "url": "https://files.pythonhosted.org/packages/19/3b/1412fe4e7056cb76ace96b4a2b27360e65d8e1dbdcd98ba972098a518289/graphene_file_upload-0.1.2.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "4b80ed3a75e7a096b19da1257d093754", "sha256": "c3688859b8e5aa79979a286e3de55284fd0cc43c527352bcca6de17e8fd9828b" }, "downloads": -1, "filename": "graphene_file_upload-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4b80ed3a75e7a096b19da1257d093754", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4181, "upload_time": "2018-08-20T16:55:17", "url": "https://files.pythonhosted.org/packages/9e/33/8592453fa9ea3a360932aa16116b7910f03c4e66b53dde5a1201b5921cee/graphene_file_upload-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b22a605d357e2722c443bc5f83aa2f11", "sha256": "e4dfb4ec9132fc613143b14e3b15d8a306b7373b6a23c343bb83279af2cf7ba1" }, "downloads": -1, "filename": "graphene_file_upload-1.0.0.tar.gz", "has_sig": false, "md5_digest": "b22a605d357e2722c443bc5f83aa2f11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3555, "upload_time": "2018-08-20T16:55:18", "url": "https://files.pythonhosted.org/packages/4e/2f/f6aecd4a3e02bc73653ee3c3145a6442b96e657d3ccce11ced6100d56fda/graphene_file_upload-1.0.0.tar.gz" } ], "1.0.0a2": [ { "comment_text": "", "digests": { "md5": "cc087593a1d8acac2f3bcc82f1584c1c", "sha256": "3144e66137d66ead4f67e093c63349ca5f5d216e92d8891bdd755a8c0987e504" }, "downloads": -1, "filename": "graphene_file_upload-1.0.0a2-py3-none-any.whl", "has_sig": false, "md5_digest": "cc087593a1d8acac2f3bcc82f1584c1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4205, "upload_time": "2018-07-17T17:13:42", "url": "https://files.pythonhosted.org/packages/74/54/fb85c9e2b88cf372b2e642b11a5cce128d96547126895a302d29181adb74/graphene_file_upload-1.0.0a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a474f88a2de7015f41115c00ba2a6d83", "sha256": "779bfc8aba1f66af0274e1ce28ead3b47d336e5fef94734eb2055ea4cc93ed85" }, "downloads": -1, "filename": "graphene_file_upload-1.0.0a2.tar.gz", "has_sig": false, "md5_digest": "a474f88a2de7015f41115c00ba2a6d83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3393, "upload_time": "2018-07-17T17:13:44", "url": "https://files.pythonhosted.org/packages/e9/3b/dbe70d8f57a822ba63c47d82e76fed13c9e08d448647b4e1bb34b26dc4d0/graphene_file_upload-1.0.0a2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "39883fa1e75e9d291c35595b1a39816a", "sha256": "bb9f3a0bb77661402fe97fbe4f32a904e280359afebc11c4d5a42ed5761e7883" }, "downloads": -1, "filename": "graphene_file_upload-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "39883fa1e75e9d291c35595b1a39816a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5665, "upload_time": "2018-11-09T02:20:42", "url": "https://files.pythonhosted.org/packages/23/19/245b2b8441763d0161bcd02d265f3771777fa61122ebcfd78fc2a1b8e9f1/graphene_file_upload-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67ed4ce86e35b89fda39e21bf07719c3", "sha256": "a66686f8dc9ad59cd77b7ef1866bbf116762f1749c8ed160feb4f229ad09be48" }, "downloads": -1, "filename": "graphene_file_upload-1.1.0.tar.gz", "has_sig": false, "md5_digest": "67ed4ce86e35b89fda39e21bf07719c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4217, "upload_time": "2018-11-09T02:20:43", "url": "https://files.pythonhosted.org/packages/60/cc/4c9c97b10fc9a3e390c26e8569e3a8439cd2296a17facee544889aa1714e/graphene_file_upload-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "ae555b3074f6fd05dbac707b76608142", "sha256": "f02336c7c05d7d43d2156a5ed182d6b689aaeaffebd714daf32405ec37ba4f98" }, "downloads": -1, "filename": "graphene_file_upload-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ae555b3074f6fd05dbac707b76608142", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7152, "upload_time": "2018-11-09T21:52:26", "url": "https://files.pythonhosted.org/packages/15/59/ecd69fb91ccab42b0aab414a875de583d401894258835a2cd9fa32a7f344/graphene_file_upload-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a85c001a7b48b7613113229758cc03f9", "sha256": "4feadaeada0c5eac45ff67f5d982344e0db00536022d0c6203682cbc94740176" }, "downloads": -1, "filename": "graphene_file_upload-1.2.0.tar.gz", "has_sig": false, "md5_digest": "a85c001a7b48b7613113229758cc03f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4584, "upload_time": "2018-11-09T21:52:28", "url": "https://files.pythonhosted.org/packages/3c/83/267af6dec39c39cb1da1018a9ba59ecde3d5d3c2c95354850a0386488e6c/graphene_file_upload-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "922b546023fd24678446bce905571826", "sha256": "d41d4dbad980fd984c2b795f80bdc8ca91edea2c78722f1aeec4bfe6497cb067" }, "downloads": -1, "filename": "graphene_file_upload-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "922b546023fd24678446bce905571826", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8569, "upload_time": "2018-11-16T04:15:43", "url": "https://files.pythonhosted.org/packages/3b/87/f3d8ce7e4c8232829cd4e835c5abc15b136f109b02c67dd8fac477f45007/graphene_file_upload-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "82dfda2eeb7f01313275ec8dca5f219b", "sha256": "de326a0f7677669d3cf389b4b443e3ca14b5fdf4c136392d076f3f6d57ddb7cb" }, "downloads": -1, "filename": "graphene_file_upload-1.2.1.tar.gz", "has_sig": false, "md5_digest": "82dfda2eeb7f01313275ec8dca5f219b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5941, "upload_time": "2018-11-16T04:15:44", "url": "https://files.pythonhosted.org/packages/9e/3c/61575107a10bc8421ea726fa10a97efc439994792d33740fc88ddf72c853/graphene_file_upload-1.2.1.tar.gz" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "2dffc297b3dd0fa5bfba563b85ff6594", "sha256": "034ff72d2834b7aebd06fda412fa88a10aba34bac604317f7552457e47040654" }, "downloads": -1, "filename": "graphene_file_upload-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2dffc297b3dd0fa5bfba563b85ff6594", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9077, "upload_time": "2018-11-20T16:48:11", "url": "https://files.pythonhosted.org/packages/c6/a7/b0de6ec138b554e9d7f36e2a1acf44fa8217d45d5f90cb0098907cd19297/graphene_file_upload-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ec839e947e193fed6de5f7a22e6248a", "sha256": "b5f47a81f5614d1184ba9480a63835769b26303cb7759316122401784858e9c7" }, "downloads": -1, "filename": "graphene_file_upload-1.2.2.tar.gz", "has_sig": false, "md5_digest": "4ec839e947e193fed6de5f7a22e6248a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6318, "upload_time": "2018-11-20T16:48:13", "url": "https://files.pythonhosted.org/packages/71/b4/21810cf3847b4699dc00f680e1d43f6ddf4a99a70ba17771315999325050/graphene_file_upload-1.2.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2dffc297b3dd0fa5bfba563b85ff6594", "sha256": "034ff72d2834b7aebd06fda412fa88a10aba34bac604317f7552457e47040654" }, "downloads": -1, "filename": "graphene_file_upload-1.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "2dffc297b3dd0fa5bfba563b85ff6594", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9077, "upload_time": "2018-11-20T16:48:11", "url": "https://files.pythonhosted.org/packages/c6/a7/b0de6ec138b554e9d7f36e2a1acf44fa8217d45d5f90cb0098907cd19297/graphene_file_upload-1.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4ec839e947e193fed6de5f7a22e6248a", "sha256": "b5f47a81f5614d1184ba9480a63835769b26303cb7759316122401784858e9c7" }, "downloads": -1, "filename": "graphene_file_upload-1.2.2.tar.gz", "has_sig": false, "md5_digest": "4ec839e947e193fed6de5f7a22e6248a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6318, "upload_time": "2018-11-20T16:48:13", "url": "https://files.pythonhosted.org/packages/71/b4/21810cf3847b4699dc00f680e1d43f6ddf4a99a70ba17771315999325050/graphene_file_upload-1.2.2.tar.gz" } ] }