{ "info": { "author": "Tim Kostka", "author_email": "kostka@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# ucal\n\nThe ucal (unit calculator) module is a Python-based calculator which seamlessly integrates unit conversion.\n\n[![PyPI version](https://badge.fury.io/py/ucal.svg)](https://badge.fury.io/py/ucal)\n[![Build Status](https://travis-ci.org/timkostka/ucal.svg)](https://travis-ci.org/timkostka/ucal)\n[![codecov.io](https://codecov.io/github/timkostka/ucal/coverage.svg?branch=master)](https://codecov.io/github/timkostka/ucal)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/d70ccd0c3af74cef9e92b27a4fac326b)](https://www.codacy.com/app/timkostka/ucal?utm_source=github.com&utm_medium=referral&utm_content=timkostka/ucal&utm_campaign=Badge_Grade)\n\n## Getting started\n\nThe ucal package requires Python 3.4+ to use. Install the package by running the following:\n\n pip install --user ucal\n\nOnce installed, the GUI can be run from the command line.\n\n python -m ucal_gui\n\nIn addition, ucal can be integrated into your own code as follows:\n\n >>> import ucal\n >>> ucal.interpret('5km in mi')\n '3.10685596118667 mi'\n >>> ucal.interpret('67 in hex')\n '0x43'\n >>> ucal.interpret('1m + 3ft')\n '1.9144 m'\n\n## Screenshots\n\n---\n\n## Method of operation\n\nThe uCal engine evaluates an expression using the folowing steps.\n\n* Tokenizing\n\n### Tokenizing\n\nStarting with a string expression, the string is broken up into substring, each of which represents a token. The following tokens are possible.\n\n* Value\n\n * This is a number. Valid strings are `1`, `1e67`, `+1`, `-32.1E+526`, etc.\n\n* Variable\n\n * This is text such as `mm`, `kg`, etc.\n\n* Function\n\n * A function follows the same rules as a variable, but is immediately followed by an opening parenthesis token.\n\n* Opening parenthesis\n\n * This is the `(` sign.\n\n* Closing parenthesis\n\n * This is the `)` sign.\n\n* Prefix operator\n\n * This operates on the value immediately following it, such as the first `-` in `3 - -7`.\n\n * Valid operators of this type are `+` and `-`.\n\n* Infix operator\n\n * An infix operator is an operator that operates on the value before and after it, such as `+` for addition.\n\n * Valid operators of this type are `+`, `-`, `*`, `/`, `^` for exponentiation, and `%` for modulo operation.\n\n* Postfix operator\n\n * A postfix operator operates on the value immediately preceeding it.\n\n * The only valid operator of this type is the factorial operator `!`.\n\n### Interpret the percent sign\n\nThe percent sign `%` can be either the modulo operator or a percentage. We interpret it by looking at its context and determining which makes sense.\n\nIt is interpreted as a percentage if the previous token is a value and either it is the last token in the expression, or the next token is an infix operator or an opening parenthesis.\n\nExamples where it would be interpreted as the modulo operator are `1 % 2`.\n\nExamples where it would be interpreted as a percentage are `30%`, and `80% - 10%`.\n\nPercentages are effectively replaced with `*(0.01)` For example, `30%` becomes `30*(0.01)`. \n\n### Interpret implicit multiplication\n\nImplicit multiplication is added between tokens as appropriate. There are a limited number of instances in which multiplication is implies. These are the following.\n\n* Between a value and a variable or function.\n\n * Example: `1 in` is interpreted as `1 * in`.\n\n* Between a variable and a variable or function.\n\n * Example: `in lbs` is interpreted as `in * lbs`.\n\n* Between a closing parenthesis and an opening parenthsis.\n\n * Example: `(1) (2)` is interpreted as `(1) * (2)`.\n\n### Check syntax\n\nThe string of tokens is then checked for make sure the syntax makes sense.\n\n* Check for balanced parenthesis\n\n* Check prefix operators are followed by a quantity.\n\n* Check infix operators are preceeded and followed by a quantity.\n\n* Check postfix operators are preceeded by a quantity.\n\n* Check starting token is either a prefix operator or a quantity.\n\n* Check ending token is either a postfix operator or a quantity.\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/timkostka/ucal", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "ucal", "package_url": "https://pypi.org/project/ucal/", "platform": "", "project_url": "https://pypi.org/project/ucal/", "project_urls": { "Homepage": "https://github.com/timkostka/ucal" }, "release_url": "https://pypi.org/project/ucal/1.3.5/", "requires_dist": [ "pyperclip", "wxPython" ], "requires_python": "", "summary": "A calculator with automatic unit conversions", "version": "1.3.5" }, "last_serial": 5568990, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "52202a8e65462ea8349111238e5dea31", "sha256": "88bd9529d787e2c5c17c8cb1e312c1342171ceec1575f2d691bb06aa3fe3bd19" }, "downloads": -1, "filename": "uCal-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "52202a8e65462ea8349111238e5dea31", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 23749, "upload_time": "2019-02-09T18:18:53", "url": "https://files.pythonhosted.org/packages/5d/bc/cc197fd3320a692282416fd29be53067073fd6a44aa6f46f68ab08faa965/uCal-0.1-py3-none-any.whl" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b73742874d7b4f43a6bee94745c06b5f", "sha256": "df540b323e51a786be7a135ccfb56e8f10bebe380cc4afa20243c0d84fd6387a" }, "downloads": -1, "filename": "ucal-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b73742874d7b4f43a6bee94745c06b5f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29476, "upload_time": "2019-02-09T20:32:33", "url": "https://files.pythonhosted.org/packages/1d/96/08023678aa5de0cebb9f9182a4bcc646398efc78a1e397c3473ce82dc66e/ucal-0.1.1-py3-none-any.whl" } ], "0.1.10": [ { "comment_text": "", "digests": { "md5": "af88f183e024dbed912e1a92210c75cb", "sha256": "04498d9f9a6dc347a8a5b49d3ca9c9f2a94cdd74688cfe6466130068d3f2946d" }, "downloads": -1, "filename": "ucal-0.1.10-py3-none-any.whl", "has_sig": false, "md5_digest": "af88f183e024dbed912e1a92210c75cb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38359, "upload_time": "2019-02-09T22:06:00", "url": "https://files.pythonhosted.org/packages/95/0b/3a2abf41848a7d78c9b9ada83999ee4f33fed68c078f09c75f5e9694c06d/ucal-0.1.10-py3-none-any.whl" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "a612e28b9a56e19c98b81e2ab2f8d7b2", "sha256": "e1b68f79f1a8e5204a5ab6c4d45d8a94c7ee546773225f024fcb7a35d6b5c7dc" }, "downloads": -1, "filename": "ucal-0.1.11-py3-none-any.whl", "has_sig": false, "md5_digest": "a612e28b9a56e19c98b81e2ab2f8d7b2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38361, "upload_time": "2019-02-09T22:08:06", "url": "https://files.pythonhosted.org/packages/4a/a8/0959a2892563d95679908bbc8fa5e490dc69b59f23190dcef3418bc9c157/ucal-0.1.11-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "397d40a4d406796f121848df0ac82052", "sha256": "89dec5c2c90dde3651f06894b21c271af37acd3976303705a9318e44511d178b" }, "downloads": -1, "filename": "ucal-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "397d40a4d406796f121848df0ac82052", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29482, "upload_time": "2019-02-09T20:59:26", "url": "https://files.pythonhosted.org/packages/42/ab/992f7ab830f7b00b182ac989bf809169d2d119689a33b19a1247cb387d2d/ucal-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "97f153ed6b2256551d73d5b14651e7d9", "sha256": "1b775eed445a3e665838eb34a775c11852cd503431a99a4494e5e19045eadbef" }, "downloads": -1, "filename": "ucal-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "97f153ed6b2256551d73d5b14651e7d9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14703, "upload_time": "2019-02-09T21:05:10", "url": "https://files.pythonhosted.org/packages/73/66/a7fefc5d5e55fe687d9821c633560b689858fa6ff96180a7b245926aeffa/ucal-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "df14a8103ec0a67060c098f532557842", "sha256": "025094ab447d6b092f8e172cf126f134d5d7fdf02e0fa5fd98894921d50f1fee" }, "downloads": -1, "filename": "ucal-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "df14a8103ec0a67060c098f532557842", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29484, "upload_time": "2019-02-09T21:35:44", "url": "https://files.pythonhosted.org/packages/f8/ea/0d8d26c5a10a4af108f9e7684774657742b3d06ece0bfbb61564eee41b09/ucal-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "9d542569238abf999d4610485a3cf54b", "sha256": "d8fc445997c20b986ff195bbde77e1e7b285ec7689015d0fc1451331f084c4ca" }, "downloads": -1, "filename": "ucal-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9d542569238abf999d4610485a3cf54b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29522, "upload_time": "2019-02-09T21:41:31", "url": "https://files.pythonhosted.org/packages/b8/1f/567216d5d7c81c5a30e13a4b5698fb74857463989e3070c20366237de022/ucal-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "065f9ed7cf74623dfa84136088bcf8a7", "sha256": "809c6dcc9277bcafe5e9656a38e015ab43ccc0b65b25d6f5923a434303876911" }, "downloads": -1, "filename": "ucal-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "065f9ed7cf74623dfa84136088bcf8a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29525, "upload_time": "2019-02-09T21:56:09", "url": "https://files.pythonhosted.org/packages/9c/43/c232af1a12c16495d321ad344c834e75e478250dffaa77c2fb18d3774024/ucal-0.1.6-py3-none-any.whl" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "b5e95fcaf7deeb72d027356ebfe12ec9", "sha256": "22ab00a83d6787ee23a91000859e770758e2cd6f07d696424540b1412ddf2811" }, "downloads": -1, "filename": "ucal-0.1.7-py3-none-any.whl", "has_sig": false, "md5_digest": "b5e95fcaf7deeb72d027356ebfe12ec9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38348, "upload_time": "2019-02-09T21:57:54", "url": "https://files.pythonhosted.org/packages/8b/b0/84db92528d2c9968952687c87fcd3de27a5ae17f07eb1a7d3ea63c5ce538/ucal-0.1.7-py3-none-any.whl" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "bd2196b1379ddc91726ab0982578a611", "sha256": "024335243595ecc272a3238f79cd350157c8bde127d56cc911d5d09c3ff86c54" }, "downloads": -1, "filename": "ucal-0.1.8-py3-none-any.whl", "has_sig": false, "md5_digest": "bd2196b1379ddc91726ab0982578a611", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38348, "upload_time": "2019-02-09T21:59:37", "url": "https://files.pythonhosted.org/packages/04/40/c20231d2c488d3dde0fc7923c5d52c40db2d20c07a6fffc3a690df708e12/ucal-0.1.8-py3-none-any.whl" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "c9d01806ce514a53b773cf2ed7ba5bc0", "sha256": "2576887c1a3230bafd32398f77fcbe6e424632e9e7a9f25247d21e9afcba7915" }, "downloads": -1, "filename": "ucal-0.1.9-py3-none-any.whl", "has_sig": false, "md5_digest": "c9d01806ce514a53b773cf2ed7ba5bc0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 38349, "upload_time": "2019-02-09T22:02:32", "url": "https://files.pythonhosted.org/packages/e0/fe/de8366b4b3b562c8ec490208cb1eb943e6230a0160bce69c5e1f6b7c8bf5/ucal-0.1.9-py3-none-any.whl" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9cb4c8405d662c167052e961eb17db89", "sha256": "32ad96e7380358a23088de53624d49163aeaed01559fc26a7a2b1b4349b3b1fc" }, "downloads": -1, "filename": "ucal-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9cb4c8405d662c167052e961eb17db89", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 28070, "upload_time": "2019-02-09T22:31:05", "url": "https://files.pythonhosted.org/packages/ba/5e/53b42daa68ec8e108e096a49a5ed1b4ffc101176e8ddf3ef2f380068c10c/ucal-0.2.0-py3-none-any.whl" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a4f4cccf4b96aba028b5d057ebef1003", "sha256": "1b7a192769868e290e778b2f7606b0b47e57f59efa614c8e904aaa9bd1d626b2" }, "downloads": -1, "filename": "ucal-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a4f4cccf4b96aba028b5d057ebef1003", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 31194, "upload_time": "2019-02-09T22:59:18", "url": "https://files.pythonhosted.org/packages/5f/e0/cebdbb7f24aae079b339a3fc9140a3b6785846e47a000366456788adcabe/ucal-0.2.1-py3-none-any.whl" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "97306717c71c73cfeee6ede76cbe534d", "sha256": "ddc1ddcb5dda90c2dc486e28af9c86109e2a039579f9c0b0190bec9509896665" }, "downloads": -1, "filename": "ucal-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "97306717c71c73cfeee6ede76cbe534d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61481, "upload_time": "2019-02-09T23:02:42", "url": "https://files.pythonhosted.org/packages/42/88/a2164b5bd35ade93661db94ea399a77e8a5891ddd806db7912d6fc026437/ucal-0.2.2-py3-none-any.whl" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "fa50b870b186077946d64f2b98cbf24c", "sha256": "14149f9704f8c2ecfbc25c5ebdb567525089917359eb4d3a76215f3ee17108bc" }, "downloads": -1, "filename": "ucal-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fa50b870b186077946d64f2b98cbf24c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61530, "upload_time": "2019-02-10T15:05:58", "url": "https://files.pythonhosted.org/packages/8a/93/45deb0f52a543146bbcf85d77df3e99d3af6843b24f02b6d34effda2fd6d/ucal-0.3.0-py3-none-any.whl" } ], "0.3.10": [ { "comment_text": "", "digests": { "md5": "11dbc857ea3cae39369264025104e829", "sha256": "e4d52b0760cffc685e9bd3cac50921b80c782a9fc2d44b1436b62465b63a3715" }, "downloads": -1, "filename": "ucal-0.3.10-py3-none-any.whl", "has_sig": false, "md5_digest": "11dbc857ea3cae39369264025104e829", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61411, "upload_time": "2019-02-10T23:31:33", "url": "https://files.pythonhosted.org/packages/50/a9/11cb26957c76688db53959f859c5dc56dd1c5d6dc08f328a44092cacccc7/ucal-0.3.10-py3-none-any.whl" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "39bd46daaf9de63fba7c8d028b652217", "sha256": "d4f26274f1fcb1fdf1b9448e3e9e4547fadb860780375017dd61af554cd08863" }, "downloads": -1, "filename": "ucal-0.3.11-py3-none-any.whl", "has_sig": false, "md5_digest": "39bd46daaf9de63fba7c8d028b652217", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61480, "upload_time": "2019-02-10T23:50:11", "url": "https://files.pythonhosted.org/packages/e5/58/953858a180aced3f508fb8d286ee7dc6a6b339e695e72a71bb4ae02fa043/ucal-0.3.11-py3-none-any.whl" } ], "0.3.12": [ { "comment_text": "", "digests": { "md5": "1f9962185de6b132cadf057896d2c65d", "sha256": "6fafc6bb3dffcf3cf5d6f62c3de8cb223a6fdcc452a510d4d7badf8c9eb17a4f" }, "downloads": -1, "filename": "ucal-0.3.12-py3-none-any.whl", "has_sig": false, "md5_digest": "1f9962185de6b132cadf057896d2c65d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61478, "upload_time": "2019-02-11T00:30:07", "url": "https://files.pythonhosted.org/packages/49/ea/37b49ef72ea14cdb3dcc6ae506aa2c53b27cc11a074e8997197b10d0562d/ucal-0.3.12-py3-none-any.whl" } ], "0.3.13": [ { "comment_text": "", "digests": { "md5": "def6f457dfeeff92b54910acfbc24ce8", "sha256": "a313e33f938a5acfdfb4d62a4197e4fd1a294b23766b02af2d88ff623b959540" }, "downloads": -1, "filename": "ucal-0.3.13-py3-none-any.whl", "has_sig": false, "md5_digest": "def6f457dfeeff92b54910acfbc24ce8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61475, "upload_time": "2019-02-11T00:30:57", "url": "https://files.pythonhosted.org/packages/45/b5/9a22fb2d4f34f825f92bca05ef2c897d197c4aae62d30fad0f58ae42745b/ucal-0.3.13-py3-none-any.whl" } ], "0.3.14": [ { "comment_text": "", "digests": { "md5": "68d8a5b1cfd80a5e2037fc3025ac1ed2", "sha256": "ca576f1f642f1b7b722d9d8d5d9b4f9dc6053d883756c3ad345a7dda8c32aece" }, "downloads": -1, "filename": "ucal-0.3.14-py3-none-any.whl", "has_sig": false, "md5_digest": "68d8a5b1cfd80a5e2037fc3025ac1ed2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61475, "upload_time": "2019-02-11T01:41:47", "url": "https://files.pythonhosted.org/packages/c4/98/12802bea35a00df3e91e1d002816b7f3ddf8aadb0609355a8f19affde5ba/ucal-0.3.14-py3-none-any.whl" } ], "0.3.15": [ { "comment_text": "", "digests": { "md5": "4a1b35e379a14545cdf99fe2518f2363", "sha256": "8677843fb0280f89aef67042264b7d3d964230addbb2f1b5d0de01edb1f5047c" }, "downloads": -1, "filename": "ucal-0.3.15-py3-none-any.whl", "has_sig": false, "md5_digest": "4a1b35e379a14545cdf99fe2518f2363", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61488, "upload_time": "2019-02-11T02:08:35", "url": "https://files.pythonhosted.org/packages/65/8c/c3a89c9ed6037960d7371516b9176e4cfd58b260c385fef6d24b32a7af53/ucal-0.3.15-py3-none-any.whl" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "e39d8706ddbcfe9d5f7bd5867243e414", "sha256": "48643ceef7c4cc292af0e4c00559bcdf1016037cba3910b5a44bfd579b5f29db" }, "downloads": -1, "filename": "ucal-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "e39d8706ddbcfe9d5f7bd5867243e414", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61801, "upload_time": "2019-02-10T16:11:00", "url": "https://files.pythonhosted.org/packages/93/45/55a405f84e1b32136cd511d62676267956ff90f1151fbe4b798bae94a66c/ucal-0.3.2-py3-none-any.whl" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "71db4ca275303d8293242e9d24ee03cf", "sha256": "b53a508cddb872cb441e1443ad4e53261bca5e560a2413799a6dfeb2d29ea266" }, "downloads": -1, "filename": "ucal-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "71db4ca275303d8293242e9d24ee03cf", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61802, "upload_time": "2019-02-10T16:11:02", "url": "https://files.pythonhosted.org/packages/a2/1e/77e0a41d4fa6737d3c308b8ef412ec0b02943ca5cae9bd81084580782178/ucal-0.3.3-py3-none-any.whl" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "87a0244284f1821b4dddbedd94ff15f3", "sha256": "532547607d886992aa48fb16bef3eea770cd7dd6fe0df58ce95d14ce16658cc0" }, "downloads": -1, "filename": "ucal-0.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "87a0244284f1821b4dddbedd94ff15f3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61804, "upload_time": "2019-02-10T16:15:43", "url": "https://files.pythonhosted.org/packages/f3/8b/f4d005da7887ff0bef2e829b0bcdcdb540486318942ddf7feeab7a2cc479/ucal-0.3.4-py3-none-any.whl" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "4c6ce26eecf171ce5a20990d7e1fa981", "sha256": "e69c803da3f8516f75d125f4044b383c42c4f2a26b40747d52375e46751ddfcb" }, "downloads": -1, "filename": "ucal-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "4c6ce26eecf171ce5a20990d7e1fa981", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61802, "upload_time": "2019-02-10T16:15:44", "url": "https://files.pythonhosted.org/packages/e0/ea/0bc6f7ac3a6e2b076db56bdb6f7887cba47de614b39dc375ab5efffc6261/ucal-0.3.5-py3-none-any.whl" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "a2896d74b33315646153f6b92945af37", "sha256": "5cc7080f50cf74a36e0061f467809d54c2d084b9c2485558ff75bab98c851ebf" }, "downloads": -1, "filename": "ucal-0.3.6-py3-none-any.whl", "has_sig": false, "md5_digest": "a2896d74b33315646153f6b92945af37", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61802, "upload_time": "2019-02-10T16:17:17", "url": "https://files.pythonhosted.org/packages/c2/a1/fa3995ff5c01f7e77a2aa917814f23be508693a7c85e2cb498c051b08fe4/ucal-0.3.6-py3-none-any.whl" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "da2cf60a73f28c9ef13e70f62596fa1b", "sha256": "40184c09199d779b96f6f00011f708784a3b7f351d92d9ab537012292f8b1545" }, "downloads": -1, "filename": "ucal-0.3.7-py3-none-any.whl", "has_sig": false, "md5_digest": "da2cf60a73f28c9ef13e70f62596fa1b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61803, "upload_time": "2019-02-10T16:17:18", "url": "https://files.pythonhosted.org/packages/76/2b/926884a9911ad89ea41ff9a63f821fade6404d2e119858c8d2c9d236253c/ucal-0.3.7-py3-none-any.whl" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "d87e27a2fefd69495479a3d6cc79e911", "sha256": "09146f16d0e379b811f8a3473a31cce5bec5dbc32a827d0419dd3821b9215486" }, "downloads": -1, "filename": "ucal-0.3.8-py3-none-any.whl", "has_sig": false, "md5_digest": "d87e27a2fefd69495479a3d6cc79e911", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61803, "upload_time": "2019-02-10T16:23:37", "url": "https://files.pythonhosted.org/packages/da/ad/67d65df98a2c3460e221c777c5573a91170cba0567690e8d116a2e4bcd13/ucal-0.3.8-py3-none-any.whl" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "acf58021884ad86f95cd21b31be72608", "sha256": "9d36af212b09a141dd38e440bb3bf8d41940a42c0ae467452d091004834e0601" }, "downloads": -1, "filename": "ucal-0.3.9-py3-none-any.whl", "has_sig": false, "md5_digest": "acf58021884ad86f95cd21b31be72608", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61802, "upload_time": "2019-02-10T20:14:42", "url": "https://files.pythonhosted.org/packages/03/2d/2248384533f571409acadcc19e76d47b00cd818c527d4b8ed40cea982381/ucal-0.3.9-py3-none-any.whl" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a6dd4e3d27ce0a118e058109a6e5d2ae", "sha256": "b095e13ce976a08200cdc1baa7a6228532b04467dcb6aaa8b6bc492b3e0fa14c" }, "downloads": -1, "filename": "ucal-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a6dd4e3d27ce0a118e058109a6e5d2ae", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 58490, "upload_time": "2019-03-22T03:09:54", "url": "https://files.pythonhosted.org/packages/29/09/0d20abe8660161002308363b60d9274ee8faf6c3c3bbfd90792c1369f1ba/ucal-1.0.0-py3-none-any.whl" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "f691c02416e3ae13f7022275004f262c", "sha256": "b68eb3c8e1652e02b38a6a803209507f7d35d6128b9edfffb54096e7971f3f15" }, "downloads": -1, "filename": "ucal-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f691c02416e3ae13f7022275004f262c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62307, "upload_time": "2019-05-27T01:57:28", "url": "https://files.pythonhosted.org/packages/40/87/78f5485bccfe78b68b1300f4a8e87cc73d8ee0d88b4b5f38f79495355a9f/ucal-1.1.0-py3-none-any.whl" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "08190ca50904cef70fe4227d9d21c9bb", "sha256": "d9b855340bb8ef220c6a69b8edc36129f4d81b6eeb746d5022f6b8a1484427be" }, "downloads": -1, "filename": "ucal-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "08190ca50904cef70fe4227d9d21c9bb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62393, "upload_time": "2019-05-27T02:08:34", "url": "https://files.pythonhosted.org/packages/c6/6f/4cdded0fbf7ed6c5983ce1fe249205d6b0a1c5d44167f189c3d02c1779fb/ucal-1.2.0-py3-none-any.whl" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "c92d8e4614d48784617eb033c701a74a", "sha256": "ea058f6ea5d3bb5832791eb1f8fc4504b681ca2241d693ad51f610a0bb0cf8c1" }, "downloads": -1, "filename": "ucal-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c92d8e4614d48784617eb033c701a74a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62393, "upload_time": "2019-05-27T02:22:53", "url": "https://files.pythonhosted.org/packages/c9/50/d060a529a05845b7ac5163550dae731687f32604cf34d7d44e3551456a21/ucal-1.3.0-py3-none-any.whl" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "336d1591c40ead68ae6c65b8f0c099b1", "sha256": "205669f1f407d5e537629312abd4ce038bc6379e43ab3209aac5965a53b28158" }, "downloads": -1, "filename": "ucal-1.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "336d1591c40ead68ae6c65b8f0c099b1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62390, "upload_time": "2019-05-27T02:26:14", "url": "https://files.pythonhosted.org/packages/ba/bf/76df0c0fd8bf849da602011e9d27dc67b9cd7ba11e349702066b552a0a10/ucal-1.3.1-py3-none-any.whl" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "798324d33a400155451b478ef69d574a", "sha256": "a89b2229eea527743834a383876e589300703936ef9be41f0b7148f513b55505" }, "downloads": -1, "filename": "ucal-1.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "798324d33a400155451b478ef69d574a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 62399, "upload_time": "2019-05-27T03:13:35", "url": "https://files.pythonhosted.org/packages/19/a4/574eb2e798c2408cb4f4cda903ddddba3be744778226c932fe00a00b2e23/ucal-1.3.2-py3-none-any.whl" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "90ca24330e3d33b8087defe563f6b599", "sha256": "cd8c317d9cdb8276d1528a5b5d098dd36ac5dc6d8961a76ca8e55bddab8565ab" }, "downloads": -1, "filename": "ucal-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "90ca24330e3d33b8087defe563f6b599", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61850, "upload_time": "2019-05-27T18:32:06", "url": "https://files.pythonhosted.org/packages/6f/61/d0b78c9f020f48a7ad2dd6c4492b473e1758c48fd4cb79ca56eca399047d/ucal-1.3.3-py3-none-any.whl" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "7504fc5a8e0bc13940f39db9212a5e65", "sha256": "c38cd346ac36c77399a438a662c89d4271cbbc72a9a839ba9d065611bb3ad4ba" }, "downloads": -1, "filename": "ucal-1.3.4-py3-none-any.whl", "has_sig": false, "md5_digest": "7504fc5a8e0bc13940f39db9212a5e65", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61848, "upload_time": "2019-05-27T18:35:01", "url": "https://files.pythonhosted.org/packages/ee/78/78caf61306073bb6edc98e8c8d4a0605b3aee0b40e86e0ffae7ec4c15761/ucal-1.3.4-py3-none-any.whl" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "7b1e78c1a10e1ec50a20994f0ec13f4a", "sha256": "9ab4e6e2e62a4ee72d977092ca7612ba8e8e6ce6a1f8c8f2bdebe04af1617e68" }, "downloads": -1, "filename": "ucal-1.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "7b1e78c1a10e1ec50a20994f0ec13f4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61872, "upload_time": "2019-07-22T20:34:29", "url": "https://files.pythonhosted.org/packages/3b/7b/45c605565089254ac993097923f94fd12291c027825c0d527d1250697a51/ucal-1.3.5-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7b1e78c1a10e1ec50a20994f0ec13f4a", "sha256": "9ab4e6e2e62a4ee72d977092ca7612ba8e8e6ce6a1f8c8f2bdebe04af1617e68" }, "downloads": -1, "filename": "ucal-1.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "7b1e78c1a10e1ec50a20994f0ec13f4a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 61872, "upload_time": "2019-07-22T20:34:29", "url": "https://files.pythonhosted.org/packages/3b/7b/45c605565089254ac993097923f94fd12291c027825c0d527d1250697a51/ucal-1.3.5-py3-none-any.whl" } ] }