{ "info": { "author": "Philipp Metzner", "author_email": "beth.aleph@yahoo.de", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Environment :: Console", "Intended Audience :: End Users/Desktop", "Intended Audience :: Other Audience", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: Unix", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Games/Entertainment", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "pydartz\n=======\n\n A Python2/3 assistant (and library) for playing darts\n\nPlay with your friends and keep track of your darts scores!\n\nFeatures\n--------\n\n- arbitrary start value (501, 301, whatever positive number you like,\n ...)\n- unlimited number of players\n- scores can be passed in sum (i.e. the total visit) or throw by throw\n- finish suggestions\n- player database to keep track of player performance (average,\n highscore, finishes, etc.)\n- no external dependencies for basic functionality\n\nUpcoming\n--------\n\nTODO\n----\n\n- revisit finish options (e.g. 56, 46)\n- full test coverage\n- Python2 unicode support\n- check song copyright\n\nInstallation\n------------\n\nFrom PyPI package\n~~~~~~~~~~~~~~~~~\n\n::\n\n pip install pydartz\n\nFrom source\n~~~~~~~~~~~\n\nGet the source code\n\n::\n\n git clone https://github.com/pylipp/pydartz\n cd pydartz\n\nInstall to a virtualenv (I like using virtualenvwrapper)\n\n::\n\n mkvirtualenv --python=$(which python3) pydartz\n make install\n make test\n\nALTERNATIVELY, install to ``~/.local`` using pip\n\n::\n\n pip install --user -e .\n\nOPTIONALLY, you can install sound and histogram support\n\n::\n\n pip install simpleaudio==1.0.1\n pip install -e git+https://github.com/pylipp/data_hacks.git@refactoring#egg=data_hacks\n\nTested on Debian using Python 2.7, 3.5 and 3.6.\n\nUsage\n-----\n\nCommand line assistant\n~~~~~~~~~~~~~~~~~~~~~~\n\nExecute ``pydartz`` in the command line to start a classic 501 game. The\nsetup instructions should be self-explanatory.\n\nWhen the game starts, the program expects a player's score as an input.\nThere are various options:\n\n1. You sum up the three throws of your visit yourself. Say you score 60,\n 5 and 1, i.e. a total of 66. You type ``66d`` and hit enter. The\n suffix ``d`` indicates that your *d*\\ one.\n2. You directly enter after each throw. Say you score a triple 19, so\n you type 57 and hit enter. The prompt shows that you have two darts\n left. Repeat or use method 1.\n3. You busted. Type ``b`` and hit enter.\n4. Invalid input is not processed, please enter a correct value the next\n time.\n5. The program takes some constraints into account to check if your\n input is valid (e.g. total visit sum <= 180). Try to trick it and\n submit an issue if you found a glitch.\n\nWhen the game is finished (i.e. one player has won the specified number\nof legs), the program asks whether you want to play again. Answer\n\n1. ``y`` (YES) if you want a rematch using the same settings\n2. ``n`` (NO) if you want to play again but re-define the settings\n3. ``q`` (QUIT) if you want to quit the application\n\nLibrary\n~~~~~~~\n\n``pydartz`` provides an API to include the dart assisting functionality\ninto custom projects. Subclass ``communication.CommunicatorBase``,\ncreate a ``game.Game`` object and ``run()`` it! Note that this call\nblocks until the user decides to quit. You might decide to execute it in\na separate thread.\n\nExample: I have a Raspberry/Arduino/ROS\n`project `__. The custom communicator\nuses a ROS publisher to forward information to an LCD, taking the\nlimited character width into account. Input requests are implemented\nusing ROS client calls to the server (the Arduino listening for\nkeypresses).\n\nI can see a GUI being built on top of the library.\n\nIMPORTANT\n~~~~~~~~~\n\nThe last visit has to be entered throw by throw. Otherwise, the\nevaluation of the total number of throws per visit is not correct!\n\nFor displaying player statistics, type\n``pydartz --stats ``. You can put any number of names.\nWithout any name, information of all players is printed.\n\nAlso, see the output of ``pydartz --help``.\n\nHave fun!\n\nExample\n-------\n\nWatch MVG casually nailing a 9 darter:\n\n::\n\n > pydartz\n Nr of players: 1\n Name of player 1: MVG\n Start value: 501\n Nr of legs: 1\n MVG has 501 and three darts left.\n MVG's score: 180\n MVG has 321 and three darts left.\n MVG's score: 180\n MVG has 141 and three darts left.\n Finish options:\n T20 T19 D12\n MVG's score: 60\n MVG has 81 and two darts left.\n Finish options:\n T19 D12\n T15 D18\n MVG's score: 57\n MVG has 24 and one dart left.\n MVG's score: 24\n MVG: 1\n ================================================================================\n > pydartz -s MVG\n MVG:\n Legs won: 1\n Average: 167.00\n Highscore: 180\n Finishes:\n 141: 1\n Darters:\n 9-darter: 1\n\nCredits\n-------\n\n- The sound file is generated by\n `PulseBoy `__.\n- ASCII art is generated from `this\n tool `__.\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/pylipp/pydartz", "keywords": "commandline darts", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "pydartz", "package_url": "https://pypi.org/project/pydartz/", "platform": "", "project_url": "https://pypi.org/project/pydartz/", "project_urls": { "Homepage": "http://github.com/pylipp/pydartz" }, "release_url": "https://pypi.org/project/pydartz/1.2/", "requires_dist": null, "requires_python": "", "summary": "command line assistant and library for playing darts", "version": "1.2" }, "last_serial": 4666755, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "38f2fde258f80572037692dd368b6e4e", "sha256": "de4163128b33b7d169a08e71da30f9aee62c508f1d31bf522606302670fd7fa8" }, "downloads": -1, "filename": "pydartz-0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "38f2fde258f80572037692dd368b6e4e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 17606, "upload_time": "2017-12-19T15:47:00", "url": "https://files.pythonhosted.org/packages/2c/7b/b91f5a4636dc20f47789e33fb3dbea297dbcea8609e19b3325e42a59ceba/pydartz-0.1-py2.py3-none-any.whl" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "caabbabd331bf144868d597da4a9152a", "sha256": "312363edd59a09cf14f1d39c04836feb08e21233db12caf456dd0c3958c087c5" }, "downloads": -1, "filename": "pydartz-0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "caabbabd331bf144868d597da4a9152a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3903, "upload_time": "2017-12-19T16:03:47", "url": "https://files.pythonhosted.org/packages/a7/25/29b6cafcfe3f572f3b15af74ffc8309761719e80562b75ff401e2b62b5f8/pydartz-0.2-py2.py3-none-any.whl" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "ff265589e09d49f11a35acab3c8cc6e8", "sha256": "34db6b56552a44152dab6de17d08f3bce2401d6873a7eabb675640fcd56e44f8" }, "downloads": -1, "filename": "pydartz-0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ff265589e09d49f11a35acab3c8cc6e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14535, "upload_time": "2017-12-19T17:30:58", "url": "https://files.pythonhosted.org/packages/a1/d0/b5b9efe427335f0eab040f7222b0c5a18cf7f4a12c71e235292bc3defb55/pydartz-0.3-py2.py3-none-any.whl" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "a4111140d69030e12b2a671b89617e24", "sha256": "4bacd689d54333c557c7a3cc82720c4cbd5509e1d384f9e12a19b387a6ee09f2" }, "downloads": -1, "filename": "pydartz-1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a4111140d69030e12b2a671b89617e24", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 409654, "upload_time": "2017-12-22T01:31:11", "url": "https://files.pythonhosted.org/packages/d6/7f/1015a853553af0fdfb97b2be6d0736fe7d4f7fa9a0d6925cffcc458c7143/pydartz-1.0-py2.py3-none-any.whl" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "f4c7ac01f396d17a8f65af183a94c253", "sha256": "310327dfc40633850eef8d9d3f93b15d87e404d789d54a023329fcc20442086b" }, "downloads": -1, "filename": "pydartz-1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4c7ac01f396d17a8f65af183a94c253", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 409788, "upload_time": "2017-12-26T23:32:02", "url": "https://files.pythonhosted.org/packages/88/98/e1da6b7567d0be83ecca875829c0191fa20868f78263a8d78ffb11a68ab7/pydartz-1.1-py2.py3-none-any.whl" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "a0ca4d26ac532030dc071d4ac61d62eb", "sha256": "38804af8570c8824aa383f54ea2662161e758932416256fd2f865bbe1f2cc422" }, "downloads": -1, "filename": "pydartz-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0ca4d26ac532030dc071d4ac61d62eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 409787, "upload_time": "2019-01-06T22:47:11", "url": "https://files.pythonhosted.org/packages/70/63/35dd39c0d46a3d88c66e12f2233e4950e080047fbd72515a180995315d8b/pydartz-1.2-py2.py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a0ca4d26ac532030dc071d4ac61d62eb", "sha256": "38804af8570c8824aa383f54ea2662161e758932416256fd2f865bbe1f2cc422" }, "downloads": -1, "filename": "pydartz-1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a0ca4d26ac532030dc071d4ac61d62eb", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 409787, "upload_time": "2019-01-06T22:47:11", "url": "https://files.pythonhosted.org/packages/70/63/35dd39c0d46a3d88c66e12f2233e4950e080047fbd72515a180995315d8b/pydartz-1.2-py2.py3-none-any.whl" } ] }