{ "info": { "author": "Siddhant Goel", "author_email": "me@sgoel.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3 :: Only" ], "description": "Streaming multipart/form-data parser\n====================================\n\n.. image:: https://travis-ci.org/siddhantgoel/streaming-form-data.svg?branch=stable\n :target: https://travis-ci.org/siddhantgoel/streaming-form-data\n\n.. image:: https://badge.fury.io/py/streaming-form-data.svg\n :target: https://pypi.python.org/pypi/streaming-form-data\n\n.. image:: https://readthedocs.org/projects/streaming-form-data/badge/?version=latest\n :target: https://streaming-form-data.readthedocs.io/en/latest/\n\n\n:code:`streaming_form_data` provides a Python parser for parsing\n:code:`multipart/form-data` input chunks (the most commonly used encoding when\nsubmitting data over HTTP through HTML forms).\n\nInstallation\n------------\n\n.. code-block:: bash\n\n $ pip install streaming-form-data\n\nIn case you prefer cloning the Github repository and installing manually, please\nnote that :code:`master` is the development branch, so :code:`stable` is what\nyou should be working with.\n\nUsage\n-----\n\n.. code-block:: python\n\n >>> from streaming_form_data import StreamingFormDataParser\n >>> from streaming_form_data.targets import ValueTarget, FileTarget, NullTarget\n >>>\n >>> headers = {'Content-Type': 'multipart/form-data; boundary=boundary'}\n >>>\n >>> parser = StreamingFormDataParser(headers=headers)\n >>>\n >>> parser.register('name', ValueTarget())\n >>> parser.register('file', FileTarget('/tmp/file.txt'))\n >>> parser.register('discard-me', NullTarget())\n >>>\n >>> parser.data_received(chunk)\n\nDocumentation\n-------------\n\nUp-to-date documentation is available on `Read the Docs`_.\n\nDevelopment\n-----------\n\nPlease make sure you have Python 3.4+ installed.\n\n1. Git clone the repository -\n :code:`git clone https://github.com/siddhantgoel/streaming-form-data`\n\n2. Install the packages required for development -\n :code:`make local`\n\n3. That's basically it. You should now be able to run the test suite -\n :code:`py.test`.\n\nPlease note that :code:`tests/test_parser_stress.py` stress tests the parser\nwith large inputs, which can take a while. As an alternative, pass the filename\nas an argument to :code:`py.test` to run tests selectively.\n\n\n.. _pip tools: https://github.com/jazzband/pip-tools\n.. _Read the Docs: https://streaming-form-data.readthedocs.io/", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/siddhantgoel/streaming-form-data", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "streaming-form-data", "package_url": "https://pypi.org/project/streaming-form-data/", "platform": "", "project_url": "https://pypi.org/project/streaming-form-data/", "project_urls": { "Homepage": "https://github.com/siddhantgoel/streaming-form-data" }, "release_url": "https://pypi.org/project/streaming-form-data/1.4.0/", "requires_dist": null, "requires_python": ">=3.4.0", "summary": "Streaming parser for multipart/form-data", "version": "1.4.0" }, "last_serial": 5140162, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "701658b5d22c75245847989bfa6f633e", "sha256": "37a5b4058d9253999dbaefad458acbc8428669a0a714f766012c76e15b80a231" }, "downloads": -1, "filename": "streaming_form_data-0.0.1.tar.gz", "has_sig": false, "md5_digest": "701658b5d22c75245847989bfa6f633e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 42445, "upload_time": "2017-04-03T08:01:28", "url": "https://files.pythonhosted.org/packages/66/b3/8bcbec3746d270fac009949f1d613cbd71e6ff58130e1968a19b0be5b9d2/streaming_form_data-0.0.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "8b33ac118c664b9d0483d14ccefbc101", "sha256": "3972f880e1159bd2b8ccdcdcc3e9cd1cba4453699facb5ce9b51cb660757c349" }, "downloads": -1, "filename": "streaming_form_data-0.3.0.tar.gz", "has_sig": false, "md5_digest": "8b33ac118c664b9d0483d14ccefbc101", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43042, "upload_time": "2017-04-05T19:23:28", "url": "https://files.pythonhosted.org/packages/a5/d1/a682d80a6dda65ed24ffe0f46412eb77ec050e18454055c8c65c13045fe7/streaming_form_data-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5bb6f46f7e95c89cc3ea4bc323456890", "sha256": "3842aad205fb9c45930cf8862fbe2c0fb7f2d6bd0c96916a3a314a9186dc444e" }, "downloads": -1, "filename": "streaming_form_data-0.3.1.tar.gz", "has_sig": false, "md5_digest": "5bb6f46f7e95c89cc3ea4bc323456890", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43050, "upload_time": "2017-04-05T19:29:56", "url": "https://files.pythonhosted.org/packages/0f/a5/149131d19370c12d2d8b7d7cba52dbd46c00bfbdc365d0d93d7d05187a2a/streaming_form_data-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "dc5d39764e6caa28af201e5b6576c48e", "sha256": "f9ae27c6913d784f06aaa60a0b7f89af7bd10e471e76b3d10ef110645ead6625" }, "downloads": -1, "filename": "streaming_form_data-0.3.2.tar.gz", "has_sig": false, "md5_digest": "dc5d39764e6caa28af201e5b6576c48e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43105, "upload_time": "2017-04-06T19:55:38", "url": "https://files.pythonhosted.org/packages/8c/9b/37b883d85c6b33a3701ed9611038b803fb841aa3ff627be01e7a91dd3794/streaming_form_data-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "60d8cf8d55556858ead7e136df5da488", "sha256": "2be9a3f982e9ce5b8d2d05ff0c0d8ede31fe76a3c1760ff775479ea95c30ddf6" }, "downloads": -1, "filename": "streaming_form_data-0.4.0.tar.gz", "has_sig": false, "md5_digest": "60d8cf8d55556858ead7e136df5da488", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50891, "upload_time": "2017-04-25T07:44:49", "url": "https://files.pythonhosted.org/packages/16/ce/a77fd1d26fa5cd1eae100385f2ccdac11951af3883fccfe28e955b85aabd/streaming_form_data-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "1238274aab911210fb12c47c93d1734a", "sha256": "46ecc392ba98f41766b02734591a7be9500cb6e811bca9170381c2b8822bc2f8" }, "downloads": -1, "filename": "streaming_form_data-0.4.1-py3.6-linux-x86_64.egg", "has_sig": false, "md5_digest": "1238274aab911210fb12c47c93d1734a", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 151443, "upload_time": "2017-12-18T09:28:29", "url": "https://files.pythonhosted.org/packages/e7/6e/705574881c556ea059f7c6ffdc8790f80ed192c2802d13f06d0b51eb175d/streaming_form_data-0.4.1-py3.6-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "59ab48e5ae584d8c5a7493493a6cefbd", "sha256": "896967e5446046d80c5bef05589fee9acd6c89c78b00c01dcc56db81bb54ef74" }, "downloads": -1, "filename": "streaming_form_data-0.4.1.tar.gz", "has_sig": false, "md5_digest": "59ab48e5ae584d8c5a7493493a6cefbd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51237, "upload_time": "2017-11-08T14:02:46", "url": "https://files.pythonhosted.org/packages/98/9f/142627d29878a375499df7a0462ea703160ac535e5a381bb5ff4488c7320/streaming_form_data-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "dad1892161c6c1ef46dd572770361220", "sha256": "8581bffaef6476366166425cbb3719f8ac0f257bd73d93605b181564062119bf" }, "downloads": -1, "filename": "streaming_form_data-0.4.2-py3.6-linux-x86_64.egg", "has_sig": false, "md5_digest": "dad1892161c6c1ef46dd572770361220", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 152061, "upload_time": "2017-12-20T09:35:52", "url": "https://files.pythonhosted.org/packages/c6/a1/3af04038aaa294c2dc98bb8f4a5297563fae3403e61173fd5f31929ee02d/streaming_form_data-0.4.2-py3.6-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "78b2d26e06b32f63f97d3b8b02378a08", "sha256": "17ff9fa7141f4081d7f220fe44a63d9089d1fd7b69d53e6483ed391df7987680" }, "downloads": -1, "filename": "streaming_form_data-0.4.2.tar.gz", "has_sig": false, "md5_digest": "78b2d26e06b32f63f97d3b8b02378a08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50147, "upload_time": "2017-12-18T09:28:31", "url": "https://files.pythonhosted.org/packages/7a/c8/e5f225298a920c978d8163a508c4c08ff739cada3a3c3ae948924135ef2d/streaming_form_data-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "1da1c825ec189621f5f42e571235dd9c", "sha256": "4c3e3fd7691210f7b7cdaed510854956d01266c5fef8136539338bf8c2dbb29c" }, "downloads": -1, "filename": "streaming_form_data-0.4.3-py3.6-linux-x86_64.egg", "has_sig": false, "md5_digest": "1da1c825ec189621f5f42e571235dd9c", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 141193, "upload_time": "2017-12-20T11:24:13", "url": "https://files.pythonhosted.org/packages/d5/48/77a1526090b8f38ea655b8a0d528fbc7bab320a1c3fcb0db04b9065ba933/streaming_form_data-0.4.3-py3.6-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "b2670af536d736255f6f98064b35ec33", "sha256": "9951226b51a74def1814097e9f6153a751be3113e2a523084fe913ebe680f336" }, "downloads": -1, "filename": "streaming_form_data-0.4.3.tar.gz", "has_sig": false, "md5_digest": "b2670af536d736255f6f98064b35ec33", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 50218, "upload_time": "2017-12-20T09:35:55", "url": "https://files.pythonhosted.org/packages/a3/71/691f4568ecbf95eab95d40c144dcdc1088a29b9aec849fa81aabf481a98c/streaming_form_data-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "9b4fd148a630a32c6cbf1a3074b77af0", "sha256": "3dae7aa04a21368493fd0f929ada67d88cab4ed89f8e3977129b2b02e8fdf155" }, "downloads": -1, "filename": "streaming_form_data-0.4.4-py3.6-linux-x86_64.egg", "has_sig": false, "md5_digest": "9b4fd148a630a32c6cbf1a3074b77af0", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 141194, "upload_time": "2017-12-20T11:24:14", "url": "https://files.pythonhosted.org/packages/7a/0b/ef36cd3113af8b1b2bcb661b45224311bca6b7f69387c50105dd96f84667/streaming_form_data-0.4.4-py3.6-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "cc528ae9ee2c2d66749ee05ddf750125", "sha256": "59e30c433dae375360d90253d86b8de59f870d8449bad53299ba4611ed828f27" }, "downloads": -1, "filename": "streaming_form_data-0.4.4.tar.gz", "has_sig": false, "md5_digest": "cc528ae9ee2c2d66749ee05ddf750125", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49414, "upload_time": "2017-12-20T11:24:16", "url": "https://files.pythonhosted.org/packages/de/69/d5bdb4baf0d7f9cbcf4d88f3ed367ec33049ea5ed46d36022f3c5d191539/streaming_form_data-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "96f939ec5ec1eab778c78def387bcf69", "sha256": "61afcd4ec755dcb3f047de79fcaad4a55aa65bc35237167973ad0b2a1e48d62a" }, "downloads": -1, "filename": "streaming_form_data-0.4.5-py3.6-linux-x86_64.egg", "has_sig": false, "md5_digest": "96f939ec5ec1eab778c78def387bcf69", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 148690, "upload_time": "2018-05-21T13:10:19", "url": "https://files.pythonhosted.org/packages/e3/fe/21abdc4319f8dceb5c5100098350c2662004e2967b2689097475bd474bba/streaming_form_data-0.4.5-py3.6-linux-x86_64.egg" }, { "comment_text": "", "digests": { "md5": "1a9b3414713b34fecab6d3c9d6e790fb", "sha256": "36f1611deccd0da52caf56b633f716bf06fd17cea93e7bf69a333a73f5fb3b1a" }, "downloads": -1, "filename": "streaming_form_data-0.4.5.tar.gz", "has_sig": false, "md5_digest": "1a9b3414713b34fecab6d3c9d6e790fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49937, "upload_time": "2018-05-11T13:35:30", "url": "https://files.pythonhosted.org/packages/fc/87/77dcaf427547f42cf66780b4d4386dd6d0d3c28e4d8129da6cd24ae38a77/streaming_form_data-0.4.5.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "52e63f55eba565e2d580816bf9e811ed", "sha256": "cb72670440071198ae13a9d9b227f2a3ac798a804dff1eb2454c920655eb0815" }, "downloads": -1, "filename": "streaming_form_data-0.5.0.tar.gz", "has_sig": false, "md5_digest": "52e63f55eba565e2d580816bf9e811ed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51189, "upload_time": "2018-05-21T13:10:21", "url": "https://files.pythonhosted.org/packages/25/90/1291e867f920ce07fc8b6ee6d1e9f3541ba89e81b04b0f1d96b737916d54/streaming_form_data-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "64947b5528ff607c032e62103accba64", "sha256": "2c05e64dc109488d59b0c9772d044b8794b134a95488de376fa646375064c439" }, "downloads": -1, "filename": "streaming_form_data-0.5.1.tar.gz", "has_sig": false, "md5_digest": "64947b5528ff607c032e62103accba64", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51341, "upload_time": "2018-06-01T12:28:08", "url": "https://files.pythonhosted.org/packages/e6/e1/aa7cf65b3684f4898a7832e11b29b75f51db681d8a37ef8945297be3ed2b/streaming_form_data-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "fae235b4469e9d2298e19ae888ec4721", "sha256": "7d39766625cc5af2a33e88a7a75df5b74a7fce91f999b87036bb3c6d355f5c2a" }, "downloads": -1, "filename": "streaming_form_data-0.6.0.tar.gz", "has_sig": false, "md5_digest": "fae235b4469e9d2298e19ae888ec4721", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53303, "upload_time": "2018-06-10T12:38:03", "url": "https://files.pythonhosted.org/packages/ec/fe/59282a90af4889fd0a842751713f48a84080620e32462784205fe44b32a5/streaming_form_data-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "5aad1324b89ae35b3adf0d7aebe82535", "sha256": "432d749cd73b65677706e2635338259a08d2b1ed5247a5ead3a068a68c14bb91" }, "downloads": -1, "filename": "streaming_form_data-0.6.1.tar.gz", "has_sig": false, "md5_digest": "5aad1324b89ae35b3adf0d7aebe82535", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56467, "upload_time": "2018-06-13T16:52:30", "url": "https://files.pythonhosted.org/packages/03/cb/1439d7d6a3981d6f3fec322a9d87b15686705bd1f8a5b412c168f68d8eda/streaming_form_data-0.6.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "91e7949c0a5f39eb020b7139eb4c8183", "sha256": "347ca8d3811a0b42b01f7ebea0474c17658b2eedfd71d2d304d26aac712c20c8" }, "downloads": -1, "filename": "streaming_form_data-1.0.0.tar.gz", "has_sig": false, "md5_digest": "91e7949c0a5f39eb020b7139eb4c8183", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67636, "upload_time": "2018-07-19T08:18:33", "url": "https://files.pythonhosted.org/packages/74/b0/087e0c4437c51e21e373f578758efa845b1196f1c5e05143b21e5f7d8987/streaming_form_data-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5a82368e32b648254d35dc2bb645db8d", "sha256": "8f955ddfa862407350534cd8250c18207493f320b654f7bdf3458c739ac7537f" }, "downloads": -1, "filename": "streaming_form_data-1.1.0.tar.gz", "has_sig": false, "md5_digest": "5a82368e32b648254d35dc2bb645db8d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 84840, "upload_time": "2018-07-31T07:02:39", "url": "https://files.pythonhosted.org/packages/77/81/56e7e58c2dbbedb37e172d12cedb18879149794a76cd6a845ccd9d149d35/streaming_form_data-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "034ae0ddb51e76feb9b5cbd02d1583eb", "sha256": "9a56cb4dfe56bbc57aacda28d72b48a4b8737be8ba843d577c1c5578fffe3353" }, "downloads": -1, "filename": "streaming_form_data-1.2.0.tar.gz", "has_sig": false, "md5_digest": "034ae0ddb51e76feb9b5cbd02d1583eb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 84833, "upload_time": "2018-11-02T16:27:42", "url": "https://files.pythonhosted.org/packages/98/2d/3b09302ddb219d3557fc2e86c4aa3d41e0608dd77dca69c3fb2c99b5b5fe/streaming_form_data-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "3b00b7405c5f15b434cc61a2b8cef4f3", "sha256": "8639948804f26065dfe38daa0e48cc645bda4589f171b8ba035f9cd77dae0e77" }, "downloads": -1, "filename": "streaming_form_data-1.3.0.tar.gz", "has_sig": false, "md5_digest": "3b00b7405c5f15b434cc61a2b8cef4f3", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 86436, "upload_time": "2018-12-01T13:07:28", "url": "https://files.pythonhosted.org/packages/b5/00/0f6df319e2716a93af0e276bdd422a525dc1ca2c507c7632a70045a270d6/streaming_form_data-1.3.0.tar.gz" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "1eba6df54d483a9034baf19586741da5", "sha256": "451ca2fb29dd6adc39ae5b4ebc7242cb4cfc617f847233b1590b2c575869b264" }, "downloads": -1, "filename": "streaming_form_data-1.4.0.tar.gz", "has_sig": false, "md5_digest": "1eba6df54d483a9034baf19586741da5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 86658, "upload_time": "2019-04-14T08:15:45", "url": "https://files.pythonhosted.org/packages/d1/b1/0816681cbd87cdf59020e34bd2f7acd19ec90e96cc1ea0799a1b9683cec6/streaming_form_data-1.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1eba6df54d483a9034baf19586741da5", "sha256": "451ca2fb29dd6adc39ae5b4ebc7242cb4cfc617f847233b1590b2c575869b264" }, "downloads": -1, "filename": "streaming_form_data-1.4.0.tar.gz", "has_sig": false, "md5_digest": "1eba6df54d483a9034baf19586741da5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4.0", "size": 86658, "upload_time": "2019-04-14T08:15:45", "url": "https://files.pythonhosted.org/packages/d1/b1/0816681cbd87cdf59020e34bd2f7acd19ec90e96cc1ea0799a1b9683cec6/streaming_form_data-1.4.0.tar.gz" } ] }