{ "info": { "author": "Mozilla", "author_email": "kinto@mozilla.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "================\nKinto Attachment\n================\n\n.. image:: https://img.shields.io/travis/Kinto/kinto-attachment/master.svg\n :target: https://travis-ci.org/Kinto/kinto-attachment\n\n.. image:: https://img.shields.io/pypi/v/kinto-attachment.svg\n :target: https://pypi.python.org/pypi/kinto-attachment\n\n.. image:: https://coveralls.io/repos/Kinto/kinto-attachment/badge.svg?branch=master\n :target: https://coveralls.io/r/Kinto/kinto-attachment\n\nAttach files to `Kinto records `_.\n\n\nInstall\n=======\n\n::\n\n pip install kinto-attachment\n\n\nSetup\n=====\n\nIn the Kinto project settings\n\n.. code-block:: ini\n\n kinto.includes = kinto_attachment\n kinto.attachment.base_url = http://cdn.service.org/files/\n\n\nLocal File storage\n------------------\n\nStore files locally:\n\n.. code-block:: ini\n\n kinto.attachment.base_path = /tmp\n\n\nS3 File Storage\n---------------\n\nStore on Amazon S3:\n\n.. code-block:: ini\n\n kinto.attachment.aws.access_key = \n kinto.attachment.aws.secret_key = \n kinto.attachment.aws.bucket_name = \n kinto.attachment.aws.acl = \n\n\n.. note::\n\n ``access_key`` and ``secret_key`` may be omitted when using AWS Identity\n and Access Management (IAM).\n\nSee `Pyramid Storage `_.\n\n\nThe ``folder`` option\n---------------------\n\nWith this option, the files will be stored in sub-folders.\n\nUse the ``{bucket_id}`` and ``{collection_id}`` placeholders to organize the files\nby bucket or collection.\n\n.. code-block:: ini\n\n kinto.attachment.folder = {bucket_id}/{collection_id}\n\nOr only for a particular bucket:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.folder = blog-assets\n\nOr a specific collection:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.articles.folder = articles-images\n\n\nThe ``keep_old_files`` option\n-----------------------------\n\nWhen set to ``true``, the files won't be deleted from disk/S3 when the associated record\nis deleted or when the attachment replaced.\n\n.. code-block:: ini\n\n kinto.attachment.keep_old_files = true\n\nOr only for a particular bucket:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.keep_old_files = false\n\nOr a specific collection:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.articles.keep_old_files = true\n\n\nThe ``gzipped`` option\n----------------------\n\nIf you want uploaded files to get gzipped when stored (default: False):\n\n.. code-block:: ini\n\n kinto.attachment.gzipped = true\n\nOr only for a particular bucket:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.gzipped = true\n\nOr a specific collection:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.articles.gzipped = true\n\n\nThe ``randomize`` option\n------------------------\n\nIf you want uploaded files to be stored with a random name (default: True):\n\n.. code-block:: ini\n\n kinto.attachment.randomize = true\n\nOr only for a particular bucket:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.randomize = true\n\nOr a specific collection:\n\n.. code-block:: ini\n\n kinto.attachment.resources.blog.articles.randomize = true\n\nThe ``extensions`` option\n-------------------------\n\nIf you want to upload files which are not in the default allowed extensions (see `Pyramid extensions groups `_ (default: ``default``):\n\n.. code-block:: ini\n\n kinto.attachment.extensions = default+video\n\nDefault bucket\n--------------\n\nIn order to upload files on the ``default`` bucket, the built-in default bucket\nplugin should be enabled before the ``kinto_attachment`` plugin.\n\nIn the configuration, this means adding it explicitly to includes:\n\n.. code-block:: ini\n\n kinto.includes = kinto.plugins.default_bucket\n kinto_attachment\n\nProduction\n----------\n\n* Make sure the ``base_url`` can be reached (and points to ``base_path`` if\n files are stored locally)\n* Adjust the max size for uploaded files (e.g. ``client_max_body_size 10m;`` for NGinx)\n\nFor example, with NGinx\n\n::\n\n server {\n listen 80;\n\n location /v1 {\n ...\n }\n\n location /files {\n root /var/www/kinto;\n }\n }\n\n\nAPI\n===\n\n**POST /{record-url}/attachment**\n\nIt will create the underlying record if it does not exist.\n\nRequired\n\n- ``attachment``: a single multipart-encoded file\n\nOptional\n\n- ``data``: attributes to set on record (serialized JSON)\n- ``permissions``: permissions to set on record (serialized JSON)\n\n\n**DELETE /{record-url}/attachment**\n\nDeletes the attachement from the record.\n\n\nAttributes\n----------\n\nWhen a file is attached, the related record is given an ``attachment`` attribute\nwith the following fields:\n\n- ``filename``: the original filename\n- ``hash``: a SHA-256 hex digest\n- ``location``: the URL of the attachment\n- ``mimetype``: the `media type `_ of\n the file\n- ``size``: size in bytes\n\n.. code-block:: json\n\n {\n \"data\": {\n \"attachment\": {\n \"filename\": \"IMG_20150219_174559.jpg\",\n \"hash\": \"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad\",\n \"location\": \"http://cdn.service.org/files/ffa9c7b9-7561-406b-b7f9-e00ac94644ff.jpg\",\n \"mimetype\": \"image/jpeg\",\n \"size\": 1481798\n },\n \"id\": \"c2ce1975-0e52-4b2f-a5db-80166aeca688\",\n \"last_modified\": 1447834938251,\n \"theme\": \"orange\",\n \"type\": \"wallpaper\"\n },\n \"permissions\": {\n \"write\": [\"basicauth:6de355038fd943a2dc91405063b91018bb5dd97a08d1beb95713d23c2909748f\"]\n }\n }\n\n\nIf the file is gzipped by the server, an ``original`` key is added in the ``attachment``\nkey, containing the file info **before** it's gzipped. The ``attachment`` keys are\nin that case referring to the gzipped file:\n\n\n.. code-block:: json\n\n {\n \"data\": {\n \"attachment\": {\n \"filename\": \"IMG_20150219_174559.jpg.gz\",\n \"hash\": \"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad\",\n \"location\": \"http://cdn.service.org/files/ffa9c7b9-7561-406b-b7f9-e00ac94644ff.jpg.gz\",\n \"mimetype\": \"application/x-gzip\",\n \"size\": 14818,\n \"original\": {\n \"filename\": \"IMG_20150219_174559.jpg\",\n \"hash\": \"hPME6i9avCf/LFaznYr+sHtwQEX7mXYHSu+vgtygpM8=\",\n \"mimetype\": \"image/jpeg\",\n \"size\": 1481798\n }\n },\n \"id\": \"c2ce1975-0e52-4b2f-a5db-80166aeca688\",\n \"last_modified\": 1447834938251,\n \"theme\": \"orange\",\n \"type\": \"wallpaper\"\n },\n \"permissions\": {\n \"write\": [\"basicauth:6de355038fd943a2dc91405063b91018bb5dd97a08d1beb95713d23c2909748f\"]\n }\n }\n\n\nUsage\n=====\n\nUsing HTTPie\n------------\n\n.. code-block:: bash\n\n http --auth alice:passwd --form POST http://localhost:8888/v1/buckets/website/collections/assets/records/c2ce1975-0e52-4b2f-a5db-80166aeca689/attachment data='{\"type\": \"wallpaper\", \"theme\": \"orange\"}' \"attachment@~/Pictures/background.jpg\"\n\n.. code-block:: http\n\n HTTP/1.1 201 Created\n Access-Control-Expose-Headers: Retry-After, Content-Length, Alert, Backoff\n Content-Length: 209\n Content-Type: application/json; charset=UTF-8\n Date: Wed, 18 Nov 2015 08:22:18 GMT\n Etag: \"1447834938251\"\n Last-Modified: Wed, 18 Nov 2015 08:22:18 GMT\n Location: http://localhost:8888/v1/buckets/website/collections/font/assets/c2ce1975-0e52-4b2f-a5db-80166aeca689\n Server: waitress\n\n {\n \"filename\": \"IMG_20150219_174559.jpg\",\n \"hash\": \"ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad\",\n \"location\": \"http://cdn.service.org/files/ffa9c7b9-7561-406b-b7f9-e00ac94644ff.jpg\",\n \"mimetype\": \"image/jpeg\",\n \"size\": 1481798\n }\n\n\nUsing Python requests\n---------------------\n\n.. code-block:: python\n\n auth = (\"alice\", \"passwd\")\n attributes = {\"type\": \"wallpaper\", \"theme\": \"orange\"}\n perms = {\"read\": [\"system.Everyone\"]}\n\n files = [(\"attachment\", (\"background.jpg\", open(\"Pictures/background.jpg\", \"rb\"), \"image/jpeg\"))]\n\n payload = {\"data\": json.dumps(attributes), \"permissions\": json.dumps(perms)}\n response = requests.post(SERVER_URL + endpoint, data=payload, files=files, auth=auth)\n\n response.raise_for_status()\n\n\nUsing JavaScript\n----------------\n\n.. code-block:: javascript\n\n var headers = {Authorization: \"Basic \" + btoa(\"alice:passwd\")};\n var attributes = {\"type\": \"wallpaper\", \"theme\": \"orange\"};\n var perms = {\"read\": [\"system.Everyone\"]};\n\n // File object from input field\n var file = form.elements.attachment.files[0];\n\n // Build form data\n var payload = new FormData();\n // Multipart attachment\n payload.append('attachment', file, \"background.jpg\");\n // Record attributes and permissions JSON encoded\n payload.append('data', JSON.stringify(attributes));\n payload.append('permissions', JSON.stringify(perms));\n\n // Post form using GlobalFetch API\n var url = `${server}/buckets/${bucket}/collections/${collection}/records/${record}/attachment`;\n fetch(url, {method: \"POST\", body: payload, headers: headers})\n .then(function (result) {\n console.log(result);\n });\n\n\nScripts\n=======\n\nTwo scripts are provided in this repository.\n\nThey rely on the ``kinto-client`` Python package, which can be installed in a\nvirtualenv:\n\n::\n\n $ virtualenv env --python=python3\n $ source env/bin/activate\n $ pip install kinto-client\n\nOr globally on your system (**not recommended**):\n\n::\n\n $ sudo pip install kinto-client\n\n\nUpload files\n------------\n\n``upload.py`` takes a list of files and posts them on the specified server,\nbucket and collection::\n\n $ python3 scripts/upload.py --server=$SERVER --bucket=$BUCKET --collection=$COLLECTION --auth \"token:mysecret\" README.rst pictures/*\n\nIf the ``--gzip`` option is passed, the files are gzipped before upload.\nSince the ``attachment`` attribute contains metadata of the compressed file\nthe original file metadata are stored in a ``original`` attribute.\n\nSee ``python3 scripts/upload.py --help`` for more details about options.\n\n\nDownload files\n--------------\n\n``download.py`` downloads the attachments from the specified server, bucket and\ncollection and store them on disk::\n\n $ python3 scripts/download.py --server=$SERVER --bucket=$BUCKET --collection=$COLLECTION --auth \"token:mysecret\"\n\nIf the record has an ``original`` attribute, the script decompresses the attachment\nafter downloading it.\n\nFiles are stored in the current folder by default.\nSee ``python3 scripts/download.py --help`` for more details about options.\n\n\nKnown limitations\n=================\n\n* No support for chunk upload (#10)\n* Files are not removed when server is purged with ``POST /v1/__flush__``\n\nRelative URL in records (workaround)\n------------------------------------\n\nCurrently the full URL is returned in records. This is very convenient for API consumers\nwhich can access the attached file just using the value in the ``location`` attribute.\n\nHowever, the way it is implemented has a limitation: the full URL is stored in each record\ndirectly. This is annoying because changing the ``base_url`` setting\nwon't actually change the ``location`` attributes on existing records.\n\nAs workaround, it is possible to set the ``kinto.attachment.base_url`` to an empty\nvalue. The ``location`` attribute in records will now contain a *relative* URL.\n\nUsing another setting ``kinto.attachment.extra.base_url``, it is possible to advertise\nthe base URL that can be preprended by clients to obtain the full attachment URL.\nIf specified, it is going to be exposed in the capabilities of the root URL endpoint.\n\n\nRun tests\n=========\n\nRun a fake Amazon S3 server in a separate terminal::\n\n make moto\n\nRun the tests suite::\n\n make tests\n\n\nNotes\n=====\n\n* `API design discussion `_ about mixing up ``attachment`` and record fields.\n\n\nChangelog\n=========\n\n6.0.1 (2018-12-19)\n------------------\n\n**Bug fixes**\n\n- Fix support of kinto >= 12\n\n6.0.0 (2018-10-02)\n------------------\n\n**Breaking changes**\n\n- Do not allow any file extension by default. Now allow documents+images+text+data (Fix #130)\n\n**Bug fixes**\n\n- Fix heartbeat when allowed file types is not ``any`` (Fix #148)\n\n\n5.0.0 (2018-07-31)\n------------------\n\n**Breaking changes**\n\n- Gzip ``Content-Encoding`` is not used anymore when uploading on S3 (fixes #144)\n\n**Internal changes**\n\n- Heartbeat now uses ``utils.save_file()`` for better detection of configuration or deployment errors (fixes #146)\n\n\n4.0.0 (2018-07-24)\n------------------\n\n**Breaking changes**\n\n- Gzip ``Content-Encoding`` is now always enabled when uploading on S3 (fixes #139)\n- Overriding settings via the querystring (eg. ``?gzipped``, ``randomize``, ``use_content_encoding``) is not possible anymore\n\n**Internal changes**\n\n- Refactor reading of settings\n\n3.0.1 (2018-07-05)\n------------------\n\n**Bug fix**\n\n- Do not delete attachment when record is deleted if ``keep_old_files`` setting is true (#137)\n\n\n3.0.0 (2018-04-10)\n------------------\n\n**Breaking changes**\n\n- The collection specific ``use_content_encoding`` setting must now be separated with ``.`` instead of ``_``.\n (eg. use ``kinto.attachment.resources.bid.cid.use_content_encoding`` instead of ``kinto.attachment.resources.bid_cid.use_content_encoding``) (fixes #134)\n\n\n2.1.0 (2017-12-06)\n------------------\n\n**New features**\n\n- Add support for the ``Content-Encoding`` header with the S3Backend (#132)\n\n\n2.0.1 (2017-04-06)\n------------------\n\n**Bug fixes**\n\n- Set request parameters before instantiating a record resource. (#127)\n\n\n2.0.0 (2017-03-03)\n------------------\n\n**Breaking changes**\n\n- Remove Python 2.7 support and upgrade to Python 3.5. (#125)\n\n\n1.1.2 (2017-02-01)\n------------------\n\n**Bug fixes**\n\n- Fix invalid request when attaching a file on non UUID record id (fixes #122)\n\n\n1.1.1 (2017-02-01)\n------------------\n\n**Bug fixes**\n\n- Fixes compatibility with Kinto 5.3 (fixes #120)\n\n\n1.1.0 (2016-12-16)\n------------------\n\n- Expose the gzipped settings value in the capability (#117)\n\n\n1.0.1 (2016-11-04)\n------------------\n\n**Bug fixes**\n\n- Make kinto-attachment compatible with both cornice 1.x and 2.x (#115)\n\n\n1.0.0 (2016-09-07)\n------------------\n\n**Breaking change**\n\n- Remove the ``base_url`` from the public settings because the\n accurate value is in the capability.\n\n**Protocol**\n\n- Add the plugin version in the capability.\n\n\n0.8.0 (2016-07-18)\n------------------\n\n**New features**\n\n- Prevent ``attachment`` attributes to be modified manually (fixes #83)\n\n**Bug fixes**\n\n- Fix crash when the file is not uploaded using ``attachment`` field name (fixes #57)\n- Fix crash when the multipart content-type is invalid.\n- Prevent crash when filename is not provided (fixes #81)\n- Update the call to the Record resource to use named attributes. (#97)\n- Show detailed error when data is not posted with multipart content-type.\n- Fix crash when submitted data is not valid JSON (fixes #104)\n\n**Internal changes**\n\n- Remove hard-coded CORS setup (fixes #59)\n\n\n0.7.0 (2016-06-10)\n------------------\n\n- Add the gzip option to automatically gzip files on upload (#85)\n- Run functional test on latest kinto release as well as kinto master (#86)\n\n\n0.6.0 (2016-05-19)\n------------------\n\n**Breaking changes**\n\n- Update to ``kinto.core`` for compatibility with Kinto 3.0. This\n release is no longer compatible with Kinto < 3.0, please upgrade!\n\n**New features**\n\n- Add a ``kinto.attachment.extra.base_url`` settings to be exposed publicly. (#73)\n\n\n0.5.1 (2016-04-14)\n------------------\n\n**Bug fixes**\n\n- Fix MANIFEST.in rules\n\n\n0.5.0 (2016-04-14)\n------------------\n\n**New features**\n\n- Add ability to disable filename randomization using a ``?randomize=false`` querystring (#62)\n- Add a ``--keep-filenames`` option in ``upload.py`` script to disable randomization (#63)\n\n**Bug fixes**\n\n- Fix a setting name for S3 bucket in README (#68)\n- Do nothing in heartbeat if server is readonly (fixes #69)\n\n**Internal changes**\n\n- Big refactor of views (#61)\n\n\n0.4.0 (2016-03-09)\n------------------\n\n**New features**\n\n- Previous files can be kept if the setting ``kinto.keep_old_files`` is set\n to ``true``. This can be useful when clients try to download files from a\n collection of records that is not up-to-date.\n- Add heartbeat entry for attachments backend (#41)\n\n**Bug fixes**\n\n- Now compatible with the default bucket (#42)\n- Now compatible with Python 3 (#44)\n\n**Internal changes**\n\n- Upload/Download scripts now use ``kinto.py`` (#38)\n\n\n0.3.0 (2016-02-05)\n------------------\n\n**New feature**\n\n- Expose the API capability ``attachments`` in the root URL (#35)\n\n**Internal changes**\n\n- Upgrade tests for Kinto 1.11.0 (#36)\n\n\n0.2.0 (2015-12-21)\n------------------\n\n**New feature**\n\n- Setting to store files into folders by bucket or collection (fixes #22)\n\n**Bug fixes**\n\n- Remove existing file when attachment is replaced (fixes #28)\n\n**Documentation**\n\n- The demo is now fully online, since the Mozilla demo server has this plugin\n installed.\n- Add some minimal information for production\n\n\n0.1.0 (2015-12-02)\n------------------\n\n* Initial working proof-of-concept.", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Kinto/kinto-attachment", "keywords": "kinto", "license": "Apache License (2.0)", "maintainer": "", "maintainer_email": "", "name": "kinto-attachment", "package_url": "https://pypi.org/project/kinto-attachment/", "platform": "", "project_url": "https://pypi.org/project/kinto-attachment/", "project_urls": { "Homepage": "https://github.com/Kinto/kinto-attachment" }, "release_url": "https://pypi.org/project/kinto-attachment/6.0.1/", "requires_dist": null, "requires_python": "", "summary": "Attach files to Kinto records", "version": "6.0.1" }, "last_serial": 4616432, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "16b5f02104c7db5808c95de35a79f205", "sha256": "48a1f68cd152f33ee1792ef7677ea087457fc19f8214f3faf0ddaea6713ac11b" }, "downloads": -1, "filename": "kinto-attachment-0.1.0.zip", "has_sig": false, "md5_digest": "16b5f02104c7db5808c95de35a79f205", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18065, "upload_time": "2015-12-02T14:35:43", "url": "https://files.pythonhosted.org/packages/e2/82/61bb7fbbd650f4e8f48a8be2a2ae1f6ea3f8ac518e68ba1c560294fcc7ec/kinto-attachment-0.1.0.zip" } ], "0.1.0.dev0": [], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2bd408d4da710ccd056d65fb98426ebb", "sha256": "48693b0872c3db9008583225df962ef015cffc5aa6b856731dd94841d8932f00" }, "downloads": -1, "filename": "kinto-attachment-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2bd408d4da710ccd056d65fb98426ebb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11669, "upload_time": "2015-12-21T15:13:26", "url": "https://files.pythonhosted.org/packages/d5/82/c8eb9ba3c1c9115a1b8931b26100a43fb25d118a6f4ddc2536a9c0817299/kinto-attachment-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "14aee2be8fb74abf207d20785d224e59", "sha256": "21d63280d7b555aa00b2e383c4dc909f9ee3098b4c8eae9e81277b9d263b13b5" }, "downloads": -1, "filename": "kinto_attachment-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "14aee2be8fb74abf207d20785d224e59", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 10829, "upload_time": "2016-02-05T16:24:39", "url": "https://files.pythonhosted.org/packages/be/29/b8b7653eeb71d175a93a0779290f788f2f261204abf9eb2664b64cfb2961/kinto_attachment-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f37fa49d77433fe2d556d26491939ef", "sha256": "daa71236657b90e5b3786bd842656300d9d485b781159bcecef8e163e6ef81b2" }, "downloads": -1, "filename": "kinto-attachment-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3f37fa49d77433fe2d556d26491939ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11491, "upload_time": "2016-02-05T16:24:55", "url": "https://files.pythonhosted.org/packages/4b/fa/903e4342aff8e3dd2afb8147e9b5d55c7a96521b4ab58bcce94191b2e3f1/kinto-attachment-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d1367a90f4e3fa2574bfa0a721985082", "sha256": "dfae80d4d54ca17a7fe4d636597f88ae3d730bec185bfa309396a0612f015b87" }, "downloads": -1, "filename": "kinto_attachment-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d1367a90f4e3fa2574bfa0a721985082", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12602, "upload_time": "2016-03-09T11:28:51", "url": "https://files.pythonhosted.org/packages/e1/c9/1dfc35e8193547e467c49c889aabc0442dbc087f3128fe6fbd038eabe605/kinto_attachment-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a88005e05431d2c25d635e1600935d1c", "sha256": "11f30753a0e8cfd5cad33007adc6740c9dad6d0eb662552ef81a11e10a190f53" }, "downloads": -1, "filename": "kinto-attachment-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a88005e05431d2c25d635e1600935d1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12761, "upload_time": "2016-03-09T11:28:57", "url": "https://files.pythonhosted.org/packages/95/a0/d35497dd987fce46a9770e2ff09a28ef35bdb5c03e3d3a18da4cad932269/kinto-attachment-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "0290d75717ab009294fe5177ec85a8e9", "sha256": "773dcfee3f8bce3889ae0f6d843f51ad5d1c125c0da1e501660f917b45580ae2" }, "downloads": -1, "filename": "kinto_attachment-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0290d75717ab009294fe5177ec85a8e9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12914, "upload_time": "2016-04-14T13:39:26", "url": "https://files.pythonhosted.org/packages/25/78/35638d5099984e3fc5c41474fae8e8ed562bd68c838f36b182188d4d5b75/kinto_attachment-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41fdb033981f62f73bdc576dcde41bdd", "sha256": "05a7e406faafbf1c7b4da7efba34a21d94131cecd7dc1a0dd7c994bdc0e01eb4" }, "downloads": -1, "filename": "kinto-attachment-0.5.0.tar.gz", "has_sig": false, "md5_digest": "41fdb033981f62f73bdc576dcde41bdd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14621, "upload_time": "2016-04-14T13:39:38", "url": "https://files.pythonhosted.org/packages/95/86/b23550297fcfbd41eb67326109f6a774ce10deb2aafabf7e6034f688b64e/kinto-attachment-0.5.0.tar.gz" } ], "0.5.0.dev0": [ { "comment_text": "", "digests": { "md5": "ed6b116d985424465e0b8154d8b89918", "sha256": "f12f4ac80c443fb6f8f010ab2f064d5735202cac06914337b782f3cda876ff3f" }, "downloads": -1, "filename": "kinto_attachment-0.5.0.dev0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ed6b116d985424465e0b8154d8b89918", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12991, "upload_time": "2016-04-14T13:37:30", "url": "https://files.pythonhosted.org/packages/6c/20/d07d946e49ee10cccc0ef4b04974d80db7b8a71a34437f8391b387d7dd7d/kinto_attachment-0.5.0.dev0-py2.py3-none-any.whl" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "9d6cbe387ba8b3ef8604981c4b1be176", "sha256": "158da79ca546bcd2fe3330ea511aa098a1b6b27b3674985da0e88ee735ec9e71" }, "downloads": -1, "filename": "kinto_attachment-0.5.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9d6cbe387ba8b3ef8604981c4b1be176", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21836, "upload_time": "2016-04-14T13:56:30", "url": "https://files.pythonhosted.org/packages/89/1e/05464092a826f945ef59b5ab40691adff4750da8c8fa39e100094573d72f/kinto_attachment-0.5.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c4b2702ce7207b4ccb17a7ab18ad7cbb", "sha256": "d63ee43f8d7842798fc87ad1b07c39a099167bf1f539630bbee1d26c004fa198" }, "downloads": -1, "filename": "kinto-attachment-0.5.1.tar.gz", "has_sig": false, "md5_digest": "c4b2702ce7207b4ccb17a7ab18ad7cbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23441, "upload_time": "2016-04-14T13:56:37", "url": "https://files.pythonhosted.org/packages/56/9e/7f9ab0590e829659f25b026798dc8928131bb3128341ac545381a1de6efd/kinto-attachment-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "89c124ce1cc4a72019947d981216d7db", "sha256": "397df2021e9d7f7b95c65b144cd03e18df896e2c55ee7b61c3b92d63c926e904" }, "downloads": -1, "filename": "kinto_attachment-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "89c124ce1cc4a72019947d981216d7db", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 21977, "upload_time": "2016-05-20T15:24:47", "url": "https://files.pythonhosted.org/packages/97/08/78e7c95ce9009770abf39bbf51825fcd1ad56f3bb1a8a9dfeb1c2fda0f0c/kinto_attachment-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "786f60c1246fa06a8d7d688ec6042417", "sha256": "97b837b0370f98c3244decd0558fbe824f38fad7d799589b3f4828d4adb08e43" }, "downloads": -1, "filename": "kinto-attachment-0.6.0.tar.gz", "has_sig": false, "md5_digest": "786f60c1246fa06a8d7d688ec6042417", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26718, "upload_time": "2016-05-20T15:24:55", "url": "https://files.pythonhosted.org/packages/43/e8/479385cc65d599912366cc8ebd1fd3858acbd3e398b602c768816ac030d6/kinto-attachment-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "bfe91be3cd2bf5962931e91f6eb9bbb5", "sha256": "3dedf64af28010dca76421aa9524f5e8c8755bd2b1c9c6279674c73acf59ef3d" }, "downloads": -1, "filename": "kinto_attachment-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bfe91be3cd2bf5962931e91f6eb9bbb5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25659, "upload_time": "2016-06-10T10:27:12", "url": "https://files.pythonhosted.org/packages/88/96/a4a88cc5d53968bd81b064d77d213f96c20bd2dcaf6069543cd7fc968725/kinto_attachment-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c467ff778e1c0e186b3c6a29246bf9de", "sha256": "a17662aad6c050d48f9351ec2e5c9b71822cdd088e030358a30fbbcca3401a7d" }, "downloads": -1, "filename": "kinto-attachment-0.7.0.tar.gz", "has_sig": false, "md5_digest": "c467ff778e1c0e186b3c6a29246bf9de", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28534, "upload_time": "2016-06-10T10:27:22", "url": "https://files.pythonhosted.org/packages/c7/47/8e454e1f39443babf79bb27de5ecaaa5051d5432cf18ba3a345068ffbd1a/kinto-attachment-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "b1006e1601528cc73e7b90892ab5f187", "sha256": "87beb98e4bad81ff803e98b6c34b453bed6269aca96a4b5e01b8733418e743c6" }, "downloads": -1, "filename": "kinto_attachment-0.7.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b1006e1601528cc73e7b90892ab5f187", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25736, "upload_time": "2016-07-13T16:15:23", "url": "https://files.pythonhosted.org/packages/c0/aa/b88cac138fd58a5f42f2b5a3e287f1555c7748c1e9b6c6d24001137a4383/kinto_attachment-0.7.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3837b1d34e9794646f02bdc69134889c", "sha256": "13e62ac204a0dccaded28670f21a83a30ba8266be983099c81a7aa993377dd3f" }, "downloads": -1, "filename": "kinto-attachment-0.7.1.tar.gz", "has_sig": false, "md5_digest": "3837b1d34e9794646f02bdc69134889c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28605, "upload_time": "2016-07-13T16:15:26", "url": "https://files.pythonhosted.org/packages/e6/de/0c67a3f0b8d784bb4229caf69236e85d18b23eab479742dc9b8e6b1189d8/kinto-attachment-0.7.1.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "3d31946f28691afa7b76a310d6074631", "sha256": "8120e8bc2aa2f40e5e7e5c4a23c317ed4e785a94d2160baa4bd8e3becebeda6a" }, "downloads": -1, "filename": "kinto-attachment-0.8.0.zip", "has_sig": false, "md5_digest": "3d31946f28691afa7b76a310d6074631", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47418, "upload_time": "2016-07-18T13:33:22", "url": "https://files.pythonhosted.org/packages/3f/48/dbd86d9a8da7e8b4bbdd6ed010d91e935142fbd04f9c84717b4bdc6c796e/kinto-attachment-0.8.0.zip" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "4359f929505a5424311bda181e83c344", "sha256": "021f9b06d1b6de37619be1525e038685d4692ef02d354b055f5982c3dcb78d21" }, "downloads": -1, "filename": "kinto_attachment-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4359f929505a5424311bda181e83c344", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27498, "upload_time": "2016-09-07T14:52:18", "url": "https://files.pythonhosted.org/packages/7d/81/02797339d3a6f46c8bb219ab32fd423713d50bbb2776df4f53513f1c7da1/kinto_attachment-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46c511004778280b9693fea48c2d30f0", "sha256": "6fff39dc04e55c916685b0e9cc9b71c8e37be5df34cc2d5b62dcfaa113820e40" }, "downloads": -1, "filename": "kinto-attachment-1.0.0.tar.gz", "has_sig": false, "md5_digest": "46c511004778280b9693fea48c2d30f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30372, "upload_time": "2016-09-07T14:52:20", "url": "https://files.pythonhosted.org/packages/28/55/a07dc520b433f1df5cfb505475741f9134785ea5e9a7910202da6e346e1d/kinto-attachment-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "e47267e76359c9691a764c659f6b0dd8", "sha256": "27d8b92892a4099f7d43d849aef7b4ee68e8108aa9bbace075b4696f57ee1738" }, "downloads": -1, "filename": "kinto_attachment-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e47267e76359c9691a764c659f6b0dd8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27665, "upload_time": "2016-11-04T14:46:52", "url": "https://files.pythonhosted.org/packages/a4/aa/d517b0b2c5e478a351c7ec9541ebf6b30357718921c2bd9ea8985061c25b/kinto_attachment-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6aceab2500da5efdf986bd3c93e70664", "sha256": "086c949c057a80111cb5e437d53824d1450b6ac0e8aa42fb1bbd32db1c26ef61" }, "downloads": -1, "filename": "kinto-attachment-1.0.1.tar.gz", "has_sig": false, "md5_digest": "6aceab2500da5efdf986bd3c93e70664", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30515, "upload_time": "2016-11-04T14:46:54", "url": "https://files.pythonhosted.org/packages/76/4d/a009b9296fe9421373f209840a93d459159621c0f663dd399492ad5a7acf/kinto-attachment-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5893cfbaa52ff9ee502dcd8f94053a30", "sha256": "6add92fc5d05839a5c91863df12acb7e2ce9b971efe9d74554502b0749c2a20f" }, "downloads": -1, "filename": "kinto_attachment-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5893cfbaa52ff9ee502dcd8f94053a30", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27820, "upload_time": "2016-12-16T10:04:37", "url": "https://files.pythonhosted.org/packages/e2/23/3e8b2c6fce7d23ad7e159e6415aa5dda786be8cca9ec5e0141a5ca344c4b/kinto_attachment-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06c30c386dc8a1ecf6db642b4fc65c1e", "sha256": "a3b671705e63184b3aa962816aea417f9c7034e814e7fd921e0612e422fbf4a2" }, "downloads": -1, "filename": "kinto-attachment-1.1.0.tar.gz", "has_sig": false, "md5_digest": "06c30c386dc8a1ecf6db642b4fc65c1e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30648, "upload_time": "2016-12-16T10:04:39", "url": "https://files.pythonhosted.org/packages/bf/93/6218797cad419b4d8a28e410e674a0527d24bc19ba2fa4cef1ba79a48378/kinto-attachment-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "988b92c91c61c5c231c040d1e85a552b", "sha256": "78022ec8ec467001806f48f01129df7b804f3d4f66cb0dbd875c9618545b11ab" }, "downloads": -1, "filename": "kinto_attachment-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "988b92c91c61c5c231c040d1e85a552b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27708, "upload_time": "2017-02-01T09:48:46", "url": "https://files.pythonhosted.org/packages/05/2d/9927bc4d3c99d147cb97142cb15cc7c6761bfdc7e3c577091fa26d1a0b36/kinto_attachment-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1a0f9dfbb04a8184654f1610bc9503ae", "sha256": "d687a2ea641625d046787ad1f3fead73226d9c63cbad1fb418a211f06e42214f" }, "downloads": -1, "filename": "kinto-attachment-1.1.1.tar.gz", "has_sig": false, "md5_digest": "1a0f9dfbb04a8184654f1610bc9503ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35195, "upload_time": "2017-02-01T09:48:45", "url": "https://files.pythonhosted.org/packages/1e/d7/e27ca87e7514310eff24c000df513a30513c8a6e92e0dca82ccfb4a9fa40/kinto-attachment-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "ab33ab1609fde0de7328f986a17b79b9", "sha256": "9dcd8431e577a199c48f8018ce1f242464d40dca4b5805861469d2267ed5b1cf" }, "downloads": -1, "filename": "kinto_attachment-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ab33ab1609fde0de7328f986a17b79b9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27816, "upload_time": "2017-02-01T10:35:31", "url": "https://files.pythonhosted.org/packages/2e/26/fd83b9d9d8c03d8bdea9f4419042437255ec1b676aa1662e06291a272533/kinto_attachment-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "704b6695f2d058e3d0111e694067720e", "sha256": "6c9f0a50549e08f7c5be056f153f48d1410cb91e8c460dc802e2204a0f8a589c" }, "downloads": -1, "filename": "kinto-attachment-1.1.2.tar.gz", "has_sig": false, "md5_digest": "704b6695f2d058e3d0111e694067720e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35353, "upload_time": "2017-02-01T10:35:29", "url": "https://files.pythonhosted.org/packages/2b/9e/06883d5a1a3c574b41837c0b954ceeef4c351e76315dd5b2356fbfeed4aa/kinto-attachment-1.1.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "6475dc0ea3147cfc8ab4155e96dc19f9", "sha256": "615331356c83e17de3c72823da6fc88633cb06186e397276ae7365d233785648" }, "downloads": -1, "filename": "kinto_attachment-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6475dc0ea3147cfc8ab4155e96dc19f9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27847, "upload_time": "2017-03-03T23:09:54", "url": "https://files.pythonhosted.org/packages/16/48/3e904749fffe25c600410c2207be138ac8ead7758cc901ca2f7cb04f8d3f/kinto_attachment-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "30b2031fa67981be31c570c254ef450b", "sha256": "ddaaf3e0d6bdb23d75173c9ecfb946405a21b5ea541735b63899d639e0b34f8c" }, "downloads": -1, "filename": "kinto-attachment-2.0.0.tar.gz", "has_sig": false, "md5_digest": "30b2031fa67981be31c570c254ef450b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33567, "upload_time": "2017-03-03T23:09:56", "url": "https://files.pythonhosted.org/packages/08/64/1744cb0b4b2d3956c9cb0f9d7e1e49a4c915caa4fbfc3d44f58d6f5c21d9/kinto-attachment-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "296f4f25d5d860b100992707ba7ff5c3", "sha256": "4935db1cbbaa192b74822f6b74141f016892a2fe14205bede3cd831fa2aeea95" }, "downloads": -1, "filename": "kinto_attachment-2.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "296f4f25d5d860b100992707ba7ff5c3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27928, "upload_time": "2017-04-06T14:06:13", "url": "https://files.pythonhosted.org/packages/a9/91/f532f8f0303592343e2e0a751890031d9d6c3c1ea2db8ab2b4dc85b88870/kinto_attachment-2.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72cd951632d98f09c8989cdf9045db44", "sha256": "a8c1ac5041f556a342c9fabd4d6c2e6d2ddfbe4c136501687ed27dfdb7e1e618" }, "downloads": -1, "filename": "kinto-attachment-2.0.1.tar.gz", "has_sig": false, "md5_digest": "72cd951632d98f09c8989cdf9045db44", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 33796, "upload_time": "2017-04-06T14:06:18", "url": "https://files.pythonhosted.org/packages/cd/0b/288248f93bea6a60ad5c63fe033a5dd53893a3a3d3200f41d830a92aed06/kinto-attachment-2.0.1.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "f7020a8e28e4d676a68336d90261ece2", "sha256": "2ebe15e451b975d45153e203903cbfdf248f01d9a821f20ca8fc4b1419bfa441" }, "downloads": -1, "filename": "kinto_attachment-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f7020a8e28e4d676a68336d90261ece2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31244, "upload_time": "2017-12-06T13:49:53", "url": "https://files.pythonhosted.org/packages/f8/98/821e343404e55ea2fd269fd7f07df3db9610f2058902fa7e88b11cd7afc8/kinto_attachment-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2fa694ae28e7dd989e1dfc0a98383292", "sha256": "e2cb9d8abde2a0b5b90470d8078342df8935f4a7f6406c6a1f0d67e1901006ae" }, "downloads": -1, "filename": "kinto-attachment-2.1.0.tar.gz", "has_sig": false, "md5_digest": "2fa694ae28e7dd989e1dfc0a98383292", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37299, "upload_time": "2017-12-06T13:49:51", "url": "https://files.pythonhosted.org/packages/2d/d2/809f8a8909a666007a5dce0e7ea5acc0971ad622b0da5f4d269feddb8691/kinto-attachment-2.1.0.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "6fb93a4b26a4e5773646ee85553d9e5e", "sha256": "ebf0780515a202f41aab971f3a65c214a49c95ad356ff3a908342a4a8eacd937" }, "downloads": -1, "filename": "kinto_attachment-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fb93a4b26a4e5773646ee85553d9e5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31413, "upload_time": "2018-04-11T08:16:03", "url": "https://files.pythonhosted.org/packages/9b/54/db40c2963f6a1e27f6e5e7d54949720fa88e55068787abcf4d92060037d8/kinto_attachment-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6cefaf2524e72f95d1d51ef5b8f823b", "sha256": "ba8161c96c4ec6156828ecdf4ed3e5aedd1b660c8272a204097399e5b3323327" }, "downloads": -1, "filename": "kinto-attachment-3.0.0.tar.gz", "has_sig": false, "md5_digest": "a6cefaf2524e72f95d1d51ef5b8f823b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37126, "upload_time": "2018-04-11T08:16:01", "url": "https://files.pythonhosted.org/packages/6b/f6/0f8ee2e72400adac6a001cff4b2e524046e7a2d31d55b6867e583e783cb4/kinto-attachment-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "655ebed7f3b0cafc08bedc317202f884", "sha256": "5948405c17db2679fca78a34c64594b59bf86c18550a11412ac927720a9f362e" }, "downloads": -1, "filename": "kinto_attachment-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "655ebed7f3b0cafc08bedc317202f884", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 31617, "upload_time": "2018-07-05T08:46:13", "url": "https://files.pythonhosted.org/packages/92/a2/0e6c889209d7a931193397f3767788aabb27f7733ea0cc923986298ab24b/kinto_attachment-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0731c10e7db1188d139688ae9dd5a9a7", "sha256": "2e9b5965ffab064f5357225661b265bd71bcec3a86f1ca919e931cfc82b09e42" }, "downloads": -1, "filename": "kinto-attachment-3.0.1.tar.gz", "has_sig": false, "md5_digest": "0731c10e7db1188d139688ae9dd5a9a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37296, "upload_time": "2018-07-05T08:46:15", "url": "https://files.pythonhosted.org/packages/31/e3/6b938f604a3c14e356ee0f9010dbd9294aedd5f790597aa8bfb8a9815aeb/kinto-attachment-3.0.1.tar.gz" } ], "4.0.0": [ { "comment_text": "", "digests": { "md5": "6c45394370312b45b49bad9de1b3eaaf", "sha256": "3e2f1f32dc2bf1bcb2e8f28c36249a49a70a41b4e216b5c9e30ac046d1697d14" }, "downloads": -1, "filename": "kinto_attachment-4.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6c45394370312b45b49bad9de1b3eaaf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30720, "upload_time": "2018-07-24T14:55:35", "url": "https://files.pythonhosted.org/packages/db/2e/52f6fc8e15bbda369fdc5f679716461644f405243e5285bbb806b5484acc/kinto_attachment-4.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ae0bf6512783e66c7436b31709234148", "sha256": "80fb4b932e092a34c867e9b52a45725830282d6bebe0b9e5eb388fccc673081e" }, "downloads": -1, "filename": "kinto-attachment-4.0.0.tar.gz", "has_sig": false, "md5_digest": "ae0bf6512783e66c7436b31709234148", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36604, "upload_time": "2018-07-24T14:55:33", "url": "https://files.pythonhosted.org/packages/f3/45/7640351cefd5c5f0487ee6eaa80f3af2a7465085a841aa55ea311554a56a/kinto-attachment-4.0.0.tar.gz" } ], "5.0.0": [ { "comment_text": "", "digests": { "md5": "773306b32dcc355b6f38d51f2c943eb3", "sha256": "4444e3c225d30cecdd5abd59afc9cc3b2412045b8b515a73e5b81a89638f3243" }, "downloads": -1, "filename": "kinto_attachment-5.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "773306b32dcc355b6f38d51f2c943eb3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24104, "upload_time": "2018-07-31T21:16:08", "url": "https://files.pythonhosted.org/packages/8d/71/1988e312799addf75027338f713c843b74e2f3b85767727302955de1cfe6/kinto_attachment-5.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "970ca593459e82ff4664d92384421841", "sha256": "c54fd4d8a40498218c7b78f61fc5ce3eedead00a441af58fc12a12644e64410c" }, "downloads": -1, "filename": "kinto-attachment-5.0.0.tar.gz", "has_sig": false, "md5_digest": "970ca593459e82ff4664d92384421841", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36442, "upload_time": "2018-07-31T21:16:06", "url": "https://files.pythonhosted.org/packages/c0/7b/dc1f7c8fba4f0bcb5b51ac3ff52af1d0501a4b7bce45ebbf6b8bd2da0c1c/kinto-attachment-5.0.0.tar.gz" } ], "6.0.0": [ { "comment_text": "", "digests": { "md5": "f3358bb0fca5c0d2a2e7854edc6fff9b", "sha256": "fd54e979d3747be638f59de44a7f6523bed56d81961a438462b1346f49be5fe4" }, "downloads": -1, "filename": "kinto_attachment-6.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f3358bb0fca5c0d2a2e7854edc6fff9b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30622, "upload_time": "2018-10-02T19:31:48", "url": "https://files.pythonhosted.org/packages/f9/de/78eff7f141e11b213f63f09939334f30a0353412bb046d33b069006f9125/kinto_attachment-6.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8c5ade6e549e0860ae91da67fc5e06f8", "sha256": "12ce5c2ef718e7e31cef2e2a3bde771d9216f2cb014efba963e69cb709bcbbd1" }, "downloads": -1, "filename": "kinto-attachment-6.0.0.tar.gz", "has_sig": false, "md5_digest": "8c5ade6e549e0860ae91da67fc5e06f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36502, "upload_time": "2018-10-02T19:31:46", "url": "https://files.pythonhosted.org/packages/d0/c0/1ed0d31cff4c63dac6f3f284b0c7cf0c2980bf75b047da6f1a89d0b0e432/kinto-attachment-6.0.0.tar.gz" } ], "6.0.1": [ { "comment_text": "", "digests": { "md5": "1616deed0ffcc61da07d4a4b2412429c", "sha256": "083cb556ec90a68e091a0652ea58a82546fd6a4baa5c85611258b80537b1a4a5" }, "downloads": -1, "filename": "kinto_attachment-6.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1616deed0ffcc61da07d4a4b2412429c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30801, "upload_time": "2018-12-19T12:26:03", "url": "https://files.pythonhosted.org/packages/cd/8c/aa9d63063232948e7b5e0c19fb226cbd00855fdde0a8f04bcc8ef2a27b68/kinto_attachment-6.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d93a60f2298c23e9b277787ea58854e0", "sha256": "696f70b6210ce12805a40765fb1eaf8758e1dc73a0ed15d72edc45b07c552362" }, "downloads": -1, "filename": "kinto-attachment-6.0.1.tar.gz", "has_sig": false, "md5_digest": "d93a60f2298c23e9b277787ea58854e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36745, "upload_time": "2018-12-19T12:26:01", "url": "https://files.pythonhosted.org/packages/40/35/5687a772a5a199c5cbbc8db58edaaa13ec3ef1781c35cd80b7794052b025/kinto-attachment-6.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1616deed0ffcc61da07d4a4b2412429c", "sha256": "083cb556ec90a68e091a0652ea58a82546fd6a4baa5c85611258b80537b1a4a5" }, "downloads": -1, "filename": "kinto_attachment-6.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1616deed0ffcc61da07d4a4b2412429c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 30801, "upload_time": "2018-12-19T12:26:03", "url": "https://files.pythonhosted.org/packages/cd/8c/aa9d63063232948e7b5e0c19fb226cbd00855fdde0a8f04bcc8ef2a27b68/kinto_attachment-6.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d93a60f2298c23e9b277787ea58854e0", "sha256": "696f70b6210ce12805a40765fb1eaf8758e1dc73a0ed15d72edc45b07c552362" }, "downloads": -1, "filename": "kinto-attachment-6.0.1.tar.gz", "has_sig": false, "md5_digest": "d93a60f2298c23e9b277787ea58854e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36745, "upload_time": "2018-12-19T12:26:01", "url": "https://files.pythonhosted.org/packages/40/35/5687a772a5a199c5cbbc8db58edaaa13ec3ef1781c35cd80b7794052b025/kinto-attachment-6.0.1.tar.gz" } ] }