{ "info": { "author": "Counsyl Inc.", "author_email": "opensource@counsyl.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "stor\n====\n\n|Build Status|\n\n``stor`` provides a cross-compatible CLI and Python API for accessing\nblock and object storage. ``stor`` was created so you could write one\npiece of code to work with local or remote files, without needing to\nwrite specialized code to handle failure modes, retrying or temporarily\nsystem unavailability. The functional API (i.e., ``stor.copytree``,\n``stor.rmtree``, ``stor.remove``, ``stor.listdir``) will work with the\nsame semantics across all storage backends. This makes it really easy to\ndevelop/test code locally with files and then take advantage of robust\nand cheaper object storage when you push to remote.\n\nView full docs for stor at https://counsyl.github.io/stor/ .\n\nQuickstart\n----------\n\n::\n\n pip install stor\n\n``stor`` provides both a CLI and a Python library for manipulating Posix\nand OBS with a single, cross-compatible API.\n\nQuickstart - CLI\n----------------\n\n::\n\n usage: stor [-h] [-c CONFIG_FILE] [--version]\n {list,ls,cp,rm,walkfiles,cat,cd,pwd,clear,url,convert-swiftstack}\n ...\n\n A command line interface for stor.\n\n positional arguments:\n {list,ls,cp,rm,walkfiles,cat,cd,pwd,clear,url,convert-swiftstack}\n list List contents using the path as a prefix.\n ls List path as a directory.\n cp Copy a source to a destination path.\n rm Remove file at a path.\n walkfiles List all files under a path that match an optional\n pattern.\n cat Output file contents to stdout.\n cd Change directory to a given OBS path.\n pwd Get the present working directory of a service or all\n current directories.\n clear Clear current directories of a specified service.\n url generate URI for path\n convert-swiftstack convert swiftstack paths\n\n optional arguments:\n -h, --help show this help message and exit\n -c CONFIG_FILE, --config CONFIG_FILE\n File containing configuration settings.\n --version Print version\n\nYou can ``ls`` local and remote directories\n\n::\n\n \u203a\u203a stor ls s3://stor-test-bucket\n s3://stor-test-bucket/b.txt\n s3://stor-test-bucket/counsyl-storage-utils\n s3://stor-test-bucket/file_test.txt\n s3://stor-test-bucket/counsyl-storage-utils/\n s3://stor-test-bucket/empty/\n s3://stor-test-bucket/lots_of_files/\n s3://stor-test-bucket/small_test/\n\nCopy files locally or remotely or upload from stdin\n\n::\n\n \u203a\u203a echo \"HELLO WORLD\" | stor cp - swift://AUTH_stor_test/hello_world.txt\n starting upload of 1 objects\n upload complete - 1/1 0:00:00 0.00 MB 0.00 MB/s\n \u203a\u203a stor cat swift://AUTH_stor_test/hello_world.txt\n HELLO WORLD\n \u203a\u203a stor cp swift://AUTH_stor_test/hello_world.txt hello_world.txt\n \u203a\u203a stor cat hello_world.txt\n HELLO WORLD\n\nQuickstart - Python\n-------------------\n\nList files in a directory, taking advantage of delimiters\n\n.. code:: python\n\n >>> stor.listdir('s3://bestbucket')\n [S3Path('s3://bestbucket/a/')\n S3Path('s3://bestbucket/b/')]\n\nList all objects in a bucket\n\n.. code:: python\n\n >>> stor.list('s3://bestbucket')\n [S3Path('s3://bestbucket/a/1.txt')\n S3Path('s3://bestbucket/a/2.txt')\n S3Path('s3://bestbucket/a/3.txt')\n S3Path('s3://bestbucket/b/1.txt')]\n\nOr in a local path\n\n.. code:: python\n\n >>> stor.list('stor')\n [PosixPath('stor/__init__.py'),\n PosixPath('stor/exceptions.pyc'),\n PosixPath('stor/tests/test_s3.py'),\n PosixPath('stor/tests/test_swift.py'),\n PosixPath('stor/tests/test_integration_swift.py'),\n PosixPath('stor/tests/test_utils.py'),\n PosixPath('stor/posix.pyc'),\n PosixPath('stor/base.py'),\n\nRead and write files from POSIX or OBS, using python file objects.\n\n.. code:: python\n\n import stor\n with stor.open('/my/exciting.json') as fp:\n data1 = json.load(fp)\n\n data1['read'] = True\n\n with stor.open('s3://bestbucket/exciting.json') as fp:\n json.dump(data1, fp)\n\nTesting code that uses stor\n---------------------------\n\nThe key design consideration of ``stor`` is that your code should be\nable to transparently use POSIX or any object storage system to read and\nupdate files. So, rather than use mocks, we suggest that you structure\nyour test code to point to local filesystem paths and restrict yourself\nto the functional API. E.g., in your prod settings, you could set\n``DATADIR = 's3://bestbucketever'``\\ and when you test, you could use\n``DATADIR = '/somewhat/cool/path/to/test/data'``, while your actual code\njust says:\n\n.. code:: python\n\n with stor.open(stor.join(DATADIR, experiment)) as fp:\n data = json.load(fp)\n\nEasy! and no mocks required!\n\nRunning the Tests\n-----------------\n\n::\n\n make test\n\nContributing and Semantic Versioning\n------------------------------------\n\nWe use semantic versioning to communicate when we make API changes to\nthe library. See CONTRIBUTING.md for more details on contributing to\nstor.\n\n.. |Build Status| image:: https://travis-ci.org/counsyl/stor.svg?branch=master\n :target: https://travis-ci.org/counsyl/stor\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/counsyl/stor", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "stor", "package_url": "https://pypi.org/project/stor/", "platform": "", "project_url": "https://pypi.org/project/stor/", "project_urls": { "Homepage": "https://github.com/counsyl/stor" }, "release_url": "https://pypi.org/project/stor/3.1.0/", "requires_dist": null, "requires_python": "", "summary": "Cross-compatible API for accessing Posix and OBS storage systems", "version": "3.1.0" }, "last_serial": 5668268, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "80e6e66f91a1c212f64a28c900d300e7", "sha256": "8d615b820c6f46a299e81f42b2e1d789a05ca2d6fca2a1498ef423466283bbda" }, "downloads": -1, "filename": "stor-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "80e6e66f91a1c212f64a28c900d300e7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 96831, "upload_time": "2016-08-19T03:34:52", "url": "https://files.pythonhosted.org/packages/16/25/4c0f073ee06b11d3255c1d629139a14b5d81bac4541adc59f99c9c760fc1/stor-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d1861282df2bb17cc15aa7f9dd1022cc", "sha256": "44e7ce1e4ae95d87e68208ba946d6e600bc79f13901a43f1a9cadd71d1ce2c5a" }, "downloads": -1, "filename": "stor-1.0.tar.gz", "has_sig": false, "md5_digest": "d1861282df2bb17cc15aa7f9dd1022cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57722, "upload_time": "2016-08-19T03:31:52", "url": "https://files.pythonhosted.org/packages/f1/a7/5f30d7c16420535972642e453ae5d667d9182a3d71b1300feae8e097961d/stor-1.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4b5d887a074fc8a5457f7c381b509e79", "sha256": "0c13ae1ed54c9ebca16303044d421c562fbf36207a1b8f93c2785e9afdd05cdc" }, "downloads": -1, "filename": "stor-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "4b5d887a074fc8a5457f7c381b509e79", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 99707, "upload_time": "2016-08-19T22:44:39", "url": "https://files.pythonhosted.org/packages/0a/a4/c9d8bd28e7ed2ed28b00b5e2e9b56eb4e5736c8d5d24d2322058e4e60328/stor-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "16986e3efc9ba7cc91a4eccaf7dec914", "sha256": "3f0fa9be97640298ea2e541ddc3a523dd68dd11b62b596b55ba84ce25549db30" }, "downloads": -1, "filename": "stor-1.1.0.tar.gz", "has_sig": false, "md5_digest": "16986e3efc9ba7cc91a4eccaf7dec914", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 61678, "upload_time": "2016-08-19T22:44:37", "url": "https://files.pythonhosted.org/packages/c2/a6/0a0696fc169a2103c3cc33f971b1efb406189aeb4b478d988c85bd7dc69f/stor-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "e7dcfb0534131fc1afa95e18425606f6", "sha256": "4ccc2f2755b7966fc77ab4238477e178036d041c10ddbf37f278e95897b70af8" }, "downloads": -1, "filename": "stor-1.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "e7dcfb0534131fc1afa95e18425606f6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 100105, "upload_time": "2016-08-21T00:35:15", "url": "https://files.pythonhosted.org/packages/44/e4/e1b0a214e88cf62f10bc24a62fa57b9afd55131718c6d4fffb8889f41a31/stor-1.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f35b87a76ca2facab7a47a0aba35d61f", "sha256": "008f27e5afa08fed9b345a7c39ff551947fbdf12002789d23478a0b075d3d2f9" }, "downloads": -1, "filename": "stor-1.1.1.tar.gz", "has_sig": false, "md5_digest": "f35b87a76ca2facab7a47a0aba35d61f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62005, "upload_time": "2016-08-21T00:35:12", "url": "https://files.pythonhosted.org/packages/56/67/ab4e2811d75e43fa6fc18992b0e6ccdda72187c5bba76d5c9128d68c3f48/stor-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "built for Darwin-14.5.0", "digests": { "md5": "73f33c984479f2ca04b9ea73c970fbc5", "sha256": "b5e6074c3a2a19f5a8e714778bec1efffc2316b1b1bbee0058fb466924a1eb24" }, "downloads": -1, "filename": "stor-1.1.2.macosx-10.10-x86_64.tar.gz", "has_sig": false, "md5_digest": "73f33c984479f2ca04b9ea73c970fbc5", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 203394, "upload_time": "2016-10-13T18:05:29", "url": "https://files.pythonhosted.org/packages/50/a0/e71723c80a5acf01585c0d451cde8c3e8f360c0f1ee9d1620a1687d24b23/stor-1.1.2.macosx-10.10-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "dc4ea44dfec08affdd3b6dd513acd2f5", "sha256": "d209636efd97b92b1deeed4728518da48414bf29a7db300bb9ada0e691fccb4e" }, "downloads": -1, "filename": "stor-1.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "dc4ea44dfec08affdd3b6dd513acd2f5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 101000, "upload_time": "2016-10-13T18:05:32", "url": "https://files.pythonhosted.org/packages/3e/96/a2379b6a91f4feb27744ea0189211a827848c38f532552b156743e95cf8a/stor-1.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dd2b20ee7edba80f8ad7427841673ffe", "sha256": "38846ea5f16cf4a68364baf3a6a6fd1109cd09509f0231cdeb5111d3c175088d" }, "downloads": -1, "filename": "stor-1.1.2.tar.gz", "has_sig": false, "md5_digest": "dd2b20ee7edba80f8ad7427841673ffe", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62506, "upload_time": "2016-10-13T18:05:27", "url": "https://files.pythonhosted.org/packages/c0/00/29b922c7c73b5b9b913b951ad2348bd60079308ad0cb75c29a8d926b0597/stor-1.1.2.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "0932cf444d9c62838b60d2b8343818f7", "sha256": "5ce82f9b6c31f99f841fdd9aa2153239c43da72fe5a97139981fbd4557f521e9" }, "downloads": -1, "filename": "stor-1.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0932cf444d9c62838b60d2b8343818f7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 101145, "upload_time": "2016-10-20T03:03:24", "url": "https://files.pythonhosted.org/packages/e2/ef/1a2671852803b750eabf7a963250f88bef651efed5ff6186cd68c7ddf890/stor-1.2.0-py2-none-any.whl" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "c11e79d6b86d63ffdfe0572042bbc18c", "sha256": "6e953233a116d0e81ec9a0b297098ab6a594d884b8ca16cfd651b410604b6d30" }, "downloads": -1, "filename": "stor-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "c11e79d6b86d63ffdfe0572042bbc18c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 101152, "upload_time": "2016-10-20T21:16:08", "url": "https://files.pythonhosted.org/packages/7f/cb/158cad68f1b3d7bcc19e8a12a63b719d18c74f3d6ab66e9cd080973be7ed/stor-1.2.1-py2-none-any.whl" } ], "1.2.2": [ { "comment_text": "", "digests": { "md5": "220eff05bc6e94d144bc32a52eae9d7a", "sha256": "d38bc31403754296aff9784f1bce549e170f8256db5580fb4165e4ece881873a" }, "downloads": -1, "filename": "stor-1.2.2-py2-none-any.whl", "has_sig": false, "md5_digest": "220eff05bc6e94d144bc32a52eae9d7a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 101446, "upload_time": "2017-01-20T21:02:22", "url": "https://files.pythonhosted.org/packages/a0/5d/5a0f2e8c0d8b3a0735bc6dc332863cff891e3f3ffe00b0f48a3b0cc916b4/stor-1.2.2-py2-none-any.whl" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "f41bedee6df58909ca5305182793310c", "sha256": "50179261a5b335fcf55b35d44016cff01206732411995648610984177f21161c" }, "downloads": -1, "filename": "stor-1.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "f41bedee6df58909ca5305182793310c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 101661, "upload_time": "2017-02-09T21:40:53", "url": "https://files.pythonhosted.org/packages/1f/00/e5a8044470393d5823c40c589425cd1f834f8135625bca5711accb78dd5e/stor-1.3.0-py2-none-any.whl" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "5d82d0374a7e8af33db7fd1c93f3a505", "sha256": "a626b77f3b7309aeb7a87638b606180efccce4b3826f4f5251e1c17599607c2c" }, "downloads": -1, "filename": "stor-1.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "5d82d0374a7e8af33db7fd1c93f3a505", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 101772, "upload_time": "2017-03-22T18:52:39", "url": "https://files.pythonhosted.org/packages/72/59/7748c51133c125df46996eea8c8df7ba1b6509fc9e2b72841ea9df16050a/stor-1.3.1-py2-none-any.whl" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "014620a438edc9def4539d466e78a6dc", "sha256": "e7e4287a24a138bd018e04562490efbcedf98e77118ffd72ae3a0975cab74f4a" }, "downloads": -1, "filename": "stor-1.3.2-py2-none-any.whl", "has_sig": false, "md5_digest": "014620a438edc9def4539d466e78a6dc", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 102174, "upload_time": "2017-04-03T23:06:43", "url": "https://files.pythonhosted.org/packages/e9/a5/b0b4cf8a41b437536371372a125d4f033af641ea3b497a4dc3e43c803930/stor-1.3.2-py2-none-any.whl" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "94844ac70e50fed849b009e53f7db102", "sha256": "f84d80525307b78b26aafdf33d7d8fe4e9adc67761bf861d5b653f40d6352275" }, "downloads": -1, "filename": "stor-1.3.3-py2-none-any.whl", "has_sig": false, "md5_digest": "94844ac70e50fed849b009e53f7db102", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 102171, "upload_time": "2017-04-03T23:08:42", "url": "https://files.pythonhosted.org/packages/85/56/2d52b2fca3d638ec7096d2625ee5e1e1b5d1d020444cff06fdf367bdf283/stor-1.3.3-py2-none-any.whl" } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "310eedb6c42309ac5bfb930815d94eb7", "sha256": "69bd9bf84bc2a787f12e3388801a975e099eff17d982f0aab938b3430b1b94b6" }, "downloads": -1, "filename": "stor-1.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "310eedb6c42309ac5bfb930815d94eb7", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 102338, "upload_time": "2017-05-04T22:51:38", "url": "https://files.pythonhosted.org/packages/2d/e4/37bee555101c52ac1b0dd400851a8c7721d52917b90411d438f4b82422f8/stor-1.4.0-py2-none-any.whl" } ], "1.4.1": [ { "comment_text": "", "digests": { "md5": "95c058d31ce152f2bff8b418e6aaa6f6", "sha256": "47e011a534719f98fdb09e300d7696cd8b590ed145ff9ae111766f36d2245b08" }, "downloads": -1, "filename": "stor-1.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "95c058d31ce152f2bff8b418e6aaa6f6", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 102342, "upload_time": "2017-05-15T20:30:42", "url": "https://files.pythonhosted.org/packages/65/ba/078f10803d9090858014085a11a1c2539fd4acf9a91be0fe1e03fb1b45e1/stor-1.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4b17aeace99b4c8413f03fd5563e429b", "sha256": "24655509c5afc166848be0ed009ebd378193b989df3b94443249cf7fe3baca83" }, "downloads": -1, "filename": "stor-1.4.1.tar.gz", "has_sig": false, "md5_digest": "4b17aeace99b4c8413f03fd5563e429b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62608, "upload_time": "2017-05-15T20:30:47", "url": "https://files.pythonhosted.org/packages/f7/66/1648ad50c5464bdabb047fe4bb07b4d8504b810394973065d88e5ee6c967/stor-1.4.1.tar.gz" } ], "1.4.2": [ { "comment_text": "", "digests": { "md5": "fab4ae825daa103b56db8c9c0ab4868d", "sha256": "c5f282a50241285409eecefb1e0076bba2a87c1c81e15668bbb11c730daa3485" }, "downloads": -1, "filename": "stor-1.4.2-py2-none-any.whl", "has_sig": false, "md5_digest": "fab4ae825daa103b56db8c9c0ab4868d", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 102404, "upload_time": "2017-05-17T06:23:23", "url": "https://files.pythonhosted.org/packages/57/4f/621527fe47514b428dedafd174dc9c9549dae6c22ec1321820abcd5df17d/stor-1.4.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "39012665fd29ff560c5daa4aa2abe42c", "sha256": "a4c865047651da7ec61854492aed55ef9ae93cbae8741141bbb86cd428fc2ad0" }, "downloads": -1, "filename": "stor-1.4.2.tar.gz", "has_sig": false, "md5_digest": "39012665fd29ff560c5daa4aa2abe42c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 62633, "upload_time": "2017-05-17T06:23:28", "url": "https://files.pythonhosted.org/packages/3e/cb/a5d788a2b623ec4c7f66b0030f9673c1567a4a6fc7bab2b5bb1126940c0d/stor-1.4.2.tar.gz" } ], "1.4.3": [ { "comment_text": "", "digests": { "md5": "1599d431b39ea90524e00242df250206", "sha256": "ac8c1d7394811640c10fb093d5b24d8a2f9209106972597a241e2272b73a23c8" }, "downloads": -1, "filename": "stor-1.4.3-py2-none-any.whl", "has_sig": false, "md5_digest": "1599d431b39ea90524e00242df250206", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 104509, "upload_time": "2017-05-22T15:44:09", "url": "https://files.pythonhosted.org/packages/c8/fc/930d57729b3dc5045be151807d4eb8faa5ad232935be89d9faf94845f793/stor-1.4.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0fa0e9606b715154277e45254b26e28e", "sha256": "bc5adff5bb84becfd346d0b3c898bd808a10fcf175fdf5862d24fb33e2859cea" }, "downloads": -1, "filename": "stor-1.4.3.tar.gz", "has_sig": false, "md5_digest": "0fa0e9606b715154277e45254b26e28e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63645, "upload_time": "2017-05-22T15:44:13", "url": "https://files.pythonhosted.org/packages/03/0e/ce07fc239c92cd09bb7ae68c2c32fabfc3fe45618eb2759b256e63931700/stor-1.4.3.tar.gz" } ], "1.4.4": [ { "comment_text": "", "digests": { "md5": "17804b094e54a5d3e25335733d62dd73", "sha256": "ec490f0484290a4cc97f44d1c7db735daeca1832632935aac58b5ebf90fdc244" }, "downloads": -1, "filename": "stor-1.4.4-py2-none-any.whl", "has_sig": false, "md5_digest": "17804b094e54a5d3e25335733d62dd73", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 104633, "upload_time": "2017-07-03T09:50:59", "url": "https://files.pythonhosted.org/packages/5e/33/c498787546b5507f28ac102d76aa80fbf460df38a3391d8c5e1370fba5b7/stor-1.4.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fb60ca2290b58947803f6859b5a86c85", "sha256": "da1439d26a8e0f3d3343420130fc785848dd2a5755c50fce0eaf1140cd3334b6" }, "downloads": -1, "filename": "stor-1.4.4.tar.gz", "has_sig": false, "md5_digest": "fb60ca2290b58947803f6859b5a86c85", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63723, "upload_time": "2017-07-03T09:51:04", "url": "https://files.pythonhosted.org/packages/6f/7a/7a3cac21ac0a5a15efa62b2c386f1c1deee67de0302ce483cddbe9d1cc48/stor-1.4.4.tar.gz" } ], "1.4.5": [ { "comment_text": "", "digests": { "md5": "a77b5ef0d417c7fddb182a441d4dc80f", "sha256": "524c98d1ece8a8705684eece5dbfa42cfa6c6947659a0ff479c86feeb22d5c83" }, "downloads": -1, "filename": "stor-1.4.5-py2-none-any.whl", "has_sig": false, "md5_digest": "a77b5ef0d417c7fddb182a441d4dc80f", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 104630, "upload_time": "2017-07-03T10:54:05", "url": "https://files.pythonhosted.org/packages/7f/ca/1a848076c7ce72cb67003567ed14332cb4272d07c84a6aa145e6ffc2686a/stor-1.4.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0604a2a339baa16a6e574dc30a7c808f", "sha256": "56a0f195bf69fff2b6e28db98692c12cb1375581ae43d03e9e8d526d08294085" }, "downloads": -1, "filename": "stor-1.4.5.tar.gz", "has_sig": false, "md5_digest": "0604a2a339baa16a6e574dc30a7c808f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63747, "upload_time": "2017-07-03T10:54:11", "url": "https://files.pythonhosted.org/packages/b9/b4/eaa6c0e79c2e41f1762f0efb6de6cb333f0e174ae97c4de5720356bbf3e6/stor-1.4.5.tar.gz" } ], "1.4.6": [ { "comment_text": "", "digests": { "md5": "c63231cc73c775c07d56214a7a340029", "sha256": "6623d4a3d0ba6ab32f6b4d0658e881efc490aee7eba4c731a682fa022cab2315" }, "downloads": -1, "filename": "stor-1.4.6-py2-none-any.whl", "has_sig": false, "md5_digest": "c63231cc73c775c07d56214a7a340029", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 104633, "upload_time": "2017-07-11T15:34:53", "url": "https://files.pythonhosted.org/packages/7c/29/ea91a23427cbf710c22f1eb4d677ccb6d113e1d481f3f2f42bd0a5c918cd/stor-1.4.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "094f5dc1c9ca496a17dc418920526e67", "sha256": "e2c5dafec8d11a25c92703c2cb983916f08c017f514342132e432bcb846f8367" }, "downloads": -1, "filename": "stor-1.4.6.tar.gz", "has_sig": false, "md5_digest": "094f5dc1c9ca496a17dc418920526e67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63828, "upload_time": "2017-07-11T15:34:56", "url": "https://files.pythonhosted.org/packages/ba/29/3e93eb0116af2dfcab78839ce92736e99b33db1ecdc865726f562e215e69/stor-1.4.6.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "3e5abbb8169dcae566597515601fd620", "sha256": "afb9fba8bf418a4309438da535755559a18f8412c0c8fed2661654ba70211ed6" }, "downloads": -1, "filename": "stor-1.5.1-py2-none-any.whl", "has_sig": false, "md5_digest": "3e5abbb8169dcae566597515601fd620", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 108092, "upload_time": "2017-12-06T00:24:18", "url": "https://files.pythonhosted.org/packages/09/52/f0a5ae30e7457f9fac13ae24c913217bba9a5ab8debacadc3606eaab77fd/stor-1.5.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1082717d4fe7cd6690f11a0d42ae7a90", "sha256": "0eb2b3abc1f66c07ec340bc309f8eef27c5be8d28138d4f610c0253e46076af2" }, "downloads": -1, "filename": "stor-1.5.1.tar.gz", "has_sig": false, "md5_digest": "1082717d4fe7cd6690f11a0d42ae7a90", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65636, "upload_time": "2017-12-06T00:24:20", "url": "https://files.pythonhosted.org/packages/06/cd/e4e3e2eb65d198bf54467c6fca7cb1907f40d1f1495d1689551416b2095c/stor-1.5.1.tar.gz" } ], "1.5.2": [ { "comment_text": "", "digests": { "md5": "01fbc5444774af218645d5864ee9c60b", "sha256": "5b6acbf52b354a449107cbfe15e485378670065216663e875300d8dd6815dd73" }, "downloads": -1, "filename": "stor-1.5.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "01fbc5444774af218645d5864ee9c60b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 108230, "upload_time": "2018-01-19T22:55:10", "url": "https://files.pythonhosted.org/packages/e8/80/e7c675068666a5e6e14ec9a13e9fcf10da9943f319a057bf33d5a75b9c50/stor-1.5.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "58ffe870fe4629e6e99c8fa8821c931d", "sha256": "02fc81cf329bf32d180b30df655adba8d4ecc4cfd4ce5c83e1fe5c759505ad22" }, "downloads": -1, "filename": "stor-1.5.2.tar.gz", "has_sig": false, "md5_digest": "58ffe870fe4629e6e99c8fa8821c931d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65795, "upload_time": "2018-01-19T22:55:13", "url": "https://files.pythonhosted.org/packages/d6/0c/e7b3e8d30f9923ca13737468850e1797cfdf97f1348bebdd8a5cfc554c30/stor-1.5.2.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "3e682502b46ec7e2bc2768856093e0a0", "sha256": "b193725f60ebf69d74e25b03618477d36efee886f979a2b63a39d2ec52f14f1a" }, "downloads": -1, "filename": "stor-2.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3e682502b46ec7e2bc2768856093e0a0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 113624, "upload_time": "2018-02-28T10:57:33", "url": "https://files.pythonhosted.org/packages/6f/7a/d5f6d53156fd81b2bd54391133b6d81b69a606894fd0f67786d048cf724c/stor-2.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b3678a74f17c6459f8212329c4cb160e", "sha256": "85241060563db7eb3df3125bc906a9d8040d38e42ff8c71fe3187da143139c82" }, "downloads": -1, "filename": "stor-2.0.0.tar.gz", "has_sig": false, "md5_digest": "b3678a74f17c6459f8212329c4cb160e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68539, "upload_time": "2018-02-28T10:57:36", "url": "https://files.pythonhosted.org/packages/79/09/84343ddab79460a077a63e5ba819487715a14605496a07def07e7d75c2c9/stor-2.0.0.tar.gz" } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "6e66e8a8c01a240ff1c3eec7ba3d70fe", "sha256": "967f9ae3be30967b2f33c597d2684df62a71f549c8168611e25cdd35e76cfc6f" }, "downloads": -1, "filename": "stor-2.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6e66e8a8c01a240ff1c3eec7ba3d70fe", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 114854, "upload_time": "2018-03-06T17:42:13", "url": "https://files.pythonhosted.org/packages/61/da/b4b5732b2485dd8e8e67c54e158e5638c71c618f4ae844bc04c38405c94a/stor-2.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "17c7ffe37c3af4e5e4fa6055ba61a158", "sha256": "215de04b13489afee5839e69443cde3bb59d1a37e6c3949b86e368d34af97e20" }, "downloads": -1, "filename": "stor-2.1.0.tar.gz", "has_sig": false, "md5_digest": "17c7ffe37c3af4e5e4fa6055ba61a158", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69396, "upload_time": "2018-03-06T17:42:15", "url": "https://files.pythonhosted.org/packages/27/eb/541a08298dae46a09d5bf9a39c9943b6caea7326311527d3e49283018ee2/stor-2.1.0.tar.gz" } ], "2.1.1": [ { "comment_text": "", "digests": { "md5": "f950e015dcb25546953ce4834db935cb", "sha256": "90a9c473a71e2f70fc7b0e7dc128f4018bdee3fdd478b103e959252a9f21daf9" }, "downloads": -1, "filename": "stor-2.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f950e015dcb25546953ce4834db935cb", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 114844, "upload_time": "2018-03-09T20:19:51", "url": "https://files.pythonhosted.org/packages/8d/29/53dbbdb774f01f10732dff6bdf95d1feee0c5c5622ee63ce8c0d4c1ea260/stor-2.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7474e62df8282088ce8b8309f396c882", "sha256": "018d62608177843b82b4c721fb0b998f30d57f11a07ebace5a245dacd7f6af43" }, "downloads": -1, "filename": "stor-2.1.1.tar.gz", "has_sig": false, "md5_digest": "7474e62df8282088ce8b8309f396c882", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 69509, "upload_time": "2018-03-09T20:19:54", "url": "https://files.pythonhosted.org/packages/f8/5b/a13162c835c3596f7bd41922d2d64c3467c9cdee3d8e1242d1d73978c375/stor-2.1.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "8f67b8874376b597a6e137623e5939cd", "sha256": "82fda1084427c52074405422855c5b2dd2c88350acbfa97449252e35a1a2ec84" }, "downloads": -1, "filename": "stor-3.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f67b8874376b597a6e137623e5939cd", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 139095, "upload_time": "2018-11-14T18:14:49", "url": "https://files.pythonhosted.org/packages/d6/2a/06802b78997437946b55f8ce9ff6f5ae6b64d7f70b487b57c6bb757cdbae/stor-3.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "216f1b61d9e958c4ede06d89aada4775", "sha256": "b217da1b7e23403ae069458f86df2b51715dc6d3e91bb41b396a209a61d66b93" }, "downloads": -1, "filename": "stor-3.0.0.tar.gz", "has_sig": false, "md5_digest": "216f1b61d9e958c4ede06d89aada4775", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85868, "upload_time": "2018-11-14T18:14:52", "url": "https://files.pythonhosted.org/packages/f1/5b/aa28d3b1dde1132a5bf18263b4721d05ed2515416264403d73c89f3c39e6/stor-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "e5bc48f421a992585a8f871fcda88f7b", "sha256": "4e8dfe48557f620a2b7968d39a09cadcaf6701e335edc40053847aaf50dffb00" }, "downloads": -1, "filename": "stor-3.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e5bc48f421a992585a8f871fcda88f7b", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 139119, "upload_time": "2019-01-16T21:54:46", "url": "https://files.pythonhosted.org/packages/c0/59/489cc517faf0af7c70db39a4e140c39c2f83d4e28de32ae79fe6e0b35073/stor-3.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "982907d7e95545f34b56e8d035e2348d", "sha256": "7a76d1d702cfe01dc6fa7a30679c7f231731b24eaa49f75fbbea772fc5f7fd48" }, "downloads": -1, "filename": "stor-3.0.1.tar.gz", "has_sig": false, "md5_digest": "982907d7e95545f34b56e8d035e2348d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85902, "upload_time": "2019-01-16T21:54:49", "url": "https://files.pythonhosted.org/packages/94/7b/9e5c182246998513d5808554003799e719f33cf9f0eaf70ccadd116c8a16/stor-3.0.1.tar.gz" } ], "3.0.2": [ { "comment_text": "", "digests": { "md5": "8200be4b824c1beb623a23616aa26b7a", "sha256": "f51c7427860f67ad2e9ebdecc6e91696016d71c03237af0ea98af89c63c31dff" }, "downloads": -1, "filename": "stor-3.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8200be4b824c1beb623a23616aa26b7a", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 139636, "upload_time": "2019-01-18T20:04:35", "url": "https://files.pythonhosted.org/packages/d9/3c/51e4ca121f8690f457083d58a483769cff033f171dfeb9ff783cb820355b/stor-3.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "06363289886a57f0fd1902bf4dfc0e80", "sha256": "67593d17acc90b0218c871858d2ab3437c21ece0ac8cbcfaf25df1d2804662a5" }, "downloads": -1, "filename": "stor-3.0.2.tar.gz", "has_sig": false, "md5_digest": "06363289886a57f0fd1902bf4dfc0e80", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86100, "upload_time": "2019-01-18T20:04:38", "url": "https://files.pythonhosted.org/packages/b6/bb/5a96fe29fc9b42b6a29ccd0c5f247fa710fd56b6c320c0f7eb857cd57f57/stor-3.0.2.tar.gz" } ], "3.0.3": [ { "comment_text": "", "digests": { "md5": "7bfc9148901446ee901c1b212c218925", "sha256": "437fd179937eb45b49fccc0280138e2f6e60625c4f46f1ef4d1c4c5f78630a94" }, "downloads": -1, "filename": "stor-3.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7bfc9148901446ee901c1b212c218925", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 140096, "upload_time": "2019-06-03T22:38:13", "url": "https://files.pythonhosted.org/packages/2d/a1/bf142fe48bf4f59335ec291129e01b9e4bdefa267dbd046b142cf311b20c/stor-3.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d92e0d811fa9fd4d35543f5edba5153", "sha256": "ebd12658c972caa2e93aabd3a133f0735901b5239e532b6ab1e81d307c9a8996" }, "downloads": -1, "filename": "stor-3.0.3.tar.gz", "has_sig": false, "md5_digest": "0d92e0d811fa9fd4d35543f5edba5153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86527, "upload_time": "2019-06-03T22:38:16", "url": "https://files.pythonhosted.org/packages/46/79/a8fea393fe5626022d2ebb04593cca0102bf53d10915a4e191619a98083f/stor-3.0.3.tar.gz" } ], "3.0.4": [ { "comment_text": "", "digests": { "md5": "0de3fceb9e67dddfc3d2289bae7221a0", "sha256": "00dfc4b6e5c32cdaf60ed0d2d8bf8d67677ed325d9b0e4c08b8853f21f079692" }, "downloads": -1, "filename": "stor-3.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "0de3fceb9e67dddfc3d2289bae7221a0", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 140096, "upload_time": "2019-06-04T10:50:28", "url": "https://files.pythonhosted.org/packages/3c/73/9ebfec3c6884aaf47fbf727d1baa2c64c00b96357679ad5cd1dac2ab5b7a/stor-3.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a739423cd094837acb22255a91eceaf1", "sha256": "51c2448f04d774f3a2cf9e7bf127c158dcd22f78f4b74a466743cf0a1299d07c" }, "downloads": -1, "filename": "stor-3.0.4.tar.gz", "has_sig": false, "md5_digest": "a739423cd094837acb22255a91eceaf1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86547, "upload_time": "2019-06-04T10:50:30", "url": "https://files.pythonhosted.org/packages/b2/4d/15fff4fa8e90f6d84dc38736111dd0bd5659a1dc747eba26beb538e66b02/stor-3.0.4.tar.gz" } ], "3.0.5": [ { "comment_text": "", "digests": { "md5": "750e1292430122015af6c8fac0defcac", "sha256": "e421b4fa490741300b47453dd32b3eddeff2b4b30ab6a44444fc45460ff526cb" }, "downloads": -1, "filename": "stor-3.0.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "750e1292430122015af6c8fac0defcac", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 140083, "upload_time": "2019-07-10T21:42:29", "url": "https://files.pythonhosted.org/packages/ea/75/821cc2d4ae36efc030071ac5aff6238b45ffdcc66210d587bb92dc4318ce/stor-3.0.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc486304de7f157ac9e464784f1e89f9", "sha256": "9747a65b2761e0fa75ee6995dc11aa2c3236bd45b03ad4b48d790db61bb19065" }, "downloads": -1, "filename": "stor-3.0.5.tar.gz", "has_sig": false, "md5_digest": "dc486304de7f157ac9e464784f1e89f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86554, "upload_time": "2019-07-10T21:42:31", "url": "https://files.pythonhosted.org/packages/24/6b/a2ca62c4510554135f9513d4ab39446f08e447c96cb3434e753144bd4bfe/stor-3.0.5.tar.gz" } ], "3.1.0": [ { "comment_text": "", "digests": { "md5": "b2453229e616c251fee7021c29308f5c", "sha256": "6fff8a9457886ed3a5b8094f0d94bafcb85c5886228de65919b7f90ef11d49e5" }, "downloads": -1, "filename": "stor-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b2453229e616c251fee7021c29308f5c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 140184, "upload_time": "2019-08-12T19:10:35", "url": "https://files.pythonhosted.org/packages/0c/53/cdeb60fd824d798686a001c01371494b486c36af53a4961dfaf85b7aeb5d/stor-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f93f1d40d0de9607b7ebb77777cd90d", "sha256": "5772a4559ff5ad0ebdcc1a8223b028d9a2e540f4be01dffc701e67b0868a5326" }, "downloads": -1, "filename": "stor-3.1.0.tar.gz", "has_sig": false, "md5_digest": "7f93f1d40d0de9607b7ebb77777cd90d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86631, "upload_time": "2019-08-12T19:10:38", "url": "https://files.pythonhosted.org/packages/7a/8f/8a5a407aba62eea932e02306177476f2d84dee1cde44b50c70af05e8f8c6/stor-3.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2453229e616c251fee7021c29308f5c", "sha256": "6fff8a9457886ed3a5b8094f0d94bafcb85c5886228de65919b7f90ef11d49e5" }, "downloads": -1, "filename": "stor-3.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b2453229e616c251fee7021c29308f5c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 140184, "upload_time": "2019-08-12T19:10:35", "url": "https://files.pythonhosted.org/packages/0c/53/cdeb60fd824d798686a001c01371494b486c36af53a4961dfaf85b7aeb5d/stor-3.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7f93f1d40d0de9607b7ebb77777cd90d", "sha256": "5772a4559ff5ad0ebdcc1a8223b028d9a2e540f4be01dffc701e67b0868a5326" }, "downloads": -1, "filename": "stor-3.1.0.tar.gz", "has_sig": false, "md5_digest": "7f93f1d40d0de9607b7ebb77777cd90d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86631, "upload_time": "2019-08-12T19:10:38", "url": "https://files.pythonhosted.org/packages/7a/8f/8a5a407aba62eea932e02306177476f2d84dee1cde44b50c70af05e8f8c6/stor-3.1.0.tar.gz" } ] }