{ "info": { "author": "Vincent Whitchurch", "author_email": "vincent@whitchurch.se", "bugtrack_url": null, "classifiers": [ "Environment :: Console", "Framework :: IPython", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Topic :: Software Development" ], "description": ".. -*- rst -*-\n\nXalc\n====\n\nXalc is a hexadecimal calculator for embedded systems programmers, implemented\nas a pre-processor for Python expressions, with a console interface based on\nIPython.\n\nFeatures:\n\n- Mixed calculations with hex, decimal, binary and binary prefix literals\n- Support for undecorated hex literals. Ambiguous literals can be forced to hex by either prefixing or suffixing with 'x'.\n- Display in hex, decimal, binary (with bit position ruler) and binary prefixes (sizes)\n- Simple bit mask construction\n- Bit field extraction operator\n- From IPython: Support for arbitrary Python expressions (minus the ones that conflict with the pre-processed syntax), command history, access to previous results with _* variables, etc.\n\nThe following \"screenshot\" demonstrates some of the features of Xalc. The real\nprogram displays the different bases in different colors, if your console\nsupports that::\n\n $ xalc\n In [1]: deadbeef\n 0xdeadbeef\n Out[1]:\n 3735928559 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0xdeadbeef \u2502 1101 1110 1010 1101 1011 1110 1110 1111\n 3 Gi + 490 Mi + 879 Ki + 751\n\n In [2]: deadbeef $ m5t13\n 0xdeadbeef >> 5 & ((0x3fe0) >> 5)\n Out[2]:\n 503 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0x000001f7 \u2502 0000 0000 0000 0000 0000 0001 1111 0111\n\n In [3]: _ ^ cafe\n _ ^ 0xcafe\n Out[3]:\n 51977 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0x0000cb09 \u2502 0000 0000 0000 0000 1100 1011 0000 1001\n 50 Ki + 777\n\n In [4]: 7f000000 - 35000000x\n 0x7f000000 - 0x35000000\n Out[4]:\n 1241513984 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0x4a000000 \u2502 0100 1010 0000 0000 0000 0000 0000 0000\n 1 Gi + 160 Mi\n\n In [5]: m2p0_5_8t9_29_31t31\n (0x3|0x20|0x300|0x20000000|0x80000000)\n Out[5]:\n 2684355363 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0xa0000323 \u2502 1010 0000 0000 0000 0000 0011 0010 0011\n 2 Gi + 512 Mi + 803\n\n In [6]: 2g | m12\n 0x80000000 | (0x1000)\n Out[6]:\n 2147487744 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0x80001000 \u2502 1000 0000 0000 0000 0001 0000 0000 0000\n 2 Gi + 4 Ki\n\n In [7]: -45\n -45\n Out[7]:\n -45 \u2502 28\u2500\u256e 24\u2500\u256e 20\u2500\u256e 16\u2500\u256e 12\u2500\u256e 8\u2500\u256e 4\u2500\u256e 0\u2500\u256e\n 0xffffffd3 \u2502 1111 1111 1111 1111 1111 1111 1101 0011\n\nInstall with pip::\n\n pip install --upgrade xalc\n\nOr by cloning the `git repo `_ and running::\n\n python setup.py install\n\nRun ``xalc`` after installation.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rabinv/xalc", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "xalc", "package_url": "https://pypi.org/project/xalc/", "platform": "", "project_url": "https://pypi.org/project/xalc/", "project_urls": { "Homepage": "https://github.com/rabinv/xalc" }, "release_url": "https://pypi.org/project/xalc/0.6.0/", "requires_dist": [ "bitstring (>=3.1.4)", "blessed (>=1.14.1)", "ipython (>=5.0.0)" ], "requires_python": "", "summary": "Hexadecimal calculator", "version": "0.6.0" }, "last_serial": 5388358, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fb8bc23cf4ef4c21bfcea8108b1f9731", "sha256": "768cc8a58a122ea0b6806d5a20e0a90c32b3f7f815ff414960a09c495764dd55" }, "downloads": -1, "filename": "xalc-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "fb8bc23cf4ef4c21bfcea8108b1f9731", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7694, "upload_time": "2016-05-06T17:53:30", "url": "https://files.pythonhosted.org/packages/7b/fe/bc44c223a0f5c92a46b1facb4d6ca4a5bdf3162ccff2f654839c3330f703/xalc-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "88d7a02fe3922e870b822cfc1f2dbf28", "sha256": "9542bc809ad3b7ac9d120a98f25663cfe595de0c2f15b561b7142902a2ae634c" }, "downloads": -1, "filename": "xalc-0.1.0.tar.gz", "has_sig": false, "md5_digest": "88d7a02fe3922e870b822cfc1f2dbf28", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5021, "upload_time": "2016-05-06T17:53:53", "url": "https://files.pythonhosted.org/packages/aa/8b/6f51dd5a0684989bd4e9dc6e3ee7c4541df2a2fd82877dbad0c5b04e6e44/xalc-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "13eb06d44b3fc33e94a2c0add8ef5f45", "sha256": "5d4c82e0e971ca4de9d26440f525706aab286f42e8e65b9e0ea97f04b73ea72c" }, "downloads": -1, "filename": "xalc-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "13eb06d44b3fc33e94a2c0add8ef5f45", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8007, "upload_time": "2016-05-12T20:59:37", "url": "https://files.pythonhosted.org/packages/75/07/830e4e08a5b700812a0e331b6c58f8994ac6daa91e0e6dd77d56f58d6885/xalc-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b925dd6af637f84794cbdf4a5f584b2", "sha256": "9654df71c5641a3356cbcd128a5247161d371c84cbc5b1e7c619c458a35f16fc" }, "downloads": -1, "filename": "xalc-0.2.0.tar.gz", "has_sig": false, "md5_digest": "8b925dd6af637f84794cbdf4a5f584b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5343, "upload_time": "2016-05-12T20:59:45", "url": "https://files.pythonhosted.org/packages/19/fc/9f6d1e0daf5d79d1dd3adbe3716a32058e128a8c3e2d9487ff129fa010fa/xalc-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "52c71030d160c85d6dc0699c25660eb2", "sha256": "f5c72ce11e791d529aacd960ec1f10b94aae9212d7dd33da0e287903a9982cec" }, "downloads": -1, "filename": "xalc-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "52c71030d160c85d6dc0699c25660eb2", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8201, "upload_time": "2016-05-13T00:27:06", "url": "https://files.pythonhosted.org/packages/9f/01/6e058eb3620b41e9e3779f98953520dbcc30d328dbec2f5465d0c03e915e/xalc-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "49641a14f08391f26f058584e61ed273", "sha256": "f6ab0951c0dde40eb9665ed1660024232c36f2c91dd48816331daa4535dc27d4" }, "downloads": -1, "filename": "xalc-0.3.0.tar.gz", "has_sig": false, "md5_digest": "49641a14f08391f26f058584e61ed273", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5521, "upload_time": "2016-05-13T00:27:12", "url": "https://files.pythonhosted.org/packages/db/08/756e44962a37867dfdd97d808a4bf2ad58430fe257cd26af283e8dbc5dbf/xalc-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "d4aa8904149da4ce93ba4f04f468c58f", "sha256": "c01979ec15e6cfccbba56a1125f9f69056ecdde5eba3e4298029c2a3fb63101e" }, "downloads": -1, "filename": "xalc-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d4aa8904149da4ce93ba4f04f468c58f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 7878, "upload_time": "2016-09-10T11:33:30", "url": "https://files.pythonhosted.org/packages/0a/4a/3e7af9dcc70ed3e625ecb6a4e4ca2246c8d062afc4ca0e575cc4aa394920/xalc-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "295ba6c26394e09e74ba50f6d2affc63", "sha256": "699158e76ef84e3b26ea49e56c2b832bdbcd65a90d3bc75bef6f56221e3e26ba" }, "downloads": -1, "filename": "xalc-0.4.0.tar.gz", "has_sig": false, "md5_digest": "295ba6c26394e09e74ba50f6d2affc63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5190, "upload_time": "2016-09-10T11:33:31", "url": "https://files.pythonhosted.org/packages/cb/25/cec9c2496dfa08ddbe409c68d8114608b419114100cb4cb50d07c90dae39/xalc-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "1fc367127fa7ce549e321be54f5b39e4", "sha256": "7c1c90ec611b6fcace7622a2ef888ed72abe91430b246cebc72e97caed470578" }, "downloads": -1, "filename": "xalc-0.5.0-py2-none-any.whl", "has_sig": false, "md5_digest": "1fc367127fa7ce549e321be54f5b39e4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 7958, "upload_time": "2017-05-20T09:53:14", "url": "https://files.pythonhosted.org/packages/d9/b9/3c9722ff5e027161abcc079423d251bac7e106d1feefb2df37f65046f441/xalc-0.5.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25fb92630c1a2236bed5d5ea092075ba", "sha256": "b58db08f12992b184bb101338adbf2b79449afadbb91b8c6d7034d21134ac282" }, "downloads": -1, "filename": "xalc-0.5.0.tar.gz", "has_sig": false, "md5_digest": "25fb92630c1a2236bed5d5ea092075ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5313, "upload_time": "2017-05-20T09:53:15", "url": "https://files.pythonhosted.org/packages/be/5f/93b55388c72e7ef1e2b2041157b006252e3802590756dd72480b0c058ee6/xalc-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "aebe7e3fd35cb1381c07d3dc85666c13", "sha256": "ce648a692db72444b56b9a8752505c1a8e67db70dd67efa290b398906bd85937" }, "downloads": -1, "filename": "xalc-0.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "aebe7e3fd35cb1381c07d3dc85666c13", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6922, "upload_time": "2019-06-11T21:09:54", "url": "https://files.pythonhosted.org/packages/3c/e1/5b52cbe2805a38dcbd56ee826215f394a9d69eb662651497b9cb1ccdedde/xalc-0.6.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c25c15a46f39a149da6acbb51513956", "sha256": "917d00f003ee312d00ef3b139ba09b9cb06c9e4c3955d3d3af54ad0c6de818de" }, "downloads": -1, "filename": "xalc-0.6.0.tar.gz", "has_sig": false, "md5_digest": "6c25c15a46f39a149da6acbb51513956", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5453, "upload_time": "2019-06-11T21:09:55", "url": "https://files.pythonhosted.org/packages/d2/e1/1d7f3ffe3cb8e79ae0819557f3b152d5b5694c9bedb38f9a5713a7b69241/xalc-0.6.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "aebe7e3fd35cb1381c07d3dc85666c13", "sha256": "ce648a692db72444b56b9a8752505c1a8e67db70dd67efa290b398906bd85937" }, "downloads": -1, "filename": "xalc-0.6.0-py2-none-any.whl", "has_sig": false, "md5_digest": "aebe7e3fd35cb1381c07d3dc85666c13", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6922, "upload_time": "2019-06-11T21:09:54", "url": "https://files.pythonhosted.org/packages/3c/e1/5b52cbe2805a38dcbd56ee826215f394a9d69eb662651497b9cb1ccdedde/xalc-0.6.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c25c15a46f39a149da6acbb51513956", "sha256": "917d00f003ee312d00ef3b139ba09b9cb06c9e4c3955d3d3af54ad0c6de818de" }, "downloads": -1, "filename": "xalc-0.6.0.tar.gz", "has_sig": false, "md5_digest": "6c25c15a46f39a149da6acbb51513956", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5453, "upload_time": "2019-06-11T21:09:55", "url": "https://files.pythonhosted.org/packages/d2/e1/1d7f3ffe3cb8e79ae0819557f3b152d5b5694c9bedb38f9a5713a7b69241/xalc-0.6.0.tar.gz" } ] }