{ "info": { "author": "David Jablonski", "author_email": "dayjaby@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python" ], "description": "**********\nInstalling\n**********\n\n.. code-block:: sh\n\n pip install flexsm\n\nYou can easily install flexsm with pip:\n\n\n********************************************\nImporting, creating states and state machine\n********************************************\n\nCreating states and state machines is pretty straightforward:\n\n.. code-block:: python\n\n from flexsm import *\n\n root = State(\"root\")\n state1 = State(\"state 1\")\n state2 = State(\"state 2\")\n\n sm = StateMachine(root)\n\n*******************************\nTransitions and input variables\n*******************************\n\nTransitions are responsible for getting from one state to another. They usually start in one state and end in another. If the next state is only known at runtime, e.g. if it depends on an input variable \"x\", then you can override the transition method *getNextState*:\n\n.. code-block:: python\n\n @addTransition(state=root)\n class WaitForSomeValueToBecomeSmall(Transition):\n def getNextState(self, x):\n if x>15:\n return state2\n else:\n return state1\n\nThis piece of code allows us to transition from state *root* to *state 1* if x is smaller than 15, for example by calling:\n\n.. code-block:: python\n\n sm.update(\"x\", 10)\n\nor to *state 2* if x is 15 or bigger.\n\nThere is also an input variable *time_in_state*, which contains the amount of time we've been in the current state in seconds. The minimal guaranteed resolution for time_in_state is 0.1 seconds, which can be changed in the StateMachine construction:\n\n.. code-block:: python\n\n sm = StateMachine(root, time_resolution=0.01)\n\nBy overriding the *check* method, we can transition if we are in the state 5 seconds or longer:\n\n.. code-block:: python\n\n @addTransition(state=state1, next=state2)\n class WaitAMoment(Transition):\n def check(self, time_in_state, x):\n return time_in_state > 5\n\n def onTrigger(self, time_in_state, x):\n print(\"\"\"We are in this boring\n state since {:.2f} seconds, \n with x being {}\"\"\".format(time_in_state, x))\n\nWe also override *onTrigger*, which is called when the transition is triggered. Note how the parameters for onTrigger and check are equal. The parameters for all transition methods are name sensitive. So you can't simply use the parameter y instead of x and expect y to be 100 if you run sm.update(\"x\", 100). For the same transition, the parameters for getNextState, check and onTrigger even have to be equal!\n\nTransition.check will only be called if the value of one of its parameters changed. Thus, if your code in the check method takes a lot of time, try to avoid frequently changing parameters like time_in_state.\n\n*************\nParent states\n*************\n\nConsider the following example:\n\n.. code-block:: python\n\n airbourne = State(\"Airbourne\")\n doing360spin = State(\"Spin 360\", parent=airbourne)\n\n sm = StateMachine(doing360spin)\n\nIn this case, we are not only in the state *doing360spin*, but also in the state *airbourne*. Thus, any transitions defined on *airbourne* will be considered as well. For example, an airplane could go into an emergency state if its fuel is getting low. Such emergency transitions would be interesting for all states in the air.\n\n\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dayjaby/flexsm", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "flexsm", "package_url": "https://pypi.org/project/flexsm/", "platform": "", "project_url": "https://pypi.org/project/flexsm/", "project_urls": { "Homepage": "https://github.com/dayjaby/flexsm" }, "release_url": "https://pypi.org/project/flexsm/0.1.0.0/", "requires_dist": null, "requires_python": "", "summary": "A flexible state machine for Python", "version": "0.1.0.0" }, "last_serial": 4099726, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "0154324db55679ad2bb636b64c0d8b64", "sha256": "28510e3b1e7b117c55356dd76957509cb288681a6477637695d23a62c2036f1c" }, "downloads": -1, "filename": "flexsm-0.0.1-py2.7.egg", "has_sig": false, "md5_digest": "0154324db55679ad2bb636b64c0d8b64", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6353, "upload_time": "2018-05-30T09:02:57", "url": "https://files.pythonhosted.org/packages/67/e6/138b3cb926576a3b000c64533be6d422b3e4e50be9d4c0208c12e4cc2072/flexsm-0.0.1-py2.7.egg" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "e48974d21075dcaba42979d2f9964522", "sha256": "185bd85f11c9b573fc75e4c541a59ff0843161df4947b2e2396c35a23c7ce7ea" }, "downloads": -1, "filename": "flexsm-0.0.10-py3-none-any.whl", "has_sig": false, "md5_digest": "e48974d21075dcaba42979d2f9964522", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3930, "upload_time": "2018-05-30T10:46:40", "url": "https://files.pythonhosted.org/packages/5f/45/97816e2ca17c09cc0c55683bd076a140a3cd313c50883e2b0377ef30dbb6/flexsm-0.0.10-py3-none-any.whl" } ], "0.0.11": [ { "comment_text": "", "digests": { "md5": "9a53cc48b70ecabfc4b7d609116848ec", "sha256": "777158f5a9ea8efbf54c4473d0461bc065ea6c654337bdc44940690d5bed7e05" }, "downloads": -1, "filename": "flexsm-0.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "9a53cc48b70ecabfc4b7d609116848ec", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 2748, "upload_time": "2018-05-30T10:51:05", "url": "https://files.pythonhosted.org/packages/bc/65/b3326b18e47ae63b8ddc4a0736941d8161ab0e04495a11f46fb5499091c4/flexsm-0.0.11-py3-none-any.whl" } ], "0.0.12": [ { "comment_text": "", "digests": { "md5": "3f68eae0f80bd86729f9881184b7f1d4", "sha256": "90a5e3ab2202185d71c864a5f596b2a39b8b01adde50af9bdfe76653577cf1d2" }, "downloads": -1, "filename": "flexsm-0.0.12-py2-none-any.whl", "has_sig": false, "md5_digest": "3f68eae0f80bd86729f9881184b7f1d4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3951, "upload_time": "2018-05-30T11:43:12", "url": "https://files.pythonhosted.org/packages/9f/a1/ccbba8ef5854da6d38c18e18155614daaa07d1869b667d2c12a66a46b4f8/flexsm-0.0.12-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d412b228297c96eca7a537a8dff2f59f", "sha256": "c974f2df34843f36db5de19542c6a51bdbcf26fd912f431a0043799bec30b629" }, "downloads": -1, "filename": "flexsm-0.0.12-py3-none-any.whl", "has_sig": false, "md5_digest": "d412b228297c96eca7a537a8dff2f59f", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3953, "upload_time": "2018-05-30T11:10:23", "url": "https://files.pythonhosted.org/packages/68/d2/716aae4b19e8f493bd7cac58715aa4d634218af525cb9b6642f8b24e8034/flexsm-0.0.12-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7c660648c36f58abe1d53a9ff6df7b72", "sha256": "b4b2ad56e606f320f644d7e23d72758bb8cfbc2856456e07ae15465281902788" }, "downloads": -1, "filename": "flexsm-0.0.12.tar.gz", "has_sig": false, "md5_digest": "7c660648c36f58abe1d53a9ff6df7b72", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3957, "upload_time": "2018-05-30T11:47:07", "url": "https://files.pythonhosted.org/packages/43/53/924542d32f93da409fcadfc8b29f3acbb13fc6b03918611c64202f8eb79c/flexsm-0.0.12.tar.gz" } ], "0.0.13": [ { "comment_text": "", "digests": { "md5": "3b681fd8c9b791d80304b59b537e7932", "sha256": "3e9a96135ed1c0a7672b3a0a407894486637f0737ac7c2fc902ed049b7a6dc9d" }, "downloads": -1, "filename": "flexsm-0.0.13-py2.7.egg", "has_sig": false, "md5_digest": "3b681fd8c9b791d80304b59b537e7932", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6706, "upload_time": "2018-07-25T07:52:33", "url": "https://files.pythonhosted.org/packages/cc/01/b483f04994eca759756a887f3f9bd52b824478e462e2b968b33e97dea3cf/flexsm-0.0.13-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "0751b9a882512737c644b37ff4275768", "sha256": "c8a862ca63a21b184d8bf3dd947e9c3d8c2db16b5f5b432be7bd2416b15ed81e" }, "downloads": -1, "filename": "flexsm-0.0.13-py2-none-any.whl", "has_sig": false, "md5_digest": "0751b9a882512737c644b37ff4275768", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3925, "upload_time": "2018-06-22T09:55:02", "url": "https://files.pythonhosted.org/packages/77/13/de95d2034780b27419c21dab06bde9f09b668c8933948a07f7cc07be3184/flexsm-0.0.13-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1e0c71246ac19e62304c54f89740a505", "sha256": "c76fe3d41cee2c894856617716a8cd2b5c36a4ba5d6882434cc632ad0622294f" }, "downloads": -1, "filename": "flexsm-0.0.13-py3-none-any.whl", "has_sig": false, "md5_digest": "1e0c71246ac19e62304c54f89740a505", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3925, "upload_time": "2018-06-22T09:55:03", "url": "https://files.pythonhosted.org/packages/c3/1e/c574117e2240ac1ff2f1372dce7496cadcb3d0bedac2ffb4792c89eb1b70/flexsm-0.0.13-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "67ea58c274fe1e40d6cede3f6567790a", "sha256": "c597bf6e00ccaf323f7fb3fd0610d60ac2bdfeda5db33b311e6700eb5ded85d2" }, "downloads": -1, "filename": "flexsm-0.0.13.tar.gz", "has_sig": false, "md5_digest": "67ea58c274fe1e40d6cede3f6567790a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3940, "upload_time": "2018-06-22T09:55:04", "url": "https://files.pythonhosted.org/packages/69/d5/a3d302fce2af113adebc905d68b55a11617163768b30f31b958b95fa1f41/flexsm-0.0.13.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "4f784041a024e824d55127419a56e139", "sha256": "ef02ecf58d47f0aba58130165bff86a44eab98258986873de73fb8e13d667fe8" }, "downloads": -1, "filename": "flexsm-0.0.2-py2.7.egg", "has_sig": false, "md5_digest": "4f784041a024e824d55127419a56e139", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6356, "upload_time": "2018-05-30T09:02:57", "url": "https://files.pythonhosted.org/packages/c4/98/dde759f806f433b57ab83d03e4942d29eb2bf23589231c46a6a0ac2cc2ee/flexsm-0.0.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "b4a53274693a2f9d2ede7e5c4346f299", "sha256": "959d961651463d7d8ed9d6805ca4bfcb474d231e1d5eaeb4d6b2aeb517a77a17" }, "downloads": -1, "filename": "flexsm-0.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "b4a53274693a2f9d2ede7e5c4346f299", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3698, "upload_time": "2018-05-30T09:02:54", "url": "https://files.pythonhosted.org/packages/47/17/943b87059c83555332995cf6f62b7adc948a18dd4910d38633445677cbd1/flexsm-0.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "990372558d3d6ce445bf2735123bdb14", "sha256": "5dc430d2cd094f233a51520b6aa8f5139995eb56a9004d97d2f48ca892e1b09a" }, "downloads": -1, "filename": "flexsm-0.0.2-py3.5.egg", "has_sig": false, "md5_digest": "990372558d3d6ce445bf2735123bdb14", "packagetype": "bdist_egg", "python_version": "3.5", "requires_python": null, "size": 6546, "upload_time": "2018-05-30T09:02:58", "url": "https://files.pythonhosted.org/packages/57/33/6477b3b3bf08dd44f75de365bcdcc24e1119ea778d009f21e5cd1837fe05/flexsm-0.0.2-py3.5.egg" }, { "comment_text": "", "digests": { "md5": "c74d31d0f4cfd6d14917ea9f2c0b1a7a", "sha256": "d6b8b616749ebf6ba7699f814f62a4d182de8fc408bd8a79f93c65a973251c9f" }, "downloads": -1, "filename": "flexsm-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c74d31d0f4cfd6d14917ea9f2c0b1a7a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3700, "upload_time": "2018-05-30T09:02:55", "url": "https://files.pythonhosted.org/packages/f1/d3/e390c6c113f5644c5034a0cff62692bd860a086d21d12d170df9d264c87b/flexsm-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2a750c3249f6f478c87a86ce4c4792ec", "sha256": "f598d720979bc7ceb71fbc20dd864dc188dc93ed05d10bc3cb7c019745943435" }, "downloads": -1, "filename": "flexsm-0.0.2.tar.gz", "has_sig": false, "md5_digest": "2a750c3249f6f478c87a86ce4c4792ec", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3513, "upload_time": "2018-05-30T09:03:00", "url": "https://files.pythonhosted.org/packages/37/40/ee9683333ba3ce12c9a9413782308c7cc46e3da5fbeb51b65cf47c6cc41c/flexsm-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "64563d6d56b1813b5f55fb7237960cee", "sha256": "abad695bb942643e4fc6b2dcaa62cb052efde2beb2fb6d9600e431fef59796e7" }, "downloads": -1, "filename": "flexsm-0.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "64563d6d56b1813b5f55fb7237960cee", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3898, "upload_time": "2018-05-30T09:19:00", "url": "https://files.pythonhosted.org/packages/30/8f/fd995c887f19372356aa030687c9689f122c6c8587ba5273de96b5a38816/flexsm-0.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c056b5cffcac71b520d636b5f683d5d9", "sha256": "c0455bc590359eeee7d401d7375add451ce338d9e5e10f634b96cada7b51fd7c" }, "downloads": -1, "filename": "flexsm-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c056b5cffcac71b520d636b5f683d5d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3898, "upload_time": "2018-05-30T09:19:01", "url": "https://files.pythonhosted.org/packages/cd/70/09e1583504618069ee39645ba4fc858e70fb89cd985a87885839e1fa28c8/flexsm-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0049e760de955c5e6654aacae0fcc823", "sha256": "bc06fbdf5da8057b7fcc4e7e700851ad0a8f7019553871d940d93195526e17a8" }, "downloads": -1, "filename": "flexsm-0.0.3.tar.gz", "has_sig": false, "md5_digest": "0049e760de955c5e6654aacae0fcc823", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3762, "upload_time": "2018-05-30T09:19:02", "url": "https://files.pythonhosted.org/packages/2e/f5/fe4aa443625031d06913c1480988687d71df99f079b4171dda7556a731b9/flexsm-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "6ae0cfa220827a75e10336b13e1cec67", "sha256": "4c838dba07edb86e268079170e38d0d037cb48c94619216e687711587a598b2e" }, "downloads": -1, "filename": "flexsm-0.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "6ae0cfa220827a75e10336b13e1cec67", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3898, "upload_time": "2018-05-30T09:46:30", "url": "https://files.pythonhosted.org/packages/2b/64/d0e1d7aabde47904555874fadad67f2884780e73f536bc93d5b5c1dfaa23/flexsm-0.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "382055ab06159e7775bb8cecb4d7c8e9", "sha256": "3bf1a89b24d6c1c8839b389f76e4fb2ddb1d188fff17a4b3acb1ba14758a2c30" }, "downloads": -1, "filename": "flexsm-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "382055ab06159e7775bb8cecb4d7c8e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3899, "upload_time": "2018-05-30T09:46:31", "url": "https://files.pythonhosted.org/packages/30/4d/d327ef77c71bfc9e86c4f408415b592269053795b868fd282d664e23d5ee/flexsm-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6b97abf6039f8f92df3aa6f0a8c3b153", "sha256": "637c8ce48c6d551b79e3f81f8e4a187708f1adeb82533b856f2f6526b7a037d2" }, "downloads": -1, "filename": "flexsm-0.0.4.tar.gz", "has_sig": false, "md5_digest": "6b97abf6039f8f92df3aa6f0a8c3b153", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3767, "upload_time": "2018-05-30T09:46:32", "url": "https://files.pythonhosted.org/packages/8b/e4/43c99faaf0b65af623396aadf7d5f5fb350d6a20690ad1dfb9d786e777ee/flexsm-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "9a1e7ee144a462ebebe28e26616b3786", "sha256": "d3ad5a0e856cdf606ecdf25b86ac182cb224a5c88f0230b57ef1431e932859c5" }, "downloads": -1, "filename": "flexsm-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9a1e7ee144a462ebebe28e26616b3786", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3897, "upload_time": "2018-05-30T10:06:06", "url": "https://files.pythonhosted.org/packages/0e/93/60467ffd6cef9affd3eba64f79e08e45fe0dba85d80265d3b7e428f001cc/flexsm-0.0.5-py3-none-any.whl" } ], "0.0.6": [ { "comment_text": "", "digests": { "md5": "acd4946a69f843427fa320412faece71", "sha256": "7ae2aee2bab734ccb423ee3a158235d2d5c4e994863c9646154786df31ad1d4d" }, "downloads": -1, "filename": "flexsm-0.0.6-py3-none-any.whl", "has_sig": false, "md5_digest": "acd4946a69f843427fa320412faece71", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3938, "upload_time": "2018-05-30T10:11:16", "url": "https://files.pythonhosted.org/packages/05/33/365c979836d8c7c9fcc211757cc55d7caa2dd7a0a082100359bd34f05607/flexsm-0.0.6-py3-none-any.whl" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "5cc31b6fa8e101d0be7148ec7c036b18", "sha256": "ef5084b3123e3874f6e467a954ec1b6f06106bca69206a020d24284b6c6ba2bf" }, "downloads": -1, "filename": "flexsm-0.0.7-py3-none-any.whl", "has_sig": false, "md5_digest": "5cc31b6fa8e101d0be7148ec7c036b18", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3922, "upload_time": "2018-05-30T10:21:33", "url": "https://files.pythonhosted.org/packages/c3/33/cf519b9d3c23ab4d7e1bcc3bc6ec3fe044b26feb94bdeab97dd4947cce6c/flexsm-0.0.7-py3-none-any.whl" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "8490527395c1eea86a3181678f19d11a", "sha256": "0ad13da86abc26ce1c5268c068775148af8d4b15f83f9d5ad2a21427a21135a0" }, "downloads": -1, "filename": "flexsm-0.0.8-py3-none-any.whl", "has_sig": false, "md5_digest": "8490527395c1eea86a3181678f19d11a", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3934, "upload_time": "2018-05-30T10:28:20", "url": "https://files.pythonhosted.org/packages/cd/0b/e910201cac79b7ce614542a1fd287d87edd1c6d30e25dd48dbeb4a97bd23/flexsm-0.0.8-py3-none-any.whl" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "a1d4267f45ef6c236222ed3df1a4eac3", "sha256": "5e1ee6d77684ed66fd84b80296b5109ff5abaa569c0ca2a4836d1e41808da988" }, "downloads": -1, "filename": "flexsm-0.0.9-py3-none-any.whl", "has_sig": false, "md5_digest": "a1d4267f45ef6c236222ed3df1a4eac3", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 3910, "upload_time": "2018-05-30T10:33:21", "url": "https://files.pythonhosted.org/packages/f7/1c/3e6994df91c0d985d0274fa22472aec8b80c3d05cacc4801ce6ec54bd4a7/flexsm-0.0.9-py3-none-any.whl" } ], "0.1.0.0": [ { "comment_text": "", "digests": { "md5": "5c84197c0bdfa324d6bb1b816e0f007b", "sha256": "10567ab9719402d5a4820dc59b2bfd2554a0fb449251377c81ef51b289ea5634" }, "downloads": -1, "filename": "flexsm-0.1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5c84197c0bdfa324d6bb1b816e0f007b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3956, "upload_time": "2018-07-25T07:53:09", "url": "https://files.pythonhosted.org/packages/44/60/5ee2496fc1b7bc94adf18ef6fca90cbd2fe58b1a980d250b9421da8e237a/flexsm-0.1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36749ddd2f96c792da96ea84e02d0076", "sha256": "4e39a146209e77ac4ea3ddbe526c019591e5b75c7383505afadf585f82e1e23d" }, "downloads": -1, "filename": "flexsm-0.1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "36749ddd2f96c792da96ea84e02d0076", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3954, "upload_time": "2018-07-25T07:53:10", "url": "https://files.pythonhosted.org/packages/38/eb/a9545ac162da30452d1a97a966dae5e627b8df9f40d0a95b2baf60b1c68e/flexsm-0.1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4a86b614dc909d890be85cc88501b9c", "sha256": "4a9abefaef33b9b23e635ecdb70287e232d1f80ef9615f9df528f627e313dc5e" }, "downloads": -1, "filename": "flexsm-0.1.0.0.tar.gz", "has_sig": false, "md5_digest": "b4a86b614dc909d890be85cc88501b9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3972, "upload_time": "2018-07-25T07:53:11", "url": "https://files.pythonhosted.org/packages/06/10/f9408144cb214eb52a56392766835b3ead4502c2ca10687b7570c654d832/flexsm-0.1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5c84197c0bdfa324d6bb1b816e0f007b", "sha256": "10567ab9719402d5a4820dc59b2bfd2554a0fb449251377c81ef51b289ea5634" }, "downloads": -1, "filename": "flexsm-0.1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "5c84197c0bdfa324d6bb1b816e0f007b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 3956, "upload_time": "2018-07-25T07:53:09", "url": "https://files.pythonhosted.org/packages/44/60/5ee2496fc1b7bc94adf18ef6fca90cbd2fe58b1a980d250b9421da8e237a/flexsm-0.1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36749ddd2f96c792da96ea84e02d0076", "sha256": "4e39a146209e77ac4ea3ddbe526c019591e5b75c7383505afadf585f82e1e23d" }, "downloads": -1, "filename": "flexsm-0.1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "36749ddd2f96c792da96ea84e02d0076", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3954, "upload_time": "2018-07-25T07:53:10", "url": "https://files.pythonhosted.org/packages/38/eb/a9545ac162da30452d1a97a966dae5e627b8df9f40d0a95b2baf60b1c68e/flexsm-0.1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4a86b614dc909d890be85cc88501b9c", "sha256": "4a9abefaef33b9b23e635ecdb70287e232d1f80ef9615f9df528f627e313dc5e" }, "downloads": -1, "filename": "flexsm-0.1.0.0.tar.gz", "has_sig": false, "md5_digest": "b4a86b614dc909d890be85cc88501b9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3972, "upload_time": "2018-07-25T07:53:11", "url": "https://files.pythonhosted.org/packages/06/10/f9408144cb214eb52a56392766835b3ead4502c2ca10687b7570c654d832/flexsm-0.1.0.0.tar.gz" } ] }