{ "info": { "author": "Miguel \u00c1ngel Garc\u00eda", "author_email": "miguelangel.garcia@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development", "Topic :: Software Development :: User Interfaces" ], "description": "See it at:\n\n- `pypi`_\n- `GitHub`_\n\n============== =============== ========= ============\nVERSION DOWNLOADS TESTS COVERAGE\n============== =============== ========= ============\n|pip version| |pip downloads| |travis| |coveralls|\n============== =============== ========= ============\n\nLibrary to easily read single chars and key strokes.\n\nGoal and Philosophy\n===================\n\nBorn as a `python-inquirer`_ requirement.\n\nThe idea is to have a portable way to read **single** characters and **key-strokes**.\n\n\nDocumentation\n=============\n\nInstallation\n------------\n\n::\n\n pip install readchar\n\nThe :code:`readchar` library works with python 2.7, 3.4, 3.5, 3.6 and Pypy.\n\nUsage\n-----\n\nUsage example:\n\n.. code:: python\n\n import readchar\n\n c = readchar.readchar()\n key = readchar.readkey()\n\nAPI\n----\n\nThere are just two methods:\n\n:code:`readchar()`\n//////////////////\n\nReads the next char from :code:`stdin`, returning it as a string with length 1.\n\n\n:code:`readkey()`\n/////////////////\n\nReads the next key-stroke from :code:`stdin`, returning it as a string.\n\nA key-stroke can have:\n\n- 1 character for normal keys: 'a', 'z', '9'...\n- 2 characters for combinations with ALT: ALT+A, ...\n- 3 characters for cursors: ->, <-, ...\n- 4 characters for combinations with CTRL and ALT: CTRL+ALT+SUPR, ...\n\nThere is a list of previously captured chars with their names in :code:`readchar.key`, in order to be used in comparisons and so on. This list is not enough tested and it can have mistakes, so use it carefully. Please, report them if found.\n\n\nSO Support\n----------\n\nSadly, this library has only being probed on GNU/Linux. Please, if you can try it in another SO and find a bug, put an issue or send the pull-request.\n\nThank you!\n\nHow to contribute\n=================\n\nYou can download the code, make some changes with their tests, and make a pull-request.\n\nIn order to develop or running the tests, you can do:\n\n1. Clone the repository.\n\n.. code:: bash\n\n git clone https://github.com/magmax/python-readchar.git\n\n2. Create a virtual environment:\n\n.. code:: bash\n\n virtualenv venv\n\n3. Enter in the virtual environment\n\n.. code:: bash\n\n source venv/bin/activate\n\n4. Install dependencies\n\n.. code:: bash\n\n pip install -r requirements.txt -r requirements-dev.txt\n\n5. Run tests\n\n.. code:: bash\n\n make\n\n\nPlease, **Execute the tests before any pull-request**. This will avoid invalid builds.\n\n\nLicense\n=======\n\nCopyright (c) 2014, 2015 Miguel Angel Garcia (`@magmax9`_).\n\nBased on previous work on gist `getch()-like unbuffered character reading from stdin on both Windows and Unix (Python recipe)`_, started by `Danny Yoo`_.\n\nLicensed under `the MIT license`_.\n\n\n.. |travis| image:: https://travis-ci.org/magmax/python-readchar.png\n :target: `Travis`_\n :alt: Travis results\n\n.. |coveralls| image:: https://coveralls.io/repos/magmax/python-readchar/badge.png\n :target: `Coveralls`_\n :alt: Coveralls results_\n\n.. |pip version| image:: https://img.shields.io/pypi/v/readchar.svg\n :target: https://pypi.python.org/pypi/readchar\n :alt: Latest PyPI version\n\n.. |pip downloads| image:: https://img.shields.io/pypi/dm/readchar.svg\n :target: https://pypi.python.org/pypi/readchar\n :alt: Number of PyPI downloads\n\n.. _pypi: https://pypi.python.org/pypi/readchar\n.. _GitHub: https://github.com/magmax/python-readchar\n.. _python-inquirer: https://github.com/magmax/python-inquirer\n.. _Travis: https://travis-ci.org/magmax/python-readchar\n.. _Coveralls: https://coveralls.io/r/magmax/python-readchar\n.. _@magmax9: https://twitter.com/magmax9\n\n.. _the MIT license: http://opensource.org/licenses/MIT\n.. _getch()-like unbuffered character reading from stdin on both Windows and Unix (Python recipe): http://code.activestate.com/recipes/134892/\n.. _Danny Yoo: http://code.activestate.com/recipes/users/98032/\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/magmax/python-readchar", "keywords": "stdin", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "readchar", "package_url": "https://pypi.org/project/readchar/", "platform": "", "project_url": "https://pypi.org/project/readchar/", "project_urls": { "Homepage": "https://github.com/magmax/python-readchar" }, "release_url": "https://pypi.org/project/readchar/2.0.1/", "requires_dist": null, "requires_python": "", "summary": "Utilities to read single characters and key-strokes", "version": "2.0.1" }, "last_serial": 4891301, "releases": { "0.0.1": [], "0.0.8": [ { "comment_text": "", "digests": { "md5": "edb5f29263da76c1f1b333a4e21f398a", "sha256": "2197ff654c65ab262695bce569fa1e00c1c3d0fdddecbd262a2706fb2a84cb67" }, "downloads": -1, "filename": "readchar-0.0.8.zip", "has_sig": false, "md5_digest": "edb5f29263da76c1f1b333a4e21f398a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11331, "upload_time": "2017-03-14T05:31:25", "url": "https://files.pythonhosted.org/packages/3b/27/849244b80348e61a0f677b3d17d98b42af4cd9cc50aa51e3bee3a9e7c5f7/readchar-0.0.8.zip" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "f4414a08b047a04b96a0f61cad60e444", "sha256": "423f5b167a8afdd32d6984d43893e4575c997be902c7bd3082938d81e38564b5" }, "downloads": -1, "filename": "readchar-0.0.9.zip", "has_sig": false, "md5_digest": "f4414a08b047a04b96a0f61cad60e444", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11358, "upload_time": "2017-10-23T09:01:51", "url": "https://files.pythonhosted.org/packages/90/7b/faa0fbd1b9cc5a7f608775710b5d723b038fdff13c555d76435d70810be0/readchar-0.0.9.zip" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "67bc1b70a11613c60be5928763b3156b", "sha256": "b802f9873812bb04b9def0a32c9fe02028cd2f461c97ab66eca21670bfab44bf" }, "downloads": -1, "filename": "readchar-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "67bc1b70a11613c60be5928763b3156b", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8695, "upload_time": "2017-10-23T09:02:57", "url": "https://files.pythonhosted.org/packages/c5/52/68b2d04e17321452642d635a6e2bc8be5e03c3222f3e26204e97d22ca3c8/readchar-0.1.0-py3-none-any.whl" } ], "0.2": [ { "comment_text": "built for Linux-3.2.0-2-686-pae-i686-with-glibc2.4", "digests": { "md5": "fc70e044f9a6154668f6bac1410241a7", "sha256": "006db7a3471a42a092d16fe78f07bb36c00850f107b439503a72b67917b16f02" }, "downloads": -1, "filename": "readchar-0.2.linux-i686.tar.gz", "has_sig": false, "md5_digest": "fc70e044f9a6154668f6bac1410241a7", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 6376, "upload_time": "2014-05-07T06:29:00", "url": "https://files.pythonhosted.org/packages/fd/28/c127cd59533f94e746df6e1e642f148c7e5ad863c3fd9a67d44d0a739780/readchar-0.2.linux-i686.tar.gz" }, { "comment_text": "", "digests": { "md5": "825f2e54e6cf0f7362dff9dffc0ed7cc", "sha256": "94df968c075155f181c1b97932860162a7f3ac35f53b253eea42c4800bf53227" }, "downloads": -1, "filename": "readchar-0.2.tar.gz", "has_sig": false, "md5_digest": "825f2e54e6cf0f7362dff9dffc0ed7cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4322, "upload_time": "2014-05-07T06:28:47", "url": "https://files.pythonhosted.org/packages/6f/9c/df8ae4b3293e50c355ab668eab87be39e1723682c03eed169b68c7e319f8/readchar-0.2.tar.gz" } ], "0.2-test1": [ { "comment_text": "built for Linux-3.2.0-2-686-pae-i686-with-glibc2.4", "digests": { "md5": "f2aa4eaf040f893b89e931b8484a5aaf", "sha256": "8bc7b3b47f01c6100eef5d27fa479089fcbe4ca96f03dc31031566e86b114d6a" }, "downloads": -1, "filename": "readchar-0.2-test1.linux-i686.tar.gz", "has_sig": false, "md5_digest": "f2aa4eaf040f893b89e931b8484a5aaf", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 6468, "upload_time": "2014-05-07T06:40:31", "url": "https://files.pythonhosted.org/packages/55/8a/344c545de52e72f039ec8a4d486e7aa6373920f5e1e0cb19b34e25bb22e8/readchar-0.2-test1.linux-i686.tar.gz" }, { "comment_text": "", "digests": { "md5": "e2aefdd620343e6c7818dd73fceba9a5", "sha256": "43d062bfb1fb3fadcd15cf8f9459a0d0d0bf899c9b2e78500acb0b68d00c0ad5" }, "downloads": -1, "filename": "readchar-0.2-test1.tar.gz", "has_sig": false, "md5_digest": "e2aefdd620343e6c7818dd73fceba9a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4416, "upload_time": "2014-05-07T06:40:21", "url": "https://files.pythonhosted.org/packages/16/e6/e9a0143e3d396be13587323c9bb7bc2d3f4001c1b9468e8d3dbe046c3393/readchar-0.2-test1.tar.gz" } ], "0.2-test2": [ { "comment_text": "built for Linux-3.2.0-2-686-pae-i686-with-glibc2.4", "digests": { "md5": "df26fbd20d6df1fae54561e5960020b0", "sha256": "be21e11f972d4ff1cdedd00b8321f2bf6c70e4ed129cbdb6d6a0578cd861af86" }, "downloads": -1, "filename": "readchar-0.2-test2.linux-i686.tar.gz", "has_sig": false, "md5_digest": "df26fbd20d6df1fae54561e5960020b0", "packagetype": "bdist_dumb", "python_version": "any", "requires_python": null, "size": 6387, "upload_time": "2014-05-07T06:55:47", "url": "https://files.pythonhosted.org/packages/bd/f7/a8e507600e7c2862de3f3fabdf1ed59089da597ec3b4f0b9b8b6aaa632d4/readchar-0.2-test2.linux-i686.tar.gz" }, { "comment_text": "", "digests": { "md5": "1b56456b8c8599939f27f5c80a778323", "sha256": "02854486881bded8d2b2a0a06ace70e10d835be673de0ba16382641a403c08f5" }, "downloads": -1, "filename": "readchar-0.2-test2.tar.gz", "has_sig": false, "md5_digest": "1b56456b8c8599939f27f5c80a778323", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4432, "upload_time": "2014-05-07T06:55:36", "url": "https://files.pythonhosted.org/packages/3e/be/82e77aefbfe556bb5048edf5d099bb08e2feeb0e04a8824cb1133fc064b7/readchar-0.2-test2.tar.gz" } ], "0.2c": [ { "comment_text": "", "digests": { "md5": "6d7928989f7b4d540336d977c1150aab", "sha256": "a729c237d6a84cdd8f580292e72fdef458571e8295c01d31c3287b4e3c357e62" }, "downloads": -1, "filename": "readchar-0.2c.tar.gz", "has_sig": false, "md5_digest": "6d7928989f7b4d540336d977c1150aab", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4425, "upload_time": "2014-05-07T17:24:55", "url": "https://files.pythonhosted.org/packages/94/30/6414ab3b07b74f23d01b5c23377f646b145cf90487407a1a379e17577b2c/readchar-0.2c.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "50f02f5a8628a72a5d2870baf38a487e", "sha256": "fd749b35f5339caaf3b56ef1d0417b77972e6d652d897101f52077a3e7896bcd" }, "downloads": -1, "filename": "readchar-0.3.tar.gz", "has_sig": false, "md5_digest": "50f02f5a8628a72a5d2870baf38a487e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4382, "upload_time": "2014-05-07T17:39:28", "url": "https://files.pythonhosted.org/packages/d1/80/ba45d87ffbb6d36ce1cc06ce35ae0a37f4b0726310f8088dc2bf78a29842/readchar-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "c5aced194f312104021ebdf24a683acb", "sha256": "700d6436a6574ac791be541bc971c166d200761380fed3027784c35026e4bffc" }, "downloads": -1, "filename": "readchar-0.4.tar.gz", "has_sig": false, "md5_digest": "c5aced194f312104021ebdf24a683acb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4382, "upload_time": "2014-05-07T19:30:40", "url": "https://files.pythonhosted.org/packages/54/36/3383a5c996638798d030cde5c218532e9ae8dddf4c557f3aededb0909c6e/readchar-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "66b921fc4e0548ce47cc99a3e1c492b6", "sha256": "866d3c6e4b6440d5744cd9b4fd0a855ed0bdd456b67f916d1590dc9be9150bc5" }, "downloads": -1, "filename": "readchar-0.5.tar.gz", "has_sig": false, "md5_digest": "66b921fc4e0548ce47cc99a3e1c492b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4395, "upload_time": "2014-05-12T17:46:14", "url": "https://files.pythonhosted.org/packages/d1/58/be84b4b1518e854bdde2eb63ec637ae3ad8180f5795df0e885c39552a09d/readchar-0.5.tar.gz" } ], "0.6": [ { "comment_text": "", "digests": { "md5": "f9f36c2d83581517da9a46a1936a4a92", "sha256": "891b65e153b8ef3558d886e24301d9e984d97b865663d51df141f925168a1fc5" }, "downloads": -1, "filename": "readchar-0.6.tar.gz", "has_sig": false, "md5_digest": "f9f36c2d83581517da9a46a1936a4a92", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4730, "upload_time": "2014-05-13T17:49:25", "url": "https://files.pythonhosted.org/packages/59/21/d4ed22ffdfbbaf479655324cb6aeee8aa7c621ff59bfe62e26628f4b5727/readchar-0.6.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "d647bc0ed286eb284ed9b003d93b12c9", "sha256": "42195fa187ea91c1674c04fa8ccd2461eae508b0f219b41e97e692cd05d7f9ca" }, "downloads": -1, "filename": "readchar-0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "d647bc0ed286eb284ed9b003d93b12c9", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 8204, "upload_time": "2014-09-13T07:18:07", "url": "https://files.pythonhosted.org/packages/a4/2b/3ad24eecaa5c18d902641421ba1120b1730761bd80a0d1f77367d539137c/readchar-0.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c36427a423db9b5231bfd5f612c44795", "sha256": "c3354162894634ff6a29a06a1cd04c92522f32b7bc6c17e247cf3bee27ee914c" }, "downloads": -1, "filename": "readchar-0.7.tar.gz", "has_sig": false, "md5_digest": "c36427a423db9b5231bfd5f612c44795", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4536, "upload_time": "2014-09-13T07:18:05", "url": "https://files.pythonhosted.org/packages/61/a9/d552ab5bb2978b609a0acc917427fb0230ac923d92e32b817ef79908f6e3/readchar-0.7.tar.gz" }, { "comment_text": "", "digests": { "md5": "f51f478ccb22adc97e6ea08000bb03d6", "sha256": "ccae1f094eac3fb5ef6622dd3fbb25fd8b3b4b734ed835a36862b3f6916aa8aa" }, "downloads": -1, "filename": "readchar-0.7.zip", "has_sig": false, "md5_digest": "f51f478ccb22adc97e6ea08000bb03d6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10405, "upload_time": "2014-09-13T07:18:02", "url": "https://files.pythonhosted.org/packages/a7/0e/3ff91a79340cad7e40a859653c95da6061f56e35fdb473d07db0bb33f828/readchar-0.7.zip" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "c43babe4f3d031b5179c2fbe845428bc", "sha256": "630f4ab334c7e44efa291755e9d26ac9773fb2d83d3a14f92ae6bf32ce7b5134" }, "downloads": -1, "filename": "readchar-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c43babe4f3d031b5179c2fbe845428bc", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6942, "upload_time": "2018-07-17T14:17:50", "url": "https://files.pythonhosted.org/packages/59/40/9fea6e273f0eba5275ab9c3bed1a5ea125e342e840f5c4f58d0d4c0697ad/readchar-2.0.0-py3-none-any.whl" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "4d7f47e646a5d5fe8f572ec252aca076", "sha256": "ed00b7a49bb12f345319d9fa393f289f03670310ada2beb55e8c3f017c648f1e" }, "downloads": -1, "filename": "readchar-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4d7f47e646a5d5fe8f572ec252aca076", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6942, "upload_time": "2018-08-03T15:38:25", "url": "https://files.pythonhosted.org/packages/e9/63/9e8c21d675871c60377dbad2e3a3e44135d1bfd25aeb48f0f392a9f09bfd/readchar-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9557c28c1e4cbf233af875bf5a5ad36e", "sha256": "3ac34aab28563bc895f73233d5c08b28f951ca190d5850b8d4bec973132a8dca" }, "downloads": -1, "filename": "readchar-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9557c28c1e4cbf233af875bf5a5ad36e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6941, "upload_time": "2018-08-03T14:55:19", "url": "https://files.pythonhosted.org/packages/ef/f3/50cc9199733bf91f3c140150752a6430d8b785f9d22a31dcae721edb0b9a/readchar-2.0.1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4d7f47e646a5d5fe8f572ec252aca076", "sha256": "ed00b7a49bb12f345319d9fa393f289f03670310ada2beb55e8c3f017c648f1e" }, "downloads": -1, "filename": "readchar-2.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "4d7f47e646a5d5fe8f572ec252aca076", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 6942, "upload_time": "2018-08-03T15:38:25", "url": "https://files.pythonhosted.org/packages/e9/63/9e8c21d675871c60377dbad2e3a3e44135d1bfd25aeb48f0f392a9f09bfd/readchar-2.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9557c28c1e4cbf233af875bf5a5ad36e", "sha256": "3ac34aab28563bc895f73233d5c08b28f951ca190d5850b8d4bec973132a8dca" }, "downloads": -1, "filename": "readchar-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "9557c28c1e4cbf233af875bf5a5ad36e", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 6941, "upload_time": "2018-08-03T14:55:19", "url": "https://files.pythonhosted.org/packages/ef/f3/50cc9199733bf91f3c140150752a6430d8b785f9d22a31dcae721edb0b9a/readchar-2.0.1-py3-none-any.whl" } ] }