Flask-Reuploads


NameFlask-Reuploads JSON
Version 1.0.1.dev0 PyPI version JSON
download
home_pagehttps://github.com/picklu/flask-reuploads
SummaryFlexible and efficient upload handling for Flask
upload_time2023-05-23 18:32:15
maintainerJürgen Gmach, Subrata Sarker
docs_urlNone
authorMatthew "LeafStorm" Frazier
requires_python>= 3.7
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: https://github.com/jugmac00/flask-reuploaded/workflows/CI/badge.svg?branch=master
   :target: https://github.com/jugmac00/flask-reuploaded/actions?workflow=CI
   :alt: CI Status

.. image:: https://coveralls.io/repos/github/jugmac00/flask-reuploaded/badge.svg?branch=master
    :target: https://coveralls.io/github/jugmac00/flask-reuploaded?branch=master

.. image:: https://img.shields.io/pypi/v/flask-reuploaded   
    :alt: PyPI
    :target: https://github.com/jugmac00/flask-reuploaded

.. image:: https://img.shields.io/pypi/pyversions/flask-reuploaded   
    :alt: PyPI - Python Version
    :target: https://pypi.org/project/Flask-Reuploaded/

.. image:: https://img.shields.io/pypi/l/flask-reuploaded
    :target: https://github.com/jugmac00/flask-reuploaded/blob/master/LICENSE


Flask-Reuploads
================

Flask-Reuploads is a copy of Flask-Reuploaded that provides file uploads for Flask.


Notes on this package
---------------------

This is an independently maintained version of `Flask-Uploads`
based on the 0.2.1 version of the original,
but also including four years of unreleased changes,
at least not released to PyPI.

Noteworthy is the fix for the `Werkzeug` API change.


Goals
-----

- provide a stable drop-in replacement for `Flask-Uploads`
- regain momentum for this widely used package
- provide working PyPI packages


Migration guide from `Flask-Uploads`
------------------------------------

Incompatibilities between Flask-Reuploaded and Flask-Uploads
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

As already mentioned,
staying compatible with `Flask-Uploads` is one of this project's goals.

Nevertheless, there are the following known incompatibilities:

- the `patch_request_class` helper function has been removed;
  the function was only necessary for Flask 0.6 and earlier.
  Since then you can use Flask's own
  `MAX_CONTENT_LENGTH <https://flask.palletsprojects.com/en/1.1.x/config/#MAX_CONTENT_LENGTH>`_
  environment variable,
  so you don’t read more than this many bytes from the incoming request data.
- `autoserve` of uploaded images now has been deactivated;
  this was a poorly documented "feature",
  which even could have lead to unwanted data disclosure;
  if you want to activate the feature again,
  you need to set `UPLOADS_AUTOSERVE=True`

Uninstall and install
~~~~~~~~~~~~~~~~~~~~~

If you have used `Flask-Uploads` and want to migrate to `Flask-Reuploaded`,
you only have to install `Flask-Reuploaded` instead of `Flask-Uploads`.

That's all!

So, if you use `pip` to install your packages, instead of ...

.. code-block:: bash

    $ pip install `Flask-Uploads`  # don't do this! package is broken

... just do ...

.. code-block:: bash

    $ pip install `Flask-Reuploads`

`Flask-Reuploads` is not a drop-in replacement.

Instead of importing from "flask_reuploaded" you
need to import from "flask_reuploads".

That means, I have changed the package name from 
flask_reuploaded to flask_reuploads to avoid any 
conflicts when using pipreqs.



Installation
------------

.. code-block:: bash

    $ pip install Flask-Reuploads


Getting started
---------------

create an UploadSet

.. code-block:: python

    from flask_reuploads import IMAGES

    photos = UploadSet("photos", IMAGES)

configure your Flask app and this extension

.. code-block:: python

    app.config["UPLOADED_PHOTOS_DEST"] = "static/img"
    app.config["SECRET_KEY"] = os.urandom(24)
    configure_uploads(app, photos)

use `photos` in your view function

.. code-block:: python

    photos.save(request.files['photo'])

See below for a complete example.


Documentation
-------------

You can find the documentation at:

https://flask-reuploaded.readthedocs.io/en/latest/

You can generate the documentation locally:

.. code-block:: bash

    tox -e docs

You can update the dependencies for documentation generation:

.. code-block:: bash

    tox -e upgradedocs


Minimal example application
----------------------------


Application code, e.g. main.py
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: python

    import os

    from flask import Flask, flash, render_template, request
    # please note the import from `flask_uploads` - not `flask_reuploaded`!!
    # this is done on purpose to stay compatible with `Flask-Uploads`
    from flask_reuploads import IMAGES, UploadSet, configure_uploads

    app = Flask(__name__)
    photos = UploadSet("photos", IMAGES)
    app.config["UPLOADED_PHOTOS_DEST"] = "static/img"
    app.config["SECRET_KEY"] = os.urandom(24)
    configure_uploads(app, photos)


    @app.route("/", methods=['GET', 'POST'])
    def upload():
        if request.method == 'POST' and 'photo' in request.files:
            photos.save(request.files['photo'])
            flash("Photo saved successfully.")
            return render_template('upload.html')
        return render_template('upload.html')


HTML code for `upload.html`
~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. code-block:: html

    <!doctype html>
    <html lang=en>
    <head>
        <meta charset=utf-8>
        <title>Flask-Reuploaded Example</title>
    </head>
    <body>
        {% with messages = get_flashed_messages() %}
        {% if messages %}
        <ul class=flashes>
        {% for message in messages %}
            <li>{{ message }}</li>
        {% endfor %}
        </ul>
        {% endif %}
        {% endwith %}

    <form method=POST enctype=multipart/form-data action="{{ url_for('upload') }}">
        <input type=file name=photo>
        <button type="submit">Submit</button>
    </form>
    </body>
    </html>


Project structure
~~~~~~~~~~~~~~~~~

The project structure would look as following...

.. code-block:: bash

    ❯ tree -I "__*|h*"
    .
    ├── main.py
    ├── static
    │   └── img
    └── templates
        └── upload.html


Running the example application
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

In order to run the application,
you have to enter the following commands...

.. code-block:: bash

    ❯ export FLASK_APP=main.py

    ❯ flask run

Then point your browser to `http://127.0.0.1:5000/`.


Contributing
------------

Contributions are more than welcome.

Please have a look at the `open issues <https://github.com/jugmac00/flask-reuploaded/issues>`_.

There is also a `short contributing guide <https://github.com/jugmac00/flask-reuploaded/blob/master/CONTRIBUTING.rst>`_.


Changelog
=========

1.3.1 (unreleased)
------------------
- fix deprecation warning for pytest

1.3.0 (2022.12.20)
------------------
- improve documentation
  (`#133 <https://github.com/jugmac00/flask-reuploaded/issues/133>`_)
- drop support for Python 3.6
- add support for Python 3.11
- update dependencies for building documentation


1.2.0 (2021.11.07)
------------------
- add contexts to coverage report
- pin documentation dependencies to prevent future breakage
- fix typing errors (mypy) with recently released Flask 2.0.1
- add support for Python 3.10


1.1.0 (2021.05.09)
------------------
- make type checkers aware that this library is using type annotations


1.0.0 (2021.04.07)
------------------
- raise test coverage to 100%
- use official `Pallets` theme for the documentation
- remove deprecated `patch_request_class` helper function; use `MAX_CONTENT_LENGTH` instead.
- `autoserve` now has been deactivated by default and needs explicit activation
  via the setting `UPLOADS_AUTOSERVE=True`


0.5.0
-----
- improve documentation of example app
- document surprising `autoserve` feature
- issue a warning when using `autoserve` without explicit configuration


0.4.0
-----
- add type annotations
- drop support for Python 2 and Python 3.5
  (`#8 <https://github.com/jugmac00/flask-reuploaded/issues/8>`_)
- deprecate `patch_request_class`
  (`#43 <https://github.com/jugmac00/flask-reuploaded/issues/43>`_)
- use a `src` directory for source code
  (`#21 <https://github.com/jugmac00/flask-reuploaded/issues/21>`_)
- add tox env for check-python-versions
  (`#20 <https://github.com/jugmac00/flask-reuploaded/issues/20>`_)
- add flake8-bugbear
- add short contribution guide
  (`#6 <https://github.com/jugmac00/flask-reuploaded/issues/6>`_)
- add `getting started`
  (`#59 <https://github.com/jugmac00/flask-reuploaded/issues/59>`_)
- delete broken example and add minimal example to README
  (`#15 <https://github.com/jugmac00/flask-reuploaded/issues/15>`_)
- add support for Python 3.9
- use gh actions instead of Travis CI


0.3.2
-----
- documentation update
  (`#5 <https://github.com/jugmac00/flask-reuploaded/issues/5>`_)

  * update docs/index.rst
  * use blue ReadTheDocs theme
  * update sphinx configuration
  * add documentation link to `setup.py`, so it shows on PyPi
  * add note about documentation in the README file
  * delete old theme files
- configure `isort` to force single line imports


0.3.1
-----
- add badges to README
  (`# 31 <https://github.com/jugmac00/flask-reuploaded/issues/31>`_)
- add migration guide from `Flask-Uploads` to `Flask-Reuploaded`
  (`#11 <https://github.com/jugmac00/flask-reuploaded/issues/11>`_)
- add packaging guide
  (`#28 <https://github.com/jugmac00/flask-reuploaded/issues/28>`_)
- update installation instruction in README


0.3
---

Besides including four years of unreleased changes from the original
package, most notable the fix for the Werkzeug API change, the
following changes happened since forking the original package.

- rename package from `Flask-Uploads` to `Flask-Reuploaded`
  (`#10 <https://github.com/jugmac00/flask-reuploaded/issues/10>`_)
- update `setup.py`
  (`#12 <https://github.com/jugmac00/flask-reuploaded/issues/12>`_)
- start using pre-commit.com
  (`#4 <https://github.com/jugmac00/flask-reuploaded/issues/4>`_)
- update README
  (`#14 <https://github.com/jugmac00/flask-reuploaded/issues/14>`_)
- setup CI (Travis)
  (`#3 <https://github.com/jugmac00/flask-reuploaded/issues/3>`_)
- fix broken tests
  (`#13 <https://github.com/jugmac00/flask-reuploaded/issues/13>`_)
- make use of `pytest` instead of the no longer maintained `nose`
  (`#2 <https://github.com/jugmac00/flask-reuploaded/issues/2>`_)
- add a changelog and start tracking changes
  (`#1 <https://github.com/jugmac00/flask-reuploaded/issues/1>`_)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/picklu/flask-reuploads",
    "name": "Flask-Reuploads",
    "maintainer": "J\u00fcrgen Gmach, Subrata Sarker",
    "docs_url": null,
    "requires_python": ">= 3.7",
    "maintainer_email": "juergen.gmach@googlemail.com, picklumithu@yahoo.com",
    "keywords": "",
    "author": "Matthew \"LeafStorm\" Frazier",
    "author_email": "leafstormrush@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f2/11/d8fe7c723e2e65a89114a6ec97397d8a9c8a2aa947fb21ebde12616b094d/Flask-Reuploads-1.0.1.dev0.tar.gz",
    "platform": "any",
    "description": ".. image:: https://github.com/jugmac00/flask-reuploaded/workflows/CI/badge.svg?branch=master\r\n   :target: https://github.com/jugmac00/flask-reuploaded/actions?workflow=CI\r\n   :alt: CI Status\r\n\r\n.. image:: https://coveralls.io/repos/github/jugmac00/flask-reuploaded/badge.svg?branch=master\r\n    :target: https://coveralls.io/github/jugmac00/flask-reuploaded?branch=master\r\n\r\n.. image:: https://img.shields.io/pypi/v/flask-reuploaded   \r\n    :alt: PyPI\r\n    :target: https://github.com/jugmac00/flask-reuploaded\r\n\r\n.. image:: https://img.shields.io/pypi/pyversions/flask-reuploaded   \r\n    :alt: PyPI - Python Version\r\n    :target: https://pypi.org/project/Flask-Reuploaded/\r\n\r\n.. image:: https://img.shields.io/pypi/l/flask-reuploaded\r\n    :target: https://github.com/jugmac00/flask-reuploaded/blob/master/LICENSE\r\n\r\n\r\nFlask-Reuploads\r\n================\r\n\r\nFlask-Reuploads is a copy of Flask-Reuploaded that provides file uploads for Flask.\r\n\r\n\r\nNotes on this package\r\n---------------------\r\n\r\nThis is an independently maintained version of `Flask-Uploads`\r\nbased on the 0.2.1 version of the original,\r\nbut also including four years of unreleased changes,\r\nat least not released to PyPI.\r\n\r\nNoteworthy is the fix for the `Werkzeug` API change.\r\n\r\n\r\nGoals\r\n-----\r\n\r\n- provide a stable drop-in replacement for `Flask-Uploads`\r\n- regain momentum for this widely used package\r\n- provide working PyPI packages\r\n\r\n\r\nMigration guide from `Flask-Uploads`\r\n------------------------------------\r\n\r\nIncompatibilities between Flask-Reuploaded and Flask-Uploads\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nAs already mentioned,\r\nstaying compatible with `Flask-Uploads` is one of this project's goals.\r\n\r\nNevertheless, there are the following known incompatibilities:\r\n\r\n- the `patch_request_class` helper function has been removed;\r\n  the function was only necessary for Flask 0.6 and earlier.\r\n  Since then you can use Flask's own\r\n  `MAX_CONTENT_LENGTH <https://flask.palletsprojects.com/en/1.1.x/config/#MAX_CONTENT_LENGTH>`_\r\n  environment variable,\r\n  so you don\u2019t read more than this many bytes from the incoming request data.\r\n- `autoserve` of uploaded images now has been deactivated;\r\n  this was a poorly documented \"feature\",\r\n  which even could have lead to unwanted data disclosure;\r\n  if you want to activate the feature again,\r\n  you need to set `UPLOADS_AUTOSERVE=True`\r\n\r\nUninstall and install\r\n~~~~~~~~~~~~~~~~~~~~~\r\n\r\nIf you have used `Flask-Uploads` and want to migrate to `Flask-Reuploaded`,\r\nyou only have to install `Flask-Reuploaded` instead of `Flask-Uploads`.\r\n\r\nThat's all!\r\n\r\nSo, if you use `pip` to install your packages, instead of ...\r\n\r\n.. code-block:: bash\r\n\r\n    $ pip install `Flask-Uploads`  # don't do this! package is broken\r\n\r\n... just do ...\r\n\r\n.. code-block:: bash\r\n\r\n    $ pip install `Flask-Reuploads`\r\n\r\n`Flask-Reuploads` is not a drop-in replacement.\r\n\r\nInstead of importing from \"flask_reuploaded\" you\r\nneed to import from \"flask_reuploads\".\r\n\r\nThat means, I have changed the package name from \r\nflask_reuploaded to flask_reuploads to avoid any \r\nconflicts when using pipreqs.\r\n\r\n\r\n\r\nInstallation\r\n------------\r\n\r\n.. code-block:: bash\r\n\r\n    $ pip install Flask-Reuploads\r\n\r\n\r\nGetting started\r\n---------------\r\n\r\ncreate an UploadSet\r\n\r\n.. code-block:: python\r\n\r\n    from flask_reuploads import IMAGES\r\n\r\n    photos = UploadSet(\"photos\", IMAGES)\r\n\r\nconfigure your Flask app and this extension\r\n\r\n.. code-block:: python\r\n\r\n    app.config[\"UPLOADED_PHOTOS_DEST\"] = \"static/img\"\r\n    app.config[\"SECRET_KEY\"] = os.urandom(24)\r\n    configure_uploads(app, photos)\r\n\r\nuse `photos` in your view function\r\n\r\n.. code-block:: python\r\n\r\n    photos.save(request.files['photo'])\r\n\r\nSee below for a complete example.\r\n\r\n\r\nDocumentation\r\n-------------\r\n\r\nYou can find the documentation at:\r\n\r\nhttps://flask-reuploaded.readthedocs.io/en/latest/\r\n\r\nYou can generate the documentation locally:\r\n\r\n.. code-block:: bash\r\n\r\n    tox -e docs\r\n\r\nYou can update the dependencies for documentation generation:\r\n\r\n.. code-block:: bash\r\n\r\n    tox -e upgradedocs\r\n\r\n\r\nMinimal example application\r\n----------------------------\r\n\r\n\r\nApplication code, e.g. main.py\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n.. code-block:: python\r\n\r\n    import os\r\n\r\n    from flask import Flask, flash, render_template, request\r\n    # please note the import from `flask_uploads` - not `flask_reuploaded`!!\r\n    # this is done on purpose to stay compatible with `Flask-Uploads`\r\n    from flask_reuploads import IMAGES, UploadSet, configure_uploads\r\n\r\n    app = Flask(__name__)\r\n    photos = UploadSet(\"photos\", IMAGES)\r\n    app.config[\"UPLOADED_PHOTOS_DEST\"] = \"static/img\"\r\n    app.config[\"SECRET_KEY\"] = os.urandom(24)\r\n    configure_uploads(app, photos)\r\n\r\n\r\n    @app.route(\"/\", methods=['GET', 'POST'])\r\n    def upload():\r\n        if request.method == 'POST' and 'photo' in request.files:\r\n            photos.save(request.files['photo'])\r\n            flash(\"Photo saved successfully.\")\r\n            return render_template('upload.html')\r\n        return render_template('upload.html')\r\n\r\n\r\nHTML code for `upload.html`\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\n.. code-block:: html\r\n\r\n    <!doctype html>\r\n    <html lang=en>\r\n    <head>\r\n        <meta charset=utf-8>\r\n        <title>Flask-Reuploaded Example</title>\r\n    </head>\r\n    <body>\r\n        {% with messages = get_flashed_messages() %}\r\n        {% if messages %}\r\n        <ul class=flashes>\r\n        {% for message in messages %}\r\n            <li>{{ message }}</li>\r\n        {% endfor %}\r\n        </ul>\r\n        {% endif %}\r\n        {% endwith %}\r\n\r\n    <form method=POST enctype=multipart/form-data action=\"{{ url_for('upload') }}\">\r\n        <input type=file name=photo>\r\n        <button type=\"submit\">Submit</button>\r\n    </form>\r\n    </body>\r\n    </html>\r\n\r\n\r\nProject structure\r\n~~~~~~~~~~~~~~~~~\r\n\r\nThe project structure would look as following...\r\n\r\n.. code-block:: bash\r\n\r\n    \u276f tree -I \"__*|h*\"\r\n    .\r\n    \u251c\u2500\u2500 main.py\r\n    \u251c\u2500\u2500 static\r\n    \u2502   \u2514\u2500\u2500 img\r\n    \u2514\u2500\u2500 templates\r\n        \u2514\u2500\u2500 upload.html\r\n\r\n\r\nRunning the example application\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nIn order to run the application,\r\nyou have to enter the following commands...\r\n\r\n.. code-block:: bash\r\n\r\n    \u276f export FLASK_APP=main.py\r\n\r\n    \u276f flask run\r\n\r\nThen point your browser to `http://127.0.0.1:5000/`.\r\n\r\n\r\nContributing\r\n------------\r\n\r\nContributions are more than welcome.\r\n\r\nPlease have a look at the `open issues <https://github.com/jugmac00/flask-reuploaded/issues>`_.\r\n\r\nThere is also a `short contributing guide <https://github.com/jugmac00/flask-reuploaded/blob/master/CONTRIBUTING.rst>`_.\r\n\r\n\r\nChangelog\r\n=========\r\n\r\n1.3.1 (unreleased)\r\n------------------\r\n- fix deprecation warning for pytest\r\n\r\n1.3.0 (2022.12.20)\r\n------------------\r\n- improve documentation\r\n  (`#133 <https://github.com/jugmac00/flask-reuploaded/issues/133>`_)\r\n- drop support for Python 3.6\r\n- add support for Python 3.11\r\n- update dependencies for building documentation\r\n\r\n\r\n1.2.0 (2021.11.07)\r\n------------------\r\n- add contexts to coverage report\r\n- pin documentation dependencies to prevent future breakage\r\n- fix typing errors (mypy) with recently released Flask 2.0.1\r\n- add support for Python 3.10\r\n\r\n\r\n1.1.0 (2021.05.09)\r\n------------------\r\n- make type checkers aware that this library is using type annotations\r\n\r\n\r\n1.0.0 (2021.04.07)\r\n------------------\r\n- raise test coverage to 100%\r\n- use official `Pallets` theme for the documentation\r\n- remove deprecated `patch_request_class` helper function; use `MAX_CONTENT_LENGTH` instead.\r\n- `autoserve` now has been deactivated by default and needs explicit activation\r\n  via the setting `UPLOADS_AUTOSERVE=True`\r\n\r\n\r\n0.5.0\r\n-----\r\n- improve documentation of example app\r\n- document surprising `autoserve` feature\r\n- issue a warning when using `autoserve` without explicit configuration\r\n\r\n\r\n0.4.0\r\n-----\r\n- add type annotations\r\n- drop support for Python 2 and Python 3.5\r\n  (`#8 <https://github.com/jugmac00/flask-reuploaded/issues/8>`_)\r\n- deprecate `patch_request_class`\r\n  (`#43 <https://github.com/jugmac00/flask-reuploaded/issues/43>`_)\r\n- use a `src` directory for source code\r\n  (`#21 <https://github.com/jugmac00/flask-reuploaded/issues/21>`_)\r\n- add tox env for check-python-versions\r\n  (`#20 <https://github.com/jugmac00/flask-reuploaded/issues/20>`_)\r\n- add flake8-bugbear\r\n- add short contribution guide\r\n  (`#6 <https://github.com/jugmac00/flask-reuploaded/issues/6>`_)\r\n- add `getting started`\r\n  (`#59 <https://github.com/jugmac00/flask-reuploaded/issues/59>`_)\r\n- delete broken example and add minimal example to README\r\n  (`#15 <https://github.com/jugmac00/flask-reuploaded/issues/15>`_)\r\n- add support for Python 3.9\r\n- use gh actions instead of Travis CI\r\n\r\n\r\n0.3.2\r\n-----\r\n- documentation update\r\n  (`#5 <https://github.com/jugmac00/flask-reuploaded/issues/5>`_)\r\n\r\n  * update docs/index.rst\r\n  * use blue ReadTheDocs theme\r\n  * update sphinx configuration\r\n  * add documentation link to `setup.py`, so it shows on PyPi\r\n  * add note about documentation in the README file\r\n  * delete old theme files\r\n- configure `isort` to force single line imports\r\n\r\n\r\n0.3.1\r\n-----\r\n- add badges to README\r\n  (`# 31 <https://github.com/jugmac00/flask-reuploaded/issues/31>`_)\r\n- add migration guide from `Flask-Uploads` to `Flask-Reuploaded`\r\n  (`#11 <https://github.com/jugmac00/flask-reuploaded/issues/11>`_)\r\n- add packaging guide\r\n  (`#28 <https://github.com/jugmac00/flask-reuploaded/issues/28>`_)\r\n- update installation instruction in README\r\n\r\n\r\n0.3\r\n---\r\n\r\nBesides including four years of unreleased changes from the original\r\npackage, most notable the fix for the Werkzeug API change, the\r\nfollowing changes happened since forking the original package.\r\n\r\n- rename package from `Flask-Uploads` to `Flask-Reuploaded`\r\n  (`#10 <https://github.com/jugmac00/flask-reuploaded/issues/10>`_)\r\n- update `setup.py`\r\n  (`#12 <https://github.com/jugmac00/flask-reuploaded/issues/12>`_)\r\n- start using pre-commit.com\r\n  (`#4 <https://github.com/jugmac00/flask-reuploaded/issues/4>`_)\r\n- update README\r\n  (`#14 <https://github.com/jugmac00/flask-reuploaded/issues/14>`_)\r\n- setup CI (Travis)\r\n  (`#3 <https://github.com/jugmac00/flask-reuploaded/issues/3>`_)\r\n- fix broken tests\r\n  (`#13 <https://github.com/jugmac00/flask-reuploaded/issues/13>`_)\r\n- make use of `pytest` instead of the no longer maintained `nose`\r\n  (`#2 <https://github.com/jugmac00/flask-reuploaded/issues/2>`_)\r\n- add a changelog and start tracking changes\r\n  (`#1 <https://github.com/jugmac00/flask-reuploaded/issues/1>`_)\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Flexible and efficient upload handling for Flask",
    "version": "1.0.1.dev0",
    "project_urls": {
        "Documentation": "https://flask-reuploaded.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/picklu/flask-reuploads",
        "Issue Tracker": "https://github.com/jugmac00/flask-reuploaded/issues",
        "Source": "https://github.com/picklu/flask-reuploads"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "67939001af5dfeb050684fedca584a1e05973370b626b0aacfd81e232b9cbf1c",
                "md5": "70d764ffa7e80d05a66a00941872b074",
                "sha256": "dc3ef9925a8fa590694421cdfc1322386e26e6f81005dc50e3d4a6eadc4a5093"
            },
            "downloads": -1,
            "filename": "Flask_Reuploads-1.0.1.dev0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "70d764ffa7e80d05a66a00941872b074",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">= 3.7",
            "size": 14836,
            "upload_time": "2023-05-23T18:32:13",
            "upload_time_iso_8601": "2023-05-23T18:32:13.287471Z",
            "url": "https://files.pythonhosted.org/packages/67/93/9001af5dfeb050684fedca584a1e05973370b626b0aacfd81e232b9cbf1c/Flask_Reuploads-1.0.1.dev0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f211d8fe7c723e2e65a89114a6ec97397d8a9c8a2aa947fb21ebde12616b094d",
                "md5": "90b983187222dc5b84c16d05fdc73a24",
                "sha256": "4760479249640a5cd5bdded556289eef923a1464211e8e1644c34534b4d2dacc"
            },
            "downloads": -1,
            "filename": "Flask-Reuploads-1.0.1.dev0.tar.gz",
            "has_sig": false,
            "md5_digest": "90b983187222dc5b84c16d05fdc73a24",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">= 3.7",
            "size": 33898,
            "upload_time": "2023-05-23T18:32:15",
            "upload_time_iso_8601": "2023-05-23T18:32:15.839176Z",
            "url": "https://files.pythonhosted.org/packages/f2/11/d8fe7c723e2e65a89114a6ec97397d8a9c8a2aa947fb21ebde12616b094d/Flask-Reuploads-1.0.1.dev0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-23 18:32:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "picklu",
    "github_project": "flask-reuploads",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "flask-reuploads"
}
        
Elapsed time: 0.08181s