{ "info": { "author": "Laurie", "author_email": "laurie@sitesee.com.au", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: MacOS", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3 :: Only" ], "description": "# sfini\n[![Build Status](\nhttps://travis-ci.org/EpicWink/sfini.svg?branch=master)](\nhttps://travis-ci.org/EpicWink/sfini)\n[![codecov](\nhttps://codecov.io/gh/EpicWink/sfini/branch/master/graph/badge.svg)](\nhttps://codecov.io/gh/EpicWink/sfini)\n[![Documentation Status](\nhttps://readthedocs.org/projects/sfini/badge/?version=latest)](\nhttps://sfini.readthedocs.io/en/latest/?badge=latest)\n[![Contributor Covenant](\nhttps://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](\nCODE_OF_CONDUCT.md)\n\nCreate, run and manage AWS Step Functions easily. Pronounced \"SFIN-ee\".\n\nThis package aims to provide a user-friendly interface into defining and\nrunning Step Functions. Things you can do in `sfini` to interact with AWS Step\nFunctions:\n* Implement and register activities\n* Define and register state machines\n* Start, track and stop executions\n* Run workers for activities\n* Get information for registered activities and state machines\n* De-register state machines and activities\n\nNote: this is not a tool to convert Python code into a Step Functions state\nmachine. For that, see [pyawssfn](https://github.com/bennorth/pyawssfn).\n\n## Getting started\n### Prerequisites\n* [AWS](https://aws.amazon.com/) (Amazon Web Services) account, with\n access to Step Functions\n* AWS [IAM](https://aws.amazon.com/iam/) (Identity and Access Management)\n credentials\n\n### Installation\n```bash\npip install sfini\n```\n\n## Usage\n### Documentation\nCheck the [documentation](https://sfini.readthedocs.io/en/latest/) or use\nthe built-in help:\n```bash\npydoc sfini\n```\n\n```python\nimport sfini\nhelp(sfini)\n```\n\n### AWS Step Functions\n[AWS Step Functions](https://aws.amazon.com/step-functions/) (SFN) is a\nworkflow-management service, providing the ability to coordinate tasks in a\nstraight-forward fashion. Further documentation can be found in the\n[AWS documentation](\nhttps://docs.aws.amazon.com/step-functions/latest/dg/welcome.html).\n\nUsage of Step Functions consists of two types: state-machines and activities.\nA state-machine is a graph of operations which defines a workflow of an\napplication, comprised of multiple types of \"states\", or stages of the\nworkflow. An activity processes input to an output, and is used to process a\ntask \"state\" in the state-machine (multiple task states can have the same\nactivity assigned it.\n\nOnce a state-machine is defined and registered (along with the used\nactivities), you run executions of that state-machine on different inputs to\nrun the workflow. `sfini` allows you to start, stop and get the history of\nthese executions.\n\nState-machines support conditional branching (and therefore loops), retries\n(conditional and unconditional), exception-catching, external AWS service\nsupport for running tasks, parallel execution and input/output processing.\nExternal services including AWS Lambda, so you don't have to deploy your own\nactivity runners.\n\nOnce state-machines and activities are defined and registered, you can view and\nupdate their details in [the SFN web console](\nhttps://console.aws.amazon.com/states/home?#/).\n\n### Role ARN\nEvery state-machine needs a role ARN (Amazon Resource Name). This is an AWS IAM\nrole ARN which allows the state-machine to process state executions. See AWS\nStep Functions documentation for more information.\n\n### Example\nMore examples found [in the documentation](\nhttps://sfini.readthedocs.io/en/latest/examples.html).\n\n```python\nimport sfini\n\n# Define activities\nactivities = sfini.ActivityRegistration(prefix=\"test\")\n\n\n@activities.activity(\"addActivity\")\ndef add_activity(data):\n return data[\"a\"] + data[\"b\"]\n\n\n# Define state-machine\nadd = sfini.Task(\"add\", add_activity)\nsm = sfini.construct_state_machine(\"testAdding\", add)\n\n# Register state-machine and activities\nactivities.register()\nsm.register()\n\n# Start activity worker\nworker = sfini.Worker(add_activity)\nworker.start()\n\n# Start execution\nexecution = sm.start_execution(execution_input={\"a\": 3, \"b\": 42})\nprint(execution.name)\n# testAdding_2019-05-13T19-07_0354d790\n\n# Wait for execution and print output\nexecution.wait()\nprint(execution.output)\n# 45\nprint(execution.format_history())\n# ExecutionStarted [1] @ 2019-06-23 20:03:52.817000+10:00\n# TaskStateEntered [2] @ 2019-06-23 20:03:52.840000+10:00:\n# name: add\n# ActivityScheduled [3] @ 2019-06-23 20:03:52.840000+10:00:\n# resource: arn:aws:states:us-west-2:ACCID:activity:testaddActivity\n# ActivityStarted [4] @ 2019-06-23 20:03:53.954000+10:00:\n# worker: hostname-3a4fb480\n# ActivitySucceeded [5] @ 2019-06-23 20:03:55.028000+10:00\n# TaskStateExited [6] @ 2019-06-23 20:03:55.028000+10:00:\n# name: add\n# ExecutionSucceeded [7] @ 2019-06-23 20:03:55.028000+10:00\n# Output: 45\n\n# Stop activity workers\nworker.end()\nworker.join()\n\n# Deregister state-machine and activities\nactivities.deregister()\nsm.deregister()\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/EpicWink/sfini", "keywords": "aws sfn service step functions states", "license": "MIT", "maintainer": "Laurie", "maintainer_email": "laurie@sitesee.com.au", "name": "sfini", "package_url": "https://pypi.org/project/sfini/", "platform": "", "project_url": "https://pypi.org/project/sfini/", "project_urls": { "Bugs": "https://github.com/EpicWink/sfini/issues", "Documentation": "https://sfini.readthedocs.io/en/latest/", "Homepage": "https://github.com/EpicWink/sfini", "Source": "https://github.com/EpicWink/sfini" }, "release_url": "https://pypi.org/project/sfini/0.1.0/", "requires_dist": [ "boto3", "moto ; extra == 'dev'", "pytest ; extra == 'dev'", "pytest-cov ; extra == 'dev'", "pytest-timeout ; extra == 'dev'", "sphinx ; extra == 'dev'", "sphinx-rtd-theme ; extra == 'dev'" ], "requires_python": "~=3.6", "summary": "Create, run and manage AWS Step Functions easily", "version": "0.1.0" }, "last_serial": 5436984, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d2474dbb26a58e26185349c07328befa", "sha256": "d86bafaa9cc1c251c300bfad5a989d6632128983fb11748b9208413a65c897b0" }, "downloads": -1, "filename": "sfini-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d2474dbb26a58e26185349c07328befa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 30573, "upload_time": "2019-06-23T10:30:35", "url": "https://files.pythonhosted.org/packages/67/b6/56a2cd6ddfc5e2846ca6a1a0b31ae6113538b1cd8a8b96aef58b837f69b1/sfini-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6700afb8bf54e6eca3aea1c09a3df872", "sha256": "ed986df3e2270348765670729ef145ee9e497006b6821e35ef020399e19930ac" }, "downloads": -1, "filename": "sfini-0.0.1.tar.gz", "has_sig": false, "md5_digest": "6700afb8bf54e6eca3aea1c09a3df872", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25616, "upload_time": "2019-06-23T10:30:37", "url": "https://files.pythonhosted.org/packages/5e/4a/f0cd276c2837f7231b16f1bdb8354cbd4524b134545f97eb1aedeb207e5f/sfini-0.0.1.tar.gz" } ], "0.0.1a1": [ { "comment_text": "", "digests": { "md5": "7d40ff74aebb90cb215290045dfbaafa", "sha256": "68c8d311c776fa3cf122a079fddbbdc6e099dc46de211e3f8a32e629ca5bab12" }, "downloads": -1, "filename": "sfini-0.0.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "7d40ff74aebb90cb215290045dfbaafa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.3", "size": 22260, "upload_time": "2018-08-07T04:45:59", "url": "https://files.pythonhosted.org/packages/4c/1e/11064c0a5bcae205f3de7cf2b844e61774a946366adc886049864e82bd61/sfini-0.0.1a1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c8c11ccbc01b27491a2757916ee1214", "sha256": "44fccfb69e023ea13c381b28357a51205e7afeb8871bb0399ca0f5e02e4441f8" }, "downloads": -1, "filename": "sfini-0.0.1a1.tar.gz", "has_sig": false, "md5_digest": "3c8c11ccbc01b27491a2757916ee1214", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.3", "size": 19370, "upload_time": "2018-08-07T04:46:01", "url": "https://files.pythonhosted.org/packages/d7/51/3398692a3d58c4efa7f89319c33ee31f28fe7b45c7214150221311f7841c/sfini-0.0.1a1.tar.gz" } ], "0.0.1a1.dev3": [ { "comment_text": "", "digests": { "md5": "a47580e03bd305445665d568bd779927", "sha256": "6300746ac31475113594720520581e7e3052e1d8e50c64e4a30e9638e33b55d4" }, "downloads": -1, "filename": "sfini-0.0.1a1.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "a47580e03bd305445665d568bd779927", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.3", "size": 20231, "upload_time": "2018-08-02T16:27:29", "url": "https://files.pythonhosted.org/packages/84/21/2e06d7af99e7dabb4fabb8aed8fcec4f59fb149bc0319fd572c36c40e70c/sfini-0.0.1a1.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0ef48536c7c288d7b50944e548425386", "sha256": "a8da04d92bb8e6dfb8374efec12cb08d19569ee8c35c12aa80763d37c7bc5fff" }, "downloads": -1, "filename": "sfini-0.0.1a1.dev3.tar.gz", "has_sig": false, "md5_digest": "0ef48536c7c288d7b50944e548425386", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.3", "size": 18170, "upload_time": "2018-08-02T16:27:30", "url": "https://files.pythonhosted.org/packages/61/97/e12445ec7d152de24af51e4aa164c8ee271e57597068a58f10fda5192930/sfini-0.0.1a1.dev3.tar.gz" } ], "0.0.1a2": [ { "comment_text": "", "digests": { "md5": "532f4cfccc301420d1d88578c8a12ed6", "sha256": "04bec20a7afa8ae4a6b2864a0848fb50acb1b602dbaa292e5d591dde679c37b3" }, "downloads": -1, "filename": "sfini-0.0.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "532f4cfccc301420d1d88578c8a12ed6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.3", "size": 30564, "upload_time": "2019-05-09T09:31:04", "url": "https://files.pythonhosted.org/packages/af/35/83521bb6537146818b5241238013098377799e025bb1212cd2cc63e2ea25/sfini-0.0.1a2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be462c803f3dd3de967e1800ef08f7a2", "sha256": "1ec1c738b80e6272559c2523a21f380beb756d35a7aeea366f7ea4350fc1e236" }, "downloads": -1, "filename": "sfini-0.0.1a2.tar.gz", "has_sig": false, "md5_digest": "be462c803f3dd3de967e1800ef08f7a2", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.3", "size": 24701, "upload_time": "2019-05-09T09:31:06", "url": "https://files.pythonhosted.org/packages/cc/36/18644c21d8d262888b6ae74a5564339eebd850d5004ee84f5441969c8165/sfini-0.0.1a2.tar.gz" } ], "0.0.1a3": [ { "comment_text": "", "digests": { "md5": "352424b7388a7ba95bb2a1404dd57faa", "sha256": "038ac5d37ebb14eeacd9bedcc16131a39d2d1d0ec10a9a5b7c981f852510e65e" }, "downloads": -1, "filename": "sfini-0.0.1a3-py3-none-any.whl", "has_sig": false, "md5_digest": "352424b7388a7ba95bb2a1404dd57faa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 30563, "upload_time": "2019-05-09T10:03:51", "url": "https://files.pythonhosted.org/packages/6f/49/cde30ea0542167b62444b94aedf36192b4c119e0405ab9c9a74539115b71/sfini-0.0.1a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cac4eabec940110db3df231d2f840546", "sha256": "6f1c29695797f2767f67522d2b2308c16a191971cd0cb5c599aee14ad1359761" }, "downloads": -1, "filename": "sfini-0.0.1a3.tar.gz", "has_sig": false, "md5_digest": "cac4eabec940110db3df231d2f840546", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 24699, "upload_time": "2019-05-09T10:03:53", "url": "https://files.pythonhosted.org/packages/74/1d/694a9abdbcc7ba6a03165af704f58b8df7a95f2d68386ae95982029609a1/sfini-0.0.1a3.tar.gz" } ], "0.0.1b1": [ { "comment_text": "", "digests": { "md5": "b80f2ee2377a74389e9ba37251246fa4", "sha256": "b5bc9c56423cc1fc5a1476d0fe1f808ae6d2786fc04ddda6cfd6f65dbebc41cb" }, "downloads": -1, "filename": "sfini-0.0.1b1-py3-none-any.whl", "has_sig": false, "md5_digest": "b80f2ee2377a74389e9ba37251246fa4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 32401, "upload_time": "2019-05-13T13:27:56", "url": "https://files.pythonhosted.org/packages/97/f4/008f8cb9a9b5f10b17f60ea181ba40d3da4be84f6e63e63d0f7d2b7d69cb/sfini-0.0.1b1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "33fd0041cd38f2fec9525844702e9612", "sha256": "f300015a6dfb2d6b9569e29c581f93f0d101f5716d190d20ac8650a58d8b090f" }, "downloads": -1, "filename": "sfini-0.0.1b1.tar.gz", "has_sig": false, "md5_digest": "33fd0041cd38f2fec9525844702e9612", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 25316, "upload_time": "2019-05-13T13:27:58", "url": "https://files.pythonhosted.org/packages/fc/c5/f449539f7f76039dbeca8d170fbd19fea05230279d5af55967181f222f39/sfini-0.0.1b1.tar.gz" } ], "0.0.1b2": [ { "comment_text": "", "digests": { "md5": "5e7bd28f2df9dbe57bda300452610e3d", "sha256": "29e9959acf40792c4ee46966ccec75cfcae8b2903912f18f75769bd2f325331e" }, "downloads": -1, "filename": "sfini-0.0.1b2-py3-none-any.whl", "has_sig": false, "md5_digest": "5e7bd28f2df9dbe57bda300452610e3d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 30443, "upload_time": "2019-05-23T07:30:11", "url": "https://files.pythonhosted.org/packages/cd/64/0f36daff0641eefde510015e72125f79ccc4d8fb0ef76747ffd2d9f92a8e/sfini-0.0.1b2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "caf57b9cf7d058a6584e9e2fe0cf9173", "sha256": "d52e30f0c97bb82c3b309867880c5c1a65ab6cbf622098428449ede4a53357c5" }, "downloads": -1, "filename": "sfini-0.0.1b2.tar.gz", "has_sig": false, "md5_digest": "caf57b9cf7d058a6584e9e2fe0cf9173", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 24681, "upload_time": "2019-05-23T07:30:13", "url": "https://files.pythonhosted.org/packages/66/33/710497528a77d07a6521fb3014864054249e56f6ce196e2335908e8e331b/sfini-0.0.1b2.tar.gz" } ], "0.0.1b3": [ { "comment_text": "", "digests": { "md5": "0fde9a47eb8075ad8dd5b30e2c085000", "sha256": "847907186244681cdee70187d61614e068e4e3064f05d963ee7c73f672c7eb31" }, "downloads": -1, "filename": "sfini-0.0.1b3-py3-none-any.whl", "has_sig": false, "md5_digest": "0fde9a47eb8075ad8dd5b30e2c085000", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 30268, "upload_time": "2019-05-25T01:36:13", "url": "https://files.pythonhosted.org/packages/23/51/59a811302b382280a23ab948c3855b94ac940628350b3d93e8afebc2d6b4/sfini-0.0.1b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd95cd29fde7ef087b728572da74a74b", "sha256": "cdc76387d08baf08c0c2c949a27f54dd8a8a19a35228ee3d88c829a11a60db98" }, "downloads": -1, "filename": "sfini-0.0.1b3.tar.gz", "has_sig": false, "md5_digest": "fd95cd29fde7ef087b728572da74a74b", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 24784, "upload_time": "2019-05-25T01:36:15", "url": "https://files.pythonhosted.org/packages/3a/7a/c71185f77586c1661abe4d25ff9111450f15d8f6757921e3011381928df0/sfini-0.0.1b3.tar.gz" } ], "0.0.1rc0": [ { "comment_text": "", "digests": { "md5": "44b7788026b865e78f75df90803d1d64", "sha256": "d61da203f26d3ee3c46d44e942dac1673bfafd56a7eed99ae87d6542e882d270" }, "downloads": -1, "filename": "sfini-0.0.1rc0-py3-none-any.whl", "has_sig": false, "md5_digest": "44b7788026b865e78f75df90803d1d64", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 30279, "upload_time": "2019-05-25T02:56:42", "url": "https://files.pythonhosted.org/packages/0a/61/b65d5b2d5f18e4ed950ed2d5aaf5b921f0b5682494b5f752a3126b7089e8/sfini-0.0.1rc0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2ea436249857347516c5fa409bc34a1", "sha256": "c16b23e9f1858a2b18171775d0a9e534bff45897e856aaae760afb7cfecd9e01" }, "downloads": -1, "filename": "sfini-0.0.1rc0.tar.gz", "has_sig": false, "md5_digest": "c2ea436249857347516c5fa409bc34a1", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 24780, "upload_time": "2019-05-25T02:56:45", "url": "https://files.pythonhosted.org/packages/3e/d6/f36848b1d3297091a923a7a0c10b927b32fe066b21fccf7f9351dca95243/sfini-0.0.1rc0.tar.gz" } ], "0.0.1rc1": [ { "comment_text": "", "digests": { "md5": "5066340c7a7a1e8e9423811cef7300ef", "sha256": "fa0caf93db019e797b4a946a72eca98c07001fef8e834a548acf70180a016207" }, "downloads": -1, "filename": "sfini-0.0.1rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "5066340c7a7a1e8e9423811cef7300ef", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.5", "size": 30531, "upload_time": "2019-05-26T02:53:03", "url": "https://files.pythonhosted.org/packages/1d/4f/a32770167ab051137c94cf04710a6ad8d370c84bc207f2d0da41746e204c/sfini-0.0.1rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9baa875b0f10a14d1b5a77705c1cec1b", "sha256": "2ee11c1364f3c2c62ab04aa36b2fd774d4237d51092a0e43520a9c1312de38ef" }, "downloads": -1, "filename": "sfini-0.0.1rc1.tar.gz", "has_sig": false, "md5_digest": "9baa875b0f10a14d1b5a77705c1cec1b", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.5", "size": 25069, "upload_time": "2019-05-26T02:53:05", "url": "https://files.pythonhosted.org/packages/54/6d/08078511a388eb35e71053ae644477b5a7e4b4d2ff05575374d75c08697a/sfini-0.0.1rc1.tar.gz" } ], "0.0.1rc2": [ { "comment_text": "", "digests": { "md5": "30c835f93f3bb2dc85525113d81b37b4", "sha256": "4388385168ab164ff1d0418dd95de532c359a35f5cc6ceeae30702d95f4472a2" }, "downloads": -1, "filename": "sfini-0.0.1rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "30c835f93f3bb2dc85525113d81b37b4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 30576, "upload_time": "2019-05-26T09:52:57", "url": "https://files.pythonhosted.org/packages/2f/ad/fb1940de7633eb43d6edb46e3e9e47601525950dc505c6dd621857025d7f/sfini-0.0.1rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a36153018aa48f806528412437db68fe", "sha256": "29cbee28cc759b138bad2d3383e86e88efd7cfc4b920c946ab00045b92b2cdf1" }, "downloads": -1, "filename": "sfini-0.0.1rc2.tar.gz", "has_sig": false, "md5_digest": "a36153018aa48f806528412437db68fe", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25199, "upload_time": "2019-05-26T09:52:59", "url": "https://files.pythonhosted.org/packages/ca/1e/419e734c1065e48430a66fbd6b9984da1683375d34dadb4b90da2593db3c/sfini-0.0.1rc2.tar.gz" } ], "0.0.1rc3": [ { "comment_text": "", "digests": { "md5": "a36df311fb2eb423bc78cb1bda797874", "sha256": "585a08b4982848426cbd13da9a41fcb9b26f4cd7e34e906e38617f735ce6085f" }, "downloads": -1, "filename": "sfini-0.0.1rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "a36df311fb2eb423bc78cb1bda797874", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 30385, "upload_time": "2019-06-22T04:26:56", "url": "https://files.pythonhosted.org/packages/2e/15/8f6d9236254ad014982b227529429d0b53a8bd7b57d3a174cf8b87b1e860/sfini-0.0.1rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "debbafeeafa5e872f788f47264584883", "sha256": "1ef5b21d38c707dfae50f89eb1876fc10c6a2660207a5fa0dd81b653ec11d9c3" }, "downloads": -1, "filename": "sfini-0.0.1rc3.tar.gz", "has_sig": false, "md5_digest": "debbafeeafa5e872f788f47264584883", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25206, "upload_time": "2019-06-22T04:26:58", "url": "https://files.pythonhosted.org/packages/88/42/15fa0333d3d30f841a1f58c3966e2bdfd7520d2c211185473907a41c7e29/sfini-0.0.1rc3.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "8ab8a807dff74c7bc6c8dcbbb7c91ccb", "sha256": "35de0e1fa281094805bdd5792dedd8354b348e6d0b80111738297414e2c6bcb8" }, "downloads": -1, "filename": "sfini-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8ab8a807dff74c7bc6c8dcbbb7c91ccb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 30575, "upload_time": "2019-06-23T10:35:20", "url": "https://files.pythonhosted.org/packages/17/4a/523ad21a99f0391751dd4495e87f13c17f9dbb6a77c394680479fc1ba6bd/sfini-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f05a0e1ff24723d3579faef0ec202047", "sha256": "94e908b5222467ed20739be5f091273c85c0452b893573c712cdd36b1091260c" }, "downloads": -1, "filename": "sfini-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f05a0e1ff24723d3579faef0ec202047", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25625, "upload_time": "2019-06-23T10:35:22", "url": "https://files.pythonhosted.org/packages/dc/9b/a9eca1d2743fa425028d28dee3456da6f9f0576308bf9c68c92a07e93b8d/sfini-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8ab8a807dff74c7bc6c8dcbbb7c91ccb", "sha256": "35de0e1fa281094805bdd5792dedd8354b348e6d0b80111738297414e2c6bcb8" }, "downloads": -1, "filename": "sfini-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8ab8a807dff74c7bc6c8dcbbb7c91ccb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": "~=3.6", "size": 30575, "upload_time": "2019-06-23T10:35:20", "url": "https://files.pythonhosted.org/packages/17/4a/523ad21a99f0391751dd4495e87f13c17f9dbb6a77c394680479fc1ba6bd/sfini-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f05a0e1ff24723d3579faef0ec202047", "sha256": "94e908b5222467ed20739be5f091273c85c0452b893573c712cdd36b1091260c" }, "downloads": -1, "filename": "sfini-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f05a0e1ff24723d3579faef0ec202047", "packagetype": "sdist", "python_version": "source", "requires_python": "~=3.6", "size": 25625, "upload_time": "2019-06-23T10:35:22", "url": "https://files.pythonhosted.org/packages/dc/9b/a9eca1d2743fa425028d28dee3456da6f9f0576308bf9c68c92a07e93b8d/sfini-0.1.0.tar.gz" } ] }