├── .gitignore ├── LICENSE ├── MANIFEST.in ├── README.rst ├── docs ├── Makefile ├── _static │ └── .placeholder ├── _templates │ └── .placeholder ├── address.rst ├── basic.rst ├── conf.py ├── currency.rst ├── date.rst ├── index.rst ├── internet.rst ├── lorem_ipsum.rst ├── make.bat ├── name.rst └── personal.rst ├── forgery_py ├── __init__.py ├── dictionaries │ ├── LICENSE │ ├── cities │ ├── colors │ ├── company_names │ ├── continents │ ├── countries │ ├── country_code_top_level_domains │ ├── currency_codes │ ├── currency_descriptions │ ├── female_first_names │ ├── frequencies │ ├── genders │ ├── industries │ ├── job_title_suffixes │ ├── job_titles │ ├── languages │ ├── last_names │ ├── locations │ ├── lorem_ipsum │ ├── male_first_names │ ├── name_suffixes │ ├── name_titles │ ├── province_abbrevs │ ├── provinces │ ├── races │ ├── shirt_sizes │ ├── state_abbrevs │ ├── states │ ├── street_names │ ├── street_suffixes │ ├── top_level_domains │ └── zones ├── dictionaries_loader.py └── forgery │ ├── __init__.py │ ├── address.py │ ├── basic.py │ ├── currency.py │ ├── date.py │ ├── internet.py │ ├── lorem_ipsum.py │ ├── name.py │ └── personal.py ├── setup.py └── tests ├── test_address.py ├── test_basic.py ├── test_currency.py ├── test_date.py ├── test_internet.py ├── test_lorem_ipsum.py ├── test_name.py └── test_personal.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyo 2 | *.pyc 3 | *.swp 4 | .DS_Store 5 | forgery-py.sublime-project 6 | forgery-py.sublime-workspace 7 | docs/_build/ 8 | build/ 9 | dist/ 10 | MANIFEST 11 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (C) 2012 by Tomasz Wójcik 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.rst 2 | include LICENSE 3 | recursive-include docs 4 | recursive-include tests 5 | recursive-include forgery_py/dictionaries -------------------------------------------------------------------------------- /README.rst: -------------------------------------------------------------------------------- 1 | ForgeryPy 2 | ========= 3 | 4 | ForgeryPy is an easy to use forged data generator. It's a (somewhat incomplete) 5 | port of `forgery Ruby gem `_. 6 | 7 | 8 | Example usage 9 | ------------- 10 | 11 | >>> import forgery_py 12 | >>> forgery_py.address.street_address() 13 | u'4358 Shopko Junction' 14 | >>> forgery_py.basic.hex_color() 15 | '3F0A59' 16 | >>> forgery_py.currency.description() 17 | u'Slovenia Tolars' 18 | >>> forgery_py.date.date() 19 | datetime.date(2012, 7, 27) 20 | >>> forgery_py.internet.email_address() 21 | u'brian@zazio.mil' 22 | >>> forgery_py.lorem_ipsum.title() 23 | u'Pretium nam rhoncus ultrices!' 24 | >>> forgery_py.name.full_name() 25 | u'Mary Peters' 26 | >>> forgery_py.personal.language() 27 | u'Hungarian' 28 | 29 | 30 | Credits 31 | ------- 32 | 33 | The project uses dictionary files from `forgery Ruby gem `_. 34 | 35 | 36 | License 37 | ------- 38 | 39 | MIT-style, see LICENSE -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | PAPER = 8 | BUILDDIR = _build 9 | 10 | # Internal variables. 11 | PAPEROPT_a4 = -D latex_paper_size=a4 12 | PAPEROPT_letter = -D latex_paper_size=letter 13 | ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 14 | # the i18n builder cannot share the environment and doctrees with the others 15 | I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . 16 | 17 | .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext 18 | 19 | help: 20 | @echo "Please use \`make ' where is one of" 21 | @echo " html to make standalone HTML files" 22 | @echo " dirhtml to make HTML files named index.html in directories" 23 | @echo " singlehtml to make a single large HTML file" 24 | @echo " pickle to make pickle files" 25 | @echo " json to make JSON files" 26 | @echo " htmlhelp to make HTML files and a HTML help project" 27 | @echo " qthelp to make HTML files and a qthelp project" 28 | @echo " devhelp to make HTML files and a Devhelp project" 29 | @echo " epub to make an epub" 30 | @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" 31 | @echo " latexpdf to make LaTeX files and run them through pdflatex" 32 | @echo " text to make text files" 33 | @echo " man to make manual pages" 34 | @echo " texinfo to make Texinfo files" 35 | @echo " info to make Texinfo files and run them through makeinfo" 36 | @echo " gettext to make PO message catalogs" 37 | @echo " changes to make an overview of all changed/added/deprecated items" 38 | @echo " linkcheck to check all external links for integrity" 39 | @echo " doctest to run all doctests embedded in the documentation (if enabled)" 40 | 41 | clean: 42 | -rm -rf $(BUILDDIR)/* 43 | 44 | html: 45 | $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html 46 | @echo 47 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." 48 | 49 | dirhtml: 50 | $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml 51 | @echo 52 | @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." 53 | 54 | singlehtml: 55 | $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml 56 | @echo 57 | @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." 58 | 59 | pickle: 60 | $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle 61 | @echo 62 | @echo "Build finished; now you can process the pickle files." 63 | 64 | json: 65 | $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json 66 | @echo 67 | @echo "Build finished; now you can process the JSON files." 68 | 69 | htmlhelp: 70 | $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp 71 | @echo 72 | @echo "Build finished; now you can run HTML Help Workshop with the" \ 73 | ".hhp project file in $(BUILDDIR)/htmlhelp." 74 | 75 | qthelp: 76 | $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp 77 | @echo 78 | @echo "Build finished; now you can run "qcollectiongenerator" with the" \ 79 | ".qhcp project file in $(BUILDDIR)/qthelp, like this:" 80 | @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ForgeryPy.qhcp" 81 | @echo "To view the help file:" 82 | @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ForgeryPy.qhc" 83 | 84 | devhelp: 85 | $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp 86 | @echo 87 | @echo "Build finished." 88 | @echo "To view the help file:" 89 | @echo "# mkdir -p $$HOME/.local/share/devhelp/ForgeryPy" 90 | @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/ForgeryPy" 91 | @echo "# devhelp" 92 | 93 | epub: 94 | $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub 95 | @echo 96 | @echo "Build finished. The epub file is in $(BUILDDIR)/epub." 97 | 98 | latex: 99 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 100 | @echo 101 | @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." 102 | @echo "Run \`make' in that directory to run these through (pdf)latex" \ 103 | "(use \`make latexpdf' here to do that automatically)." 104 | 105 | latexpdf: 106 | $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex 107 | @echo "Running LaTeX files through pdflatex..." 108 | $(MAKE) -C $(BUILDDIR)/latex all-pdf 109 | @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." 110 | 111 | text: 112 | $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text 113 | @echo 114 | @echo "Build finished. The text files are in $(BUILDDIR)/text." 115 | 116 | man: 117 | $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man 118 | @echo 119 | @echo "Build finished. The manual pages are in $(BUILDDIR)/man." 120 | 121 | texinfo: 122 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 123 | @echo 124 | @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." 125 | @echo "Run \`make' in that directory to run these through makeinfo" \ 126 | "(use \`make info' here to do that automatically)." 127 | 128 | info: 129 | $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo 130 | @echo "Running Texinfo files through makeinfo..." 131 | make -C $(BUILDDIR)/texinfo info 132 | @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." 133 | 134 | gettext: 135 | $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale 136 | @echo 137 | @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." 138 | 139 | changes: 140 | $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes 141 | @echo 142 | @echo "The overview file is in $(BUILDDIR)/changes." 143 | 144 | linkcheck: 145 | $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck 146 | @echo 147 | @echo "Link check complete; look for any errors in the above output " \ 148 | "or in $(BUILDDIR)/linkcheck/output.txt." 149 | 150 | doctest: 151 | $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest 152 | @echo "Testing of doctests in the sources finished, look at the " \ 153 | "results in $(BUILDDIR)/doctest/output.txt." 154 | -------------------------------------------------------------------------------- /docs/_static/.placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomekwojcik/ForgeryPy/0d1864e86b4362d8d6c215c618e8451d39a7a567/docs/_static/.placeholder -------------------------------------------------------------------------------- /docs/_templates/.placeholder: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tomekwojcik/ForgeryPy/0d1864e86b4362d8d6c215c618e8451d39a7a567/docs/_templates/.placeholder -------------------------------------------------------------------------------- /docs/address.rst: -------------------------------------------------------------------------------- 1 | :mod:`address` Module 2 | ===================== 3 | 4 | .. automodule:: forgery_py.forgery.address 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/basic.rst: -------------------------------------------------------------------------------- 1 | :mod:`basic` Module 2 | =================== 3 | 4 | .. automodule:: forgery_py.forgery.basic 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # ForgeryPy documentation build configuration file, created by 4 | # sphinx-quickstart on Wed Jul 11 20:31:25 2012. 5 | # 6 | # This file is execfile()d with the current directory set to its containing dir. 7 | # 8 | # Note that not all possible configuration values are present in this 9 | # autogenerated file. 10 | # 11 | # All configuration values have a default; values that are commented out 12 | # serve to show the default. 13 | 14 | import sys, os 15 | 16 | # If extensions (or modules to document with autodoc) are in another directory, 17 | # add these directories to sys.path here. If the directory is relative to the 18 | # documentation root, use os.path.abspath to make it absolute, like shown here. 19 | sys.path.insert(0, os.path.abspath('..')) 20 | 21 | # -- General configuration ----------------------------------------------------- 22 | 23 | # If your documentation needs a minimal Sphinx version, state it here. 24 | #needs_sphinx = '1.0' 25 | 26 | # Add any Sphinx extension module names here, as strings. They can be extensions 27 | # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. 28 | extensions = ['sphinx.ext.autodoc', 'sphinx.ext.viewcode'] 29 | 30 | # Add any paths that contain templates here, relative to this directory. 31 | templates_path = ['_templates'] 32 | 33 | # The suffix of source filenames. 34 | source_suffix = '.rst' 35 | 36 | # The encoding of source files. 37 | #source_encoding = 'utf-8-sig' 38 | 39 | # The master toctree document. 40 | master_doc = 'index' 41 | 42 | # General information about the project. 43 | project = u'ForgeryPy' 44 | copyright = u'2012, BTHLabs' 45 | 46 | # The version info for the project you're documenting, acts as replacement for 47 | # |version| and |release|, also used in various other places throughout the 48 | # built documents. 49 | # 50 | # The short X.Y version. 51 | version = '0.1' 52 | # The full version, including alpha/beta/rc tags. 53 | release = '0.1' 54 | 55 | # The language for content autogenerated by Sphinx. Refer to documentation 56 | # for a list of supported languages. 57 | #language = None 58 | 59 | # There are two options for replacing |today|: either, you set today to some 60 | # non-false value, then it is used: 61 | #today = '' 62 | # Else, today_fmt is used as the format for a strftime call. 63 | #today_fmt = '%B %d, %Y' 64 | 65 | # List of patterns, relative to source directory, that match files and 66 | # directories to ignore when looking for source files. 67 | exclude_patterns = ['_build'] 68 | 69 | # The reST default role (used for this markup: `text`) to use for all documents. 70 | #default_role = None 71 | 72 | # If true, '()' will be appended to :func: etc. cross-reference text. 73 | #add_function_parentheses = True 74 | 75 | # If true, the current module name will be prepended to all description 76 | # unit titles (such as .. function::). 77 | #add_module_names = True 78 | 79 | # If true, sectionauthor and moduleauthor directives will be shown in the 80 | # output. They are ignored by default. 81 | #show_authors = False 82 | 83 | # The name of the Pygments (syntax highlighting) style to use. 84 | pygments_style = 'sphinx' 85 | 86 | # A list of ignored prefixes for module index sorting. 87 | #modindex_common_prefix = [] 88 | 89 | 90 | # -- Options for HTML output --------------------------------------------------- 91 | 92 | # The theme to use for HTML and HTML Help pages. See the documentation for 93 | # a list of builtin themes. 94 | html_theme = 'default' 95 | 96 | # Theme options are theme-specific and customize the look and feel of a theme 97 | # further. For a list of options available for each theme, see the 98 | # documentation. 99 | #html_theme_options = {} 100 | 101 | # Add any paths that contain custom themes here, relative to this directory. 102 | #html_theme_path = [] 103 | 104 | # The name for this set of Sphinx documents. If None, it defaults to 105 | # " v documentation". 106 | #html_title = None 107 | 108 | # A shorter title for the navigation bar. Default is the same as html_title. 109 | #html_short_title = None 110 | 111 | # The name of an image file (relative to this directory) to place at the top 112 | # of the sidebar. 113 | #html_logo = None 114 | 115 | # The name of an image file (within the static path) to use as favicon of the 116 | # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 117 | # pixels large. 118 | #html_favicon = None 119 | 120 | # Add any paths that contain custom static files (such as style sheets) here, 121 | # relative to this directory. They are copied after the builtin static files, 122 | # so a file named "default.css" will overwrite the builtin "default.css". 123 | html_static_path = ['_static'] 124 | 125 | # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, 126 | # using the given strftime format. 127 | #html_last_updated_fmt = '%b %d, %Y' 128 | 129 | # If true, SmartyPants will be used to convert quotes and dashes to 130 | # typographically correct entities. 131 | #html_use_smartypants = True 132 | 133 | # Custom sidebar templates, maps document names to template names. 134 | #html_sidebars = {} 135 | 136 | # Additional templates that should be rendered to pages, maps page names to 137 | # template names. 138 | #html_additional_pages = {} 139 | 140 | # If false, no module index is generated. 141 | #html_domain_indices = True 142 | 143 | # If false, no index is generated. 144 | #html_use_index = True 145 | 146 | # If true, the index is split into individual pages for each letter. 147 | #html_split_index = False 148 | 149 | # If true, links to the reST sources are added to the pages. 150 | #html_show_sourcelink = True 151 | 152 | # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. 153 | #html_show_sphinx = True 154 | 155 | # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. 156 | #html_show_copyright = True 157 | 158 | # If true, an OpenSearch description file will be output, and all pages will 159 | # contain a tag referring to it. The value of this option must be the 160 | # base URL from which the finished HTML is served. 161 | #html_use_opensearch = '' 162 | 163 | # This is the file name suffix for HTML files (e.g. ".xhtml"). 164 | #html_file_suffix = None 165 | 166 | # Output file base name for HTML help builder. 167 | htmlhelp_basename = 'ForgeryPydoc' 168 | 169 | 170 | # -- Options for LaTeX output -------------------------------------------------- 171 | 172 | latex_elements = { 173 | # The paper size ('letterpaper' or 'a4paper'). 174 | #'papersize': 'letterpaper', 175 | 176 | # The font size ('10pt', '11pt' or '12pt'). 177 | #'pointsize': '10pt', 178 | 179 | # Additional stuff for the LaTeX preamble. 180 | #'preamble': '', 181 | } 182 | 183 | # Grouping the document tree into LaTeX files. List of tuples 184 | # (source start file, target name, title, author, documentclass [howto/manual]). 185 | latex_documents = [ 186 | ('index', 'ForgeryPy.tex', u'ForgeryPy Documentation', 187 | u'BTHLabs', 'manual'), 188 | ] 189 | 190 | # The name of an image file (relative to this directory) to place at the top of 191 | # the title page. 192 | #latex_logo = None 193 | 194 | # For "manual" documents, if this is true, then toplevel headings are parts, 195 | # not chapters. 196 | #latex_use_parts = False 197 | 198 | # If true, show page references after internal links. 199 | #latex_show_pagerefs = False 200 | 201 | # If true, show URL addresses after external links. 202 | #latex_show_urls = False 203 | 204 | # Documents to append as an appendix to all manuals. 205 | #latex_appendices = [] 206 | 207 | # If false, no module index is generated. 208 | #latex_domain_indices = True 209 | 210 | 211 | # -- Options for manual page output -------------------------------------------- 212 | 213 | # One entry per manual page. List of tuples 214 | # (source start file, name, description, authors, manual section). 215 | man_pages = [ 216 | ('index', 'forgerypy', u'ForgeryPy Documentation', 217 | [u'BTHLabs'], 1) 218 | ] 219 | 220 | # If true, show URL addresses after external links. 221 | #man_show_urls = False 222 | 223 | 224 | # -- Options for Texinfo output ------------------------------------------------ 225 | 226 | # Grouping the document tree into Texinfo files. List of tuples 227 | # (source start file, target name, title, author, 228 | # dir menu entry, description, category) 229 | texinfo_documents = [ 230 | ('index', 'ForgeryPy', u'ForgeryPy Documentation', 231 | u'BTHLabs', 'ForgeryPy', 'One line description of project.', 232 | 'Miscellaneous'), 233 | ] 234 | 235 | # Documents to append as an appendix to all manuals. 236 | #texinfo_appendices = [] 237 | 238 | # If false, no module index is generated. 239 | #texinfo_domain_indices = True 240 | 241 | # How to display URL addresses: 'footnote', 'no', or 'inline'. 242 | #texinfo_show_urls = 'footnote' 243 | 244 | 245 | # -- Options for Epub output --------------------------------------------------- 246 | 247 | # Bibliographic Dublin Core info. 248 | epub_title = u'ForgeryPy' 249 | epub_author = u'BTHLabs' 250 | epub_publisher = u'BTHLabs' 251 | epub_copyright = u'2012, BTHLabs' 252 | 253 | # The language of the text. It defaults to the language option 254 | # or en if the language is not set. 255 | #epub_language = '' 256 | 257 | # The scheme of the identifier. Typical schemes are ISBN or URL. 258 | #epub_scheme = '' 259 | 260 | # The unique identifier of the text. This can be a ISBN number 261 | # or the project homepage. 262 | #epub_identifier = '' 263 | 264 | # A unique identification for the text. 265 | #epub_uid = '' 266 | 267 | # A tuple containing the cover image and cover page html template filenames. 268 | #epub_cover = () 269 | 270 | # HTML files that should be inserted before the pages created by sphinx. 271 | # The format is a list of tuples containing the path and title. 272 | #epub_pre_files = [] 273 | 274 | # HTML files shat should be inserted after the pages created by sphinx. 275 | # The format is a list of tuples containing the path and title. 276 | #epub_post_files = [] 277 | 278 | # A list of files that should not be packed into the epub file. 279 | #epub_exclude_files = [] 280 | 281 | # The depth of the table of contents in toc.ncx. 282 | #epub_tocdepth = 3 283 | 284 | # Allow duplicate toc entries. 285 | #epub_tocdup = True 286 | -------------------------------------------------------------------------------- /docs/currency.rst: -------------------------------------------------------------------------------- 1 | :mod:`currency` Module 2 | ====================== 3 | 4 | .. automodule:: forgery_py.forgery.currency 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/date.rst: -------------------------------------------------------------------------------- 1 | :mod:`date` Module 2 | ================== 3 | 4 | .. automodule:: forgery_py.forgery.date 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- 1 | .. ForgeryPy documentation master file, created by 2 | sphinx-quickstart on Wed Jul 11 20:31:25 2012. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | ForgeryPy documentation 7 | ======================= 8 | 9 | ForgeryPy is an easy to use forged data generator. It's a (somewhat incomplete) 10 | port of `forgery Ruby gem `_. 11 | 12 | 13 | Example usage 14 | ------------- 15 | 16 | >>> import forgery_py 17 | >>> forgery_py.address.street_address() 18 | u'4358 Shopko Junction' 19 | >>> forgery_py.basic.hex_color() 20 | '3F0A59' 21 | >>> forgery_py.currency.description() 22 | u'Slovenia Tolars' 23 | >>> forgery_py.date.date() 24 | datetime.date(2012, 7, 27) 25 | >>> forgery_py.internet.email_address() 26 | u'brian@zazio.mil' 27 | >>> forgery_py.lorem_ipsum.title() 28 | u'Pretium nam rhoncus ultrices!' 29 | >>> forgery_py.name.full_name() 30 | u'Mary Peters' 31 | >>> forgery_py.personal.language() 32 | u'Hungarian' 33 | 34 | 35 | Modules 36 | ======= 37 | 38 | .. toctree:: 39 | 40 | address 41 | basic 42 | currency 43 | date 44 | internet 45 | lorem_ipsum 46 | name 47 | personal 48 | 49 | 50 | Source code and license 51 | ======================= 52 | 53 | Much like the original Ruby gem this module is licensed under MIT License. 54 | 55 | Source code is available `on GitHub `_. 56 | 57 | 58 | Indices and tables 59 | ================== 60 | 61 | * :ref:`genindex` 62 | * :ref:`modindex` 63 | * :ref:`search` 64 | 65 | -------------------------------------------------------------------------------- /docs/internet.rst: -------------------------------------------------------------------------------- 1 | :mod:`internet` Module 2 | ====================== 3 | 4 | .. automodule:: forgery_py.forgery.internet 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/lorem_ipsum.rst: -------------------------------------------------------------------------------- 1 | :mod:`lorem_ipsum` Module 2 | ========================= 3 | 4 | .. automodule:: forgery_py.forgery.lorem_ipsum 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- 1 | @ECHO OFF 2 | 3 | REM Command file for Sphinx documentation 4 | 5 | if "%SPHINXBUILD%" == "" ( 6 | set SPHINXBUILD=sphinx-build 7 | ) 8 | set BUILDDIR=_build 9 | set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . 10 | set I18NSPHINXOPTS=%SPHINXOPTS% . 11 | if NOT "%PAPER%" == "" ( 12 | set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% 13 | set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% 14 | ) 15 | 16 | if "%1" == "" goto help 17 | 18 | if "%1" == "help" ( 19 | :help 20 | echo.Please use `make ^` where ^ is one of 21 | echo. html to make standalone HTML files 22 | echo. dirhtml to make HTML files named index.html in directories 23 | echo. singlehtml to make a single large HTML file 24 | echo. pickle to make pickle files 25 | echo. json to make JSON files 26 | echo. htmlhelp to make HTML files and a HTML help project 27 | echo. qthelp to make HTML files and a qthelp project 28 | echo. devhelp to make HTML files and a Devhelp project 29 | echo. epub to make an epub 30 | echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter 31 | echo. text to make text files 32 | echo. man to make manual pages 33 | echo. texinfo to make Texinfo files 34 | echo. gettext to make PO message catalogs 35 | echo. changes to make an overview over all changed/added/deprecated items 36 | echo. linkcheck to check all external links for integrity 37 | echo. doctest to run all doctests embedded in the documentation if enabled 38 | goto end 39 | ) 40 | 41 | if "%1" == "clean" ( 42 | for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i 43 | del /q /s %BUILDDIR%\* 44 | goto end 45 | ) 46 | 47 | if "%1" == "html" ( 48 | %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html 49 | if errorlevel 1 exit /b 1 50 | echo. 51 | echo.Build finished. The HTML pages are in %BUILDDIR%/html. 52 | goto end 53 | ) 54 | 55 | if "%1" == "dirhtml" ( 56 | %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml 57 | if errorlevel 1 exit /b 1 58 | echo. 59 | echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. 60 | goto end 61 | ) 62 | 63 | if "%1" == "singlehtml" ( 64 | %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml 65 | if errorlevel 1 exit /b 1 66 | echo. 67 | echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. 68 | goto end 69 | ) 70 | 71 | if "%1" == "pickle" ( 72 | %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle 73 | if errorlevel 1 exit /b 1 74 | echo. 75 | echo.Build finished; now you can process the pickle files. 76 | goto end 77 | ) 78 | 79 | if "%1" == "json" ( 80 | %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json 81 | if errorlevel 1 exit /b 1 82 | echo. 83 | echo.Build finished; now you can process the JSON files. 84 | goto end 85 | ) 86 | 87 | if "%1" == "htmlhelp" ( 88 | %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp 89 | if errorlevel 1 exit /b 1 90 | echo. 91 | echo.Build finished; now you can run HTML Help Workshop with the ^ 92 | .hhp project file in %BUILDDIR%/htmlhelp. 93 | goto end 94 | ) 95 | 96 | if "%1" == "qthelp" ( 97 | %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp 98 | if errorlevel 1 exit /b 1 99 | echo. 100 | echo.Build finished; now you can run "qcollectiongenerator" with the ^ 101 | .qhcp project file in %BUILDDIR%/qthelp, like this: 102 | echo.^> qcollectiongenerator %BUILDDIR%\qthelp\ForgeryPy.qhcp 103 | echo.To view the help file: 104 | echo.^> assistant -collectionFile %BUILDDIR%\qthelp\ForgeryPy.ghc 105 | goto end 106 | ) 107 | 108 | if "%1" == "devhelp" ( 109 | %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp 110 | if errorlevel 1 exit /b 1 111 | echo. 112 | echo.Build finished. 113 | goto end 114 | ) 115 | 116 | if "%1" == "epub" ( 117 | %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub 118 | if errorlevel 1 exit /b 1 119 | echo. 120 | echo.Build finished. The epub file is in %BUILDDIR%/epub. 121 | goto end 122 | ) 123 | 124 | if "%1" == "latex" ( 125 | %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex 126 | if errorlevel 1 exit /b 1 127 | echo. 128 | echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. 129 | goto end 130 | ) 131 | 132 | if "%1" == "text" ( 133 | %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text 134 | if errorlevel 1 exit /b 1 135 | echo. 136 | echo.Build finished. The text files are in %BUILDDIR%/text. 137 | goto end 138 | ) 139 | 140 | if "%1" == "man" ( 141 | %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man 142 | if errorlevel 1 exit /b 1 143 | echo. 144 | echo.Build finished. The manual pages are in %BUILDDIR%/man. 145 | goto end 146 | ) 147 | 148 | if "%1" == "texinfo" ( 149 | %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo 150 | if errorlevel 1 exit /b 1 151 | echo. 152 | echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. 153 | goto end 154 | ) 155 | 156 | if "%1" == "gettext" ( 157 | %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale 158 | if errorlevel 1 exit /b 1 159 | echo. 160 | echo.Build finished. The message catalogs are in %BUILDDIR%/locale. 161 | goto end 162 | ) 163 | 164 | if "%1" == "changes" ( 165 | %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes 166 | if errorlevel 1 exit /b 1 167 | echo. 168 | echo.The overview file is in %BUILDDIR%/changes. 169 | goto end 170 | ) 171 | 172 | if "%1" == "linkcheck" ( 173 | %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck 174 | if errorlevel 1 exit /b 1 175 | echo. 176 | echo.Link check complete; look for any errors in the above output ^ 177 | or in %BUILDDIR%/linkcheck/output.txt. 178 | goto end 179 | ) 180 | 181 | if "%1" == "doctest" ( 182 | %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest 183 | if errorlevel 1 exit /b 1 184 | echo. 185 | echo.Testing of doctests in the sources finished, look at the ^ 186 | results in %BUILDDIR%/doctest/output.txt. 187 | goto end 188 | ) 189 | 190 | :end 191 | -------------------------------------------------------------------------------- /docs/name.rst: -------------------------------------------------------------------------------- 1 | :mod:`name` Module 2 | ================== 3 | 4 | .. automodule:: forgery_py.forgery.name 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /docs/personal.rst: -------------------------------------------------------------------------------- 1 | :mod:`personal` Module 2 | ====================== 3 | 4 | .. automodule:: forgery_py.forgery.personal 5 | :members: 6 | :undoc-members: 7 | :show-inheritance: -------------------------------------------------------------------------------- /forgery_py/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Easy to use generator of various forged data.""" 23 | 24 | from .forgery import address 25 | from .forgery import basic 26 | from .forgery import currency 27 | from .forgery import date 28 | from .forgery import internet 29 | from .forgery import lorem_ipsum 30 | from .forgery import name 31 | from .forgery import personal 32 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2007 Sevenwire LLC 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 4 | 5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 6 | 7 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /forgery_py/dictionaries/cities: -------------------------------------------------------------------------------- 1 | Adelanto 2 | Agoura Hills 3 | Alameda 4 | Albany 5 | Alhambra 6 | Aliso Viejo 7 | Alturas 8 | Amador City 9 | American Canyon 10 | Anaheim 11 | Anderson 12 | Angels Camp 13 | Antioch 14 | Apple Valley 15 | Arcadia 16 | Arcata 17 | Arroyo Grande 18 | Artesia 19 | Arvin 20 | Atascadero 21 | Atherton 22 | Atwater 23 | Auburn 24 | Avalon 25 | Avenal 26 | Azusa 27 | Bakersfield 28 | Baldwin Park 29 | Banning 30 | Barstow 31 | Beaumont 32 | Bell 33 | Bell Gardens 34 | Bellflower 35 | Belmont 36 | Belvedere 37 | Benicia 38 | Berkeley 39 | Beverly Hills 40 | Big Bear Lake 41 | Biggs 42 | Bishop 43 | Blue Lake 44 | Blythe 45 | Bradbury 46 | Brawley 47 | Brea 48 | Brentwood 49 | Brisbane 50 | Buellton 51 | Buena Park 52 | Burbank 53 | Burlingame 54 | Calabasas 55 | Calexico 56 | California City 57 | Calimesa 58 | Calipatria 59 | Calistoga 60 | Camarillo 61 | Canyon Lake 62 | Capitola 63 | Carlsbad 64 | Carmel-by-the-Sea 65 | Carpinteria 66 | Carson 67 | Cathedral City 68 | Ceres 69 | Cerritos 70 | Chico 71 | Chino 72 | Chino Hills 73 | Chowchilla 74 | Chula Vista 75 | Citrus Heights 76 | Claremont 77 | Clayton 78 | Clearlake 79 | Cloverdale 80 | Clovis 81 | Coachella 82 | Coalinga 83 | Colfax 84 | Colma 85 | Colton 86 | Colusa 87 | City of Commerce 88 | Compton 89 | Concord 90 | Corcoran 91 | Corning 92 | Corona 93 | Coronado 94 | Corte Madera 95 | Costa Mesa 96 | Cotati 97 | Covina 98 | Crescent City 99 | Cudahy 100 | Culver City 101 | Cupertino 102 | Cypress 103 | Daly City 104 | Dana Point 105 | Danville 106 | Davis 107 | Del Mar 108 | Del Rey Oaks 109 | Delano 110 | Desert Hot Springs 111 | Diamond Bar 112 | Dinuba 113 | Dixon 114 | Dorris 115 | Dos Palos 116 | Downey 117 | Duarte 118 | Dublin 119 | Dunsmuir 120 | East Palo Alto 121 | El Cajon 122 | El Centro 123 | El Cerrito 124 | El Monte 125 | El Segundo 126 | Elk Grove 127 | Emeryville 128 | Encinitas 129 | Escalon 130 | Escondido 131 | Etna 132 | Eureka 133 | Exeter 134 | Fairfax 135 | Fairfield 136 | Farmersville 137 | Ferndale 138 | Fillmore 139 | Firebaugh 140 | Folsom 141 | Fontana 142 | Fort Bragg 143 | Fort Jones 144 | Fortuna 145 | Foster City 146 | Fountain Valley 147 | Fowler 148 | Fremont 149 | Fresno 150 | Fullerton 151 | Galt 152 | Garden Grove 153 | Gardena 154 | Gilroy 155 | Glendale 156 | Glendora 157 | Goleta 158 | Gonzales 159 | Grand Terrace 160 | Grass Valley 161 | Greenfield 162 | Gridley 163 | Grover Beach 164 | Guadalupe 165 | Gustine 166 | Half Moon Bay 167 | Hanford 168 | Hawaiian Gardens 169 | Hawthorne 170 | Hayward 171 | Healdsburg 172 | Hemet 173 | Hercules 174 | Hermosa Beach 175 | Hesperia 176 | Hidden Hills 177 | Highland 178 | Hillsborough 179 | Hollister 180 | Holtville 181 | Hughson 182 | Huntington Beach 183 | Huntington Park 184 | Huron 185 | Imperial 186 | Imperial Beach 187 | Indian Wells 188 | Indio 189 | City of Industry 190 | Inglewood 191 | Ione 192 | Irvine 193 | Irwindale 194 | Isleton 195 | Jackson 196 | Kerman 197 | King City 198 | Kingsburg 199 | La Cañada Flintridge 200 | La Habra 201 | La Habra Heights 202 | La Mesa 203 | La Mirada 204 | La Palma 205 | La Puente 206 | La Quinta 207 | La Verne 208 | Lafayette 209 | Laguna Beach 210 | Laguna Hills 211 | Laguna Niguel 212 | Laguna Woods 213 | Lake Elsinore 214 | Lake Forest 215 | Lakeport 216 | Lakewood 217 | Lancaster 218 | Larkspur 219 | Lathrop 220 | Lawndale 221 | Lemon Grove 222 | Lemoore 223 | Lincoln 224 | Lindsay 225 | Live Oak 226 | Livermore 227 | Livingston 228 | Lodi 229 | Loma Linda 230 | Lomita 231 | Lompoc 232 | Long Beach 233 | Loomis 234 | Los Alamitos 235 | Los Altos 236 | Los Altos Hills 237 | Los Angeles 238 | Los Banos 239 | Los Gatos 240 | Loyalton 241 | Lynwood 242 | Madera 243 | Malibu 244 | Mammoth Lakes 245 | Manhattan Beach 246 | Manteca 247 | Maricopa 248 | Marina 249 | Martinez 250 | Marysville 251 | Maywood 252 | McFarland 253 | Mendota 254 | Menlo Park 255 | Menifee 256 | Merced 257 | Mill Valley 258 | Millbrae 259 | Milpitas 260 | Mission Viejo 261 | Modesto 262 | Monrovia 263 | Montague 264 | Montclair 265 | Monte Sereno 266 | Montebello 267 | Monterey 268 | Monterey Park 269 | Moorpark 270 | Moraga 271 | Moreno Valley 272 | Morgan Hill 273 | Morro Bay 274 | Mount Shasta 275 | Mountain View 276 | Murrieta 277 | Napa 278 | National City 279 | Needles 280 | Nevada City 281 | Newark 282 | Newman 283 | Newport Beach 284 | Norco 285 | Norwalk 286 | Novato 287 | Oakdale 288 | Oakland 289 | Oakley 290 | Oceanside 291 | Ojai 292 | Ontario 293 | Orange 294 | Orange Cove 295 | Orinda 296 | Orland 297 | Oroville 298 | Oxnard 299 | Pacific Grove 300 | Pacifica 301 | Palm Desert 302 | Palm Springs 303 | Palmdale 304 | Palo Alto 305 | Palos Verdes Estates 306 | Paradise 307 | Paramount 308 | Parlier 309 | Pasadena 310 | Paso Robles 311 | Patterson 312 | Perris 313 | Petaluma 314 | Pico Rivera 315 | Piedmont 316 | Pinole 317 | Pismo Beach 318 | Pittsburg 319 | Placentia 320 | Placerville 321 | Pleasant Hill 322 | Pleasanton 323 | Plymouth 324 | Point Arena 325 | Pomona 326 | Port Hueneme 327 | Porterville 328 | Portola 329 | Portola Valley 330 | Poway 331 | Rancho Cordova 332 | Rancho Cucamonga 333 | Rancho Mirage 334 | Rancho Palos Verdes 335 | Rancho Santa Margarita 336 | Red Bluff 337 | Redding 338 | Redlands 339 | Redondo Beach 340 | Redwood City 341 | Reedley 342 | Rialto 343 | Richmond 344 | Ridgecrest 345 | Rio Dell 346 | Rio Vista 347 | Ripon 348 | Riverbank 349 | Riverside 350 | Rocklin 351 | Rohnert Park 352 | Rolling Hills 353 | Rolling Hills Estates 354 | Rosemead 355 | Roseville 356 | Ross 357 | Sacramento 358 | Salinas 359 | San Anselmo 360 | San Bernardino 361 | San Bruno 362 | San Carlos 363 | San Clemente 364 | San Diego 365 | San Dimas 366 | San Fernando 367 | San Francisco 368 | San Gabriel 369 | San Jacinto 370 | San Joaquin 371 | San Jose 372 | San Juan Bautista 373 | San Juan Capistrano 374 | San Leandro 375 | San Luis Obispo 376 | San Marcos 377 | San Marino 378 | San Mateo 379 | San Pablo 380 | San Rafael 381 | San Ramon 382 | Sand City 383 | Sanger 384 | Santa Ana 385 | Santa Barbara 386 | Santa Clara 387 | Santa Clarita 388 | Santa Cruz 389 | Santa Fe Springs 390 | Santa Maria 391 | Santa Monica 392 | Santa Paula 393 | Santa Rosa 394 | Santee 395 | Saratoga 396 | Sausalito 397 | Scotts Valley 398 | Seal Beach 399 | Seaside 400 | Sebastopol 401 | Selma 402 | Shafter 403 | Shasta Lake 404 | Sierra Madre 405 | Signal Hill 406 | Simi Valley 407 | Solana Beach 408 | Soledad 409 | Solvang 410 | Sonoma 411 | Sonora 412 | South El Monte 413 | South Gate 414 | South Lake Tahoe 415 | South Pasadena 416 | South San Francisco 417 | St. Helena 418 | Stanton 419 | Stockton 420 | Studio City 421 | Suisun City 422 | Sunnyvale 423 | Susanville 424 | Sutter Creek 425 | Taft 426 | Tehachapi 427 | Tehama 428 | Temecula 429 | Temple City 430 | Thousand Oaks 431 | Tiburon 432 | Torrance 433 | Tracy 434 | Trinidad 435 | Truckee 436 | Tulare 437 | Tulelake 438 | Turlock 439 | Tustin 440 | Twentynine Palms 441 | Ukiah 442 | Union City 443 | Upland 444 | Vacaville 445 | Vallejo 446 | Ventura 447 | Vernon 448 | Victorville 449 | Villa Park 450 | Visalia 451 | Vista 452 | Walnut 453 | Walnut Creek 454 | Wasco 455 | Waterford 456 | Watsonville 457 | Weed 458 | West Covina 459 | West Sacramento 460 | Westlake Village 461 | Westminster 462 | Westmorland 463 | Wheatland 464 | Whittier 465 | Williams 466 | Willits 467 | Willows 468 | Windsor 469 | Winters 470 | Woodlake 471 | Woodland 472 | Woodside 473 | Yorba Linda 474 | Yountville 475 | Yreka 476 | Yuba City 477 | Yucaipa 478 | Yucca Valley 479 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/colors: -------------------------------------------------------------------------------- 1 | Red 2 | Blue 3 | Green 4 | Yellow 5 | Orange 6 | Purple 7 | Violet 8 | Indigo 9 | Teal 10 | Pink 11 | Fuscia 12 | Goldenrod 13 | Mauv 14 | Aquamarine 15 | Turquoise 16 | Crimson 17 | Maroon 18 | Puce 19 | Khaki 20 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/company_names: -------------------------------------------------------------------------------- 1 | Kwilith 2 | Eayo 3 | Voolith 4 | Eabox 5 | Gigabox 6 | Meeveo 7 | Yombu 8 | Eire 9 | Oyonder 10 | Dynazzy 11 | Demimbu 12 | Wikizz 13 | InnoZ 14 | Pixonyx 15 | Snaptags 16 | Yamia 17 | Avamm 18 | Centimia 19 | Abata 20 | Feedmix 21 | Fadeo 22 | Thoughtbridge 23 | Thoughtmix 24 | Agivu 25 | Janyx 26 | Bubblemix 27 | Divape 28 | Leenti 29 | Buzzbean 30 | Agimba 31 | Jaxspan 32 | Skyvu 33 | Flipstorm 34 | Browseblab 35 | Edgepulse 36 | Cogibox 37 | Lajo 38 | Realbridge 39 | Twimm 40 | Kwinu 41 | Thoughtstorm 42 | Flipopia 43 | Dabshots 44 | Npath 45 | Avavee 46 | BlogXS 47 | Layo 48 | Skyba 49 | Jabbersphere 50 | Thoughtblab 51 | Skinix 52 | Photolist 53 | Innojam 54 | Skinder 55 | Oyope 56 | Wikizz 57 | Babbleblab 58 | Rhyzio 59 | Yambee 60 | Divanoodle 61 | Babbleset 62 | Topicware 63 | Yodoo 64 | Devpoint 65 | Edgeblab 66 | Devshare 67 | Trudoo 68 | Cogidoo 69 | Blogpad 70 | Voonder 71 | Mynte 72 | Fatz 73 | Gabtune 74 | Mybuzz 75 | Kayveo 76 | Kazu 77 | Vinte 78 | Photojam 79 | Meetz 80 | Zooveo 81 | Photobug 82 | Oyoba 83 | Realcube 84 | Livefish 85 | Kare 86 | Jayo 87 | Brightbean 88 | Livepath 89 | Skynoodle 90 | Devify 91 | Dabjam 92 | Katz 93 | Zoomzone 94 | Jaloo 95 | Browsebug 96 | Shuffledrive 97 | Meezzy 98 | Fivebridge 99 | Gabspot 100 | Roomm 101 | Fivechat 102 | Blogtag 103 | Zoonoodle 104 | Kanoodle 105 | Camido 106 | Yadel 107 | Yodo 108 | Topicstorm 109 | Jabbertype 110 | Jatri 111 | Kwideo 112 | Izio 113 | Voomm 114 | Jaxbean 115 | Skipstorm 116 | Mita 117 | Gigaclub 118 | Skimia 119 | Blogtags 120 | Vitz 121 | Dynava 122 | Jetwire 123 | Miboo 124 | Quimba 125 | Einti 126 | Oba 127 | JumpXS 128 | Voonix 129 | Jabberstorm 130 | Thoughtstorm 131 | Myworks 132 | Devbug 133 | Linkbridge 134 | Dabfeed 135 | Meembee 136 | Skiba 137 | Yoveo 138 | Eazzy 139 | Photobug 140 | Edgeclub 141 | Oyondu 142 | Flipbug 143 | Pixoboo 144 | Zava 145 | Tagtune 146 | Zoombox 147 | Eidel 148 | Jaxnation 149 | Twitterworks 150 | Wordpedia 151 | Feednation 152 | DabZ 153 | Mudo 154 | Talane 155 | Twitterbridge 156 | Trilith 157 | Meemm 158 | Pixope 159 | Twitterlist 160 | Ooba 161 | Trudeo 162 | Brainverse 163 | Gigashots 164 | Rhynoodle 165 | Realfire 166 | Yata 167 | Realblab 168 | Jetpulse 169 | Yakidoo 170 | Tagpad 171 | Edgewire 172 | Yacero 173 | Blognation 174 | Avaveo 175 | Oloo 176 | Lazz 177 | Flashspan 178 | Skipfire 179 | Rooxo 180 | Realbuzz 181 | Muxo 182 | Jayo 183 | Topdrive 184 | Ntag 185 | Topicblab 186 | Meedoo 187 | Demizz 188 | Bluezoom 189 | Tagfeed 190 | Kamba 191 | Mycat 192 | Dynabox 193 | Brightdog 194 | Youspan 195 | Edgetag 196 | Roombo 197 | Feedbug 198 | Meejo 199 | Flashpoint 200 | Youbridge 201 | Gabvine 202 | Quatz 203 | Quire 204 | Camimbo 205 | Aibox 206 | Meevee 207 | Gabcube 208 | Browsetype 209 | Shuffletag 210 | Minyx 211 | Digitube 212 | Innotype 213 | Centidel 214 | Buzzdog 215 | Jazzy 216 | Divavu 217 | Browsedrive 218 | Voonte 219 | Quinu 220 | Quaxo 221 | Youopia 222 | Wordify 223 | Skivee 224 | Zoomcast 225 | Skippad 226 | Vidoo 227 | Shufflester 228 | Linklinks 229 | Youspan 230 | Quinu 231 | Topiclounge 232 | Feedfish 233 | Oozz 234 | Centizu 235 | Skiptube 236 | Vipe 237 | Zoomdog 238 | Twimbo 239 | Lazzy 240 | Nlounge 241 | Skidoo 242 | Teklist 243 | Kimia 244 | Twitterwire 245 | Mynte 246 | Thoughtsphere 247 | Rhycero 248 | Fivespan 249 | Shufflebeat 250 | Skyble 251 | Photospace 252 | Quimm 253 | Rhynyx 254 | Skaboo 255 | Latz 256 | Kwimbee 257 | Fliptune 258 | LiveZ 259 | Geba 260 | Wordtune 261 | Voolia 262 | Roodel 263 | Ainyx 264 | Zoonder 265 | Wikivu 266 | Linkbuzz 267 | Abatz 268 | Devpulse 269 | Trunyx 270 | Ozu 271 | Zoomlounge 272 | Mydo 273 | Tagcat 274 | Devcast 275 | Jabbercube 276 | Skilith 277 | Realpoint 278 | Quamba 279 | Wordware 280 | Gabtype 281 | Youtags 282 | Voomm 283 | Rhybox 284 | Tazz 285 | Riffpedia 286 | Babbleopia 287 | Zoombeat 288 | Photobean 289 | Zoozzy 290 | Twiyo 291 | Trupe 292 | Feedspan 293 | Mydeo 294 | Ntags 295 | Tekfly 296 | Tavu 297 | Riffwire 298 | Cogilith 299 | Topiczoom 300 | Jaxworks 301 | Tagchat 302 | Trilia 303 | Kaymbo 304 | Yodel 305 | Eare 306 | Gigazoom 307 | Dabtype 308 | Chatterpoint 309 | Plajo 310 | Tagopia 311 | Wikido 312 | Twinder 313 | Zooxo 314 | Linktype 315 | Skajo 316 | Riffpath 317 | Avamba 318 | Edgeify 319 | Midel 320 | Yozio 321 | Mymm 322 | Babblestorm 323 | Youfeed 324 | Wikibox 325 | Skinte 326 | Brainsphere 327 | Zoovu 328 | Flashset 329 | Ailane 330 | Zazio 331 | Brainlounge 332 | Bubblebox 333 | Quatz 334 | Bubbletube 335 | Browsezoom 336 | Dazzlesphere 337 | Feedfire 338 | Yakijo 339 | Voonyx 340 | Dabvine 341 | Skibox 342 | Buzzster 343 | Plambee 344 | Realcube 345 | Dynabox 346 | Jabbersphere 347 | Demivee 348 | Oyoyo 349 | Tanoodle 350 | Jamia 351 | Skimia 352 | Brainbox 353 | Thoughtworks 354 | Yotz 355 | Blogspan 356 | Eimbee 357 | Aivee 358 | Yabox 359 | Realmix 360 | Buzzshare 361 | Omba 362 | Chatterbridge 363 | Skyndu 364 | Browsecat 365 | Twitternation 366 | Fanoodle 367 | Twitterbeat 368 | Tambee 369 | Jabberbean 370 | Livetube 371 | Livetube 372 | Viva 373 | Vimbo 374 | Podcat 375 | Dablist 376 | Leexo 377 | Kazio 378 | Twinte 379 | Aimbo 380 | Rhyloo 381 | Flashdog 382 | Meevee 383 | Thoughtbeat 384 | Gevee 385 | Vinder 386 | Eamia 387 | Fiveclub 388 | Oodoo 389 | Tazzy 390 | Katz 391 | Bluejam 392 | Skalith 393 | Oyoloo 394 | Aimbu 395 | Photofeed 396 | Yakitri 397 | Topicshots 398 | Reallinks 399 | Eadel 400 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/continents: -------------------------------------------------------------------------------- 1 | Asia 2 | North America 3 | South America 4 | Australia 5 | Africa 6 | Europe 7 | Antarctica 8 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/countries: -------------------------------------------------------------------------------- 1 | Afghanistan 2 | Åland 3 | Albania 4 | Algeria 5 | American Samoa 6 | Andorra 7 | Angola 8 | Anguilla 9 | Antarctica 10 | Antigua and Barbuda 11 | Argentina 12 | Armenia 13 | Aruba 14 | Ascension Island 15 | Australia 16 | Austria 17 | Azerbaijan 18 | Bahamas 19 | Bahrain 20 | Bangladesh 21 | Barbados 22 | Belarus 23 | Belgium 24 | Belize 25 | Benin 26 | Bermuda 27 | Bhutan 28 | Bolivia 29 | Bosnia and Herzegovina 30 | Botswana 31 | Bouvet Island 32 | Brazil 33 | British Virgin Islands 34 | British Indian Ocean Territory 35 | Brunei Darussalam 36 | Bulgaria 37 | Burkina Faso 38 | Burundi 39 | Cambodia 40 | Cameroon 41 | Canada 42 | Cape Verde 43 | Cayman Islands 44 | Central African Republic 45 | Chad 46 | Chile 47 | China 48 | Christmas Island 49 | Cocos (Keeling) Island 50 | Colombia 51 | Comoros 52 | Congo, Republic of 53 | Congo, Democratic Republic of 54 | Cook Islands 55 | Costa Rica 56 | Cote d'Ivoire 57 | Croatia 58 | Cuba 59 | Cyprus 60 | Czech Republic 61 | Denmark 62 | Djibouti 63 | Dominica 64 | Dominican Republic 65 | Ecuador 66 | Egypt 67 | El Salvador 68 | Equatorial Guinea 69 | Eritrea 70 | Estonia 71 | Ethiopia 72 | Falkland Islands (Malvinas) 73 | Faroe Islands 74 | Fiji 75 | Finland 76 | France 77 | French Guiana 78 | French Polynesia 79 | French Southern Territories 80 | Gabon 81 | Gambia 82 | Georgia 83 | Germany 84 | Ghana 85 | Gibraltar 86 | Greece 87 | Greenland 88 | Grenada 89 | Guadeloupe 90 | Guam 91 | Guatemala 92 | Guernsey 93 | Guinea 94 | Guinea-Bissau 95 | Guyana 96 | Haiti 97 | Heard and McDonald Islands 98 | Honduras 99 | Hong Kong 100 | Hungary 101 | Iceland 102 | India 103 | Indonesia 104 | Iran 105 | Iraq 106 | Ireland 107 | Isle of Man 108 | Israel 109 | Italy 110 | Jamaica 111 | Japan 112 | Jersey 113 | Jordan 114 | Kazakhstan 115 | Kenya 116 | Kiribati 117 | Korea, North 118 | Korea, South 119 | Kuwait 120 | Kyrgyzstan 121 | Laos 122 | Latvia 123 | Lebanon 124 | Lesotho 125 | Liberia 126 | Libya 127 | Liechtenstein 128 | Lithuania 129 | Luxembourg 130 | Macau 131 | Macedonia 132 | Madagascar 133 | Malawi 134 | Malaysia 135 | Maldives 136 | Mali 137 | Malta 138 | Marshall Islands 139 | Martinique 140 | Mauritania 141 | Mauritius 142 | Mayotte 143 | Mexico 144 | Micronesia 145 | Moldova 146 | Monaco 147 | Mongolia 148 | Montenegro 149 | Montserrat 150 | Morocco 151 | Mozambique 152 | Myanmar 153 | Namibia 154 | Nauru 155 | Nepal 156 | Netherlands 157 | Netherlands Antilles 158 | New Caledonia 159 | New Zealand 160 | Nicaragua 161 | Niue 162 | Niger 163 | Nigeria 164 | Norfolk Island 165 | Northern Mariana Islands 166 | Norway 167 | Oman 168 | Pakistan 169 | Palau 170 | Palestinian Territory, Occupied 171 | Panama 172 | Papua New Guinea 173 | Paraguay 174 | Peru 175 | Philippines 176 | Pitcairn Island 177 | Poland 178 | Portugal 179 | Puerto Rico 180 | Qatar 181 | Reunion 182 | Romania 183 | Russia 184 | Rwanda 185 | Saint Barthelemy 186 | Saint Helena 187 | Saint Kitts and Nevis 188 | Saint Lucia 189 | Saint Martin 190 | Saint Pierre and Miquelon 191 | Saint Vincent and the Grenadines 192 | Samoa 193 | San Marino 194 | Sao Tome and Principe 195 | Saudia Arabia 196 | Senegal 197 | Serbia 198 | Seychelles 199 | Sierra Leone 200 | Singapore 201 | Slovakia 202 | Slovenia 203 | Solomon Islands 204 | Somalia 205 | South Africa 206 | South Georgia and the South Sandwich Islands 207 | Spain 208 | Sri Lanka 209 | Sudan 210 | Suriname 211 | Svalbard and Jan Mayen Islands 212 | Swaziland 213 | Sweden 214 | Switzerland 215 | Syria 216 | Taiwan 217 | Tajikistan 218 | Tanzania 219 | Thailand 220 | Timor-Leste 221 | Togo 222 | Tokelau 223 | Tonga 224 | Trinidad and Tobago 225 | Tunisia 226 | Turkey 227 | Turkmenistan 228 | Turks and Caicos Islands 229 | Tuvalu 230 | Uganda 231 | Ukraine 232 | United Arab Emirates 233 | United Kingdom 234 | United States of America 235 | United States Virgin Islands 236 | Uruguay 237 | US Minor Outlying Islands 238 | USSR 239 | Uzbekistan 240 | Vanuatu 241 | Vatican City State (Holy See) 242 | Venezuela 243 | Vietnam 244 | Wallis and Futuna Islands 245 | Western Sahara 246 | Yemen 247 | Yugoslavia 248 | Zambia 249 | Zimbabwe 250 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/country_code_top_level_domains: -------------------------------------------------------------------------------- 1 | ac 2 | ad 3 | ae 4 | af 5 | ag 6 | ai 7 | al 8 | am 9 | an 10 | ao 11 | aq 12 | ar 13 | as 14 | at 15 | au 16 | aw 17 | ax 18 | az 19 | ba 20 | bb 21 | bd 22 | be 23 | bf 24 | bg 25 | bh 26 | bi 27 | bj 28 | bl 29 | bm 30 | bn 31 | bo 32 | br 33 | bs 34 | bt 35 | bv 36 | bw 37 | by 38 | bz 39 | ca 40 | cc 41 | cd 42 | cf 43 | cg 44 | ch 45 | ci 46 | ck 47 | cl 48 | cm 49 | cn 50 | co 51 | cr 52 | cu 53 | cv 54 | cx 55 | cy 56 | cz 57 | de 58 | dj 59 | dk 60 | dm 61 | do 62 | dz 63 | ec 64 | ee 65 | eg 66 | eh 67 | er 68 | es 69 | et 70 | eu 71 | fi 72 | fj 73 | fk 74 | fm 75 | fo 76 | fr 77 | ga 78 | gb 79 | gd 80 | ge 81 | gf 82 | gg 83 | gh 84 | gi 85 | gl 86 | gm 87 | gn 88 | gp 89 | gq 90 | gr 91 | gs 92 | gt 93 | gu 94 | gw 95 | gy 96 | hk 97 | hm 98 | hn 99 | hr 100 | ht 101 | hu 102 | id 103 | ie 104 | il 105 | im 106 | in 107 | io 108 | iq 109 | ir 110 | is 111 | it 112 | je 113 | jm 114 | jo 115 | jp 116 | ke 117 | kg 118 | kh 119 | ki 120 | km 121 | kn 122 | kp 123 | kr 124 | kw 125 | ky 126 | kz 127 | la 128 | lb 129 | lc 130 | li 131 | lk 132 | lr 133 | ls 134 | lt 135 | lu 136 | lv 137 | ly 138 | ma 139 | mc 140 | md 141 | me 142 | mg 143 | mh 144 | mk 145 | ml 146 | mm 147 | mn 148 | mo 149 | mp 150 | mq 151 | mr 152 | ms 153 | mt 154 | mu 155 | mv 156 | mw 157 | mx 158 | my 159 | mz 160 | na 161 | nc 162 | ne 163 | nf 164 | ng 165 | ni 166 | nl 167 | no 168 | np 169 | nr 170 | nu 171 | nz 172 | om 173 | pa 174 | pe 175 | pf 176 | pg 177 | ph 178 | pk 179 | pl 180 | pm 181 | pn 182 | pr 183 | ps 184 | pt 185 | pw 186 | py 187 | qa 188 | re 189 | ro 190 | rs 191 | ru 192 | rw 193 | sa 194 | sb 195 | sc 196 | sd 197 | se 198 | sg 199 | sh 200 | si 201 | sj 202 | sk 203 | sl 204 | sm 205 | sn 206 | so 207 | sr 208 | st 209 | su 210 | sv 211 | sy 212 | sz 213 | tc 214 | td 215 | tf 216 | tg 217 | th 218 | tj 219 | tk 220 | tl 221 | tm 222 | tn 223 | to 224 | tp 225 | tr 226 | tt 227 | tv 228 | tw 229 | tz 230 | ua 231 | ug 232 | uk 233 | um 234 | us 235 | uy 236 | uz 237 | va 238 | vc 239 | ve 240 | vg 241 | vi 242 | vn 243 | vu 244 | wf 245 | ws 246 | ye 247 | yt 248 | yu 249 | za 250 | zm 251 | zw 252 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/currency_codes: -------------------------------------------------------------------------------- 1 | EUR 2 | USD 3 | GBP 4 | CAD 5 | AUD 6 | JPY 7 | INR 8 | NZD 9 | CHF 10 | ZAR 11 | EUR 12 | AFN 13 | ALL 14 | DZD 15 | USD 16 | ARS 17 | AUD 18 | ATS 19 | BSD 20 | BHD 21 | BDT 22 | BBD 23 | BEF 24 | BMD 25 | BRL 26 | BGN 27 | CAD 28 | XOF 29 | XAF 30 | CLP 31 | CNY 32 | CNY 33 | COP 34 | XPF 35 | CRC 36 | HRK 37 | CYP 38 | CZK 39 | DKK 40 | DEM 41 | DOP 42 | NLG 43 | XCD 44 | EGP 45 | EEK 46 | EUR 47 | FJD 48 | FIM 49 | FRF 50 | DEM 51 | XAU 52 | GRD 53 | NLG 54 | HKD 55 | HUF 56 | ISK 57 | XDR 58 | INR 59 | IDR 60 | IRR 61 | IQD 62 | IEP 63 | ILS 64 | ITL 65 | JMD 66 | JPY 67 | JOD 68 | KES 69 | KRW 70 | KWD 71 | LBP 72 | LUF 73 | MYR 74 | MTL 75 | MUR 76 | MXN 77 | MAD 78 | NLG 79 | NZD 80 | NOK 81 | OMR 82 | PKR 83 | XPD 84 | PEN 85 | PHP 86 | XPT 87 | PLN 88 | PTE 89 | QAR 90 | RON 91 | ROL 92 | RUB 93 | SAR 94 | XAG 95 | SGD 96 | SKK 97 | SIT 98 | ZAR 99 | KRW 100 | ESP 101 | XDR 102 | LKR 103 | SDG 104 | SEK 105 | CHF 106 | TWD 107 | THB 108 | TTD 109 | TND 110 | TRY 111 | AED 112 | GBP 113 | USD 114 | VEB 115 | VEF 116 | VND 117 | ZMK 118 | EUR 119 | XAF 120 | XOF 121 | XPF 122 | XCD 123 | EUR 124 | XDR 125 | XAU 126 | XAG 127 | XAU 128 | XPT 129 | XPD 130 | EUR 131 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/currency_descriptions: -------------------------------------------------------------------------------- 1 | Afghanistan Afghanis 2 | Albania Leke 3 | Algeria Dinars 4 | America (United States) Dollars 5 | Argentina Pesos 6 | Australia Dollars 7 | Austria Schillings 8 | Bahamas Dollars 9 | Bahrain Dinars 10 | Bangladesh Taka 11 | Barbados Dollars 12 | Belgium Francs 13 | Bermuda Dollars 14 | Brazil Reais 15 | Bulgaria Leva 16 | Canada Dollars 17 | CFA BCEAO Francs 18 | CFA BEAC Francs 19 | Chile Pesos 20 | China Yuan Renminbi 21 | RMB (China Yuan Renminbi) 22 | Colombia Pesos 23 | CFP Francs 24 | Costa Rica Colones 25 | Croatia Kuna 26 | Cyprus Pounds 27 | Czech Republic Koruny 28 | Denmark Kroner 29 | Deutsche (Germany) Marks 30 | Dominican Republic Pesos 31 | Dutch (Netherlands) Guilders 32 | Eastern Caribbean Dollars 33 | Egypt Pounds 34 | Estonia Krooni 35 | Euros 36 | Fiji Dollars 37 | Finland Markkaa 38 | France Francs 39 | Germany Deutsche Marks 40 | Gold Ounces 41 | Greece Drachmae 42 | Holland (Netherlands) Guilders 43 | Hong Kong Dollars 44 | Hungary Forint 45 | Iceland Kronur 46 | IMF Special Drawing Right 47 | India Rupees 48 | Indonesia Rupiahs 49 | Iran Rials 50 | Iraq Dinars 51 | Ireland Pounds 52 | Israel New Shekels 53 | Italy Lire 54 | Jamaica Dollars 55 | Japan Yen 56 | Jordan Dinars 57 | Kenya Shillings 58 | Korea (South) Won 59 | Kuwait Dinars 60 | Lebanon Pounds 61 | Luxembourg Francs 62 | Malaysia Ringgits 63 | Malta Liri 64 | Mauritius Rupees 65 | Mexico Pesos 66 | Morocco Dirhams 67 | Netherlands Guilders 68 | New Zealand Dollars 69 | Norway Kroner 70 | Oman Rials 71 | Pakistan Rupees 72 | Palladium Ounces 73 | Peru Nuevos Soles 74 | Philippines Pesos 75 | Platinum Ounces 76 | Poland Zlotych 77 | Portugal Escudos 78 | Qatar Riyals 79 | Romania New Lei 80 | Romania Lei 81 | Russia Rubles 82 | Saudi Arabia Riyals 83 | Silver Ounces 84 | Singapore Dollars 85 | Slovakia Koruny 86 | Slovenia Tolars 87 | South Africa Rand 88 | South Korea Won 89 | Spain Pesetas 90 | Special Drawing Rights (IMF) 91 | Sri Lanka Rupees 92 | Sudan Pounds 93 | Sweden Kronor 94 | Switzerland Francs 95 | Taiwan New Dollars 96 | Thailand Baht 97 | Trinidad and Tobago Dollars 98 | Tunisia Dinars 99 | Turkey Lira 100 | United Arab Emirates Dirhams 101 | United Kingdom Pounds 102 | United States Dollars 103 | Venezuela Bolivares 104 | Venezuela Bolivares Fuertes 105 | Vietnam Dong 106 | Zambia Kwacha 107 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/female_first_names: -------------------------------------------------------------------------------- 1 | Mary 2 | Patricia 3 | Linda 4 | Barbara 5 | Elizabeth 6 | Jennifer 7 | Maria 8 | Susan 9 | Margaret 10 | Dorothy 11 | Lisa 12 | Nancy 13 | Karen 14 | Betty 15 | Helen 16 | Sandra 17 | Donna 18 | Carol 19 | Ruth 20 | Sharon 21 | Michelle 22 | Laura 23 | Sarah 24 | Kimberly 25 | Deborah 26 | Jessica 27 | Shirley 28 | Cynthia 29 | Angela 30 | Melissa 31 | Brenda 32 | Amy 33 | Anna 34 | Rebecca 35 | Virginia 36 | Kathleen 37 | Pamela 38 | Martha 39 | Debra 40 | Amanda 41 | Stephanie 42 | Carolyn 43 | Christine 44 | Marie 45 | Janet 46 | Catherine 47 | Frances 48 | Ann 49 | Joyce 50 | Diane 51 | Alice 52 | Julie 53 | Heather 54 | Teresa 55 | Doris 56 | Gloria 57 | Evelyn 58 | Jean 59 | Cheryl 60 | Mildred 61 | Katherine 62 | Joan 63 | Ashley 64 | Judith 65 | Rose 66 | Janice 67 | Kelly 68 | Nicole 69 | Judy 70 | Christina 71 | Kathy 72 | Theresa 73 | Beverly 74 | Denise 75 | Tammy 76 | Irene 77 | Jane 78 | Lori 79 | Rachel 80 | Marilyn 81 | Andrea 82 | Kathryn 83 | Louise 84 | Sara 85 | Anne 86 | Jacqueline 87 | Wanda 88 | Bonnie 89 | Julia 90 | Ruby 91 | Lois 92 | Tina 93 | Phyllis 94 | Norma 95 | Paula 96 | Diana 97 | Annie 98 | Lillian 99 | Emily 100 | Robin 101 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/frequencies: -------------------------------------------------------------------------------- 1 | Never 2 | Once 3 | Seldom 4 | Often 5 | Daily 6 | Weekly 7 | Monthly 8 | Yearly 9 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/genders: -------------------------------------------------------------------------------- 1 | Male 2 | Female 3 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/industries: -------------------------------------------------------------------------------- 1 | Basic Materials 2 | Agricultural Chemicals 3 | Aluminum 4 | Chemicals - Major Diversified 5 | Copper 6 | Gold 7 | Independent Oil & Gas 8 | Industrial Metals & Minerals 9 | Major Integrated Oil & Gas 10 | Nonmetallic Mineral Mining 11 | Oil & Gas Drilling & Exploration 12 | Oil & Gas Equipment & Services 13 | Oil & Gas Pipelines 14 | Oil & Gas Refining & Marketing 15 | Silver 16 | Specialty Chemicals 17 | Steel & Iron 18 | Synthetics 19 | Conglomerates 20 | Conglomerates 21 | Consumer Goods 22 | Appliances 23 | Auto Manufacturers - Major 24 | Auto Parts 25 | Beverages - Brewers 26 | Beverages - Soft Drinks 27 | Beverages - Wineries & Distillers 28 | Business Equipment 29 | Cigarettes 30 | Cleaning Products 31 | Confectioners 32 | Dairy Products 33 | Electronic Equipment 34 | Farm Products 35 | Food - Major Diversified 36 | Home Furnishings & Fixtures 37 | Housewares & Accessories 38 | Meat Products 39 | Office Supplies 40 | Packaging & Containers 41 | Paper & Paper Products 42 | Personal Products 43 | Photographic Equipment & Supplies 44 | Processed & Packaged Goods 45 | Recreational Goods, Other 46 | Recreational Vehicles 47 | Rubber & Plastics 48 | Sporting Goods 49 | Textile - Apparel Clothing 50 | Textile - Apparel Footwear & Accessories 51 | Tobacco Products, Other 52 | Toys & Games 53 | Trucks & Other Vehicles 54 | Financial 55 | Accident & Health Insurance 56 | Asset Management 57 | Closed-End Fund - Debt 58 | Closed-End Fund - Equity 59 | Closed-End Fund - Foreign 60 | Credit Services 61 | Diversified Investments 62 | Foreign Money Center Banks 63 | Foreign Regional Banks 64 | Insurance Brokers 65 | Investment Brokerage - National 66 | Investment Brokerage - Regional 67 | Life Insurance 68 | Money Center Banks 69 | Mortgage Investment 70 | Property & Casualty Insurance 71 | Property Management 72 | REIT - Diversified 73 | REIT - Healthcare Facilities 74 | REIT - Hotel/Motel 75 | REIT - Industrial 76 | REIT - Office 77 | REIT - Residential 78 | REIT - Retail 79 | Real Estate Development 80 | Regional - Mid-Atlantic Banks 81 | Regional - Midwest Banks 82 | Regional - Northeast Banks 83 | Regional - Pacific Banks 84 | Regional - Southeast Banks 85 | Regional - Southwest Banks 86 | Savings & Loans 87 | Surety & Title Insurance 88 | Healthcare 89 | Biotechnology 90 | Diagnostic Substances 91 | Drug Delivery 92 | Drug Manufacturers - Major 93 | Drug Manufacturers - Other 94 | Drug Related Products 95 | Drugs - Generic 96 | Health Care Plans 97 | Home Health Care 98 | Hospitals 99 | Long-Term Care Facilities 100 | Medical Appliances & Equipment 101 | Medical Instruments & Supplies 102 | Medical Laboratories & Research 103 | Medical Practitioners 104 | Specialized Health Services 105 | Industrial Goods 106 | Aerospace/Defense - Major Diversified 107 | Aerospace/Defense Products & Services 108 | Cement 109 | Diversified Machinery 110 | Farm & Construction Machinery 111 | General Building Materials 112 | General Contractors 113 | Heavy Construction 114 | Industrial Electrical Equipment 115 | Industrial Equipment & Components 116 | Lumber, Wood Production 117 | Machine Tools & Accessories 118 | Manufactured Housing 119 | Metal Fabrication 120 | Pollution & Treatment Controls 121 | Residential Construction 122 | Small Tools & Accessories 123 | Textile Industrial 124 | Waste Management 125 | Advertising Agencies 126 | Air Delivery & Freight Services 127 | Air Services, Other 128 | Apparel Stores 129 | Auto Dealerships 130 | Auto Parts Stores 131 | Auto Parts Wholesale 132 | Basic Materials Wholesale 133 | Broadcasting - Radio 134 | Broadcasting - TV 135 | Building Materials Wholesale 136 | Business Services 137 | CATV Systems 138 | Catalog & Mail Order Houses 139 | Computers Wholesale 140 | Consumer Services 141 | Department Stores 142 | Discount, Variety Stores 143 | Drug Stores 144 | Drugs Wholesale 145 | Education & Training Services 146 | Electronics Stores 147 | Electronics Wholesale 148 | Entertainment - Diversified 149 | Food Wholesale 150 | Gaming Activities 151 | General Entertainment 152 | Grocery Stores 153 | Home Furnishing Stores 154 | Home Improvement Stores 155 | Industrial Equipment Wholesale 156 | Jewelry Stores 157 | Lodging 158 | Major Airlines 159 | Management Services 160 | Marketing Services 161 | Medical Equipment Wholesale 162 | Movie Production, Theaters 163 | Music & Video Stores 164 | Personal Services 165 | Publishing - Books 166 | Publishing - Newspapers 167 | Publishing - Periodicals 168 | Railroads 169 | Regional Airlines 170 | Rental & Leasing Services 171 | Research Services 172 | Resorts & Casinos 173 | Restaurants 174 | Security & Protection Services 175 | Shipping 176 | Specialty Eateries 177 | Specialty Retail, Other 178 | Sporting Activities 179 | Sporting Goods Stores 180 | Staffing & Outsourcing Services 181 | Technical Services 182 | Toy & Hobby Stores 183 | Trucking 184 | Wholesale, Other 185 | Technology 186 | Application Software 187 | Business Software & Services 188 | Communication Equipment 189 | Computer Based Systems 190 | Computer Peripherals 191 | Data Storage Devices 192 | Diversified Communication Services 193 | Diversified Computer Systems 194 | Diversified Electronics 195 | Healthcare Information Services 196 | Information & Delivery Services 197 | Information Technology Services 198 | Internet Information Providers 199 | Internet Service Providers 200 | Internet Software & Services 201 | Long Distance Carriers 202 | Multimedia & Graphics Software 203 | Networking & Communication Devices 204 | Personal Computers 205 | Printed Circuit Boards 206 | Processing Systems & Products 207 | Scientific & Technical Instruments 208 | Security Software & Services 209 | Semiconductor - Broad Line 210 | Semiconductor - Integrated Circuits 211 | Semiconductor - Specialized 212 | Semiconductor Equipment & Materials 213 | Semiconductor- Memory Chips 214 | Technical & System Software 215 | Telecom Services - Domestic 216 | Telecom Services - Foreign 217 | Wireless Communications 218 | Diversified Utilities 219 | Electric Utilities 220 | Foreign Utilities 221 | Gas Utilities 222 | Water Utilities 223 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/job_title_suffixes: -------------------------------------------------------------------------------- 1 | I 2 | II 3 | III 4 | IV 5 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/job_titles: -------------------------------------------------------------------------------- 1 | Account Coordinator 2 | Account Executive 3 | Account Representative #{N} 4 | Accountant #{N} 5 | Accounting Assistant #{N} 6 | Actuary 7 | Administrative Assistant #{N} 8 | Administrative Officer 9 | Analog Circuit Design manager 10 | Analyst Programmer 11 | Assistant Manager 12 | Assistant Media Planner 13 | Assistant Professor 14 | Associate Professor 15 | Automation Specialist #{N} 16 | Biostatistician #{N} 17 | Budget/Accounting Analyst #{N} 18 | Business Systems Development Analyst 19 | Chemical Engineer 20 | Chief Design Engineer 21 | Civil Engineer 22 | Clinical Specialist 23 | Community Outreach Specialist 24 | Compensation Analyst 25 | Computer Systems Analyst #{N} 26 | Cost Accountant 27 | Data Coordiator 28 | Database Administrator #{N} 29 | Dental Hygienist 30 | Design Engineer 31 | Desktop Support Technician 32 | Developer #{N} 33 | Director of Sales 34 | Editor 35 | Electrical Engineer 36 | Engineer #{N} 37 | Environmental Specialist 38 | Environmental Tech 39 | Executive Secretary 40 | Financial Advisor 41 | Financial Analyst 42 | Food Chemist 43 | GIS Technical Architect 44 | General Manager 45 | Geological Engineer 46 | Geologist #{N} 47 | Graphic Designer 48 | Health Coach #{N} 49 | Help Desk Operator 50 | Help Desk Technician 51 | Human Resources Assistant #{N} 52 | Human Resources Manager 53 | Information Systems Manager 54 | Internal Auditor 55 | Junior Executive 56 | Legal Assistant 57 | Librarian 58 | Marketing Assistant 59 | Marketing Manager 60 | Mechanical Systems Engineer 61 | Media Manager #{N} 62 | Nuclear Power Engineer 63 | Nurse 64 | Nurse Practicioner 65 | Occupational Therapist 66 | Office Assistant #{N} 67 | Operator 68 | Paralegal 69 | Payment Adjustment Coordinator 70 | Pharmacist 71 | Physical Therapy Assistant 72 | Product Engineer 73 | Professor 74 | Programmer #{N} 75 | Programmer Analyst #{N} 76 | Project Manager 77 | Quality Control Specialist 78 | Quality Engineer 79 | Recruiter 80 | Recruiting Manager 81 | Registered Nurse 82 | Research Assistant #{N} 83 | Research Associate 84 | Research Nurse 85 | Safety Technician #{N} 86 | Sales Associate 87 | Sales Representative 88 | Senior Cost Accountant 89 | Senior Developer 90 | Senior Editor 91 | Senior Financial Analyst 92 | Senior Quality Engineer 93 | Senior Sales Associate 94 | Social Worker 95 | Software Consultant 96 | Software Engineer #{N} 97 | Software Test Engineer #{N} 98 | Speech Pathologist 99 | Staff Accountant #{N} 100 | Staff Scientist 101 | Statistician #{N} 102 | Structural Analysis Engineer 103 | Structural Engineer 104 | Systems Administrator #{N} 105 | Tax Accountant 106 | Teacher 107 | Technical Writer 108 | VP Accounting 109 | VP Marketing 110 | VP Product Management 111 | VP Quality Control 112 | VP Sales 113 | Web Designer #{N} 114 | Web Developer #{N} 115 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/languages: -------------------------------------------------------------------------------- 1 | Afrikaans 2 | Albanian 3 | Amharic 4 | Arabic 5 | Armenian 6 | Assamese 7 | Aymara 8 | Azeri 9 | Belarusian 10 | Bengali 11 | Bislama 12 | Bosnian 13 | Bulgarian 14 | Burmese 15 | Catalan 16 | Chinese 17 | Croatian 18 | Czech 19 | Danish 20 | Dari 21 | Dhivehi 22 | Dutch 23 | Dzongkha 24 | English 25 | Estonian 26 | Fijian 27 | Filipino 28 | Finnish 29 | French 30 | West Frisian 31 | Gagauz 32 | Georgian 33 | German 34 | Greek 35 | Guaraní 36 | Gujarati 37 | Haitian Creole 38 | Hebrew 39 | Hindi 40 | Hiri Motu 41 | Hungarian 42 | Icelandic 43 | Indonesian 44 | Irish Gaelic 45 | Italian 46 | Japanese 47 | Kannada 48 | Kashmiri 49 | Kazakh 50 | Khmer 51 | Korean 52 | Kurdish 53 | Kyrgyz 54 | Lao 55 | Latvian 56 | Lithuanian 57 | Luxembourgish 58 | Macedonian 59 | Malagasy 60 | Malay 61 | Malayalam 62 | Maltese 63 | Māori 64 | Marathi 65 | Moldovan 66 | Mongolian 67 | Montenegrin 68 | Ndebele 69 | Nepali 70 | New Zealand Sign Language 71 | Northern Sotho 72 | Norwegian 73 | Oriya 74 | Papiamento 75 | Pashto 76 | Persian 77 | Polish 78 | Portuguese 79 | Punjabi 80 | Quechua 81 | Romanian 82 | Somali 83 | Sotho 84 | Spanish 85 | Swahili 86 | Swati 87 | Swedish 88 | Tajik 89 | Tamil 90 | Telugu 91 | Tetum 92 | Thai 93 | Tok Pisin 94 | Tsonga 95 | Tswana 96 | Yiddish 97 | Zulu 98 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/last_names: -------------------------------------------------------------------------------- 1 | Smith 2 | Johnson 3 | Williams 4 | Jones 5 | Brown 6 | Davis 7 | Miller 8 | Wilson 9 | Moore 10 | Taylor 11 | Anderson 12 | Thomas 13 | Jackson 14 | White 15 | Harris 16 | Martin 17 | Thompson 18 | Garcia 19 | Martinez 20 | Robinson 21 | Clark 22 | Rodriguez 23 | Lewis 24 | Lee 25 | Walker 26 | Hall 27 | Allen 28 | Young 29 | Hernandez 30 | King 31 | Wright 32 | Lopez 33 | Hill 34 | Scott 35 | Green 36 | Adams 37 | Baker 38 | Gonzalez 39 | Nelson 40 | Carter 41 | Mitchell 42 | Perez 43 | Roberts 44 | Turner 45 | Phillips 46 | Campbell 47 | Parker 48 | Evans 49 | Edwards 50 | Collins 51 | Stewart 52 | Sanchez 53 | Morris 54 | Rogers 55 | Reed 56 | Cook 57 | Morgan 58 | Bell 59 | Murphy 60 | Bailey 61 | Rivera 62 | Cooper 63 | Richardson 64 | Cox 65 | Howard 66 | Ward 67 | Torres 68 | Peterson 69 | Gray 70 | Ramirez 71 | James 72 | Watson 73 | Brooks 74 | Kelly 75 | Sanders 76 | Price 77 | Bennett 78 | Wood 79 | Barnes 80 | Ross 81 | Henderson 82 | Coleman 83 | Jenkins 84 | Perry 85 | Powell 86 | Long 87 | Patterson 88 | Hughes 89 | Flores 90 | Washington 91 | Butler 92 | Simmons 93 | Foster 94 | Gonzales 95 | Bryant 96 | Alexander 97 | Russell 98 | Griffin 99 | Diaz 100 | Hayes 101 | Myers 102 | Ford 103 | Hamilton 104 | Graham 105 | Sullivan 106 | Wallace 107 | Woods 108 | Cole 109 | West 110 | Jordan 111 | Owens 112 | Reynolds 113 | Fisher 114 | Ellis 115 | Harrison 116 | Gibson 117 | Mcdonald 118 | Cruz 119 | Marshall 120 | Ortiz 121 | Gomez 122 | Murray 123 | Freeman 124 | Wells 125 | Webb 126 | Simpson 127 | Stevens 128 | Tucker 129 | Porter 130 | Hunter 131 | Hicks 132 | Crawford 133 | Henry 134 | Boyd 135 | Mason 136 | Morales 137 | Kennedy 138 | Warren 139 | Dixon 140 | Ramos 141 | Reyes 142 | Burns 143 | Gordon 144 | Shaw 145 | Holmes 146 | Rice 147 | Robertson 148 | Hunt 149 | Black 150 | Daniels 151 | Palmer 152 | Mills 153 | Nichols 154 | Grant 155 | Knight 156 | Ferguson 157 | Rose 158 | Stone 159 | Hawkins 160 | Dunn 161 | Perkins 162 | Hudson 163 | Spencer 164 | Gardner 165 | Stephens 166 | Payne 167 | Pierce 168 | Berry 169 | Matthews 170 | Arnold 171 | Wagner 172 | Willis 173 | Ray 174 | Watkins 175 | Olson 176 | Carroll 177 | Duncan 178 | Snyder 179 | Hart 180 | Cunningham 181 | Bradley 182 | Lane 183 | Andrews 184 | Ruiz 185 | Harper 186 | Fox 187 | Riley 188 | Armstrong 189 | Carpenter 190 | Weaver 191 | Greene 192 | Lawrence 193 | Elliott 194 | Chavez 195 | Sims 196 | Austin 197 | Peters 198 | Kelley 199 | Franklin 200 | Lawson 201 | Fields 202 | Gutierrez 203 | Ryan 204 | Schmidt 205 | Carr 206 | Vasquez 207 | Castillo 208 | Wheeler 209 | Chapman 210 | Oliver 211 | Montgomery 212 | Richards 213 | Williamson 214 | Johnston 215 | Banks 216 | Meyer 217 | Bishop 218 | Mccoy 219 | Howell 220 | Alvarez 221 | Morrison 222 | Hansen 223 | Fernandez 224 | Garza 225 | Harvey 226 | Little 227 | Burton 228 | Stanley 229 | Nguyen 230 | George 231 | Jacobs 232 | Reid 233 | Kim 234 | Fuller 235 | Lynch 236 | Dean 237 | Gilbert 238 | Garrett 239 | Romero 240 | Welch 241 | Larson 242 | Frazier 243 | Burke 244 | Hanson 245 | Day 246 | Mendoza 247 | Moreno 248 | Bowman 249 | Medina 250 | Fowler 251 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/locations: -------------------------------------------------------------------------------- 1 | Howarts School of Witchcraft and Wizardry 2 | Beauxbatons Academy of Magic 3 | Durmstrang Institude for Magical Learning 4 | Diagon Alley 5 | The Burrow 6 | Azkaban Prison 7 | Gringotts Bank 8 | Malfoy Manor 9 | Number 12, Grimmauld Place 10 | Shell Cottage 11 | Number 4, Privet Drive 12 | The Leaky Cauldron 13 | Arkham Asylum 14 | Wayne Manor 15 | Wayne Tower 16 | The Batcave 17 | Blackgate Prison 18 | Daily Planet 19 | Springfield Nuclear Power Plant 20 | Kwik-E-Mart 21 | Try-N-Save 22 | Monstro Mart 23 | King Toots 24 | Moe's Tavern 25 | Krusty Krab 26 | Krusty Burger 27 | Lard Lad Donuts 28 | The Frying Dutchman 29 | Springfield Elementary School 30 | The Atlantic Hotel 31 | The Bates Hotel 32 | The Possum Lodge 33 | The Inn of the Prancing Pony 34 | Minas Morgul 35 | Isengard 36 | The Hornburg 37 | Castle Wolfenstein 38 | The Baxter Building 39 | Nakatomi Plaza 40 | The Citadel 41 | The Fortress of Solitude 42 | Starfleet Headquarters 43 | The International Space Station 44 | The Cathedral of Learning 45 | FedEx Field 46 | New Meadowlands Stadium 47 | Arrowhead Stadium 48 | Cowboys Stadium 49 | Invesco Field at Mile High 50 | Sun Life Stadium 51 | Ralph Wilson Stadium 52 | Bank of America Stadium 53 | Cleveland Browns Stadium 54 | Louisiana Superdome 55 | Lambeau Field 56 | Reliant Stadium 57 | Qualcomm Stadium 58 | Georgia Dome 59 | M&T Bank Stdium 60 | Candlestick Park 61 | Lincoln Financial Field 62 | LP Field 63 | Gillette Stadium 64 | EverBank Field 65 | Qwest Field 66 | Edward Jones Dome 67 | Lucas Oil Stadium 68 | Raymond James Stadium 69 | Heinz Field 70 | Ford Field 71 | Hubert H. Humphrey Metrodome 72 | University of Phoenix Stadium 73 | Oakland-Alameda County Coliseum 74 | Soldier Field 75 | Jedi Temple 76 | Loony Land 77 | Moron Mountain 78 | 1938 Sullivan 79 | Centennial Hotel 80 | Centennial Park 81 | Union Station 82 | City Hall 83 | Hotel Metropolis 84 | Metropolis Museum of Art 85 | The Children's Museum 86 | LexCorp Towers 87 | Lincoln Memorial 88 | Washington Monument 89 | The White House 90 | Torquilstone 91 | The Bombursts Castle 92 | The Royal Castle 93 | The Pentagon 94 | The Eiffel Tower 95 | The Statue of Liberty 96 | Mount Rushmore 97 | Mount Everest 98 | Churchill Downs 99 | Alcatraz Island 100 | The Sears Tower 101 | The Empire State Building 102 | The Bellagio Casino 103 | The Mirage Casino 104 | The MGM Grand Casino 105 | The Bank Casino 106 | The Casino Royale 107 | MI6 Headquarters 108 | The Palace of Westminster 109 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/lorem_ipsum: -------------------------------------------------------------------------------- 1 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 2 | Proin risus. 3 | Praesent lectus. 4 | Vestibulum quam sapien, varius ut, blandit non, interdum in, ante. 5 | Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Duis faucibus accumsan odio. 6 | Curabitur convallis. 7 | Duis consequat dui nec nisi volutpat eleifend. 8 | Donec ut dolor. 9 | Morbi vel lectus in quam fringilla rhoncus. 10 | Mauris enim leo, rhoncus sed, vestibulum sit amet, cursus id, turpis. 11 | Integer aliquet, massa id lobortis convallis, tortor risus dapibus augue, vel accumsan tellus nisi eu orci. 12 | Mauris lacinia sapien quis libero. 13 | Nullam sit amet turpis elementum ligula vehicula consequat. 14 | Morbi a ipsum. 15 | Integer a nibh. 16 | In quis justo. 17 | Maecenas rhoncus aliquam lacus. 18 | Morbi quis tortor id nulla ultrices aliquet. 19 | Maecenas leo odio, condimentum id, luctus nec, molestie sed, justo. 20 | Pellentesque viverra pede ac diam. 21 | Cras pellentesque volutpat dui. 22 | Maecenas tristique, est et tempus semper, est quam pharetra magna, ac consequat metus sapien ut nunc. 23 | Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Mauris viverra diam vitae quam. 24 | Suspendisse potenti. 25 | Nullam porttitor lacus at turpis. 26 | Donec posuere metus vitae ipsum. 27 | Aliquam non mauris. 28 | Morbi non lectus. 29 | Aliquam sit amet diam in magna bibendum imperdiet. 30 | Nullam orci pede, venenatis non, sodales sed, tincidunt eu, felis. 31 | Fusce posuere felis sed lacus. 32 | Morbi sem mauris, laoreet ut, rhoncus aliquet, pulvinar sed, nisl. 33 | Nunc rhoncus dui vel sem. 34 | Sed sagittis. 35 | Nam congue, risus semper porta volutpat, quam pede lobortis ligula, sit amet eleifend pede libero quis orci. 36 | Nullam molestie nibh in lectus. 37 | Pellentesque at nulla. 38 | Suspendisse potenti. 39 | Cras in purus eu magna vulputate luctus. 40 | Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. 41 | Vivamus vestibulum sagittis sapien. 42 | Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. 43 | Etiam vel augue. 44 | Vestibulum rutrum rutrum neque. 45 | Aenean auctor gravida sem. 46 | Praesent id massa id nisl venenatis lacinia. 47 | Aenean sit amet justo. 48 | Morbi ut odio. 49 | Cras mi pede, malesuada in, imperdiet et, commodo vulputate, justo. 50 | In blandit ultrices enim. 51 | Lorem ipsum dolor sit amet, consectetuer adipiscing elit. 52 | Proin interdum mauris non ligula pellentesque ultrices. 53 | Phasellus id sapien in sapien iaculis congue. 54 | Vivamus metus arcu, adipiscing molestie, hendrerit at, vulputate vitae, nisl. 55 | Aenean lectus. 56 | Pellentesque eget nunc. 57 | Donec quis orci eget orci vehicula condimentum. 58 | Curabitur in libero ut massa volutpat convallis. 59 | Morbi odio odio, elementum eu, interdum eu, tincidunt in, leo. 60 | Maecenas pulvinar lobortis est. 61 | Phasellus sit amet erat. 62 | Nulla tempus. 63 | Vivamus in felis eu sapien cursus vestibulum. 64 | Proin eu mi. 65 | Nulla ac enim. 66 | In tempor, turpis nec euismod scelerisque, quam turpis adipiscing lorem, vitae mattis nibh ligula nec sem. 67 | Duis aliquam convallis nunc. 68 | Proin at turpis a pede posuere nonummy. 69 | Integer non velit. 70 | Donec diam neque, vestibulum eget, vulputate ut, ultrices vel, augue. 71 | Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec pharetra, magna vestibulum aliquet ultrices, erat tortor sollicitudin mi, sit amet lobortis sapien sapien non mi. 72 | Integer ac neque. 73 | Duis bibendum. 74 | Morbi non quam nec dui luctus rutrum. 75 | Nulla tellus. 76 | In sagittis dui vel nisl. 77 | Duis ac nibh. 78 | Fusce lacus purus, aliquet at, feugiat non, pretium quis, lectus. 79 | Suspendisse potenti. 80 | In eleifend quam a odio. 81 | In hac habitasse platea dictumst. 82 | Maecenas ut massa quis augue luctus tincidunt. 83 | Nulla mollis molestie lorem. 84 | Quisque ut erat. 85 | Curabitur gravida nisi at nibh. 86 | In hac habitasse platea dictumst. 87 | Aliquam augue quam, sollicitudin vitae, consectetuer eget, rutrum at, lorem. 88 | Integer tincidunt ante vel ipsum. 89 | Praesent blandit lacinia erat. 90 | Vestibulum sed magna at nunc commodo placerat. 91 | Praesent blandit. 92 | Nam nulla. 93 | Integer pede justo, lacinia eget, tincidunt eget, tempus vel, pede. 94 | Morbi porttitor lorem id ligula. 95 | Suspendisse ornare consequat lectus. 96 | In est risus, auctor sed, tristique in, tempus sit amet, sem. 97 | Fusce consequat. 98 | Nulla nisl. 99 | Nunc nisl. 100 | Duis bibendum, felis sed interdum venenatis, turpis enim blandit mi, in porttitor pede justo eu massa. 101 | Donec dapibus. 102 | Duis at velit eu est congue elementum. 103 | In hac habitasse platea dictumst. 104 | Morbi vestibulum, velit id pretium iaculis, diam erat fermentum justo, nec condimentum neque sapien placerat ante. 105 | Nulla justo. 106 | Aliquam quis turpis eget elit sodales scelerisque. 107 | Mauris sit amet eros. 108 | Suspendisse accumsan tortor quis turpis. 109 | Sed ante. 110 | Vivamus tortor. 111 | Duis mattis egestas metus. 112 | Aenean fermentum. 113 | Donec ut mauris eget massa tempor convallis. 114 | Nulla neque libero, convallis eget, eleifend luctus, ultricies eu, nibh. 115 | Quisque id justo sit amet sapien dignissim vestibulum. 116 | Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nulla dapibus dolor vel est. 117 | Donec odio justo, sollicitudin ut, suscipit a, feugiat et, eros. 118 | Vestibulum ac est lacinia nisi venenatis tristique. 119 | Fusce congue, diam id ornare imperdiet, sapien urna pretium nisl, ut volutpat sapien arcu sed augue. 120 | Aliquam erat volutpat. 121 | In congue. 122 | Etiam justo. 123 | Etiam pretium iaculis justo. 124 | In hac habitasse platea dictumst. 125 | Etiam faucibus cursus urna. 126 | Ut tellus. 127 | Nulla ut erat id mauris vulputate elementum. 128 | Nullam varius. 129 | Nulla facilisi. 130 | Cras non velit nec nisi vulputate nonummy. 131 | Maecenas tincidunt lacus at velit. 132 | Vivamus vel nulla eget eros elementum pellentesque. 133 | Quisque porta volutpat erat. 134 | Quisque erat eros, viverra eget, congue eget, semper rutrum, nulla. 135 | Nunc purus. 136 | Phasellus in felis. 137 | Donec semper sapien a libero. 138 | Nam dui. 139 | Proin leo odio, porttitor id, consequat in, consequat ut, nulla. 140 | Sed accumsan felis. 141 | Ut at dolor quis odio consequat varius. 142 | Integer ac leo. 143 | Pellentesque ultrices mattis odio. 144 | Donec vitae nisi. 145 | Nam ultrices, libero non mattis pulvinar, nulla pede ullamcorper augue, a suscipit nulla elit ac nulla. 146 | Sed vel enim sit amet nunc viverra dapibus. 147 | Nulla suscipit ligula in lacus. 148 | Curabitur at ipsum ac tellus semper interdum. 149 | Mauris ullamcorper purus sit amet nulla. 150 | Quisque arcu libero, rutrum ac, lobortis vel, dapibus at, diam. 151 | Nam tristique tortor eu pede. 152 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/male_first_names: -------------------------------------------------------------------------------- 1 | James 2 | John 3 | Robert 4 | Michael 5 | William 6 | David 7 | Richard 8 | Charles 9 | Joseph 10 | Thomas 11 | Christopher 12 | Daniel 13 | Paul 14 | Mark 15 | Donald 16 | George 17 | Kenneth 18 | Steven 19 | Edward 20 | Brian 21 | Ronald 22 | Anthony 23 | Kevin 24 | Jason 25 | Matthew 26 | Gary 27 | Timothy 28 | Jose 29 | Larry 30 | Jeffrey 31 | Frank 32 | Scott 33 | Eric 34 | Stephen 35 | Andrew 36 | Raymond 37 | Gregory 38 | Joshua 39 | Jerry 40 | Dennis 41 | Walter 42 | Patrick 43 | Peter 44 | Harold 45 | Douglas 46 | Henry 47 | Carl 48 | Arthur 49 | Ryan 50 | Roger 51 | Joe 52 | Juan 53 | Jack 54 | Albert 55 | Jonathan 56 | Justin 57 | Terry 58 | Gerald 59 | Keith 60 | Samuel 61 | Willie 62 | Ralph 63 | Lawrence 64 | Nicholas 65 | Roy 66 | Benjamin 67 | Bruce 68 | Brandon 69 | Adam 70 | Harry 71 | Fred 72 | Wayne 73 | Billy 74 | Steve 75 | Louis 76 | Jeremy 77 | Aaron 78 | Randy 79 | Howard 80 | Eugene 81 | Carlos 82 | Russell 83 | Bobby 84 | Victor 85 | Martin 86 | Ernest 87 | Phillip 88 | Todd 89 | Jesse 90 | Craig 91 | Alan 92 | Shawn 93 | Clarence 94 | Sean 95 | Philip 96 | Chris 97 | Johnny 98 | Earl 99 | Jimmy 100 | Antonio 101 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/name_suffixes: -------------------------------------------------------------------------------- 1 | Jr 2 | Sr 3 | II 4 | III 5 | IV 6 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/name_titles: -------------------------------------------------------------------------------- 1 | Mr 2 | Ms 3 | Mrs 4 | Dr 5 | Rev 6 | Honorable 7 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/province_abbrevs: -------------------------------------------------------------------------------- 1 | ON 2 | QC 3 | NS 4 | NB 5 | MB 6 | BC 7 | PE 8 | SK 9 | AB 10 | NL 11 | NT 12 | YT 13 | NU 14 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/provinces: -------------------------------------------------------------------------------- 1 | Ontario 2 | Quebec 3 | Nova Scotia 4 | New Brunswick 5 | Manitoba 6 | British Columbia 7 | Prince Edward Island 8 | Saskatchewan 9 | Alberta 10 | Newfoundland and Labrador 11 | Northwest Territories 12 | Yukon 13 | Nunavut 14 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/races: -------------------------------------------------------------------------------- 1 | Alaskan Athabascan 2 | Alaska Native 3 | Aleut 4 | American Indian 5 | American Indian and Alaska Native (AIAN) 6 | Apache 7 | Argentinian 8 | Asian 9 | Asian Indian 10 | Bangladeshi 11 | Blackfeet 12 | Black or African American 13 | Bolivian 14 | Cambodian 15 | Central American 16 | Chamorro 17 | Cherokee 18 | Cheyenne 19 | Chickasaw 20 | Chilean 21 | Chinese 22 | Chippewa 23 | Choctaw 24 | Colombian 25 | Colville 26 | Comanche 27 | Costa Rican 28 | Cree 29 | Creek 30 | Crow 31 | Cuban 32 | Delaware 33 | Dominican (Dominican Republic) 34 | Ecuadorian 35 | Eskimo 36 | Fijian 37 | Filipino 38 | Guamanian 39 | Guatemalan 40 | Hmong 41 | Honduran 42 | Houma 43 | Indonesian 44 | Iroquois 45 | Japanese 46 | Kiowa 47 | Korean 48 | Laotian 49 | Latin American Indian 50 | Lumbee 51 | Malaysian 52 | Melanesian 53 | Menominee 54 | Mexican 55 | Micronesian 56 | Native Hawaiian 57 | Native Hawaiian and Other Pacific Islander (NHPI) 58 | Navajo 59 | Nicaraguan 60 | Osage 61 | Ottawa 62 | Paiute 63 | Pakistani 64 | Panamanian 65 | Paraguayan 66 | Peruvian 67 | Pima 68 | Polynesian 69 | Potawatomi 70 | Pueblo 71 | Puerto Rican 72 | Puget Sound Salish 73 | Salvadoran 74 | Samoan 75 | Seminole 76 | Shoshone 77 | Sioux 78 | South American 79 | Spaniard 80 | Sri Lankan 81 | Taiwanese 82 | Thai 83 | Tlingit-Haida 84 | Tohono O'Odham 85 | Tongan 86 | Uruguayan 87 | Ute 88 | Venezuelan 89 | Vietnamese 90 | White 91 | Yakama 92 | Yaqui 93 | Yuman 94 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/shirt_sizes: -------------------------------------------------------------------------------- 1 | XS 2 | S 3 | M 4 | L 5 | XL 6 | 2XL 7 | 3XL 8 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/state_abbrevs: -------------------------------------------------------------------------------- 1 | AL 2 | AK 3 | AZ 4 | AR 5 | CA 6 | CO 7 | CT 8 | DE 9 | FL 10 | GA 11 | HI 12 | ID 13 | IL 14 | IN 15 | IA 16 | KS 17 | KY 18 | LA 19 | ME 20 | MD 21 | MA 22 | MI 23 | MN 24 | MS 25 | MO 26 | MT 27 | NE 28 | NV 29 | NH 30 | NJ 31 | NM 32 | NY 33 | NC 34 | ND 35 | OH 36 | OK 37 | OR 38 | PA 39 | RI 40 | SC 41 | SD 42 | TN 43 | TX 44 | UT 45 | VT 46 | VA 47 | WA 48 | WV 49 | WI 50 | WY 51 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/states: -------------------------------------------------------------------------------- 1 | Alabama 2 | Alaska 3 | Arizona 4 | Arkansas 5 | California 6 | Colorado 7 | Connecticut 8 | Delaware 9 | Florida 10 | Georgia 11 | Hawaii 12 | Idaho 13 | Illinois 14 | Indiana 15 | Iowa 16 | Kansas 17 | Kentucky 18 | Louisiana 19 | Maine 20 | Maryland 21 | Massachusetts 22 | Michigan 23 | Minnesota 24 | Mississippi 25 | Missouri 26 | Montana 27 | Nebraska 28 | Nevada 29 | New Hampshire 30 | New Jersey 31 | New Mexico 32 | New York 33 | North Carolina 34 | North Dakota 35 | Ohio 36 | Oklahoma 37 | Oregon 38 | Pennsylvania 39 | Rhode Island 40 | South Carolina 41 | South Dakota 42 | Tennessee 43 | Texas 44 | Utah 45 | Vermont 46 | Virginia 47 | Washington 48 | West Virginia 49 | Wisconsin 50 | Wyoming 51 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/street_names: -------------------------------------------------------------------------------- 1 | 1st 2 | 2nd 3 | 3rd 4 | 4th 5 | 5th 6 | 6th 7 | 7th 8 | 8th 9 | Aberg 10 | Acker 11 | Algoma 12 | Almo 13 | Alpine 14 | American 15 | American Ash 16 | Amoth 17 | Anderson 18 | Anhalt 19 | Annamark 20 | Anniversary 21 | Anthes 22 | Anzinger 23 | Arapahoe 24 | Arizona 25 | Arkansas 26 | Armistice 27 | Arrowood 28 | Artisan 29 | Atwood 30 | Autumn Leaf 31 | Badeau 32 | Banding 33 | Barby 34 | Barnett 35 | Bartelt 36 | Bartillon 37 | Bashford 38 | Basil 39 | Bay 40 | Bayside 41 | Becker 42 | Beilfuss 43 | Bellgrove 44 | Birchwood 45 | Blackbird 46 | Blaine 47 | Blue Bill Park 48 | Bluejay 49 | Bluestem 50 | Bobwhite 51 | Bonner 52 | Bowman 53 | Boyd 54 | Brentwood 55 | Briar Crest 56 | Brickson Park 57 | Brown 58 | Browning 59 | Buell 60 | Buena Vista 61 | Buhler 62 | Bultman 63 | Bunker Hill 64 | Bunting 65 | Burning Wood 66 | Burrows 67 | Butterfield 68 | Butternut 69 | Caliangt 70 | Calypso 71 | Cambridge 72 | Canary 73 | Carberry 74 | Cardinal 75 | Carey 76 | Carioca 77 | Carpenter 78 | Cascade 79 | Center 80 | Charing Cross 81 | Cherokee 82 | Chinook 83 | Chive 84 | Claremont 85 | Clarendon 86 | Clemons 87 | Clove 88 | Clyde Gallagher 89 | Cody 90 | Coleman 91 | Colorado 92 | Columbus 93 | Comanche 94 | Commercial 95 | Continental 96 | Coolidge 97 | Corben 98 | Cordelia 99 | Corry 100 | Corscot 101 | Cottonwood 102 | Crescent Oaks 103 | Crest Line 104 | Crowley 105 | Crownhardt 106 | Dahle 107 | Dakota 108 | Dapin 109 | Darwin 110 | David 111 | Dawn 112 | Daystar 113 | Dayton 114 | Debra 115 | Debs 116 | Declaration 117 | Del Mar 118 | Del Sol 119 | Delaware 120 | Delladonna 121 | Dennis 122 | Derek 123 | Dexter 124 | Di Loreto 125 | Division 126 | Dixon 127 | Doe Crossing 128 | Donald 129 | Dorton 130 | Dottie 131 | Dovetail 132 | Drewry 133 | Dryden 134 | Duke 135 | Dunning 136 | Dwight 137 | Eagan 138 | Eagle Crest 139 | East 140 | Eastlawn 141 | Eastwood 142 | Eggendart 143 | Elgar 144 | Eliot 145 | Elka 146 | Elmside 147 | Emmet 148 | Erie 149 | Esch 150 | Esker 151 | Everett 152 | Evergreen 153 | Express 154 | Fair Oaks 155 | Fairfield 156 | Fairview 157 | Fallview 158 | Farmco 159 | Farragut 160 | Farwell 161 | Fieldstone 162 | Fisk 163 | Florence 164 | Fordem 165 | Forest 166 | Forest Dale 167 | Forest Run 168 | Forster 169 | Fremont 170 | Fuller 171 | Fulton 172 | Gale 173 | Garrison 174 | Gateway 175 | Gerald 176 | Gina 177 | Glacier Hill 178 | Glendale 179 | Golden Leaf 180 | Golf 181 | Golf Course 182 | Golf View 183 | Goodland 184 | Graceland 185 | Graedel 186 | Granby 187 | Grasskamp 188 | Grayhawk 189 | Green 190 | Green Ridge 191 | Grim 192 | Grover 193 | Gulseth 194 | Haas 195 | Hagan 196 | Hallows 197 | Hanover 198 | Hanson 199 | Hansons 200 | Harbort 201 | Harper 202 | Hauk 203 | Havey 204 | Hayes 205 | Hazelcrest 206 | Heath 207 | Heffernan 208 | Helena 209 | Hermina 210 | High Crossing 211 | Hintze 212 | Hoard 213 | Hoepker 214 | Hoffman 215 | Hollow Ridge 216 | Holmberg 217 | Holy Cross 218 | Homewood 219 | Hooker 220 | Hovde 221 | Hudson 222 | Huxley 223 | Ilene 224 | Independence 225 | International 226 | Iowa 227 | Jackson 228 | Jana 229 | Jay 230 | Jenifer 231 | Jenna 232 | John Wall 233 | Johnson 234 | Judy 235 | Karstens 236 | Katie 237 | Kedzie 238 | Kennedy 239 | Kensington 240 | Kenwood 241 | Killdeer 242 | Kim 243 | Kings 244 | Kingsford 245 | Kinsman 246 | Kipling 247 | Knutson 248 | Kropf 249 | La Follette 250 | Lake View 251 | Lakeland 252 | Lakewood 253 | Lakewood Gardens 254 | Larry 255 | Laurel 256 | Lawn 257 | Lerdahl 258 | Leroy 259 | Lien 260 | Lighthouse Bay 261 | Lillian 262 | Lindbergh 263 | Linden 264 | Little Fleur 265 | Loeprich 266 | Loftsgordon 267 | Logan 268 | Londonderry 269 | Longview 270 | Loomis 271 | Lotheville 272 | Ludington 273 | Lukken 274 | Lunder 275 | Luster 276 | Lyons 277 | Macpherson 278 | Magdeline 279 | Main 280 | Mallard 281 | Mallory 282 | Mandrake 283 | Manitowish 284 | Manley 285 | Manufacturers 286 | Maple 287 | Maple Wood 288 | Marcy 289 | Mariners Cove 290 | Marquette 291 | Maryland 292 | Mayer 293 | Mayfield 294 | Maywood 295 | Mcbride 296 | Mccormick 297 | Mcguire 298 | Meadow Ridge 299 | Meadow Vale 300 | Meadow Valley 301 | Melby 302 | Melody 303 | Melrose 304 | Melvin 305 | Memorial 306 | Mendota 307 | Menomonie 308 | Merchant 309 | Merrick 310 | Merry 311 | Messerschmidt 312 | Mesta 313 | Michigan 314 | Mifflin 315 | Miller 316 | Milwaukee 317 | Mitchell 318 | Mockingbird 319 | Moland 320 | Monica 321 | Montana 322 | Monterey 323 | Monument 324 | Moose 325 | Morning 326 | Morningstar 327 | Morrow 328 | Mosinee 329 | Moulton 330 | Muir 331 | Myrtle 332 | Namekagon 333 | Nancy 334 | Nelson 335 | Nevada 336 | New Castle 337 | Nobel 338 | North 339 | Northfield 340 | Northland 341 | Northport 342 | Northridge 343 | Northview 344 | Northwestern 345 | Norway Maple 346 | Nova 347 | Novick 348 | Oak 349 | Oak Valley 350 | Oakridge 351 | Ohio 352 | Old Gate 353 | Old Shore 354 | Oneill 355 | Onsgard 356 | Orin 357 | Oriole 358 | Oxford 359 | Packers 360 | Paget 361 | Pankratz 362 | Park Meadow 363 | Parkside 364 | Pawling 365 | Pearson 366 | Pennsylvania 367 | Pepper Wood 368 | Petterle 369 | Pierstorff 370 | Pine View 371 | Pleasure 372 | Pond 373 | Portage 374 | Porter 375 | Prairie Rose 376 | Prairieview 377 | Prentice 378 | Quincy 379 | Ramsey 380 | Randy 381 | Raven 382 | Red Cloud 383 | Redwing 384 | Reindahl 385 | Reinke 386 | Ridge Oak 387 | Ridgeview 388 | Ridgeway 389 | Rieder 390 | Rigney 391 | Riverside 392 | Rockefeller 393 | Ronald Regan 394 | Roth 395 | Rowland 396 | Roxbury 397 | Rusk 398 | Ruskin 399 | Russell 400 | Rutledge 401 | Ryan 402 | Sachs 403 | Sachtjen 404 | Sage 405 | Saint Paul 406 | Sauthoff 407 | Schiller 408 | Schlimgen 409 | Schmedeman 410 | School 411 | Schurz 412 | Scofield 413 | Scott 414 | Scoville 415 | Service 416 | Shasta 417 | Shelley 418 | Sheridan 419 | Sherman 420 | Shopko 421 | Shoshone 422 | Sloan 423 | Sommers 424 | South 425 | Southridge 426 | Spaight 427 | Spenser 428 | Spohn 429 | Springs 430 | Springview 431 | Stang 432 | Starling 433 | Steensland 434 | Stephen 435 | Stone Corner 436 | Stoughton 437 | Straubel 438 | Stuart 439 | Sugar 440 | Sullivan 441 | Summer Ridge 442 | Summerview 443 | Summit 444 | Sunbrook 445 | Sundown 446 | Sunfield 447 | Sunnyside 448 | Superior 449 | Surrey 450 | Susan 451 | Sutherland 452 | Sutteridge 453 | Swallow 454 | Sycamore 455 | Talisman 456 | Talmadge 457 | Tennessee 458 | Tennyson 459 | Texas 460 | Thackeray 461 | Thierer 462 | Thompson 463 | Toban 464 | Tomscot 465 | Tony 466 | Towne 467 | Trailsway 468 | Transport 469 | Troy 470 | Truax 471 | Twin Pines 472 | Union 473 | Upham 474 | Utah 475 | Vahlen 476 | Valley Edge 477 | Veith 478 | Vera 479 | Vermont 480 | Vernon 481 | Victoria 482 | Vidon 483 | Village 484 | Village Green 485 | Walton 486 | Warbler 487 | Warner 488 | Warrior 489 | Washington 490 | Waubesa 491 | Waxwing 492 | Wayridge 493 | Waywood 494 | Weeping Birch 495 | Welch 496 | West 497 | Westend 498 | Westerfield 499 | Westport 500 | Westridge 501 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/street_suffixes: -------------------------------------------------------------------------------- 1 | Alley 2 | Avenue 3 | Center 4 | Circle 5 | Court 6 | Crossing 7 | Drive 8 | Hill 9 | Junction 10 | Lane 11 | Park 12 | Parkway 13 | Pass 14 | Place 15 | Plaza 16 | Point 17 | Road 18 | Street 19 | Terrace 20 | Trail 21 | Way 22 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/top_level_domains: -------------------------------------------------------------------------------- 1 | biz 2 | com 3 | info 4 | name 5 | net 6 | org 7 | gov 8 | edu 9 | mil 10 | -------------------------------------------------------------------------------- /forgery_py/dictionaries/zones: -------------------------------------------------------------------------------- 1 | International Date Line West 2 | Midway Island 3 | Samoa 4 | Hawaii 5 | Alaska 6 | Pacific Time (US & Canada) 7 | Tijuana 8 | Arizona 9 | Chihuahua 10 | Mazatlan 11 | Mountain Time (US & Canada) 12 | Central America 13 | Central Time (US & Canada) 14 | Guadalajara 15 | Mexico City 16 | Monterrey 17 | Saskatchewan 18 | Bogota 19 | Eastern Time (US & Canada) 20 | Indiana (East) 21 | Lima 22 | Quito 23 | Caracas 24 | Atlantic Time (Canada) 25 | La Paz 26 | Santiago 27 | Newfoundland 28 | Brasilia 29 | Buenos Aires 30 | Georgetown 31 | Greenland 32 | Mid-Atlantic 33 | Azores 34 | Cape Verde Is. 35 | Casablanca 36 | Dublin 37 | Edinburgh 38 | Lisbon 39 | London 40 | Monrovia 41 | UTC 42 | Amsterdam 43 | Belgrade 44 | Berlin 45 | Bern 46 | Bratislava 47 | Brussels 48 | Budapest 49 | Copenhagen 50 | Ljubljana 51 | Madrid 52 | Paris 53 | Prague 54 | Rome 55 | Sarajevo 56 | Skopje 57 | Stockholm 58 | Vienna 59 | Warsaw 60 | West Central Africa 61 | Zagreb 62 | Athens 63 | Bucharest 64 | Cairo 65 | Harare 66 | Helsinki 67 | Istanbul 68 | Jerusalem 69 | Kyev 70 | Minsk 71 | Pretoria 72 | Riga 73 | Sofia 74 | Tallinn 75 | Vilnius 76 | Baghdad 77 | Kuwait 78 | Moscow 79 | Nairobi 80 | Riyadh 81 | St. Petersburg 82 | Volgograd 83 | Tehran 84 | Abu Dhabi 85 | Baku 86 | Muscat 87 | Tbilisi 88 | Yerevan 89 | Kabul 90 | Ekaterinburg 91 | Islamabad 92 | Karachi 93 | Tashkent 94 | Chennai 95 | Kolkata 96 | Mumbai 97 | New Delhi 98 | Sri Jayawardenepura 99 | Kathmandu 100 | Almaty 101 | Astana 102 | Dhaka 103 | Novosibirsk 104 | Rangoon 105 | Bangkok 106 | Hanoi 107 | Jakarta 108 | Krasnoyarsk 109 | Beijing 110 | Chongqing 111 | Hong Kong 112 | Irkutsk 113 | Kuala Lumpur 114 | Perth 115 | Singapore 116 | Taipei 117 | Ulaan Bataar 118 | Urumqi 119 | Osaka 120 | Sapporo 121 | Seoul 122 | Tokyo 123 | Yakutsk 124 | Adelaide 125 | Darwin 126 | Brisbane 127 | Canberra 128 | Guam 129 | Hobart 130 | Melbourne 131 | Port Moresby 132 | Sydney 133 | Vladivostok 134 | Magadan 135 | New Caledonia 136 | Solomon Is. 137 | Auckland 138 | Fiji 139 | Kamchatka 140 | Marshall Is. 141 | Wellington 142 | Nuku'alofa 143 | -------------------------------------------------------------------------------- /forgery_py/dictionaries_loader.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """File-based dictionaries support.""" 23 | 24 | import codecs 25 | from os.path import abspath, dirname, join 26 | import random 27 | 28 | DICTIONARIES_PATH = abspath(join(dirname(__file__), 'dictionaries')) 29 | 30 | dictionaries_cache = {} 31 | 32 | 33 | def get_dictionary(dict_name): 34 | """ 35 | Load a dictionary file ``dict_name`` (if it's not cached) and return its 36 | contents as an array of strings. 37 | """ 38 | global dictionaries_cache 39 | 40 | if dict_name not in dictionaries_cache: 41 | try: 42 | dictionary_file = codecs.open( 43 | join(DICTIONARIES_PATH, dict_name), 'r', 'utf-8' 44 | ) 45 | except IOError: 46 | None 47 | else: 48 | dictionaries_cache[dict_name] = dictionary_file.readlines() 49 | dictionary_file.close() 50 | 51 | return dictionaries_cache[dict_name] 52 | -------------------------------------------------------------------------------- /forgery_py/forgery/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate various forged data.""" 23 | -------------------------------------------------------------------------------- /forgery_py/forgery/address.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate forged addres-related data.""" 23 | 24 | import random 25 | import string 26 | 27 | from ..dictionaries_loader import get_dictionary 28 | 29 | __all__ = [ 30 | 'street_name', 'street_number', 'street_suffix', 'street_address', 31 | 'city', 'state', 'state_abbrev', 'zip_code', 'phone', 'country', 32 | 'continent' 33 | ] 34 | 35 | 36 | def street_name(): 37 | """Random street name.""" 38 | return random.choice(get_dictionary('street_names')).strip() 39 | 40 | 41 | def street_number(): 42 | """Random street number.""" 43 | length = int(random.choice(string.digits[1:6])) 44 | return ''.join(random.sample(string.digits, length)) 45 | 46 | 47 | def street_suffix(): 48 | """Random street suffix.""" 49 | return random.choice(get_dictionary('street_suffixes')).strip() 50 | 51 | 52 | def street_address(): 53 | """ 54 | Random street address. Equivalent of ``street_number() + ' ' + 55 | street_name() + ' ' + street_suffix()``. 56 | """ 57 | return '%s %s %s' % (street_number(), street_name(), street_suffix()) 58 | 59 | 60 | def city(): 61 | """Random city name.""" 62 | return random.choice(get_dictionary('cities')).strip() 63 | 64 | 65 | def state(): 66 | """Random US state name.""" 67 | return random.choice(get_dictionary('states')).strip() 68 | 69 | 70 | def state_abbrev(): 71 | """Random US abbreviated state name.""" 72 | return random.choice(get_dictionary('state_abbrevs')).strip() 73 | 74 | 75 | def zip_code(): 76 | """Random ZIP code, either in `#####` or `#####-####` format.""" 77 | format = '#####' 78 | if random.random() >= 0.5: 79 | format = '#####-####' 80 | 81 | result = '' 82 | for item in format: 83 | if item == '#': 84 | result += str(random.randint(0, 9)) 85 | else: 86 | result += item 87 | 88 | return result 89 | 90 | 91 | def phone(): 92 | """Random phone number in `#-(###)###-####` format.""" 93 | format = '#-(###)###-####' 94 | 95 | result = '' 96 | for item in format: 97 | if item == '#': 98 | result += str(random.randint(0, 9)) 99 | else: 100 | result += item 101 | 102 | return result 103 | 104 | 105 | def country(): 106 | """Random country name.""" 107 | return random.choice(get_dictionary('countries')).strip() 108 | 109 | 110 | def continent(): 111 | """Random continent name.""" 112 | return random.choice(get_dictionary('continents')).strip() 113 | -------------------------------------------------------------------------------- /forgery_py/forgery/basic.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate misc random data.""" 23 | 24 | import random 25 | import string 26 | 27 | HEX_DIGITS = string.hexdigits[:-6].upper() 28 | 29 | __all__ = ['hex_color', 'hex_color_short', 'text'] 30 | 31 | 32 | def hex_color(): 33 | """Random HEX color.""" 34 | return ''.join(random.sample(HEX_DIGITS, 6)) 35 | 36 | 37 | def hex_color_short(): 38 | """Random short (e.g. `FFF` color).""" 39 | return ''.join(random.sample(HEX_DIGITS, 3)) 40 | 41 | 42 | def text(length=None, at_least=10, at_most=15, lowercase=True, 43 | uppercase=True, digits=True, spaces=True, punctuation=False): 44 | """ 45 | Random text. 46 | 47 | If `length` is present the text will be exactly this chars long. Else the 48 | text will be something between `at_least` and `at_most` chars long. 49 | """ 50 | base_string = '' 51 | if lowercase: 52 | base_string += string.ascii_lowercase 53 | 54 | if uppercase: 55 | base_string += string.ascii_uppercase 56 | 57 | if digits: 58 | base_string += string.digits 59 | 60 | if spaces: 61 | base_string += ' ' 62 | 63 | if punctuation: 64 | base_string += string.punctuation 65 | 66 | if len(base_string) == 0: 67 | return '' 68 | 69 | if not length: 70 | length = random.randint(at_least, at_most) 71 | 72 | result = '' 73 | for i in xrange(0, length): 74 | result += random.choice(base_string) 75 | 76 | return result 77 | -------------------------------------------------------------------------------- /forgery_py/forgery/currency.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate currency-related data.""" 23 | 24 | import random 25 | 26 | from ..dictionaries_loader import get_dictionary 27 | 28 | __all__ = ['description', 'code'] 29 | 30 | 31 | def description(): 32 | """Random currency description, e.g. `United Kingdom Pounds`.""" 33 | return random.choice(get_dictionary('currency_descriptions')).strip() 34 | 35 | 36 | def code(): 37 | """Random currency code, e.g. `GBP`.""" 38 | return random.choice(get_dictionary('currency_codes')).strip() 39 | -------------------------------------------------------------------------------- /forgery_py/forgery/date.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate random date-related data.""" 23 | 24 | import datetime 25 | import random 26 | 27 | from ..dictionaries_loader import get_dictionary 28 | 29 | __all__ = ['day_of_week', 'month', 'year', 'day', 'date'] 30 | 31 | DAYS = [ 32 | 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 33 | 'Friday', 'Saturday', 'Sunday' 34 | ] 35 | 36 | DAYS_ABBR = [ 37 | 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' 38 | ] 39 | 40 | MONTHS = [ 41 | 'January', 'February', 'March', 'April', 42 | 'May', 'June', 'July', 'August', 43 | 'September', 'October', 'November', 'December' 44 | ] 45 | 46 | MONTHS_ABBR = [ 47 | 'Jan', 'Feb', 'Mar', 'Apr', 48 | 'May', 'Jun', 'Jul', 'Aug', 49 | 'Sep', 'Oct', 'Nov', 'Dec' 50 | ] 51 | 52 | 53 | def day_of_week(abbr=False): 54 | """Random (abbreviated if `abbr`) day of week name.""" 55 | if abbr: 56 | return random.choice(DAYS_ABBR) 57 | else: 58 | return random.choice(DAYS) 59 | 60 | 61 | def month(abbr=False, numerical=False): 62 | """ 63 | Random (abbreviated if `abbr`) month name or month number if 64 | `numerical`. 65 | """ 66 | if numerical: 67 | return random.randint(1, 12) 68 | else: 69 | if abbr: 70 | return random.choice(MONTHS_ABBR) 71 | else: 72 | return random.choice(MONTHS) 73 | 74 | 75 | def _delta(past=False, min_delta=0, max_delta=20): 76 | delta = min_delta + random.randint(min_delta + 1, max_delta) 77 | 78 | if past: 79 | delta = delta * -1 80 | 81 | return delta 82 | 83 | 84 | def year(past=False, min_delta=0, max_delta=20): 85 | """Random year.""" 86 | return datetime.date.today().year + _delta(past, min_delta, max_delta) 87 | 88 | 89 | def day(month_length=31): 90 | """Random day number in a `month_length` days long month.""" 91 | return random.randint(1, month_length) 92 | 93 | 94 | def date(past=False, min_delta=0, max_delta=20): 95 | """Random `datetime.date` object. Delta args are days.""" 96 | timedelta = datetime.timedelta(days=_delta(past, min_delta, max_delta)) 97 | return datetime.date.today() + timedelta 98 | -------------------------------------------------------------------------------- /forgery_py/forgery/internet.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate random date-related data.""" 23 | 24 | import random 25 | 26 | from ..dictionaries_loader import get_dictionary 27 | from .name import first_name 28 | 29 | __all__ = [ 30 | 'user_name', 'top_level_domain', 'domain_name', 31 | 'email_address', 'cctld', 'ip_v4' 32 | ] 33 | 34 | 35 | def user_name(with_num=False): 36 | """ 37 | Random user name. 38 | 39 | Basically it's lowercased result of 40 | :py:func:`~forgery_py.forgery.name.first_name()` with a number appended 41 | if `with_num`. 42 | """ 43 | result = first_name() 44 | if with_num: 45 | result += str(random.randint(63, 94)) 46 | 47 | return result.lower() 48 | 49 | 50 | def top_level_domain(): 51 | """Random TLD.""" 52 | return random.choice(get_dictionary('top_level_domains')).strip() 53 | 54 | 55 | def domain_name(): 56 | """ 57 | Random domain name. 58 | 59 | Lowercased result of :py:func:`~forgery_py.forgery.name.company_name()` 60 | plus :py:func:`~top_level_domain()`. 61 | """ 62 | result = random.choice(get_dictionary('company_names')).strip() 63 | result += '.' + top_level_domain() 64 | 65 | return result.lower() 66 | 67 | 68 | def email_address(user=None): 69 | """ 70 | Random e-mail address in a hopefully imaginary domain. 71 | 72 | If `user` is ``None`` :py:func:`~user_name()` will be used. Otherwise it 73 | will be lowercased and will have spaces replaced with ``_``. 74 | 75 | Domain name is created using :py:func:`~domain_name()`. 76 | """ 77 | if not user: 78 | user = user_name() 79 | else: 80 | user = user.strip().replace(' ', '_').lower() 81 | 82 | return user + '@' + domain_name() 83 | 84 | 85 | def cctld(): 86 | """Random country code TLD.""" 87 | return random.choice(get_dictionary('country_code_top_level_domains')).\ 88 | strip() 89 | 90 | 91 | def ip_v4(): 92 | """Random IPv4 address.""" 93 | return '.'.join([str(random.randint(0, 255)) for i in xrange(0, 4)]) 94 | -------------------------------------------------------------------------------- /forgery_py/forgery/lorem_ipsum.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate random `Lorem ipsum` style text.""" 23 | 24 | import random 25 | import re 26 | 27 | from ..dictionaries_loader import get_dictionary 28 | 29 | __all__ = [ 30 | 'word', 'words', 'title', 'sentence', 31 | 'sentences', 'paragraph', 'paragraphs' 32 | ] 33 | 34 | _words = None 35 | 36 | 37 | def word(): 38 | """Random word.""" 39 | return words(quantity=1) 40 | 41 | 42 | def words(quantity=10, as_list=False): 43 | """Random words.""" 44 | global _words 45 | 46 | if not _words: 47 | _words = ' '.join(get_dictionary('lorem_ipsum')).lower().\ 48 | replace('\n', '') 49 | _words = re.sub(r'\.|,|;/', '', _words) 50 | _words = _words.split(' ') 51 | 52 | result = random.sample(_words, quantity) 53 | 54 | if as_list: 55 | return result 56 | else: 57 | return ' '.join(result) 58 | 59 | 60 | def title(words_quantity=4): 61 | """Random sentence to be used as e.g. an e-mail subject.""" 62 | result = words(quantity=words_quantity) 63 | result += random.choice('?.!') 64 | return result.capitalize() 65 | 66 | 67 | def sentence(): 68 | """Random sentence.""" 69 | return sentences(quantity=1) 70 | 71 | 72 | def sentences(quantity=2, as_list=False): 73 | """Random sentences.""" 74 | result = [sntc.strip() for sntc in 75 | random.sample(get_dictionary('lorem_ipsum'), quantity)] 76 | 77 | if as_list: 78 | return result 79 | else: 80 | return ' '.join(result) 81 | 82 | 83 | def paragraph(separator='\n\n', wrap_start='', wrap_end='', 84 | html=False, sentences_quantity=3): 85 | """Random paragraph.""" 86 | return paragraphs(quantity=1, separator=separator, wrap_start=wrap_start, 87 | wrap_end=wrap_end, html=html, 88 | sentences_quantity=sentences_quantity) 89 | 90 | 91 | def paragraphs(quantity=2, separator='\n\n', wrap_start='', wrap_end='', 92 | html=False, sentences_quantity=3, as_list=False): 93 | """Random paragraphs.""" 94 | if html: 95 | wrap_start = '

' 96 | wrap_end = '

' 97 | separator = '\n\n' 98 | 99 | result = [] 100 | for i in xrange(0, quantity): 101 | result.append(wrap_start + sentences(sentences_quantity) + wrap_end) 102 | 103 | if as_list: 104 | return result 105 | else: 106 | return separator.join(result) 107 | -------------------------------------------------------------------------------- /forgery_py/forgery/name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate random names and name-related strings.""" 23 | 24 | import random 25 | 26 | from ..dictionaries_loader import get_dictionary 27 | 28 | __all__ = [ 29 | 'first_name', 'last_name', 'full_name', 'male_first_name', 30 | 'female_first_name', 'company_name', 'job_title', 'job_title_suffix', 31 | 'title', 'suffix', 'location', 'industry' 32 | ] 33 | 34 | 35 | def first_name(): 36 | """Random male of female first name.""" 37 | _dict = get_dictionary('male_first_names') 38 | _dict += get_dictionary('female_first_names') 39 | 40 | return random.choice(_dict).strip() 41 | 42 | 43 | def last_name(): 44 | """Random last name.""" 45 | return random.choice(get_dictionary('last_names')).strip() 46 | 47 | 48 | def full_name(): 49 | """ 50 | Random full name. Equivalent of ``first_name() + ' ' + last_name()``. 51 | """ 52 | return first_name() + ' ' + last_name() 53 | 54 | 55 | def male_first_name(): 56 | """Random male first name.""" 57 | return random.choice(get_dictionary('male_first_names')).strip() 58 | 59 | 60 | def female_first_name(): 61 | """Random female first name.""" 62 | return random.choice(get_dictionary('female_first_names')).strip() 63 | 64 | 65 | def company_name(): 66 | """Random company name.""" 67 | return random.choice(get_dictionary('company_names')).strip() 68 | 69 | 70 | def job_title(): 71 | """Random job title.""" 72 | result = random.choice(get_dictionary('job_titles')).strip() 73 | result = result.replace('#{N}', job_title_suffix()) 74 | return result 75 | 76 | 77 | def job_title_suffix(): 78 | """Random job title suffix.""" 79 | return random.choice(get_dictionary('job_title_suffixes')).strip() 80 | 81 | 82 | def title(): 83 | """Random name title, e.g. ``Mr``.""" 84 | return random.choice(get_dictionary('name_titles')).strip() 85 | 86 | 87 | def suffix(): 88 | """Random name suffix, e.g. ``Jr``.""" 89 | return random.choice(get_dictionary('name_suffixes')).strip() 90 | 91 | 92 | def location(): 93 | """Random location name, e.g. ``MI6 Headquarters``.""" 94 | return random.choice(get_dictionary('locations')).strip() 95 | 96 | 97 | def industry(): 98 | """Random industry name.""" 99 | return random.choice(get_dictionary('industries')).strip() 100 | -------------------------------------------------------------------------------- /forgery_py/forgery/personal.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # Copyright (C) 2012 by Tomasz Wójcik 3 | # 4 | # Permission is hereby granted, free of charge, to any person obtaining a copy 5 | # of this software and associated documentation files (the "Software"), to deal 6 | # in the Software without restriction, including without limitation the rights 7 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | # copies of the Software, and to permit persons to whom the Software is 9 | # furnished to do so, subject to the following conditions: 10 | # 11 | # The above copyright notice and this permission notice shall be included in 12 | # all copies or substantial portions of the Software. 13 | # 14 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | # THE SOFTWARE. 21 | 22 | """Generate random personal information.""" 23 | 24 | import random 25 | 26 | from ..dictionaries_loader import get_dictionary 27 | 28 | __all__ = ['gender', 'abbreviated_gender', 'shirt_size', 'race', 'language'] 29 | 30 | 31 | def gender(): 32 | """Random gender.""" 33 | return random.choice(get_dictionary('genders')).strip() 34 | 35 | 36 | def abbreviated_gender(): 37 | """Random abbreviated gender.""" 38 | return gender()[0:1] 39 | 40 | 41 | def shirt_size(): 42 | """Shirt size.""" 43 | return random.choice(get_dictionary('shirt_sizes')).strip() 44 | 45 | 46 | def race(): 47 | """Random race.""" 48 | return random.choice(get_dictionary('races')).strip() 49 | 50 | 51 | def language(): 52 | """Random language name, e.g. ``Polish``.""" 53 | return random.choice(get_dictionary('languages')).strip() 54 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | # Copyright (C) 2012 by Tomasz Wójcik 4 | # 5 | # Permission is hereby granted, free of charge, to any person obtaining a copy 6 | # of this software and associated documentation files (the "Software"), to deal 7 | # in the Software without restriction, including without limitation the rights 8 | # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | # copies of the Software, and to permit persons to whom the Software is 10 | # furnished to do so, subject to the following conditions: 11 | # 12 | # The above copyright notice and this permission notice shall be included in 13 | # all copies or substantial portions of the Software. 14 | # 15 | # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | # THE SOFTWARE. 22 | 23 | import codecs 24 | import distutils.core 25 | 26 | version = '0.1' 27 | 28 | desc_file = codecs.open('README.rst', 'r', 'utf-8') 29 | long_description = desc_file.read() 30 | desc_file.close() 31 | 32 | distutils.core.setup( 33 | name="ForgeryPy", 34 | version=version, 35 | packages=['forgery_py', 'forgery_py.forgery'], 36 | package_data={ 37 | 'forgery_py': [ 38 | 'dictionaries/cities', 39 | 'dictionaries/colors', 40 | 'dictionaries/company_names', 41 | 'dictionaries/continents', 42 | 'dictionaries/countries', 43 | 'dictionaries/country_code_top_level_domains', 44 | 'dictionaries/currency_codes', 45 | 'dictionaries/currency_descriptions', 46 | 'dictionaries/female_first_names', 47 | 'dictionaries/frequencies', 48 | 'dictionaries/genders', 49 | 'dictionaries/industries', 50 | 'dictionaries/job_title_suffixes', 51 | 'dictionaries/job_titles', 52 | 'dictionaries/languages', 53 | 'dictionaries/last_names', 54 | 'dictionaries/LICENSE', 55 | 'dictionaries/locations', 56 | 'dictionaries/lorem_ipsum', 57 | 'dictionaries/male_first_names', 58 | 'dictionaries/name_suffixes', 59 | 'dictionaries/name_titles', 60 | 'dictionaries/province_abbrevs', 61 | 'dictionaries/provinces', 62 | 'dictionaries/races', 63 | 'dictionaries/shirt_sizes', 64 | 'dictionaries/state_abbrevs', 65 | 'dictionaries/states', 66 | 'dictionaries/street_names', 67 | 'dictionaries/street_suffixes', 68 | 'dictionaries/top_level_domains', 69 | 'dictionaries/zones' 70 | ] 71 | }, 72 | author=u'Tomasz Wójcik', 73 | author_email='labs@tomekwojcik.pl', 74 | url='http://tomekwojcik.github.com/ForgeryPy/', 75 | download_url='http://github.com/tomekwojcik/ForgeryPy/tarball/v%s' % version, 76 | description='An easy to use forged data generator for Python', 77 | long_description=long_description, 78 | license='https://github.com/tomekwojcik/ForgeryPy/blob/master/LICENSE', 79 | classifiers=[ 80 | "Development Status :: 3 - Alpha", 81 | "Environment :: Other Environment", 82 | "Intended Audience :: Developers", 83 | "License :: OSI Approved :: MIT License", 84 | "Operating System :: OS Independent", 85 | "Programming Language :: Python", 86 | "Topic :: Software Development :: Libraries :: Python Modules" 87 | ] 88 | ) -------------------------------------------------------------------------------- /tests/test_address.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import re 4 | from unittest import TestCase 5 | 6 | from forgery_py.forgery import address 7 | from forgery_py.dictionaries_loader import get_dictionary 8 | 9 | 10 | class AddressForgeryTestCase(TestCase): 11 | def test_street_name(self): 12 | result = address.street_name() 13 | assert result + '\n' in get_dictionary('street_names') 14 | 15 | def test_street_number(self): 16 | result = address.street_number() 17 | assert re.match(r'[0-9]{1,5}$', result) is not None 18 | 19 | def test_street_suffix(self): 20 | result = address.street_suffix() 21 | assert result + '\n' in get_dictionary('street_suffixes') 22 | 23 | def test_street_address(self): 24 | result = address.street_address() 25 | assert re.match(r'[0-9]{1,5} .+? .+?$', result) 26 | 27 | def test_city(self): 28 | result = address.city() 29 | assert result + '\n' in get_dictionary('cities') 30 | 31 | def test_state(self): 32 | result = address.state() 33 | assert result + '\n' in get_dictionary('states') 34 | 35 | def test_state_abbrev(self): 36 | result = address.state_abbrev() 37 | assert result + '\n' in get_dictionary('state_abbrevs') 38 | 39 | def test_zip_code(self): 40 | result = address.zip_code() 41 | assert (re.match(r'[0-9]{5}$', result) is not None or 42 | re.match(r'[0-9]{5}-[0-9]{4}$', result) is not None) 43 | 44 | def test_phone(self): 45 | result = address.phone() 46 | assert re.match(r'[0-9]-\([0-9]{3}\)[0-9]{3}-[0-9]{4}$', result) is not None 47 | 48 | def test_country(self): 49 | result = address.country() 50 | assert result + '\n' in get_dictionary('countries') 51 | 52 | def test_continent(self): 53 | result = address.continent() 54 | assert result + '\n' in get_dictionary('continents') 55 | -------------------------------------------------------------------------------- /tests/test_basic.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import re 4 | from unittest import TestCase 5 | 6 | from forgery_py.forgery import basic 7 | 8 | 9 | class BasicForgeryTestCase(TestCase): 10 | def test_hex_color(self): 11 | color = basic.hex_color() 12 | 13 | assert re.match(r'[0-9A-F]{6}$', color) is not None 14 | 15 | def test_hex_color_short(self): 16 | color = basic.hex_color_short() 17 | 18 | assert re.match(r'[0-9A-F]{3}$', color) is not None 19 | 20 | def test_text(self): 21 | text1 = basic.text(length=10) 22 | assert len(text1) == 10 23 | 24 | text2 = basic.text(at_least=10, at_most=15) 25 | assert len(text2) >= 10 and len(text2) <= 15 26 | 27 | text3 = basic.text(length=26, lowercase=False, uppercase=True, 28 | digits=False, spaces=False, punctuation=False) 29 | assert re.match(r'[A-Z]{26}$', text3) is not None 30 | 31 | text4 = basic.text(length=26, lowercase=True, uppercase=False, 32 | digits=False, spaces=False, punctuation=False) 33 | assert re.match(r'[a-z]{26}$', text4) is not None 34 | 35 | text5 = basic.text(length=10, lowercase=False, uppercase=False, 36 | digits=True, spaces=False, punctuation=False) 37 | assert re.match(r'[0-9]{10}$', text5) is not None 38 | 39 | text6 = basic.text(length=1, lowercase=False, uppercase=False, 40 | digits=False, spaces=True, punctuation=False) 41 | assert text6 == ' ' 42 | 43 | text7 = basic.text(length=32, lowercase=False, uppercase=False, 44 | digits=False, spaces=False, punctuation=True) 45 | assert re.match(r"""[!"#$%&\\'()*+,-\.\/:;<=>?@\[\]^_`{|}~]{32}$""", 46 | text7) is not None -------------------------------------------------------------------------------- /tests/test_currency.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import re 4 | from unittest import TestCase 5 | 6 | from forgery_py.forgery import currency 7 | from forgery_py.dictionaries_loader import get_dictionary 8 | 9 | 10 | class CurrencyForgeryTestCase(TestCase): 11 | def test_description(self): 12 | result = currency.description() 13 | assert result + '\n' in get_dictionary('currency_descriptions') 14 | 15 | def test_code(self): 16 | result = currency.code() 17 | assert result + '\n' in get_dictionary('currency_codes') -------------------------------------------------------------------------------- /tests/test_date.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import datetime 4 | from unittest import TestCase 5 | 6 | from forgery_py.forgery import date 7 | 8 | 9 | class DateForgeryTestCase(TestCase): 10 | def test_day_of_week(self): 11 | result = date.day_of_week() 12 | assert result in date.DAYS 13 | 14 | result = date.day_of_week(abbr=True) 15 | assert result in date.DAYS_ABBR 16 | 17 | def test_month(self): 18 | result = date.month() 19 | assert result in date.MONTHS 20 | 21 | result = date.month(abbr=True) 22 | assert result in date.MONTHS_ABBR 23 | 24 | result = date.month(numerical=True) 25 | assert result in range(1, 13) 26 | 27 | def test_year(self): 28 | today = datetime.date.today() 29 | 30 | result = date.year() 31 | assert result > today.year 32 | 33 | result = date.year(past=True) 34 | assert result < today.year 35 | 36 | def test_day(self): 37 | result = date.day() 38 | assert result in range(1, 32) 39 | 40 | result = date.day(2) 41 | assert result in range(1, 3) 42 | 43 | def test_date(self): 44 | today = datetime.date.today() 45 | 46 | result = date.date() 47 | assert result > today 48 | 49 | result = date.date(past=True) 50 | assert result < today -------------------------------------------------------------------------------- /tests/test_internet.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import re 4 | import string 5 | from unittest import TestCase 6 | 7 | from forgery_py.forgery import internet 8 | from forgery_py.dictionaries_loader import get_dictionary 9 | 10 | 11 | class InternetForgeryTestCase(TestCase): 12 | def test_user_name(self): 13 | result = internet.user_name() 14 | assert re.match(r'[a-z]+?$', result) is not None 15 | 16 | result = internet.user_name(with_num=True) 17 | assert int(result[-2:]) in range(63, 95) 18 | 19 | def test_top_level_domain(self): 20 | result = internet.top_level_domain() 21 | assert result + '\n' in get_dictionary('top_level_domains') 22 | 23 | def test_domain_name(self): 24 | result = internet.domain_name() 25 | assert re.match(r'[a-z]+?\.[a-z]{3,4}$', result) is not None 26 | 27 | def test_email_address(self): 28 | result = internet.email_address() 29 | assert re.match(r'[a-z]+?@[a-z]+?\.[a-z]{3,4}$', result) is not None 30 | 31 | result = internet.email_address('Tomek Wojcik') 32 | assert result.startswith('tomek_wojcik') 33 | 34 | def test_ccld(self): 35 | result = internet.cctld() 36 | assert result + '\n'\ 37 | in get_dictionary('country_code_top_level_domains') 38 | 39 | def test_ip_v4(self): 40 | result = internet.ip_v4().split('.') 41 | assert len(result) == 4 42 | 43 | for block in result: 44 | assert int(block) in range(0, 256) 45 | -------------------------------------------------------------------------------- /tests/test_lorem_ipsum.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import re 4 | import string 5 | from unittest import TestCase 6 | 7 | from forgery_py.forgery import lorem_ipsum 8 | 9 | 10 | class LoremIpsumForgeryTestCase(TestCase): 11 | def test_word(self): 12 | result = lorem_ipsum.word() 13 | assert re.match(r'[a-z]+?$', result) is not None 14 | 15 | def test_words(self): 16 | result = lorem_ipsum.words(5) 17 | assert len(result.split(' ')) == 5 18 | 19 | result = lorem_ipsum.words(5, as_list=True) 20 | assert len(result) == 5 21 | 22 | def test_title(self): 23 | result = lorem_ipsum.title() 24 | assert result[0] in string.ascii_uppercase 25 | assert len(result.split(' ')) == 4 26 | assert result[-1] in ('?.!') 27 | 28 | def test_sentence(self): 29 | result = lorem_ipsum.sentence() 30 | assert len(result.split('.')) == 2 31 | 32 | def test_sentences(self): 33 | result = lorem_ipsum.sentences() 34 | assert len(result.split('.')) == 3 35 | 36 | def test_paragraph(self): 37 | result = lorem_ipsum.paragraph() 38 | assert len(result.split('.')) == 4 39 | 40 | def test_paragraphs(self): 41 | result = lorem_ipsum.paragraphs(separator='|') 42 | assert len(result.split('|')) == 2 43 | 44 | result = lorem_ipsum.paragraphs(as_list=True) 45 | assert len(result) == 2 46 | 47 | result = lorem_ipsum.paragraphs(html=True, as_list=True) 48 | 49 | for paragraph in result: 50 | assert paragraph.startswith('

') 51 | assert paragraph.endswith('

') -------------------------------------------------------------------------------- /tests/test_name.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from unittest import TestCase 4 | 5 | from forgery_py.forgery import name 6 | from forgery_py.dictionaries_loader import get_dictionary 7 | 8 | 9 | class NameForgeryTestCase(TestCase): 10 | def test_first_name(self): 11 | result = name.first_name() 12 | assert result + '\n' in get_dictionary('male_first_names') or\ 13 | result + '\n' in get_dictionary('female_first_names') 14 | 15 | result = name.male_first_name() 16 | assert result + '\n' in get_dictionary('male_first_names') 17 | 18 | result = name.female_first_name() 19 | assert result + '\n' in get_dictionary('female_first_names') 20 | 21 | def test_last_name(self): 22 | result = name.last_name() 23 | assert result + '\n' in get_dictionary('last_names') 24 | 25 | def test_full_name(self): 26 | result = name.full_name() 27 | 28 | assert len(result.split(' ')) == 2 29 | 30 | def test_company_name(self): 31 | result = name.company_name() 32 | assert result + '\n' in get_dictionary('company_names') 33 | 34 | def test_job_title_suffix(self): 35 | result = name.job_title_suffix() 36 | assert result + '\n' in get_dictionary('job_title_suffixes') 37 | 38 | def test_title(self): 39 | result = name.title() 40 | assert result + '\n' in get_dictionary('name_titles') 41 | 42 | def test_suffix(self): 43 | result = name.suffix() 44 | assert result + '\n' in get_dictionary('name_suffixes') 45 | 46 | def test_location(self): 47 | result = name.location() 48 | assert result + '\n' in get_dictionary('locations') 49 | 50 | def test_industry(self): 51 | result = name.industry() 52 | assert result + '\n' in get_dictionary('industries') -------------------------------------------------------------------------------- /tests/test_personal.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from unittest import TestCase 4 | 5 | from forgery_py.forgery import personal 6 | from forgery_py.dictionaries_loader import get_dictionary 7 | 8 | 9 | class PersonalForgeryTestCase(TestCase): 10 | def test_gender(self): 11 | result = personal.gender() 12 | assert result + '\n' in get_dictionary('genders') 13 | 14 | result = personal.abbreviated_gender() 15 | assert result in ('M', 'F') 16 | 17 | def test_shirt_size(self): 18 | result = personal.shirt_size() 19 | assert result + '\n' in get_dictionary('shirt_sizes') 20 | 21 | def test_race(self): 22 | result = personal.race() 23 | assert result + '\n' in get_dictionary('races') 24 | 25 | def test_language(self): 26 | result = personal.language() 27 | assert result + '\n' in get_dictionary('languages') 28 | --------------------------------------------------------------------------------