<commit_before>
DEPOT - File Storage made Easy
=========================================

Welcome to DEPOT Documentation, DEPOT is an framework
for easily storing and serving files in web applications.

Modern web applications need to rely on a huge amount of
stored images, generated files and other data which is usually
best to keep outside of your database. DEPOT provides a
simple and effective interface for storing your files on
a storage backend at your choice (**Local**, **S3**, **GridFS**)
and easily relate them to your application models (**SQLAlchemy**, **Ming**)
like you would for plain data.

Depot is a swiss army knife for files that provides:

    - Multiple backends: Store your data on GridFS or S3 with a *single API*
    - Meant for *Evolution*: Change backend when you want, old data will continue to work
    - Integrates with your *ORM*: When using SQLAlchemy attachments are handled like a
        plain model attribute. It's also *session ready* rollback causes the files to be deleted.
    - Smart *File Serving*: When the backend already provides a public HTTP endpoint (like S3)
        the WSGI :class:`depot.middleware.DepotMiddleware` will serve it instead of loading the files.
    - Flexible: The :class:`depot.manager.DepotManager` will handle configuration,
        middleware creation and files for your application, but if you want you can manually
        create multiple depots or middlewares without using the manager.

Depot can be used :ref:`Standalone <depot_standalone>` or
:ref:`With your ORM <depot_with_your_orm>`.

.. _depot_standalone:

Depot Standalone
-------------------------

Depot can easily be used to save and retrieve files in any python script,
Just get a depot using the :class:`depot.manager.DepotManager` and store the files.
With each file, additional data commonly used in HTTP is stored like *last_modified*,
*content_type* and so on. This data is available inside the :class:`depot.io.interfaces.StoredFile`<commit_msg>Fix in homepage list<commit_after>
DEPOT - File Storage made Easy
=========================================

Welcome to DEPOT Documentation, DEPOT is an framework
for easily storing and serving files in web applications.

Modern web applications need to rely on a huge amount of
stored images, generated files and other data which is usually
best to keep outside of your database. DEPOT provides a
simple and effective interface for storing your files on
a storage backend at your choice (**Local**, **S3**, **GridFS**)
and easily relate them to your application models (**SQLAlchemy**, **Ming**)
like you would for plain data.

Depot is a swiss army knife for files that provides:

    - Multiple backends: Store your data on GridFS or S3 with a *single API*
    - Meant for *Evolution*: Change backend when you want, old data will continue to work
    - Integrates with your *ORM*: When using SQLAlchemy attachments are handled like a
      plain model attribute. It's also *session ready* rollback causes the files to be deleted.
    - Smart *File Serving*: When the backend already provides a public HTTP endpoint (like S3)
      the WSGI :class:`depot.middleware.DepotMiddleware` will serve it instead of loading the files.
    - Flexible: The :class:`depot.manager.DepotManager` will handle configuration,
      middleware creation and files for your application, but if you want you can manually
      create multiple depots or middlewares without using the manager.

Depot can be used :ref:`Standalone <depot_standalone>` or
:ref:`With your ORM <depot_with_your_orm>`.

.. _depot_standalone:

Depot Standalone
-------------------------

Depot can easily be used to save and retrieve files in any python script,
Just get a depot using the :class:`depot.manager.DepotManager` and store the files.
With each file, additional data commonly used in HTTP is stored like *last_modified*,
*content_type* and so on. This data is available inside the :class:`depot.io.interfaces.StoredFile`
{'fraction_non_alphanumeric': 0.09202916771435755, 'fraction_numerical': 0.0015086748805632386, 'mean_word_length': 4.152849740932642, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3045356', 'n_tokens_mistral': 1031, 'n_tokens_neox': 1001, 'n_words': 538}