{ "info": { "author": "Parker Higgins", "author_email": "parker@parkerhiggins.net", "bugtrack_url": null, "classifiers": [ "Environment :: Console :: Curses", "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", "Programming Language :: Python :: 3", "Topic :: Games/Entertainment :: Puzzle Games" ], "description": "# cursewords\n\n`cursewords` is a \"graphical\" command line program for solving crossword puzzles in the terminal. It can be used to open files saved in the widely used AcrossLite `.puz` format.\n\n\n\n`cursewords` includes nearly every major feature you might expect in a crossword program, including:\n\n* intuitive navigation\n* answer-checking for squares, words, and full puzzles\n* a pausable puzzle timer\n* a puzzle completeness notification\n\nIt is currently under active development, and should not be considered fully \"released.\" That said, it is stable and suitable for everyday use.\n\n## Installation\n\n`cursewords` is only compatible with `python3`, and can be installed through `pip`. If you don't know what that means, the best command is probably:\n\n```bash\npip3 install --user cursewords\n```\n\nYou should then be ready to go. You can then use `cursewords` to open `.puz` files directly:\n\n```\ncursewords todaysnyt.puz\n```\n\n## Usage\n\nIf you've used a program to solve crossword puzzles, navigation should be pretty intuitive. `tab` and `shift+tab` are the workhorses for navigation between blanks. `page up` and `page down` (on Mac, `Fn+` up/down arrow keys) jump between words without considering blank spaces. `ctrl+g`, followed by a number, will jump directly to the space with that number.\n\nIf you need some help, `ctrl+c` will check the current square, word, or entire puzzle for errors, and `ctrl+r` will reveal answers (subject to the same scoping options). To clear all entries on the puzzle, use `ctrl+x`, and to reset the puzzle to its original state (resetting the timer and removing any stored information about hints and corrections, use `ctrl+z`.\n\nTo open a puzzle in `downs-only` mode, where only the down clues are visible, use the `--downs-only` flag when opening the file on the command line.\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/thisisparker/cursewords", "keywords": "puz crossword crosswords xword xwords puzzle acrosslite", "license": "", "maintainer": "", "maintainer_email": "", "name": "cursewords", "package_url": "https://pypi.org/project/cursewords/", "platform": "", "project_url": "https://pypi.org/project/cursewords/", "project_urls": { "Homepage": "https://github.com/thisisparker/cursewords" }, "release_url": "https://pypi.org/project/cursewords/1.0.4/", "requires_dist": [ "blessed (==1.15.0)", "puzpy (==0.2.4)" ], "requires_python": ">=3.4", "summary": "A terminal-based crossword puzzle solving interface", "version": "1.0.4" }, "last_serial": 4946073, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "7b6fa5e2e44a6d1a43b594658d5f644f", "sha256": "f2f75d1128ebee260212ee12f82bdd60a69951bed63c0a6bd2bc341463e890ff" }, "downloads": -1, "filename": "cursewords-1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "7b6fa5e2e44a6d1a43b594658d5f644f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23299, "upload_time": "2019-03-03T18:51:56", "url": "https://files.pythonhosted.org/packages/3b/2e/17e0dac3a6f35513604f2513eea3e5815eb9c4d0a287b484609f475a1556/cursewords-1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "352268f81a4a2ade0b8ccaec344f9e44", "sha256": "007de02fa0ac3e00a8fe041ad45a1990d5e8cdf020945c1ff89d59bbfb162589" }, "downloads": -1, "filename": "cursewords-1.0.tar.gz", "has_sig": false, "md5_digest": "352268f81a4a2ade0b8ccaec344f9e44", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11446, "upload_time": "2019-03-03T18:51:57", "url": "https://files.pythonhosted.org/packages/cb/cb/e3a53d25ddf546d8237c32e93326650c20302f14fb2fc5298f4dda6bc5d1/cursewords-1.0.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "df86f8fd4f153f85062980c26a56ca6b", "sha256": "c7a2743e6143c2ce182277fc9ba11f419a7117b456fc24357571551818f7ff98" }, "downloads": -1, "filename": "cursewords-1.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "df86f8fd4f153f85062980c26a56ca6b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23331, "upload_time": "2019-03-03T19:11:52", "url": "https://files.pythonhosted.org/packages/7f/ae/b9e2f5df4ce05fd62293efe9394e9998c81951ac5b319e350a0cd7d2dc8d/cursewords-1.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d8e66bef0c6777a6f62aa6d01c82ffe", "sha256": "ae3058aa6e2bf61b2d2056ceec8eca2dda9b75b7c7ae0e3a5a62cefa3d78386a" }, "downloads": -1, "filename": "cursewords-1.0.2.tar.gz", "has_sig": false, "md5_digest": "2d8e66bef0c6777a6f62aa6d01c82ffe", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11469, "upload_time": "2019-03-03T19:11:53", "url": "https://files.pythonhosted.org/packages/63/c0/9537522ea8fd7d2c985e2a0af97f36ec552548fdf548012d7868b9308a63/cursewords-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "e9d44bc1cac299ec1161e0577a483ed1", "sha256": "8d3bbae4db9d245cddbb05a2541ed63f088733594394e9fe0f2e6865808ab6d2" }, "downloads": -1, "filename": "cursewords-1.0.3-py3.6.egg", "has_sig": false, "md5_digest": "e9d44bc1cac299ec1161e0577a483ed1", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.4", "size": 24276, "upload_time": "2019-03-06T01:18:34", "url": "https://files.pythonhosted.org/packages/bf/65/4b395fb2abbee33be0e2c57752a67a73dc3dc9c6dc99a658f783cf490162/cursewords-1.0.3-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "7c996d29c8ba3c7408a1356e7d857732", "sha256": "7098fdfc3e627fae148a39cdfa46996612f53ade8f6f530707220d6a2fa690f6" }, "downloads": -1, "filename": "cursewords-1.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "7c996d29c8ba3c7408a1356e7d857732", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23334, "upload_time": "2019-03-06T01:18:33", "url": "https://files.pythonhosted.org/packages/2d/8f/422c24023d559e0b82a6e26651f82e903320f1fadbadddbb50e9daf7fee5/cursewords-1.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8735244c40b302f665b1c32eabd6b2df", "sha256": "29950b07a5565df0b2ed75061e2cc94bfe1ef0fdb57436845409c82aacd9f77a" }, "downloads": -1, "filename": "cursewords-1.0.3.tar.gz", "has_sig": false, "md5_digest": "8735244c40b302f665b1c32eabd6b2df", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11561, "upload_time": "2019-03-06T01:18:35", "url": "https://files.pythonhosted.org/packages/8b/fb/11a4b2741da1bd6b8dd36a97a8c4bfc23f8762f9a5622e4c9cce8be54c1e/cursewords-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "f9019e742f244d416adb192370c1ea4c", "sha256": "9c125a5d4efe0233ceab864046f56db1d481ebc26ab70da371656dc8294967f6" }, "downloads": -1, "filename": "cursewords-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f9019e742f244d416adb192370c1ea4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23332, "upload_time": "2019-03-15T21:22:27", "url": "https://files.pythonhosted.org/packages/d4/fc/a5a3ba42937eefba71e4376e81729cc8b51fac1f6f8ed4100a7774ba83ca/cursewords-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9e72a11ed524afa60a72c536d0c1de9", "sha256": "d2a8daa4c685f2b624f0cc5c7679e5e44786a4e514495e8b54232d224cc57f1c" }, "downloads": -1, "filename": "cursewords-1.0.4.tar.gz", "has_sig": false, "md5_digest": "e9e72a11ed524afa60a72c536d0c1de9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11565, "upload_time": "2019-03-15T21:22:29", "url": "https://files.pythonhosted.org/packages/a2/da/ff516fd216f17849453c7efc914ba48f7115bb6657d5798616e74adce147/cursewords-1.0.4.tar.gz" } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "842d4e06765b8ddfb06f8442364e6ba7", "sha256": "b4b79d9313049f6cac3a43cec2281d0b0b3485f8b2e163163a789947fd994767" }, "downloads": -1, "filename": "cursewords-1.0rc1-py3.6.egg", "has_sig": false, "md5_digest": "842d4e06765b8ddfb06f8442364e6ba7", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">=3.4", "size": 23510, "upload_time": "2019-03-03T01:45:02", "url": "https://files.pythonhosted.org/packages/cb/a1/7ca511768f93a657007255cbb287bf04ad26115b3b8aa648dcc8905842ac/cursewords-1.0rc1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "5bf4f5db0703f0c37dceeeac93b226c3", "sha256": "c0d4ec50e0c31939fb2c144b19e0360e47c714183abcb43c73a52eb01a78518c" }, "downloads": -1, "filename": "cursewords-1.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "5bf4f5db0703f0c37dceeeac93b226c3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23081, "upload_time": "2019-03-03T01:45:00", "url": "https://files.pythonhosted.org/packages/75/8e/511f4316a9d3d4d897128c89485e20cb59a2977ff45a81e7ea5ef90b7f14/cursewords-1.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea2feb9c9ee9b21eb0d7c3827e39c0bc", "sha256": "57c3f3e1da614703c0ad1a3472f8f15417fe95c96a3890f516d04163127f605c" }, "downloads": -1, "filename": "cursewords-1.0rc1.tar.gz", "has_sig": false, "md5_digest": "ea2feb9c9ee9b21eb0d7c3827e39c0bc", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11321, "upload_time": "2019-03-03T01:45:03", "url": "https://files.pythonhosted.org/packages/07/71/6141f312d49e13a5adbb7572a0f4974aff1672365a48efb418ddacf7340a/cursewords-1.0rc1.tar.gz" } ], "1.0rc2": [ { "comment_text": "", "digests": { "md5": "e2c22c71d74dac630e28dbadfb749d9d", "sha256": "03fb96efc2faaeecf35076f46d5551712784b04f286c773209fce68a9cc09151" }, "downloads": -1, "filename": "cursewords-1.0rc2-py3-none-any.whl", "has_sig": false, "md5_digest": "e2c22c71d74dac630e28dbadfb749d9d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 31593, "upload_time": "2019-03-03T17:33:05", "url": "https://files.pythonhosted.org/packages/39/57/35490509fbac6de4b2ab205829039a59abc5c4a5ab21ae0562a2de8741d9/cursewords-1.0rc2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bdef412d14b44ca4fb84755ab67e98b4", "sha256": "1f868d0b43e29bcf15d81e4b9e6245e12c1d99c0c8f845e90401bd168fdadad0" }, "downloads": -1, "filename": "cursewords-1.0rc2.tar.gz", "has_sig": false, "md5_digest": "bdef412d14b44ca4fb84755ab67e98b4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11420, "upload_time": "2019-03-03T17:34:43", "url": "https://files.pythonhosted.org/packages/16/87/70613917fc562dc8d0b6ecd2f41ab682cd05f193364e699dfe014478215d/cursewords-1.0rc2.tar.gz" } ], "1.0rc3": [ { "comment_text": "", "digests": { "md5": "374729dfbf70c896680bfe613eaa0363", "sha256": "03efd7b1c940d1a9c1029d4a9e6630fbae8db3910bfc6e782b039bb16fdbbfcc" }, "downloads": -1, "filename": "cursewords-1.0rc3-py3-none-any.whl", "has_sig": false, "md5_digest": "374729dfbf70c896680bfe613eaa0363", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23322, "upload_time": "2019-03-03T17:39:41", "url": "https://files.pythonhosted.org/packages/b7/52/502c1548ed4f4bbec1f657bf72f419189bfc0cf9638a75508c15742083bb/cursewords-1.0rc3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7bd52848fc7cce7aabc969a58ec6271d", "sha256": "67716180987ad04ae13261199ca5d85e525af094b9ef3cda619a82fc346ee074" }, "downloads": -1, "filename": "cursewords-1.0rc3.tar.gz", "has_sig": false, "md5_digest": "7bd52848fc7cce7aabc969a58ec6271d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11420, "upload_time": "2019-03-03T17:39:43", "url": "https://files.pythonhosted.org/packages/44/13/8c4023d098d2ea0b342148e6c2984d1342e8139b1746c83d06a8091b9e30/cursewords-1.0rc3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f9019e742f244d416adb192370c1ea4c", "sha256": "9c125a5d4efe0233ceab864046f56db1d481ebc26ab70da371656dc8294967f6" }, "downloads": -1, "filename": "cursewords-1.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "f9019e742f244d416adb192370c1ea4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 23332, "upload_time": "2019-03-15T21:22:27", "url": "https://files.pythonhosted.org/packages/d4/fc/a5a3ba42937eefba71e4376e81729cc8b51fac1f6f8ed4100a7774ba83ca/cursewords-1.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9e72a11ed524afa60a72c536d0c1de9", "sha256": "d2a8daa4c685f2b624f0cc5c7679e5e44786a4e514495e8b54232d224cc57f1c" }, "downloads": -1, "filename": "cursewords-1.0.4.tar.gz", "has_sig": false, "md5_digest": "e9e72a11ed524afa60a72c536d0c1de9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 11565, "upload_time": "2019-03-15T21:22:29", "url": "https://files.pythonhosted.org/packages/a2/da/ff516fd216f17849453c7efc914ba48f7115bb6657d5798616e74adce147/cursewords-1.0.4.tar.gz" } ] }