{ "info": { "author": "ClearFoundation", "author_email": "developer@clearfoundation.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Unix", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.7" ], "description": "[![pipeline status](https://gitlab.com/clearos/clearfoundation/datacustodian/badges/master/pipeline.svg)](https://gitlab.com/clearos/clearfoundation/datacustodian/commits/master) [![coverage report](https://gitlab.com/clearos/clearfoundation/datacustodian/badges/master/coverage.svg)](https://gitlab.com/clearos/clearfoundation/datacustodian/commits/master)\n\n# `DataCustodian` Data Privacy Package Generator\n\n`DataCustodian` generates other repositories for generalized\ndata privacy and consent systems. The generation follows YML specification files\nthat define the endpoints, handlers, authentication, validation, etc. for each\ncomponent of a data privacy solution.\n\n`DataCustodian` is built to work with decentralized and distributed systems to\nprovide decentralized trust for storage and consent of data.\n\nCheck out the [API Documentation](https://clearos.gitlab.io/clearfoundation/datacustodian) and a [real-world implementation](https://gitlab.com/clearos/clearfoundation/clearshare).\n\n## Installation\n\nThe package is available from the PyPI repository:\n\n```bash\npip install datacustodian\n```\n\n## Generating a Package\n\nLook at the documentation in `docs/configs` for an example setup that we use for\nthe unit tests. Customize that to your own application and then run:\n\n```bash\ndatacustodian_app.py path/to/your/app_spec.yml --generate\n```\n\nThat will auto-generate the package *and* start the REST API server.\n\n## Running Unit Tests\n\nRunning unit tests can prove to be a massive pain because the gitlab CI runner\nruns on docker. For a project like this that uses `docker-compose`, we have\nto use `docker-in-docker` according to their instructions. However, the\ndocumentation is sparse and there are lots of dead-ends... Here are the steps to\nget the `docker-compose.yml` file to work:\n\n1. Install a local `gitlab-runner` using `brew install gitlab-runner`.\n2. `gitlab-runner exec docker --docker-privileged test`. Notice that there is a\n `--docker-privileged` argument. Without that, the `docker-in-docker` won't\n work.\n3. Make sure all the `multiaddr` reference the `docker` service (which hosts\n all the other containers using `dind`).\n4. `tox` should work, but for some reason: running the tests using `tox` produces\n connection refused errors, whereas running straight with `pytest` does not.\n Something about the tox environment screws things up.\n\n## Problems with `coverage`\n\nFor an yet-unknown reason, when the unit tests run in the CI server using:\n\n1. Only `pytest`, they pass with no issues.\n2. `coverage run` with `pytest`, we get problems with connection reset errors,\n and connection refused errors.\n\nInsead of trying to figure this out now, we just do the following:\n\n1. Before pushing to the remote server, run `coverage` locally (which has no\n problems on MacOS).\n2. Generate the `coverage report -m > codecov.out`.\n3. Commit `codecov.out` and then push.\n\nThe CI server *only* runs `pytest`, but it also `cat codecov.out` so that the\noutput includes the regular code coverage matrix. That way, `gitlab` still has\ncorrect statistics about code coverage.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.com/clearos/clearfoundation/datacustodian", "keywords": "", "license": "GPL-3.0", "maintainer": "", "maintainer_email": "", "name": "datacustodian", "package_url": "https://pypi.org/project/datacustodian/", "platform": "", "project_url": "https://pypi.org/project/datacustodian/", "project_urls": { "Homepage": "https://gitlab.com/clearos/clearfoundation/datacustodian" }, "release_url": "https://pypi.org/project/datacustodian/1.2.1/", "requires_dist": [ "argparse", "pyparsing", "termcolor", "tqdm", "jinja2", "flask", "flask-restful", "flask-restplus", "pyyaml", "attrdict", "ipfscluster (>=0.2.0)", "didauth", "aiohttp", "cloudant", "pynacl", "fido2" ], "requires_python": "", "summary": "Generalized data privacy and consent repository generator.", "version": "1.2.1" }, "last_serial": 5929400, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "98f44c0ed2b246dae6ce65e755c97f91", "sha256": "48f90654889c12f62283e99ec780f42740ac3333ef29ae9c524f900a012be570" }, "downloads": -1, "filename": "datacustodian-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "98f44c0ed2b246dae6ce65e755c97f91", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25856, "upload_time": "2019-07-25T18:37:34", "url": "https://files.pythonhosted.org/packages/ee/09/81581d062bd203a932f4956afa104cfb62b8a7c77436a7e9044ad9e0dc71/datacustodian-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "070b7f4e0bec36d1664ad8a454ed0842", "sha256": "6141e3349ab2347d7afb51204c9033fb0343c66f1dc1211db32b356425e6c00b" }, "downloads": -1, "filename": "datacustodian-0.0.2.tar.gz", "has_sig": false, "md5_digest": "070b7f4e0bec36d1664ad8a454ed0842", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16016, "upload_time": "2019-07-25T18:37:36", "url": "https://files.pythonhosted.org/packages/7b/46/d48be0aed695e9bc18cfcfbe6a393d1090cbc8d1f635c8360734d6a7fd1b/datacustodian-0.0.2.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "933ef64aca3bea4ca43a8915c701bb45", "sha256": "09944e80ce06ff1c6743ad401017ad0a08469c34b150bb6ded64ba5615f89c9e" }, "downloads": -1, "filename": "datacustodian-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "933ef64aca3bea4ca43a8915c701bb45", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40766, "upload_time": "2019-07-30T20:38:58", "url": "https://files.pythonhosted.org/packages/25/aa/00415e6cdfb149c68a765642b376e4555b8fc434cab0be37a5cd39d620a5/datacustodian-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1f529f0e95622c1e6c0176bcbde3b6fb", "sha256": "4c84d89ac62dc53fe6d5977bfbdc4977abda2b679f50f5474638f89d46d30541" }, "downloads": -1, "filename": "datacustodian-0.1.0.tar.gz", "has_sig": false, "md5_digest": "1f529f0e95622c1e6c0176bcbde3b6fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19183, "upload_time": "2019-07-30T20:38:59", "url": "https://files.pythonhosted.org/packages/34/06/de96c148a2fb2655971c8d38e2699278f067cf6117e24d167462c69630f2/datacustodian-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "048bef02e4be302716f258b38f36198b", "sha256": "946ff58d191e0d337d8d077dda811acbc40a9c501f3e0344c24bb22a988990e4" }, "downloads": -1, "filename": "datacustodian-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "048bef02e4be302716f258b38f36198b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 40792, "upload_time": "2019-07-30T21:27:50", "url": "https://files.pythonhosted.org/packages/c5/45/ef93676b165d68c1d89235cc36c70080adc62a8d040021c269c543dccb82/datacustodian-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "71c06e53f08ef231dc752599e62859e1", "sha256": "3ca1dd8eb81b21b9f36a65712f5e6d617cd8c319c3c66537928f4518c7c22d1d" }, "downloads": -1, "filename": "datacustodian-0.1.1.tar.gz", "has_sig": false, "md5_digest": "71c06e53f08ef231dc752599e62859e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19209, "upload_time": "2019-07-30T21:27:52", "url": "https://files.pythonhosted.org/packages/20/df/96a83170f720d40ce254b849ffaf93de447635eb73b5af61f417b825077a/datacustodian-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cb7fe77d05ea0688c76a190de65cb4ab", "sha256": "8926bf1f388ae83b935e6ca7dcf85ea1f519c5c612e39ad21908b979e5b8638b" }, "downloads": -1, "filename": "datacustodian-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cb7fe77d05ea0688c76a190de65cb4ab", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 42887, "upload_time": "2019-07-31T15:06:00", "url": "https://files.pythonhosted.org/packages/25/04/357daf573bbb2d9413e7b8b8e0cba00af3ddf5bac87b60479a1b4dc7121c/datacustodian-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2185f56a7d7288b72623e704fc11dab6", "sha256": "b18d4a49b2f573a0527d272c920e60de3f3ca7cf285147803f782a656a0bebfc" }, "downloads": -1, "filename": "datacustodian-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2185f56a7d7288b72623e704fc11dab6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20205, "upload_time": "2019-07-31T15:06:02", "url": "https://files.pythonhosted.org/packages/4e/27/2719012581dd7c20b571a9bf64b6e29c2b10dc98b6e4ccb0cd8b04f60de9/datacustodian-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "5f1e38743ebe14e9381fc90913d4a442", "sha256": "25c4e357b2393324c1e26c32ea35b30ec0f66f2f6909249152c2fec099dbc04f" }, "downloads": -1, "filename": "datacustodian-0.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5f1e38743ebe14e9381fc90913d4a442", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 44349, "upload_time": "2019-08-07T18:21:36", "url": "https://files.pythonhosted.org/packages/d8/8a/992f9fba6ad66a0213708a159c6130623b830c869d5901c2e43afdd7cbc5/datacustodian-0.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "662fa71e071467a0ad1802b049b7bef9", "sha256": "bdac5aa886f9ee64329bcc1fa8850e84d8bd952c5d9b3ebc43368c38ea4c3cd1" }, "downloads": -1, "filename": "datacustodian-0.2.1.tar.gz", "has_sig": false, "md5_digest": "662fa71e071467a0ad1802b049b7bef9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21140, "upload_time": "2019-08-07T18:21:37", "url": "https://files.pythonhosted.org/packages/ed/26/7ee7d2d4293793514bed11c7560df2f785592e145d97b5f00a6194bdc735/datacustodian-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "013814ceaa9daa2113488afd754e9a7c", "sha256": "bda4aedd92b5d55a8669b4667c40dbf3f4587f205fe878f0ecdaf2c0845f7a1a" }, "downloads": -1, "filename": "datacustodian-0.2.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "013814ceaa9daa2113488afd754e9a7c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 44503, "upload_time": "2019-08-07T19:19:46", "url": "https://files.pythonhosted.org/packages/fd/a2/86b8918697eb4b83ccc54977dae7c4837055509c902faf84e19dee161dd1/datacustodian-0.2.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "74680af95ddfcd000aecb9ebbbcb7630", "sha256": "66cd011848d08d97e55971c4d8be13a28148a93fb025c5e89eab80f8b6c71886" }, "downloads": -1, "filename": "datacustodian-0.2.2.tar.gz", "has_sig": false, "md5_digest": "74680af95ddfcd000aecb9ebbbcb7630", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21237, "upload_time": "2019-08-07T19:19:48", "url": "https://files.pythonhosted.org/packages/30/dc/c54f1abf74c3d85d3daa9111a6e32ecea8210080af931a9b676bcafaf88e/datacustodian-0.2.2.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "5f11787ffdfff271109ab03b54c6cafc", "sha256": "4adf8ee24e90a428004fe6110647f56563f8ed1d726181d761f32fd068e83443" }, "downloads": -1, "filename": "datacustodian-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5f11787ffdfff271109ab03b54c6cafc", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 44921, "upload_time": "2019-08-18T03:50:27", "url": "https://files.pythonhosted.org/packages/5e/6c/1f965b48cbc4b5618a3c90688ed82958594d55aad9f968aa0c17d9c1c0a7/datacustodian-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d9b63ed3bb453438f933a06bf7f3c57", "sha256": "a2a9b77c6d7a89d45a7037b1043776ca3ee7af796100cb63591c5922a146aa70" }, "downloads": -1, "filename": "datacustodian-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3d9b63ed3bb453438f933a06bf7f3c57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21445, "upload_time": "2019-08-18T03:50:29", "url": "https://files.pythonhosted.org/packages/24/a9/3c3ae307b0cba7cf1f9c847028b39dbac4fd7456f264e0698acf02aa259c/datacustodian-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "f41c1550821c754c9e82dcdbcad28a17", "sha256": "ae715a79136287e0ce3a2f029d98e975f608ae04dc7e0e212b150b862740d150" }, "downloads": -1, "filename": "datacustodian-0.3.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f41c1550821c754c9e82dcdbcad28a17", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 44917, "upload_time": "2019-08-18T04:03:43", "url": "https://files.pythonhosted.org/packages/91/64/942b9e394a4abdb096ca901bf61eb628b7b665344cd4fab61d0f3eeb19b2/datacustodian-0.3.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe29cf2ab607325ac12739be736b36a1", "sha256": "0d4a02fbde70798b389aca9564ec5cc8b23b5448c83882e63ef8a3ca82a54f30" }, "downloads": -1, "filename": "datacustodian-0.3.2.tar.gz", "has_sig": false, "md5_digest": "fe29cf2ab607325ac12739be736b36a1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21451, "upload_time": "2019-08-18T04:03:44", "url": "https://files.pythonhosted.org/packages/7b/ed/a03afdd538d027bdfac74650a33c73213f6832243bff7ac28835d26fea83/datacustodian-0.3.2.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "135c6e476ecd5b9f75e69c1534446f7a", "sha256": "f8644bb7c2824ebf6aaffa0c69338f57c5ab1ef92978294d5cff96e0af0c58ae" }, "downloads": -1, "filename": "datacustodian-1.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "135c6e476ecd5b9f75e69c1534446f7a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63159, "upload_time": "2019-09-23T03:53:52", "url": "https://files.pythonhosted.org/packages/d8/f3/5e0d4e08f15011daa031c44ebc6ba2cc10ea7768beefee6aa12be64bbe68/datacustodian-1.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a64ad711a9aed61b6c2496eff481b20", "sha256": "07bc75a907f683a69af2c71575529a87127c5f46f4df18c4bd6266d99984e64b" }, "downloads": -1, "filename": "datacustodian-1.0.1.tar.gz", "has_sig": false, "md5_digest": "0a64ad711a9aed61b6c2496eff481b20", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32243, "upload_time": "2019-09-23T03:53:53", "url": "https://files.pythonhosted.org/packages/f0/70/b800663c5057392403f46e87252120c3a445c2324cd96ea0c3a0680124e6/datacustodian-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "b5f8e70d31690610d3357aab5e401b4b", "sha256": "cae32e99998550971185e7c15c39fb3508c00c38dfb3dcb0312321295959351f" }, "downloads": -1, "filename": "datacustodian-1.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b5f8e70d31690610d3357aab5e401b4b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 63161, "upload_time": "2019-09-23T04:07:18", "url": "https://files.pythonhosted.org/packages/30/99/629a42960292f0107fa787565aaca57ab893f5cdfc1806c70da56cea3e4b/datacustodian-1.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cd44dc868471d9e8bf4a74c2093d1a05", "sha256": "30367294a2b4326355e7ffc9523710ca7554bb08829976abeb7e07d05ef0c20a" }, "downloads": -1, "filename": "datacustodian-1.0.2.tar.gz", "has_sig": false, "md5_digest": "cd44dc868471d9e8bf4a74c2093d1a05", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32245, "upload_time": "2019-09-23T04:07:20", "url": "https://files.pythonhosted.org/packages/11/90/36d0e001ad6d94d4d77b78af2fafbf94cff0745cb3acb6f40c8cf382250f/datacustodian-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "9c8c335149b1d852084eea722ce90094", "sha256": "dd07d5b948f84be9149db99865612295339fc3e3310f09051ed7e90343187f5e" }, "downloads": -1, "filename": "datacustodian-1.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "9c8c335149b1d852084eea722ce90094", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 102802, "upload_time": "2019-09-23T04:21:30", "url": "https://files.pythonhosted.org/packages/e2/8c/45c4f4698646e00b7c31d8df70435a1bb5eeda87bacc8d078f4c1f8596d6/datacustodian-1.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "eaef76928aee41572f90f26a7f16a236", "sha256": "a544d40215135f63ee7c318293548c184722462036dbeaf599fcb030732dddc9" }, "downloads": -1, "filename": "datacustodian-1.0.3.tar.gz", "has_sig": false, "md5_digest": "eaef76928aee41572f90f26a7f16a236", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63894, "upload_time": "2019-09-23T04:21:31", "url": "https://files.pythonhosted.org/packages/c3/39/33d532c6afd1275a419bf4727267c0aa899f950bb85f95052fbac8e2c848/datacustodian-1.0.3.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "65d995deda656729c2c0bcaf6958108f", "sha256": "3ed6c4bbadd8c429837ce67dfdccf0fb5224d520008cfdbb00bd67441144230f" }, "downloads": -1, "filename": "datacustodian-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "65d995deda656729c2c0bcaf6958108f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 109937, "upload_time": "2019-10-03T00:06:21", "url": "https://files.pythonhosted.org/packages/87/5c/43bd9dff254df95bd3658e2fcdd9d15570e4ab3a54d4cb4f7961d89ec108/datacustodian-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a8e6da5b0973de0b9d6b31eacba7bba", "sha256": "704c39e01f48a8e5d6b16ed3cbcc4551bcc2fd3d9dbae460ae32e001aa0f16c0" }, "downloads": -1, "filename": "datacustodian-1.1.0.tar.gz", "has_sig": false, "md5_digest": "2a8e6da5b0973de0b9d6b31eacba7bba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67784, "upload_time": "2019-10-03T00:06:23", "url": "https://files.pythonhosted.org/packages/36/87/b21def0e6e1a527a3133537ab9a63c8e19120bd473f8704649f1e404a5b0/datacustodian-1.1.0.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "d7e116fc5e46e1122aceabbf64853ab7", "sha256": "7fba71936353cb4072e648b3bb13ac5cf8fbc8de9abd810c7fa122a062d79a59" }, "downloads": -1, "filename": "datacustodian-1.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d7e116fc5e46e1122aceabbf64853ab7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 109940, "upload_time": "2019-10-03T00:18:43", "url": "https://files.pythonhosted.org/packages/7a/b3/abbc2a641a9cfbedd0b84af97ad4732d413b846c9b697c55ff29041b9147/datacustodian-1.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62c0453b510650e602ad01e937b138aa", "sha256": "16ffb41afbf2f157bda579812243d679e73606b41a14e6e72be64ccd74151228" }, "downloads": -1, "filename": "datacustodian-1.1.1.tar.gz", "has_sig": false, "md5_digest": "62c0453b510650e602ad01e937b138aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67785, "upload_time": "2019-10-03T00:18:45", "url": "https://files.pythonhosted.org/packages/ff/d3/cd202e794e2caa8607ec68114ab312e429186ff70bed5faf5d86a8ee8079/datacustodian-1.1.1.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "327f4831e0cbd8e09d3be36ff95d3d64", "sha256": "885cdc2711a4a80697fecca451fc916bd136b823d78cc0f8adcdcf349e949eea" }, "downloads": -1, "filename": "datacustodian-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "327f4831e0cbd8e09d3be36ff95d3d64", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 109940, "upload_time": "2019-10-03T00:42:53", "url": "https://files.pythonhosted.org/packages/20/97/1598209c20f8b6d2598c1469d6be31f5a43f1fe52aca669448c16f55a604/datacustodian-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "567c594f741e1e966e4598f4f98330f0", "sha256": "b8ec0181b6a308b0f3d0b84a3ea8065d8cb646ad7dc6960475c03596fa8120e1" }, "downloads": -1, "filename": "datacustodian-1.1.2.tar.gz", "has_sig": false, "md5_digest": "567c594f741e1e966e4598f4f98330f0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67794, "upload_time": "2019-10-03T00:42:56", "url": "https://files.pythonhosted.org/packages/2a/0a/7a89e0da4a781b7dbb8e8c83340566dc48ebd774d635927822e2b378d6b8/datacustodian-1.1.2.tar.gz" } ], "1.1.3": [ { "comment_text": "", "digests": { "md5": "c78a70664821ce1bd877a499a755873f", "sha256": "55d835b0589b4eccb8c3401ddf5fd2889a79bf65bdadcb560ee11303f392ab99" }, "downloads": -1, "filename": "datacustodian-1.1.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c78a70664821ce1bd877a499a755873f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 110125, "upload_time": "2019-10-03T03:15:45", "url": "https://files.pythonhosted.org/packages/28/95/191f04811b6f0b3f86b0788a4951b3f3650bf88debff4b87a3e7617ff903/datacustodian-1.1.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a794cd9e1b4c1af0ecd504839c64f51", "sha256": "a1345bef2a1d6f006c7ae73ff312a11aa517aef0be22813ecf79039e81ae35d5" }, "downloads": -1, "filename": "datacustodian-1.1.3.tar.gz", "has_sig": false, "md5_digest": "0a794cd9e1b4c1af0ecd504839c64f51", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 67852, "upload_time": "2019-10-03T03:15:47", "url": "https://files.pythonhosted.org/packages/ba/a9/138856f84da4d4f1f42fc1bf0f143f257cd4cb20abb56a239487cddf0c3b/datacustodian-1.1.3.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "7e0c85dab479aa767334f2851361c00b", "sha256": "0fba58a237ffdd54be4bc86968f485ca545ffff9724988f4d5a8bc995ac53ba5" }, "downloads": -1, "filename": "datacustodian-1.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7e0c85dab479aa767334f2851361c00b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 111401, "upload_time": "2019-10-04T16:59:56", "url": "https://files.pythonhosted.org/packages/be/b1/0a47c809572183c617f4dd82f4e8da2029c8ba453b23aa6549e12570a325/datacustodian-1.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "764936f684f1610328f3dcba00d31192", "sha256": "ed0ae0b44a93cb997e1c102425307c551bf74ecc2e8eeb7037f6b888f639816f" }, "downloads": -1, "filename": "datacustodian-1.2.0.tar.gz", "has_sig": false, "md5_digest": "764936f684f1610328f3dcba00d31192", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68850, "upload_time": "2019-10-04T16:59:58", "url": "https://files.pythonhosted.org/packages/73/4a/5e81fe97713ef3b105094161152964dc54b27b4209c9e58de297eb6866e7/datacustodian-1.2.0.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "5cbd693f03aeebee8fb9b50028aa718e", "sha256": "391117a522a6902012aec3cc98d222bc68b30db2380d0e2dd06e30c3b23ad83e" }, "downloads": -1, "filename": "datacustodian-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5cbd693f03aeebee8fb9b50028aa718e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 111343, "upload_time": "2019-10-04T17:22:13", "url": "https://files.pythonhosted.org/packages/1a/69/14506b258dc966713a86028e7b7070eb59df44d84b99f5f8012726a52d2c/datacustodian-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b28c1a981fe5a2d864ab674bc6f625a4", "sha256": "a4c71897094429d57079b89759d3ee245f33094c40d8690d5ebb98e24d707c96" }, "downloads": -1, "filename": "datacustodian-1.2.1.tar.gz", "has_sig": false, "md5_digest": "b28c1a981fe5a2d864ab674bc6f625a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68792, "upload_time": "2019-10-04T17:22:15", "url": "https://files.pythonhosted.org/packages/11/f5/5e635a665616a7beda3dad461770c5abd8cfa5c461cafad989363217c34d/datacustodian-1.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5cbd693f03aeebee8fb9b50028aa718e", "sha256": "391117a522a6902012aec3cc98d222bc68b30db2380d0e2dd06e30c3b23ad83e" }, "downloads": -1, "filename": "datacustodian-1.2.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "5cbd693f03aeebee8fb9b50028aa718e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 111343, "upload_time": "2019-10-04T17:22:13", "url": "https://files.pythonhosted.org/packages/1a/69/14506b258dc966713a86028e7b7070eb59df44d84b99f5f8012726a52d2c/datacustodian-1.2.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b28c1a981fe5a2d864ab674bc6f625a4", "sha256": "a4c71897094429d57079b89759d3ee245f33094c40d8690d5ebb98e24d707c96" }, "downloads": -1, "filename": "datacustodian-1.2.1.tar.gz", "has_sig": false, "md5_digest": "b28c1a981fe5a2d864ab674bc6f625a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 68792, "upload_time": "2019-10-04T17:22:15", "url": "https://files.pythonhosted.org/packages/11/f5/5e635a665616a7beda3dad461770c5abd8cfa5c461cafad989363217c34d/datacustodian-1.2.1.tar.gz" } ] }