{ "info": { "author": "Paul K. Korir, PhD", "author_email": "paul.korir@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "================================================================\nunits\n================================================================\nPython library to represent numbers with units\n\nExample:\n\n.. code:: python\n\n\timport units as u\n\tprint u.Unit(1, u.metre)\n\n\nUpcoming features\n================================================================\n* Short and long units (currently only short units)\n\n* Multipliers e.g. kilo (k), mega (M), kibi (KiB), ergs etc.\n\n* Arbitrary units e.g. bits (b), cars etc.\n\nFeatures\n================================================================\n* Basic units\n\n.. code:: python\n\n\timport units as u\n\tfrom random import randint\n\t# ampere\n\tprint u.Unit(randint(1, 100), u.ampere)\n\t# candela\n\tprint u.Unit(randint(1, 100), u.candela)\n\t# kelvin\n\tprint u.Unit(randint(1, 100), u.kelvin)\n\t# kilogram\n\tprint u.Unit(randint(1, 100), u.kilogram)\n\t# metre\n\tprint u.Unit(randint(1, 100), u.metre)\n\t# mole\n\tprint u.Unit(randint(1, 100), u.mole)\n\t# second\n\tprint u.Unit(randint(1, 100), u.second)\n\n* Operations on units\n\n.. code:: python\n\n\timport units as u\n\tfrom random import random\n\tx = u.Unit(random(), u.second)\n\ty = u.Unit(random(), u.ampere)\n\t# addition\n\tprint x + y\n\tprint y + x\n\t# subtraction\n\tprint x - y\n\tprint y - x\n\t# multiplication\n\tprint x * y\n\tprint y * x\n\t# division/true division\n\tprint x / y\n\tprint y / x\n\t# floor division\n\tprint x // y\n\tprint y // x\n\t# modulus\n\tprint x % y\n\t# power\n\tprint x ** y\n\tprint y ** x\n\n* Operations between scalars and units\n\n.. code:: python\n\n\timport units as u\n\tfrom random import random\n\tx = u.Unit(random(), u.second)\n\ta = random() * 10\n\t# addition\n\tprint a + y\n\tprint y + a\n\t# subtraction\n\tprint a - y\n\tprint y - a\n\t# multiplication\n\tprint a * y\n\tprint y * a\n\t# division/true division\n\tprint a / y\n\tprint y / a\n\t# floor division\n\tprint a // y\n\tprint y // a\n\t# modulus\n\tprint a % y\n\t# power\n\tprint a ** y\n\tprint y ** a\n\n* Derived units\n\n.. code:: python\n\n\timport units as u\n\tfrom random import random\n\t# hertz\n\tprint u.Unit(random() * 10, u.hertz)\n\t# newton\n\tprint u.Unit(random() * 10, u.newton)\n\t# pascal\n\tprint u.Unit(random() * 10, u.pascal)\n\t# joule\n\tprint u.Unit(random() * 10, u.joule)\n\t# watt\n\tprint u.Unit(random() * 10, u.watt)\n\t# coulomb\n\tprint u.Unit(random() * 10, u.coulomb)\n\t# volt\n\tprint u.Unit(random() * 10, u.volt)\n\t# farad\n\tprint u.Unit(random() * 10, u.farad)\n\t# ohm\n\tprint u.Unit(random() * 10, u.ohm)\n\t# siemems\n\tprint u.Unit(random() * 10, u.siemens)\n\t# weber\n\tprint u.Unit(random() * 10, u.weber)\n\t# tesla\n\tprint u.Unit(random() * 10, u.tesla)\n\t# henry\n\tprint u.Unit(random() * 10, u.henry)\n\t# degree celcius\n\tprint u.Unit(random() * 10, u.degree_celcius)\n\t#\u00a0lumen\n\tprint u.Unit(random() * 10, u.lumen)\n\t# lux\n\tprint u.Unit(random() * 10, u.lux)\n\t# becquerel\n\tprint u.Unit(random() * 10, u.becquerel)\n\t# gray\n\tprint u.Unit(random() * 10, u.gray)\n\t# sievert\n\tprint u.Unit(random() * 10, u.sievert)\n\t# katal\n\tprint u.Unit(random() * 10, u.katal)\n\n* Unpacking derived units\n\n.. code:: python\n\n\timport units as u\n\tfrom random import random\n\t# hertz\n\tprint u.Unit(random() * 10, u.hertz).full_units\n\t# newton\n\tprint u.Unit(random() * 10, u.newton).full_units\n\t# pascal\n\tprint u.Unit(random() * 10, u.pascal).full_units\n\t# joule\n\tprint u.Unit(random() * 10, u.joule).full_units\n\t# watt\n\tprint u.Unit(random() * 10, u.watt).full_units\n\t# coulomb\n\tprint u.Unit(random() * 10, u.coulomb).full_units\n\t# volt\n\tprint u.Unit(random() * 10, u.volt).full_units\n\t# farad\n\tprint u.Unit(random() * 10, u.farad).full_units\n\t# ohm\n\tprint u.Unit(random() * 10, u.ohm).full_units\n\t# siemems\n\tprint u.Unit(random() * 10, u.siemens).full_units\n\t# weber\n\tprint u.Unit(random() * 10, u.weber).full_units\n\t# tesla\n\tprint u.Unit(random() * 10, u.tesla).full_units\n\t# henry\n\tprint u.Unit(random() * 10, u.henry).full_units\n\t# degree celcius\n\tprint u.Unit(random() * 10, u.degree_celcius).full_units\n\t#\u00a0lumen\n\tprint u.Unit(random() * 10, u.lumen).full_units\n\t# lux\n\tprint u.Unit(random() * 10, u.lux).full_units\n\t# becquerel\n\tprint u.Unit(random() * 10, u.becquerel).full_units\n\t# gray\n\tprint u.Unit(random() * 10, u.gray).full_units\n\t# sievert\n\tprint u.Unit(random() * 10, u.sievert).full_units\n\t# katal\n\tprint u.Unit(random() * 10, u.katal).full_units\n\n* Arbitrary derived units\n\n.. code:: python\n\n\timport units as u\n\tspeed = u.DerivedUnit.define('speed', metre / second)\n\tv = Unit(10, speed)\n\n* Arbitrary custom units\n\n.. code:: python\n\n\tfrom __future__ import division\n\tfrom units import BaseUnit\n\n\tclass CommUnit(BaseUnit):\n\t \"\"\"Template class for communication units\"\"\"\n\t def __init__(self, *args, **kwargs):\n\t super(CommUnit, self).__init__(*args, **kwargs)\n\t # redefine the base units\n\t self.unit_dict = {\n\t 'b': 0,\n\t 's': 0,\n\t 'B': 0,\n\t }\n\t @classmethod\n\t def define(cls, key, value=1):\n\t \t\"\"\"Constructor\"\"\"\n\t obj = cls()\n\t assert key in obj.unit_dict.keys()\n\t assert isinstance(value, int)\n\t obj.unit_dict[key] = value\n\t return obj\n\nwhich will be used as follows\n\n.. code:: python\n\n\tbit = CommUnit.define('b') # define a bit as referring to the 'b' unit\n\tsecond = CommUnit.define('s') # a second is 's'\n\tdata = Unit(32, bit)\n\tT = Unit(4, second)\n\t# data rate\n\tprint data / T # 8.0 b\u00b7s^-1 - bits per second\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://gitlab.paulkorir.com/paulkorir/units", "keywords": "units", "license": "GNU GPL v3.0", "maintainer": "", "maintainer_email": "", "name": "python-units", "package_url": "https://pypi.org/project/python-units/", "platform": "", "project_url": "https://pypi.org/project/python-units/", "project_urls": { "Homepage": "https://gitlab.paulkorir.com/paulkorir/units" }, "release_url": "https://pypi.org/project/python-units/0.1.2/", "requires_dist": null, "requires_python": "", "summary": "Python library to represent numbers with units", "version": "0.1.2" }, "last_serial": 3381179, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "fc78a86b6bd2af3e2029edfa6c45eb97", "sha256": "07df13a64e54509939df127c36a16f12ae3028da4434c5cd670173c7433c8470" }, "downloads": -1, "filename": "python_units-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "fc78a86b6bd2af3e2029edfa6c45eb97", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4424, "upload_time": "2017-12-01T16:58:53", "url": "https://files.pythonhosted.org/packages/47/73/0bf54b49e31673060834a555de21b78225d9fbb8d163f77013c01191d674/python_units-0.1.1-py2-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "daf5a6d920a6bb8beb70ae0109ac6c37", "sha256": "aeda60f7526b7d2f2c8bfcac11fbbeeae558a0ae72fa2f9844e5e3ab031ccd20" }, "downloads": -1, "filename": "python_units-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "daf5a6d920a6bb8beb70ae0109ac6c37", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4424, "upload_time": "2017-12-01T21:13:42", "url": "https://files.pythonhosted.org/packages/40/a6/961ca34ab054a446ed5afd127012e9f2a971b95bd5f089d8a91a0ee0d096/python_units-0.1.2-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "daf5a6d920a6bb8beb70ae0109ac6c37", "sha256": "aeda60f7526b7d2f2c8bfcac11fbbeeae558a0ae72fa2f9844e5e3ab031ccd20" }, "downloads": -1, "filename": "python_units-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "daf5a6d920a6bb8beb70ae0109ac6c37", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 4424, "upload_time": "2017-12-01T21:13:42", "url": "https://files.pythonhosted.org/packages/40/a6/961ca34ab054a446ed5afd127012e9f2a971b95bd5f089d8a91a0ee0d096/python_units-0.1.2-py2-none-any.whl" } ] }