Metadata-Version: 2.1
Name: leukeleu-drf-tus
Version: 2.0.0.dev0
Summary: A Tus (tus.io) library for Django Rest Framework
Home-page: https://github.com/leukeleu/leukeleu-drf-tus
Author: Leukeleu
Author-email: info@leukeleu.nl
License: MIT
Keywords: drf-tus
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE

leukeleu-drf-tus
================

A [tus](https://tus.io) library for [Django REST Framework](https://www.django-rest-framework.org).


Quickstart
----------

Install drf-tus:

    pip install leukeleu-drf-tus

Add it to your `INSTALLED_APPS`:

    INSTALLED_APPS = (
        ...
        'rest_framework_tus',
        ...
    )

Add the middleware to `MIDDLEWARE`:

    MIDDLEWARE = (
        ...
        'rest_framework_tus.middleware.TusMiddleware',
        ...
    )

Add drf-tus's URL patterns:

    urlpatterns = [
        ...
        path('', include('rest_framework_tus.urls', namespace='rest_framework_tus')),
        ...
    ]


Features
--------

This library implements the following TUS API v1.0.0 protocols:

* [Core Protocol](http://tus.io/protocols/resumable-upload.html#core-protocol)
* [Creation Protocol](http://tus.io/protocols/resumable-upload.html#creation)
* [Expiration Protocol](http://tus.io/protocols/resumable-upload.html#expiration)
* [Checksum Protocol](http://tus.io/protocols/resumable-upload.html#checksum)
* [Termination Protocol](http://tus.io/protocols/resumable-upload.html#termination)


Running Tests
-------------

Does the code actually work?

    docker compose exec python make coveragetest

# History

## 2.0.0.dev0 (2023-05-25)

* Renamed package to leukeleu-drf-tus
* Major refactoring

## 1.21.2 (2018-09-04)

* Fixed Django compatibility

## 1.21.1 (2018-08-01)

* Fixed failing travis build

## 1.21 (2018-08-01)

* Updated Django dependency and dropped support for Python 3.3.x (https://github.com/dirkmoors/drf-tus/pull/9)

## 1.20 (2018-02-12)

* Implemented per-view max file size setting (https://github.com/dirkmoors/drf-tus/pull/8)

## 1.19 (2018-02-08)

* Fixed bug that occured when pausing uploads (https://github.com/dirkmoors/drf-tus/pull/7)

## 1.18 (2018-02-08)

* Make the metadata 'filename' key a setting. (https://github.com/dirkmoors/drf-tus/pull/2)
* Switch from (Positive)IntegerField to BigIntegerField for the upload_length and upload_offset fields (https://github.com/dirkmoors/drf-tus/pull/3)
* Increase Django version support up to 1.11 (https://github.com/dirkmoors/drf-tus/pull/4)
* Fix unicode errors (https://github.com/dirkmoors/drf-tus/pull/5)
* Updated travis configuration

## 1.17 (2017-05-10)

* Exchanged use of `base64.encodebytes` to `base64.b64encode`.

## 1.16 (2017-05-04)

* Implemented `validate_filename` handler in `TusCreateMixin`.

## 1.15 (2017-04-06)

* Added missing migration and changed `max_length` to 255 for model `Upload`'s attribute `uploaded_file`

## 1.14 (2017-03-30)

* Updated default behaviour of the `get_header` handler in `TusMiddleware`.

## 1.13 (2017-03-30)

* Implemented handler for retrieving request headers in `TusMiddleware`.

## 1.12 (2017-03-10)

* Updated `validate_chunk` signature

## 1.11 (2017-03-10)

* Implemented `validate_chunk` handler method in TusPatchMixin
* Implemented `validate_success_headers` handler method in TusCreateMixin

## 1.10 (2017-03-09)

* Disabled chunk writing to disk

## 1.9 (2017-03-09)

* Introduced TusUploadStreamParser

## 1.8 (2017-03-09)

* Introduced setting to include serializer data in respons body

## 1.7 (2017-03-09)

* Bugfixes

## 1.6 (2017-03-09)

* Bugfixes

## 1.5 (2017-03-09)

* Updated middleware, removed required header (bug!)

## 1.4 (2017-03-09)

* Initial migration

## 1.3 (2017-03-09)

* Renamed some parameters / classes

## 1.2 (2017-03-09)

* Cleanup repository.

## 1.1 (2017-03-09)

* First release on PyPI.
