{ "info": { "author": "Mark Smith", "author_email": "mark.smith@practicalpoetry.co.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "Fictionary\n==========\n\n.. image:: https://travis-ci.com/judy2k/fictionary.svg?branch=master\n :target: https://travis-ci.com/judy2k/fictionary\n.. image:: https://coveralls.io/repos/github/judy2k/fictionary/badge.svg?branch=master\n :target: https://coveralls.io/github/judy2k/fictionary?branch=master\n.. image:: https://img.shields.io/badge/code%20style-black-000000.svg\n :target: https://github.com/ambv/black\n\nGenerate made-up words following the patterns used by real English words.\n\nUsing Fictionary\n----------------\n\nInstall with::\n\n pip install --upgrade fictionary\n\nYou can learn how to use fictionary as a command-line tool by running `fictionary -h`::\n\n usage: fictionary [-h] [-v] [-c COUNT] [-m LENGTH] [-x LENGTH]\n [-d {all,american,british}]\n\n A made-up word factory, following standard English word rules.\n\n optional arguments:\n -h, --help show this help message and exit\n -v, --verbose Be verbose.\n -c COUNT, --count COUNT\n The number of words to create.\n -m LENGTH, --min-length LENGTH\n Only make_model words of LENGTH chars or longer.\n -x LENGTH, --max-length LENGTH\n Only make_model words of LENGTH chars or shorter.\n -d {all,american,british}, --dictionary {all,american,british}\n The dictionary rules to follow: american, british, or\n all\n\nRunning it looks a little like this::\n\n $ fictionary\n nivenver\n\n $ fictionary -c 4\n cest\n colped\n burpen\n flumat\n\nLibrary Usage\n~~~~~~~~~~~~~\n\nAnd you can also use it as a library:\n\n>>> import fictionary\n\n>>> fictionary.word()\n'regagreagised'\n\nAnd if you want to create your own models:\n\n.. code-block:: python\n\n # Create a model and add a couple of words to it:\n m = fictionary.Model()\n m.feed('table')\n m.feed('babel')\n\n # Now we can generate words!\n # (This model is capable of only 2 fictional words)\n print(m.random_word(5, 5)) # tabel\n print(m.random_word(5, 5)) # bable\n\n # If you're building a model with *lots* of words, generating the model\n # can be slow, so you can save the generated model to a json file:\n with open('my-fictionary-dict.json', 'w', encoding='utf-8') as fp:\n m.write(fp)\n\n # And then later you'll want to read it in with this:\n # (You still need to supply a list of 'real' words, for collision detection)\n new_model = fictionary.Model(words=['table', 'babel'])\n with open('my-fictionary-dict.json', 'r', encoding='utf-8') as fp:\n new_model.read(fp)\n print(m.random_word(5, 5)) # bable\n\nWhy???\n------\n\nWhy not? It is particularly good for generating memorable yet reasonable\nlength passwords, although I'm not sure how secure those passwords would be\ngiven that they follow well-defined patterns. One day I might sit down and\nwork it out.\n\n\nHow it Works\n------------\n\nWhen it runs, fictionary loads a data structure\ncalled a Markov chain, which represents the patterns of letters found in the\nwords in the dictionary (e.g. The most common first-letter is 's'. The most common letter\nfollowing 's' at the start of a word is 't' etc.). Fictionary is supplied\nwith 3 models out of the box:\n\n=========== ===============================================================\nModel Description\n=========== ===============================================================\nall Includes all words is both british and american wordlists.\namerican Includes English words, using American spelling.\nbritish Includes English words, using British spelling.\n=========== ===============================================================\n\nOnce fictionary understands the patterns of letters used in words in the\nEnglish language, it can use these rules to generate new, nonsense words that\nlook like English words, but aren't. It's so easy for the Markov chain to\naccidentally generate a real English word that we have to check each generated\nword against a dictionary to make sure it isn't.\n\nReleasing\n---------\n\nThese are notes for me, as is probably obvious:\n\n* **Check the README**\n* `bumpversion`\n* `python setup.py sdist bdist_wheel`\n* `twine upload dist/*.*`\n\nTo Do\n-----\n\nThe following is my to-do list for this project:\n\nAllow Valid Words\n Add a flag to turn off 'real-word' validation.\nWord Generation Rollback\n Rejecting words that are too long or short is reasonably expensive. I may\n refactor this to rollback and remake choices until a valid 'word' is\n reached. Or I may find something better to do with my time.\nOptimize Long Words\n Make word-generator bail out as soon as max-length is encountered.\n\n\n", "description_content_type": "text/x-rst", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/judy2k/fictionary", "keywords": "words dictionary fictionary", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "fictionary", "package_url": "https://pypi.org/project/fictionary/", "platform": "", "project_url": "https://pypi.org/project/fictionary/", "project_urls": { "Homepage": "https://github.com/judy2k/fictionary" }, "release_url": "https://pypi.org/project/fictionary/0.1.0/", "requires_dist": null, "requires_python": "", "summary": "Generate made-up words following the patterns used by real English words.", "version": "0.1.0" }, "last_serial": 4420343, "releases": { "0.0.0": [], "0.0.1": [ { "comment_text": "", "digests": { "md5": "cca7d41e9cb02324a75e0918d46a1968", "sha256": "d6640c377cca83645448b9b2718eff9112f558e052fa792b4b205178568ab024" }, "downloads": -1, "filename": "fictionary-0.0.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cca7d41e9cb02324a75e0918d46a1968", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 457624, "upload_time": "2015-09-20T16:21:05", "url": "https://files.pythonhosted.org/packages/a1/9a/0a3b32679a4268be741585c5a2810642709d46b05039f300ca7b324e1c81/fictionary-0.0.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "168cff8766cc5994a3338a90ac571db3", "sha256": "5aa362fd577b250e69dd11e46c21a37f95cd202eb11d905a5f81bf0e6b9188fb" }, "downloads": -1, "filename": "fictionary-0.0.1.tar.gz", "has_sig": false, "md5_digest": "168cff8766cc5994a3338a90ac571db3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 458080, "upload_time": "2015-09-20T16:21:14", "url": "https://files.pythonhosted.org/packages/a9/90/281430c3172fee4a9436b12b80605caf1321cfa0b804730ad17f8692226d/fictionary-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "1a856c09ad5dbbf777d1e755a1804ec9", "sha256": "39ad3d8f00fa44308a8a9ad6d4ec9d1e908e251c28c4befe0ba9e37c7eb5e89e" }, "downloads": -1, "filename": "fictionary-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1a856c09ad5dbbf777d1e755a1804ec9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 457617, "upload_time": "2015-09-20T16:42:00", "url": "https://files.pythonhosted.org/packages/05/22/86d2daa42b507d4df7e75aaea43af96100c53faa4e7f31803cd800ea392d/fictionary-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8b5c1c8f5a79144649d68a28bc0e3d9a", "sha256": "0263e3fa53bf671116e56d0e59eaab33e2571837f4d31acb9e30ad16d4bf4a8b" }, "downloads": -1, "filename": "fictionary-0.0.2.tar.gz", "has_sig": false, "md5_digest": "8b5c1c8f5a79144649d68a28bc0e3d9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 458056, "upload_time": "2015-09-20T16:42:10", "url": "https://files.pythonhosted.org/packages/76/ef/2dfca819d63c528bdfdd694996c96cdbd174ee50715cc77cf8df702a4192/fictionary-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "c80065c4f7d600940795fb0d7eff823c", "sha256": "1b5cfceba9e35913e8466300c605c3f18f7db805eb40019d40752791330944a5" }, "downloads": -1, "filename": "fictionary-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c80065c4f7d600940795fb0d7eff823c", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 457626, "upload_time": "2016-01-07T14:11:39", "url": "https://files.pythonhosted.org/packages/b5/db/facc9d6d54635127c75f531d6ecbb32f0f023569fb73cd8bf5ca35fc6439/fictionary-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45b2537e3a23d912f12633d42433eb08", "sha256": "04b59982e2c6357ff7409c2eb2b814bff5891a03668e4c89af0ec86390468167" }, "downloads": -1, "filename": "fictionary-0.0.3.tar.gz", "has_sig": false, "md5_digest": "45b2537e3a23d912f12633d42433eb08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 457981, "upload_time": "2016-01-07T14:11:31", "url": "https://files.pythonhosted.org/packages/8d/9a/2af8b9c69e1651f895cfb23afcd20b842be9f0ffe6766a4cfc5cd1d0da63/fictionary-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "dd12ee56c5b50170ddc7b804d3b6240a", "sha256": "bf84e22057052423cf51c302a2ebce43df97cfc771820cd1fa90c7758cd22c48" }, "downloads": -1, "filename": "fictionary-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dd12ee56c5b50170ddc7b804d3b6240a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 456998, "upload_time": "2018-08-08T09:06:13", "url": "https://files.pythonhosted.org/packages/a0/09/47cea9f7069b64b9a64d923ba084652e16b671fcffa4d4403e19269ad493/fictionary-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "08d580c2a5aef1a128d6440b415ef50a", "sha256": "b8712df9215076e95c49cee8e501b69a08fdceed28be169e5ddaa7bdd3ede702" }, "downloads": -1, "filename": "fictionary-0.0.4.tar.gz", "has_sig": false, "md5_digest": "08d580c2a5aef1a128d6440b415ef50a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 459269, "upload_time": "2018-08-08T09:06:15", "url": "https://files.pythonhosted.org/packages/f8/1a/73843ab7e43b6e0975fccfd91f6a24607a32d46afd0e37085a7334e29760/fictionary-0.0.4.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "d829462ce01cfb27fb0536adb633cc65", "sha256": "cd7e43d8fb4ed83faf8813a7559ff491e176872c3c0aa55d5bb9f269ff49a7f9" }, "downloads": -1, "filename": "fictionary-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d829462ce01cfb27fb0536adb633cc65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 426855, "upload_time": "2018-10-26T18:42:01", "url": "https://files.pythonhosted.org/packages/6a/c0/8e2a9bf8c7d7bba75c3642a65d27d204b102cb06eee876629f5c56f19933/fictionary-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "882955212098fe25a0bfa00ed3f6d043", "sha256": "c60e1af7eee6b003d28701adcfe94b8ba951e9f1a9ed4b355b4d907013839d54" }, "downloads": -1, "filename": "fictionary-0.1.0.tar.gz", "has_sig": false, "md5_digest": "882955212098fe25a0bfa00ed3f6d043", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 891536, "upload_time": "2018-10-26T18:42:04", "url": "https://files.pythonhosted.org/packages/31/51/ed265088445955fafff3be379d05697bf410c02aaa818d1b7395b9c790f1/fictionary-0.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d829462ce01cfb27fb0536adb633cc65", "sha256": "cd7e43d8fb4ed83faf8813a7559ff491e176872c3c0aa55d5bb9f269ff49a7f9" }, "downloads": -1, "filename": "fictionary-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d829462ce01cfb27fb0536adb633cc65", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 426855, "upload_time": "2018-10-26T18:42:01", "url": "https://files.pythonhosted.org/packages/6a/c0/8e2a9bf8c7d7bba75c3642a65d27d204b102cb06eee876629f5c56f19933/fictionary-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "882955212098fe25a0bfa00ed3f6d043", "sha256": "c60e1af7eee6b003d28701adcfe94b8ba951e9f1a9ed4b355b4d907013839d54" }, "downloads": -1, "filename": "fictionary-0.1.0.tar.gz", "has_sig": false, "md5_digest": "882955212098fe25a0bfa00ed3f6d043", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 891536, "upload_time": "2018-10-26T18:42:04", "url": "https://files.pythonhosted.org/packages/31/51/ed265088445955fafff3be379d05697bf410c02aaa818d1b7395b9c790f1/fictionary-0.1.0.tar.gz" } ] }