Initial commit

This commit is contained in:
Dean Jackson 2014-12-29 15:27:35 +01:00
commit 6447bc9ac8
181 changed files with 25571 additions and 0 deletions

BIN
Fakum-1.0.alfredworkflow Normal file

Binary file not shown.

21
LICENCE Normal file
View file

@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2014 Dean Jackson <deanishe@deanishe.net>
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:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
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.

119
README.md Normal file
View file

@ -0,0 +1,119 @@
# Alfred Fakum #
Generate fake test data in Alfred for testing.
![][demo]
## Download ##
Get the workflow from [GitHub][gh-releases] or [Packal][packal].
## Usage ##
- `fake [<query>]` — List/filter available fake data types
- `↩`, `⌘+C` or `⌘+NUM` — Copy one fake datum to clipboard
- `⌘+↩` — Paste fake datum into frontmost app
- `⇥` — Specify number of datasets to copy to clipboard
- `⌘+L` — Show generated data in Alfred's Large Text window
- `fakeconfig [<query>]` — Activate and deactivate locales for fake data
- `↩` — Toggle selected locale on or off
If you specify multiple data, e.g. `fake Name ⟩ 10` for 10 names, the data
will be separated by newlines (`\n`).
In the case of `Paragraph` and `Address` types, the data will be separated
by two newlines (`\n\n`).
## Supported data types ##
| Name | Example |
|-- |--|
| Name | Arabella Hahn-Matthäi |
| First Name | Jeffrey |
| Last Name | Renner |
| Email | augustina.braun@ratke-hamill.org |
| Email (corporate) | fridolin68@schueler.de |
| Email (free) | gkautzer@gmail.com |
| Email (safe) | cruickshank.hymen@example.com |
| Email domain (free) | hotmail.com |
| Address | Ronda de Claudia Alegre 9<br>Melilla, 57359 |
| Street | Paseo Lila Roca 52 |
| Street Name | Cuesta Mauricio Sotelo |
| City | León |
| State | Vizcaya |
| State abbr. | WA |
| Country | Albanien |
| TLD | de |
| Domain Name | ankunding.org |
| Domain Word | tormo-vazquez |
| IP Address (IPv4) | 23.1.170.203 |
| IP Address (IPv6) | 9144:9c8a:e1b3:db99:df20:be35:8fd0:1ab2 |
| URI | http://cummerata-kuvalis.com/app/category/register.php |
| URI path | tags |
| URL | http://pollich-rath.com/ |
| Corporate BS | revolutionize virtual e-markets |
| Corporate catchphrase | Optional executive leverage |
| Company | Löwer AG |
| Company suffix | LLC |
| Paragraph | Error culpa amet voluptatem et delectus labore. Facilis deserunt quae aliquid mollitia. Aut esse qui totam dolor consequatur dolorem. |
| Sentence | Provident vel quod dolorem in. |
| Word | sint |
| Date | 1985-05-14 |
| Datetime | 1981-01-28 14:37:06 |
| ISO 8601 Datetime | 1990-07-30T08:41:53 |
| Time | 00:42:12 |
| Timezone | Europe/Istanbul |
| UNIX timestamp | 261754578 |
## Supported locales ##
**Note**: Not all locales support all data types.
- Bulgarian
- Czech
- German
- Danish
- Greek
- English (CA)
- English (GB)
- English (US)
- Spanish (ES)
- Spanish (MX)
- Persian
- Finnish
- French
- Hindi
- Italian
- Korean
- Lithuanian
- Latvian
- Dutch
- Norwegian
- Polish
- Portuguese (BR)
- Russian
- Slovenian
- Chinese (CN)
- Chinese (TW)
## Licensing, thanks ##
Icons are from [Font Awesome][font-awesome] ([SIL OFL 1.1 Licence][sil]).
Alfred Fakum uses the following libraries:
- [Faker][faker] ([licence][faker-licence])
- [docopt][docopt] ([MIT Licence][mit])
- [Alfred-Workflow][alfred-workflow] ([MIT Licence][mit])
[gh-releases]: https://github.com/deanishe/alfred-fakeum/releases
[packal]: http://www.packal.org/workflow/fakeum
[mit]: http://opensource.org/licenses/MIT
[alfred-workflow]: http://www.deanishe.net/alfred-workflow/
[font-awesome]: http://fortawesome.github.io/Font-Awesome/
[docopt]: http://docopt.org/
[faker]: http://www.joke2k.net/faker/
[faker-licence]: https://github.com/joke2k/faker/blob/master/LICENSE.txt
[sil]: http://scripts.sil.org/OFL
[demo]: demo.gif

BIN
demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

38
extra/example_data.py Executable file
View file

@ -0,0 +1,38 @@
#!/usr/bin/env python
# encoding: utf-8
#
# Copyright © 2014 deanishe@deanishe.net
#
# MIT Licence. See http://opensource.org/licenses/MIT
#
# Created on 2014-12-29
#
"""
"""
from __future__ import print_function, unicode_literals, absolute_import
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(os.path.dirname(__file__)),
'src'))
from workflow import Workflow
import fakum
def main():
wf = Workflow()
fakum.wf = wf
print(' | Name | Example |')
print(' |-- |--|')
for name in fakum.FAKERS:
ex = fakum.get_fake_datum(name)
print('| {} | {} |'.format(name, ex).encode('utf-8'))
if __name__ == '__main__':
sys.exit(main())

69
extra/locale_list.py Executable file
View file

@ -0,0 +1,69 @@
#!/usr/bin/env python
# encoding: utf-8
#
# Copyright © 2014 deanishe@deanishe.net
#
# MIT Licence. See http://opensource.org/licenses/MIT
#
# Created on 2014-12-29
#
"""
Generate a list of locales supported by Faker
"""
from __future__ import print_function, unicode_literals, absolute_import
from pprint import pprint
import re
import sys
import os
dirpath = os.path.join(os.path.dirname(os.path.dirname(__file__)),
'src', 'faker', 'providers')
is_locale = re.compile(r'[a-z]{2}_[A-Z]{2}').match
locale_names = {
'bg_BG': 'Bulgarian',
'cs_CZ': 'Czech',
'de_DE': 'German',
'dk_DK': 'Danish',
'el_GR': 'Greek',
'en_CA': 'English (CA)',
'en_GB': 'English (GB)',
'en_US': 'English (US)',
'es_ES': 'Spanish (ES)',
'es_MX': 'Spanish (MX)',
'fa_IR': 'Persian',
'fi_FI': 'Finnish',
'fr_FR': 'French',
'hi_IN': 'Hindi',
'it_IT': 'Italian',
'ko_KR': 'Korean',
'lt_LT': 'Lithuanian',
'lv_LV': 'Latvian',
'nl_NL': 'Dutch',
'no_NO': 'Norwegian',
'pl_PL': 'Polish',
'pt_BR': 'Portuguese (BR)',
'ru_RU': 'Russian',
'sl_SI': 'Slovenian',
'zh_CN': 'Chinese (CN)',
'zh_TW': 'Chinese (TW)',
}
def main():
locales = {}
for filename in os.listdir(dirpath):
path = os.path.join(dirpath, filename)
if not os.path.isdir(path) or not is_locale(filename):
continue
locales[filename] = locale_names.get(filename, '')
pprint(locales)
if __name__ == '__main__':
sys.exit(main())

BIN
src/active.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

89
src/config.py Normal file
View file

@ -0,0 +1,89 @@
#!/usr/bin/python
# encoding: utf-8
#
# Copyright © 2014 deanishe@deanishe.net
#
# MIT Licence. See http://opensource.org/licenses/MIT
#
# Created on 2014-12-29
#
"""config.py [options] [args]
Usage:
config.py --toggle <locale>
config.py <query>
Options:
--toggle <locale> Turn locale on/off
-h, --help Show this help message
"""
from __future__ import print_function, unicode_literals, absolute_import
import subprocess
import sys
from workflow import Workflow
from fakum import ALL_LOCALES, DEFAULT_SETTINGS, UPDATE_SETTINGS, HELP_URL
ALFRED_AS = 'tell application "Alfred 2" to search "fakeconfig "'
log = None
def main(wf):
from docopt import docopt
args = docopt(__doc__, wf.args)
log.debug('args : {!r}'.format(args))
if args.get('--toggle'):
loc = args.get('--toggle')
active = wf.settings.get('locales', [])
is_active = loc in active
if is_active:
msg = 'Deactivated locale {}'.format(ALL_LOCALES.get(loc))
active.remove(loc)
wf.settings['locales'] = active
else:
msg = 'Activated locale {}'.format(ALL_LOCALES.get(loc))
active.append(loc)
wf.settings['locales'] = active
log.info(msg)
print(msg)
subprocess.call(['osascript', '-e', ALFRED_AS])
return 0
query = args.get('<query>')
locales = sorted([(v, k) for (k, v) in ALL_LOCALES.items()])
if query:
locales = wf.filter(query, locales, key=lambda t: '{} {}'.format(*t),
min_score=30)
for name, loc in locales:
if loc in wf.settings.get('locales', []):
icon = 'active.png'
else:
icon = 'inactive.png'
wf.add_item(name, loc,
arg=loc,
valid=True,
icon=icon)
wf.send_feedback()
if __name__ == '__main__':
wf = Workflow(default_settings=DEFAULT_SETTINGS,
update_settings=UPDATE_SETTINGS,
help_url=HELP_URL)
log = wf.logger
sys.exit(wf.run(main))

579
src/docopt.py Normal file
View file

@ -0,0 +1,579 @@
"""Pythonic command-line interface parser that will make you smile.
* http://docopt.org
* Repository and issue-tracker: https://github.com/docopt/docopt
* Licensed under terms of MIT license (see LICENSE-MIT)
* Copyright (c) 2013 Vladimir Keleshev, vladimir@keleshev.com
"""
import sys
import re
__all__ = ['docopt']
__version__ = '0.6.2'
class DocoptLanguageError(Exception):
"""Error in construction of usage-message by developer."""
class DocoptExit(SystemExit):
"""Exit in case user invoked program with incorrect arguments."""
usage = ''
def __init__(self, message=''):
SystemExit.__init__(self, (message + '\n' + self.usage).strip())
class Pattern(object):
def __eq__(self, other):
return repr(self) == repr(other)
def __hash__(self):
return hash(repr(self))
def fix(self):
self.fix_identities()
self.fix_repeating_arguments()
return self
def fix_identities(self, uniq=None):
"""Make pattern-tree tips point to same object if they are equal."""
if not hasattr(self, 'children'):
return self
uniq = list(set(self.flat())) if uniq is None else uniq
for i, c in enumerate(self.children):
if not hasattr(c, 'children'):
assert c in uniq
self.children[i] = uniq[uniq.index(c)]
else:
c.fix_identities(uniq)
def fix_repeating_arguments(self):
"""Fix elements that should accumulate/increment values."""
either = [list(c.children) for c in self.either.children]
for case in either:
for e in [c for c in case if case.count(c) > 1]:
if type(e) is Argument or type(e) is Option and e.argcount:
if e.value is None:
e.value = []
elif type(e.value) is not list:
e.value = e.value.split()
if type(e) is Command or type(e) is Option and e.argcount == 0:
e.value = 0
return self
@property
def either(self):
"""Transform pattern into an equivalent, with only top-level Either."""
# Currently the pattern will not be equivalent, but more "narrow",
# although good enough to reason about list arguments.
ret = []
groups = [[self]]
while groups:
children = groups.pop(0)
types = [type(c) for c in children]
if Either in types:
either = [c for c in children if type(c) is Either][0]
children.pop(children.index(either))
for c in either.children:
groups.append([c] + children)
elif Required in types:
required = [c for c in children if type(c) is Required][0]
children.pop(children.index(required))
groups.append(list(required.children) + children)
elif Optional in types:
optional = [c for c in children if type(c) is Optional][0]
children.pop(children.index(optional))
groups.append(list(optional.children) + children)
elif AnyOptions in types:
optional = [c for c in children if type(c) is AnyOptions][0]
children.pop(children.index(optional))
groups.append(list(optional.children) + children)
elif OneOrMore in types:
oneormore = [c for c in children if type(c) is OneOrMore][0]
children.pop(children.index(oneormore))
groups.append(list(oneormore.children) * 2 + children)
else:
ret.append(children)
return Either(*[Required(*e) for e in ret])
class ChildPattern(Pattern):
def __init__(self, name, value=None):
self.name = name
self.value = value
def __repr__(self):
return '%s(%r, %r)' % (self.__class__.__name__, self.name, self.value)
def flat(self, *types):
return [self] if not types or type(self) in types else []
def match(self, left, collected=None):
collected = [] if collected is None else collected
pos, match = self.single_match(left)
if match is None:
return False, left, collected
left_ = left[:pos] + left[pos + 1:]
same_name = [a for a in collected if a.name == self.name]
if type(self.value) in (int, list):
if type(self.value) is int:
increment = 1
else:
increment = ([match.value] if type(match.value) is str
else match.value)
if not same_name:
match.value = increment
return True, left_, collected + [match]
same_name[0].value += increment
return True, left_, collected
return True, left_, collected + [match]
class ParentPattern(Pattern):
def __init__(self, *children):
self.children = list(children)
def __repr__(self):
return '%s(%s)' % (self.__class__.__name__,
', '.join(repr(a) for a in self.children))
def flat(self, *types):
if type(self) in types:
return [self]
return sum([c.flat(*types) for c in self.children], [])
class Argument(ChildPattern):
def single_match(self, left):
for n, p in enumerate(left):
if type(p) is Argument:
return n, Argument(self.name, p.value)
return None, None
@classmethod
def parse(class_, source):
name = re.findall('(<\S*?>)', source)[0]
value = re.findall('\[default: (.*)\]', source, flags=re.I)
return class_(name, value[0] if value else None)
class Command(Argument):
def __init__(self, name, value=False):
self.name = name
self.value = value
def single_match(self, left):
for n, p in enumerate(left):
if type(p) is Argument:
if p.value == self.name:
return n, Command(self.name, True)
else:
break
return None, None
class Option(ChildPattern):
def __init__(self, short=None, long=None, argcount=0, value=False):
assert argcount in (0, 1)
self.short, self.long = short, long
self.argcount, self.value = argcount, value
self.value = None if value is False and argcount else value
@classmethod
def parse(class_, option_description):
short, long, argcount, value = None, None, 0, False
options, _, description = option_description.strip().partition(' ')
options = options.replace(',', ' ').replace('=', ' ')
for s in options.split():
if s.startswith('--'):
long = s
elif s.startswith('-'):
short = s
else:
argcount = 1
if argcount:
matched = re.findall('\[default: (.*)\]', description, flags=re.I)
value = matched[0] if matched else None
return class_(short, long, argcount, value)
def single_match(self, left):
for n, p in enumerate(left):
if self.name == p.name:
return n, p
return None, None
@property
def name(self):
return self.long or self.short
def __repr__(self):
return 'Option(%r, %r, %r, %r)' % (self.short, self.long,
self.argcount, self.value)
class Required(ParentPattern):
def match(self, left, collected=None):
collected = [] if collected is None else collected
l = left
c = collected
for p in self.children:
matched, l, c = p.match(l, c)
if not matched:
return False, left, collected
return True, l, c
class Optional(ParentPattern):
def match(self, left, collected=None):
collected = [] if collected is None else collected
for p in self.children:
m, left, collected = p.match(left, collected)
return True, left, collected
class AnyOptions(Optional):
"""Marker/placeholder for [options] shortcut."""
class OneOrMore(ParentPattern):
def match(self, left, collected=None):
assert len(self.children) == 1
collected = [] if collected is None else collected
l = left
c = collected
l_ = None
matched = True
times = 0
while matched:
# could it be that something didn't match but changed l or c?
matched, l, c = self.children[0].match(l, c)
times += 1 if matched else 0
if l_ == l:
break
l_ = l
if times >= 1:
return True, l, c
return False, left, collected
class Either(ParentPattern):
def match(self, left, collected=None):
collected = [] if collected is None else collected
outcomes = []
for p in self.children:
matched, _, _ = outcome = p.match(left, collected)
if matched:
outcomes.append(outcome)
if outcomes:
return min(outcomes, key=lambda outcome: len(outcome[1]))
return False, left, collected
class TokenStream(list):
def __init__(self, source, error):
self += source.split() if hasattr(source, 'split') else source
self.error = error
def move(self):
return self.pop(0) if len(self) else None
def current(self):
return self[0] if len(self) else None
def parse_long(tokens, options):
"""long ::= '--' chars [ ( ' ' | '=' ) chars ] ;"""
long, eq, value = tokens.move().partition('=')
assert long.startswith('--')
value = None if eq == value == '' else value
similar = [o for o in options if o.long == long]
if tokens.error is DocoptExit and similar == []: # if no exact match
similar = [o for o in options if o.long and o.long.startswith(long)]
if len(similar) > 1: # might be simply specified ambiguously 2+ times?
raise tokens.error('%s is not a unique prefix: %s?' %
(long, ', '.join(o.long for o in similar)))
elif len(similar) < 1:
argcount = 1 if eq == '=' else 0
o = Option(None, long, argcount)
options.append(o)
if tokens.error is DocoptExit:
o = Option(None, long, argcount, value if argcount else True)
else:
o = Option(similar[0].short, similar[0].long,
similar[0].argcount, similar[0].value)
if o.argcount == 0:
if value is not None:
raise tokens.error('%s must not have an argument' % o.long)
else:
if value is None:
if tokens.current() is None:
raise tokens.error('%s requires argument' % o.long)
value = tokens.move()
if tokens.error is DocoptExit:
o.value = value if value is not None else True
return [o]
def parse_shorts(tokens, options):
"""shorts ::= '-' ( chars )* [ [ ' ' ] chars ] ;"""
token = tokens.move()
assert token.startswith('-') and not token.startswith('--')
left = token.lstrip('-')
parsed = []
while left != '':
short, left = '-' + left[0], left[1:]
similar = [o for o in options if o.short == short]
if len(similar) > 1:
raise tokens.error('%s is specified ambiguously %d times' %
(short, len(similar)))
elif len(similar) < 1:
o = Option(short, None, 0)
options.append(o)
if tokens.error is DocoptExit:
o = Option(short, None, 0, True)
else: # why copying is necessary here?
o = Option(short, similar[0].long,
similar[0].argcount, similar[0].value)
value = None
if o.argcount != 0:
if left == '':
if tokens.current() is None:
raise tokens.error('%s requires argument' % short)
value = tokens.move()
else:
value = left
left = ''
if tokens.error is DocoptExit:
o.value = value if value is not None else True
parsed.append(o)
return parsed
def parse_pattern(source, options):
tokens = TokenStream(re.sub(r'([\[\]\(\)\|]|\.\.\.)', r' \1 ', source),
DocoptLanguageError)
result = parse_expr(tokens, options)
if tokens.current() is not None:
raise tokens.error('unexpected ending: %r' % ' '.join(tokens))
return Required(*result)
def parse_expr(tokens, options):
"""expr ::= seq ( '|' seq )* ;"""
seq = parse_seq(tokens, options)
if tokens.current() != '|':
return seq
result = [Required(*seq)] if len(seq) > 1 else seq
while tokens.current() == '|':
tokens.move()
seq = parse_seq(tokens, options)
result += [Required(*seq)] if len(seq) > 1 else seq
return [Either(*result)] if len(result) > 1 else result
def parse_seq(tokens, options):
"""seq ::= ( atom [ '...' ] )* ;"""
result = []
while tokens.current() not in [None, ']', ')', '|']:
atom = parse_atom(tokens, options)
if tokens.current() == '...':
atom = [OneOrMore(*atom)]
tokens.move()
result += atom
return result
def parse_atom(tokens, options):
"""atom ::= '(' expr ')' | '[' expr ']' | 'options'
| long | shorts | argument | command ;
"""
token = tokens.current()
result = []
if token in '([':
tokens.move()
matching, pattern = {'(': [')', Required], '[': [']', Optional]}[token]
result = pattern(*parse_expr(tokens, options))
if tokens.move() != matching:
raise tokens.error("unmatched '%s'" % token)
return [result]
elif token == 'options':
tokens.move()
return [AnyOptions()]
elif token.startswith('--') and token != '--':
return parse_long(tokens, options)
elif token.startswith('-') and token not in ('-', '--'):
return parse_shorts(tokens, options)
elif token.startswith('<') and token.endswith('>') or token.isupper():
return [Argument(tokens.move())]
else:
return [Command(tokens.move())]
def parse_argv(tokens, options, options_first=False):
"""Parse command-line argument vector.
If options_first:
argv ::= [ long | shorts ]* [ argument ]* [ '--' [ argument ]* ] ;
else:
argv ::= [ long | shorts | argument ]* [ '--' [ argument ]* ] ;
"""
parsed = []
while tokens.current() is not None:
if tokens.current() == '--':
return parsed + [Argument(None, v) for v in tokens]
elif tokens.current().startswith('--'):
parsed += parse_long(tokens, options)
elif tokens.current().startswith('-') and tokens.current() != '-':
parsed += parse_shorts(tokens, options)
elif options_first:
return parsed + [Argument(None, v) for v in tokens]
else:
parsed.append(Argument(None, tokens.move()))
return parsed
def parse_defaults(doc):
# in python < 2.7 you can't pass flags=re.MULTILINE
split = re.split('\n *(<\S+?>|-\S+?)', doc)[1:]
split = [s1 + s2 for s1, s2 in zip(split[::2], split[1::2])]
options = [Option.parse(s) for s in split if s.startswith('-')]
#arguments = [Argument.parse(s) for s in split if s.startswith('<')]
#return options, arguments
return options
def printable_usage(doc):
# in python < 2.7 you can't pass flags=re.IGNORECASE
usage_split = re.split(r'([Uu][Ss][Aa][Gg][Ee]:)', doc)
if len(usage_split) < 3:
raise DocoptLanguageError('"usage:" (case-insensitive) not found.')
if len(usage_split) > 3:
raise DocoptLanguageError('More than one "usage:" (case-insensitive).')
return re.split(r'\n\s*\n', ''.join(usage_split[1:]))[0].strip()
def formal_usage(printable_usage):
pu = printable_usage.split()[1:] # split and drop "usage:"
return '( ' + ' '.join(') | (' if s == pu[0] else s for s in pu[1:]) + ' )'
def extras(help, version, options, doc):
if help and any((o.name in ('-h', '--help')) and o.value for o in options):
print(doc.strip("\n"))
sys.exit()
if version and any(o.name == '--version' and o.value for o in options):
print(version)
sys.exit()
class Dict(dict):
def __repr__(self):
return '{%s}' % ',\n '.join('%r: %r' % i for i in sorted(self.items()))
def docopt(doc, argv=None, help=True, version=None, options_first=False):
"""Parse `argv` based on command-line interface described in `doc`.
`docopt` creates your command-line interface based on its
description that you pass as `doc`. Such description can contain
--options, <positional-argument>, commands, which could be
[optional], (required), (mutually | exclusive) or repeated...
Parameters
----------
doc : str
Description of your command-line interface.
argv : list of str, optional
Argument vector to be parsed. sys.argv[1:] is used if not
provided.
help : bool (default: True)
Set to False to disable automatic help on -h or --help
options.
version : any object
If passed, the object will be printed if --version is in
`argv`.
options_first : bool (default: False)
Set to True to require options preceed positional arguments,
i.e. to forbid options and positional arguments intermix.
Returns
-------
args : dict
A dictionary, where keys are names of command-line elements
such as e.g. "--verbose" and "<path>", and values are the
parsed values of those elements.
Example
-------
>>> from docopt import docopt
>>> doc = '''
Usage:
my_program tcp <host> <port> [--timeout=<seconds>]
my_program serial <port> [--baud=<n>] [--timeout=<seconds>]
my_program (-h | --help | --version)
Options:
-h, --help Show this screen and exit.
--baud=<n> Baudrate [default: 9600]
'''
>>> argv = ['tcp', '127.0.0.1', '80', '--timeout', '30']
>>> docopt(doc, argv)
{'--baud': '9600',
'--help': False,
'--timeout': '30',
'--version': False,
'<host>': '127.0.0.1',
'<port>': '80',
'serial': False,
'tcp': True}
See also
--------
* For video introduction see http://docopt.org
* Full documentation is available in README.rst as well as online
at https://github.com/docopt/docopt#readme
"""
if argv is None:
argv = sys.argv[1:]
DocoptExit.usage = printable_usage(doc)
options = parse_defaults(doc)
pattern = parse_pattern(formal_usage(DocoptExit.usage), options)
# [default] syntax for argument is disabled
#for a in pattern.flat(Argument):
# same_name = [d for d in arguments if d.name == a.name]
# if same_name:
# a.value = same_name[0].value
argv = parse_argv(TokenStream(argv, DocoptExit), list(options),
options_first)
pattern_options = set(pattern.flat(Option))
for ao in pattern.flat(AnyOptions):
doc_options = parse_defaults(doc)
ao.children = list(set(doc_options) - pattern_options)
#if any_options:
# ao.children += [Option(o.short, o.long, o.argcount)
# for o in argv if type(o) is Option]
extras(help, version, argv, doc)
matched, left, collected = pattern.fix().match(argv)
if matched and left == []: # better error message if left?
return Dict((a.name, a.value) for a in (pattern.flat() + collected))
raise DocoptExit()

58
src/faker/__init__.py Normal file
View file

@ -0,0 +1,58 @@
# coding=utf-8
VERSION = '0.4.2'
AVAILABLE_LOCALES = [
'bg_BG',
'cs_CZ',
'de_DE',
'dk_DK',
'el_GR',
'en_CA',
'en_GB',
'en_US',
'es_ES',
'es_MX',
'fa_IR',
'fi_FI',
'fr_FR',
'hi_IN',
'it_IT',
'ko_KR',
'lt_LT',
'lv_LV',
'nl_NL',
'pl_PL',
'pt_BR',
'ru_RU',
'sl_SI',
'zh_CN',
'zh_TW'
]
DEFAULT_LOCALE = 'en_US'
DEFAULT_PROVIDERS = (
'address',
'color',
'company',
'credit_card',
'date_time',
'file',
'internet',
'job',
'lorem',
'misc',
'person',
'profile',
'python',
'phone_number',
'ssn',
'user_agent',
)
from faker.generator import Generator
from faker.factory import Factory
Faker = Factory.create

5
src/faker/__main__.py Normal file
View file

@ -0,0 +1,5 @@
# coding=utf-8
if __name__ == "__main__":
from faker.cli import execute_from_command_line
execute_from_command_line()

120
src/faker/build_docs.py Normal file
View file

@ -0,0 +1,120 @@
# coding=utf-8
from __future__ import print_function
from __future__ import unicode_literals
import os
import sys
if sys.version < '3':
text_type = unicode
binary_type = str
else:
text_type = str
binary_type = bytes
DOCS_ROOT = os.path.abspath(os.path.join('..', 'docs'))
def write(fh, s):
return fh.write(s.encode('utf-8'))
def write_provider(fh, doc, provider, formatters, excludes=None):
if excludes is None:
excludes = []
write(fh, '\n')
title = "``faker.providers.{0}``".format(doc.get_provider_name(provider))
write(fh, '%s\n' % title)
write(fh, "-" * len(title))
write(fh, '\n\n::\n')
for signature, example in formatters.items():
if signature in excludes:
continue
try:
lines = text_type(example).expandtabs().splitlines()
except UnicodeEncodeError:
msg = 'error on "{0}" with value "{1}"'.format(signature, example)
raise Exception(msg)
margin = max(30, doc.max_name_len+1)
remains = 150 - margin
separator = '#'
write(fh, '\n')
for line in lines:
for i in range(0, (len(line) // remains) + 1):
write(fh, "\t{fake:<{margin}}{separator} {example}".format(
fake=signature,
separator=separator,
example=line[i*remains:(i+1)*remains],
margin=margin
))
signature = separator = ' '
write(fh, '\n')
def write_docs(*args, **kwargs):
from faker import Faker, documentor, DEFAULT_LOCALE, AVAILABLE_LOCALES
fake = Faker(locale=DEFAULT_LOCALE)
from faker.providers import BaseProvider
base_provider_formatters = [f for f in dir(BaseProvider)]
doc = documentor.Documentor(fake)
formatters = doc.get_formatters(with_args=True, with_defaults=True)
for provider, fakers in formatters:
provider_name = doc.get_provider_name(provider)
fname = os.path.join(DOCS_ROOT, 'providers', '%s.rst' % provider_name)
with open(fname, 'wb') as fh:
write_provider(fh, doc, provider, fakers)
with open(os.path.join(DOCS_ROOT, 'providers.rst'), 'wb') as fh:
write(fh, 'Providers\n')
write(fh, '=========\n')
write(fh, '.. toctree::\n')
write(fh, ' :maxdepth: 2\n\n')
[write(fh, ' providers/%s\n' % doc.get_provider_name(provider))
for provider, fakers in formatters]
AVAILABLE_LOCALES.sort()
for lang in AVAILABLE_LOCALES:
fname = os.path.join(DOCS_ROOT, 'locales', '%s.rst' % lang)
with open(fname, 'wb') as fh:
write(fh, '\n')
title = 'Language {0}\n'.format(lang)
write(fh, title)
write(fh, '=' * len(title))
write(fh, '\n')
fake = Faker(locale=lang)
d = documentor.Documentor(fake)
for p, fs in d.get_formatters(with_args=True, with_defaults=True,
locale=lang,
excludes=base_provider_formatters):
write_provider(fh, d, p, fs)
with open(os.path.join(DOCS_ROOT, 'locales.rst'), 'wb') as fh:
write(fh, 'Locales\n')
write(fh, '=======\n')
write(fh, '.. toctree::\n')
write(fh, ' :maxdepth: 2\n\n')
[write(fh, ' locales/%s\n' % lang) for lang in AVAILABLE_LOCALES]
# wrappers for sphinx
def _main(app, *args, **kwargs):
return write_docs(*args, **kwargs)
def setup(app):
app.connect(str('builder-inited'), _main)
if __name__ == "__main__":
write_docs(*sys.argv[1:])

175
src/faker/cli.py Normal file
View file

@ -0,0 +1,175 @@
# coding=utf-8
from __future__ import unicode_literals
from __future__ import print_function
import os
import sys
import argparse
from faker import Faker, Factory, documentor
from faker import VERSION, AVAILABLE_LOCALES, DEFAULT_LOCALE
if sys.version < '3':
text_type = unicode
binary_type = str
else:
text_type = str
binary_type = bytes
__author__ = 'joke2k'
def print_provider(doc, provider, formatters, excludes=None, output=None):
output = output or sys.stdout
if excludes is None:
excludes = []
print(file=output)
print("### faker.providers.{0}".format(
doc.get_provider_name(provider)), file=output)
print(file=output)
for signature, example in formatters.items():
if signature in excludes:
continue
try:
lines = text_type(example).expandtabs().splitlines()
except UnicodeEncodeError:
raise Exception('error on "{0}" with value "{1}"'.format(
signature, example))
margin = max(30, doc.max_name_len+1)
remains = 150 - margin
separator = '#'
for line in lines:
for i in range(0, (len(line) // remains) + 1):
print("\t{fake:<{margin}}{separator} {example}".format(
fake=signature,
separator=separator,
example=line[i*remains:(i+1)*remains],
margin=margin
), file=output)
signature = separator = ' '
def print_doc(provider_or_field=None,
args=None, lang=DEFAULT_LOCALE, output=None):
args = args or []
output = output or sys.stdout
fake = Faker(locale=lang)
from faker.providers import BaseProvider
base_provider_formatters = [f for f in dir(BaseProvider)]
if provider_or_field:
if '.' in provider_or_field:
parts = provider_or_field.split('.')
locale = parts[-2] if parts[-2] in AVAILABLE_LOCALES else lang
fake = Factory.create(locale, providers=[parts[-1]])
doc = documentor.Documentor(fake)
doc.already_generated = base_provider_formatters
print_provider(
doc,
fake.get_providers()[0],
doc.get_provider_formatters(fake.get_providers()[0]),
output=output)
else:
try:
print(fake.format(provider_or_field, *args), end='', file=output)
except AttributeError:
print('No faker found for "{0}({1})"'.format(
provider_or_field, args), file=output)
else:
doc = documentor.Documentor(fake)
formatters = doc.get_formatters(with_args=True, with_defaults=True)
for provider, fakers in formatters:
print_provider(doc, provider, fakers, output=output)
for language in AVAILABLE_LOCALES:
if language == lang:
continue
print(file=output)
print('## LANGUAGE {0}'.format(language), file=output)
fake = Faker(locale=language)
d = documentor.Documentor(fake)
for p, fs in d.get_formatters(with_args=True, with_defaults=True,
locale=language,
excludes=base_provider_formatters):
print_provider(d, p, fs, output=output)
class Command(object):
def __init__(self, argv=None):
self.argv = argv or sys.argv[:]
self.prog_name = os.path.basename(self.argv[0])
def execute(self):
"""
Given the command-line arguments, this creates a parser appropriate
to that command, and runs it.
"""
# retrieve default language from system environment
default_locale = os.environ.get('LANG', 'en_US').split('.')[0]
if default_locale not in AVAILABLE_LOCALES:
default_locale = DEFAULT_LOCALE
formatter_class = argparse.RawDescriptionHelpFormatter
parser = argparse.ArgumentParser(
prog=self.prog_name,
description='{0} version {1}'.format(self.prog_name, VERSION),
formatter_class=formatter_class)
parser.add_argument("--version", action="version",
version="%(prog)s {0}".format(VERSION))
parser.add_argument('-o', metavar="output",
type=argparse.FileType('w'),
default=sys.stdout,
help="redirect output to a file")
parser.add_argument('-l', '--lang',
choices=AVAILABLE_LOCALES,
default=default_locale)
parser.add_argument('-r', '--repeat',
default=1, type=int)
parser.add_argument('-s', '--sep',
default='\n')
parser.add_argument('fake', action='store', nargs='*')
arguments = parser.parse_args(self.argv[1:])
for i in range(arguments.repeat):
fake = arguments.fake[0] if len(arguments.fake) else None
print_doc(fake,
arguments.fake[1:],
lang=arguments.lang,
output=arguments.o)
print(arguments.sep, file=arguments.o)
if not fake:
# repeat not supported for all docs
break
def execute_from_command_line(argv=None):
"""A simple method that runs a Command."""
if sys.stdout.encoding is None:
print('please set python env PYTHONIOENCODING=UTF-8, example: '
'export PYTHONIOENCODING=UTF-8, when writing to stdout',
file=sys.stderr)
exit(1)
command = Command(argv)
command.execute()

98
src/faker/documentor.py Normal file
View file

@ -0,0 +1,98 @@
# coding=utf-8
from __future__ import unicode_literals
import inspect
from faker import utils
class Documentor(object):
def __init__(self, generator):
"""
:param generator: a localized Generator with providers filled,
for which to write the documentation
:type generator: faker.Generator()
"""
self.generator = generator
self.max_name_len = 0
self.already_generated = []
def get_formatters(self, locale=None, excludes=None, **kwargs):
self.max_name_len = 0
self.already_generated = [] if excludes is None else excludes[:]
formatters = []
providers = self.generator.get_providers()
for provider in providers[::-1]: # reverse
if locale and provider.__lang__ != locale:
continue
formatters.append(
(provider, self.get_provider_formatters(provider, **kwargs))
)
return formatters
def get_provider_formatters(self, provider, prefix='fake.',
with_args=True, with_defaults=True):
formatters = {}
for name, method in inspect.getmembers(provider, inspect.ismethod):
# skip 'private' method and inherited methods
if name.startswith('_') or name in self.already_generated:
continue
arguments = []
if with_args:
# retrieve all parameter
argspec = inspect.getargspec(method)
lst = [x for x in argspec.args if x not in ['self', 'cls']]
for i, arg in enumerate(lst):
if argspec.defaults and with_defaults:
try:
default = argspec.defaults[i]
if utils.is_string(default):
default = utils.quote(default)
else:
# TODO check default type
default = "{0}".format(default)
arg = "{0}={1}".format(arg, default)
except IndexError:
pass
arguments.append(arg)
if with_args == 'first':
break
if with_args != 'first':
if argspec.varargs:
arguments.append('*' + argspec.varargs)
if argspec.keywords:
arguments.append('**' + argspec.keywords)
# build fake method signature
signature = "{0}{1}({2})".format(prefix,
name,
", ".join(arguments))
# make a fake example
example = self.generator.format(name)
formatters[signature] = example
self.max_name_len = max(self.max_name_len, len(signature))
self.already_generated.append(name)
return formatters
@staticmethod
def get_provider_name(provider_class):
return provider_class.__provider__

77
src/faker/factory.py Normal file
View file

@ -0,0 +1,77 @@
# coding=utf-8
from __future__ import unicode_literals
from __future__ import absolute_import
import locale as pylocale
import sys
from faker import DEFAULT_LOCALE, DEFAULT_PROVIDERS, AVAILABLE_LOCALES
from faker import Generator
from faker import providers as providers_mod
class Factory(object):
@classmethod
def create(cls, locale=None, providers=None, generator=None, **config):
# fix locale to package name
locale = locale.replace('-', '_') if locale else DEFAULT_LOCALE
locale = pylocale.normalize(locale).split('.')[0]
if locale not in AVAILABLE_LOCALES:
msg = 'Invalid configuration for faker locale "{0}"'.format(locale)
raise AttributeError(msg)
providers = providers or DEFAULT_PROVIDERS
faker = generator or Generator(**config)
faker.add_provider(providers_mod.BaseProvider)
for prov_name in providers:
prov_cls, lang_found = cls._get_provider_class(prov_name, locale)
provider = prov_cls(faker)
provider.__provider__ = prov_name
provider.__lang__ = lang_found
faker.add_provider(provider)
return faker
@classmethod
def _get_provider_class(cls, provider, locale=''):
provider_class = cls._find_provider_class(provider, locale)
if provider_class:
return provider_class, locale
if locale and locale != DEFAULT_LOCALE:
# fallback to default locale
provider_class = cls._find_provider_class(provider, DEFAULT_LOCALE)
if provider_class:
return provider_class, DEFAULT_LOCALE
# fallback to no locale
provider_class = cls._find_provider_class(provider)
if provider_class:
return provider_class, None
msg = 'Unable to find provider "{0}" with locale "{1}"'.format(
provider, locale)
raise ValueError(msg)
@classmethod
def _find_provider_class(cls, provider, locale=''):
path = "{providers}{lang}.{provider}".format(
providers=providers_mod.__package__ or providers_mod.__name__,
lang='.' + locale if locale else '',
provider=provider
)
try:
__import__(path)
except ImportError:
return None
return sys.modules[path].Provider

86
src/faker/generator.py Normal file
View file

@ -0,0 +1,86 @@
# coding=utf-8
from __future__ import unicode_literals
import re
import random
_re_token = re.compile(r'\{\{(\s?)(\w+)(\s?)\}\}')
class Generator(object):
__config = {}
def __init__(self, **config):
self.providers = []
self.__config = dict(
list(self.__config.items()) + list(config.items()))
def add_provider(self, provider):
if type(provider) is type:
provider = provider(self)
self.providers.insert(0, provider)
for method_name in dir(provider):
# skip 'private' method
if method_name.startswith('_'):
continue
faker_function = getattr(provider, method_name)
if hasattr(faker_function, '__call__') or \
isinstance(faker_function, (classmethod, staticmethod)):
# add all faker method to generator
self.set_formatter(method_name, faker_function)
def provider(self, name):
try:
lst = [p for p in self.get_providers()
if p.__provider__ == name.lower()]
return lst[0]
except IndexError:
return None
def get_providers(self):
"""Returns added providers."""
return self.providers
def seed(self, seed=None):
"""Calls random.seed"""
random.seed(seed)
def format(self, formatter, *args, **kwargs):
"""
This is a secure way to make a fake from another Provider.
"""
# TODO: data export?
return self.get_formatter(formatter)(*args, **kwargs)
def get_formatter(self, formatter):
try:
return getattr(self, formatter)
except AttributeError:
raise AttributeError('Unknown formatter "{0}"'.format(formatter))
def set_formatter(self, name, method):
"""
This method adds a provider method to generator.
Override this method to add some decoration or logging stuff.
"""
setattr(self, name, method)
def parse(self, text):
"""
Replaces tokens (like '{{ tokenName }}' or '{{tokenName}}')
with the result from the token method call.
"""
return _re_token.sub(self.__format_token, text)
def __format_token(self, matches):
formatter = list(matches.groups())
formatter[1] = self.format(formatter[1])
return ''.join(formatter)

View file

@ -0,0 +1,178 @@
# coding=utf-8
import re
import random
import string
from faker.utils.distribution import choice_distribution
_re_hash = re.compile(r'#')
_re_perc = re.compile(r'%')
_re_excl = re.compile(r'!')
_re_at = re.compile(r'@')
_re_qm = re.compile(r'\?')
class BaseProvider(object):
__provider__ = 'base'
__lang__ = None
def __init__(self, generator):
self.generator = generator
@classmethod
def random_int(cls, min=0, max=9999):
"""
Returns a random integer between two values.
:param min: lower bound value (inclusive; default=0)
:param max: upper bound value (inclusive; default=9999)
:returns: random integer between min and max
"""
return random.randint(min, max)
@classmethod
def random_digit(cls):
"""
Returns a random digit/number
between 0 and 9.
"""
return random.randint(0, 9)
@classmethod
def random_digit_not_null(cls):
"""
Returns a random non-zero digit/number
between 1 and 9.
"""
return random.randint(1, 9)
@classmethod
def random_digit_or_empty(cls):
"""
Returns a random digit/number
between 0 and 9 or an empty string.
"""
if random.randint(0, 1):
return random.randint(0, 9)
else:
return ''
@classmethod
def random_digit_not_null_or_empty(cls):
"""
Returns a random non-zero digit/number
between 1 and 9 or and empty string.
"""
if random.randint(0, 1):
return random.randint(1, 9)
else:
return ''
@classmethod
def random_number(cls, digits=None):
"""
Returns a random number with 1 digit (default, when digits==None)
or a random number with 0 to given number of digits.
:param digits: maximum number of digits
:returns: random number with 0 to given number of digits
"""
if digits is None:
digits = BaseProvider.random_digit()
return random.randint(0, pow(10, digits) - 1)
@classmethod
def random_letter(cls):
"""Returns a random letter (between a-z and A-Z)."""
return random.choice(getattr(string, 'letters', string.ascii_letters))
@classmethod
def random_element(cls, elements=('a', 'b', 'b')):
"""
Returns a random element from a passed object.
If `elements` is a dictionary, the value will be used as
a weighting element. For example::
random_element({"{{variable_1}}": 0.5, "{{variable_2}}": 0.2, "{{variable_3}}": 0.2, "{{variable_4}}": 0.1})
will have the following distribution:
* `variable_1`: 50% probability
* `variable_2`: 20% probability
* `variable_3`: 20% probability
* `variable_4`: 10% probability
"""
if isinstance(elements, dict):
choices = elements.keys()
probabilities = elements.values()
return choice_distribution(list(choices), list(probabilities))
else:
return random.choice(list(elements))
@classmethod
def randomize_nb_elements(cls, number=10, le=False, ge=False):
"""
Returns a random value near number.
:param number: value to which the result must be near
:param le: result must be lower or equal to number
:param ge: result must be greater or equal to number
:returns: a random int near number
"""
if le and ge:
return number
_min = 100 if ge else 60
_max = 100 if le else 140
return int(number * random.randint(_min, _max) / 100) + 1
@classmethod
def numerify(cls, text='###'):
"""
Replaces all placeholders in given text with randomized values,
replacing: all hash sign ('#') occurrences with a random digit
(from 0 to 9); all percentage sign ('%') occurrences with a
random non-zero digit (from 1 to 9); all exclamation mark ('!')
occurrences with a random digit (from 0 to 9) or an empty string;
and all at symbol ('@') occurrences with a random non-zero digit
(from 1 to 9) or an empty string.
:param text: string to be parsed
:returns: string with all numerical placeholders filled in
"""
text = _re_hash.sub(
lambda x: str(BaseProvider.random_digit()),
text)
text = _re_perc.sub(
lambda x: str(BaseProvider.random_digit_not_null()),
text)
text = _re_excl.sub(
lambda x: str(BaseProvider.random_digit_or_empty()),
text)
text = _re_at.sub(
lambda x: str(BaseProvider.random_digit_not_null_or_empty()),
text)
return text
@classmethod
def lexify(cls, text='????'):
"""
Replaces all question mark ('?') occurrences with a random letter.
:param text: string to be parsed
:returns: string with all letter placeholders filled in
"""
return _re_qm.sub(lambda x: BaseProvider.random_letter(), text)
@classmethod
def bothify(cls, text='## ??'):
"""
Replaces all placeholders with random numbers and letters.
:param text: string to be parsed
:returns: string with all numerical and letter placeholders filled in
"""
return BaseProvider.lexify(BaseProvider.numerify(text))

View file

@ -0,0 +1,99 @@
# coding=utf-8
from __future__ import unicode_literals
from decimal import Decimal
import random
from . import BaseProvider
from . import date_time
class Provider(BaseProvider):
city_suffixes = ['Ville', ]
street_suffixes = ['Street', ]
city_formats = ('{{first_name}} {{city_suffix}}', )
street_name_formats = ('{{last_name}} {{street_suffix}}', )
street_address_formats = ('{{building_number}} {{street_name}}', )
address_formats = ('{{street_address}} {{postcode}} {{city}}', )
building_number_formats = ('##', )
postcode_formats = ('#####', )
countries = [tz['name'] for tz in date_time.Provider.countries]
@classmethod
def city_suffix(cls):
"""
:example 'town'
"""
return cls.random_element(cls.city_suffixes)
@classmethod
def street_suffix(cls):
"""
:example 'Avenue'
"""
return cls.random_element(cls.street_suffixes)
@classmethod
def building_number(cls):
"""
:example '791'
"""
return cls.numerify(cls.random_element(cls.building_number_formats))
def city(self):
"""
:example 'Sashabury'
"""
pattern = self.random_element(self.city_formats)
return self.generator.parse(pattern)
def street_name(self):
"""
:example 'Crist Parks'
"""
pattern = self.random_element(self.street_name_formats)
return self.generator.parse(pattern)
def street_address(self):
"""
:example '791 Crist Parks'
"""
pattern = self.random_element(self.street_address_formats)
return self.generator.parse(pattern)
@classmethod
def postcode(cls):
"""
:example 86039-9874
"""
return cls.bothify(cls.random_element(cls.postcode_formats)).upper()
def address(self):
"""
:example '791 Crist Parks, Sashabury, IL 86039-9874'
"""
pattern = self.random_element(self.address_formats)
return self.generator.parse(pattern)
@classmethod
def country(cls):
return cls.random_element(cls.countries)
@classmethod
def geo_coordinate(cls, center=None, radius=0.001):
"""
Optionally center the coord and pick a point within radius.
"""
if not center:
return Decimal(str(random.randint(-180000000, 180000000) / 1000000.0)).quantize(Decimal('.000001'))
else:
geo = random.uniform(center - radius, center + radius)
return Decimal(str(geo))
@classmethod
def latitude(cls):
# Latitude has a range of -90 to 90, so divide by two.
return cls.geo_coordinate() / 2
@classmethod
def longitude(cls):
return cls.geo_coordinate()

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,23 @@
# coding=utf-8
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}} {{last_name}} {{company_suffix}}',
'{{last_name}}',
)
company_suffixes = (
'АД', 'AD',
'ADSITz', 'АДСИЦ',
'EAD', 'ЕАД',
'EOOD', 'ЕООД',
'ET', 'ET',
'OOD', 'ООД',
'KD', 'КД',
'KDA', 'КДА',
'SD', 'СД'
)

View file

@ -0,0 +1,70 @@
# coding=utf-8
from __future__ import unicode_literals
from ..internet import Provider as InternetProvider
import re
class Provider(InternetProvider):
user_name_formats = (
'{{last_name_female}}.{{first_name_female}}',
'{{last_name_male}}.{{first_name_male}}',
'{{last_name_male}}.{{first_name_male}}',
'{{first_name_male}}.{{last_name_male}}',
'{{first_name}}##',
'?{{last_name}}',
'{{first_name}}{{year}}'
)
@staticmethod
def _to_ascii(string):
replacements = (
('Б', 'b'), ('Г', 'r'), ('Д', 'd'), ('Ж', 'zh'), ('З', 'z'), ('И', 'i'),
('Й', 'i'), ('Л', 'l'), ('П', 'p'), ('Ф', 'f'), ('Ц', 'ts'), ('Ч', 'ch'),
('Ш', 'sh'), ('Щ', 'sht'), ('Ъ', 'u'), ('Ь', ''), ('Ю', 'yu'), ('Я', 'ya'),
('б', 'b'), ('в', 'v'), ('д', 'd'), ('ж', 'zh'), ('з', 'z'), ('и', 'i'),
('й', 'i'), ('к', 'k'), ('л', 'l'), ('м', 'm'), ('н', 'n'), ('п', 'p'),
('т', 't'), ('ф', 'f'), ('ц', 'ts'), ('ч', 'ch'), ('ш', 'sh'), ('щ', 'sht'),
('ъ', 'u'), ('ь', ''), ('ю', 'yu'), ('я', 'ya'), ('Б', 'b'), ('Г', 'r'),
('Д', 'd'), ('Ж', 'zh'), ('З', 'z'), ('И', 'i'), ('Й', 'i'), ('Л', 'l'),
('П', 'p'), ('Ф', 'f'), ('Ц', 'ts'), ('Ч', 'ch'), ('Ш', 'sh'), ('Щ', 'sht'),
('Ъ', 'u'), ('Ь', ''), ('Ю', 'yu'), ('Я', 'ya'), ('б', 'b'), ('в', 'v'),
('д', 'd'), ('ж', 'zh'), ('з', 'z'), ('и', 'i'), ('й', 'i'), ('к', 'k'),
('л', 'l'), ('м', 'm'), ('н', 'n'), ('п', 'p'), ('т', 't'), ('ф', 'f'),
('ц', 'ts'), ('ч', 'ch'), ('ш', 'sh'), ('щ', 'sht'), ('ъ', 'u'), ('ь', ''),
('ю', 'yu'), ('я', 'ya')
)
for search, replace in replacements:
string = string.replace(search, replace)
return string
email_formats = (
'{{user_name}}@{{free_email_domain}}',
'{{user_name}}@{{domain_name}}')
free_email_domains = (
'gmail.com', 'yahoo.com', 'hotmail.com', 'mail.bg', 'abv.bg', 'dir.bg'
)
tlds = ('bg', 'com', 'biz', 'info', 'net', 'org', 'edu')
def user_name(self):
pattern = self.random_element(self.user_name_formats)
return self._to_ascii(
self.bothify(self.generator.parse(pattern)
).lower())
def domain_word(self):
company = self.generator.format('company')
company_elements = company.split(' ')
company = self._to_ascii(company_elements.pop(0))
return re.sub(r'\W', '', company).lower()
def domain_name(self):
return self.domain_word() + '.' + self.tld()
def tld(self):
return self.random_element(self.tlds)

View file

@ -0,0 +1,244 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
first_names_female = (
'Авгия', 'Авигея', 'Авторка', 'Аглая', 'Аглоида', 'Агнешка', 'Адамина', 'Адра', 'Адрианиа', 'Аела', 'Айрен', 'Аксентия', 'Алания',
'Албина', 'Александрина', 'Алексиа', 'Аленка', 'Алиана', 'Алисия', 'Алтая', 'Амбър', 'Амория', 'АнаМария', 'Анатолия', 'Ангелка',
'Андика', 'Андриана', 'Анелина', 'анета', 'Анза', 'Анимира', 'Аница', 'Аномалия', 'Антоалина', 'Антонела', 'Ануша', 'Анхея-мей',
'Аполинария', 'Аралия', 'Аркадия', 'Арсена', 'Аселина', 'Асифа', 'Астромерия', 'Атина', 'Аурора', 'Багра', 'Балина', 'Бацислава',
'Беатрис', 'Бела', 'Белисима', 'Беломира', 'Бенелена', 'Берислава', 'Бея', 'Билена', 'Бисера', 'Биянка', 'Благодатка', 'Благосвета',
'Богдалина', 'Богородка', 'Бодурка', 'Божидара-силвестра', 'Божинела', 'Божурка', 'Бонифация', 'Борена', 'Бориска', 'Борянка', 'Боца', 'Бригита',
'Бронислава', 'Буна', 'Буча', 'Бързана', 'Ваклина', 'Валерия', 'Валя', 'Вангелия', 'Ванухи', 'Варта', 'Васенка', 'Василина',
'Васка', 'Вашиля', 'Вежда', 'Велиана', 'Велинна', 'Велиянка', 'Венда', 'Венеция', 'Венислава', 'Венчислава', 'Верена', 'Верислава',
'Веса', 'Веселинка', 'Весна', 'Веца', 'Видима', 'Виктория', 'Вилия', 'Вилхема', 'Виолета', 'Виржиния', 'Витомира', 'Вишка',
'Владилена', 'Владлена', 'Водица', 'Войнка', 'Вула', 'Възкресения', 'Въльо', 'Върбунка', 'Въца', 'Габи', 'Галена', 'Галина',
'Галя', 'Гануца', 'Гвоздейка', 'Гена', 'Георгелена', 'Георгица', 'Герга', 'Гердана', 'Гертруда', 'Гиздана', 'Гичка', 'Гордана',
'Гория', 'Гоца', 'Графица', 'Грета', 'Гримяна', 'Гроздинка', 'Гуна', 'Гъда', 'Гълъбица', 'Гюгра', 'Гюргя', 'Дакота', 'Дамяна',
'Данелина', 'Данимира', 'Данка', 'Дарданела', 'Дария', 'Дафинка', 'Деа', 'Деви', 'Делиана', 'Деля', 'Демирела', 'Дениандра',
'Дениславена', 'Денница', 'Десимиляна', 'Десияна', 'Дефлорина', 'Дея', 'Джана', 'Джиневра', 'Джулия', 'Диана-Мария', 'Дида', 'Дилмана',
'Димитра', 'Димка', 'Динна', 'Добрина', 'Дойка', 'Доменика', 'Доника', 'Дора-Анна', 'Дорина', 'Доста', 'Доча', 'Драгица',
'Дренка', 'Дуда', 'Душка', 'Дюкяна', 'Евангелина', 'Евдокия', 'Евридика', 'Едита', 'Ел', 'Елдора', 'Еленица', 'Елеонета', 'Ели',
'Елиз', 'Елина', 'Елиса', 'Елица', 'Елма', 'Елфида', 'Емануила', 'Емма', 'Еница', 'Ергана', 'Ермиля', 'Естела',
'Ефимена', 'Ефросиния', 'Жаклин', 'Жанин', 'Жара', 'Жейна', 'Желязка', 'Женимира', 'Жива', 'Живомира', 'Жичка', 'Жорка',
'Жулиана', 'Заека', 'Занка', 'Зафа', 'Захаринка', 'Звездемира', 'Здравелина', 'Здухостина', 'Зинаида', 'Златея', 'Златка', 'Златомира',
'Зоичка', 'Зорка', 'Зузичка', 'Ивалена', 'ивамина', 'Иванеса', 'Иваничка', 'Ивелиана', 'Ивинка', 'Иглика', 'Изидора', 'Илеана',
'Илианна', 'Илинда', 'Илка', 'Инан', 'Инеса', 'Ира', 'Ирин', 'Ирла', 'Исихия', 'Истилияна', 'Йоана', 'Йоанна',
'Йованка', 'Йоко', 'Йолина', 'Йона', 'Йоника', 'Йорданка', 'Йоханна', 'Кадифейка', 'Калея', 'Калина', 'Калиса', 'Калуда',
'Камея', 'Кануша', 'Карамелита', 'Карина', 'Касиди', 'Катастрофа', 'Катинка', 'Каунка', 'Кветослава', 'Керанка', 'Кети', 'Кино',
'Кирка', 'Китчица', 'Клара', 'Клеуна', 'Клоя', 'Кокимира', 'Комара', 'Константина', 'Корнелия', 'Костадинка', 'Кралина', 'Красидара',
'Красияна', 'Криси', 'кристабела', 'Кристиана', 'Кристия', 'Кръстанка', 'Ксандриния', 'Кунка', 'Кьнина', 'Лада', 'Лазура', 'Лалка',
'Лариса', 'Лаца', 'Лека', 'Ленче', 'Летисия', 'Либерта', 'Лидийка', 'Лика', 'Лилия', 'Лилянка', 'Линда', 'Лия',
'Лозанка', 'Лорена', 'Лоти', 'Луна', 'Лъчезарка', 'Любина', 'Люблина', 'Любослава', 'Люляна', 'Люсила', 'Лянка', 'Магдалена',
'Мадлен', 'Майя', 'Максимилияна', 'Малена', 'Малтина', 'Манолина', 'Мара-антоанета', 'Маргит', 'Марен', 'Мари-анри', 'Марийка', 'Маринета',
'Мариотка', 'Мария', 'Мария-елена', 'Мария-Хуана', 'Марлена', 'Маруся', 'Маса', 'Матка', 'Маша', 'Медиха', 'Мелания', 'Мелъди',
'Меропа', 'Миглена', 'Мила', 'Милара', 'милдия', 'Милиана', 'Милост', 'Мимоза', 'Минка', 'Миранза', 'Мирена', 'Миропа',
'Мисла', 'Митошка', 'Михайлена', 'Мишка', 'Младлена', 'Момера', 'Моника', 'Мортадела', 'Мушана', 'Наводненка', 'Надка', 'Найда',
'Нани', 'Настия', 'Наташа', 'Невена', 'Негрита', 'Неделяна', 'Нейка', 'Нелида', 'Нелла', 'Неолина', 'Нешка', 'Нигрита',
'Никоела', 'Николина', 'Нионила', 'Нона', 'Норка', 'Нурета', 'Огнена', 'Октавия', 'Оливера', 'Омана', 'Орлеана', 'Орхидея',
'Павилия', 'Павлина', 'Палвира', 'Паломина', 'Панда', 'Пантера', 'Парашкевица', 'Парунка', 'Патриотка', 'Паулина', 'Паца', 'Пейолина', 'Пелина',
'Пепелота', 'Периана', 'перуна', 'Петинка', 'Петрийка', 'Петромира', 'Петрушка', 'Пешка', 'Пламена', 'Плодовитка', 'Полексина', 'Полин',
'Правда', 'Преса', 'Прина', 'Пролетина', 'Простисвета', 'Пупи', 'Първолетка', 'Рада', 'Радиа', 'Радимира', 'Радка', 'Радосвета',
'Радостка', 'Раинка', 'Райничка', 'Рамина', 'Ревка', 'Ренгия', 'Риана', 'Римма', 'Рия', 'Роза', 'Розана', 'Розета',
'Розка', 'Роксана', 'Ромолета', 'Роселина', 'Росислава', 'Ростислава', 'Ружка', 'Румислава', 'Русалия', 'Руска', 'Сабина', 'Савета',
'Салина', 'Санка', 'Сарая', 'Сахория', 'Свежа', 'Светла', 'Светломира', 'Свидна', 'Свободка', 'Севда', 'севделина', 'Севета',
'Семенарка', 'Сергелинка', 'Сибила', 'Сиена', 'Силви', 'Силвия-александра', 'Силяна', 'Симона', 'Синтия', 'Сисоя', 'Скакалка', 'Славея',
'Славка', 'Сладоледка', 'Смехотерапия', 'Смирна', 'Снежинка', 'Софийка', 'Спасена', 'Спасияна', 'Спирела', 'Стависара', 'Стаматка', 'Станиела',
'Станимирка', 'Сташа', 'Стелина', 'Стефани', 'Стеяна', 'Стоимена', 'Столетка', 'Стоянка', 'Сузи', 'Съвестина', 'Сърменка', 'Таисия',
'тамара', 'Таня', 'Ташимира', 'Теа', 'Телефонка', 'Темира', 'Теодора', 'Теса', 'Тилиана', 'Тиха', 'Тоанета', 'Толиана',
'Тона', 'Тоницвета', 'Тоска', 'Тошка', 'Трендафила', 'Трифонка', 'Троша', 'Труфана', 'Тръпка', 'Туфка', 'Улиана', 'Урима',
'Фабияна', 'Фатиме', 'Феня', 'Фикия', 'Филипини', 'Фимка', 'Флавия', 'Флорика', 'Фотинка', 'Фронка', 'Фуга', 'Хана',
'Харитония', 'Хенриета', 'Хинка', 'Холи', 'Хранислава', 'Хрисанка', 'Христа', 'Христела', 'Христилияна', 'Христоелена', 'Христя', 'Хубавелка',
'Цанета', 'Царевна', 'Цветана', 'Цветелина', 'Цветилена', 'Цветлина', 'Цветолилия', 'Цветяна', 'Цеца', 'Цола', 'Цоня', 'Чана',
'Чардафона', 'Чачия', 'Череша', 'Четвърта', 'Чона', 'Чубрина', 'Шана', 'Шена', 'Шехерезада', 'Шинка', 'Щедра', 'Щериана',
'Щефания', 'Щилянка', 'Щтилка', 'Ъгленка', 'Ъчка', 'Юлиена', 'Юлия', 'Юнона', 'Юрита', 'Юстианна', 'Ябленка', 'Явора', 'Ягода',
'Ялислава', 'Яна-Мартина', 'Янина', 'Яниславия', 'Янка', 'Ярка', 'Ясена', 'Ятана'
)
first_names_male = (
'Аблен', 'Август', 'Августиан', 'Августин', 'Авел', 'Авер', 'Аверно', 'Авксентий', 'Аво',
'Аврам', 'Аврели', 'Аврелий', 'Аврор', 'Агапи', 'Агапий', 'Агатопод', 'Агент', 'Аглай',
'Агнен', 'Агнеш', 'Агоп', 'Агъци', 'Адалберт', 'Адам', 'Адеан', 'Аделин', 'Адем',
'Адриан', 'Адриян', 'Аерозол', 'Азалия', 'Айдемир', 'Акашия', 'Аксакусти', 'Аксидан', 'Аксинтия',
'Алберт', 'Албияна', 'Алдин', 'Алевандър', 'Алег', 'Алек', 'Алекзандриян', 'Беримир', 'Берин',
'Берия', 'Беро', 'Берослав', 'Бетина', 'Бетино', 'Бечо', 'Билян', 'Бинко', 'Биньо',
'Бисенти', 'Бисер', 'Благо', 'Благовест', 'Благой', 'Благомир', 'Благосвет', 'Блаже', 'Бог',
'Богиня', 'Богой', 'Боголюб', 'Богомил', 'Богослав', 'Бодромир', 'Божан', 'Божидар', 'Божик',
'Божимир', 'Божин', 'Божинел', 'Божко', 'Божо', 'Божур', 'Боил', 'Боила', 'Бойко',
'Бойчо', 'Болен', 'Болеслав', 'Боне', 'Бонислав', 'Бонко', 'Боно', 'Веселин', 'Весислав',
'Весо', 'Веспасиян', 'Ветко', 'Вечко', 'Вигалот', 'Виго', 'Виделин', 'Виден', 'Видин',
'Видослав', 'Видю', 'Викенти', 'Виктор', 'Вилиан', 'Вилизар', 'Вилизара', 'Вилислав', 'Вилиян',
'Винету', 'Винко', 'Вино', 'Винсънт', 'Винченцо', 'Виолет', 'Виолин', 'Висарион', 'Виталий',
'Витко', 'Витлян', 'Витомир', 'Витош', 'Вихрен', 'Вихрони', 'Вихър', 'Вичо', 'Виша',
'Вишетин', 'Вишню', 'Влад', 'Владилен', 'Владимер', 'Владимир', 'Галентин', 'Галиен', 'Галимир',
'Галиян', 'Гани', 'Ганислав', 'Ганцомир', 'Ганчо', 'Ганьо', 'Гаро', 'Гатьо', 'Гацо',
'Гвардиана', 'Гелемир', 'Генади', 'ГенадиВалериев', 'Генадий', 'Генислав', 'Генко', 'Гено', 'Генчо',
'Гео', 'Геодим', 'Геомил', 'Георги', 'Герасим', 'Герган', 'Гергей', 'Гергелюб', 'Гергин',
'Гердан', 'Герман', 'Геро', 'Герой', 'Герчо', 'Гетислав', 'Гетко', 'Гето', 'Гецо',
'Гечо', 'Гешо', 'Гивеза', 'Гиздален', 'Гико', 'Гилдрой', 'Делчо', 'Делян', 'Деляна',
'Демир', 'Демян', 'Дениз', 'Деника', 'Денимир', 'Денис', 'Денислав', 'Дениян', 'Денчо',
'Дердидас', 'десилиан', 'Десимир', 'Десислав', 'Деслав', 'Деспин', 'Деспинка', 'Деспот', 'Детелин',
'Дечко', 'Дечо', 'Дечю', 'Дешо', 'Деян', 'Джанер', 'Джанко', 'Джихад', 'Джон-стефан',
'Диаманди', 'Диамантина', 'Диан', 'Диван(надядоДианидядоИван)', 'Дивизие', 'Дивизия', 'Дивил', 'Дидко', 'Диего',
'Дико', 'Дилян', 'Евстати', 'Евстатий', 'Евстахий', 'Евтим', 'Егор', 'Едвин', 'Едит',
'Едрю', 'Едуард', 'Еким', 'Ектар', 'Ектор', 'Елвис', 'Елеан', 'Електрон', 'Елемаг',
'Еленко', 'Елиан', 'Елиас', 'Елиезер', 'Елизабет', 'Елин', 'Елисей', 'Елисия', 'Елко',
'Ельо', 'Ема-Бела', 'Еманоил', 'Емануел', 'Емануил', 'Емил', 'Емилиан', 'Емилиян', 'Ендо',
'Енчо', 'Еньо', 'Еню', 'Ервин', 'Ередин', 'Еремия', 'Ерик', 'Ерина', 'Ерол',
'Ерсен', 'Есен', 'Етиен', 'Ефка', 'Заварин', 'Завен', 'Замфир', 'Занго', 'Занко',
'Запрян', 'Зарко', 'Зафер', 'Зафир', 'Захар', 'Захари', 'Захарин', 'Захо', 'Звездан',
'Звездин', 'Звездислав', 'Звездиян', 'Звездолет', 'Звездомир', 'Згура', 'Здравелин', 'Здравец', 'Здравко',
'Здравчо', 'Зенгин', 'Зика', 'Зинко', 'Зинови', 'Златан', 'Злати', 'Златил', 'Златимир',
'Златиян', 'Златко', 'Златогор', 'Златозар', 'Златомир', 'Златослав', 'Златоцвет', 'Златьо', 'Золтан',
'Илиомар', 'Илич', 'Илия', 'Илиян', 'Илко', 'Илчо', 'Имилиан', 'Ингемунд', 'Инко',
'Инчо', 'Иполит', 'Ириан', 'Ириней', 'иринеус', 'Ириян', 'Ирко', 'Ирма', 'Ирник',
'Исак', 'Исидор', 'Искрен', 'Искър', 'Исперих', 'Истан', 'Истатко', 'Истилян', 'Исус',
'Итко', 'Ихтиандър', 'Ицо', 'Ичо', 'Йено', 'Йеремия', 'Йоан', 'Йоан-Александър', 'Йоан-иво',
'Йован', 'Йовица', 'Йовко', 'Йово', 'Йовро', 'Йовцо', 'Йовчо', 'Йожи', 'Йоил',
'Йолиян', 'Йолко', 'Карен', 'Карим', 'Карин', 'Карло', 'Кармен', 'Каролин', 'Карчо',
'Катакомб', 'Каталинка', 'Катерин', 'Кевин', 'Кеворк', 'Кери', 'Кибер', 'Кимба', 'Кимбо',
'Кимон', 'Кимчо', 'Кин', 'Кинка', 'Кинта', 'Киприслав', 'Киприян', 'Кириен', 'Кирил',
'Кирчо', 'Киряк', 'Киряки', 'Киряко', 'Кис', 'Кит', 'Кито', 'Китодар', 'Китомир',
'Клим', 'Климент', 'Кнут', 'Козма', 'Койно', 'Койо', 'Койчо', 'Коко', 'Коле',
'Колчо', 'Кольо', 'Колю', 'Комнин', 'Лалко', 'Лало', 'Лальо', 'Ламби', 'Ламбо',
'Ламбю', 'Ланселот', 'Ласкал', 'Ласкар', 'Ластър', 'Латин', 'Латко', 'Латьо', 'Латю',
'ЛЕА-МАРИЯ', 'Леандър', 'Лев', 'Левент', 'Левчо', 'Леко', 'Ленин', 'Ленко', 'Леон',
'Леонид', 'Лесе', 'Лефтер', 'Лечо', 'Лилко', 'Лило', 'Лилчо', 'Лилян', 'Лимон',
'Липе', 'Лихия', 'Личо', 'Ловчо', 'Лозан', 'Лозана', 'Лозен', 'Лора-софия', 'Лоранс',
'Лука', 'Лукан', 'Луко', 'Лули', 'Лулчо', 'Лусио', 'Лусия', 'Маноел', 'Манол',
'Маноло', 'Мантас', 'Мануил', 'Мануш', 'МанчестърЮнайтед', 'Манчо', 'Маньо', 'Маню', 'Марангони',
'Маргарит', 'Марек', 'Мариан', 'Марий', 'Марин', 'Маринел', 'Маринчо', 'Марио', 'Мариоллита',
'Маритна', 'Мариян', 'Марк', 'Марк-антоний', 'Марко', 'Маркус', 'Мартен', 'Мартин', 'Мартиниян',
'Маруш', 'Марчело', 'Маслина', 'Матей', 'Матьо', 'Матю', 'Махно', 'Машо', 'Медиан',
'Мено', 'Мерилин', 'Месак', 'Метакса', 'Найо', 'Найчо', 'Наке', 'Нако', 'Нанко',
'Нано', 'Нансимир', 'Нанчо', 'Наню', 'Нарцислав', 'Наско', 'Настимир', 'Настрадин', 'Натанаил',
'Натко', 'Наум', 'Нафисат', 'Нафтали', 'Нацко', 'Нацо', 'Начиян', 'Начко', 'Начо',
'Невен', 'Невенко', 'Невилиян', 'Невян', 'Негослав', 'Неделин', 'Неделчо', 'Недислав', 'Недко',
'Недьо', 'Недю', 'Недялко', 'Нейко', 'Нейчо', 'Нелко', 'Нелчо', 'Нене', 'Ненко',
'Ненсислав', 'Ненчо', 'Неокли', 'Нерес', 'Обретим', 'Ованес', 'Огин', 'Огнемир', 'Огнен',
'Океан', 'Олег', 'Олек', 'Олимпи', 'Омар', 'Омуртаг', 'Оник', 'Онуфри', 'Ончо',
'Орлин', 'Ортодокси', 'Орфей', 'Орхидей', 'Орце', 'Оскар', 'Оханес', 'Павел', 'Павелин',
'Павко', 'Павлик', 'Павлин', 'Павлинчо', 'Павломир', 'Паисий', 'Пако', 'Палми', 'Палмиро',
'Панай', 'Панайот', 'Панде', 'Панделис', 'Пане', 'Панкртийян', 'Пано', 'Панталей', 'Пантелей',
'Панто', 'Пантю', 'Панчо', 'Паолина', 'Параскев', 'Параход', 'Парашкев', 'Парашкеван', 'Паруш',
'Паско', 'Паспанахил', 'Пато', 'Патрик', 'Патьо', 'Паулин', 'Паун', 'Пацо', 'Пачо',
'Пейко', 'Пейо', 'Пейодон', 'Пейтан', 'Пейчин', 'Пейчо', 'Пеко', 'Пелай', 'Пеле',
'Пенко', 'Пенчин', 'Пенчо', 'Пеньо', 'Пеню', 'Пео', 'Пепино', 'Пепислав', 'Пепо',
'Перикъл', 'Персиана', 'Персиян', 'Перчо', 'Петиконгрес', 'Петкан', 'Петко', 'Пето', 'Петраки',
'Петрана', 'Петринел', 'Петрозар', 'Петромил', 'Рангел', 'Рангел-любими', 'Рандю', 'Ранчо', 'Расате',
'Рафаил', 'Рачко', 'Рачо', 'Рашко', 'Рашо', 'Раю', 'Раян', 'Реан', 'Рем',
'Риналдо', 'Рис', 'Ристя', 'Ричард', 'Ричерд', 'Роберт', 'Роберто', 'Робин', 'Робърт',
'Рогелина', 'Рогена', 'Родан', 'Родион', 'Розалин', 'Розин', 'Розоцвет', 'Ройо', 'Роксан',
'Ромел', 'Ромелина', 'Ромен', 'Ромео', 'Ромил', 'Ромул', 'Росен', 'Росенка', 'Росимир',
'Роска', 'Роско', 'Ростиана', 'Ростимир', 'Ростислав', 'Светломир', 'Светлю', 'Светозар', 'Светослав',
'Себастиан', 'Себахтин', 'Севан', 'Севар', 'Севастин', 'Севдалин', 'Севдан', 'Севелин', 'Северин',
'Седеф', 'Седефчо', 'Селен', 'Селена', 'Сенко', 'Серафим', 'Сергей', 'Сеслав', 'Сиви',
'Сидер', 'Сидония', 'Сидор', 'Сиен', 'Силаги', 'Силан', 'Силвестър', 'Силвио', 'Силвиян',
'Силян', 'Симеон', 'Симо', 'Сирман', 'Сифоня', 'Скорбут', 'Слав', 'Славдо', 'Славе',
'Славейко', 'Славен', 'Слави', 'Славил', 'Теодоси', 'Теодосий', 'Теодослав', 'Теодостин', 'Теофан',
'Теохар', 'Тервел', 'Тигрони', 'Тило', 'Тильо', 'Тимо', 'Тимон', 'Тимотей', 'Тимчо',
'Тино', 'Тинчо', 'Тихо', 'Тихол', 'Тихомир', 'Тихон', 'Тишо', 'Тоде', 'Тодомирка',
'Тодораки', 'Тодорин', 'Тодорина', 'Токимир', 'Толек', 'Толю', 'Тома', 'Томас', 'Томен',
'Томинка', 'Томислав', 'Томо', 'Тоне', 'Тони', 'Тонимир', 'Тонислав', 'Тонко', 'Тончо',
'Топалко', 'Тополко', 'Тотко', 'Тотьо', 'Тотю', 'Тоцо', 'Филатей', 'Фили', 'Филидан',
'Филион', 'Филип', 'Филипас', 'Филипопол', 'Филко', 'Филомир', 'Филчо', 'Фильо', 'Финдо',
'Фиро', 'Фирчо', 'Фичо', 'Флори', 'Флориан', 'Флорин', 'Флоро', 'Фори', 'Фосил',
'Франк', 'Франц', 'Францислав', 'Фрацил', 'Фреди', 'Фродо', 'Фуго', 'Фуко', 'Фъстък',
'Фьодор', 'Хавтелин', 'Ханко', 'Хараламби', 'Харалампи', 'Харалан', 'Харбингър', 'Хари', 'Харизан',
'Харитон', 'Хасан', 'Хасатин', 'Хачо', 'Хвойне', 'Хебър', 'Хектор', 'Хераклит', 'Хернани',
'Хефестион', 'Химинай', 'Хинко', 'Хино', 'Хитко', 'Хороз', 'Храбрин', 'Храбър', 'Хранимир',
'Хрелко', 'Хрельо', 'Хрисим', 'Хрисимир', 'Хрисо', 'Христалин', 'Христивилин', 'Христиела', 'Христилиан',
'християн', 'Христо', 'Христо-никола', 'Христодор', 'Христозар', 'Христозорнициан', 'Христозорницомил', 'Христомил', 'Христомир',
'Христослав', 'Христофор', 'Хрисчо', 'Хрондел', 'Хрусан', 'Хубав', 'Хубавен', 'Хубан', 'Хубен',
'Цоню', 'Цоцо', 'Цочо', 'Цъки', 'Чавдар', 'Чанкете', 'Чанко', 'Чано', 'Чаньо',
'Чардафон', 'Чародей', 'Чауш', 'Чачо', 'Чвор', 'Чедомир', 'Ченко', 'Ченю', 'Чепо',
'Черноризец', 'Черньо', 'Чийо', 'Чико', 'Чило', 'Чонар', 'Чони', 'Чоно', 'Чоню',
'Чочо', 'Чочомир', 'Чубрик', 'Чуде', 'Чудо', 'Чудомир', 'Чудослав', 'Чук', 'Шабан',
'Шанко', 'Шаноу', 'Шаро', 'Шейна', 'Шеки', 'Шенко', 'Шенол', 'Шибил', 'Шидер',
'Шинко', 'Шино', 'Шипчан', 'Ширко', 'Шишман', 'Шкодри', 'Шмильо', 'Шмулю', 'Шпилко',
'Шушо', 'Щедрин', 'Щедю', 'Щеки', 'Щено', 'Щеню', 'Щерион', 'Щериян', 'Щерко',
'Щерьо', 'Щерю', 'Щилиян', 'Щилян', 'Щирян', 'Щоно', 'Щтърбан', 'Щтъркан', 'Щурк',
'Щърбан', 'Щъркан', 'Ъглен', 'Ълен', 'Ърнест', 'Ъруин', 'Ърчо', 'Ьобирдар', 'Юги',
'Юлиан', 'Юлий', 'Юлиян', 'Юрдан', 'Юри', 'Юрий', 'Юстин', 'Юстиниан', 'Яблен',
'Явор', 'Яго', 'Ягодин', 'Язо', 'Яким', 'Яко', 'Якоб', 'Яков', 'Якослав',
'Ян', 'Янадин', 'Янаки', 'Янакин', 'Яначко', 'Яне', 'Янег', 'Янедин', 'Янек',
'Яни', 'Яниел', 'Яник', 'Янимир', 'Янис', 'Янислав', 'Яничко', 'Янко', 'Янкул',
'Яно', 'Яномил', 'Янтар', 'Януш', 'Янцислав', 'Янче', 'Янчо', 'Ярно', 'Яромир',
'Ярце', 'Ярчо', 'Яръм', 'Ярю', 'Ясен', 'Ясер', 'Ястреб', 'Ятан', 'Яцо',
'Ячо', 'Яшар', 'Яшка', 'Яшо', 'Яшон'
)
last_names_male = (
'Симеонов', 'Данданов', 'Кърков', 'Братухчев', 'Цветков', 'Иванов', 'Яназов', 'Тодоров', 'Колчев',
'Келешев', 'Бърборков', 'Дришльов', 'Макаронски', 'Количков', 'Принов', 'Бодуров', 'Китов', 'Гьоков',
'Симеонов', 'Балахуров', 'Милачков', 'ЕвроповКирилов', 'Площаков', 'Мангъров', 'Хвърчилков', 'Дзезов', 'Ждраков',
'Тухчиев', 'Топков', 'Яков', 'Иликьов', 'Бурханларски', 'Вражалски', 'Тутурилов', 'Бранков', 'Зенгинов',
'Фенеров', 'Кучев', 'Възвъзов', 'Кьоров', 'Джогов', 'Пъков', 'Рангелов', 'Чутурков', 'Самсонов',
'Андонов', 'Бумов', 'Мочев', 'Дачев', 'Муев', 'Младенов', 'Тошев', 'Бедринов', 'Тумангелов',
'Канчин', 'Миленков', 'Патков', 'Пондьов', 'Самоходов', 'Четрафилски', 'Смърдански', 'Клатуров', 'Вакрилов',
'Прошков', 'Пулев', 'Парашкевов', 'Манавски', 'Чуков', 'Овнарски', 'Рошльов', 'Пройкова', 'Младенова',
'Кесьов', 'Римпопов', 'Златков', 'Колев', 'Пикянски', 'Николов', 'Цицков', 'Стойков', 'Каракашев',
'Докова', 'Мераков', 'Пеева', 'Педалов', 'Тъпчилещов', 'Въртунински', 'Кодуков', 'Татьозов', 'Токов',
'Юрганчев', 'Клатикрушев', 'Монтянов', 'Бобев', 'Топчийски', 'Луланков', 'Костов', 'Колипатков', 'Чукчуков',
'Катъров', 'Кобиларов', 'Лимонадов', 'Цоцов', 'Поаков', 'Недялков', 'Станишев', 'Йорданов', 'Щърбов',
'Занов'
)
last_names_female = (
'Кокошкова', 'Градинарова', 'Куртакова', 'Чанлиева', 'Тодорова', 'Пътечкова', 'Скринска', 'Сапунджиева', 'Вампирска',
'Васовa', 'Таралингова', 'Илиева', 'Кривошапкова', 'Чупетловска', 'Катърова', 'Бележкова', 'Мустакова', 'Пръндачка',
'Йоткова', 'Сланинкова', 'Мангъфова', 'Шкембова', 'Пенджакова', 'Пачаръзка', 'Куртажова', 'Плюнкова', 'Многознаева',
'Белоконска-Вражалска', 'Кучкуделова', 'Крушовска', 'Пищовколева', 'Сопаджиева', 'Точева-Клопова', 'Габровлиева', 'Първанова', 'Певецова',
'Яркова', 'Плюцова', 'Балканска'
)
prefixes_female = ('Г-жа', 'Г-ца', 'Др.')
prefixes_male = ('Г-н', 'Др.')
formats_female = (
'{{first_name_female}} {{last_name_female}}',
'{{prefix_female}} {{first_name_female}} {{last_name_female}}',
)
formats_male = (
'{{first_name_male}} {{last_name_male}}',
'{{prefix_female}} {{first_name_male}} {{last_name_male}}'
)
formats = formats_male + formats_female
first_names = first_names_male + first_names_female
last_names = last_names_male + last_names_female
@classmethod
def first_name_male(cls):
return cls.random_element(cls.first_names_male)
@classmethod
def first_name_female(cls):
return cls.random_element(cls.first_names_female)
@classmethod
def first_name(cls):
return cls.random_element(cls.first_names)
@classmethod
def last_name_female(cls):
return cls.random_element(cls.last_names_female)
@classmethod
def last_name_male(cls):
return cls.random_element(cls.last_names_male)
@classmethod
def last_name(cls):
return cls.random_element(cls.last_names)
@classmethod
def prefix_male(cls):
return cls.random_element(cls.prefixes_male)
@classmethod
def prefix_female(cls):
return cls.random_element(cls.prefixes_female)

View file

@ -0,0 +1,19 @@
# coding=utf-8
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+359(0)#########',
'+359(0)### ######',
'+359(0)### ### ###',
'+359#########',
'0#########',
'0### ######',
'0### ### ###',
'0### ###-###',
'(0###) ######',
'(0###) ### ###',
'(0###) ###-###'
)

View file

@ -0,0 +1,83 @@
# coding=utf-8
from faker.providers import BaseProvider
__author__ = 'joke2k'
class Provider(BaseProvider):
all_colors = {
"AliceBlue": "#F0F8FF", "AntiqueWhite": "#FAEBD7", "Aqua": "#00FFFF", "Aquamarine": "#7FFFD4",
"Azure": "#F0FFFF", "Beige": "#F5F5DC", "Bisque": "#FFE4C4", "Black": "#000000", "BlanchedAlmond": "#FFEBCD",
"Blue": "#0000FF", "BlueViolet": "#8A2BE2", "Brown": "#A52A2A", "BurlyWood": "#DEB887", "CadetBlue": "#5F9EA0",
"Chartreuse": "#7FFF00", "Chocolate": "#D2691E", "Coral": "#FF7F50", "CornflowerBlue": "#6495ED", "Cornsilk":
"#FFF8DC", "Crimson": "#DC143C", "Cyan": "#00FFFF", "DarkBlue": "#00008B", "DarkCyan": "#008B8B",
"DarkGoldenRod": "#B8860B", "DarkGray": "#A9A9A9", "DarkGreen": "#006400", "DarkKhaki": "#BDB76B",
"DarkMagenta": "#8B008B", "DarkOliveGreen": "#556B2F", "DarkOrange": "#FF8C00", "DarkOrchid": "#9932CC",
"DarkRed": "#8B0000", "DarkSalmon": "#E9967A", "DarkSeaGreen": "#8FBC8F", "DarkSlateBlue": "#483D8B",
"DarkSlateGray": "#2F4F4F", "DarkTurquoise": "#00CED1", "DarkViolet": "#9400D3", "DeepPink": "#FF1493",
"DeepSkyBlue": "#00BFFF", "DimGray": "#696969", "DodgerBlue": "#1E90FF", "FireBrick": "#B22222",
"FloralWhite": "#FFFAF0", "ForestGreen": "#228B22", "Fuchsia": "#FF00FF", "Gainsboro": "#DCDCDC",
"GhostWhite": "#F8F8FF", "Gold": "#FFD700", "GoldenRod": "#DAA520", "Gray": "#808080", "Green": "#008000",
"GreenYellow": "#ADFF2F", "HoneyDew": "#F0FFF0", "HotPink": "#FF69B4", "IndianRed": "#CD5C5C",
"Indigo": "#4B0082", "Ivory": "#FFFFF0", "Khaki": "#F0E68C", "Lavender": "#E6E6FA", "LavenderBlush": "#FFF0F5",
"LawnGreen": "#7CFC00", "LemonChiffon": "#FFFACD", "LightBlue": "#ADD8E6", "LightCoral": "#F08080",
"LightCyan": "#E0FFFF", "LightGoldenRodYellow": "#FAFAD2", "LightGray": "#D3D3D3", "LightGreen": "#90EE90",
"LightPink": "#FFB6C1", "LightSalmon": "#FFA07A", "LightSeaGreen": "#20B2AA", "LightSkyBlue": "#87CEFA",
"LightSlateGray": "#778899", "LightSteelBlue": "#B0C4DE", "LightYellow": "#FFFFE0", "Lime": "#00FF00",
"LimeGreen": "#32CD32", "Linen": "#FAF0E6", "Magenta": "#FF00FF", "Maroon": "#800000",
"MediumAquaMarine": "#66CDAA", "MediumBlue": "#0000CD", "MediumOrchid": "#BA55D3", "MediumPurple": "#9370DB",
"MediumSeaGreen": "#3CB371", "MediumSlateBlue": "#7B68EE", "MediumSpringGreen": "#00FA9A",
"MediumTurquoise": "#48D1CC", "MediumVioletRed": "#C71585", "MidnightBlue": "#191970", "MintCream": "#F5FFFA",
"MistyRose": "#FFE4E1", "Moccasin": "#FFE4B5", "NavajoWhite": "#FFDEAD", "Navy": "#000080",
"OldLace": "#FDF5E6", "Olive": "#808000", "OliveDrab": "#6B8E23", "Orange": "#FFA500", "OrangeRed": "#FF4500",
"Orchid": "#DA70D6", "PaleGoldenRod": "#EEE8AA", "PaleGreen": "#98FB98", "PaleTurquoise": "#AFEEEE",
"PaleVioletRed": "#DB7093", "PapayaWhip": "#FFEFD5", "PeachPuff": "#FFDAB9", "Peru": "#CD853F",
"Pink": "#FFC0CB", "Plum": "#DDA0DD", "PowderBlue": "#B0E0E6", "Purple": "#800080", "Red": "#FF0000",
"RosyBrown": "#BC8F8F", "RoyalBlue": "#4169E1", "SaddleBrown": "#8B4513", "Salmon": "#FA8072",
"SandyBrown": "#F4A460", "SeaGreen": "#2E8B57", "SeaShell": "#FFF5EE", "Sienna": "#A0522D", "Silver": "#C0C0C0",
"SkyBlue": "#87CEEB", "SlateBlue": "#6A5ACD", "SlateGray": "#708090", "Snow": "#FFFAFA",
"SpringGreen": "#00FF7F", "SteelBlue": "#4682B4", "Tan": "#D2B48C", "Teal": "#008080", "Thistle": "#D8BFD8",
"Tomato": "#FF6347", "Turquoise": "#40E0D0", "Violet": "#EE82EE", "Wheat": "#F5DEB3", "White": "#FFFFFF",
"WhiteSmoke": "#F5F5F5", "Yellow": "#FFFF00", "YellowGreen": "#9ACD3",
}
safe_colors = [
'black', 'maroon', 'green', 'navy', 'olive',
'purple', 'teal', 'lime', 'blue', 'silver',
'gray', 'yellow', 'fuchsia', 'aqua', 'white'
]
@classmethod
def color_name(cls):
return cls.random_element(cls.all_colors.keys())
@classmethod
def safe_color_name(cls):
return cls.random_element(cls.safe_colors)
@classmethod
def hex_color(cls):
return "#{0}".format(("%x" % cls.random_int(1, 16777215)).ljust(6, '0'))
@classmethod
def safe_hex_color(cls):
color = ("%x" % cls.random_int(0, 255)).ljust(3, '0')
return "#{0}{0}{1}{1}{2}{2}".format(*color)
@classmethod
def rgb_color_list(cls):
color = cls.hex_color()
return (
int(color[1:3], 16),
int(color[3:5], 16),
int(color[5:7], 16),
)
@classmethod
def rgb_color(cls):
return ','.join(map(str, cls.rgb_color_list()))
@classmethod
def rgb_css_color(cls):
return 'rgb(%s)' % ','.join(map(str, cls.rgb_color_list()))

View file

@ -0,0 +1,24 @@
# coding=utf-8
from __future__ import unicode_literals
from . import BaseProvider
class Provider(BaseProvider):
formats = ['{{last_name}} {{company_suffix}}', ]
company_suffixes = ['Ltd', ]
def company(self):
"""
:example 'Acme Ltd'
"""
pattern = self.random_element(self.formats)
return self.generator.parse(pattern)
@classmethod
def company_suffix(cls):
"""
:example 'Ltd'
"""
return cls.random_element(cls.company_suffixes)

View file

@ -0,0 +1,187 @@
# coding=utf-8
from __future__ import unicode_literals
from . import BaseProvider
from .date_time import Provider as DateTimeProvider
import copy
import re
class CreditCard(object):
valid_characters_pattern = re.compile('^[0-9 ]*$')
def __init__(self, name, prefixes, length=16, security_code='CVC', security_code_length=3):
self.name = name
self.prefixes = prefixes
self.length = length
self.security_code = security_code
self.security_code_length = security_code_length
class Provider(BaseProvider):
visa_prefix_list = [['4', '5', '3', '9'],
['4', '5', '5', '6'],
['4', '9', '1', '6'],
['4', '5', '3', '2'],
['4', '9', '2', '9'],
['4', '0', '2', '4', '0', '0', '7', '1'],
['4', '4', '8', '6'],
['4', '7', '1', '6'],
['4']]
mastercard_prefix_list = [['5', '1'],
['5', '2'],
['5', '3'],
['5', '4'],
['5', '5']]
amex_prefix_list = [['3', '4'],
['3', '7']]
discover_prefix_list = [['6', '0', '1', '1']]
diners_prefix_list = [['3', '0', '0'],
['3', '0', '1'],
['3', '0', '2'],
['3', '0', '3'],
['3', '6'],
['3', '8']]
enroute_prefix_list = [['2', '0', '1', '4'],
['2', '1', '4', '9']]
jcb16_prefix_list = [['3', '0', '8', '8'],
['3', '0', '9', '6'],
['3', '1', '1', '2'],
['3', '1', '5', '8'],
['3', '3', '3', '7'],
['3', '5', '2', '8']]
jcb15_prefix_list = [['2', '1', '0', '0'],
['1', '8', '0', '0']]
voyager_prefix_list = [['8', '6', '9', '9']]
credit_card_types = {
'mastercard': CreditCard('Mastercard', mastercard_prefix_list, 16, 'CVV', 4),
'visa16': CreditCard('VISA 16 digit', visa_prefix_list),
'visa13': CreditCard('VISA 13 digit', visa_prefix_list, 13),
'amex': CreditCard('American Express', amex_prefix_list, 15),
'discover': CreditCard('Discover', discover_prefix_list),
'diners': CreditCard('Diners Club / Carte Blanche', diners_prefix_list, 14),
'enroute': CreditCard('enRoute', enroute_prefix_list, 15),
'jcb15': CreditCard('JCB 15 digit', jcb16_prefix_list, 15),
'jcb16': CreditCard('JCB 16 digit', jcb15_prefix_list),
'voyager': CreditCard('Voyager', voyager_prefix_list, 15),
}
credit_card_types['visa'] = credit_card_types['visa16']
credit_card_types['jcb'] = credit_card_types['jcb16']
@classmethod
def credit_card_provider(cls, card_type=None):
if card_type is None:
card_type = cls.random_element(cls.credit_card_types.keys())
return cls._credit_card_type(card_type).name
@classmethod
def credit_card_number(cls, card_type=None, validate=False, max_check=10):
card = cls._credit_card_type(card_type)
number = ''
for i in range(0, max_check):
number = cls._generate_number(cls.random_element(card.prefixes), card.length)
if not validate or cls._validate_credit_card_number(card, number):
break
return number
@classmethod
def credit_card_expire(cls, start='now', end='+10y', date_format='%m/%y'):
expire_date = DateTimeProvider.date_time_between(start, end)
return expire_date.strftime(date_format)
def credit_card_full(self, card_type=None, validate=False, max_check=10):
card = self._credit_card_type(card_type)
template = """
{provider}
{owner}
{number} {expire_date}
{security}: {security_nb}""".format(
provider=card.name,
owner=self.generator.parse("{{first_name}} {{last_name}}"),
number=self.credit_card_number(card, validate, max_check),
expire_date=self.credit_card_expire(),
security=card.security_code,
security_nb=self.credit_card_security_code(card)
)
return self.generator.parse(template)
@classmethod
def credit_card_security_code(cls, card_type=None):
return cls.random_number(cls._credit_card_type(card_type).security_code_length)
@classmethod
def _credit_card_type(cls, card_type=None):
"""returns a random credit card type instance"""
if card_type is None:
card_type = cls.random_element(cls.credit_card_types.keys())
elif isinstance(card_type, CreditCard):
return card_type
return cls.credit_card_types[card_type]
@classmethod
def _generate_number(cls, prefix, length):
"""
'prefix' is the start of the CC number as a string, any number of digits.
'length' is the length of the CC number to generate. Typically 13 or 16
"""
# add list() to copy prefixes
number = list(prefix)
# generate digits
while len(number) < (length - 1):
number.append(str(cls.random_digit()))
# Calculate sum
tot = 0
pos = 0
reversed_number = []
reversed_number.extend(number)
reversed_number.reverse()
while pos < length - 1:
odd = int(reversed_number[pos]) * 2
if odd > 9:
odd -= 9
tot += odd
if pos != (length - 2):
tot += int(reversed_number[pos+1])
pos += 2
# Calculate check digit
check_digit = ((tot / 10 + 1) * 10 - tot) % 10
number.append(str(check_digit))
return ''.join(number)
@classmethod
def _validate_credit_card_number(cls, card, number):
if card.valid_characters_pattern.match(number) is not None:
return cls._validate_luhn_checksum(number)
return False
@staticmethod
def _validate_luhn_checksum(number_as_string):
""" checks to make sure that the card passes a luhn mod-10 checksum """
number = 0
num_digits = len(number_as_string)
odd_even = num_digits & 1
for i in range(0, num_digits):
digit = int(number_as_string[i])
if not ((i & 1) ^ odd_even):
digit *= 2
if digit > 9:
digit -= 9
number += digit
return (number % 10) == 0

View file

View file

@ -0,0 +1,190 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_formats = ('{{city_name}}', )
street_name_formats = ('{{street_name}}', )
street_address_formats = ('{{street_name}} {{building_number}}', )
address_formats = ('{{street_address}}\n{{postcode}} {{city}}', )
building_number_formats = ('###', '##', '#', '#/#')
street_suffixes_long = ('náměstí', )
street_suffixes_short = ('nám.', )
postcode_formats = ('### ##', )
cities = (
'Abertamy', 'Adamov', 'Andělská Hora', 'Bakov nad Jizerou', 'Bavorov', 'Bechyně', 'Benešov nad Ploučnicí',
'Benátky nad Jizerou', 'Bezdružice', 'Bečov nad Teplou', 'Blatná', 'Blovice', 'Blšany', 'Bochov',
'Bohušovice nad Ohří', 'Bojkovice', 'Bor', 'Borohrádek', 'Borovany', 'Boží Dar', 'Brandýs nad Orlicí', 'Brno',
'Broumov', 'Brtnice', 'Brumov-Bylnice', 'Brušperk', 'Budišov nad Budišovkou', 'Budyně nad Ohří', 'Bučovice',
'Buštěhrad', 'Bystré', 'Bystřice', 'Bystřice nad Pernštejnem', 'Bystřice pod Hostýnem', 'Bzenec', 'Bílovec',
'Bělá nad Radbuzou', 'Bělá pod Bezdězem', 'Březnice', 'Březová', 'Březová nad Svitavou', 'Břidličná',
'Chabařovice', 'Chlumec', 'Chlumec nad Cidlinou', 'Choceň', 'Chomutov', 'Chotěboř', 'Chrast', 'Chrastava',
'Chropyně', 'Chvaletice', 'Chyše', 'Chýnov', 'Chřibská', 'Cvikov', 'Dačice', 'Dašice', 'Desná', 'Deštná',
'Dobrovice', 'Dobruška', 'Dobřany', 'Dobřichovice', 'Dobříš', 'Doksy', 'Dolní Benešov', 'Dolní Bousov',
'Dolní Kounice', 'Dolní Poustevna', 'Dubá', 'Dubí', 'Dubňany', 'Duchcov', 'Děčín', 'Františkovy Lázně',
'Fryšták', 'Frýdek-Místek', 'Frýdlant', 'Frýdlant nad Ostravicí', 'Fulnek', 'Golčův Jeníkov', 'Habartov',
'Habry', 'Hanušovice', 'Harrachov', 'Hartmanice', 'Havířov', 'Hejnice', 'Heřmanův Městec', 'Hlinsko',
'Hluboká nad Vltavou', 'Hluk', 'Hodkovice nad Mohelkou', 'Holice', 'Holýšov', 'Hora Svaté Kateřiny', 'Horažďovice',
'Horní Benešov', 'Horní Blatná', 'Horní Bříza', 'Horní Cerekev', 'Horní Jelení', 'Horní Jiřetín', 'Horní Planá',
'Horní Slavkov', 'Horšovský Týn', 'Hostinné', 'Hostivice', 'Hostomice', 'Hostouň', 'Hořice', 'Hořovice', 'Hoštka',
'Hradec Králové', 'Hradec nad Moravicí', 'Hranice (okres Cheb)', 'Hrob', 'Hrochův Týnec', 'Hronov', 'Hrotovice',
'Hroznětín', 'Hrušovany nad Jevišovkou', 'Hrádek', 'Hrádek nad Nisou', 'Hulín', 'Husinec', 'Hustopeče',
'Ivanovice na Hané', 'Ivančice', 'Jablonec nad Jizerou', 'Jablonec nad Nisou', 'Jablonné nad Orlicí',
'Jablonné v Podještědí', 'Jablunkov', 'Janov', 'Janovice nad Úhlavou', 'Janské Lázně', 'Jaroměřice nad Rokytnou',
'Javorník', 'Jemnice', 'Jesenice (okres Rakovník)', 'Jevišovice', 'Jevíčko', 'Jihlava', 'Jilemnice', 'Jistebnice',
'Jiříkov', 'Jáchymov', 'Jílové', 'Jílové u Prahy', 'Kamenice nad Lipou', 'Kamenický Šenov', 'Kaplice', 'Kardašova Řečice',
'Karlovy Vary', 'Karolinka', 'Karviná', 'Kasejovice', 'Kaznějov', 'Kašperské Hory', 'Kdyně', 'Kelč', 'Kladno', 'Kladruby',
'Klecany', 'Klimkovice', 'Klobouky u Brna', 'Kojetín', 'Konice', 'Kopidlno', 'Koryčany', 'Kosmonosy',
'Kostelec na Hané', 'Kostelec nad Labem', 'Kostelec nad Orlicí', 'Kostelec nad Černými lesy', 'Kouřim', 'Košťany',
'Kožlany', 'Kralovice', 'Kraslice', 'Kravaře', 'Kryry', 'Králíky', 'Králův Dvůr', 'Krásno', 'Krásná Hora nad Vltavou',
'Krásná Lípa', 'Krásné Údolí', 'Kunovice', 'Kunštát', 'Kynšperk nad Ohří', 'Lanžhot', 'Ledeč nad Sázavou', 'Ledvice',
'Letohrad', 'Letovice', 'Liberec', 'Libochovice', 'Libušín', 'Libáň', 'Libčice nad Vltavou', 'Liběchov', 'Lipník nad Bečvou',
'Litovel', 'Lišov', 'Loket', 'Lom', 'Lomnice nad Lužnicí', 'Lomnice nad Popelkou', 'Loučná pod Klínovcem',
'Lovosice', 'Loštice', 'Luby', 'Luhačovice', 'Lučany nad Nisou', 'Luže', 'Lysá nad Labem', 'Lázně Bohdaneč', 'Lázně Bělohrad',
'Lázně Kynžvart', 'Manětín', 'Mašťov', 'Meziboří', 'Meziměstí', 'Mikulov', 'Mikulášovice', 'Miletín', 'Milevsko',
'Milovice', 'Mimoň', 'Miroslav', 'Mirotice', 'Mirovice', 'Mirošov', 'Mladá Boleslav', 'Mladá Vožice', 'Mnichovice',
'Mnichovo Hradiště', 'Mníšek pod Brdy', 'Modřice', 'Mohelnice', 'Moravské Budějovice', 'Moravský Beroun', 'Moravský Krumlov',
'Morkovice-Slížany', 'Most', 'Mýto', 'Městec Králové', 'Město Albrechtice', 'Město Touškov', 'Měčín', 'Mšeno', 'Nalžovské Hory',
'Napajedla', 'Nasavrky', 'Nechanice', 'Nejdek', 'Nepomuk', 'Netolice', 'Neveklov', 'Nová Bystřice', 'Nová Paka',
'Nová Role', 'Nová Včelnice', 'Nové Hrady', 'Nové Město nad Metují', 'Nové Město pod Smrkem', 'Nové Sedlo',
'Nové Strašecí', 'Nový Bydžov', 'Nový Knín', 'Náměšť nad Oslavou', 'Nýrsko', 'Nýřany', 'Němčice nad Hanou',
'Odolena Voda', 'Odry', 'Olešnice', 'Olomouc', 'Oloví', 'Opava', 'Opočno', 'Osek', 'Osečná', 'Oslavany', 'Ostrava',
'Pacov', 'Pardubice', 'Paskov', 'Pec pod Sněžkou', 'Petřvald', 'Pečky', 'Pilníkov', 'Planá', 'Planá nad Lužnicí', 'Plasy',
'Plesná', 'Plumlov', 'Plzeň', 'Plánice', 'Poběžovice', 'Podbořany', 'Podivín', 'Pohořelice', 'Police nad Metují',
'Polička', 'Polná', 'Postoloprty', 'Potštát', 'Počátky', 'Praha', 'Proseč', 'Prostějov', 'Protivín', 'Pyšely',
'Přebuz', 'Přelouč', 'Přerov', 'Přeštice', 'Přibyslav', 'Přimda', 'Příbor', 'Rabí', 'Radnice', 'Rajhrad', 'Ralsko',
'Raspenava', 'Rejštejn', 'Rokytnice nad Jizerou', 'Rokytnice v Orlických horách', 'Ronov nad Doubravou', 'Rosice',
'Rotava', 'Rousínov', 'Rovensko pod Troskami', 'Roztoky', 'Rožmberk nad Vltavou', 'Rožmitál pod Třemšínem', 'Rožďalovice',
'Rtyně v Podkrkonoší', 'Rudná', 'Rudolfov', 'Rychnov u Jablonce nad Nisou', 'Rychvald', 'Rájec-Jestřebí', 'Rýmařov',
'Sadská', 'Sedlec-Prčice', 'Sedlice', 'Sedlčany', 'Semily', 'Sezemice', 'Sezimovo Ústí', 'Seč', 'Skalná', 'Skuteč',
'Slatiňany', 'Slavičín', 'Slavkov u Brna', 'Slavonice', 'Slušovice', 'Smečno', 'Smiřice', 'Smržovka', 'Sobotka',
'Soběslav', 'Solnice', 'Spálené Poříčí', 'Staré Město (okres Uherské Hradiště)', 'Staré Město (okres Šumperk)',
'Starý Plzenec', 'Staňkov', 'Stochov', 'Stod', 'Strmilov', 'Stráž nad Nežárkou', 'Stráž pod Ralskem', 'Strážnice',
'Strážov', 'Studénka', 'Stárkov', 'Stříbro', 'Suchdol nad Lužnicí', 'Svoboda nad Úpou', 'Svratka', 'Světlá nad Sázavou',
'Sázava', 'Tanvald', 'Telč', 'Teplice', 'Teplice nad Metují', 'Teplá', 'Terezín', 'Tišnov', 'Toužim', 'Tovačov', 'Trhové Sviny',
'Trhový Štěpánov', 'Trmice', 'Týn nad Vltavou', 'Týnec nad Labem', 'Týnec nad Sázavou', 'Týniště nad Orlicí', 'Třebechovice pod Orebem',
'Třebenice', 'Třeboň', 'Třemošnice', 'Třemošná', 'Třešť', 'Uherský Ostroh', 'Uhlířské Janovice', 'Unhošť',
'Valašské Klobouky', 'Valtice', 'Vamberk', 'Vejprty', 'Velešín', 'Velká Bystřice', 'Velká Bíteš', 'Velké Bílovice',
'Velké Hamry', 'Velké Opatovice', 'Velké Pavlovice', 'Velký Šenov', 'Veltrusy', 'Velvary', 'Verneřice', 'Veselí nad Lužnicí',
'Vidnava', 'Vimperk', 'Vizovice', 'Vlachovo Březí', 'Vodňany', 'Volary', 'Volyně', 'Votice', 'Vracov', 'Vratimov', 'Vrbno pod Pradědem',
'Vroutek', 'Vysoké Veselí', 'Vysoké nad Jizerou', 'Vyšší Brod', 'Vítkov', 'Výsluní', 'Všeruby', 'Zbiroh', 'Zbýšov', 'Zdice', 'Zlaté Hory',
'Zliv', 'Zlín', 'Zruč nad Sázavou', 'Zubří', 'Zákupy', 'Zásmuky', 'Újezd u Brna', 'Úpice', 'Úsov', 'Ústí nad Labem',
'Úterý', 'Úvaly', 'Úštěk', 'Černovice', 'Černošice', 'Černošín', 'Červená Řečice', 'Červený Kostelec', 'Česká Kamenice', 'Česká Skalice',
'České Budějovice', 'České Velenice', 'Český Brod', 'Český Dub', 'Řevnice', 'Šenov', 'Šlapanice', 'Šluknov', 'Špindlerův Mlýn', 'Štramberk',
'Štíty', 'Štětí', 'Švihov', 'Žacléř', 'Žamberk', 'Žandov', 'Ždánice', 'Ždírec nad Doubravou', 'Žebrák', 'Železnice', 'Železná Ruda', 'Železný Brod',
'Židlochovice', 'Žirovnice', 'Žlutice', 'Žulová'
)
streets = (
'Horní Stromky', 'Vizovická', 'K Brusce', 'Mírová', 'Rašínská', 'Boušova', 'Pobřežní', 'Dolnobřežanská', 'Černá',
'Šůrova', 'Červenkova', 'Nad Mostem', 'Libuňská', 'Chotovická', 'Petříkova', 'Pod Vodárenskou Věží', 'Na Fišerce',
'Ke Březině', 'Za Lázeňkou', 'Nad Šafránkou', 'Na Laurové', 'Nám. Republiky', 'Vlašimská', 'Nad Rohatci', 'Tylišovská',
'Nábřeží Kapitána Jaroše', 'Lešovská', 'U Podjezdu', 'Průškova', 'Estonská', 'Máslova', 'K Otočce', 'Jižní', 'Švecova',
'Mongolská', 'Kalská', 'Nad Rokytkou', 'Malešovská', 'Plzeňská', 'V Hájkách', 'Úpská', 'Ambrožova', 'Pikovická',
'Neužilova', 'Na Staré Vinici', 'Vstupní', 'Nýdecká', 'U Společenské Zahrady', 'Ostrovského', 'Bazovského', 'Lešenská',
'Na Štamberku', 'Na Svahu', 'Výhledské Nám.', 'K Lipám', 'Za Stadionem', 'Opletalova', 'Nábřeží Ludvíka Svobody', 'Komenského Nám.',
'Křimická', 'Domkovská', 'Pyšelská', 'Štychova', 'Horákova', 'Nad Zavážkou', 'K Prelátům', 'Vašátkova', 'Benákova', 'Náměstí Prezidenta Masaryka',
'Mílovská', 'U Hostivařského Nádraží', 'Jihovýchodní I', 'Hostivařské Nám.', 'Zbynická', 'Heineho', 'U Dobešky',
'Doubická', 'Ke Břvům', 'Na Záhonech', 'Kloboukova', 'Kostnické Náměstí', 'Pelclova', 'Smotlachova', 'Pod Spiritkou',
'Hůlkova', 'Matenská', 'Do Zahrádek Ii', 'Dobrošovská', 'Lovčenská', 'Jasná I', 'Škrétova', 'Moravanů', 'Budapešťská',
'Kojetická', 'Náměstí I. P. Pavlova', 'Bajkalská', 'U Větrolamu', 'Vlčická', 'Jarešova', 'Sámova', 'Kotrčová', 'Musílkova', 'Ingrišova',
'U Nových Domů I', 'Dělostřelecká', 'Ke Hrázi', 'Mochovská', 'Rýmařovská', 'Dolní Chaloupky', 'Za Arielem', 'U Rajské Zahrady', 'K Šedivce',
'Březová', 'Doubravínova', 'Mládkova', 'Tachovské Náměstí', 'Lehárova', 'Severní X', 'V Tehovičkách', 'Bermanova', 'Grammova', 'Spojovací', 'Verdunská',
'Závrchy', 'Čerpadlová', 'Vítězná', 'Nad Plynovodem', 'U Smíchovského Hřbitova', 'Nedvědovo Náměstí', 'Bachova', 'U Dálnice', 'Všejanská', 'Maňákova', 'Rokytnická',
'Loděnická', 'U Pumpy', 'Michnova', 'Záblatská', 'Poslední', 'Hněvkovského', 'Za Křížem', 'Nad Návsí', 'Jablonecká', 'Súdánská', 'Mazancova', 'Pod Čertovou Skalou',
'Weilova', 'Čajkovského', 'Nad Zátiším', 'Moldavská', 'Juarézova', 'Žižkova', 'Pod Lochkovem', 'Nad Vernerákem', 'Žherská', 'Prusíkova', 'Výtoňská', 'Na Srážku',
'Šachovská', 'Nučická', 'Novákovo Náměstí', 'Sitteho', 'U Vápenice', 'Na Kuthence', 'Čelakovského Sady', 'V Závitu', 'Na Vartě', 'Oválová', 'Machovická',
'Nad Olšinami', 'Vajgarská', 'Kulhavého', 'Kodaňská', 'Kralupská', 'Lednická', 'Pod Velkým Hájem', 'Hvězdonická', 'Na Kozinci', 'Semická', 'K Dálnici',
'Trytova', 'Vyhlídkova', 'Pohnertova', 'U Nového Dvora', 'K Vodě', 'Nad Libří', 'K Matěji', 'V Kotcích', 'Kohoutových', 'Na Cikánce', 'Chládkova',
'Slatiňanská', 'Pod Kostelem', 'Na Spojce', 'Na Zahrádkách', 'Nad Obcí', 'K Přehradám', 'Na Náspu', 'V Nížinách', 'Josefa Houdka',
'Na Pěšině', 'Hnězdenská', 'Za Statky', 'Kremnická', 'Čestmírova', 'U Rakovky', 'Kodicilova', 'K Lučinám', 'Nouzov', 'Krátký Lán',
'Anny Drabíkové', 'Kadaňská', 'Stroupežnického', 'Jírova', 'U Dětského Hřiště', 'Žofie Podlipské', 'Nad Šancemi', 'Lošáková',
'Roblínská', 'Mezi Sklady', 'Na Pomezí', 'U Mlýnského Rybníka', 'Makedonská', 'K Dýmači', 'V Zátiší', 'Pohořelec',
'Jiřinková', 'U Nové Dálnice', 'Čuprova', 'Vraňanská', 'Severovýchodní Vi', 'Petřínská', 'K Hořavce', 'Sádovská', 'Pod Průsekem',
'Konžská', 'Dřítenská', 'Pirinská', 'U Hřiště', 'Kukelská', 'Moravanská', 'Koclířova', 'Žilinská', 'Ve Žlíbku', 'Veronské Nám.',
'U Větrníku', 'Svojsíkova', 'Izraelská', 'Staňkovka', 'Na Viničních Horách', 'Čankovská', 'Na Špitálce', 'Valdovská', 'Rudoltická',
'Ke Strašnické', 'Paťanka', 'Panuškova', 'Pankrácké Nám.', 'Budčická', 'Šermířská', 'Medlovská', 'K Vidouli', 'Horní Chaloupky', 'V Americe',
'Dejvická', 'Klášterecká', 'Šárovo Kolo', 'Mladoboleslavská', 'Palackého', 'Lumiérů', 'Ivančická', 'Za Valem', 'Na Břevnovské Pláni',
'Tichonická', 'Náměstí Hrdinů', 'Mistřínská', 'Křížkovského', 'Tanvaldská', 'V Padolině', 'Před Skalkami Ii', 'Na Křivce',
'Nad Zámečkem', 'Nad Krocínkou', 'Podlešínská', 'Nad Popelkou', 'Oderská', 'Jeruzalémská', 'Smolenská', 'Lebeděvova', 'Libichovská',
'Na Šafránce', 'Průjezdná', 'Záluské', 'Branišovská', 'Spinozova', 'K Betáni', 'Machuldova', 'Podohradská', 'Cerhenická', 'V Brůdku',
'U Vlachovky', 'Pod Letištěm', 'Vlastislavova', 'Klecanská', 'Žinkovská', 'Maltézské Náměstí', 'Boršov', 'Mukařovského',
'Josefa Šimůnka', 'Suchdolská', 'Opočínská', 'Heydukova', 'Vršovka', 'Thurnova', 'Mezilesní', 'Za Pivovarem', 'Uljanovská', 'Panenská',
'Sladovnická', 'Plynární', 'Kozácká', 'Vlasákova', 'Javornická', 'Ševčíkova', 'Podle Náhonu', 'Doubravická', 'Františka Černého',
'Chotětovská', 'K Háječku', 'Pod Výšinkou', 'U Šesté Baterie', 'Drahanská', 'Augustova', 'U Balabenky', 'Boční I', 'Jirčanská',
'Na Šubě', 'Brixiho', 'Klímova', 'Kazín', 'Fügnerovo Náměstí', 'Na Příčné Mezi', 'Plánická', 'Africká', 'Vratislavova', 'Olympijská',
'Na Bojišti', 'K Nádrži', 'Vokrojova', 'Bořetínská', 'Kováříkova', 'Lánovská', 'U Staré Pošty', 'Na Poustkách', 'V Poli', 'Meziškolská',
'Pajerova', 'Habartovská', 'Mlékárenská', 'Dělnická', 'U Štěpu', 'Družná', 'Klouzková', 'Před Rybníkem', 'Nad Košinkou', 'Spolupráce',
'V Humenci', 'Adélčina', 'Březanova', 'Pod Kesnerkou', 'Kosmonoská', 'Do Dubin', 'Nad Lávkou', 'Mezi Lysinami', 'Na Topolce', 'Snopkova',
'Severní Viii', 'Okrová', 'Třebihošťská', 'Mádrova', 'Na Lázeňce', 'Slivenecká', 'Nám. Barikád', 'Nad Strouhou', 'Jindřicha Plachty',
'Pod Srázem', 'U Waltrovky', 'Bratří Čapků', 'Onšovecká', 'Machnova', 'Kostková', 'Rožmberská', 'Zapských', 'Přípřežní', 'Výravská',
'Podléšková', 'Štěchovická', 'Poleradská', 'Jilmová', 'Hostýnská'
)
states = (
'Hlavní město Praha',
'Středočeský kraj',
'Jihočeský kraj',
'Plzeňský kraj',
'Karlovarský kraj',
'Ústecký kraj',
'Liberecký kraj',
'Královéhradecký kraj',
'Pardubický kraj',
'Kraj Vysočina',
'Jihomoravský kraj',
'Olomoucký kraj',
'Moravskoslezský kraj',
'Zlínský kraj',
)
countries = (
'Afghánistán', 'Albánie', 'Alžírsko', 'Andorra', 'Angola', 'Antigua a Barbuda', 'Argentina', 'Arménie', 'Austrálie',
'Bahamy', 'Bahrajn', 'Bangladéš', 'Barbados', 'Belgie', 'Belize', 'Benin', 'Bhútán', 'Bolívie', 'Bosna a Hercegovina',
'Botswana', 'Brazílie', 'Brunej', 'Bulharsko', 'Burkina Faso', 'Burundi', 'Bělorusko', 'Chile', 'Chorvatsko',
'Cookovy ostrovy', 'Demokratická republika Kongo', 'Dominika', 'Dominikánská republika', 'Dánsko', 'Džibutsko',
'Egypt', 'Ekvádor', 'Eritrea', 'Estonsko', 'Etiopie', 'Federativní státy Mikronésie', 'Fidži', 'Filipíny', 'Finsko',
'Francie', 'Gabon', 'Gambie', 'Ghana', 'Gruzie', 'Guatemala', 'Guinea', 'Guinea-Bissau', 'Guyana', 'Haiti', 'Honduras',
'Indie', 'Irsko', 'Irák', 'Island', 'Itálie', 'Izrael', 'Jamajka', 'Japonsko', 'Jemen', 'Jihoafrická republika',
'Jižní Súdán', 'Jordánsko', 'Kambodža', 'Kamerun', 'Kanada', 'Kapverdy', 'Katar', 'Kazachstán', 'Keňa', 'Kiribati',
'Kolumbie', 'Kostarika', 'Kuba', 'Kypr', 'Kyrgyzstán', 'Laos', 'Lesotho', 'Libanon', 'Libye', 'Lichtenštejnsko',
'Litva', 'Lotyšsko', 'Lucembursko', 'Madagaskar', 'Makedonie', 'Malajsie', 'Malawi', 'Maledivy', 'Mali', 'Malta',
'Maroko', 'Marshallovy ostrovy', 'Mauricius', 'Mauritánie', 'Maďarsko', 'Mexiko', 'Moldavsko', 'Monako', 'Mongolsko',
'Mosambik', 'Myanmar', 'Namibie', 'Nauru', 'Nepál', 'Niger', 'Nigérie', 'Nikaragua', 'Niue', 'Nizozemsko', 'Norsko',
'Nový Zéland', 'Německo', 'Omán', 'Palau', 'Panama', 'Papua-Nová Guinea', 'Paraguay', 'Peru', 'Pobřeží slonoviny',
'Polsko', 'Portugalsko', 'Pákistán', 'Rakousko', 'Republika Kongo', 'Rovníková Guinea', 'Rumunsko', 'Rusko',
'Rwanda', 'Salvador', 'Samoa', 'San Marino', 'Saúdská Arábie', 'Senegal', 'Severní Korea', 'Seychely', 'Sierra Leone',
'Singapur', 'Slovensko', 'Slovinsko', 'Somálsko', 'Spojené arabské emiráty', 'Spojené království', 'Spojené státy americké',
'Srbsko', 'Středoafrická republika', 'Surinam', 'Svatá Lucie', 'Svatý Kryštof a Nevis', 'Svatý Tomáš a Princův ostrov',
'Svatý Vincenc a Grenadiny', 'Svazijsko', 'Súdán', 'Sýrie', 'Tanzanie', 'Thajsko', 'Togo', 'Tonga', 'Trinidad a Tobago',
'Tunisko', 'Turecko', 'Turkmenistán', 'Tuvalu', 'Tádžikistán', 'Uganda', 'Ukrajina', 'Uruguay', 'Uzbekistán', 'Vanuatu',
'Vatikán', 'Venezuela', 'Vietnam', 'Východní Timor', 'Zambie', 'Zimbabwe', 'Ázerbájdžán', 'Írán', 'Čad', 'Černá Hora',
'Česko', 'Čína', 'Řecko', 'Šalamounovy ostrovy', 'Španělsko', 'Srí Lanka', 'Švédsko', 'Švýcarsko'
)
@classmethod
def street_suffix_short(cls):
return cls.random_element(cls.street_suffixes_short)
@classmethod
def street_suffix_long(cls):
return cls.random_element(cls.street_suffixes_long)
@classmethod
def city_name(cls):
return cls.random_element(cls.cities)
@classmethod
def street_name(cls):
return cls.random_element(cls.streets)
@classmethod
def state(cls):
return cls.random_element(cls.states)

View file

@ -0,0 +1,14 @@
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}} {{last_name}} {{company_suffix}}',
'{{last_name}}',
)
company_suffixes = (
's.r.o.', 'o.s.', 'a.s.',
)

View file

@ -0,0 +1,27 @@
# coding=utf-8
from __future__ import unicode_literals
from ..internet import Provider as InternetProvider
class Provider(InternetProvider):
user_name_formats = (
'{{last_name_female}}.{{first_name_female}}',
'{{last_name_female}}.{{first_name_female}}',
'{{last_name_male}}.{{first_name_male}}',
'{{last_name_male}}.{{first_name_male}}',
'{{first_name_female}}.{{last_name_female}}',
'{{first_name_male}}.{{last_name_male}}',
'{{first_name}}##',
'?{{last_name}}',
'?{{last_name}}',
'?{{last_name}}',
)
email_formats = ('{{user_name}}@{{free_email_domain}}', )
free_email_domains = (
'seznam.cz', 'gmail.com', 'email.cz', 'post.cz', 'chello.cz', 'centrum.cz', 'volny.cz',
)
tlds = ('cz', 'com', 'cz')

View file

@ -0,0 +1,113 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{prefix_male}} {{first_name_male}} {{last_name_male}}',
'{{prefix_female}} {{first_name_female}} {{last_name_female}}',
'{{first_name_male}} {{last_name_male}} {{suffix}}',
'{{first_name_female}} {{last_name_female}} {{suffix}}',
'{{prefix_male}} {{first_name_male}} {{last_name_male}} {{suffix}}',
'{{prefix_female}} {{first_name_female}} {{last_name_female}} {{suffix}}'
)
first_names_male = (
'Adam', 'Alexander', 'Alexandr', 'Aleš', 'Alois', 'Antonín', 'Arnošt', 'Bedřich', 'Bohumil', 'Bohumír',
'Bohuslav', 'Břetislav', 'Dalibor', 'Daniel', 'David', 'Denis', 'Dominik', 'Dušan', 'Eduard', 'Emil',
'Erik', 'Filip', 'František', 'Hynek', 'Igor', 'Ivan', 'Ivo', 'Jakub', 'Jan', 'Jaromír', 'Jaroslav',
'Jindřich', 'Jiří', 'Josef', 'Jozef', 'Ján', 'Kamil', 'Karel', 'Kryštof', 'Ladislav', 'Leoš', 'Libor',
'Lubomír', 'Luboš', 'Ludvík', 'Luděk', 'Lukáš', 'Marcel', 'Marek', 'Marian', 'Martin', 'Matyáš', 'Matěj',
'Michael', 'Michal', 'Milan', 'Miloslav', 'Miloš', 'Miroslav', 'Oldřich', 'Ondřej', 'Otakar', 'Patrik', 'Pavel',
'Peter', 'Petr', 'Přemysl', 'Radek', 'Radim', 'Radomír', 'Radovan', 'René', 'Richard', 'Robert', 'Robin', 'Roman',
'Rostislav', 'Rudolf', 'Samuel', 'Stanislav', 'Tadeáš', 'Tomáš', 'Vasyl', 'Viktor', 'Vilém', 'Vladimír', 'Vladislav',
'Vlastimil', 'Vojtěch', 'Vratislav', 'Václav', 'Vít', 'Vítězslav', 'Zbyněk', 'Zdeněk', 'Šimon', 'Štefan', 'Štěpán'
)
first_names_female = (
'Adéla', 'Alena', 'Alexandra', 'Alice', 'Alžběta', 'Andrea', 'Aneta', 'Anežka', 'Anna', 'Barbora', 'Blanka', 'Blažena',
'Bohumila', 'Božena', 'Dagmar', 'Dana', 'Daniela', 'Danuše', 'Denisa', 'Dominika', 'Drahomíra', 'Eliška', 'Emilie',
'Eva', 'Františka', 'Gabriela', 'Hana', 'Helena', 'Ilona', 'Irena', 'Iva', 'Ivana', 'Iveta', 'Jana', 'Jarmila',
'Jaroslava', 'Jindřiška', 'Jitka', 'Jiřina', 'Julie', 'Kamila', 'Karolína', 'Kateřina', 'Klára', 'Kristina', 'Kristýna',
'Květa', 'Květoslava', 'Ladislava', 'Lenka', 'Libuše', 'Lucie', 'Ludmila', 'Magdalena', 'Magdaléna', 'Marcela',
'Marie', 'Markéta', 'Marta', 'Martina', 'Michaela', 'Milada', 'Milena', 'Miloslava', 'Miluše', 'Miroslava', 'Monika',
'Mária', 'Naděžda', 'Natálie', 'Nela', 'Nikol', 'Nikola', 'Olga', 'Pavla', 'Pavlína', 'Petra', 'Radka', 'Renata',
'Renáta', 'Romana', 'Růžena', 'Sabina', 'Simona', 'Soňa', 'Stanislava', 'Sára', 'Tereza', 'Vendula', 'Veronika',
'Viktorie', 'Vladimíra', 'Vlasta', 'Věra', 'Zdenka', 'Zdeňka', 'Zuzana', 'Štěpánka', 'Šárka', 'Žaneta'
)
last_names_male = (
'Bartoš', 'Beneš', 'Blažek', 'Bláha', 'Doležal', 'Dušek', 'Dvořák', 'Fiala', 'Holub', 'Horák', 'Hájek', 'Jelínek',
'Kadlec', 'Kolář', 'Kopecký', 'Kratochvíl', 'Krejčí', 'Král', 'Kučera', 'Kříž', 'Malý', 'Marek', 'Mareš', 'Mašek',
'Moravec', 'Novotný', 'Novák', 'Němec', 'Pokorný', 'Polák', 'Pospíšil', 'Procházka', 'Růžička', 'Sedláček', 'Soukup',
'Svoboda', 'Urban', 'Vaněk', 'Veselý', 'Vlček', 'Zeman', 'Čermák', 'Černý', 'Říha', 'Šimek', 'Štěpánek', 'Šťastný'
)
last_names_female = (
'Bartošová', 'Benešová', 'Beranová', 'Blažková', 'Bláhová', 'Doležalová', 'Dušková', 'Dvořáková', 'Fialová', 'Holubová',
'Horáková', 'Hájková', 'Jandová', 'Jelínková', 'Kadlecová', 'Kolářová', 'Kopecká', 'Kratochvílová', 'Krejčová',
'Králová', 'Kučerová', 'Křížová', 'Machová', 'Malá', 'Marešová', 'Marková', 'Mašková', 'Moravcová', 'Novotná',
'Nováková', 'Němcová', 'Pokorná', 'Poláková', 'Pospíšilová', 'Procházková', 'Růžičková', 'Sedláčková', 'Soukupová',
'Svobodová', 'Tichá', 'Urbanová', 'Vacková', 'Vaňková', 'Veselá', 'Vlčková', 'Vávrová', 'Zemanová', 'Čermáková',
'Černá', 'Říhová', 'Šimková', 'Štěpánková', 'Šťastná'
)
degrees = ('JUDr.', 'Ing.', 'Bc.', 'Mgr.', 'MUDr.', 'RNDr.' )
prefixes_male = ('pan', ) + degrees
prefixes_female = ('paní', 'slečna', ) + degrees
suffixes = ('CSc.', 'DiS.', 'Ph.D.', 'Th.D.')
@classmethod
def first_name(cls):
return cls.random_element((cls.first_name_male(), cls.first_name_female()))
@classmethod
def last_name(cls):
return cls.random_element((cls.last_name_male(), cls.last_name_female()))
@classmethod
def first_name_male(cls):
return cls.random_element(cls.first_names_male)
@classmethod
def first_name_female(cls):
return cls.random_element(cls.first_names_female)
@classmethod
def last_name_male(cls):
return cls.random_element(cls.last_names_male)
@classmethod
def last_name_female(cls):
return cls.random_element(cls.last_names_female)
@classmethod
def prefix(cls):
return cls.random_element((cls.prefix_male(), cls.prefix_female()))
@classmethod
def prefix_male(cls):
return cls.random_element(cls.prefixes_male)
@classmethod
def prefix_female(cls):
return cls.random_element(cls.prefixes_female)
@classmethod
def suffix(cls):
return cls.random_element(cls.suffixes)

View file

@ -0,0 +1,42 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'601 ### ###',
'603 ### ###',
'608 ### ###',
'790 ### ###',
'602 ### ###',
'604 ### ###',
'770 ### ###',
'606 ### ###',
'605 ### ###',
'773 ### ###',
'607 ### ###',
'730 ### ###',
'774 ### ###',
'702 ### ###',
'731 ### ###',
'775 ### ###',
'720 ### ###',
'732 ### ###',
'776 ### ###',
'721 ### ###',
'733 ### ###',
'777 ### ###',
'722 ### ###',
'734 ### ###',
'723 ### ###',
'736 ### ###',
'724 ### ###',
'737 ### ###',
'725 ### ###',
'738 ### ###',
'726 ### ###',
'739 ### ###',
'727 ### ###',
'728 ### ###',
'729 ### ###',
)

View file

@ -0,0 +1,384 @@
# coding=utf-8
from __future__ import unicode_literals
from . import BaseProvider
import random
import re
from time import time, mktime
from datetime import timedelta, datetime
from faker.utils.datetime_safe import date, datetime, real_date, real_datetime
from faker.utils import is_string
def datetime_to_timestamp(dt):
return mktime(dt.timetuple())
timedelta_pattern = r''
for name, sym in [('years', 'y'), ('weeks', 'w'), ('days', 'd'), ('hours', 'h'), ('minutes', 'm'), ('seconds', 's')]:
timedelta_pattern += r'((?P<{0}>(?:\+|-)\d+?){1})?'.format(name, sym)
class Provider(BaseProvider):
centuries = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X', 'XI', 'XII', 'XIII', 'XIV', 'XV', 'XVI',
'XVII', 'XVIII', 'XIX', 'XX', 'XXI']
countries = [
{'timezones': ['Europe/Andorra'], 'code': 'AD', 'continent': 'Europe', 'name': 'Andorra', 'capital': 'Andorra la Vella'},
{'timezones': ['Asia/Kabul'], 'code': 'AF', 'continent': 'Asia', 'name': 'Afghanistan', 'capital': 'Kabul'},
{'timezones': ['America/Antigua'], 'code': 'AG', 'continent': 'North America', 'name': 'Antigua and Barbuda', 'capital': "St. John's"},
{'timezones': ['Europe/Tirane'], 'code': 'AL', 'continent': 'Europe', 'name': 'Albania', 'capital': 'Tirana'},
{'timezones': ['Asia/Yerevan'], 'code': 'AM', 'continent': 'Asia', 'name': 'Armenia', 'capital': 'Yerevan'},
{'timezones': ['Africa/Luanda'], 'code': 'AO', 'continent': 'Africa', 'name': 'Angola', 'capital': 'Luanda'},
{'timezones': ['America/Argentina/Buenos_Aires', 'America/Argentina/Cordoba', 'America/Argentina/Jujuy', 'America/Argentina/Tucuman', 'America/Argentina/Catamarca', 'America/Argentina/La_Rioja', 'America/Argentina/San_Juan', 'America/Argentina/Mendoza', 'America/Argentina/Rio_Gallegos', 'America/Argentina/Ushuaia'], 'code': 'AR', 'continent': 'South America', 'name': 'Argentina', 'capital': 'Buenos Aires'},
{'timezones': ['Europe/Vienna'], 'code': 'AT', 'continent': 'Europe', 'name': 'Austria', 'capital': 'Vienna'},
{'timezones': ['Australia/Lord_Howe', 'Australia/Hobart', 'Australia/Currie', 'Australia/Melbourne', 'Australia/Sydney', 'Australia/Broken_Hill', 'Australia/Brisbane', 'Australia/Lindeman', 'Australia/Adelaide', 'Australia/Darwin', 'Australia/Perth'], 'code': 'AU', 'continent': 'Oceania', 'name': 'Australia', 'capital': 'Canberra'},
{'timezones': ['Asia/Baku'], 'code': 'AZ', 'continent': 'Asia', 'name': 'Azerbaijan', 'capital': 'Baku'},
{'timezones': ['America/Barbados'], 'code': 'BB', 'continent': 'North America', 'name': 'Barbados', 'capital': 'Bridgetown'},
{'timezones': ['Asia/Dhaka'], 'code': 'BD', 'continent': 'Asia', 'name': 'Bangladesh', 'capital': 'Dhaka'},
{'timezones': ['Europe/Brussels'], 'code': 'BE', 'continent': 'Europe', 'name': 'Belgium', 'capital': 'Brussels'},
{'timezones': ['Africa/Ouagadougou'], 'code': 'BF', 'continent': 'Africa', 'name': 'Burkina Faso', 'capital': 'Ouagadougou'},
{'timezones': ['Europe/Sofia'], 'code': 'BG', 'continent': 'Europe', 'name': 'Bulgaria', 'capital': 'Sofia'},
{'timezones': ['Asia/Bahrain'], 'code': 'BH', 'continent': 'Asia', 'name': 'Bahrain', 'capital': 'Manama'},
{'timezones': ['Africa/Bujumbura'], 'code': 'BI', 'continent': 'Africa', 'name': 'Burundi', 'capital': 'Bujumbura'},
{'timezones': ['Africa/Porto-Novo'], 'code': 'BJ', 'continent': 'Africa', 'name': 'Benin', 'capital': 'Porto-Novo'},
{'timezones': ['Asia/Brunei'], 'code': 'BN', 'continent': 'Asia', 'name': 'Brunei Darussalam', 'capital': 'Bandar Seri Begawan'},
{'timezones': ['America/La_Paz'], 'code': 'BO', 'continent': 'South America', 'name': 'Bolivia', 'capital': 'Sucre'},
{'timezones': ['America/Noronha', 'America/Belem', 'America/Fortaleza', 'America/Recife', 'America/Araguaina', 'America/Maceio', 'America/Bahia', 'America/Sao_Paulo', 'America/Campo_Grande', 'America/Cuiaba', 'America/Porto_Velho', 'America/Boa_Vista', 'America/Manaus', 'America/Eirunepe', 'America/Rio_Branco'], 'code': 'BR', 'continent': 'South America', 'name': 'Brazil', 'capital': 'Bras\xc3\xadlia'},
{'timezones': ['America/Nassau'], 'code': 'BS', 'continent': 'North America', 'name': 'Bahamas', 'capital': 'Nassau'},
{'timezones': ['Asia/Thimphu'], 'code': 'BT', 'continent': 'Asia', 'name': 'Bhutan', 'capital': 'Thimphu'},
{'timezones': ['Africa/Gaborone'], 'code': 'BW', 'continent': 'Africa', 'name': 'Botswana', 'capital': 'Gaborone'},
{'timezones': ['Europe/Minsk'], 'code': 'BY', 'continent': 'Europe', 'name': 'Belarus', 'capital': 'Minsk'},
{'timezones': ['America/Belize'], 'code': 'BZ', 'continent': 'North America', 'name': 'Belize', 'capital': 'Belmopan'},
{'timezones': ['America/St_Johns', 'America/Halifax', 'America/Glace_Bay', 'America/Moncton', 'America/Goose_Bay', 'America/Blanc-Sablon', 'America/Montreal', 'America/Toronto', 'America/Nipigon', 'America/Thunder_Bay', 'America/Pangnirtung', 'America/Iqaluit', 'America/Atikokan', 'America/Rankin_Inlet', 'America/Winnipeg', 'America/Rainy_River', 'America/Cambridge_Bay', 'America/Regina', 'America/Swift_Current', 'America/Edmonton', 'America/Yellowknife', 'America/Inuvik', 'America/Dawson_Creek', 'America/Vancouver', 'America/Whitehorse', 'America/Dawson'], 'code': 'CA', 'continent': 'North America', 'name': 'Canada', 'capital': 'Ottawa'},
{'timezones': ['Africa/Kinshasa', 'Africa/Lubumbashi'], 'code': 'CD', 'continent': 'Africa', 'name': 'Democratic Republic of the Congo', 'capital': 'Kinshasa'},
{'timezones': ['Africa/Brazzaville'], 'code': 'CG', 'continent': 'Africa', 'name': 'Republic of the Congo', 'capital': 'Brazzaville'},
{'timezones': ['Africa/Abidjan'], 'code': 'CI', 'continent': 'Africa', 'name': "C\xc3\xb4te d'Ivoire", 'capital': 'Yamoussoukro'},
{'timezones': ['America/Santiago', 'Pacific/Easter'], 'code': 'CL', 'continent': 'South America', 'name': 'Chile', 'capital': 'Santiago'},
{'timezones': ['Africa/Douala'], 'code': 'CM', 'continent': 'Africa', 'name': 'Cameroon', 'capital': 'Yaound\xc3\xa9'},
{'timezones': ['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar'], 'code': 'CN', 'continent': 'Asia', 'name': "People's Republic of China", 'capital': 'Beijing'},
{'timezones': ['America/Bogota'], 'code': 'CO', 'continent': 'South America', 'name': 'Colombia', 'capital': 'Bogot\xc3\xa1'},
{'timezones': ['America/Costa_Rica'], 'code': 'CR', 'continent': 'North America', 'name': 'Costa Rica', 'capital': 'San Jos\xc3\xa9'},
{'timezones': ['America/Havana'], 'code': 'CU', 'continent': 'North America', 'name': 'Cuba', 'capital': 'Havana'},
{'timezones': ['Atlantic/Cape_Verde'], 'code': 'CV', 'continent': 'Africa', 'name': 'Cape Verde', 'capital': 'Praia'},
{'timezones': ['Asia/Nicosia'], 'code': 'CY', 'continent': 'Asia', 'name': 'Cyprus', 'capital': 'Nicosia'},
{'timezones': ['Europe/Prague'], 'code': 'CZ', 'continent': 'Europe', 'name': 'Czech Republic', 'capital': 'Prague'},
{'timezones': ['Europe/Berlin'], 'code': 'DE', 'continent': 'Europe', 'name': 'Germany', 'capital': 'Berlin'},
{'timezones': ['Africa/Djibouti'], 'code': 'DJ', 'continent': 'Africa', 'name': 'Djibouti', 'capital': 'Djibouti City'},
{'timezones': ['Europe/Copenhagen'], 'code': 'DK', 'continent': 'Europe', 'name': 'Denmark', 'capital': 'Copenhagen'},
{'timezones': ['America/Dominica'], 'code': 'DM', 'continent': 'North America', 'name': 'Dominica', 'capital': 'Roseau'},
{'timezones': ['America/Santo_Domingo'], 'code': 'DO', 'continent': 'North America', 'name': 'Dominican Republic', 'capital': 'Santo Domingo'},
{'timezones': ['America/Guayaquil', 'Pacific/Galapagos'], 'code': 'EC', 'continent': 'South America', 'name': 'Ecuador', 'capital': 'Quito'},
{'timezones': ['Europe/Tallinn'], 'code': 'EE', 'continent': 'Europe', 'name': 'Estonia', 'capital': 'Tallinn'},
{'timezones': ['Africa/Cairo'], 'code': 'EG', 'continent': 'Africa', 'name': 'Egypt', 'capital': 'Cairo'},
{'timezones': ['Africa/Asmera'], 'code': 'ER', 'continent': 'Africa', 'name': 'Eritrea', 'capital': 'Asmara'},
{'timezones': ['Africa/Addis_Ababa'], 'code': 'ET', 'continent': 'Africa', 'name': 'Ethiopia', 'capital': 'Addis Ababa'},
{'timezones': ['Europe/Helsinki'], 'code': 'FI', 'continent': 'Europe', 'name': 'Finland', 'capital': 'Helsinki'},
{'timezones': ['Pacific/Fiji'], 'code': 'FJ', 'continent': 'Oceania', 'name': 'Fiji', 'capital': 'Suva'},
{'timezones': ['Europe/Paris'], 'code': 'FR', 'continent': 'Europe', 'name': 'France', 'capital': 'Paris'},
{'timezones': ['Africa/Libreville'], 'code': 'GA', 'continent': 'Africa', 'name': 'Gabon', 'capital': 'Libreville'},
{'timezones': ['Asia/Tbilisi'], 'code': 'GE', 'continent': 'Asia', 'name': 'Georgia', 'capital': 'Tbilisi'},
{'timezones': ['Africa/Accra'], 'code': 'GH', 'continent': 'Africa', 'name': 'Ghana', 'capital': 'Accra'},
{'timezones': ['Africa/Banjul'], 'code': 'GM', 'continent': 'Africa', 'name': 'The Gambia', 'capital': 'Banjul'},
{'timezones': ['Africa/Conakry'], 'code': 'GN', 'continent': 'Africa', 'name': 'Guinea', 'capital': 'Conakry'},
{'timezones': ['Europe/Athens'], 'code': 'GR', 'continent': 'Europe', 'name': 'Greece', 'capital': 'Athens'},
{'timezones': ['America/Guatemala'], 'code': 'GT', 'continent': 'North America', 'name': 'Guatemala', 'capital': 'Guatemala City'},
{'timezones': ['America/Guatemala'], 'code': 'GT', 'continent': 'North America', 'name': 'Haiti', 'capital': 'Port-au-Prince'},
{'timezones': ['Africa/Bissau'], 'code': 'GW', 'continent': 'Africa', 'name': 'Guinea-Bissau', 'capital': 'Bissau'},
{'timezones': ['America/Guyana'], 'code': 'GY', 'continent': 'South America', 'name': 'Guyana', 'capital': 'Georgetown'},
{'timezones': ['America/Tegucigalpa'], 'code': 'HN', 'continent': 'North America', 'name': 'Honduras', 'capital': 'Tegucigalpa'},
{'timezones': ['Europe/Budapest'], 'code': 'HU', 'continent': 'Europe', 'name': 'Hungary', 'capital': 'Budapest'},
{'timezones': ['Asia/Jakarta', 'Asia/Pontianak', 'Asia/Makassar', 'Asia/Jayapura'], 'code': 'ID', 'continent': 'Asia', 'name': 'Indonesia', 'capital': 'Jakarta'},
{'timezones': ['Europe/Dublin'], 'code': 'IE', 'continent': 'Europe', 'name': 'Republic of Ireland', 'capital': 'Dublin'},
{'timezones': ['Asia/Jerusalem'], 'code': 'IL', 'continent': 'Asia', 'name': 'Israel', 'capital': 'Jerusalem'},
{'timezones': ['Asia/Calcutta'], 'code': 'IN', 'continent': 'Asia', 'name': 'India', 'capital': 'New Delhi'},
{'timezones': ['Asia/Baghdad'], 'code': 'IQ', 'continent': 'Asia', 'name': 'Iraq', 'capital': 'Baghdad'},
{'timezones': ['Asia/Tehran'], 'code': 'IR', 'continent': 'Asia', 'name': 'Iran', 'capital': 'Tehran'},
{'timezones': ['Atlantic/Reykjavik'], 'code': 'IS', 'continent': 'Europe', 'name': 'Iceland', 'capital': 'Reykjav\xc3\xadk'},
{'timezones': ['Europe/Rome'], 'code': 'IT', 'continent': 'Europe', 'name': 'Italy', 'capital': 'Rome'},
{'timezones': ['America/Jamaica'], 'code': 'JM', 'continent': 'North America', 'name': 'Jamaica', 'capital': 'Kingston'},
{'timezones': ['Asia/Amman'], 'code': 'JO', 'continent': 'Asia', 'name': 'Jordan', 'capital': 'Amman'},
{'timezones': ['Asia/Tokyo'], 'code': 'JP', 'continent': 'Asia', 'name': 'Japan', 'capital': 'Tokyo'},
{'timezones': ['Africa/Nairobi'], 'code': 'KE', 'continent': 'Africa', 'name': 'Kenya', 'capital': 'Nairobi'},
{'timezones': ['Asia/Bishkek'], 'code': 'KG', 'continent': 'Asia', 'name': 'Kyrgyzstan', 'capital': 'Bishkek'},
{'timezones': ['Pacific/Tarawa', 'Pacific/Enderbury', 'Pacific/Kiritimati'], 'code': 'KI', 'continent': 'Oceania', 'name': 'Kiribati', 'capital': 'Tarawa'},
{'timezones': ['Asia/Pyongyang'], 'code': 'KP', 'continent': 'Asia', 'name': 'North Korea', 'capital': 'Pyongyang'},
{'timezones': ['Asia/Seoul'], 'code': 'KR', 'continent': 'Asia', 'name': 'South Korea', 'capital': 'Seoul'},
{'timezones': ['Asia/Kuwait'], 'code': 'KW', 'continent': 'Asia', 'name': 'Kuwait', 'capital': 'Kuwait City'},
{'timezones': ['Asia/Beirut'], 'code': 'LB', 'continent': 'Asia', 'name': 'Lebanon', 'capital': 'Beirut'},
{'timezones': ['Europe/Vaduz'], 'code': 'LI', 'continent': 'Europe', 'name': 'Liechtenstein', 'capital': 'Vaduz'},
{'timezones': ['Africa/Monrovia'], 'code': 'LR', 'continent': 'Africa', 'name': 'Liberia', 'capital': 'Monrovia'},
{'timezones': ['Africa/Maseru'], 'code': 'LS', 'continent': 'Africa', 'name': 'Lesotho', 'capital': 'Maseru'},
{'timezones': ['Europe/Vilnius'], 'code': 'LT', 'continent': 'Europe', 'name': 'Lithuania', 'capital': 'Vilnius'},
{'timezones': ['Europe/Luxembourg'], 'code': 'LU', 'continent': 'Europe', 'name': 'Luxembourg', 'capital': 'Luxembourg City'},
{'timezones': ['Europe/Riga'], 'code': 'LV', 'continent': 'Europe', 'name': 'Latvia', 'capital': 'Riga'},
{'timezones': ['Africa/Tripoli'], 'code': 'LY', 'continent': 'Africa', 'name': 'Libya', 'capital': 'Tripoli'},
{'timezones': ['Indian/Antananarivo'], 'code': 'MG', 'continent': 'Africa', 'name': 'Madagascar', 'capital': 'Antananarivo'},
{'timezones': ['Pacific/Majuro', 'Pacific/Kwajalein'], 'code': 'MH', 'continent': 'Oceania', 'name': 'Marshall Islands', 'capital': 'Majuro'},
{'timezones': ['Europe/Skopje'], 'code': 'MK', 'continent': 'Europe', 'name': 'Macedonia', 'capital': 'Skopje'},
{'timezones': ['Africa/Bamako'], 'code': 'ML', 'continent': 'Africa', 'name': 'Mali', 'capital': 'Bamako'},
{'timezones': ['Asia/Rangoon'], 'code': 'MM', 'continent': 'Asia', 'name': 'Myanmar', 'capital': 'Naypyidaw'},
{'timezones': ['Asia/Ulaanbaatar', 'Asia/Hovd', 'Asia/Choibalsan'], 'code': 'MN', 'continent': 'Asia', 'name': 'Mongolia', 'capital': 'Ulaanbaatar'},
{'timezones': ['Africa/Nouakchott'], 'code': 'MR', 'continent': 'Africa', 'name': 'Mauritania', 'capital': 'Nouakchott'},
{'timezones': ['Europe/Malta'], 'code': 'MT', 'continent': 'Europe', 'name': 'Malta', 'capital': 'Valletta'},
{'timezones': ['Indian/Mauritius'], 'code': 'MU', 'continent': 'Africa', 'name': 'Mauritius', 'capital': 'Port Louis'},
{'timezones': ['Indian/Maldives'], 'code': 'MV', 'continent': 'Asia', 'name': 'Maldives', 'capital': 'Mal\xc3\xa9'},
{'timezones': ['Africa/Blantyre'], 'code': 'MW', 'continent': 'Africa', 'name': 'Malawi', 'capital': 'Lilongwe'},
{'timezones': ['America/Mexico_City', 'America/Cancun', 'America/Merida', 'America/Monterrey', 'America/Mazatlan', 'America/Chihuahua', 'America/Hermosillo', 'America/Tijuana'], 'code': 'MX', 'continent': 'North America', 'name': 'Mexico', 'capital': 'Mexico City'},
{'timezones': ['Asia/Kuala_Lumpur', 'Asia/Kuching'], 'code': 'MY', 'continent': 'Asia', 'name': 'Malaysia', 'capital': 'Kuala Lumpur'},
{'timezones': ['Africa/Maputo'], 'code': 'MZ', 'continent': 'Africa', 'name': 'Mozambique', 'capital': 'Maputo'},
{'timezones': ['Africa/Windhoek'], 'code': 'NA', 'continent': 'Africa', 'name': 'Namibia', 'capital': 'Windhoek'},
{'timezones': ['Africa/Niamey'], 'code': 'NE', 'continent': 'Africa', 'name': 'Niger', 'capital': 'Niamey'},
{'timezones': ['Africa/Lagos'], 'code': 'NG', 'continent': 'Africa', 'name': 'Nigeria', 'capital': 'Abuja'},
{'timezones': ['America/Managua'], 'code': 'NI', 'continent': 'North America', 'name': 'Nicaragua', 'capital': 'Managua'},
{'timezones': ['Europe/Amsterdam'], 'code': 'NL', 'continent': 'Europe', 'name': 'Kingdom of the Netherlands', 'capital': 'Amsterdam'},
{'timezones': ['Europe/Oslo'], 'code': 'NO', 'continent': 'Europe', 'name': 'Norway', 'capital': 'Oslo'},
{'timezones': ['Asia/Katmandu'], 'code': 'NP', 'continent': 'Asia', 'name': 'Nepal', 'capital': 'Kathmandu'},
{'timezones': ['Pacific/Nauru'], 'code': 'NR', 'continent': 'Oceania', 'name': 'Nauru', 'capital': 'Yaren'},
{'timezones': ['Pacific/Auckland', 'Pacific/Chatham'], 'code': 'NZ', 'continent': 'Oceania', 'name': 'New Zealand', 'capital': 'Wellington'},
{'timezones': ['Asia/Muscat'], 'code': 'OM', 'continent': 'Asia', 'name': 'Oman', 'capital': 'Muscat'},
{'timezones': ['America/Panama'], 'code': 'PA', 'continent': 'North America', 'name': 'Panama', 'capital': 'Panama City'},
{'timezones': ['America/Lima'], 'code': 'PE', 'continent': 'South America', 'name': 'Peru', 'capital': 'Lima'},
{'timezones': ['Pacific/Port_Moresby'], 'code': 'PG', 'continent': 'Oceania', 'name': 'Papua New Guinea', 'capital': 'Port Moresby'},
{'timezones': ['Asia/Manila'], 'code': 'PH', 'continent': 'Asia', 'name': 'Philippines', 'capital': 'Manila'},
{'timezones': ['Asia/Karachi'], 'code': 'PK', 'continent': 'Asia', 'name': 'Pakistan', 'capital': 'Islamabad'},
{'timezones': ['Europe/Warsaw'], 'code': 'PL', 'continent': 'Europe', 'name': 'Poland', 'capital': 'Warsaw'},
{'timezones': ['Europe/Lisbon', 'Atlantic/Madeira', 'Atlantic/Azores'], 'code': 'PT', 'continent': 'Europe', 'name': 'Portugal', 'capital': 'Lisbon'},
{'timezones': ['Pacific/Palau'], 'code': 'PW', 'continent': 'Oceania', 'name': 'Palau', 'capital': 'Ngerulmud'},
{'timezones': ['America/Asuncion'], 'code': 'PY', 'continent': 'South America', 'name': 'Paraguay', 'capital': 'Asunci\xc3\xb3n'},
{'timezones': ['Asia/Qatar'], 'code': 'QA', 'continent': 'Asia', 'name': 'Qatar', 'capital': 'Doha'},
{'timezones': ['Europe/Bucharest'], 'code': 'RO', 'continent': 'Europe', 'name': 'Romania', 'capital': 'Bucharest'},
{'timezones': ['Europe/Kaliningrad', 'Europe/Moscow', 'Europe/Volgograd', 'Europe/Samara', 'Asia/Yekaterinburg', 'Asia/Omsk', 'Asia/Novosibirsk', 'Asia/Krasnoyarsk', 'Asia/Irkutsk', 'Asia/Yakutsk', 'Asia/Vladivostok', 'Asia/Sakhalin', 'Asia/Magadan', 'Asia/Kamchatka', 'Asia/Anadyr'], 'code': 'RU', 'continent': 'Europe', 'name': 'Russia', 'capital': 'Moscow'},
{'timezones': ['Africa/Kigali'], 'code': 'RW', 'continent': 'Africa', 'name': 'Rwanda', 'capital': 'Kigali'},
{'timezones': ['Asia/Riyadh'], 'code': 'SA', 'continent': 'Asia', 'name': 'Saudi Arabia', 'capital': 'Riyadh'},
{'timezones': ['Pacific/Guadalcanal'], 'code': 'SB', 'continent': 'Oceania', 'name': 'Solomon Islands', 'capital': 'Honiara'},
{'timezones': ['Indian/Mahe'], 'code': 'SC', 'continent': 'Africa', 'name': 'Seychelles', 'capital': 'Victoria'},
{'timezones': ['Africa/Khartoum'], 'code': 'SD', 'continent': 'Africa', 'name': 'Sudan', 'capital': 'Khartoum'},
{'timezones': ['Europe/Stockholm'], 'code': 'SE', 'continent': 'Europe', 'name': 'Sweden', 'capital': 'Stockholm'},
{'timezones': ['Asia/Singapore'], 'code': 'SG', 'continent': 'Asia', 'name': 'Singapore', 'capital': 'Singapore'},
{'timezones': ['Europe/Ljubljana'], 'code': 'SI', 'continent': 'Europe', 'name': 'Slovenia', 'capital': 'Ljubljana'},
{'timezones': ['Europe/Bratislava'], 'code': 'SK', 'continent': 'Europe', 'name': 'Slovakia', 'capital': 'Bratislava'},
{'timezones': ['Africa/Freetown'], 'code': 'SL', 'continent': 'Africa', 'name': 'Sierra Leone', 'capital': 'Freetown'},
{'timezones': ['Europe/San_Marino'], 'code': 'SM', 'continent': 'Europe', 'name': 'San Marino', 'capital': 'San Marino'},
{'timezones': ['Africa/Dakar'], 'code': 'SN', 'continent': 'Africa', 'name': 'Senegal', 'capital': 'Dakar'},
{'timezones': ['Africa/Mogadishu'], 'code': 'SO', 'continent': 'Africa', 'name': 'Somalia', 'capital': 'Mogadishu'},
{'timezones': ['America/Paramaribo'], 'code': 'SR', 'continent': 'South America', 'name': 'Suriname', 'capital': 'Paramaribo'},
{'timezones': ['Africa/Sao_Tome'], 'code': 'ST', 'continent': 'Africa', 'name': 'S\xc3\xa3o Tom\xc3\xa9 and Pr\xc3\xadncipe', 'capital': 'S\xc3\xa3o Tom\xc3\xa9'},
{'timezones': ['Asia/Damascus'], 'code': 'SY', 'continent': 'Asia', 'name': 'Syria', 'capital': 'Damascus'},
{'timezones': ['Africa/Lome'], 'code': 'TG', 'continent': 'Africa', 'name': 'Togo', 'capital': 'Lom\xc3\xa9'},
{'timezones': ['Asia/Bangkok'], 'code': 'TH', 'continent': 'Asia', 'name': 'Thailand', 'capital': 'Bangkok'},
{'timezones': ['Asia/Dushanbe'], 'code': 'TJ', 'continent': 'Asia', 'name': 'Tajikistan', 'capital': 'Dushanbe'},
{'timezones': ['Asia/Ashgabat'], 'code': 'TM', 'continent': 'Asia', 'name': 'Turkmenistan', 'capital': 'Ashgabat'},
{'timezones': ['Africa/Tunis'], 'code': 'TN', 'continent': 'Africa', 'name': 'Tunisia', 'capital': 'Tunis'},
{'timezones': ['Pacific/Tongatapu'], 'code': 'TO', 'continent': 'Oceania', 'name': 'Tonga', 'capital': 'Nuku\xca\xbbalofa'},
{'timezones': ['Europe/Istanbul'], 'code': 'TR', 'continent': 'Asia', 'name': 'Turkey', 'capital': 'Ankara'},
{'timezones': ['America/Port_of_Spain'], 'code': 'TT', 'continent': 'North America', 'name': 'Trinidad and Tobago', 'capital': 'Port of Spain'},
{'timezones': ['Pacific/Funafuti'], 'code': 'TV', 'continent': 'Oceania', 'name': 'Tuvalu', 'capital': 'Funafuti'},
{'timezones': ['Africa/Dar_es_Salaam'], 'code': 'TZ', 'continent': 'Africa', 'name': 'Tanzania', 'capital': 'Dodoma'},
{'timezones': ['Europe/Kiev', 'Europe/Uzhgorod', 'Europe/Zaporozhye', 'Europe/Simferopol'], 'code': 'UA', 'continent': 'Europe', 'name': 'Ukraine', 'capital': 'Kiev'},
{'timezones': ['Africa/Kampala'], 'code': 'UG', 'continent': 'Africa', 'name': 'Uganda', 'capital': 'Kampala'},
{'timezones': ['America/New_York', 'America/Detroit', 'America/Kentucky/Louisville', 'America/Kentucky/Monticello', 'America/Indiana/Indianapolis', 'America/Indiana/Marengo', 'America/Indiana/Knox', 'America/Indiana/Vevay', 'America/Chicago', 'America/Indiana/Vincennes', 'America/Indiana/Petersburg', 'America/Menominee', 'America/North_Dakota/Center', 'America/North_Dakota/New_Salem', 'America/Denver', 'America/Boise', 'America/Shiprock', 'America/Phoenix', 'America/Los_Angeles', 'America/Anchorage', 'America/Juneau', 'America/Yakutat', 'America/Nome', 'America/Adak', 'Pacific/Honolulu'], 'code': 'US', 'continent': 'North America', 'name': 'United States', 'capital': 'Washington, D.C.'},
{'timezones': ['America/Montevideo'], 'code': 'UY', 'continent': 'South America', 'name': 'Uruguay', 'capital': 'Montevideo'},
{'timezones': ['Asia/Samarkand', 'Asia/Tashkent'], 'code': 'UZ', 'continent': 'Asia', 'name': 'Uzbekistan', 'capital': 'Tashkent'},
{'timezones': ['Europe/Vatican'], 'code': 'VA', 'continent': 'Europe', 'name': 'Vatican City', 'capital': 'Vatican City'},
{'timezones': ['America/Caracas'], 'code': 'VE', 'continent': 'South America', 'name': 'Venezuela', 'capital': 'Caracas'},
{'timezones': ['Asia/Saigon'], 'code': 'VN', 'continent': 'Asia', 'name': 'Vietnam', 'capital': 'Hanoi'},
{'timezones': ['Pacific/Efate'], 'code': 'VU', 'continent': 'Oceania', 'name': 'Vanuatu', 'capital': 'Port Vila'},
{'timezones': ['Asia/Aden'], 'code': 'YE', 'continent': 'Asia', 'name': 'Yemen', 'capital': "Sana'a"},
{'timezones': ['Africa/Lusaka'], 'code': 'ZM', 'continent': 'Africa', 'name': 'Zambia', 'capital': 'Lusaka'},
{'timezones': ['Africa/Harare'], 'code': 'ZW', 'continent': 'Africa', 'name': 'Zimbabwe', 'capital': 'Harare'},
{'timezones': ['Africa/Algiers'], 'code': 'DZ', 'continent': 'Africa', 'name': 'Algeria', 'capital': 'Algiers'},
{'timezones': ['Europe/Sarajevo'], 'code': 'BA', 'continent': 'Europe', 'name': 'Bosnia and Herzegovina', 'capital': 'Sarajevo'},
{'timezones': ['Asia/Phnom_Penh'], 'code': 'KH', 'continent': 'Asia', 'name': 'Cambodia', 'capital': 'Phnom Penh'},
{'timezones': ['Africa/Bangui'], 'code': 'CF', 'continent': 'Africa', 'name': 'Central African Republic', 'capital': 'Bangui'},
{'timezones': ['Africa/Ndjamena'], 'code': 'TD', 'continent': 'Africa', 'name': 'Chad', 'capital': "N'Djamena"},
{'timezones': ['Indian/Comoro'], 'code': 'KM', 'continent': 'Africa', 'name': 'Comoros', 'capital': 'Moroni'},
{'timezones': ['Europe/Zagreb'], 'code': 'HR', 'continent': 'Europe', 'name': 'Croatia', 'capital': 'Zagreb'},
{'timezones': ['Asia/Dili'], 'code': 'TL', 'continent': 'Asia', 'name': 'East Timor', 'capital': 'Dili'},
{'timezones': ['America/El_Salvador'], 'code': 'SV', 'continent': 'North America', 'name': 'El Salvador', 'capital': 'San Salvador'},
{'timezones': ['Africa/Malabo'], 'code': 'GQ', 'continent': 'Africa', 'name': 'Equatorial Guinea', 'capital': 'Malabo'},
{'timezones': ['America/Grenada'], 'code': 'GD', 'continent': 'North America', 'name': 'Grenada', 'capital': "St. George's"},
{'timezones': ['Asia/Almaty', 'Asia/Qyzylorda', 'Asia/Aqtobe', 'Asia/Aqtau', 'Asia/Oral'], 'code': 'KZ', 'continent': 'Asia', 'name': 'Kazakhstan', 'capital': 'Astana'},
{'timezones': ['Asia/Vientiane'], 'code': 'LA', 'continent': 'Asia', 'name': 'Laos', 'capital': 'Vientiane'},
{'timezones': ['Pacific/Truk', 'Pacific/Ponape', 'Pacific/Kosrae'], 'code': 'FM', 'continent': 'Oceania', 'name': 'Federated States of Micronesia', 'capital': 'Palikir'},
{'timezones': ['Europe/Chisinau'], 'code': 'MD', 'continent': 'Europe', 'name': 'Moldova', 'capital': 'Chi\xc5\x9fin\xc4\x83u'},
{'timezones': ['Europe/Monaco'], 'code': 'MC', 'continent': 'Europe', 'name': 'Monaco', 'capital': 'Monaco'},
{'timezones': ['Europe/Podgorica'], 'code': 'ME', 'continent': 'Europe', 'name': 'Montenegro', 'capital': 'Podgorica'},
{'timezones': ['Africa/Casablanca'], 'code': 'MA', 'continent': 'Africa', 'name': 'Morocco', 'capital': 'Rabat'},
{'timezones': ['America/St_Kitts'], 'code': 'KN', 'continent': 'North America', 'name': 'Saint Kitts and Nevis', 'capital': 'Basseterre'},
{'timezones': ['America/St_Lucia'], 'code': 'LC', 'continent': 'North America', 'name': 'Saint Lucia', 'capital': 'Castries'},
{'timezones': ['America/St_Vincent'], 'code': 'VC', 'continent': 'North America', 'name': 'Saint Vincent and the Grenadines', 'capital': 'Kingstown'},
{'timezones': ['Pacific/Apia'], 'code': 'WS', 'continent': 'Oceania', 'name': 'Samoa', 'capital': 'Apia'},
{'timezones': ['Europe/Belgrade'], 'code': 'RS', 'continent': 'Europe', 'name': 'Serbia', 'capital': 'Belgrade'},
{'timezones': ['Africa/Johannesburg'], 'code': 'ZA', 'continent': 'Africa', 'name': 'South Africa', 'capital': 'Pretoria'},
{'timezones': ['Europe/Madrid', 'Africa/Ceuta', 'Atlantic/Canary'], 'code': 'ES', 'continent': 'Europe', 'name': 'Spain', 'capital': 'Madrid'},
{'timezones': ['Asia/Colombo'], 'code': 'LK', 'continent': 'Asia', 'name': 'Sri Lanka', 'capital': 'Sri Jayewardenepura Kotte'},
{'timezones': ['Africa/Mbabane'], 'code': 'SZ', 'continent': 'Africa', 'name': 'Swaziland', 'capital': 'Mbabane'},
{'timezones': ['Europe/Zurich'], 'code': 'CH', 'continent': 'Europe', 'name': 'Switzerland', 'capital': 'Bern'},
{'timezones': ['Asia/Dubai'], 'code': 'AE', 'continent': 'Asia', 'name': 'United Arab Emirates', 'capital': 'Abu Dhabi'},
{'timezones': ['Europe/London'], 'code': 'GB', 'continent': 'Europe', 'name': 'United Kingdom', 'capital': 'London'},
]
regex = re.compile(timedelta_pattern)
@classmethod
def unix_time(cls):
"""
Get a timestamp between January 1, 1970 and now
:example 1061306726
"""
return random.randint(0, int(time()))
@classmethod
def date_time(cls):
"""
Get a datetime object for a date between January 1, 1970 and now
:example DateTime('2005-08-16 20:39:21')
:return datetime
"""
return datetime.fromtimestamp(cls.unix_time())
@classmethod
def date_time_ad(cls):
"""
Get a datetime object for a date between January 1, 001 and now
:example DateTime('1265-03-22 21:15:52')
:return datetime
"""
ts = random.randint(-62135600400, int(time()))
# NOTE: using datetime.fromtimestamp(ts) directly will raise
# a "ValueError: timestamp out of range for platform time_t"
# on some platforms due to system C functions;
# see http://stackoverflow.com/a/10588133/2315612
return datetime.fromtimestamp(0) + timedelta(seconds=ts)
@classmethod
def iso8601(cls):
"""
:example '2003-10-21T16:05:52+0000'
"""
return cls.date_time().isoformat()
@classmethod
def date(cls, pattern='%Y-%m-%d'):
"""
Get a date string between January 1, 1970 and now
:param pattern format
:example '2008-11-27'
"""
return cls.date_time().strftime(pattern)
@classmethod
def time(cls, pattern='%H:%M:%S'):
"""
Get a time string (24h format by default)
:param pattern format
:example '15:02:34'
"""
return cls.date_time().time().strftime(pattern)
@classmethod
def _parse_date_time(cls, text):
if isinstance(text, (datetime, date, real_datetime, real_date)):
return datetime_to_timestamp(text)
now = datetime.now()
if isinstance(text, timedelta):
return datetime_to_timestamp(now - text)
if is_string(text):
if text == 'now':
return datetime_to_timestamp(datetime.now())
parts = cls.regex.match(text)
if not parts:
return
parts = parts.groupdict()
time_params = {}
for (name, param) in parts.items():
if param:
time_params[name] = int(param)
if 'years' in time_params:
if 'days' not in time_params: time_params['days'] = 0
time_params['days'] += 365.24 * time_params.pop('years')
return datetime_to_timestamp(now + timedelta(**time_params))
if isinstance(text, int):
return datetime_to_timestamp(now + timedelta(text))
raise ValueError("Invalid format for date '{0}'".format(text))
@classmethod
def date_time_between(cls, start_date='-30y', end_date='now'):
"""
Get a DateTime object based on a random date between two given dates.
Accepts date strings that can be recognized by strtotime().
:param start_date Defaults to 30 years ago
:param end_date Defaults to "now"
:example DateTime('1999-02-02 11:42:52')
:return DateTime
"""
start_date = cls._parse_date_time(start_date)
end_date = cls._parse_date_time(end_date)
timestamp = random.randint(start_date, end_date)
return datetime.fromtimestamp(timestamp)
@classmethod
def date_time_this_century(cls):
"""
:example DateTime('1964-04-04 11:02:02')
"""
return cls.date_time_between('-%dy' % (datetime.now().year % 100))
@classmethod
def date_time_this_decade(cls):
"""
:example DateTime('2004-04-04 11:02:02')
"""
return cls.date_time_between('-%dy' % (datetime.now().year % 10))
@classmethod
def date_time_this_year(cls):
"""
:example DateTime('2012-04-04 11:02:02')
"""
return cls.date_time_between('-%dm' % (datetime.now().month))
@classmethod
def date_time_this_month(cls):
"""
:example DateTime('2012-04-04 11:02:02')
"""
return cls.date_time_between('-%dd' % (datetime.now().day))
@classmethod
def am_pm(cls):
return cls.date('%p')
@classmethod
def day_of_month(cls):
return cls.date('%d')
@classmethod
def day_of_week(cls):
return cls.date('%A')
@classmethod
def month(cls):
return cls.date('%m')
@classmethod
def month_name(cls):
return cls.date('%B')
@classmethod
def year(cls):
return cls.date('%Y')
@classmethod
def century(cls):
"""
:example 'XVII'
"""
return cls.random_element(cls.centuries)
@classmethod
def timezone(cls):
return random.choice(cls.random_element(cls.countries)['timezones'])

View file

@ -0,0 +1 @@
# coding=utf-8

View file

@ -0,0 +1,191 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_formats = ('{{city_name}}', )
street_name_formats = (
'{{first_name}}-{{last_name}}-{{street_suffix_long}}',
'{{last_name}}{{street_suffix_short}}',
)
street_address_formats = ('{{street_name}} {{building_number}}', )
address_formats = ('{{street_address}}\n{{postcode}} {{city}}', )
building_number_formats = ('###', '##', '#', '#/#', )
street_suffixes_long = (
'Gasse', 'Platz', 'Ring', 'Straße', 'Weg', 'Allee',
)
street_suffixes_short = (
'gasse', 'platz', 'ring', 'straße', 'str.', 'weg', 'allee',
)
postcode_formats = ('#####', )
cities = (
'Aachen', 'Ahaus', 'Altentreptow', 'Altötting', 'Amberg', 'Angermünde',
'Anklam', 'Ansbach', 'Apolda', 'Arnstadt', 'Artern', 'Aschaffenburg',
'Aue', 'Auerbach', 'Augsburg', 'Aurich', 'Backnang', 'Bad Brückenau',
'Bad Freienwalde', 'Bad Kissingen', 'Bad Kreuznach', 'Bad Langensalza',
'Bad Liebenwerda', 'Bad Mergentheim', 'Badalzungen', 'Badibling',
'Badoberan', 'Bamberg', 'Bautzen', 'Bayreuth', 'Beeskow', 'Beilngries',
'Belzig', 'Berchtesgaden', 'Bergzabern', 'Berlin', 'Bernburg',
'Bersenbrück', 'Biedenkopf', 'Bischofswerda', 'Bitterfeld', 'Bogen',
'Borken', 'Borna', 'Brand', 'Brandenburg', 'Bremen', 'Bremervörde',
'Brilon', 'Bruchsal', 'Burg', 'Burgdorf', 'Burglengenfeld',
'Böblingen', 'Büsingenm Hochrhein', 'Bützow', 'Calau', 'Calw', 'Celle',
'Chemnitz', 'Cloppenburg', 'Coburg', 'Cottbus', 'Crailsheim',
'Cuxhaven', 'Dachau', 'Darmstadt', 'Deggendorf', 'Delitzsch', 'Demmin',
'Dessau', 'Dieburg', 'Diepholz', 'Dinkelsbühl', 'Dinslaken',
'Donaueschingen', 'Dresden', 'Duderstadt', 'Döbeln', 'Düren',
'Ebermannstadt', 'Ebern', 'Ebersberg', 'Eberswalde', 'Eckernförde',
'Eggenfelden', 'Eichstätt', 'Eichstätt', 'Eilenburg', 'Einbeck',
'Eisenach', 'Eisenberg', 'Eisenhüttenstadt', 'Eisleben', 'Emmendingen',
'Erbisdorf', 'Erding', 'Erfurt', 'Erkelenz', 'Euskirchen', 'Eutin',
'Fallingbostel', 'Feuchtwangen', 'Finsterwalde', 'Flöha', 'Forchheim',
'Forst', 'Freising', 'Freital', 'Freudenstadt', 'Fulda',
'Fürstenfeldbruck', 'Fürstenwalde', 'Füssen', 'Gadebusch',
'Gardelegen', 'Garmisch-Partenkirchen', 'Geithain', 'Geldern',
'Gelnhausen', 'Genthin', 'Gera', 'Germersheim', 'Gerolzhofen',
'Gießen', 'Gifhorn', 'Goslar', 'Gotha', 'Grafenau', 'Gransee',
'Greifswald', 'Greiz', 'Grevenbroich', 'Grevesmühlen',
'Griesbach Rottal', 'Grimma', 'Grimmen', 'Groß-Gerau', 'Großenhain',
'Gräfenhainichen', 'Guben', 'Gunzenhausen', 'Göppingen', 'Görlitz',
'Göttingen', 'Günzburg', 'Güstrow', 'Gütersloh', 'Hagenow',
'Hainichen', 'Halberstadt', 'Haldensleben', 'Hamburg', 'Hammelburg',
'Hannover', 'Hannoversch Münden', 'Hansestadttralsund', 'Havelberg',
'Hechingen', 'Heiligenstadt', 'Heinsberg', 'Helmstedt', 'Herford',
'Hersbruck', 'Herzberg', 'Hettstedt', 'Hildburghausen', 'Hildesheim',
'Hofgeismar', 'Hohenmölsen', 'Hohenstein-Ernstthal', 'Holzminden',
'Hoyerswerda', 'Husum', 'Höxter', 'Hünfeld', 'Illertissen', 'Ilmenau',
'Ingolstadt', 'Iserlohn', 'Jena', 'Jessen', 'Jülich', 'Jüterbog',
'Kaiserslautern', 'Kamenz', 'Karlsruhe', 'Kassel', 'Kehl', 'Kelheim',
'Kemnath', 'Kitzingen', 'Kleve', 'Klötze', 'Koblenz', 'Konstanz',
'Kronach', 'Kulmbach', 'Kusel', 'Kyritz', 'Königs Wusterhausen',
'Kötzting', 'Leipziger Land', 'Lemgo', 'Lichtenfels', 'Lippstadt',
'Lobenstein', 'Luckau', 'Luckenwalde', 'Ludwigsburg', 'Ludwigslust',
'Lörrach', 'Lübben', 'Lübeck', 'Lübz', 'Lüdenscheid', 'Lüdinghausen',
'Lüneburg', 'Magdeburg', 'Main-Höchst)', 'Mainburg', 'Malchin',
'Mallersdorf', 'Marienberg', 'Marktheidenfeld', 'Mayen', 'Meiningen',
'Meißen', 'Melle', 'Mellrichstadt', 'Melsungen', 'Meppen', 'Merseburg',
'Mettmann', 'Miesbach', 'Miltenberg', 'Mittweida', 'Moers', 'Monschau',
'Mühldorfm Inn', 'Mühlhausen', 'München', 'Nabburg', 'Naila', 'Nauen',
'Neu-Ulm', 'Neubrandenburg', 'Neunburg vorm Wald', 'Neuruppin',
'Neuss', 'Neustadtm Rübenberge', 'Neustadtner Waldnaab', 'Neustrelitz',
'Niesky', 'Norden', 'Nordhausen', 'Northeim', 'Nördlingen',
'Nürtingen', 'Oberviechtach', 'Ochsenfurt', 'Olpe', 'Oranienburg',
'Oschatz', 'Osterburg', 'Osterodem Harz', 'Paderborn', 'Parchim',
'Parsberg', 'Pasewalk', 'Passau', 'Pegnitz', 'Peine', 'Perleberg',
'Pfaffenhofenner Ilm', 'Pinneberg', 'Pirmasens', 'Plauen', 'Potsdam',
'Prenzlau', 'Pritzwalk', 'Pößneck', 'Quedlinburg', 'Querfurt',
'Rastatt', 'Rathenow', 'Ravensburg', 'Recklinghausen', 'Regen',
'Regensburg', 'Rehau', 'Reutlingen', 'Ribnitz-Damgarten', 'Riesa',
'Rochlitz', 'Rockenhausen', 'Roding', 'Rosenheim', 'Rostock', 'Roth',
'Rothenburg oberauber', 'Rottweil', 'Rudolstadt', 'Saarbrücken',
'Saarlouis', 'Sangerhausen', 'Sankt Goar', 'Sankt Goarshausen',
'Saulgau', 'Scheinfeld', 'Schleiz', 'Schlüchtern', 'Schmölln',
'Schongau', 'Schrobenhausen', 'Schwabmünchen', 'Schwandorf',
'Schwarzenberg', 'Schweinfurt', 'Schwerin', 'Schwäbisch Gmünd',
'Schwäbisch Hall', 'Sebnitz', 'Seelow', 'Senftenberg', 'Siegen',
'Sigmaringen', 'Soest', 'Soltau', 'Soltau', 'Sondershausen',
'Sonneberg', 'Spremberg', 'Stade', 'Stade', 'Stadtroda',
'Stadtsteinach', 'Staffelstein', 'Starnberg', 'Staßfurt', 'Steinfurt',
'Stendal', 'Sternberg', 'Stollberg', 'Strasburg', 'Strausberg',
'Stuttgart', 'Suhl', 'Sulzbach-Rosenberg', 'Säckingen', 'Sömmerda',
'Tecklenburg', 'Teterow', 'Tirschenreuth', 'Torgau', 'Tuttlingen',
'Tübingen', 'Ueckermünde', 'Uelzen', 'Uffenheim', 'Vechta',
'Viechtach', 'Viersen', 'Vilsbiburg', 'Vohenstrauß', 'Waldmünchen',
'Wanzleben', 'Waren', 'Warendorf', 'Weimar', 'Weißenfels',
'Weißwasser', 'Werdau', 'Wernigerode', 'Wertingen', 'Wesel', 'Wetzlar',
'Wiedenbrück', 'Wismar', 'Wittenberg', 'Wittmund', 'Wittstock',
'Witzenhausen', 'Wolfach', 'Wolfenbüttel', 'Wolfratshausen', 'Wolgast',
'Wolmirstedt', 'Worbis', 'Wunsiedel', 'Wurzen', 'Zerbst', 'Zeulenroda',
'Zossen', 'Zschopau',
)
states = (
'Baden-Württemberg', 'Bayern', 'Berlin', 'Brandenburg', 'Bremen',
'Hamburg', 'Hessen', 'Mecklenburg-Vorpommern', 'Niedersachsen',
'Nordrhein-Westfalen', 'Rheinland-Pfalz', 'Saarland', 'Sachsen',
'Sachsen-Anhalt', 'Schleswig-Holstein', 'Thüringen',
)
countries = (
'Afghanistan', 'Alandinseln', 'Albanien', 'Algerien',
'Amerikanisch-Ozeanien', 'Amerikanisch-Samoa',
'Amerikanische Jungferninseln', 'Andorra', 'Angola', 'Anguilla',
'Antarktis', 'Antigua und Barbuda', 'Argentinien', 'Armenien', 'Aruba',
'Aserbaidschan', 'Australien', 'Bahamas', 'Bahrain', 'Bangladesch',
'Barbados', 'Belarus', 'Belgien', 'Belize', 'Benin', 'Bermuda',
'Bhutan', 'Bolivien', 'Bosnien und Herzegowina', 'Botsuana',
'Bouvetinsel', 'Brasilien', 'Britische Jungferninseln',
'Britisches Territorium im Indischen Ozean', 'Brunei Darussalam',
'Bulgarien', 'Burkina Faso', 'Burundi', 'Chile', 'China', 'Cookinseln',
'Costa Rica', 'Côte dIvoire', 'Demokratische Republik Kongo',
'Demokratische Volksrepublik Korea', 'Deutschland', 'Dominica',
'Dominikanische Republik', 'Dschibuti', 'Dänemark', 'Ecuador',
'El Salvador', 'Eritrea', 'Estland', 'Falklandinseln', 'Fidschi',
'Finnland', 'Frankreich', 'Französisch-Guayana',
'Französisch-Polynesien', 'Färöer', 'Gabun', 'Gambia', 'Georgien',
'Ghana', 'Gibraltar', 'Grenada', 'Griechenland', 'Grönland',
'Guadeloupe', 'Guam', 'Guatemala', 'Guernsey', 'Guinea',
'Guinea-Bissau', 'Guyana', 'Haiti', 'Heard- und McDonald-Inseln',
'Honduras', 'Indien', 'Indonesien', 'Irak', 'Iran', 'Irland', 'Island',
'Isle of Man', 'Israel', 'Italien', 'Jamaika', 'Japan', 'Jemen',
'Jersey', 'Jordanien', 'Kaimaninseln', 'Kambodscha', 'Kamerun',
'Kanada', 'Kap Verde', 'Kasachstan', 'Katar', 'Kenia', 'Kirgisistan',
'Kiribati', 'Kokosinseln', 'Kolumbien', 'Komoren', 'Kongo', 'Kroatien',
'Kuba', 'Kuwait', 'Laos', 'Lesotho', 'Lettland', 'Libanon', 'Liberia',
'Libyen', 'Liechtenstein', 'Litauen', 'Luxemburg', 'Madagaskar',
'Malawi', 'Malaysia', 'Malediven', 'Mali', 'Malta', 'Marokko',
'Marshallinseln', 'Martinique', 'Mauretanien', 'Mauritius', 'Mayotte',
'Mazedonien', 'Mexiko', 'Mikronesien', 'Monaco', 'Mongolei',
'Montenegro', 'Montserrat', 'Mosambik', 'Myanmar', 'Namibia', 'Nauru',
'Nepal', 'Neukaledonien', 'Neuseeland', 'Nicaragua', 'Niederlande',
'Niederländische Antillen', 'Niger', 'Nigeria', 'Niue', 'Norfolkinsel',
'Norwegen', 'Nördliche Marianen', 'Oman', 'Osttimor', 'Pakistan',
'Palau', 'Palästinensische Gebiete', 'Panama', 'Papua-Neuguinea',
'Paraguay', 'Peru', 'Philippinen', 'Pitcairn', 'Polen', 'Portugal',
'Puerto Rico', 'Republik Korea', 'Republik Moldau', 'Ruanda',
'Rumänien', 'Russische Föderation', 'Réunion', 'Salomonen', 'Sambia',
'Samoa', 'San Marino', 'Saudi-Arabien', 'Schweden', 'Schweiz',
'Senegal', 'Serbien', 'Serbien und Montenegro', 'Seychellen',
'Sierra Leone', 'Simbabwe', 'Singapur', 'Slowakei', 'Slowenien',
'Somalia', 'Sonderverwaltungszone Hongkong',
'Sonderverwaltungszone Macao', 'Spanien', 'Sri Lanka',
'St. Barthélemy', 'St. Helena', 'St. Kitts und Nevis', 'St. Lucia',
'St. Martin', 'St. Pierre und Miquelon',
'St. Vincent und die Grenadinen', 'Sudan', 'Suriname',
'Svalbard und Jan Mayen', 'Swasiland', 'Syrien',
'São Tomé und Príncipe', 'Südafrika',
'Südgeorgien und die Südlichen Sandwichinseln', 'Tadschikistan',
'Taiwan', 'Tansania', 'Thailand', 'Togo', 'Tokelau', 'Tonga',
'Trinidad und Tobago', 'Tschad', 'Tschechische Republik', 'Tunesien',
'Turkmenistan', 'Turks- und Caicosinseln', 'Tuvalu', 'Türkei',
'Uganda', 'Ukraine', 'Ungarn', 'Uruguay', 'Usbekistan', 'Vanuatu',
'Vatikanstadt', 'Venezuela', 'Vereinigte Arabische Emirate',
'Vereinigte Staaten', 'Vereinigtes Königreich', 'Vietnam',
'Wallis und Futuna', 'Weihnachtsinsel', 'Westsahara',
'Zentralafrikanische Republik', 'Zypern', 'Ägypten',
'Äquatorialguinea', 'Äthiopien', 'Äußeres Ozeanien', 'Österreich',
)
@classmethod
def street_suffix_short(cls):
return cls.random_element(cls.street_suffixes_short)
@classmethod
def street_suffix_long(cls):
return cls.random_element(cls.street_suffixes_long)
@classmethod
def city_name(cls):
return cls.random_element(cls.cities)
@classmethod
def state(cls):
return cls.random_element(cls.states)

View file

@ -0,0 +1,20 @@
# coding=utf-8
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}} {{last_name}} {{company_suffix}}',
'{{last_name}}',
)
company_suffixes = (
'AG', 'AG', 'AG', 'AG', 'AG & Co. KG', 'AG & Co. KGaA', 'AG & Co. OHG',
'GbR', 'GbR', 'GmbH', 'GmbH', 'GmbH', 'GmbH', 'GmbH & Co. KG',
'GmbH & Co. KG', 'GmbH & Co. KGaA', 'GmbH & Co. OHG', 'KG', 'KG', 'KG',
'KGaA', 'OHG mbH', 'Stiftung & Co. KG', 'Stiftung & Co. KGaA', 'e.G.',
'e.V.',
)

View file

@ -0,0 +1,42 @@
# coding=utf-8
from __future__ import unicode_literals
from ..internet import Provider as InternetProvider
from faker.utils.decorators import slugify_domain
class Provider(InternetProvider):
free_email_domains = (
'aol.de', 'gmail.com', 'gmx.de', 'googlemail.com', 'hotmail.de',
'web.de', 'yahoo.de',
)
tlds = ('com', 'com', 'com', 'net', 'org', 'de', 'de', 'de', )
@staticmethod
def _to_ascii(string):
# ``slugify`` doesn't replace `ß` and normalize
# other glyphs as single letters
replacements = (
('ä', 'ae'), ('Ä', 'Ae'),
('ö', 'oe'), ('Ö', 'Oe'),
('ü', 'ue'), ('Ü', 'Ue'),
('ß', 'ss'),
)
for search, replace in replacements:
string = string.replace(search, replace)
return string
@slugify_domain
def user_name(self):
pattern = self.random_element(self.user_name_formats)
return self._to_ascii(
self.bothify(self.generator.parse(pattern)))
@slugify_domain
def domain_word(self):
company = self.generator.format('company')
company_elements = company.split(' ')
company = self._to_ascii(company_elements.pop(0))
return company

View file

@ -0,0 +1,496 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}-{{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}-{{last_name}}',
'{{prefix_male}} {{first_name_male}} {{last_name}}',
'{{prefix_female}} {{first_name_female}} {{last_name}}',
'{{first_name_male}} {{last_name}} {{suffix}}',
'{{first_name_female}} {{last_name}} {{suffix}}',
'{{prefix_male}} {{first_name_male}} {{last_name}} {{suffix}}',
'{{prefix_female}} {{first_name_female}} {{last_name}} {{suffix}}',
)
first_names_male = (
'Abel', 'Abraham', 'Adalbero', 'Adam', 'Adamo', 'Adolfo', 'Adrian',
'Adriano', 'Adrianus', 'Adrien', 'Alain', 'Alajos', 'Alan', 'Albain',
'Alban', 'Albano', 'Alberto', 'Albin', 'Alec', 'Alejandro',
'Alessandro', 'Alessio', 'Alex', 'Alexander', 'Alexandre',
'Alexandros', 'Alexej', 'Alexis', 'Alfons', 'Alfonso', 'Aljoscha',
'Allan', 'Allen', 'Alois', 'Alon', 'Alonzo', 'Alphonse', 'Alwin',
'Amadeo', 'Amadeus', 'Amandus', 'Amos', 'Anatol', 'Anatole',
'Anatolij', 'Anders', 'Andi', 'Andor', 'Andre', 'Andreas', 'Andrej',
'Andrew', 'Andrijan', 'Andy', 'Angelus', 'Ansgar', 'Anthony',
'Antoine', 'Anton', 'Antonio', 'Araldo', 'Aram', 'Argus', 'Arjan',
'Armin', 'Arminio', 'Arnaldo', 'Arnault', 'Arndt', 'Arne', 'Arno',
'Arnold', 'Arrigo', 'Art', 'Arthur', 'Artur', 'Arturo', 'August',
'Auguste', 'Augustin', 'Aurelius', 'Axel', 'Balduin', 'Balthasar',
'Bardo', 'Barnabas', 'Barnard', 'Barney', 'Baruch', 'Basil',
'Basilius', 'Bastian', 'Bastien', 'Battista', 'Beatus', 'Beltrame',
'Beltran', 'Ben', 'Benedetto', 'Benedict', 'Benedikt', 'Bengt',
'Beniamino', 'Benignus', 'Benito', 'Benjamin', 'Benjy', 'Bennett',
'Benno', 'Benny', 'Benoit', 'Beppe', 'Bernard', 'Bernardo', 'Bernd',
'Bernhard', 'Bernie', 'Bert', 'Berthold', 'Bertoldo', 'Bertram',
'Bertrame', 'Bill', 'Billy', 'Birger', 'Bjarne', 'Björn', 'Bob',
'Bobby', 'Bodo', 'Bonifatius', 'Boris', 'Bosco', 'Brendan', 'Brian',
'Bruno', 'Bryan', 'Burkhard', 'Camillo', 'Camilo', 'Carl', 'Carlo',
'Carlos', 'Carol', 'Carsten', 'Casimir', 'Caspar', 'Cecil', 'Ceddric',
'Cedric', 'Celestino', 'Charles', 'Charlie', 'Chico', 'Chip', 'Chris',
'Christian', 'Christoph', 'Christophe', 'Christopher', 'Christy',
'Chuck', 'Cian', 'Cillian', 'Clarence', 'Clark', 'Clas', 'Claude',
'Claudio', 'Claudius', 'Claus', 'Clayton', 'Clemens', 'Cliff',
'Clifford', 'Clint', 'Clinton', 'Cody', 'Colin', 'Collin', 'Conan',
'Connor', 'Conny', 'Conor', 'Conrad', 'Constantine', 'Cooper',
'Cordell', 'Cornelius', 'Corvinus', 'Cristobal', 'Curd', 'Curt',
'Curtis', 'Curtiz', 'Cyril', 'Cyrill', 'Cäsar', 'Damian', 'Damon',
'Dan', 'Daniel', 'Daniele', 'Danilo', 'Danny', 'Dario', 'Darius',
'Dave', 'David', 'Davide', 'Dawson', 'Dean', 'Demetrius', 'Denis',
'Deniz', 'Dennis', 'Derek', 'Desiderius', 'Detlef', 'Detlev', 'Dick',
'Diego', 'Dieter', 'Dimitrij', 'Dirk', 'Dolf', 'Domenico', 'Domingo',
'Dominic', 'Dominik', 'Dominikus', 'Dominique', 'Donald', 'Donatello',
'Donato', 'Donatus', 'Dorian', 'Douglas', 'Dragan', 'Duarte', 'Duncan',
'Dylan', 'Earnest', 'Earvin', 'Eike', 'Eleasar', 'Elia', 'Elian',
'Elias', 'Elijah', 'Ellison', 'Elmar', 'Elroy', 'Emanuel', 'Emanuele',
'Emil', 'Emile', 'Emilian', 'Emiliano', 'Emilio', 'Emmanuel', 'Endrik',
'Enrico', 'Enrique', 'Enzo', 'Ephraim', 'Erasmus', 'Eric', 'Erik',
'Ermanno', 'Ernest', 'Ernestin', 'Ernesto', 'Eros', 'Errol', 'Etienne',
'Eugen', 'Eugene', 'Eugenio', 'Eusebius', 'Everett', 'Ezra', 'Fabiano',
'Fabien', 'Fabio', 'Fabius', 'Fabrice', 'Fabricius', 'Fabrizio',
'Falco', 'Falk', 'Falko', 'Faruk', 'Faustus', 'Favian', 'Federico',
'Federigo', 'Fedor', 'Felice', 'Feliciano', 'Felicien', 'Felipe',
'Felix', 'Felton', 'Feodor', 'Ferdinand', 'Fergus', 'Fernand',
'Fernando', 'Ferrante', 'Ferris', 'Fidel', 'Fidelio', 'Fidelis',
'Fidelius', 'Filippo', 'Finan', 'Finn', 'Fiore', 'Fjodor', 'Flavian',
'Flemming', 'Fletcher', 'Flint', 'Florens', 'Florentin', 'Florian',
'Florin', 'Florus', 'Floyd', 'Forrest', 'Forrester', 'Forster',
'Foster', 'Fox', 'Francesco', 'Francis', 'Francisco', 'Franco',
'Francois', 'Franek', 'Frank', 'Frankie', 'Franklin', 'Franziskus',
'Frasier', 'Frayne', 'Fred', 'Freddy', 'Frederic', 'Frederick',
'Frederik', 'Freeman', 'Fremont', 'Fridericus', 'Fridolin', 'Friedel',
'Frye', 'Gabriel', 'Gaetan', 'Gaetano', 'Gallus', 'Garcia', 'Garfield',
'Garin', 'Garnier', 'Garrick', 'Garrison', 'Garron', 'Garry', 'Garson',
'Gaspar', 'Gaspard', 'Gaspare', 'Gaston', 'Gastonne', 'Gates',
'Gauthier', 'Gavin', 'Gene', 'Geoffrey', 'Geoffroy', 'Geordi', 'Georg',
'George', 'Georges', 'Gerald', 'Geraldo', 'Gerard', 'Geraud', 'Gerd',
'Gereon', 'Germain', 'German', 'Germano', 'Gernot', 'Gerold',
'Geronimo', 'Gerrit', 'Gerry', 'Gert', 'Gerulf', 'Gerwin', 'Giacomo',
'Gian', 'Giancarlo', 'Gianni', 'Gibson', 'Gideon', 'Gil', 'Gilbert',
'Gilberto', 'Gilles', 'Gillian', 'Gino', 'Gioacchino', 'Giorgio',
'Giovanni', 'Giraldo', 'Gisbert', 'Gitano', 'Giuliano', 'Giulio',
'Giuseppe', 'Giusto', 'Glen', 'Glenn', 'Goliath', 'Goran', 'Gordon',
'Gordy', 'Goswin', 'Graciano', 'Graham', 'Grayson', 'Greg', 'Gregg',
'Gregoire', 'Gregor', 'Gregory', 'Griffin', 'Grover', 'Gualtier',
'Gualtiero', 'Guglielmo', 'Guido', 'Guillaume', 'Guillermo', 'Gunnar',
'Gunter', 'Gunther', 'Gus', 'Gustavo', 'Gustl', 'Gutierre', 'Guy',
'Götz', 'Günter', 'Günther', 'Hajo', 'Hamilton', 'Hamlet', 'Hampton',
'Hanley', 'Hannes', 'Hans', 'Harald', 'Hardy', 'Harley', 'Harlow',
'Harold', 'Haroun', 'Harrison', 'Harry', 'Harvey', 'Hasso', 'Hauke',
'Havel', 'Hector', 'Heiko', 'Heiner', 'Heino', 'Hektor', 'Helge',
'Helmut', 'Helmuth', 'Hendrick', 'Hendrik', 'Hennes', 'Henning',
'Henri', 'Henrick', 'Henrik', 'Henry', 'Herald', 'Herbie', 'Hercules',
'Herold', 'Herwig', 'Hieronymus', 'Hilarius', 'Holger', 'Holm',
'Homer', 'Horace', 'Horatio', 'Horaz', 'Howard', 'Howie', 'Hugh',
'Hugo', 'Humphrey', 'Hunter', 'Ignatius', 'Ignaz', 'Ignazio', 'Igor',
'Ilian', 'Ilja', 'Immanuel', 'Ingo', 'Ingolf', 'Ingvar', 'Irenäus',
'Irvin', 'Irving', 'Irwin', 'Isaac', 'Isaak', 'Isai', 'Isaiah',
'Isidor', 'Istvan', 'Ivan', 'Ivo', 'Jackson', 'Jacky', 'Jacob',
'Jacques', 'Jacquin', 'Jadon', 'Jago', 'Jaime', 'Jake', 'Jakob',
'Jamal', 'James', 'Jan', 'Janis', 'Jannes', 'Jannik', 'Janning',
'Janos', 'Janosch', 'Jaques', 'Jared', 'Jarik', 'Jarl', 'Jarno',
'Jaro', 'Jaromir', 'Jarrett', 'Jascha', 'Jason', 'Jasper', 'Jay',
'Jean', 'Jeff', 'Jefferson', 'Jeffrey', 'Jendrick', 'Jens', 'Jered',
'Jeremiah', 'Jeremias', 'Jeremie', 'Jeremy', 'Jerold', 'Jerom',
'Jerome', 'Jerrick', 'Jerry', 'Jesaja', 'Jesko', 'Jesse', 'Jim',
'Jimmy', 'Jirko', 'Jo', 'Joakim', 'Joao', 'Joaquin', 'Joe', 'Joel',
'Joey', 'John', 'Johnny', 'Jokim', 'Jonah', 'Jonas', 'Jonathan',
'Jonny', 'Jordan', 'Jordano', 'Jorge', 'Jose', 'Josef', 'Joseph',
'Josh', 'Joshua', 'Josias', 'Jost', 'Josua', 'Josue', 'Jourdain',
'Juan', 'Juanito', 'Jud', 'Jules', 'Julien', 'Julio', 'Julius',
'Jurij', 'Justin', 'Justinian', 'Justus', 'Jörg', 'Jürgen', 'Kain',
'Kaj', 'Kajetan', 'Kallistus', 'Karsten', 'Kasimir', 'Kaspar',
'Keamon', 'Keith', 'Ken', 'Kenan', 'Kenneth', 'Keno', 'Kersten',
'Kerwin', 'Kevin', 'Kian', 'Kilian', 'Kim', 'Kiran', 'Klaas', 'Klaus',
'Klemens', 'Kleopas', 'Knud', 'Knut', 'Kolja', 'Konrad', 'Konstantin',
'Korbin', 'Korbinian', 'Kordt', 'Kristian', 'Kristof', 'Kristoffer',
'Kuno', 'Kurt', 'Kyros', 'LLoyd', 'Lajos', 'Lambert', 'Lamberto',
'Larry', 'Lars', 'Laslo', 'Lasse', 'Laurent', 'Laurente', 'Laurentius',
'Laurenz', 'Laurenzo', 'Lawrence', 'Lazarus', 'Lazlo', 'Leander',
'Lee', 'Leif', 'Leigh', 'Lennart', 'Lenny', 'Lenz', 'Leo', 'Leon',
'Leonard', 'Leonardo', 'Leonce', 'Leone', 'Leonello', 'Leonhard',
'Leopold', 'Leopoldo', 'Leroy', 'Lesley', 'Lester', 'Leverett', 'Levi',
'Lew', 'Lewis', 'Lex', 'Liborius', 'Lienhard', 'Linus', 'Lion',
'Lionel', 'Lobo', 'Loic', 'Lorenz', 'Lorenzo', 'Loris', 'Lothaire',
'Lou', 'Louie', 'Louis', 'Lovis', 'Luc', 'Luca', 'Lucan', 'Lucas',
'Luciano', 'Lucien', 'Lucius', 'Ludovico', 'Ludwig', 'Luigi', 'Luis',
'Lukas', 'Luke', 'Lutger', 'Luther', 'Lutz', 'Lyonel', 'Maik', 'Malte',
'Malwin', 'Manolito', 'Manolo', 'Manuel', 'Marc', 'Marcel', 'Marcello',
'Marcellus', 'Marco', 'Marcus', 'Marek', 'Marian', 'Marin', 'Marino',
'Marinus', 'Mario', 'Marius', 'Mark', 'Markus', 'Marlon', 'Maro',
'Marten', 'Martin', 'Marvin', 'Massimo', 'Mathias', 'Mathieu',
'Mathis', 'Matt', 'Matteo', 'Matthes', 'Matthew', 'Matthias',
'Matthieu', 'Matthäus', 'Maurice', 'Mauritius', 'Mauritz', 'Maurizio',
'Mauro', 'Maurus', 'Max', 'Maxence', 'Maxi', 'Maxime', 'Maximilian',
'Maximilien', 'Melchior', 'Merlin', 'Michael', 'Michail', 'Michel',
'Michele', 'Mick', 'Mickey', 'Miguel', 'Mika', 'Mikael', 'Mike',
'Mikel', 'Miklos', 'Milan', 'Milo', 'Mirko', 'Miro', 'Miroslav',
'Mischa', 'Mitja', 'Morgan', 'Moritz', 'Morris', 'Morten', 'Nat',
'Nathan', 'Nathanael', 'Nathaniel', 'Nepomuk', 'Nero', 'Neron',
'Newton', 'Niccolo', 'Nicholas', 'Nick', 'Nicki', 'Nico', 'Nicola',
'Nicolai', 'Nicolaj', 'Nicolas', 'Niels', 'Nigel', 'Nikita', 'Niklas',
'Niklaus', 'Niko', 'Nikodemus', 'Nikolai', 'Nikolaus', 'Nils', 'Noah',
'Noel', 'Norbert', 'Norberto', 'Norman', 'Odin', 'Odo', 'Odysseus',
'Olaf', 'Oleg', 'Oliver', 'Olivier', 'Oliviero', 'Olof', 'Oluf',
'Omar', 'Omer', 'Orlando', 'Orson', 'Oskar', 'Osvaldo', 'Oswin',
'Otello', 'Othello', 'Otto', 'Ove', 'Owain', 'Owen', 'Paco', 'Paddy',
'Palmiro', 'Pancho', 'Paolo', 'Pascal', 'Pat', 'Patrice', 'Patricio',
'Patricius', 'Patrick', 'Patrizio', 'Patrizius', 'Paul', 'Paulin',
'Paulus', 'Pawel', 'Pedro', 'Peer', 'Pepe', 'Pepito', 'Peppone', 'Per',
'Percy', 'Perez', 'Pete', 'Peter', 'Phil', 'Philip', 'Philipp',
'Philippe', 'Philo', 'Piedro', 'Pier', 'Piero', 'Pierre', 'Piet',
'Pieter', 'Pietro', 'Pinkus', 'Pippin', 'Pitt', 'Pius', 'Placide',
'Placido', 'Placidus', 'Poldi', 'Quint', 'Quintin', 'Quintinus',
'Quintus', 'Quirin', 'Quirino', 'Raffaele', 'Raffaello', 'Raffaelo',
'Raimondo', 'Raimund', 'Raimundo', 'Rainer', 'Rainier', 'Ralf',
'Ralph', 'Ramon', 'Randolf', 'Randolph', 'Randy', 'Raoul', 'Raphael',
'Rasmus', 'Rasul', 'Raul', 'Ray', 'Raymond', 'Regnier', 'Reik',
'Reiner', 'Remo', 'Renato', 'Renatus', 'Renaud', 'Rene', 'Renja',
'Reto', 'Reynold', 'Ricardo', 'Riccardo', 'Rick', 'Ricky', 'Rico',
'Rinaldo', 'Robby', 'Robert', 'Roberto', 'Robin', 'Rocco', 'Rock',
'Rocky', 'Rod', 'Rodolfo', 'Rodolphe', 'Rodrigo', 'Rodrigue',
'Rodrique', 'Roger', 'Roland', 'Rolando', 'Rolf', 'Romain', 'Roman',
'Romano', 'Romeo', 'Romero', 'Ronald', 'Ronan', 'Ronny', 'Rory',
'Ross', 'Rowan', 'Rowland', 'Roy', 'Ruben', 'Rudolf', 'Rudolph',
'Ruggero', 'Rupert', 'Ryan', 'Salomon', 'Salomone', 'Salvador',
'Salvator', 'Salvatore', 'Sam', 'Sammy', 'Samuel', 'Samuele', 'Sander',
'Sandor', 'Sandro', 'Sandy', 'Sascha', 'Sauveur', 'Schorsch', 'Scipio',
'Scott', 'Sean', 'Sebastian', 'Sebastiano', 'Sebastien', 'Selim',
'Semjon', 'Sepp', 'Serenus', 'Serge', 'Sergej', 'Sergio', 'Sergius',
'Servatius', 'Severiano', 'Severin', 'Severo', 'Sidney', 'Sidonius',
'Silas', 'Silvain', 'Silvan', 'Silvano', 'Silvanus', 'Silverio',
'Silverius', 'Silvester', 'Silvestro', 'Silvio', 'Silvius', 'Simjon',
'Simon', 'Simone', 'Sinclair', 'Sixt', 'Sixtus', 'Slade', 'Solomon',
'Spencer', 'Stan', 'Stanislaus', 'Stanislaw', 'Stanley', 'Stefan',
'Stefano', 'Steffen', 'Sten', 'Stephan', 'Stephen', 'Steve', 'Steven',
'Stewart', 'Stig', 'Stuart', 'Sven', 'Sylvain', 'Sylvester', 'Söncke',
'Sören', 'Tam', 'Tarek', 'Tassilo', 'Tasso', 'Ted', 'Teddy',
'Teobaldo', 'Thaddäus', 'Theo', 'Theodor', 'Theodore', 'Thierry',
'Thimotheus', 'Thomas', 'Thommy', 'Thoralf', 'Thorben', 'Thore',
'Thorsten', 'Tiberio', 'Tiberius', 'Tibor', 'Till', 'Tim', 'Timmy',
'Timo', 'Timofej', 'Timon', 'Timoteo', 'Timothee', 'Timotheus',
'Timothy', 'Tin', 'Tito', 'Titus', 'Tizian', 'Tiziano', 'Tjade',
'Tjark', 'Tobi', 'Tobia', 'Tobiah', 'Tobias', 'Tobie', 'Tobis', 'Toby',
'Tom', 'Tommaso', 'Tommy', 'Toni', 'Tonio', 'Tony', 'Torben', 'Torin',
'Torsten', 'Tristan', 'Tycho', 'Tyler', 'Tyson', 'Udo', 'Ugo',
'Ugolino', 'Ulf', 'Uli', 'Ulli', 'Ulric', 'Ulrich', 'Ulrico',
'Umberto', 'Urbain', 'Urban', 'Urbano', 'Urias', 'Uriel', 'Ursus',
'Uwe', 'Valentiano', 'Valentin', 'Valentino', 'Valerian', 'Valerio',
'Valerius', 'Valery', 'Vasco', 'Veit', 'Veltin', 'Vernon', 'Vicente',
'Vico', 'Victor', 'Viktor', 'Vincent', 'Vincenzo', 'Vinzenez',
'Vinzenz', 'Virgil', 'Vitalis', 'Vito', 'Vittore', 'Vittoriano',
'Vittorio', 'Volker', 'Wallace', 'Walt', 'Warner', 'Warren', 'Wido',
'Wigand', 'Wilbur', 'Willi', 'William', 'Wilpert', 'Winston', 'Wolf',
'Wolfgang', 'Woodrow', 'Woody', 'Xaver',
)
first_names_female = (
'Abby', 'Abelina', 'Abigail', 'Adelaide', 'Adeline', 'Adina',
'Adriana', 'Adrienne', 'Afra', 'Agatha', 'Agnes', 'Aida', 'Aimee',
'Aischa', 'Albertine', 'Alea', 'Aleksandra', 'Alena', 'Alessa',
'Alessandra', 'Alessia', 'Alexa', 'Alexandra', 'Alexia', 'Alexis',
'Alice', 'Alicia', 'Alida', 'Alina', 'Aline', 'Alisa', 'Alissa',
'Alisson', 'Amabella', 'Amadea', 'Amanda', 'Amelia', 'Amelie', 'Amina',
'Amy', 'Ana', 'Anastasia', 'Andrea', 'Andrina', 'Anette', 'Angela',
'Angelika', 'Angelina', 'Angelique', 'Anina', 'Anine', 'Anita', 'Anja',
'Anjalie', 'Anke', 'Ann', 'Anna', 'Annabel', 'Annabell', 'Annabella',
'Annabelle', 'Anne', 'Annett', 'Annette', 'Annika', 'Annina', 'Antje',
'Antoinette', 'Antonella', 'Antonia', 'Arabella', 'Ariadne', 'Ariana',
'Ariane', 'Arianna', 'Ariella', 'Arielle', 'Arlene', 'Arlette',
'Arwenna', 'Ashley', 'Asta', 'Astrid', 'Audrey', 'Aurelia', 'Barbara',
'Bastiane', 'Bea', 'Beata', 'Beatrice', 'Beatrix', 'Becky', 'Belinda',
'Bella', 'Bellana', 'Belle', 'Benedikta', 'Benita', 'Bente', 'Beppina',
'Berenike', 'Berit', 'Bernadett', 'Bernadette', 'Bernadine', 'Betina',
'Betsy', 'Bettina', 'Betty', 'Bianca', 'Bianka', 'Bibiana', 'Bibiane',
'Birgit', 'Birgitt', 'Bodil', 'Bridget', 'Brigitta', 'Brigitte',
'Britta', 'Bärbel', 'Caitlin', 'Cameron', 'Camilla', 'Camille',
'Cammy', 'Cara', 'Carin', 'Carina', 'Carinna', 'Carla', 'Carmela',
'Carmelia', 'Carmen', 'Carol', 'Carola', 'Carole', 'Carolin',
'Carolina', 'Caroline', 'Carolyn', 'Carolyne', 'Cassandra', 'Cassie',
'Catalin', 'Caterina', 'Catharina', 'Catherine', 'Cathrin', 'Cathrine',
'Cathy', 'Catina', 'Catrin', 'Catriona', 'Cecile', 'Cecilia',
'Cecilie', 'Celeste', 'Celestine', 'Celina', 'Celine', 'Chantal',
'Charleen', 'Charlotte', 'Chatrina', 'Chelsea', 'Chiara', 'Chloe',
'Chrissy', 'Christa', 'Christiana', 'Christiane', 'Christin',
'Christina', 'Christine', 'Chyna', 'Ciara', 'Cinderella', 'Cindy',
'Cinja', 'Cira', 'Claire', 'Clara', 'Clarissa', 'Claudette', 'Claudia',
'Claudine', 'Clea', 'Cleannis', 'Clementia', 'Clementine', 'Cleo',
'Clio', 'Cliona', 'Clodia', 'Cloris', 'Coletta', 'Colette', 'Connie',
'Conny', 'Constance', 'Constanze', 'Cora', 'Coral', 'Coralie',
'Cordelia', 'Cordula', 'Corin', 'Corina', 'Corinna', 'Corinne',
'Cornelia', 'Cosette', 'Cosima', 'Cynthia', 'Daisy', 'Dajana',
'Daliah', 'Damaris', 'Damia', 'Damiana', 'Dana', 'Dania', 'Danica',
'Daniela', 'Daniele', 'Daniella', 'Danielle', 'Danja', 'Daphne',
'Darcie', 'Daria', 'Darina', 'Dawn', 'Dayna', 'Debbie', 'Debby',
'Debora', 'Deborah', 'Deetya', 'Delia', 'Delphine', 'Dena', 'Denise',
'Desdemona', 'Desideria', 'Desiree', 'Diana', 'Diane', 'Didina',
'Dina', 'Dinah', 'Dolly', 'Dolores', 'Domenica', 'Dominika',
'Dominique', 'Donna', 'Dora', 'Doreen', 'Dorina', 'Doris', 'Dorit',
'Doro', 'Dorothea', 'Dorothee', 'Dorothy', 'Dunja', 'Ebony', 'Edda',
'Edita', 'Edvige', 'Edwina', 'Eike', 'Eila', 'Eileen', 'Ela', 'Elaine',
'Eleanor', 'Elektra', 'Elena', 'Eleonora', 'Eleonore', 'Eliane',
'Elisa', 'Elisabeth', 'Elise', 'Elizabeth', 'Elke', 'Ella', 'Ellen',
'Elly', 'Eloise', 'Elsa', 'Elsbeth', 'Elvira', 'Elvire', 'Emanuela',
'Emanuelle', 'Emilia', 'Emilie', 'Emily', 'Emma', 'Enrica', 'Enya',
'Erika', 'Erin', 'Ernesta', 'Ernestina', 'Ernestine', 'Esmerelda',
'Esra', 'Estella', 'Estelle', 'Ester', 'Esther', 'Etiennette',
'Eudoxia', 'Eugenia', 'Eunike', 'Euphemia', 'Euphrasia', 'Eusebia',
'Eva', 'Evangelina', 'Evania', 'Eve', 'Evelien', 'Evelin', 'Eveline',
'Evelyn', 'Evelyne', 'Evette', 'Evi', 'Evita', 'Fabiane', 'Fabienne',
'Fabiola', 'Faith', 'Fanny', 'Farrah', 'Fatima', 'Faustina',
'Faustine', 'Fay', 'Faye', 'Faylinn', 'Federica', 'Fedora', 'Fee',
'Feli', 'Felice', 'Felicia', 'Felicitas', 'Felicity', 'Felizitas',
'Feodora', 'Fergie', 'Fidelia', 'Filia', 'Filiz', 'Finetta', 'Finja',
'Fiona', 'Fjodora', 'Flavia', 'Fleur', 'Fleur', 'Flo', 'Flora',
'Florence', 'Florentina', 'Florentine', 'Floria', 'Floriane',
'Florida', 'Florinda', 'Floris', 'Fortuna', 'Frances', 'Francesca',
'Francisca', 'Franka', 'Franzi', 'Franziska', 'Frauke', 'Freya',
'Friederike', 'Gabriela', 'Gabriele', 'Gabriella', 'Gabrielle', 'Gaby',
'Gail', 'Galatea', 'Galina', 'Gazelle', 'Gela', 'Geneva', 'Genoveva',
'Georgette', 'Georgia', 'Georgina', 'Geraldene', 'Geraldine',
'Germain', 'Germaine', 'Germana', 'Ghita', 'Gianna', 'Gigi', 'Gill',
'Gillian', 'Gina', 'Ginevra', 'Ginger', 'Ginny', 'Giovanna', 'Gisela',
'Gisele', 'Gisella', 'Giselle', 'Gitta', 'Giulia', 'Giuliana',
'Giulietta', 'Giuseppa', 'Giuseppina', 'Giustina', 'Gladys', 'Gloria',
'Glory', 'Goldie', 'Goldy', 'Grace', 'Gratia', 'Gratiana', 'Grazia',
'Greta', 'Gretel', 'Gunda', 'Gwen', 'Gwenda', 'Gwendolin', 'Gwendolyn',
'Gypsy', 'Hannah', 'Hanne', 'Harmony', 'Harriet', 'Hazel', 'Hedi',
'Hedy', 'Heide', 'Heidi', 'Heike', 'Helen', 'Helena', 'Helene',
'Helin', 'Hella', 'Hemma', 'Henrietta', 'Henriette', 'Henrike', 'Hera',
'Hetty', 'Hilary', 'Hilda', 'Hilde', 'Holiday', 'Holli', 'Holly',
'Hope', 'Ilana', 'Ilaria', 'Iliana', 'Iljana', 'Ilka', 'Ilona', 'Ilse',
'Ilyssa', 'Imke', 'Ina', 'India', 'Indira', 'Indra', 'Ines', 'Inga',
'Inge', 'Ingrid', 'Inka', 'Inken', 'Innozentia', 'Iona', 'Ira',
'Irena', 'Irene', 'Irina', 'Iris', 'Irisa', 'Irma', 'Isabel',
'Isabell', 'Isabella', 'Isabelle', 'Isis', 'Iva', 'Ivana', 'Ivona',
'Ivonne', 'Jaclyn', 'Jacqueline', 'Jacqui', 'Jael', 'Jamari', 'Jan',
'Jana', 'Jane', 'Janet', 'Janette', 'Janin', 'Janina', 'Janine',
'Janique', 'Janna', 'Jannine', 'Jarla', 'Jasmin', 'Jasmina', 'Jasmine',
'Jeanette', 'Jeanine', 'Jeanne', 'Jeannette', 'Jeannine', 'Jekaterina',
'Jelena', 'Jenifer', 'Jenna', 'Jennelle', 'Jennessa', 'Jennie',
'Jennifer', 'Jenny', 'Jennyfer', 'Jess', 'Jessica', 'Jessie',
'Jessika', 'Jill', 'Joan', 'Joana', 'Joann', 'Joanna', 'Joelle',
'Johanna', 'Jolanda', 'Jona', 'Jordana', 'Josee', 'Josefa', 'Josefina',
'Josefine', 'Josepha', 'Josephine', 'Josiane', 'Josie', 'Jovita',
'Joy', 'Joyce', 'Juana', 'Juanita', 'Judith', 'Judy', 'Julia',
'Juliana', 'Juliane', 'Julianne', 'Julie', 'Juliet', 'Juliette',
'July', 'June', 'Justina', 'Justine', 'Justise', 'Jutta', 'Jördis',
'Kamilia', 'Kamilla', 'Karen', 'Karima', 'Karin', 'Karina', 'Karla',
'Karola', 'Karolin', 'Karolina', 'Karoline', 'Kassandra', 'Katalin',
'Katarina', 'Kate', 'Katharina', 'Katharine', 'Katherina', 'Katherine',
'Kathleen', 'Kathrin', 'Kathrina', 'Kathryn', 'Kathy', 'Katinka',
'Katja', 'Katjana', 'Katrin', 'Katrina', 'Katrine', 'Kayla', 'Keala',
'Keelin', 'Kendra', 'Kerstin', 'Kiana', 'Kiara', 'Kim', 'Kira',
'Kirsten', 'Kirstin', 'Kita', 'Klara', 'Klarissa', 'Klaudia',
'Kleopatra', 'Kolina', 'Konstanze', 'Kora', 'Kordula', 'Kori',
'Kornelia', 'Krista', 'Kristiane', 'Kristin', 'Kristina', 'Kristine',
'Kyra', 'Käthe', 'Laila', 'Lana', 'Lara', 'Laria', 'Larissa', 'Laurel',
'Lauren', 'Laurence', 'Laurentia', 'Lauretta', 'Lavina', 'Laya', 'Lea',
'Leah', 'Leandra', 'Lee', 'Leigh', 'Leila', 'Lena', 'Leona', 'Leonie',
'Leontine', 'Leopoldine', 'Lesley', 'Leslie', 'Levana', 'Levia', 'Lia',
'Liane', 'Libusa', 'Licia', 'Lidia', 'Liesa', 'Liesbeth', 'Liese',
'Liesel', 'Lilian', 'Liliane', 'Lilith', 'Lilli', 'Lillian', 'Lilo',
'Lily', 'Lina', 'Linda', 'Lioba', 'Lisa', 'Lisbeth', 'Lise', 'Lisette',
'Liv', 'Livana', 'Livia', 'Liz', 'Liza', 'Lizzie', 'Lola', 'Lora',
'Lorena', 'Loretta', 'Lori', 'Lorraine', 'Lotte', 'Lotus', 'Louise',
'Luana', 'Luca', 'Lucia', 'Luciana', 'Lucie', 'Lucy', 'Luigia',
'Luisa', 'Luise', 'Luna', 'Luzia', 'Lydia', 'Lydie', 'Lynette', 'Lynn',
'Lätizia', 'Maddalena', 'Madelaine', 'Madeleine', 'Madeline',
'Madison', 'Madita', 'Madleine', 'Madlen', 'Madlene', 'Mae', 'Magda',
'Magdalena', 'Maggy', 'Magret', 'Maia', 'Maike', 'Maiken', 'Mailin',
'Maja', 'Malea', 'Malee', 'Malin', 'Malina', 'Mandy', 'Manja', 'Manon',
'Manuela', 'Mara', 'Maraike', 'Marcella', 'Marcelle', 'Marcia',
'Mareike', 'Maren', 'Margaret', 'Margareta', 'Margarete', 'Margaretha',
'Margarita', 'Margaritha', 'Margherita', 'Margit', 'Margitta',
'Margot', 'Margret', 'Margreth', 'Marguerite', 'Maria', 'Mariam',
'Marian', 'Mariana', 'Marianna', 'Marianne', 'Marie', 'Marieke',
'Mariella', 'Marielle', 'Marietta', 'Marija', 'Marika', 'Marilies',
'Marilyn', 'Marina', 'Marion', 'Marisa', 'Marissa', 'Marita',
'Maritta', 'Marjorie', 'Marla', 'Marleen', 'Marlen', 'Marlena',
'Marlene', 'Marlies', 'Marlis', 'Marsha', 'Martha', 'Marthe',
'Martina', 'Mary', 'Maryse', 'Mascha', 'Mathilda', 'Mathilde',
'Matilde', 'Mattea', 'Maude', 'Maura', 'Maureen', 'Maximiliane', 'May',
'Maya', 'Meg', 'Megan', 'Meike', 'Melanie', 'Melia', 'Melina',
'Melinda', 'Melissa', 'Melitta', 'Melodie', 'Meloney', 'Mercedes',
'Meret', 'Meri', 'Merle', 'Merline', 'Meryem', 'Mia', 'Micaela',
'Michaela', 'Michele', 'Michelle', 'Milena', 'Milla', 'Milva', 'Mimi',
'Minerva', 'Minna', 'Mira', 'Mirabella', 'Mireille', 'Mirella',
'Mireya', 'Miriam', 'Mirijam', 'Mirjam', 'Moesha', 'Moira', 'Mona',
'Moni', 'Monica', 'Monika', 'Monique', 'Monja', 'Morgane', 'Muriel',
'Myriam', 'Nadin', 'Nadine', 'Nadja', 'Nadjana', 'Naemi', 'Nancy',
'Nanette', 'Nani', 'Naomi', 'Nastasja', 'Natalia', 'Natalie',
'Natanja', 'Natascha', 'Nathalie', 'Neeja', 'Nena', 'Neria', 'Nerine',
'Nicol', 'Nicola', 'Nicole', 'Nicoletta', 'Nicolette', 'Nike',
'Nikola', 'Nina', 'Ninja', 'Ninon', 'Noa', 'Noelle', 'Noemi', 'Noemie',
'Nora', 'Norma', 'Nuala', 'Olga', 'Olivia', 'Ophelia', 'Orania',
'Orla', 'Ornella', 'Orsola', 'Ottilie', 'Paloma', 'Pam', 'Pamela',
'Pandora', 'Paola', 'Paolina', 'Pascale', 'Pat', 'Patrice', 'Patricia',
'Patrizia', 'Patsy', 'Patty', 'Paula', 'Paulette', 'Paulina',
'Pauline', 'Penelope', 'Pepita', 'Petra', 'Philine', 'Philippa',
'Philomele', 'Philomena', 'Phoebe', 'Phyllis', 'Pia', 'Pier', 'Prica',
'Prisca', 'Priscilla', 'Priscille', 'Priska', 'Rachel', 'Rachel',
'Rachelle', 'Radomila', 'Rafaela', 'Raffaela', 'Raffaella', 'Ragna',
'Rahel', 'Raja', 'Ramona', 'Raphaela', 'Raquel', 'Rebecca', 'Rebekka',
'Regina', 'Regine', 'Reisha', 'Renata', 'Renate', 'Renee', 'Resi',
'Rhea', 'Rhoda', 'Rhonda', 'Ricarda', 'Riccarda', 'Rike', 'Rita',
'Roberta', 'Romana', 'Romina', 'Romy', 'Ronja', 'Rosa', 'Rosalia',
'Rosalie', 'Rosalinda', 'Rosalinde', 'Rosaline', 'Rose', 'Roseline',
'Rosetta', 'Rosette', 'Rosi', 'Rosina', 'Rosine', 'Rossana',
'Roswitha', 'Roxana', 'Roxane', 'Roxanne', 'Roxy', 'Rubina', 'Ruth',
'Sabine', 'Sabrina', 'Sahra', 'Sally', 'Salome', 'Salvina', 'Samanta',
'Samantha', 'Samira', 'Sandra', 'Sandrina', 'Sandrine', 'Sandy',
'Sanne', 'Sanya', 'Saphira', 'Sara', 'Sarah', 'Sarina', 'Sascha',
'Saskia', 'Scarlet', 'Scarlett', 'Schirin', 'Selina', 'Selma',
'Serafina', 'Seraina', 'Seraphin', 'Seraphina', 'Seraphine', 'Serena',
'Severina', 'Severine', 'Shana', 'Shanaya', 'Shantala', 'Shari',
'Sharlene', 'Sharon', 'Sheena', 'Sheila', 'Sheryl', 'Shirin',
'Shirley', 'Shirlyn', 'Sibilla', 'Sibyl', 'Sibylle', 'Siegrid',
'Sigrid', 'Sigrun', 'Silja', 'Silke', 'Silvana', 'Silvia', 'Silviane',
'Simona', 'Simone', 'Simonette', 'Simonne', 'Sina', 'Sindy', 'Sinja',
'Sissy', 'Skyla', 'Smarula', 'Smilla', 'Sofia', 'Sofie', 'Sonia',
'Sonja', 'Sonnele', 'Sonya', 'Sophia', 'Sophie', 'Soraya', 'Stefanie',
'Steffi', 'Stella', 'Stephanie', 'Sumehra', 'Summer', 'Susan',
'Susanna', 'Susanne', 'Susi', 'Suzan', 'Suzanne', 'Suzette', 'Svea',
'Svenja', 'Swane', 'Sybilla', 'Sybille', 'Sydney', 'Sylvana', 'Sylvia',
'Sylvie', 'Tabitha', 'Taissa', 'Tamara', 'Tamina', 'Tania', 'Tanita',
'Tanja', 'Tara', 'Tatiana', 'Tatjana', 'Taya', 'Tecla', 'Telka',
'Teodora', 'Teona', 'Teresa', 'Terry', 'Tess', 'Tessa', 'Tessie',
'Thea', 'Thekla', 'Theodora', 'Theres', 'Theresa', 'Therese',
'Theresia', 'Tiana', 'Tiffany', 'Tilly', 'Timna', 'Tina', 'Tiziana',
'Tonja', 'Toril', 'Tosca', 'Tracey', 'Traudl', 'Trixi', 'Tycho',
'Tyra', 'Ulla', 'Ulli', 'Ulrica', 'Ulrike', 'Undine', 'Urania',
'Ursel', 'Ursina', 'Ursula', 'Ursule', 'Uschi', 'Uta', 'Ute',
'Valentina', 'Valentine', 'Valeria', 'Valerie', 'Valeska', 'Vanadis',
'Vanessa', 'Vanja', 'Varinka', 'Venetia', 'Vera', 'Verena', 'Verona',
'Veronica', 'Veronika', 'Veronique', 'Vesla', 'Vicky', 'Victoire',
'Victoria', 'Viki', 'Viktoria', 'Vilja', 'Viola', 'Violet', 'Violetta',
'Violette', 'Virginia', 'Virginie', 'Vittoria', 'Viviana', 'Viviane',
'Vivien', 'Vivienne', 'Vreneli', 'Vreni', 'Vroni', 'Wencke', 'Weneke',
'Wibke', 'Wilja', 'Willow', 'Wilma',
)
last_names = (
'Ackermann', 'Adler', 'Adolph', 'Albers', 'Anders', 'Atzler', 'Aumann',
'Austermühle', 'Bachmann', 'Barkholz', 'Barth', 'Bauer', 'Baum',
'Becker', 'Beckmann', 'Beer', 'Beier', 'Bender', 'Benthin', 'Berger',
'Beyer', 'Bien', 'Biggen', 'Binner', 'Birnbaum', 'Bloch', 'Blümel',
'Bohlander', 'Bohnbach', 'Bolander', 'Bolnbach', 'Bolzmann', 'Bonbach',
'Boucsein', 'Briemer', 'Bruder', 'Buchholz', 'Budig', 'Butte', 'Bähr',
'Bärer', 'Börner', 'Carsten', 'Caspar', 'Christoph', 'Cichorius',
'Conradi', 'Davids', 'Dehmel', 'Dickhard', 'Dietz', 'Dippel',
'Ditschlerin', 'Dobes', 'Dowerg', 'Drewes', 'Drub', 'Drubin', 'Dussen',
'Dussen van', 'Döhn', 'Döring', 'Dörr', 'Dörschner', 'Eberhardt',
'Ebert', 'Eberth', 'Eckbauer', 'Ehlert', 'Eigenwillig', 'Eimer',
'Ernst', 'Etzler', 'Etzold', 'Faust', 'Fechner', 'Fiebig', 'Finke',
'Fischer', 'Flantz', 'Fliegner', 'Franke', 'Freudenberger', 'Fritsch',
'Fröhlich', 'Förster', 'Gehringer', 'Geisel', 'Geisler', 'Geißler',
'Gerlach', 'Gertz', 'Gierschner', 'Gieß', 'Girschner', 'Gnatz',
'Gorlitz', 'Gotthard', 'Graf', 'Grein Groth', 'Gröttner', 'Gude',
'Gumprich', 'Gunpf', 'Gute', 'Gutknecht', 'Haase', 'Haering', 'Hahn',
'Hamann', 'Hande', 'Harloff', 'Hartmann', 'Hartung', 'Hauffer',
'Hecker', 'Heidrich', 'Hein', 'Heinrich', 'Heintze', 'Heinz',
'Hellwig', 'Henck', 'Hendriks', 'Henk', 'Henschel', 'Hentschel',
'Hering', 'Hermann', 'Hermighausen', 'Herrmann', 'Hertrampf', 'Heser',
'Hesse', 'Hethur', 'Hettner', 'Heuser', 'Heydrich', 'Heß', 'Hiller',
'Hoffmann', 'Hofmann', 'Holsten', 'Holt', 'Holzapfel', 'Hornich',
'Hornig', 'Huhn', 'Hänel', 'Häring', 'Höfig', 'Hölzenbecher', 'Hörle',
'Hövel', 'Hübel', 'Jacob', 'Jacobi', 'Jessel', 'Jockel', 'Johann',
'Jopich', 'Junck', 'Juncken', 'Jungfer', 'Junitz', 'Junk', 'Junken',
'Jäckel', 'Jähn', 'Jäkel', 'Jäntsch', 'Jüttner', 'Kabus', 'Kade',
'Kallert', 'Kambs', 'Karge', 'Karz', 'Kaul', 'Kensy', 'Keudel',
'Killer', 'Kitzmann', 'Klapp', 'Klemm', 'Klemt', 'Klingelhöfer',
'Klotz', 'Knappe', 'Kobelt', 'Koch', 'Koch II', 'Kohl', 'Kostolzin',
'Kramer', 'Kranz', 'Krause', 'Kraushaar', 'Krebs', 'Krein', 'Kreusel',
'Kroker', 'Kruschwitz', 'Kuhl', 'Kusch', 'Käster', 'Köhler', 'Köster',
'Kühnert', 'Lachmann', 'Ladeck', 'Lange', 'Langern', 'Lehmann',
'Liebelt', 'Lindau', 'Lindner', 'Linke', 'Loos', 'Lorch', 'Losekann',
'Löchel', 'Löffler', 'Löwer', 'Lübs', 'Mangold', 'Mans', 'Margraf',
'Martin', 'Matthäi', 'Meister', 'Mende', 'Mentzel', 'Metz', 'Meyer',
'Mielcarek', 'Mies', 'Misicher', 'Mitschke', 'Mohaupt', 'Mosemann',
'Mude', 'Mälzer', 'Möchlichen', 'Mühle', 'Mülichen', 'Müller', 'Naser',
'Nerger', 'Nette', 'Neureuther', 'Neuschäfer', 'Niemeier', 'Noack',
'Nohlmans', 'Oderwald', 'Oestrovsky', 'Ortmann', 'Otto', 'Paffrath',
'Patberg', 'Pechel', 'Pergande', 'Peukert', 'Pieper', 'Plath', 'Pohl',
'Preiß', 'Pruschke', 'Putz', 'Pärtzelt', 'Pölitz', 'Radisch',
'Reichmann', 'Reinhardt', 'Reising', 'Renner', 'Reuter', 'Riehl',
'Ring', 'Ritter', 'Rogge', 'Rogner', 'Rohleder', 'Roht', 'Rose',
'Rosemann', 'Rosenow', 'Roskoth', 'Rudolph', 'Ruppersberger',
'Ruppert', 'Rust', 'Rädel', 'Röhrdanz', 'Röhricht', 'Römer',
'Rörricht', 'Sager', 'Salz', 'Sauer', 'Schaaf', 'Schacht', 'Scheel',
'Scheibe', 'Schenk', 'Scheuermann', 'Schinke', 'Schleich', 'Schleich',
'Schlosser', 'Schmidt', 'Schmidtke', 'Schmiedecke', 'Schmiedt',
'Scholl', 'Scholtz', 'Scholz', 'Schomber', 'Schottin', 'Schuchhardt',
'Schulz', 'Schuster', 'Schweitzer', 'Schwital', 'Schäfer', 'Schönland',
'Schüler', 'Segebahn', 'Seidel', 'Seifert', 'Seifert', 'Seip',
'Siering', 'Sontag', 'Sorgatz', 'Speer', 'Spieß', 'Stadelmann',
'Stahr', 'Staude', 'Steckel', 'Steinberg', 'Stey', 'Stiebitz',
'Stiffel', 'Stoll', 'Stolze', 'Striebitz', 'Stroh', 'Stumpf', 'Sucker',
'Säuberlich', 'Söding', 'Sölzer', 'Süßebier', 'Textor', 'Thanel',
'Thies', 'Tintzmann', 'Tlustek', 'Trapp', 'Trommler', 'Trub', 'Trubin',
'Trupp', 'Tröst', 'Trüb', 'Tschentscher', 'Täsche', 'Ullmann',
'Ullrich', 'Vogt', 'Vollbrecht', 'Wagenknecht', 'Wagner', 'Walter',
'Warmer', 'Weihmann', 'Weimer', 'Weinhage', 'Weinhold', 'Weitzel',
'Weiß', 'Weller', 'Wende', 'Wernecke', 'Werner', 'Wesack', 'Wiek',
'Wieloch', 'Wilms', 'Wilmsen', 'Winkler', 'Wirth', 'Wohlgemut', 'Wulf',
'Wulff', 'Wähner', 'Zahn', 'Ziegert', 'Zimmer', 'Zirme', 'Zobel',
'Zorbach', 'Zänker', 'auch Schlauchin',
)
prefixes_male = (
'Herr', 'Dr.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.',
)
prefixes_female = (
'Frau', 'Dr.', 'Ing.', 'Dipl.-Ing.', 'Prof.', 'Univ.Prof.',
)
suffixes = ('B.Sc.', 'B.A.', 'B.Eng.', 'MBA.', )
@classmethod
def first_name(cls):
return cls.random_element(
(cls.first_name_male(), cls.first_name_female()))
@classmethod
def first_name_male(cls):
return cls.random_element(cls.first_names_male)
@classmethod
def first_name_female(cls):
return cls.random_element(cls.first_names_female)
@classmethod
def prefix(cls):
return cls.random_element((cls.prefix_male(), cls.prefix_female()))
@classmethod
def prefix_male(cls):
return cls.random_element(cls.prefixes_male)
@classmethod
def prefix_female(cls):
return cls.random_element(cls.prefixes_female)
@classmethod
def suffix(cls):
return cls.random_element(cls.suffixes)

View file

@ -0,0 +1,20 @@
# coding=utf-8
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+49(0)##########',
'+49(0)#### ######',
'+49 (0) #### ######',
'+49(0) #########',
'+49(0)#### #####',
'0##########',
'0#########',
'0#### ######',
'0#### #####',
'(0####) ######',
'(0####) #####',
)

View file

View file

@ -0,0 +1,146 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}',
'{{first_name_male}} {{last_name}}-{{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}',
'{{first_name_female}} {{last_name}}-{{last_name}}',
'{{prefix_male}} {{first_name_male}} {{last_name}}',
'{{prefix_female}} {{first_name_female}} {{last_name}}',
'{{prefix_male}} {{first_name_male}} {{last_name}}',
'{{prefix_female}} {{first_name_female}} {{last_name}}'
)
first_names_male = (
'Adam', 'Albert', 'Aksel', 'Alex', 'Alexander', 'Alf', 'Allan',
'Alvin', 'Anders', 'André', 'Andreas', 'Anton', 'Arne', 'Asger',
'ugust', 'Benjamin', 'Benny', 'Bent', 'Bertil', 'Bertram', 'Birger',
'Bjarne', 'Bo', 'Bob', 'Bobby', 'Boe', 'Boris', 'Borris',
'Brian', 'Bruno', 'Bøje', 'Børge', 'Carl', 'Carlo', 'Carsten',
'Casper', 'Christian', 'Christoffer', 'Christopher', 'Claus', 'Clavs', 'Curt',
'Dan', 'Daniel', 'Danny', 'David', 'Dennis', 'Ebbe', 'Einar',
'Einer', 'Elias', 'Emil ', 'Eric', 'Erik', 'Erling', 'Ernst',
'Esben', 'Finn', 'Flemming ', 'Frank', 'Frans', 'Freddy', 'Frede',
'Frederik', 'Frode', 'Georg ', 'George', 'Gert', 'Gorm', 'Gunnar',
'Gunner', 'Gustav', 'Hans', 'Helge', 'Henrik', 'Henry', 'Herbert',
'Herman', 'Hjalte', 'Holger', 'Hugo', 'Ib', 'Ivan', 'Iver',
'Jack', 'Jacob', 'Jakob', 'James', 'Jan', 'Jano', 'Jarl',
'Jean', 'Jens', 'Jeppe', 'Jesper', 'Jim', 'Jimmy', 'Joachim',
'Joakim', 'Johan', 'Johannes', 'John', 'Johnnie', 'Johnny', 'Jon',
'Jonas', 'Jonathan', 'Julius', 'Jørgen', 'Karl', 'Karlo', 'Karsten',
'Kaspar', 'Kasper', 'Keld', 'Ken', 'Kenn', 'Kenneth', 'Kenny',
'Kent', 'Kim', 'Kjeld', 'Klaus', 'Klavs', 'Kristian', 'Kurt',
'Kåre', 'Lars', 'Lasse', 'Laurits', 'Laus', 'Laust', 'Leif',
'Lennarth', 'Lucas', 'Ludvig', 'Mads', 'Magnus', 'Malthe', 'Marcus',
'Marius', 'Mark', 'Martin', 'Mathias', 'Matthias', 'Michael', 'Mik',
'Mikael', 'Mike', 'Mikkel', 'Mogens', 'Morten', 'Nick', 'Nicklas',
'Nicolai', 'Nicolaj', 'Niels', 'Nikolai', 'Nikolaj', 'Nils', 'Noah',
'Ole', 'Olfert', 'Oliver', 'Oscar', 'Oskar', 'Osvald', 'Otto',
'Ove', 'Palle', 'Patrick', 'Paw', 'Peder', 'Per', 'Pete',
'Peter', 'Paul', 'Philip', 'Poul', 'Preben', 'Ragnar', 'Ragner',
'Rasmus', 'René', 'Richard', 'Richardt', 'Robert', 'Robin', 'Rolf',
'Ron', 'Ronni', 'Ronnie', 'Ronny', 'Ruben', 'Rune', 'Sam',
'Sebastian', 'Silas', 'Simon', 'Simon', 'Sonny', 'Steen', 'Stefan',
'Sten', 'Stephan', 'Steve', 'Steven', 'Stig', 'Svenning', 'Søren',
'Tage', 'Tejs', 'Thomas', 'Tim', 'Timmy', 'Tobias', 'Tom',
'Tommy', 'Tonny', 'Torben', 'Troels', 'Uffe', 'Ulf', 'Ulrik',
'Vagn', 'Valdemar', 'Verner', 'Victor', 'Villads', 'Werner', 'William',
'Yan', 'Yannick', 'Yngve', 'Zacharias', 'Ziggy', 'Øivind', 'Øjvind',
'Ørni', 'Øvli', 'Øystein', 'Øyvind', 'Åbjørn', 'Aage', 'Åge',
)
first_names_female = (
'Abelone', 'Agnes', 'Agnete', 'Alberte', 'Alma', 'Amalie', 'Amanda',
'Andrea', 'Ane', 'Anette', 'Anna', 'Anne', 'Annemette', 'Annette',
'Asta', 'Astrid', 'Benedicte', 'Benedikte', 'Bente', 'Benthe', 'Berit',
'Berta', 'Beth', 'Bettina', 'Birgit', 'Birgitte', 'Birte', 'Birthe',
'Bitten', 'Bodil', 'Britt', 'Britta', 'Camilla', 'Carina', 'Carla',
'Caroline', 'Cathrine', 'Catrine', 'Cecilie', 'Charlotte', 'Christina', 'Christine',
'Cirkeline', 'Clara', 'Connie', 'Conny', 'Dagmar', 'Dagny', 'Daniella',
'Dina', 'Ditte', 'Doris', 'Dorte', 'Dorthe', 'Edith', 'Elin',
'Elisabeth', 'Ella', 'Ellen', 'Elna', 'Else', 'Elsebeth', 'Emilie',
'Emily', 'Emma', 'Erna', 'Esmarelda', 'Ester', 'Filippa', 'Frederikke',
'Freja', 'Frida', 'Gerda', 'Gertrud', 'Gitte', 'Grete', 'Grethe',
'Gundhild', 'Gunhild', 'Gurli', 'Gyda', 'Hannah', 'Hanne', 'Heidi',
'Helen', 'Helle', 'Henriette', 'Herdis', 'Iben', 'Ida', 'Inga',
'Inge', 'Ingelise', 'Inger', 'Ingrid', 'Irma', 'Isabella', 'Jacobine',
'Jacqueline', 'Janne', 'Janni', 'Jannie', 'Jasmin', 'Jean', 'Jenny',
'Joan', 'Johanne', 'Jonna', 'Josefine', 'Josephine ', 'Julie', 'Justina',
'Jytte', 'Karen', 'Karin', 'Karina', 'Karla', 'Karoline', 'Katcha',
'Katja', 'Katrine', 'Kirsten', 'Kirstin', 'Kirstine', 'Klara', 'Kristina',
'Kristine', 'Laura', 'Lea', 'Lena', 'Lene', 'Leonora', 'Line',
'Liva', 'Lona', 'Lone', 'Lotte', 'Louise', 'Lærke', 'Maiken',
'Maja', 'Majken', 'Malene', 'Malou', 'Maren', 'Margit', 'Margrethe',
'Maria', 'Marianne', 'Marie', 'Marlene', 'Mathilde', 'Maya', 'Merete',
'Merethe', 'Mette ', 'Mia', 'Michala', 'Michelle', 'Mie', 'Mille',
'Mimi', 'Minna', 'Nadia', 'Naja', 'Nana', 'Nanna', 'Nanni',
'Natasha', 'Natasja', 'Nete', 'Nicoline', 'Nina', 'Nora', 'Oda',
'Odeline', 'Odette', 'Ofelia', 'Olga', 'Olivia', 'Patricia', 'Paula',
'Paulina', 'Pernille', 'Pia', 'Ragna', 'Ragnhild', 'Randi', 'Rebecca',
'Regitse', 'Regitze', 'Rikke', 'Rita', 'Ritt', 'Ronja', 'Rosa',
'Ruth', 'Sabine', 'Sandra', 'Sanne', 'Sara', 'Sarah', 'Selma',
'Signe', 'Sigrid', 'Silje', 'Sille', 'Simone', 'Sine', 'Sofia',
'Sofie', 'Solveig', 'Solvej', 'Sonja', 'Sophie', 'Stina', 'Stine',
'Susanne', 'Sussanne', 'Sussie', 'Sys', 'Sørine', 'Søs', 'Tammy',
'Tanja', 'Thea', 'Tilde', 'Tina', 'Tine', 'Tove', 'Trine',
'Ulla', 'Ulrike', 'Ursula', 'Vera', 'Victoria', 'Viola', 'Vivian',
'Weena', 'Winni', 'Winnie', 'Xenia', 'Yasmin', 'Yda', 'Yrsa',
'Yvonne', 'Zahra', 'Zara', 'Zehnia', 'Zelma', 'Zenia', 'Åse',
)
last_names = (
'Jensen', 'Nielsen', 'Hansen', 'Pedersen', 'Andersen', 'Christensen', 'Larsen',
'Sørensen', 'Rasmussen', 'Petersen', 'Jørgensen', 'Madsen', 'Kristensen', 'Olsen',
'Christiansen', 'Thomsen', 'Poulsen', 'Johansen', 'Knudsen', 'Mortensen', 'Møller',
'Jacobsen', 'Jakobsen', 'Olesen', 'Frederiksen', 'Mikkelsen', 'Henriksen', 'Laursen',
'Lund', 'Schmidt', 'Eriksen', 'Holm', ' Kristiansen', 'Clausen', 'Simonsen',
'Svendsen', 'Andreasen', 'Iversen', 'Jeppesen', 'Mogensen', 'Jespersen', 'Nissen',
'Lauridsen', 'Frandsen', 'Østergaard', 'Jepsen', 'Kjær', 'Carlsen', 'Vestergaard',
'Jessen', 'Nørgaard', 'Dahl', 'Christoffersen', 'Skov', 'Søndergaard', 'Bertelsen',
'Bruun', 'Lassen', 'Bach', 'Gregersen', 'Friis', 'Johnsen', 'Steffensen',
'Kjeldsen', 'Bech', 'Krogh', ' Lauritsen', 'Danielsen', 'Mathiesen', 'Andresen',
'Brandt', 'Winther', 'Toft', 'Ravn', 'Mathiasen', 'Dam', 'Holst',
'Nilsson', 'Lind', 'Berg', 'Schou', 'Overgaard', 'Kristoffersen', 'Schultz',
'Klausen', 'Karlsen', 'Paulsen', 'Hermansen', 'Thorsen', 'Koch', 'Thygesen',
)
prefixes_male = (
'Hr', 'Dr.', 'Prof.', 'Univ.Prof.'
)
prefixes_female = (
'Fru', 'Dr.', 'Prof.', 'Univ.Prof.'
)
@classmethod
def first_name(cls):
return cls.random_element((cls.first_name_male(), cls.first_name_female()))
@classmethod
def first_name_male(cls):
return cls.random_element(cls.first_names_male)
@classmethod
def first_name_female(cls):
return cls.random_element(cls.first_names_female)
@classmethod
def prefix(cls):
return cls.random_element((cls.prefix_male(), cls.prefix_female()))
@classmethod
def prefix_male(cls):
return cls.random_element(cls.prefixes_male)
@classmethod
def prefix_female(cls):
return cls.random_element(cls.prefixes_female)

View file

@ -0,0 +1,38 @@
# coding=utf-8
"""
fake.address(): Μαστρογιαννίδου 7,
ΤΚ 36777 Αλεξανδρούπολη
fake.line_address(): Αργυροπούλου 3, 34924 Δράμα
fake.street_name(): Αρδείας
fake.street_address(): Λεωφ. Ευόσμου 44
fake.building_number(): 131
fake.postcode(): ΤΚ 991 51
fake.city(): Καστοριά
fake.region(): Πέλλα
fake.country(): Μπρουνέι
fake.latitude(): 38.818785
fake.longitude(): 27.367441
fake.latlng(): (36.706833, 28.523434)
fake.name(): Θεοδώρα Αλεξανδράκη
fake.name_male(): Σόλων-Αγγελής Πετράκης
fake.name_female(): Μαρία Ξυγκάκου
fake.first_name(): Μάριος
fake.first_name_male(): Επαμεινώνδας
fake.first_name_female(): Ρεβέκα
fake.last_name(): Φραγκόπουλος
fake.last_name_male(): Αποστολάκης
fake.last_name_female(): Χαλκίδου
fake.text(): Πιο προγραμματιστής παραδώσεις γραμμή στη νιρβάνα
κι. Πολύ έγραψες ημέρα τι συνεντεύξεις. Γραμμής
βρίσκονται αποθηκευτικού από συνάδελφος μέχρι τα.
fake.phone_number(): 210 761 8331
fake.email(): aimilia.lioliopoulou@doukatziskapetanios.gr
fake.free_email(): yzygouris@gmail.com
fake.company_email(): eutychia.tsachaki@ioakeim.gr
fake.user_name(): konstantina.maniotis
fake.url(): http://www.anastasiou.org/
"""

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,80 @@
# coding=utf-8
from __future__ import unicode_literals
from ..internet import Provider as InternetProvider
import re
from faker.utils.decorators import slugify_domain
class Provider(InternetProvider):
free_email_domains = (
'hol.gr', 'gmail.com', 'hotmail.gr', 'yahoo.gr', 'googlemail.gr',
'otenet.gr', 'forthnet.gr',
)
tlds = ('com', 'com', 'com', 'net', 'org', 'gr', 'gr', 'gr')
@slugify_domain
def user_name(self):
pattern = self.random_element(self.user_name_formats)
return latinize(self.bothify(self.generator.parse(pattern)))
@slugify_domain
def domain_word(self):
company = self.generator.format('company')
company_elements = company.split(' ')
company = latinize(company_elements.pop(0))
return company
# ``slugify`` doesn't replace greek glyphs.
def remove_accents(value):
"""
Remove accents from characters in the given string.
"""
search = 'ΆΈΉΊΌΎΏάέήίόύώΪϊΐϋΰ'
replace = 'ΑΕΗΙΟΥΩαεηιουωΙιιυυ'
def replace_accented_character(match):
matched = match.group(0)
if matched in search:
return replace[search.find(matched)]
return matched
return re.sub(r'[{0}]+'.format(search), replace_accented_character, value)
def latinize(value):
"""
Converts (transliterates) greek letters to latin equivalents.
"""
def replace_double_character(match):
search = ('Θ Χ Ψ '
'θ χ ψ '
'ΟΥ ΑΥ ΕΥ '
'Ου Αυ Ευ '
'ου αυ ευ').split()
replace = ('TH CH PS '
'th ch ps '
'OU AU EU '
'Ou Au Eu '
'ou au eu').split()
matched = match.group(0)
if matched in search:
return replace[search.index(matched)]
return matched
search = 'ΑΒΓΔΕΖΗΙΚΛΜΝΞΟΠΡΣΣΤΥΦΩαβγδεζηικλμνξοπρσςτυφω'
replace = 'AVGDEZIIKLMNXOPRSSTUFOavgdeziiklmnxoprsstyfo'
def replace_greek_character(match):
matched = list(match.group(0))
value = map(lambda l: replace[search.find(l)], matched)
return ''.join(value)
return re.sub(r'[{0}]+'.format(search),
replace_greek_character, re.sub(
r'([ΘΧΨθχψ]+|ΟΥ|ΑΥ|ΕΥ|Ου|Αυ|Ευ|ου|αυ|ευ)',
replace_double_character,
remove_accents(value)))

View file

@ -0,0 +1,75 @@
# coding=utf-8
from __future__ import unicode_literals
from ..lorem import Provider as LoremProvider
class Provider(LoremProvider):
common_words = (
'άρα', 'ένα', 'ένας', 'έξι', 'έτσι', 'έχω', 'ήδη', 'ίδιο', 'αν', 'ανά',
'από', 'ας', 'για', 'δε', 'δεν', 'δύο', 'εγώ', 'εδώ', 'εκτός', 'επί', 'θα',
'κάτι', 'και', 'κι', 'μέχρι', 'μα', 'μας', 'με', 'μη', 'μην', 'μια', 'μιας',
'μου', 'να', 'ναι', 'ο', 'οι', 'πάντα', 'πάντως', 'πιο', 'πλέον', 'ποια',
'πολύ', 'που', 'πως', 'σαν', 'σας', 'σε', 'σου', 'στα', 'στη', 'στις',
'στο', 'τα', 'τη', 'την', 'της', 'τι', 'τις', 'το', 'τον', 'του', 'τους',
'των', 'ως', 'όσο', 'όταν', 'ότι', 'όχι'
)
word_list = common_words * 2 + (
'άλγεβρα', 'άπειρα', 'άρα', 'άρθρων', 'άτομο', 'έγραψες', 'έλεγχος',
'έξι', 'έρθει', 'έστειλε', 'έστελνε', 'έτοιμος', 'έτσι',
'έχω', 'ήδη', 'ίδιο', 'αγοράζοντας', 'αθόρυβες', 'ακούσει', 'αλγόριθμου',
'αναγκάζονται', 'ανακλύψεις', 'αναφέρονται', 'αναφορά',
'ανεπιθύμητη', 'ανταγωνιστής', 'αντιλήφθηκαν', 'ανώδυνη', 'απίστευτα',
'απαράδεκτη', 'απαραίτητο', 'απαρατήρητο', 'απλό', 'αποδείξεις',
'αποθηκευτικού', 'αποκλειστικούς', 'απομόνωση', 'αποστηθίσει',
'αποφάσισε', 'από', 'απόλαυσε', 'αρέσει', 'αρπάζεις', 'αρχεία',
'ατόμου', 'αυτήν', 'αυτός', 'αφήσεις', 'βάζοντας', 'βαθμό',
'βασανίζουν', 'βγήκε', 'βιαστικά', 'βιβλίο', 'βουτήξουν', 'βρίσκονται',
'γέλασαν', 'γεγονός', 'γειτονιάς', 'γεύματος', 'για', 'γιαυτό',
'γνωρίζουμε', 'γνωστή', 'γράψει', 'γραμμές', 'γραμμή', 'γραμμής',
'γραφικά', 'δίνοντας', 'δε', 'δείξει', 'δεδομένων', 'δεν',
'δημιουργήσεις', 'δημιουργείς', 'δημιουργια', 'διάβασε', 'διάσημα',
'διαδίκτυο', 'διακοπή', 'διακοπής', 'διακόψουμε', 'διαπιστώνεις',
'διασφαλίζεται', 'διαφήμιση', 'διαχειριστής', 'διευθυντές', 'διοικητικό',
'διολισθήσεις', 'διορθώσει', 'διορθώσεις', 'δοκιμάσεις', 'δουλεύει',
'δούλευε', 'δυστυχής', 'δυστυχώς', 'δωροδοκηθούν', 'δύο', 'είχαμε',
'εγώ', 'εδώ', 'ειδικά', 'εικόνες', 'εκδόσεις', 'εκείνου', 'εκθέσεις',
'εκτελέσει', 'εκτελέσεις', 'εκτελείται', 'εκτός', 'ελέγχου', 'εντολές',
'εξακολουθεί', 'εξαρτάται', 'εξοργιστικά', 'επί', 'επενδυτής',
'επεξεργασία', 'επιδιορθώσεις', 'επιδιόρθωση', 'επιστρέφουν',
'επιχείριση', 'εργάστηκε', 'εργαζόμενοι', 'εργαζόμενων', 'εργαλείων',
'εργασίας', 'εργοστασίου', 'ερωτήσεις', 'ερώτηση', 'εσωτερικών',
'εταιρείες', 'ευκολότερο', 'εφαμοργής', 'εφαρμογή', 'εφαρμογής',
'ζητήσεις', 'ημέρα', 'θέλεις', 'θέμα', 'θέματα', 'θυμάμαι',
'ιδιαίτερα', 'κάνε', 'κάνεις', 'κάτι', 'και', 'καλύτερο', 'κανένας',
'κανείς', 'κανόνα', 'καταλάθος', 'κειμένων', 'κι', 'κλπ', 'κοιτάζοντας',
'κρατάει', 'κρατήσουν', 'κόλπα', 'κόψεις', 'κύκλο', 'κώδικάς', 'κώδικα',
'λέει', 'λίγο', 'λαμβάνουν', 'λες', 'λετπά', 'λιγότερο', 'λοιπόν', 'μάθε',
'μάλλον', 'μάτσο', 'μέγιστη', 'μέρος', 'μέσης', 'μέχρι', 'μαγικά',
'μερικούς', 'μεταγλωτίσει', 'μεταγλωτιστής',
'μεταφραστής', 'μετράει', 'μετρήσεις', 'μηχανής',
'μπορούσες', 'μπουν', 'νέα', 'νέο', 'νέου', 'νέων', 'νιρβάνα', 'νόμιζες',
'ξέχασε', 'ορίστε', 'πάντα', 'πάντως', 'πάρα', 'πάρεις', 'πήρε', 'παίξουν',
'παίρνει', 'παίρνουν', 'πακέτων', 'παράγοντες', 'παράδειγμα',
'παραγωγικής', 'παραδοτέου', 'παραδώσεις', 'παραπάνω', 'πεδία',
'περίπου', 'περιβάλλον', 'περιβάλλοντος', 'περιεχόμενα', 'περιμένουν',
'περισσότερες', 'περισσότερη', 'πες', 'πετάνε', 'πετάξαμε', 'πετούν',
'πηγαίου', 'πιο', 'πλέον', 'ποια', 'πολύ', 'ποσοστό', 'που',
'προβληματική', 'προγραμματιστές', 'προγραμματιστής', 'προκαλείς',
'προκύπτουν', 'προσεκτικά', 'προσθέσει', 'προσλάμβανες', 'προσοχή',
'προσπαθήσεις', 'προσπαθούν', 'προϊόντα', 'πρόσληψη', 'πρώτης', 'πρώτο',
'πρώτοι', 'πόρτες', 'ροή', 'ρουτίνα', 'ρωτάει', 'ρωτήσει',
'σίγουρος', 'σημαντικό', 'σημαντικός', 'σημεία',
'σκεφτείς', 'σπίτι', 'στέλνοντάς', 'στήλες', 'σταματάς',
'στραβά', 'συγγραφής', 'συγγραφείς',
'συγκεντρωμένοι', 'συγχρόνως', 'συγχωνευτεί', 'συνάδελφος', 'συνέχεια',
'συνεντεύξεις', 'συνεχώς', 'συνηθίζουν', 'σχεδιαστής', 'σωστά',
'τέλειοι', 'τα', 'ταξινομεί', 'τεκμηριώνει', 'τελειώσει', 'τεσσαρών',
'τοπικές', 'τρέξει', 'τρόπο', 'τρόποι', 'τύπου', 'τύπους', 'υπηρεσία',
'υποψήφιο', 'υψηλότερη', 'υόρκη', 'φίλος', 'φαινόμενο', 'φακέλους',
'φράση', 'χάος', 'χαμηλός', 'χαρακτηριστικό', 'χαρακτηριστικών',
'χαρτιού', 'χειρότερα', 'χρειάζονται', 'χρησιμοποίησέ',
'χρησιμοποιούνταν', 'χρησιμοποιούσες', 'χρησιμοποιώντας',
'χρονοδιαγράμματα', 'χρονοδιαγράμματος', 'χρόνου', 'χώρου', 'ωραίο',
'ύψος', 'ώρα',
)

View file

@ -0,0 +1,470 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats_male = (
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}} {{last_name_male}}',
'{{first_name_male}}-{{first_name_male}} {{last_name_male}}',
)
formats_female = (
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}} {{last_name_female}}',
'{{first_name_female}}-{{first_name_female}} {{last_name_female}}',
)
formats = formats_male + formats_female
first_names_male = (
'Άγγελος', 'Άνθιμος', 'Άρης', 'Άριστος', 'Έκτορας', 'Έξαρχος', 'Ίκαρος',
'Ίων', 'Αίας', 'Αβραάμ', 'Αγάπιος', 'Αγαθάγγελος', 'Αγαθοκλής',
'Αγαθόνικος', 'Αγαμέμνων', 'Αγαπητός', 'Αγγελής', 'Αγησίλαος', 'Αδάμ',
'Αδαμάντιος', 'Αθανάσιος', 'Αθηναγόρας', 'Αθηνόδωρος', 'Αιμίλιος',
'Αιμιλιανός', 'Ακρίτας', 'Ακριβός', 'Αλέξανδρος', 'Αλέξιος', 'Αλκιβιάδης',
'Αμβρόσιος', 'Ανάργυρος', 'Ανέστης', 'Αναγνώστης', 'Ανανίας', 'Αναξαγόρας',
'Αναστάσιος', 'Ανδρέας', 'Ανδροκλής', 'Ανδρόνικος', 'Ανθούλης', 'Αντίγονος',
'Αντίπατρος', 'Αντύπας', 'Αντώνιος', 'Απόλλων', 'Απόστολος', 'Αρίσταρχος',
'Αργύριος', 'Αριστείδης', 'Αριστομένης', 'Αριστοτέλης', 'Αριστοφάνης',
'Αριστόβουλος', 'Αρτέμης', 'Αρτέμιος', 'Αρχέλαος', 'Αρχιμήδης', 'Ασημάκης',
'Ασημής', 'Ασκληπιός', 'Αστέριος', 'Αυγέρης', 'Αυξέντιος', 'Αφέντης',
'Αχιλλέας', 'Αύγουστος', 'Βάιος', 'Βαλάντης', 'Βαλέριος', 'Βαλεντίνος',
'Βαρδής', 'Βαρθολομαίος', 'Βαρσάμος', 'Βασίλειος', 'Βασίλης', 'Βελισσάριος',
'Βενέτιος', 'Βενιαμίν', 'Βενιζέλος', 'Βησσαρίων', 'Βικέντιος', 'Βλάσης',
'Βλάσιος', 'Βλαδίμηρος', 'Βρασίδας', 'Βύρων', 'Γαβριήλ', 'Γαλάτιος',
'Γαληνός', 'Γαρύφαλλος', 'Γεράσιμος', 'Γεώργιος', 'Γιάννης', 'Γιώργος',
'Γκίκας', 'Γρηγόριος', 'Δήμος', 'Δίκαιος', 'Δαμασκηνός', 'Δαμιανός',
'Δανιήλ', 'Δημήτρης', 'Δημήτριος', 'Δημοκράτης', 'Δημοσθένης', 'Δημόκριτος',
'Διαμαντής', 'Διογένης', 'Διομήδης', 'Διονύσιος', 'Δομήνικος', 'Δράκων',
'Δρόσος', 'Δωρόθεος', 'Ειρηναίος', 'Ελευθέριος', 'Ελισσαίος', 'Εμμανουήλ',
'Επαμεινώνδας', 'Ερμής', 'Ερμόλαος', 'Ερρίκος', 'Ερωτόκριτος', 'Ευάγγελος',
'Ευγένιος', 'Ευδόξιος', 'Ευθύμιος', 'Ευκλείδης', 'Ευμένιος', 'Ευριπίδης',
'Ευσέβιος', 'Ευστάθιος', 'Ευστράτιος', 'Ευτύχιος', 'Εφραίμ', 'Ζήνων',
'Ζαφείρης', 'Ζαφείριος', 'Ζαχαρίας', 'Ζηνόβιος', 'Ηλίας', 'Ηρακλής',
'Ηρόδοτος', 'Ησαΐας', 'Θέμης', 'Θαλής', 'Θεμιστοκλής', 'Θεοδόσης',
'Θεοδόσιος', 'Θεολόγος', 'Θεοτόκης', 'Θεοφάνης', 'Θεοφύλακτος', 'Θεοχάρης',
'Θεόδουλος', 'Θεόδωρος', 'Θεόκλητος', 'Θεόπιστος', 'Θεόφιλος', 'Θεόφραστος',
'Θησεύς', 'Θουκυδίδης', 'Θρασύβουλος', 'Θωμάς', 'Ιάκωβος', 'Ιάσονας',
'Ιάσων', 'Ιγνάτιος', 'Ιερεμίας', 'Ιερόθεος', 'Ιερώνυμος', 'Ιορδάνης',
'Ιουλιανός', 'Ιούλιος', 'Ιπποκράτης', 'Ιππόλυτος', 'Ισίδωρος', 'Ισαάκ',
'Ιωάννης', 'Ιωακείμ', 'Ιωνάς', 'Ιωσήφ', 'Κάρολος', 'Κίμων', 'Καλλίνικος',
'Κηρύκος', 'Κλέαρχος', 'Κλήμης', 'Κλεάνθης', 'Κλεομένης', 'Κλεόβουλος',
'Κλεόπας', 'Κομνηνός', 'Κορνήλιος', 'Κοσμάς', 'Κρυστάλλης', 'Κυπριανός',
'Κυριάκος', 'Κυριαζής', 'Κωνσταντίνος', 'Κύρος', 'Κώστας', 'Λάζαρος',
'Λάμπρος', 'Λάσκαρης', 'Λέανδρος', 'Λέων', 'Λαέρτης', 'Λαοκράτης',
'Λαυρέντιος', 'Λεμονής', 'Λεονάρδος', 'Λεωνίδας', 'Λογοθέτης', 'Λουδοβίκος',
'Λουκάς', 'Λουκιανός', 'Λυκούργος', 'Λύσανδρος', 'Μάριος', 'Μάρκος',
'Μένανδρος', 'Μίνωας', 'Μαγδαληνός', 'Μακάριος', 'Μαρίνος', 'Μαρτίνος',
'Ματθαίος', 'Μαυρίκιος', 'Μαυροειδής', 'Μαυρούδης', 'Μαύρος', 'Μεγακλής',
'Μεθόδιος', 'Μελέτιος', 'Μενέλαος', 'Μερκούριος', 'Μηνάς', 'Μικές',
'Μιλτιάδης', 'Μιχάλης', 'Μιχαήλ', 'Νέαρχος', 'Νίκανδρος', 'Νίκος', 'Νίκων',
'Ναθαναήλ', 'Ναπολέων', 'Νεκτάριος', 'Νεοκλής', 'Νεόφυτος', 'Νικήτας',
'Νικηφόρος', 'Νικόδημος', 'Νικόλαος', 'Ξανθός', 'Ξενοφών', 'Οδυσσέας',
'Οδυσσεύς', 'Ορέστης', 'Ορφέας', 'Πάρις', 'Πάτροκλος', 'Πέτρος', 'Πίνδαρος',
'Παναγής', 'Παναγιώτης', 'Πανορμίτης', 'Πανταζής', 'Παντελής',
'Παντελεήμων', 'Παράσχος', 'Παρασκευάς', 'Πασχάλης', 'Παυσανίας', 'Παύλος',
'Πελοπίδας', 'Περικλής', 'Πλάτων', 'Πλούταρχος', 'Πολυζώης', 'Πολυκράτης',
'Πολυχρόνιος', 'Πολύβιος', 'Πολύδωρος', 'Πολύκαρπος', 'Πραξιτέλης',
'Προκόπιος', 'Προμηθέας', 'Πρόδρομος', 'Πυθαγόρας', 'Πύρρος', 'Ράλλης',
'Ρήγας', 'Ρίζος', 'Ραφαήλ', 'Ραχήλ', 'Ροδόφλος', 'Ρωμανός', 'Σάββας',
'Σέργιος', 'Σαμουήλ', 'Σαράντης', 'Σεβαστιανός', 'Σεραφείμ', 'Σιρανούς',
'Σολομών', 'Σοφοκλής', 'Σπήλιος', 'Σπυρίδων', 'Στέλλιος', 'Στέργιος',
'Στέφανος', 'Σταμάτης', 'Σταμάτιος', 'Σταύρος', 'Στυλιανός', 'Συμεών',
'Σωκράτης', 'Σωτήρης', 'Σωτήριος', 'Σόλων', 'Σώζων', 'Τίμων', 'Τίτος',
'Ταξίαρχος', 'Ταξιάρχης', 'Τζανέτος', 'Τηλέμαχος', 'Τηλεμαχος', 'Τιμολέων',
'Τιμόθεος', 'Τριαντάφυλλος', 'Τρύφων', 'Τσαμπίκος', 'Υάκινθος', 'Φίλιππος',
'Φαίδων', 'Φανούριος', 'Φιλήμων', 'Φλοριάντ', 'Φοίβος', 'Φρίξος',
'Φραγκίσκος', 'Φρειδερίκος', 'Φωκάς', 'Φωκίων', 'Φωτεινός', 'Φώτιος',
'Χάρις', 'Χαράλαμπος', 'Χαρίλαος', 'Χαρίτος', 'Χρήστος', 'Χρίστος',
'Χριστιάν', 'Χριστόδουλος', 'Χριστόφορος', 'Χρυσοβαλάντιος', 'Χρυσόστομος',
'Χρύσανθος', 'Όθων', 'Όμηρος',
)
first_names_female = (
'Άλκηστις', 'Άννα', 'Άρτεμις', 'Έλλη', 'Ήβη', 'Ήλια', 'Ήρα', 'Ίρις',
'Αγάθη', 'Αγάπη', 'Αγαθή', 'Αγγελική', 'Αγλαΐα', 'Αγνή', 'Αγόρω',
'Αδαμαντία', 'Αηδόνα', 'Αθανασία', 'Αθηνά', 'Αθηνοδώρα', 'Αικατερίνη',
'Αιμιλία', 'Ακριβή', 'Αλίκη', 'Αλεξάνδρα', 'Αλεξία', 'Αλκινόη', 'Αλκμήνη',
'Αμαλία', 'Αμβροσία', 'Αμφιθέα', 'Αμφιτρίτη', 'Ανάργυρη', 'Αναστασία',
'Ανατολή', 'Ανδριανή', 'Ανδρομάχη', 'Ανδρομέδα', 'Ανδρονίκη', 'Ανθή',
'Ανθούλα', 'Αννίκα', 'Αντιγόνη', 'Αντωνία', 'Απολλωνία', 'Αποστολία',
'Αρέθα', 'Αργυρούλα', 'Αργυρώ', 'Αρετή', 'Αριάδνη', 'Αριστέα', 'Αρτεμισία',
'Αρχοντία', 'Ασημίνα', 'Ασημούλα', 'Ασπασία', 'Αστέρω', 'Αταλάντη', 'Αυγή',
'Αυγουστίνα', 'Αφέντρα', 'Αφροδίτη', 'Αχιλλεία', 'Βάγια', 'Βέρα', 'Βαγιανή',
'Βαλάντω', 'Βαλέρια', 'Βαλεντίνα', 'Βαρβάρα', 'Βαρσαμία', 'Βασιλεία',
'Βασιλική', 'Βεατρίκη', 'Βελισσαρία', 'Βενετία', 'Βερονίκη', 'Βερόνικα',
'Βησσαρία', 'Βικέντια', 'Βικτωρία', 'Βικτόρια', 'Βιολέτα', 'Βιργινία',
'Βλασία', 'Βρυσηίς', 'Γαβριέλλα', 'Γαλάτεια', 'Γαλήνη', 'Γαρυφαλλιά',
'Γενοβέφα', 'Γερακίνα', 'Γερασιμούλα', 'Γεσθημανή', 'Γεωργία', 'Γιαννούλα',
'Γιασεμή', 'Γιολάντα', 'Γκόλφω', 'Γλαύκη', 'Γλυκερία', 'Γραμματική',
'Δάφνη', 'Δέσποινα', 'Δήμητρα', 'Δαβιδούλα', 'Δαμασκηνή', 'Δαμιανή',
'Δανάη', 'Δημούλα', 'Διαλεκτή', 'Διαμάντω', 'Διαμαντούλα', 'Διδώ', 'Δικαία',
'Διονυσία', 'Δούκισσα', 'Δροσιά', 'Δωροθέα', 'Δόμνα', 'Ειρήνη', 'Ελένη',
'Ελέσσα', 'Ελεονόρα', 'Ελευθερία', 'Ελισάβετ', 'Ελπίδα', 'Ελπίς',
'Εμμανουέλα', 'Επιστήμη', 'Ερασμία', 'Ερατώ', 'Εριέτα', 'Εριφύλη',
'Ερμιόνη', 'Ερωφίλη', 'Ευαγγελία', 'Ευανθία', 'Ευγενία', 'Ευδοκία',
'Ευδοξία', 'Ευθαλία', 'Ευθυμία', 'Ευλαμπία', 'Ευμορφία', 'Ευπραξία',
'Ευρυδίκη', 'Ευρύκλεια', 'Ευσεβία', 'Ευσεβεία', 'Ευσταθία', 'Ευστρατία',
'Ευτέρπη', 'Ευτυχία', 'Ευφροσύνη', 'Εύα', 'Εύκλεια', 'Ζαμπέτα', 'Ζαμπία',
'Ζαφειρία', 'Ζαχαρένια', 'Ζαχαρούλα', 'Ζηναϊς', 'Ζηνοβία', 'Ζησούλα', 'Ζωή',
'Ηλέκτρα', 'Ηλιάνα', 'Ηράκλεια', 'Ηώ', 'Θάλεια', 'Θέκλα', 'Θέμις', 'Θέτις',
'Θαλασσινή', 'Θεανώ', 'Θεμιστόκλεια', 'Θεοδοσία', 'Θεοδούλη', 'Θεοδότη',
'Θεοδώρα', 'Θεολογία', 'Θεοπίστη', 'Θεοφίλη', 'Θεοφανία', 'Θεοφύλακτη',
'Θεοχαρούλα', 'Θεόκλεια', 'Θεώνη', 'Θηρεσία', 'Θωμαίς', 'Ιακωβίνα',
'Ιγνατία', 'Ινώ', 'Ιοκάστη', 'Ιορδανία', 'Ιουλία', 'Ιουλιανή', 'Ιππολύτη',
'Ισαβέλλα', 'Ισιδώρα', 'Ισμήνη', 'Ιφιγένεια', 'Ιωάννα', 'Ιωσηφίνα', 'Καλή',
'Καλλίνικη', 'Καλλιρρόη', 'Καλλιρόη', 'Καλλιόπη', 'Καλομοίρα', 'Καλυψώ',
'Κανέλλα', 'Καρυοφυλλιά', 'Κασσάνδρα', 'Κασσιανή', 'Κατερίνα', 'Κερασιά',
'Κικιλία', 'Κλαίρη', 'Κλειώ', 'Κλεονίκη', 'Κλεοπάτρα', 'Κλημεντίνη',
'Κλυταιμνήστρα', 'Κοκκώνα', 'Κομνηνή', 'Κονδυλία', 'Κοραλία', 'Κορνηλία',
'Κρινιώ', 'Κρυσταλλένια', 'Κυβέλη', 'Κυδωνία', 'Κυπαρισσία', 'Κυπριανή',
'Κυράτσα', 'Κυριακή', 'Κωνσταντία', 'Κωνσταντίνα', 'Κωστούλα', 'Κόσμια',
'Λήδα', 'Λαζαρία', 'Λαμπρινή', 'Λασκαρίνα', 'Λαυρεντία', 'Λεμονιά',
'Λευκοθέα', 'Λεωνιδιά', 'Λεώνη', 'Λητώ', 'Λουίζα', 'Λουκία', 'Λουλουδένια',
'Λυγερή', 'Λυδία', 'Μάνθα', 'Μάρθα', 'Μαγδαληνή', 'Μακρίνα', 'Μαλαμάτη',
'Μαλαματένια', 'Μαλβίνα', 'Μαντώ', 'Μαρία', 'Μαρίνα', 'Μαργαρίτα',
'Μαργιέττα', 'Μαριάνθη', 'Μαριάννα', 'Μαριγώ', 'Μαριλένα', 'Μαρκέλλα',
'Μαρωτέσα', 'Ματίνα', 'Ματθίλδη', 'Ματρώνη', 'Μαύρα', 'Μελένια', 'Μελέτια',
'Μελίνα', 'Μελπομένη', 'Μερόπη', 'Μεταξία', 'Μηλιά', 'Μινέρβα', 'Μιράντα',
'Μιχαέλα', 'Μυρσίνη', 'Μυρτώ', 'Μόσχα', 'Νίκη', 'Ναταλία', 'Ναταλίνα',
'Ναυσικά', 'Νεκταρία', 'Νερατζιά', 'Νεφέλη', 'Νεόκλεια', 'Νικητία',
'Νικολέτα', 'Νικολίτσα', 'Νομική', 'Νταίζη', 'Ντανιέλα', 'Ξένη', 'Ξανθή',
'Ξανθίππη', 'Οδύσσεια', 'Ολύμπια', 'Ουρανία', 'Πέτρα', 'Παγώνα', 'Παναγία',
'Παναγιώτα', 'Πανδώρα', 'Παντελία', 'Παντούλα', 'Πανωραία', 'Παρέσσα',
'Παρασκευή', 'Παρθένα', 'Πασχαλιά', 'Παταπία', 'Παυλίνα', 'Πελαγία',
'Περικλεία', 'Περιστέρα', 'Περσεφόνη', 'Πηγή', 'Πηνελόπη', 'Πιερρίνα',
'Ποθητή', 'Πολυνίκη', 'Πολυξένη', 'Πολυτίμη', 'Πολυχρονία', 'Πολύβια',
'Πολύδωρα', 'Πολύμνια', 'Πουλχερία', 'Πούλια', 'Προδρομία', 'Πωλίνα', 'Ρέα',
'Ραλλία', 'Ρεβέκα', 'Ρεβέκκα', 'Ρεγγίνα', 'Ρηγούλα', 'Ροδάνθη', 'Ροδαμάνθη',
'Ροδιά', 'Ροδόκλεια', 'Ρουμπίνη', 'Ρούσα', 'Ρωξάνη', 'Ρόζα', 'Σάρρα',
'Σαββούλα', 'Σαλώμη', 'Σαπφώ', 'Σεβαστή', 'Σεβαστιανή', 'Σελήνη', 'Σεμίνα',
'Σεραφεία', 'Σμαράγδα', 'Σουλτάνα', 'Σουμέλα', 'Σοφία', 'Σπάρτη',
'Σπυράννα', 'Σπυριδούλα', 'Στέλλα', 'Σταματίνα', 'Σταυρούλα', 'Στεργιανή',
'Στεργιαννώ', 'Στεφανία', 'Στυλιανή', 'Συμέλα', 'Συμεωνία', 'Συμεώνη',
'Σωζούσα', 'Σωτηρία', 'Σωφρονία', 'Ταξιαρχία', 'Τατιάνα', 'Τερψιχόρη',
'Τζένη', 'Τιμοθέα', 'Τριαντάφυλλη', 'Τριανταφυλλιά', 'Τρισεύγενη',
'Τρυφωνία', 'Τσαμπίκα', 'Υακίνθη', 'Υβόννη', 'Υπαπαντή', 'Φαίδρα', 'Φανή',
'Φανουρία', 'Φεβρωνία', 'Φερενίκη', 'Φιλίππα', 'Φιλαρέτη', 'Φιλιππία',
'Φιλιώ', 'Φιλοθέη', 'Φιλομήλα', 'Φλωρίνα', 'Φλωρεντία', 'Φλώρα', 'Φοίβη',
'Φραντζέσκα', 'Φρειδερίκη', 'Φρύνη', 'Φωτεινή', 'Χάιδω', 'Χάρη', 'Χαρά',
'Χαρίκλεια', 'Χαραλαμπία', 'Χιονιά', 'Χλόη', 'Χριστίνα', 'Χριστιάνα',
'Χριστοδούλα', 'Χριστοφόρα', 'Χριστόφιλη', 'Χρυσάνθη', 'Χρυσή', 'Χρυσαυγή',
'Χρυσαφένια', 'Χρυσοβαλάντου', 'Χρυσοβαλάντω', 'Χρυσούλα', 'Χρυσόστομη',
'Όλγα',
)
first_names = first_names_male + first_names_female
last_names_male = (
'Αβαγιανός', 'Αβραμίδης', 'Αβραμιώτης', 'Αγαλιώτης', 'Αγγελάκος', 'Αγγελής',
'Αγγελίδης', 'Αγγελίκας', 'Αγγελόπουλος', 'Αγκυρόπουλος', 'Αδαμόπουλος',
'Αετόπουλος', 'Αθανασάκης', 'Αθανασόπουλος', 'Ακαλίδης', 'Ακριτίδης',
'Ακριώτης', 'Αλατζάκης', 'Αλαφάκης', 'Αλεξανδρόπουλος', 'Αλεξόπουλος',
'Αμπατζιάνης', 'Αμπλιάνιτης', 'Αμυγδαλάκης', 'Αναστασάκης', 'Αναστασίου',
'Αναστασόπουλος', 'Αναστόπουλος', 'Ανδρεανίδης', 'Ανδριανός',
'Ανδρικόπουλος', 'Ανδριόπουλος', 'Ανδριώτης', 'Ανδρουλάκης',
'Ανδρουλιδάκης', 'Αντωνάκος', 'Αντωνέας', 'Αντωνίου', 'Αντωνιάδης',
'Αντωνόπουλος', 'Αξαόπουλος', 'Αξιώτης', 'Αποστολάκης', 'Αποστολίδης',
'Αποστολακάκης', 'Αποστολόπουλος', 'Αραμπατζής', 'Αργυρής', 'Αργυρίου',
'Αργυρόπουλος', 'Αρμένης', 'Αρχαυλής', 'Ασαρίδης', 'Ασημακόπουλος',
'Ασημόπουλος', 'Αυγουστής', 'Αφρουδάκης', 'Βάρσος', 'Βάσσης', 'Βαβουλίδης',
'Βαβουράκης', 'Βακαλάκης', 'Βακαλής', 'Βαλαβάνης', 'Βαλασίδης', 'Βαλτάς',
'Βαμβακάς', 'Βανδώρος', 'Βαρακλής', 'Βαρδάκης', 'Βαρσάμης', 'Βασιλάκης',
'Βασιλείου', 'Βασιλογιάννης', 'Βαχουθιανάκης', 'Βαϊτσόπουλος', 'Βελεντζάς',
'Βιδαλάκης', 'Βιλδός', 'Βιολάτος', 'Βιτσαξής', 'Βλάχος', 'Βλαχονικολέας',
'Βλησαρούλης', 'Βολικάκης', 'Βορλόκας', 'Βουτσάς', 'Βουτσελας', 'Βούκας',
'Βούλγαρης', 'Βούλκος', 'Βούρας', 'Βώσσος', 'Γάτος', 'Γαβριδάκης',
'Γαλατούλας', 'Γαρουφαλής', 'Γαρυφαλίδης', 'Γενετζάκης', 'Γεννηματάς',
'Γεντίμης', 'Γεράρδης', 'Γεροδήμος', 'Γερόπουλος', 'Γεωργακόπουλος',
'Γεωργαλάς', 'Γεωργαλής', 'Γεωργούδης', 'Γεωργούλας', 'Γιαννάκης',
'Γιαννέλος', 'Γιαννές', 'Γιαννακέας', 'Γιαννακίτσας', 'Γιαννακουδάκης',
'Γιαννακόπουλος', 'Γιαννούκος', 'Γιαννόπουλος', 'Γιαπατζής', 'Γιασημάκης',
'Γιατρομανωλάκης', 'Γιωτάκης', 'Γιώτης', 'Γκάγκας', 'Γκίκας', 'Γκίνης',
'Γκαγκαουδάκης', 'Γκαλίου', 'Γκανάτσιος', 'Γκατζογιάννης', 'Γκικόπουλος',
'Γκιολδελής', 'Γκιτσάκης', 'Γκουτζαμάνης', 'Γκούβελος', 'Γκούσκος',
'Γκότσης', 'Γουργουλής', 'Γούσιος', 'Γρίβας', 'Γραμματικόπουλος',
'Γραμματικός', 'Γρατσιάς', 'Γρεβενάρης', 'Γρετός', 'Γρηγορίου',
'Γρηγοριάδης', 'Γρηγορόπουλος', 'Δάρας', 'Δέλιος', 'Δίγκας', 'Δακαναλής',
'Δανέζης', 'Δανελής', 'Δανιηλίδης', 'Δερμιτζάκης', 'Δεσύλλας', 'Δημησκής',
'Δημητρίου', 'Δημητρόπουλος', 'Δημοβελής', 'Δημόπουλος', 'Διακάκης',
'Διαμαντής', 'Δινεζάκης', 'Δουβίκας', 'Δουβρόπουλος', 'Δουκάς', 'Δουκατζής',
'Δουλάμης', 'Δουλγεράκης', 'Δουμάς', 'Δουράνης', 'Δούνης', 'Δραζιώτης',
'Δρακάκης', 'Δρακόπουλος', 'Δρουλιάς', 'Δόβας', 'Δόσης', 'Ελευθερίου',
'Εμπορόπουλος', 'Εσπερίδης', 'Ευαγγελάτος', 'Ευαγγελινός', 'Ευκαρπίδης',
'Ευστρατόπουλος', 'Ευταξιάς', 'Έψιμος', 'Ζαραφέτας', 'Ζαφείρης', 'Ζαχαρίου',
'Ζενεμπίσης', 'Ζευγίτης', 'Ζηδιανάκης', 'Ζηματίκας', 'Ζηρός', 'Ζιάκας',
'Ζιώγος', 'Ζολώτας', 'Ζορμπάς', 'Ζουκής', 'Ζουλούμης', 'Ζούνης', 'Ζτούκος',
'Ζυγούρης', 'Ζώνιος', 'Ζώτος', 'Θεοδοσίου', 'Θεοδωρικάκος', 'Θεοδωρόπουλος',
'Θεολόγος', 'Θεοχάρης', 'Θηβαίος', 'Θωμάς', 'Θωμόπουλος', 'Ιακωβάκης',
'Ιατρόπουλος', 'Ιντζές', 'Ισάρης', 'Ισέρης', 'Ιωσηφίδης', 'Κίσσας',
'Καβούρης', 'Καζανόπουλος', 'Κακαβός', 'Κακατσός', 'Κακοσαίος', 'Καλαμάρας',
'Καλαμαράκης', 'Καλαμπαλίκης', 'Καλαπόδης', 'Καλαργυρός', 'Καλαϊτζάκης',
'Καλιάμπος', 'Καλιτσουνάκης', 'Καμπάκας', 'Καμπερίδης', 'Καμποσάκης',
'Καναβός', 'Κανελλόπουλος', 'Καπατσώρης', 'Καπετάνιος', 'Καπούνης',
'Καράμπας', 'Καράνης', 'Καραΐσκος', 'Καραγιάννης', 'Καραγρηγορίου',
'Καραδήμος', 'Καρακάξης', 'Καρακαστανιάς', 'Καρακυρίου', 'Καραλής',
'Καραμάνος', 'Καραμσαλής', 'Καρανίκας', 'Καρανασίου', 'Καρανικόλας',
'Καραντζόπουλος', 'Καρατζίκος', 'Καρατζαφέρης', 'Καρούντζος', 'Καρούσος',
'Καρτάς', 'Καρυπίδης', 'Κασούτσας', 'Καστάνης', 'Κατάκης', 'Καταραχιάς',
'Κατεβάτης', 'Κατιρτζής', 'Κατσίπης', 'Κατσίφος', 'Κατσαβός', 'Κατσαμάνης',
'Κατσαντώνης', 'Κατσαρός', 'Κατσιγιάννης', 'Κατσιλής', 'Κατσογιάννης',
'Καφίρης', 'Καφαντάρης', 'Καψάλης', 'Κελαϊδώνης', 'Κελλάρης', 'Κερασοβίτης',
'Κεσαλίδης', 'Κεσεμίδης', 'Κεχαγιάς', 'Κιοσές', 'Κιουπλιώτης', 'Κιούσης',
'Κιτινός', 'Κλήμης', 'Κοκορδέλης', 'Κολοβός', 'Κολοκάθης', 'Κολχούρης',
'Κομκούδης', 'Κομπολιάς', 'Κονδυλίδης', 'Κονιδάρης', 'Κοντάκος',
'Κοντογιάννης', 'Κοντοκώστας', 'Κοντός', 'Κορδατζής', 'Κορμπόπουλος',
'Κορομήλας', 'Κοτσαρής', 'Κοττίκας', 'Κουβάς', 'Κουκλατζής', 'Κουκουβίνος',
'Κουκουλιάντας', 'Κουλίδης', 'Κουλίζος', 'Κουλουριώτης', 'Κουμιώτης',
'Κουράκος', 'Κουρής', 'Κουρελής', 'Κουρκουτάς', 'Κουρσάρης', 'Κουρσουμίδης',
'Κουταλιός', 'Κουτελιέρης', 'Κουτεντάκης', 'Κουτσικόπουλος',
'Κουτσογιάννης', 'Κουτσογιάννόπουλος', 'Κουτσουλής', 'Κουτσουρέλης',
'Κουτσούρας', 'Κουτχιάς', 'Κούρτης', 'Κούτρης', 'Κούτσικος', 'Κραββαρίτης',
'Κρεμμύδας', 'Κριάλης', 'Κριτσέλης', 'Κτενίδης', 'Κυμπάρης', 'Κυπραίος',
'Κυπριώτης', 'Κυρίτσης', 'Κυργιάκης', 'Κυριαζής', 'Κυριακάκης',
'Κυριακίδης', 'Κυριατσούλης', 'Κωνσταντάς', 'Κωνσταντακόπουλος',
'Κωνσταντινίδης', 'Κωνσταντόπουλος', 'Κωστάκης', 'Κωστίδης', 'Κωσταλής',
'Κωστούλας', 'Κωστόπουλος', 'Κωτούλας', 'Κωτσίδης', 'Κωτσικόρης', 'Κόλκας',
'Κώττας', 'Λάκκας', 'Λάλας', 'Λάππας', 'Λάτσκος', 'Λέλεκας', 'Λαγγούσης',
'Λαγογιάννης', 'Λαγοπάτης', 'Λαζαρίδης', 'Λαμπρινός', 'Λαουρδέκης',
'Λαφατζής', 'Λεβέντης', 'Λελεδάκης', 'Λεμονής', 'Λεντζίου', 'Λιανάκης',
'Λιβανός', 'Λιθοξοΐδης', 'Λιούτας', 'Λιτίνας', 'Λιόλιος', 'Λουλάκης',
'Λουπασάκης', 'Λουράντος', 'Λυγκούρας', 'Λυμπέρης', 'Λώλος', 'Μάνδαλος',
'Μάνδρος', 'Μάνος', 'Μάργαρης', 'Μάρρας', 'Μάστορας', 'Μίσχος', 'Μίχος',
'Μαγκούφης', 'Μαζαράκης', 'Μακαριάδης', 'Μακρής', 'Μακρυγιάννης',
'Μακρυκώστας', 'Μαμμής', 'Μανίκας', 'Μανελίδης', 'Μανιώτης', 'Μανουσέλης',
'Μανουσιάδης', 'Μανούκας', 'Μαντάρης', 'Μαντάς', 'Μαντζουράνης',
'Μαντζώρος', 'Μανωλάκης', 'Μανωλέας', 'Μαραγκός', 'Μαρακάς', 'Μαργαρώνης',
'Μαρκόπουλος', 'Μασγαλάς', 'Μαστρογιάννης', 'Μαστρογιώργης', 'Μασόπουλος',
'Ματσούκας', 'Μαυρικάκης', 'Μαυρογονάτος', 'Μαυροειδάκος', 'Μαυρομανωλάκης',
'Μαυρομμάτης', 'Μαυρουδής', 'Μαυρούτσος', 'Μελιτσόπουλος', 'Μεταξάς',
'Μεϊμάρης', 'Μηλιώρης', 'Μητρίδης', 'Μητρόπουλος', 'Μητσόπουλος',
'Μιχαηλίδης', 'Μιχαλάκης', 'Μιχαλέλλης', 'Μοσχόπουλος', 'Μουσελίμης',
'Μουτουσίδης', 'Μπέκος', 'Μπίλλας', 'Μπαγανάς', 'Μπακλάβας',
'Μπακοστεργίου', 'Μπαλάσκας', 'Μπαλουκίδης', 'Μπαλταγιάννης', 'Μπαλτζής',
'Μπαντές', 'Μπαντής', 'Μπερεδήμας', 'Μπερμπατιώτης', 'Μπλανάς',
'Μπλιατσίου', 'Μποζίκης', 'Μποτσώλης', 'Μποτώνης', 'Μπουλούκος', 'Μπουρλής',
'Μποφός', 'Μπούκος', 'Μπούσιος', 'Μπραζιώτης', 'Μπότης', 'Μυλωνάς',
'Μυσιρλής', 'Μυτελέτσης', 'Μωραΐτης', 'Μωρός', 'Μόκας', 'Μόναχας',
'Νάστατος', 'Νάστος', 'Νέλος', 'Νανούρης', 'Νασίκας', 'Νασιόπουλος',
'Νικητόπουλος', 'Νικολαΐδης', 'Νικολόπουλος', 'Νικουλής', 'Νιτσοτόλης',
'Νούσης', 'Νταβάς', 'Ντουλιάς', 'Ντόβας', 'Ντόκος', 'Ντότης', 'Ξανθάκης',
'Ξηρογιάννης', 'Ξηρός', 'Ορφανάκης', 'Ορφανιώτης', 'Ότσος', 'Πάγκαλος',
'Πάνος', 'Πάντος', 'Πέππας', 'Πέτσας', 'Πίππας', 'Πίσσιος', 'Πίτσης',
'Παλαιολόγος', 'Παληός', 'Παλλάς', 'Παναγιωτακόπουλος', 'Πανδής',
'Πανούσης', 'Πανταζής', 'Παντζέκος', 'Παντζαρτζίδης', 'Παπαγεωργίου',
'Παπαγιάννης', 'Παπαγιαννακόπουλος', 'Παπαγιαννόπουλος', 'Παπαδάκης',
'Παπαδημητράκης', 'Παπαδημητριάδης', 'Παπαδόπουλος', 'Παπαευαγγελίου',
'Παπαθανασίου', 'Παπαθεοδοσίου', 'Παπαπανός', 'Παπαροϊδάμης', 'Παπαστεργίου',
'Παπατρέχας', 'Παπαφώτης', 'Παπουδής', 'Παπουλής', 'Παππάς',
'Παρασκευόπουλος', 'Παργανάς', 'Παρούσης', 'Πασσαλίδης', 'Πατελής',
'Πατμανίδης', 'Πατσούρας', 'Περάκης', 'Περδίκης', 'Περδικάκης',
'Περιστερόπουλος', 'Περπινιάς', 'Περράκης', 'Περρώτης', 'Πετράκης',
'Πετρίδης', 'Πετριτάκης', 'Πετρογιάννης', 'Πετρόπουλος', 'Πευκιανάκης',
'Πιάγκος', 'Πικούνης', 'Πικρός', 'Πιπεράκης', 'Πιπερίγκος', 'Πισχινάς',
'Πιτερός', 'Πιτσάκης', 'Πιτσολής', 'Πλακωτάρης', 'Πλιάτσικας', 'Πολυζωάκης',
'Πολυχρονίδης', 'Πολυχρονόπουλος', 'Πολυχρόνης', 'Πορίχης', 'Πουλημένος',
'Πουλιέζος', 'Πουλογιαννόπουλος', 'Πουφτσής', 'Προβής', 'Πυλαρινός',
'Ράλλης', 'Ράπτης', 'Ρέγκας', 'Ρέντας', 'Ρέντζος', 'Ρέππος', 'Ρήγας',
'Ρήνος', 'Ρίγκος', 'Ρίζος', 'Ρίσβας', 'Ραγκούσης', 'Ραδοβάλης', 'Ραφιός',
'Ραχμανίδης', 'Ραχωβίτσας', 'Ριζούλης', 'Ρουπακάς', 'Ρουσιανός',
'Ροϊδούλης', 'Ρωμαίου', 'Ρόγαρης', 'Ρόδης', 'Ρόκας', 'Σάτλας', 'Σίδερης',
'Σακελλαρίου', 'Σαλίχος', 'Σαλταούρας', 'Σαμακίδης', 'Σαμανίδης', 'Σαμαράς',
'Σαουλίδης', 'Σαρίκας', 'Σαραντινός', 'Σαραφίδης', 'Σαρρός', 'Σγουρός',
'Σδραλλής', 'Σεβδάς', 'Σεφέκος', 'Σιγανός', 'Σιδηρόπουλος', 'Σικαλίδης',
'Σιτόπουλος', 'Σιώμος', 'Σιώρης', 'Σκαρλάτος', 'Σκαρπέτας', 'Σκορδάκης',
'Σκουλαρίδης', 'Σκρέκας', 'Σκρίμπας', 'Σκόρδος', 'Σμαρδάς', 'Σμπονιάς',
'Σμπρίνης', 'Σμυρνιώτης', 'Σολακούδης', 'Σουλιντζής', 'Σουρμπής',
'Σοφιανός', 'Σπάλας', 'Σπαθόπουλος', 'Σπανδωνίδης', 'Σπανουδάκης', 'Σπανός',
'Σπασόπουλος', 'Σπηλιώτης', 'Σπορδιλής', 'Σπυριδάκης', 'Σπυρόπουλος',
'Σταθάτος', 'Σταθόπουλος', 'Σταμάτης', 'Σταμέλος', 'Σταματιάδης',
'Σταμούλης', 'Σταμόπουλος', 'Σταυριανός', 'Σταυρόπουλος', 'Στεργιαλής',
'Στεργιούδης', 'Στοφοριάδης', 'Στραβοσνίχης', 'Στόγιος', 'Συλλίγαρδος',
'Συργής', 'Συρρής', 'Σφούνης', 'Σφύρλας', 'Σωτηράλης', 'Σύκας', 'Τάρναρης',
'Τάσιος', 'Τάχας', 'Ταβερναράκης', 'Τακαντζάς', 'Ταμιωλάκης', 'Τασιούλας',
'Ταχμαζίδης', 'Ταχτσίδης', 'Τεμουρτζίδης', 'Τερζής', 'Τερζίδης', 'Τζέκος',
'Τζήκας', 'Τζαβέλλας', 'Τζαλλας', 'Τζανουδάκης', 'Τζεβελέκος', 'Τζιάβας',
'Τζιάρας', 'Τζινιέρης', 'Τζιόρτζιος', 'Τζιώτζης', 'Τζουβέλης', 'Τζουμάκης',
'Τοδώρης', 'Τολούδης', 'Τορομίδης', 'Τουρναβίτης', 'Τραχίλης', 'Τρεντσίου',
'Τριαντακωνσταντής', 'Τριβέλλας', 'Τσάρκος', 'Τσέας', 'Τσέγας', 'Τσέλιος',
'Τσέλλος', 'Τσαγκρασούλης', 'Τσαγλιώτης', 'Τσακανίκας', 'Τσακμάκης',
'Τσαλαμάνδρης', 'Τσαμαδός', 'Τσαμασλίδης', 'Τσανδήλας', 'Τσαπραλής',
'Τσαραμιάδης', 'Τσατσάνης', 'Τσεμπερλίδης', 'Τσεντούρος', 'Τσιάκος',
'Τσιάρας', 'Τσιαμίτας', 'Τσιαμούρας', 'Τσιαντάς', 'Τσιατής', 'Τσιγαρίδας',
'Τσικνιάς', 'Τσιρώνης', 'Τσιτούρας', 'Τσομώκος', 'Τσοπανίδης', 'Τσουκνίδας',
'Τσούμος', 'Τσούπρας', 'Τσόλκας', 'Τσότρας', 'Τσώνης', 'Τσώτσης', 'Τυμβίου',
'Τυράλης', 'Φαλιέρος', 'Φανουργάκης', 'Φειδερόπουλος', 'Φερεντίνος',
'Φιλιππάκης', 'Φιλιππάτος', 'Φιλιππόπουλος', 'Φουντζούλας', 'Φουσιέκης',
'Φουτσιτζής', 'Φούσκας', 'Φραγκόπουλος', 'Φραντζής', 'Φρογάκης', 'Φυδάνης',
'Φωκάς', 'Φωκαδελής', 'Φωτογλίδης', 'Φωτόπουλος', 'Χέλιος', 'Χαβρεδάκης',
'Χαλατσής', 'Χαραλάμπους', 'Χαραλαμπίδης', 'Χαρισιάδης', 'Χαρμπίλας',
'Χαρπαντίδης', 'Χαρτερός', 'Χατζαντώνης', 'Χατζελλής', 'Χατζηβλασίου',
'Χατζηγεωργίου', 'Χατζηγρηγοράκης', 'Χατζηκύρκος', 'Χατζησάββας',
'Χατζησαββίδης', 'Χατζησταυράκης', 'Χατζιάρας', 'Χατζόπουλος', 'Χαχούδης',
'Χητός', 'Χιτός', 'Χονδρολίδης', 'Χουδαλάκης', 'Χουλιάρας', 'Χουντής',
'Χουχουλής', 'Χριστάκης', 'Χριστάρας', 'Χριστακόπουλος', 'Χριστοδουλάκης',
'Χριστόπουλος', 'Χρονόπουλος', 'Χρυσίδης', 'Χρυσικός', 'Χρυσοβέργης',
'Χρυσουλής', 'Ψάλτης', 'Ψυλλάκης', 'Ψυχιάς',
)
last_names_female = (
'Αβραμίδου', 'Αβραμπέκη', 'Αγγελάκη', 'Αγγελίδου', 'Αγγελουσοπούλου',
'Αγραφιώτη', 'Αδαμοπούλου', 'Αθανασιάδη', 'Αθανασιάδου', 'Αλεξανδράκη',
'Αλεξανδρίδου', 'Αλεξοπούλου', 'Αλυσανδράτου', 'Ανανιάδου', 'Αναστασάκη',
'Αναστασίου', 'Ανεζάκη', 'Αντωνάκη', 'Αντωνίου', 'Αποστολάκη',
'Αποστολίδου', 'Αραπάκη', 'Αραπίδου', 'Αργυράκη', 'Αργυρίου',
'Αργυροπούλου', 'Αρματά', 'Αρσενάκη', 'Αρχάκη', 'Ασλανίδου', 'Ασουχίδου',
'Ασσαργιωτάκη', 'Ατσαλάκη', 'Βαΐου', 'Βαβάση', 'Βαγενά', 'Βαζούρα',
'Βαϊραμίδου', 'Βακουφτσή', 'Βαλεντή', 'Βαλιάκα', 'Βαλκάνου', 'Βαλσαμίδου',
'Βαμβουκάκη', 'Βαρελίδου', 'Βαρθαλίτη', 'Βαρουτίδου', 'Βαρσάμου',
'Βασιλάκη', 'Βασιλείου', 'Βασιλειάδη', 'Βασιλοπούλου', 'Βαφειάδου',
'Βερβερίδου', 'Βερβίτη', 'Βλάσση', 'Βλαχοδήμου', 'Βλάχου', 'Βοσινάκη',
'Βουλγαρίδου', 'Βουλτσίδου', 'Βουτσινά', 'Βραδή', 'Βρακά', 'Βράσκου',
'Βυζιηνού', 'Γαβριήλ', 'Γαβριηλίδη', 'Γαλανάκη', 'Γαλάνη', 'Γαλανοπούλου',
'Γεροκώστα', 'Γερούκη', 'Γεωργακοπούλου', 'Γεωργαρά', 'Γεωργή',
'Γεωργιάδου', 'Γεωργίτση', 'Γεωργουλάκη', 'Γεωργούλα', 'Γιακαμόζη',
'Γιαννακουδάκη', 'Γιανναρά', 'Γιαννοπούλου', 'Γιατράκου', 'Γκάβρου',
'Γκάγκα', 'Γκαλίου', 'Γκιριτζιώνη', 'Γκόβα', 'Γκόνη', 'Γκούβα', 'Γκούνη',
'Γούλα', 'Γούπα', 'Γραμμένου', 'Γρηγορίου', 'Γρηγοριάδου', 'Γρηγοροπούλου',
'Γρίβα', 'Δαγλή', 'Δαΐκου', 'Δαμαλά', 'Δαματοπούλου', 'Δαμήλου',
'Δανδανίδου', 'Δαρδιώτη', 'Δαρσακλή', 'Δαυίδ', 'Δάφνη', 'Δεδούκου', 'Δελή',
'Δερλώπα', 'Δημακογιάννη', 'Δημητρίου', 'Δημητρέλου', 'Δημητριάδου',
'Δημοπούλου', 'Δήμου', 'Δημτσούδη', 'Διακουμή', 'Διαμαντοπούλου',
'Διοπούλου', 'Δούβαλη', 'Δουκίδου', 'Δουλάμη', 'Δουλγεράκη', 'Δουλουφάκη',
'Δρακάκη', 'Δρακουλή', 'Δραμουντάνη', 'Δρίβα', 'Δρόσου', 'Δρυμαλίτου',
'Δώρη', 'Ελευθερίου', 'Εμμανουήλ', 'Εμμανουηλίδου', 'Ενωτιάδη',
'Ευαγγελάκη', 'Ευαγγελίδη', 'Ζαβιτσάνου', 'Ζαννίκου', 'Ζαρειφοπούλου',
'Ζαρζάνη', 'Ζαφείρη', 'Ζαχαρίου', 'Ζαχαριουδάκη', 'Ζεγλίνα', 'Ζερβά',
'Ζιάρα', 'Ζυγούρη', 'Ζώη', 'Ζωντανού', 'Θασίτου', 'Θεοδοσίου',
'Θεοδοσιάδου', 'Θεοδωροπούλου', 'Θωμάκου', 'Ιωακείμ', 'Ιωακειμίδου',
'Ιωσηφίδου', 'Καζαντζή', 'Κάκκα', 'Κακοτρίχη', 'Καλαθά', 'Καλαϊτζοπούλου',
'Καλαμάρα', 'Καλδή', 'Καλέμη', 'Καλλιάνταση', 'Καλογιαννάκη', 'Καλογιάννη',
'Καλομοίρη', 'Καλούδη', 'Καμινάρη', 'Καμπούρη', 'Κανελή', 'Κανελλή',
'Κανελλοπούλου', 'Κανταρελή', 'Καπανταϊδάκη', 'Καπνιά', 'Καπουρνιώτη',
'Καραγιάννη', 'Καραγιοβάννη', 'Καραγρηγορίου', 'Καραθανάση', 'Καρακυρίου',
'Καρακωνσταντινού', 'Καρακώστα', 'Καραμάνη', 'Καραμανλή', 'Καράμπη',
'Καραμπίνα', 'Καρανάνου', 'Καρανασίου', 'Καραντάνα', 'Καραογλάνη',
'Καρατάσου', 'Καρβέλη', 'Καργάκου', 'Καρκαλέτση', 'Καρκανάκη', 'Καρολίδου',
'Καρυδά', 'Κασκαούτη', 'Κασμιρλή', 'Κασσωτάκη', 'Κατσανίκου', 'Κατσαντώνη',
'Κατσαφάδου', 'Κατσιγιάννη', 'Κατσιλλή', 'Κατσιμάλη', 'Κατσιμάνη',
'Κατσούλα', 'Καφαντάρη', 'Καφφέ', 'Καχριμανίδη', 'Καψή', 'Κεσίση',
'Κεσκίνη', 'Κετεσίδου', 'Κεφαλή', 'Κιορίδου', 'Κίτσου', 'Κλεινάκη',
'Κοκκινίδου', 'Κοκκίνου', 'Κολαΐτου', 'Κόλλια', 'Κολτσάκη', 'Κονιάρη',
'Κονσούλα', 'Κοντογεωργάκη', 'Κοντογιάννη', 'Κοντού', 'Κορομπόκη',
'Κορωνίδου', 'Κοτρώτσου', 'Κοτσινά', 'Κουζουλά', 'Κουθούρη', 'Κουκουβά',
'Κουκουθάκη', 'Κουλαουσάρη', 'Κουλουμπού', 'Κουλοχέρη', 'Κουμάρα',
'Κουρλού', 'Κουτκιά', 'Κουτουζίδου', 'Κουτσικούρη', 'Κουτσιουμάρη',
'Κουτσοβίδου', 'Κουτσονίκα', 'Κουτσούμπεη', 'Κουτσούμπη', 'Κουτσουνάκη',
'Κουτσουρέλη', 'Κουφάκη', 'Κοφινάκη', 'Κυργιά', 'Κυριακοπούλου', 'Κυριάκου',
'Κυριακούλη', 'Κυριαννάκη', 'Κυρίτση', 'Κυρκούδη', 'Κυρούδη',
'Κωνσταντινίδου', 'Κωνσταντοπούλου', 'Κωστοπούλου', 'Κωτούλα',
'Κωτσιονοπούλου', 'Κώτσου', 'Λαλαούνη', 'Λέκκα', 'Λεντζίου', 'Λεπίδα',
'Λιάκου', 'Λιάνου', 'Λιναρδάκη', 'Λιολιοπούλου', 'Λιόντη', 'Λιούκα',
'Λίτσιου', 'Λογκάκη', 'Λογοθέτη', 'Λουμπούτσκου', 'Λυμαξή', 'Λυρή', 'Λύτρα',
'Μαγκανάρη', 'Μαγκαφοπούλου', 'Μαγούλα', 'Μακρή', 'Μακροπούλου', 'Μάλαμα',
'Μαλίμη', 'Μαλλή', 'Μαμαλά', 'Μανέτα', 'Μανιάτη', 'Μανιτάρου', 'Μανοπούλου',
'Μανουσοπούλου', 'Μαντά', 'Μάντου', 'Μαράκη', 'Μάρα', 'Μαργαριτάκη',
'Μαργαρίτη', 'Μαργιά', 'Μαρκαντωνάκη', 'Μαρουγιάννη', 'Μαρτζούκου',
'Μαρτιάδου', 'Μασαούτη', 'Μασιάλα', 'Μασίκα', 'Μαστραγγελή',
'Μαστρογιαννίδου', 'Ματεντσίδου', 'Ματσούρη', 'Μαυρίδου', 'Μαυραειδή',
'Μαυρίδη', 'Μαυροείδη', 'Μαυροπούλου', 'Μέλανι', 'Μενγκ', 'Μεξή',
'Μηλιάδου', 'Μηλιάκη', 'Μηνά', 'Μητροπούλου', 'Μητσοπούλου', 'Μήτσου',
'Μιλέα', 'Μισίδου', 'Μιχαηλίδου', 'Μιχαλάρου', 'Μιχελή', 'Μιχελακάκη',
'Μίχου', 'Μοσχοβάκη', 'Μουτζούρη', 'Μπακοστεργίου', 'Μπακουλή', 'Μπαλή',
'Μπαλαμπάνη', 'Μπαλανίκα', 'Μπαλάση', 'Μπαλλή', 'Μπαλτατζή', 'Μπαρκούτα',
'Μπατζάνη', 'Μπατσάκη', 'Μπαφέρα', 'Μπαφίτη', 'Μπεκάκου', 'Μπελέκου',
'Μπενέτου', 'Μπεσύρη', 'Μπίκα', 'Μπιμπίκα', 'Μπιμπίρη', 'Μπλιατσίου',
'Μποζίκη', 'Μπονέλη', 'Μπότζα', 'Μποτζιώρη', 'Μπούζα', 'Μπραέσα',
'Μπρούζου', 'Μπύρου', 'Μυλωνίδου', 'Μυτάρη', 'Μωραΐτη', 'Μωυσίδου',
'Νάντσου', 'Ναούμ', 'Νάσσου', 'Νατσουλή', 'Νίκα', 'Νικολάτου', 'Νικολάου',
'Νικολοπούλου', 'Νικολουδάκη', 'Νταγκαλή', 'Ντάνου', 'Ντανώλα', 'Ντζιαβίδα',
'Ντόβα', 'Ντότση', 'Ντριβαλά', 'Νώε', 'Ξανθοπούλου', 'Ξενάκη', 'Ξενίδη',
'Ξένου', 'Ξηρίδου', 'Ξηροδήμα', 'Ξηροτύρη', 'Ξυγκάκου', 'Οικονομοπούλου',
'Οικονόμου', 'Ορφανίδου', 'Παλαιολογοπούλου', 'Παλαμπουγιούκη', 'Παλιεράκη',
'Παλιούρα', 'Παναγιωτακοπούλου', 'Παναγιώτου', 'Πανκίδου', 'Πανοπούλου',
'Πάνου', 'Πανταζή', 'Πάντζιου', 'Παντίσκα', 'Πάντου', 'Παπαγεωργίου',
'Παπαδήμα', 'Παπαδημητροπούλου', 'Παπαδοπούλου', 'Παπαευαγγελίου',
'Παπαευαγγέλου', 'Παπαθανασίου', 'Παπαθεοδοσίου', 'Παπαθωμά',
'Παπακωνσταντίνου', 'Παπακώστα', 'Παπανάνου', 'Παπανδρέου',
'Παπανδρικοπούλου', 'Παπανικολάου', 'Παπανώτα', 'Παπασπηλιωτοπούλου',
'Παπασταύρου', 'Παπαστεργίου', 'Παπατζήκα', 'Παπαχρήστου', 'Παπουτσοπούλου',
'Παππά', 'Παράνου', 'Παρασκευά', 'Πατελλή', 'Πατινιωτάκη', 'Πατσουρέα',
'Παυλάκη', 'Παυλή', 'Παυλίδου', 'Πεμούση', 'Περουλάκη', 'Πετράκη',
'Πετρίδου', 'Πετροσιάν', 'Πέτρου', 'Πέτση', 'Πετσιά', 'Πέττα', 'Πιπερίδη',
'Πισκοπάνη', 'Πίσπα', 'Πλατάκη', 'Πολατίδου', 'Πολέμη', 'Πολίτου',
'Πορφυριάδου', 'Ποσάντζη', 'Ποταμιάνου', 'Πουλή', 'Πουλιάση', 'Πουλίδα',
'Πουρνάρα', 'Πρέκα', 'Προύβα', 'Πυροβόλου', 'Ραδιοπούλου', 'Ραυτοπούλου',
'Ρέππα', 'Ρόγγα', 'Ροδίτου', 'Ρόκκα', 'Ρούσσου', 'Ρωμαίου', 'Σαββάκη',
'Σακελλαρίου', 'Σακκή', 'Σαλέμη', 'Σαμπάνη', 'Σαμτανίδου', 'Σάουερ',
'Σαπρίκη', 'Σαριδάκη', 'Σαρρή', 'Σγουρένα', 'Σδούκου', 'Σεβαστού',
'Σελινοπούλου', 'Σεμπέπου', 'Σηκωτίδου', 'Σίββα', 'Σιδηροπούλου',
'Σιμητοπούλου', 'Σιμιτζή', 'Σιόλου', 'Σιούτα', 'Σκαβέντζου', 'Σκασίλα',
'Σκαφτούρου', 'Σκοτάδη', 'Σκούμπρου', 'Σκρεμμύδα', 'Σκυλογιάννη', 'Σμιτ',
'Σοκολάκη', 'Σολωμίδου', 'Σόφρα', 'Σπαθάρη', 'Σπανίδου',
'Σπανοχριστοδούλου', 'Σπασέγκου', 'Σπηλιάδου', 'Σπυριδάκη', 'Σταθά',
'Σταματούκου', 'Σταμέλου', 'Σταμούλη', 'Σταυρίδου', 'Σταύρου', 'Στεφάνου',
'Στούμπου', 'Στρατογιάννη', 'Στρούμπα', 'Στυλιανίδου', 'Συβιλιά',
'Συμεωνίδου', 'Συνοδινού', 'Συρμού', 'Σύψα', 'Σφακιανάκη', 'Σωτηροπούλου',
'Ταμπορρίνο', 'Τάντου', 'Ταξίδου', 'Τάσση', 'Τάτση', 'Ταυλαρίδου',
'Ταφραλή', 'Τζάγκα', 'Τζαναβάρα', 'Τζιγκούρα', 'Τζιόβα', 'Τζιρατούδη',
'Τζιωρτζή', 'Τόγια', 'Τόλη', 'Τομπουλίδου', 'Τόμπρη', 'Τοπαλή', 'Τοσούνη',
'Τουλάκη', 'Τουλούπη', 'Τουρνά', 'Τραγούστη', 'Τρεντσίου', 'Τριανταφύλλου',
'Τρίκα', 'Τριφτανίδου', 'Τρομπούκη', 'Τσάκη', 'Τσακαλάκου', 'Τσακίρη',
'Τσαμοπούλου', 'Τσαμπαλή', 'Τσαμπούρη', 'Τσαμτσούρη', 'Τσανάκα',
'Τσαντίδου', 'Τσάτη', 'Τσαχάκη', 'Τσέτου', 'Τσετσέρη', 'Τσικνή', 'Τσικρίκα',
'Τσίμη', 'Τσιομπάνη', 'Τσιούπρα', 'Τσιπλίκωφ', 'Τσιωλξ', 'Τσουκιά',
'Τσουνάκου', 'Τσουράκη', 'Τσούρα', 'Τσώνη', 'Τυμβίου', 'Υφαντή', 'Φαββάτα',
'Φαρμάκη', 'Φασατάκη', 'Φασουλή', 'Φασουλίδου', 'Φειζατίδου', 'Φιδάνη',
'Φιλιάγκου', 'Φιλίππου', 'Φίλκα', 'Φλασκή', 'Φουρκιώτη', 'Φραγκιαδάκη',
'Φραγκουδάκη', 'Φρονιμάκη', 'Φυτιλή', 'Φωλιά', 'Φωτακοπούλου', 'Φωτιάδου',
'Χαλαντζούκα', 'Χαλβατζή', 'Χαλκίδου', 'Χαμαλίδου', 'Χανταμπή', 'Χαντζή',
'Χαραλαμπίδου', 'Χασάπη', 'Χατζή', 'Χατζηβλασίου', 'Χατζηγεωργίου',
'Χατζηδάκη', 'Χατζημιχαήλ', 'Χατζηφώτη', 'Χατζηχαρίστου', 'Χιωτίδου',
'Χολέβα', 'Χονδρούδη', 'Χοντζιά', 'Χορόζη', 'Χορτάτου', 'Χουρζαμάνη',
'Χρήστου', 'Χριστογιάννη', 'Χριστοδούλου', 'Χριστοπούλου', 'Χριστοφόρη',
'Χρονοπούλου', 'Χρυσανθακοπούλου', 'Χρυσάφη', 'Χρυσικάκη', 'Χωριανοπούλου',
'Χωρινού', 'Ψυρρή', 'Ψυχάρη',
)
last_names = last_names_male + last_names_female
def name_male(self):
pattern = self.random_element(self.formats_male)
return self.generator.parse(pattern)
def name_female(self):
pattern = self.random_element(self.formats_female)
return self.generator.parse(pattern)
@classmethod
def first_name(cls):
return cls.random_element(cls.first_names)
@classmethod
def first_name_male(cls):
return cls.random_element(cls.first_names_male)
@classmethod
def first_name_female(cls):
return cls.random_element(cls.first_names_female)
@classmethod
def last_name(cls):
return cls.random_element(cls.last_names)
@classmethod
def last_name_male(cls):
return cls.random_element(cls.last_names_male)
@classmethod
def last_name_female(cls):
return cls.random_element(cls.last_names_female)

View file

@ -0,0 +1,28 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'69########',
'69## ######',
'69## ### ###',
'210#######',
'210 #######',
'210 ### ####',
'2##0######',
'2##0 ######',
'2##0 ### ###',
'2###0#####',
'2###0 ## ###',
'(+30) 69## ######',
'+30 69## ######',
'+3069########',
'(+30) 2### ######',
'+30 2### ######',
'+302#########',
)

View file

View file

@ -0,0 +1,169 @@
from __future__ import unicode_literals
import re
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
postal_code_letters = ('A','B','C','E','G','H','J',
'K','L','M','N','P','R','S','T','V','X','Y')
city_prefixes = ('North', 'East', 'West', 'South', 'New', 'Lake', 'Port')
city_suffixes = (
'town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt',
'chester', 'mouth', 'fort', 'haven', 'side', 'shire')
building_number_formats = ('#####', '####', '###')
street_suffixes = (
'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape',
'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners',
'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve',
'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension',
'Extensions',
'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges',
'Fork',
'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove',
'Groves',
'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island',
'Island',
'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake',
'Lakes',
'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop',
'Mall',
'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount',
'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks',
'Parkway',
'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza',
'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch',
'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue',
'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs',
'Square',
'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street',
'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail',
'Trail',
'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via',
'Viaduct',
'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way',
'Ways', 'Well', 'Wells')
postal_code_formats = ('?%? %?%', '?%?%?%')
provinces = (
'Alberta', 'British Columbia', 'Manitoba', 'New Brunswick',
'Newfoundland and Labrador', 'Northwest Territories',
'New Brunswick', 'Nova Scotia', 'Nunavut', 'Ontario',
'Prince Edward Island', 'Quebec', 'Saskatchewan', 'Yukon Territory')
provinces_abbr = (
'AB', 'BC', 'MB', 'NB', 'NL', 'NT', 'NS',
'NV', 'ON', 'PE', 'QC', 'SK', 'YT')
countries = (
'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla',
'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba',
'Australia', 'Austria', 'Azerbaijan',
'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan',
'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil',
'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam',
'Bulgaria', 'Burkina Faso', 'Burundi',
'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile',
'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Congo', 'Cook Islands',
'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana',
'French Polynesia', 'French Southern Territories',
'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe',
'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong',
'Hungary',
'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jersey', 'Jordan',
'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya',
'Liechtenstein', 'Lithuania', 'Luxembourg',
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands',
'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia',
'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua',
'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines',
'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin',
'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe',
'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)',
'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands',
'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland',
'Syrian Arab Republic',
'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga',
'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America',
'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
'Vanuatu', 'Venezuela', 'Vietnam',
'Wallis and Futuna', 'Western Sahara',
'Yemen',
'Zambia', 'Zimbabwe'
)
city_formats = (
'{{city_prefix}} {{first_name}}{{city_suffix}}',
'{{city_prefix}} {{first_name}}',
'{{first_name}}{{city_suffix}}',
'{{last_name}}{{city_suffix}}',
)
street_name_formats = (
'{{first_name}} {{street_suffix}}',
'{{last_name}} {{street_suffix}}'
)
street_address_formats = (
'{{building_number}} {{street_name}}',
'{{building_number}} {{street_name}} {{secondary_address}}',
)
address_formats = (
"{{street_address}}\n{{city}}, {{province_abbr}} {{postalcode}}",
)
secondary_address_formats = ('Apt. ###', 'Suite ###')
@classmethod
def province(cls):
"""
"""
return cls.random_element(cls.provinces)
@classmethod
def province_abbr(cls):
return cls.random_element(cls.provinces_abbr)
@classmethod
def city_prefix(cls):
return cls.random_element(cls.city_prefixes)
@classmethod
def secondary_address(cls):
return cls.numerify(cls.random_element(cls.secondary_address_formats))
@classmethod
def postal_code_letter(cls):
"""
Returns a random letter from the list of allowable
letters in a canadian postal code
"""
return cls.random_element(cls.postal_code_letters)
@classmethod
def postalcode(cls):
"""
Replaces all question mark ('?') occurrences with a random letter
from postal_code_formats then passes result to
numerify to insert numbers
"""
temp = re.sub(r'\?',
lambda x: cls.postal_code_letter(),
cls.random_element(cls.postal_code_formats))
return cls.numerify(temp)

View file

@ -0,0 +1,16 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'%##-###-####',
'%##.###.####',
'%## ### ####',
'(%##) ###-####',
'1-%##-###-####',
'1 (%##) ###-####',
'+1 (%##) ###-####',
'%##-###-#### x###',
'(%##) ###-#### x###',
)

View file

@ -0,0 +1,38 @@
# coding=utf-8
from __future__ import unicode_literals
from ..ssn import Provider as SsnProvider
import random
class Provider(SsnProvider):
#in order to create a valid SIN we need to provide a number that passes a simple modified Luhn Algorithmn checksum
#this function essentially reverses the checksum steps to create a random valid SIN (Social Insurance Number)
@classmethod
def ssn(cls):
#create an array of 8 elements initialized randomly
digits = random.sample(range(10), 8)
# All of the digits must sum to a multiple of 10.
# sum the first 8 and set 9th to the value to get to a multiple of 10
digits.append(10 - (sum(digits) % 10))
#digits is now the digital root of the number we want multiplied by the magic number 121 212 121
#reverse the multiplication which occurred on every other element
for i in range(1, len(digits), 2):
if digits[i] % 2 == 0:
digits[i] = (digits[i] / 2)
else:
digits[i] = (digits[i] + 9) / 2
#build the resulting SIN string
sin = ""
for i in range(0, len(digits), 1):
sin += str(digits[i])
#add a space to make it conform to normal standards in Canada
if i % 3 == 2:
sin += " "
#finally return our random but valid SIN
return sin

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,120 @@
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_prefixes = ('North', 'East', 'West', 'South', 'New', 'Lake', 'Port')
city_suffixes = (
'town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt',
'chester', 'mouth', 'fort', 'haven', 'side', 'shire')
building_number_formats = ('#', '##', '###')
street_suffixes = (
'alley', 'avenue', 'branch', 'bridge', 'brook', 'brooks', 'burg', 'burgs', 'bypass', 'camp', 'canyon', 'cape',
'causeway', 'center', 'centers', 'circle', 'circles', 'cliff', 'cliffs', 'club', 'common', 'corner', 'corners',
'course', 'court', 'courts', 'cove', 'coves', 'creek', 'crescent', 'crest', 'crossing', 'crossroad', 'curve',
'dale', 'dam', 'divide', 'drive', 'drive', 'drives', 'estate', 'estates', 'expressway', 'extension',
'extensions',
'fall', 'falls', 'ferry', 'field', 'fields', 'flat', 'flats', 'ford', 'fords', 'forest', 'forge', 'forges',
'fork',
'forks', 'fort', 'freeway', 'garden', 'gardens', 'gateway', 'glen', 'glens', 'green', 'greens', 'grove',
'groves',
'harbor', 'harbors', 'haven', 'heights', 'highway', 'hill', 'hills', 'hollow', 'inlet', 'inlet', 'island',
'island',
'islands', 'islands', 'isle', 'isle', 'junction', 'junctions', 'key', 'keys', 'knoll', 'knolls', 'lake',
'lakes',
'land', 'landing', 'lane', 'light', 'lights', 'loaf', 'lock', 'locks', 'locks', 'lodge', 'lodge', 'loop',
'mall',
'manor', 'manors', 'meadow', 'meadows', 'mews', 'mill', 'mills', 'mission', 'mission', 'motorway', 'mount',
'mountain', 'mountain', 'mountains', 'mountains', 'neck', 'orchard', 'oval', 'overpass', 'park', 'parks',
'parkway',
'parkways', 'pass', 'passage', 'path', 'pike', 'pine', 'pines', 'place', 'plain', 'plains', 'plains', 'plaza',
'plaza', 'point', 'points', 'port', 'port', 'ports', 'ports', 'prairie', 'prairie', 'radial', 'ramp', 'ranch',
'rapid', 'rapids', 'rest', 'ridge', 'ridges', 'river', 'road', 'road', 'roads', 'roads', 'route', 'row', 'rue',
'run', 'shoal', 'shoals', 'shore', 'shores', 'skyway', 'spring', 'springs', 'springs', 'spur', 'spurs',
'square',
'square', 'squares', 'squares', 'station', 'station', 'stravenue', 'stravenue', 'stream', 'stream', 'street',
'street', 'streets', 'summit', 'summit', 'terrace', 'throughway', 'trace', 'track', 'trafficway', 'trail',
'trail',
'tunnel', 'tunnel', 'turnpike', 'turnpike', 'underpass', 'union', 'unions', 'valley', 'valleys', 'via',
'viaduct',
'view', 'views', 'village', 'village', 'villages', 'ville', 'vista', 'vista', 'walk', 'walks', 'wall', 'way',
'ways', 'well', 'wells')
postcode_formats = ('??#? #??', '?#? #??', '?# #??', '?## #??', '??# #??', '??## #??',)
countries = (
'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla',
'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba',
'Australia', 'Austria', 'Azerbaijan',
'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan',
'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil',
'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam',
'Bulgaria', 'Burkina Faso', 'Burundi',
'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile',
'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Congo', 'Cook Islands',
'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana',
'French Polynesia', 'French Southern Territories',
'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe',
'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong',
'Hungary',
'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jersey', 'Jordan',
'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya',
'Liechtenstein', 'Lithuania', 'Luxembourg',
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands',
'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia',
'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua',
'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines',
'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin',
'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe',
'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)',
'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands',
'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland',
'Syrian Arab Republic',
'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga',
'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America',
'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
'Vanuatu', 'Venezuela', 'Vietnam',
'Wallis and Futuna', 'Western Sahara',
'Yemen',
'Zambia', 'Zimbabwe'
)
city_formats = (
'{{city_prefix}} {{first_name}}{{city_suffix}}',
'{{city_prefix}} {{first_name}}',
'{{first_name}}{{city_suffix}}',
'{{last_name}}{{city_suffix}}',
)
street_name_formats = (
'{{first_name}} {{street_suffix}}',
'{{last_name}} {{street_suffix}}'
)
street_address_formats = (
'{{building_number}} {{street_name}}',
'{{secondary_address}}\n{{street_name}}',
)
address_formats = (
"{{street_address}}\n{{city}}\n{{postcode}}",
)
secondary_address_formats = ('Flat #', 'Flat ##', 'Flat ##?', 'Studio #', 'Studio ##', 'Studio ##?')
@classmethod
def city_prefix(cls):
return cls.random_element(cls.city_prefixes)
@classmethod
def secondary_address(cls):
return cls.bothify(cls.random_element(cls.secondary_address_formats))

View file

@ -0,0 +1,17 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+44(0)##########',
'+44(0)#### ######',
'+44(0)#########',
'+44(0)#### #####',
'0##########',
'0#########',
'0#### ######',
'0#### #####',
'(0####) ######',
'(0####) #####',
)

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,219 @@
from __future__ import unicode_literals
import random
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_prefixes = ('North', 'East', 'West', 'South', 'New', 'Lake', 'Port')
city_suffixes = (
'town', 'ton', 'land', 'ville', 'berg', 'burgh', 'borough', 'bury', 'view', 'port', 'mouth', 'stad', 'furt',
'chester', 'mouth', 'fort', 'haven', 'side', 'shire')
building_number_formats = ('#####', '####', '###')
street_suffixes = (
'Alley', 'Avenue', 'Branch', 'Bridge', 'Brook', 'Brooks', 'Burg', 'Burgs', 'Bypass', 'Camp', 'Canyon', 'Cape',
'Causeway', 'Center', 'Centers', 'Circle', 'Circles', 'Cliff', 'Cliffs', 'Club', 'Common', 'Corner', 'Corners',
'Course', 'Court', 'Courts', 'Cove', 'Coves', 'Creek', 'Crescent', 'Crest', 'Crossing', 'Crossroad', 'Curve',
'Dale', 'Dam', 'Divide', 'Drive', 'Drive', 'Drives', 'Estate', 'Estates', 'Expressway', 'Extension',
'Extensions',
'Fall', 'Falls', 'Ferry', 'Field', 'Fields', 'Flat', 'Flats', 'Ford', 'Fords', 'Forest', 'Forge', 'Forges',
'Fork',
'Forks', 'Fort', 'Freeway', 'Garden', 'Gardens', 'Gateway', 'Glen', 'Glens', 'Green', 'Greens', 'Grove',
'Groves',
'Harbor', 'Harbors', 'Haven', 'Heights', 'Highway', 'Hill', 'Hills', 'Hollow', 'Inlet', 'Inlet', 'Island',
'Island',
'Islands', 'Islands', 'Isle', 'Isle', 'Junction', 'Junctions', 'Key', 'Keys', 'Knoll', 'Knolls', 'Lake',
'Lakes',
'Land', 'Landing', 'Lane', 'Light', 'Lights', 'Loaf', 'Lock', 'Locks', 'Locks', 'Lodge', 'Lodge', 'Loop',
'Mall',
'Manor', 'Manors', 'Meadow', 'Meadows', 'Mews', 'Mill', 'Mills', 'Mission', 'Mission', 'Motorway', 'Mount',
'Mountain', 'Mountain', 'Mountains', 'Mountains', 'Neck', 'Orchard', 'Oval', 'Overpass', 'Park', 'Parks',
'Parkway',
'Parkways', 'Pass', 'Passage', 'Path', 'Pike', 'Pine', 'Pines', 'Place', 'Plain', 'Plains', 'Plains', 'Plaza',
'Plaza', 'Point', 'Points', 'Port', 'Port', 'Ports', 'Ports', 'Prairie', 'Prairie', 'Radial', 'Ramp', 'Ranch',
'Rapid', 'Rapids', 'Rest', 'Ridge', 'Ridges', 'River', 'Road', 'Road', 'Roads', 'Roads', 'Route', 'Row', 'Rue',
'Run', 'Shoal', 'Shoals', 'Shore', 'Shores', 'Skyway', 'Spring', 'Springs', 'Springs', 'Spur', 'Spurs',
'Square',
'Square', 'Squares', 'Squares', 'Station', 'Station', 'Stravenue', 'Stravenue', 'Stream', 'Stream', 'Street',
'Street', 'Streets', 'Summit', 'Summit', 'Terrace', 'Throughway', 'Trace', 'Track', 'Trafficway', 'Trail',
'Trail',
'Tunnel', 'Tunnel', 'Turnpike', 'Turnpike', 'Underpass', 'Union', 'Unions', 'Valley', 'Valleys', 'Via',
'Viaduct',
'View', 'Views', 'Village', 'Village', 'Villages', 'Ville', 'Vista', 'Vista', 'Walk', 'Walks', 'Wall', 'Way',
'Ways', 'Well', 'Wells')
postcode_formats = ('#####', '#####-####')
states = (
'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida',
'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine',
'Maryland',
'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada',
'NewHampshire', 'NewJersey', 'NewMexico', 'NewYork', 'NorthCarolina', 'NorthDakota', 'Ohio', 'Oklahoma',
'Oregon',
'Pennsylvania', 'RhodeIsland', 'SouthCarolina', 'SouthDakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
'Virginia',
'Washington', 'WestVirginia', 'Wisconsin', 'Wyoming' )
states_abbr = (
'AL', 'AK', 'AS', 'AZ', 'AR', 'CA', 'CO', 'CT', 'DE', 'DC', 'FM', 'FL', 'GA', 'GU', 'HI', 'ID', 'IL', 'IN',
'IA',
'KS', 'KY', 'LA', 'ME', 'MH', 'MD', 'MA', 'MI', 'MN', 'MS', 'MO', 'MT', 'NE', 'NV', 'NH', 'NJ', 'NM', 'NY',
'NC',
'ND', 'MP', 'OH', 'OK', 'OR', 'PW', 'PA', 'PR', 'RI', 'SC', 'SD', 'TN', 'TX', 'UT', 'VT', 'VI', 'VA', 'WA',
'WV',
'WI', 'WY')
military_state_abbr = ('AE', 'AA', 'AP')
military_ship_prefix = ('USS', 'USNS', 'USNV', 'USCGC')
military_apo_format = ("PSC ####, Box ####")
military_dpo_format = ("Unit #### Box ####")
countries = (
'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla',
'Antarctica (the territory South of 60 deg S)', 'Antigua and Barbuda', 'Argentina', 'Armenia', 'Aruba',
'Australia', 'Austria', 'Azerbaijan',
'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Belarus', 'Belgium', 'Belize', 'Benin', 'Bermuda', 'Bhutan',
'Bolivia', 'Bosnia and Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brazil',
'British Indian Ocean Territory (Chagos Archipelago)', 'British Virgin Islands', 'Brunei Darussalam',
'Bulgaria', 'Burkina Faso', 'Burundi',
'Cambodia', 'Cameroon', 'Canada', 'Cape Verde', 'Cayman Islands', 'Central African Republic', 'Chad', 'Chile',
'China', 'Christmas Island', 'Cocos (Keeling) Islands', 'Colombia', 'Comoros', 'Congo', 'Congo', 'Cook Islands',
'Costa Rica', 'Cote d\'Ivoire', 'Croatia', 'Cuba', 'Cyprus', 'Czech Republic',
'Denmark', 'Djibouti', 'Dominica', 'Dominican Republic',
'Ecuador', 'Egypt', 'El Salvador', 'Equatorial Guinea', 'Eritrea', 'Estonia', 'Ethiopia',
'Faroe Islands', 'Falkland Islands (Malvinas)', 'Fiji', 'Finland', 'France', 'French Guiana',
'French Polynesia', 'French Southern Territories',
'Gabon', 'Gambia', 'Georgia', 'Germany', 'Ghana', 'Gibraltar', 'Greece', 'Greenland', 'Grenada', 'Guadeloupe',
'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard Island and McDonald Islands', 'Holy See (Vatican City State)', 'Honduras', 'Hong Kong',
'Hungary',
'Iceland', 'India', 'Indonesia', 'Iran', 'Iraq', 'Ireland', 'Isle of Man', 'Israel', 'Italy',
'Jamaica', 'Japan', 'Jersey', 'Jordan',
'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Korea', 'Kuwait', 'Kyrgyz Republic',
'Lao People\'s Democratic Republic', 'Latvia', 'Lebanon', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya',
'Liechtenstein', 'Lithuania', 'Luxembourg',
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malaysia', 'Maldives', 'Mali', 'Malta', 'Marshall Islands',
'Martinique', 'Mauritania', 'Mauritius', 'Mayotte', 'Mexico', 'Micronesia', 'Moldova', 'Monaco', 'Mongolia',
'Montenegro', 'Montserrat', 'Morocco', 'Mozambique', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Netherlands Antilles', 'Netherlands', 'New Caledonia', 'New Zealand', 'Nicaragua',
'Niger', 'Nigeria', 'Niue', 'Norfolk Island', 'Northern Mariana Islands', 'Norway',
'Oman',
'Pakistan', 'Palau', 'Palestinian Territory', 'Panama', 'Papua New Guinea', 'Paraguay', 'Peru', 'Philippines',
'Pitcairn Islands', 'Poland', 'Portugal', 'Puerto Rico',
'Qatar',
'Reunion', 'Romania', 'Russian Federation', 'Rwanda',
'Saint Barthelemy', 'Saint Helena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin',
'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe',
'Saudi Arabia', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovakia (Slovak Republic)',
'Slovenia', 'Solomon Islands', 'Somalia', 'South Africa', 'South Georgia and the South Sandwich Islands',
'Spain', 'Sri Lanka', 'Sudan', 'Suriname', 'Svalbard & Jan Mayen Islands', 'Swaziland', 'Sweden', 'Switzerland',
'Syrian Arab Republic',
'Taiwan', 'Tajikistan', 'Tanzania', 'Thailand', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga',
'Trinidad and Tobago', 'Tunisia', 'Turkey', 'Turkmenistan', 'Turks and Caicos Islands', 'Tuvalu',
'Uganda', 'Ukraine', 'United Arab Emirates', 'United Kingdom', 'United States of America',
'United States Minor Outlying Islands', 'United States Virgin Islands', 'Uruguay', 'Uzbekistan',
'Vanuatu', 'Venezuela', 'Vietnam',
'Wallis and Futuna', 'Western Sahara',
'Yemen',
'Zambia', 'Zimbabwe'
)
city_formats = (
'{{city_prefix}} {{first_name}}{{city_suffix}}',
'{{city_prefix}} {{first_name}}',
'{{first_name}}{{city_suffix}}',
'{{last_name}}{{city_suffix}}',
)
street_name_formats = (
'{{first_name}} {{street_suffix}}',
'{{last_name}} {{street_suffix}}'
)
street_address_formats = (
'{{building_number}} {{street_name}}',
'{{building_number}} {{street_name}} {{secondary_address}}',
)
address_formats = (
"{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}",
)
address_formats = {
"{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}": 25,
#military address formatting.
"{{military_apo}}\nAPO {{military_state}} {{postcode}}": 1,
"{{military_ship}} {{last_name}}\nFPO {{military_state}} {{postcode}}": 1,
"{{military_dpo}}\nDPO {{military_state}} {{postcode}}": 1
}
secondary_address_formats = ('Apt. ###', 'Suite ###')
@classmethod
def city_prefix(cls):
return cls.random_element(cls.city_prefixes)
@classmethod
def secondary_address(cls):
return cls.numerify(cls.random_element(cls.secondary_address_formats))
@classmethod
def state(cls):
return cls.random_element(cls.states)
@classmethod
def state_abbr(cls):
return cls.random_element(cls.states_abbr)
@classmethod
def zipcode(cls):
return "%05d" % random.randint(501, 99950)
@classmethod
def zipcode_plus4(cls):
return "%s-%04d" % (cls.zipcode(), random.randint(1, 9999))
@classmethod
def military_ship(cls):
"""
:example 'USS'
"""
return cls.random_element(cls.military_ship_prefix)
@classmethod
def military_state(cls):
"""
:example 'APO'
"""
return cls.random_element(cls.military_state_abbr)
@classmethod
def military_apo(cls):
"""
:example 'PSC 5394 Box 3492
"""
return cls.numerify(cls.military_apo_format)
@classmethod
def military_dpo(cls):
"""
:example 'Unit 3333 Box 9342'
"""
return cls.numerify(cls.military_dpo_format)
# Aliases
@classmethod
def postalcode(cls):
return cls.zipcode()
@classmethod
def postalcode_plus4(cls):
return cls.zipcode_plus4()

View file

@ -0,0 +1,117 @@
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}}-{{last_name}}',
'{{last_name}}, {{last_name}} and {{last_name}}'
)
catch_phrase_words = (
(
'Adaptive', 'Advanced', 'Ameliorated', 'Assimilated', 'Automated', 'Balanced', 'Business-focused',
'Centralized', 'Cloned', 'Compatible', 'Configurable', 'Cross-group', 'Cross-platform', 'Customer-focused',
'Customizable', 'Decentralized', 'De-engineered', 'Devolved', 'Digitized', 'Distributed', 'Diverse',
'Down-sized', 'Enhanced', 'Enterprise-wide', 'Ergonomic', 'Exclusive', 'Expanded', 'Extended', 'Facetoface',
'Focused', 'Front-line', 'Fully-configurable', 'Function-based', 'Fundamental', 'Future-proofed',
'Grass-roots', 'Horizontal', 'Implemented', 'Innovative', 'Integrated', 'Intuitive', 'Inverse', 'Managed',
'Mandatory', 'Monitored', 'Multi-channelled', 'Multi-lateral', 'Multi-layered', 'Multi-tiered', 'Networked',
'Object-based', 'Open-architected', 'Open-source', 'Operative', 'Optimized', 'Optional', 'Organic',
'Organized', 'Persevering', 'Persistent', 'Phased', 'Polarised', 'Pre-emptive', 'Proactive',
'Profit-focused', 'Profound', 'Programmable', 'Progressive', 'Public-key', 'Quality-focused', 'Reactive',
'Realigned', 'Re-contextualized', 'Re-engineered', 'Reduced', 'Reverse-engineered', 'Right-sized', 'Robust',
'Seamless', 'Secured', 'Self-enabling', 'Sharable', 'Stand-alone', 'Streamlined', 'Switchable',
'Synchronised', 'Synergistic', 'Synergized', 'Team-oriented', 'Total', 'Triple-buffered', 'Universal',
'Up-sized', 'Upgradable', 'User-centric', 'User-friendly', 'Versatile', 'Virtual', 'Visionary',
'Vision-oriented'
),
(
'24hour', '24/7', '3rdgeneration', '4thgeneration', '5thgeneration', '6thgeneration', 'actuating',
'analyzing', 'assymetric', 'asynchronous', 'attitude-oriented', 'background', 'bandwidth-monitored',
'bi-directional', 'bifurcated', 'bottom-line', 'clear-thinking', 'client-driven', 'client-server',
'coherent', 'cohesive', 'composite', 'context-sensitive', 'contextually-based', 'content-based',
'dedicated', 'demand-driven', 'didactic', 'directional', 'discrete', 'disintermediate', 'dynamic',
'eco-centric', 'empowering', 'encompassing', 'even-keeled', 'executive', 'explicit', 'exuding',
'fault-tolerant', 'foreground', 'fresh-thinking', 'full-range', 'global', 'grid-enabled', 'heuristic',
'high-level', 'holistic', 'homogeneous', 'human-resource', 'hybrid', 'impactful', 'incremental',
'intangible', 'interactive', 'intermediate', 'leadingedge', 'local', 'logistical', 'maximized',
'methodical', 'mission-critical', 'mobile', 'modular', 'motivating', 'multimedia', 'multi-state',
'multi-tasking', 'national', 'needs-based', 'neutral', 'nextgeneration', 'non-volatile', 'object-oriented',
'optimal', 'optimizing', 'radical', 'real-time', 'reciprocal', 'regional', 'responsive', 'scalable',
'secondary', 'solution-oriented', 'stable', 'static', 'systematic', 'systemic', 'system-worthy', 'tangible',
'tertiary', 'transitional', 'uniform', 'upward-trending', 'user-facing', 'value-added', 'web-enabled',
'well-modulated', 'zeroadministration', 'zerodefect', 'zerotolerance'
),
(
'ability', 'access', 'adapter', 'algorithm', 'alliance', 'analyzer', 'application', 'approach',
'architecture', 'archive', 'artificialintelligence', 'array', 'attitude', 'benchmark',
'budgetarymanagement', 'capability', 'capacity', 'challenge', 'circuit', 'collaboration', 'complexity',
'concept', 'conglomeration', 'contingency', 'core', 'customerloyalty', 'database', 'data-warehouse',
'definition', 'emulation', 'encoding', 'encryption', 'extranet', 'firmware', 'flexibility', 'focusgroup',
'forecast', 'frame', 'framework', 'function', 'functionalities', 'GraphicInterface', 'groupware',
'GraphicalUserInterface', 'hardware', 'help-desk', 'hierarchy', 'hub', 'implementation', 'info-mediaries',
'infrastructure', 'initiative', 'installation', 'instructionset', 'interface', 'internetsolution',
'intranet', 'knowledgeuser', 'knowledgebase', 'localareanetwork', 'leverage', 'matrices', 'matrix',
'methodology', 'middleware', 'migration', 'model', 'moderator', 'monitoring', 'moratorium', 'neural-net',
'openarchitecture', 'opensystem', 'orchestration', 'paradigm', 'parallelism', 'policy', 'portal',
'pricingstructure', 'processimprovement', 'product', 'productivity', 'project', 'projection', 'protocol',
'securedline', 'service-desk', 'software', 'solution', 'standardization', 'strategy', 'structure',
'success', 'superstructure', 'support', 'synergy', 'systemengine', 'task-force', 'throughput', 'time-frame',
'toolset', 'utilisation', 'website', 'workforce'
)
)
bsWords = (
(
'implement', 'utilize', 'integrate', 'streamline', 'optimize', 'evolve', 'transform', 'embrace', 'enable',
'orchestrate', 'leverage', 'reinvent', 'aggregate', 'architect', 'enhance', 'incentivize', 'morph',
'empower', 'envisioneer', 'monetize', 'harness', 'facilitate', 'seize', 'disintermediate', 'synergize',
'strategize', 'deploy', 'brand', 'grow', 'target', 'syndicate', 'synthesize', 'deliver', 'mesh', 'incubate',
'engage', 'maximize', 'benchmark', 'expedite', 'reintermediate', 'whiteboard', 'visualize', 'repurpose',
'innovate', 'scale', 'unleash', 'drive', 'extend', 'engineer', 'revolutionize', 'generate', 'exploit',
'transition', 'e-enable', 'iterate', 'cultivate', 'matrix', 'productize', 'redefine', 'recontextualize'
),
(
'clicks-and-mortar', 'value-added', 'vertical', 'proactive', 'robust', 'revolutionary', 'scalable',
'leading-edge', 'innovative', 'intuitive', 'strategic', 'e-business', 'mission-critical', 'sticky',
'one-to-one', '24/7', 'end-to-end', 'global', 'B2B', 'B2C', 'granular', 'frictionless', 'virtual', 'viral',
'dynamic', '24/365', 'best-of-breed', 'killer', 'magnetic', 'bleeding-edge', 'web-enabled', 'interactive',
'dot-com', 'sexy', 'back-end', 'real-time', 'efficient', 'front-end', 'distributed', 'seamless',
'extensible', 'turn-key', 'world-class', 'open-source', 'cross-platform', 'cross-media', 'synergistic',
'bricks-and-clicks', 'out-of-the-box', 'enterprise', 'integrated', 'impactful', 'wireless', 'transparent',
'next-generation', 'cutting-edge', 'user-centric', 'visionary', 'customized', 'ubiquitous', 'plug-and-play',
'collaborative', 'compelling', 'holistic', 'rich'
),
(
'synergies', 'web-readiness', 'paradigms', 'markets', 'partnerships', 'infrastructures', 'platforms',
'initiatives', 'channels', 'eyeballs', 'communities', 'ROI', 'solutions', 'e-tailers', 'e-services',
'action-items', 'portals', 'niches', 'technologies', 'content', 'vortals', 'supply-chains', 'convergence',
'relationships', 'architectures', 'interfaces', 'e-markets', 'e-commerce', 'systems', 'bandwidth',
'infomediaries', 'models', 'mindshare', 'deliverables', 'users', 'schemas', 'networks', 'applications',
'metrics', 'e-business', 'functionalities', 'experiences', 'webservices', 'methodologies'
)
)
company_suffixes = ('Inc', 'and Sons', 'LLC', 'Group', 'PLC', 'Ltd')
def catch_phrase(self):
"""
:example 'Robust full-range hub'
"""
result = []
for word_list in self.catch_phrase_words:
result.append(self.random_element(word_list))
return " ".join(result)
def bs(self):
"""
:example 'integrate extensible convergence'
"""
result = []
for word_list in self.bsWords:
result.append(self.random_element(word_list))
return " ".join(result)

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,31 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+##(#)##########',
'+##(#)##########',
'0##########',
'0##########',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####x###',
'(###)###-####x###',
'1-###-###-####x###',
'###.###.####x###',
'###-###-####x####',
'(###)###-####x####',
'1-###-###-####x####',
'###.###.####x####',
'###-###-####x#####',
'(###)###-####x#####',
'1-###-###-####x#####',
'###.###.####x#####'
)

View file

@ -0,0 +1,10 @@
# coding=utf-8
from __future__ import unicode_literals
from ..ssn import Provider as SsnProvider
class Provider(SsnProvider):
ssn_formats = ("###-##-####",)
@classmethod
def ssn(cls):
return cls.bothify(cls.random_element(cls.ssn_formats))

View file

View file

@ -0,0 +1,105 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
building_number_formats = ('%', '%#', '%#', '%#', '%##')
street_prefixes = (
'Plaza', 'Calle', 'Avenida', 'Via', 'Vial', 'Rambla', 'Glorieta', 'Urbanización', 'Callejón', 'Cañada',
'Alameda', 'Acceso', 'C.', 'Ronda', 'Pasaje', 'Cuesta', 'Pasadizo', 'Paseo', 'Camino'
)
postcode_formats = ('#####', )
states = (
'Álava', 'Albacete', 'Alicante', 'Almería', 'Asturias', 'Ávila', 'Badajoz',
'Baleares', 'Barcelona', 'Burgos', 'Cáceres', 'Cádiz', 'Cantabria', 'Castellón',
'Ceuta', 'Ciudad', 'Córdoba', 'Cuenca', 'Girona', 'Granada', 'Guadalajara',
'Guipúzcoa', 'Huelva', 'Huesca', 'Jaén', 'La Coruña', 'La Rioja', 'Las Palmas',
'León', 'Lleida', 'Lugo', 'Madrid', 'Málaga', 'Melilla', 'Murcia', 'Navarra',
'Ourense', 'Palencia', 'Pontevedra', 'Salamanca', 'Santa Cruz de Tenerife',
'Segovia', 'Sevilla', 'Soria', 'Tarragona', 'Teruel', 'Toledo', 'Valencia',
'Valladolid', 'Vizcaya', 'Zamora', 'Zaragoza'
)
countries = (
'Afganistán', 'Akrotiri', 'Albania', 'Alemania', 'Andorra', 'Angola', 'Anguila',
'Antártida', 'Antigua y Barbuda', 'Antillas Neerlandesas', 'Arabia Saudí',
'Arctic Ocean', 'Argelia', 'Argentina', 'Armenia', 'Aruba', 'Ashmore and Cartier Islands',
'Atlantic Ocean', 'Australia', 'Austria', 'Azerbaiyán', 'Bahamas',
'Bahráin', 'Bangladesh', 'Barbados', 'Bélgica', 'Belice', 'Benín', 'Bermudas',
'Bielorrusia', 'Birmania Myanmar', 'Bolivia', 'Bosnia y Hercegovina',
'Botsuana', 'Brasil', 'Brunéi', 'Bulgaria', 'Burkina Faso', 'Burundi', 'Bután',
'Cabo Verde', 'Camboya', 'Camerún', 'Canadá', 'Chad', 'Chile', 'China',
'Chipre', 'Clipperton Island', 'Colombia', 'Comoras', 'Congo', 'Coral Sea Islands',
'Corea del Norte', 'Corea del Sur', 'Costa de Marfil', 'Costa Rica',
'Croacia', 'Cuba', 'Dhekelia', 'Dinamarca', 'Dominica', 'Ecuador', 'Egipto', 'El Salvador',
'El Vaticano', 'Emiratos Árabes Unidos', 'Eritrea', 'Eslovaquia',
'Eslovenia', 'España', 'Estados Unidos', 'Estonia', 'Etiopía', 'Filipinas',
'Finlandia', 'Fiyi', 'Francia', 'Gabón', 'Gambia', 'Gaza Strip', 'Georgia',
'Ghana', 'Gibraltar', 'Granada', 'Grecia', 'Groenlandia', 'Guam', 'Guatemala',
'Guernsey', 'Guinea', 'Guinea Ecuatorial', 'Guinea-Bissau', 'Guyana', 'Haití',
'Honduras', 'Hong Kong', 'Hungría', 'India', 'Indian Ocean', 'Indonesia',
'Irán', 'Iraq', 'Irlanda', 'Isla Bouvet', 'Isla Christmas', 'Isla Norfolk',
'Islandia', 'Islas Caimán', 'Islas Cocos', 'Islas Cook', 'Islas Feroe', 'Islas Georgia del Sur y Sandwich del Sur',
'Islas Heard y McDonald', 'Islas Malvinas', 'Islas Marianas del Norte', 'Islas Marshall',
'Islas Pitcairn', 'Islas Salomón', 'Islas Turcas y Caicos', 'Islas Vírgenes Americanas',
'Islas Vírgenes Británicas', 'Israel', 'Italia', 'Jamaica', 'Jan Mayen', 'Japón', 'Jersey',
'Jordania', 'Kazajistán', 'Kenia', 'Kirguizistán', 'Kiribati', 'Kuwait', 'Laos',
'Lesoto', 'Letonia', 'Líbano', 'Liberia', 'Libia', 'Liechtenstein', 'Lituania',
'Luxemburgo', 'Macao', 'Macedonia', 'Madagascar', 'Malasia', 'Malaui',
'Maldivas', 'Malí', 'Malta', 'Man, Isle of', 'Marruecos', 'Mauricio',
'Mauritania', 'Mayotte', 'México', 'Micronesia', 'Moldavia', 'Mónaco',
'Mongolia', 'Montserrat', 'Mozambique', 'Namibia', 'Nauru', 'Navassa Island',
'Nepal', 'Nicaragua', 'Níger', 'Nigeria', 'Niue', 'Noruega', 'Nueva Caledonia',
'Nueva Zelanda', 'Omán', 'Pacific Ocean', 'Países Bajos', 'Pakistán', 'Palaos',
'Panamá', 'Papúa-Nueva Guinea', 'Paracel Islands', 'Paraguay', 'Perú',
'Polinesia Francesa', 'Polonia', 'Portugal', 'Puerto Rico', 'Qatar', 'Reino Unido',
'República Centroafricana', 'República Checa', 'República Democrática del Congo',
'República Dominicana', 'Ruanda', 'Rumania', 'Rusia', 'Sáhara Occidental', 'Samoa',
'Samoa Americana', 'San Cristóbal y Nieves', 'San Marino',
'San Pedro y Miquelón', 'San Vicente y las Granadinas', 'Santa Helena', 'Santa Lucía',
'Santo Tomé y Príncipe', 'Senegal', 'Seychelles', 'Sierra Leona',
'Singapur', 'Siria', 'Somalia', 'Southern Ocean', 'Spratly Islands', 'Sri Lanka',
'Suazilandia', 'Sudáfrica', 'Sudán', 'Suecia', 'Suiza', 'Surinam',
'Svalbard y Jan Mayen', 'Tailandia', 'Taiwán', 'Tanzania', 'Tayikistán',
'TerritorioBritánicodel Océano Indico', 'Territorios Australes Franceses',
'Timor Oriental', 'Togo', 'Tokelau', 'Tonga', 'Trinidad y Tobago', 'Túnez',
'Turkmenistán', 'Turquía', 'Tuvalu', 'Ucrania', 'Uganda', 'Unión Europea',
'Uruguay', 'Uzbekistán', 'Vanuatu', 'Venezuela', 'Vietnam', 'Wake Island',
'Wallis y Futuna', 'West Bank', 'World', 'Yemen', 'Yibuti', 'Zambia', 'Zimbabue'
)
city_formats = (
'{{state_name}}',
)
street_name_formats = (
'{{street_prefix}} {{first_name}} {{last_name}}',
'{{street_prefix}} de {{first_name}} {{last_name}}',
)
street_address_formats = (
'{{street_name}} {{building_number}}',
'{{street_name}} {{building_number}} {{secondary_address}} ',
)
address_formats = (
"{{street_address}}\n{{city}}, {{postcode}}",
)
secondary_address_formats = ('Apt. ##', 'Piso #', 'Puerta #')
@classmethod
def state_name(cls):
return cls.random_element(cls.states)
@classmethod
def street_prefix(cls):
return cls.random_element(cls.street_prefixes)
@classmethod
def secondary_address(cls):
return cls.numerify(cls.random_element(cls.secondary_address_formats))
@classmethod
def state(cls):
return cls.random_element(cls.states)

View file

@ -0,0 +1,232 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{prefix}} {{last_name}}',
'{{first_name}} {{last_name}}-{{last_name}}',
'{{first_name}} {{first_name}} {{last_name}} {{last_name}}',
)
first_names = (
'Aaron', 'Abel', 'Abraham', 'Abram', 'Abril', 'Ada', 'Adam',
'Adria', 'Adrian', 'Adriana', 'Adrián', 'Adán', 'Africa', 'Aina',
'Ainara', 'Ainhoa', 'Aitana', 'Aitor', 'Alan', 'Alana', 'Alba',
'Alberto', 'Aleix', 'Alejandra', 'Alejandro', 'Alex', 'Alexa', 'Alexandra',
'Alexandría', 'Alexia', 'Alexis', 'Alfredo', 'Alicia', 'Alina', 'Alma',
'Alonso', 'Alonzo', 'Alvaro', 'Amanda', 'Amaya', 'Amelia', 'América',
'Ana', 'Ander', 'Andrea', 'Andres', 'Andrés', 'Ane', 'Angel',
'Angela', 'Angelina', 'Angélica', 'Anna', 'Antonio', 'Ariadna', 'Ariana',
'Arlet', 'Armando', 'Arnau', 'Aroa', 'Arturo', 'Asia', 'Asier',
'Aurora', 'Aya', 'Benjamín', 'Berta', 'Biel', 'Blanca', 'Brenda',
'Bruno', 'Camila', 'Candela', 'Carla', 'Carlos', 'Carlota', 'Carmen',
'Carolina', 'Cecilia', 'Celeste', 'Celia', 'Cesar', 'Chloe', 'Clara',
'Claudia', 'Cristian', 'Cristina', 'César', 'Daniel', 'Daniela', 'Daniella',
'Dario', 'David', 'Diana', 'Diego', 'Dulce', 'Eduardo', 'Elena',
'Eliana', 'Elisa', 'Elsa', 'Elías', 'Emanuel', 'Emilia', 'Emiliano',
'Emilio', 'Emma', 'Enrique', 'Eric', 'Erik', 'Erika', 'Ernesto',
'Esmeralda', 'Esteban', 'Estrella', 'Eva', 'Ezequiel', 'Fabián', 'Felipe',
'Fernanda', 'Fernando', 'Francisco', 'Francisco javier', 'Fátima', 'Gabriel', 'Gabriela',
'Gael', 'Gerard', 'Gerardo', 'Gloria', 'Gonzalo', 'Guadalupe', 'Guillem',
'Guillermo', 'Gustavo', 'Hector', 'Helena', 'Hugo', 'Héctor', 'Ian',
'Ignacio', 'Iker', 'Ines', 'Irati', 'Irene', 'Iria', 'Iris',
'Isaac', 'Isabel', 'Isabela', 'Isabella', 'Ismael', 'Israel', 'Ivan',
'Iván', 'Izan', 'Jaime', 'JairoJavier', 'Jan', 'Jana', 'Javier',
'Jazmín', 'Jesus', 'Jesús', 'Jimena', 'Joan', 'Joaquín', 'Joel',
'Jon', 'Jordi', 'Jorge', 'Jose', 'Jose antonio', 'Jose manuel', 'Josué',
'José', 'Juan', 'Judith', 'Julia', 'Juliana', 'Julio', 'Julián',
'Laia', 'Lara', 'Laura', 'Leila', 'Leire', 'Leo', 'Leonardo',
'Leyre', 'Lidia', 'Lila', 'Lilian', 'Liliana', 'Linda', 'Lola',
'Lorenzo', 'Lucas', 'Lucia', 'Lucián', 'Lucía', 'Luis', 'Luna',
'Lía', 'Malak', 'Manuel', 'Manuela', 'Mar', 'Mara', 'Marc',
'Marco', 'Marcos', 'Maria', 'Mariana', 'Marina', 'Mario', 'Marisol',
'Marta', 'Marti', 'Martin', 'Martina', 'Martín', 'María', 'Mateo',
'Matías', 'Mauricio', 'Max', 'Maximiliano', 'Maya', 'Melina', 'Mercedes',
'Miguel', 'Miguel angel', 'Mikel', 'Miranda', 'Mireia', 'Miriam', 'Mohamed',
'Mónica', 'Nadia', 'Nahia', 'Naia', 'Naiara', 'Natalia', 'Nayara',
'Nerea', 'Nicolas', 'Nicolás', 'Nil', 'Noa', 'Noelia', 'Nora',
'Noé', 'Nuria', 'Oliver', 'Olivia', 'Omar', 'Ona', 'Oriol',
'Orlando', 'Oscar', 'Pablo', 'Paola', 'Patricia', 'Pau', 'Paula',
'Paúl', 'Pedro', 'Penélope', 'Perla', 'Pol', 'Rafael', 'Ramón',
'Raquel', 'Raul', 'Rayan', 'Raúl', 'Regina', 'Ricardo', 'Roberto',
'Rocio', 'Rodrigo', 'Román', 'Rosa', 'Ruben', 'Rubén', 'Salma',
'Salvador', 'Samuel', 'Sandra', 'Santiago', 'Sara', 'Saul', 'Saúl',
'Sebastián', 'Selena', 'Serena', 'Sergio', 'Silvia', 'Simón', 'Sofia',
'Sofía', 'Talía', 'Tatiana', 'Tobías', 'Tomás', 'Unai', 'Valentina',
'Valeria', 'Vega', 'Vera', 'Verónica', 'Victor', 'Victoria', 'Virginia',
'Vivian', 'Viviana', 'Víctor', 'Xavier', 'Ximena', 'Yago', 'Yeray',
)
last_names = (
'Abad', 'Abascal', 'Abella', 'Abellán', 'Abril', 'Acedo', 'Acero',
'Acevedo', 'Acosta', 'Acuña', 'Adadia', 'Adán', 'Aguado', 'Agudo',
'Aguilar', 'Aguilera', 'Aguiló', 'Aguirre', 'Agullo', 'Agustí', 'Agustín',
'Alarcón', 'Alba', 'Alberdi', 'Albero', 'Alberola', 'Alberto', 'Alcalde',
'Alcalá', 'Alcaraz', 'Alcolea', 'Alcántara', 'Alcázar', 'Alegre', 'Alegria',
'Alemany', 'Alemán', 'Alfaro', 'Alfonso', 'Aliaga', 'Aller', 'Almagro',
'Almansa', 'Almazán', 'Almeida', 'Alonso', 'Alsina', 'Alvarado', 'Alvarez',
'Amador', 'Amat', 'Amaya', 'Amigó', 'Amo', 'Amor', 'Amores',
'Amorós', 'Anaya', 'Andrade', 'Andres', 'Andreu', 'Andrés', 'Anglada',
'Anguita', 'Angulo', 'Antón', 'Antúnez', 'Aparicio', 'Aragonés', 'Aragón',
'Aramburu', 'Arana', 'Aranda', 'Araujo', 'Arce', 'Arco', 'Arcos',
'Arellano', 'Arenas', 'Arias', 'Ariza', 'Ariño', 'Arjona', 'Armas',
'Armengol', 'Arnaiz', 'Arnal', 'Arnau', 'Aroca', 'Arranz', 'Arregui',
'Arribas', 'Arrieta', 'Arroyo', 'Arteaga', 'Artigas', 'Arévalo', 'Asenjo',
'Asensio', 'Atienza', 'Avilés', 'Ayala', 'Ayllón', 'Ayuso', 'Azcona',
'Aznar', 'Azorin', 'Badía', 'Baena', 'Baeza', 'Balaguer', 'Ballester',
'Ballesteros', 'Baquero', 'Barba', 'Barbero', 'Barberá', 'Barceló', 'Barco',
'Barragán', 'Barral', 'Barranco', 'Barreda', 'Barrena', 'Barrera', 'Barriga',
'Barrio', 'Barrios', 'Barros', 'Barroso', 'Bartolomé', 'Baró', 'Barón',
'Bas', 'Bastida', 'Batalla', 'Batlle', 'Bautista', 'Bauzà', 'Bayo',
'Bayona', 'Bayón', 'Baños', 'Becerra', 'Bejarano', 'Belda', 'Bellido',
'Bello', 'Belmonte', 'Beltran', 'Beltrán', 'Benavent', 'Benavente', 'Benavides',
'Benet', 'Benitez', 'Benito', 'Benítez', 'Berenguer', 'Bermejo', 'Bermudez',
'Bermúdez', 'Bernad', 'Bernal', 'Bernat', 'Berrocal', 'Bertrán', 'Bilbao',
'Blanca', 'Blanch', 'Blanco', 'Blanes', 'Blasco', 'Blazquez', 'Blázquez',
'Boada', 'Boix', 'Bolaños', 'Bonet', 'Bonilla', 'Borja', 'Borrego',
'Borrell', 'Borrás', 'Bosch', 'Botella', 'Bou', 'Bravo', 'Briones',
'Bru', 'Buendía', 'Bueno', 'Burgos', 'Busquets', 'Bustamante', 'Bustos',
'Báez', 'Bárcena', 'Caballero', 'Cabanillas', 'Cabañas', 'Cabello', 'Cabeza',
'Cabezas', 'Cabo', 'Cabrera', 'Cabrero', 'Cadenas', 'Cal', 'Calatayud',
'Calderon', 'Calderón', 'Calleja', 'Calvet', 'Calvo', 'Calzada', 'Camacho',
'Camino', 'Campillo', 'Campo', 'Campos', 'Campoy', 'Camps', 'Canales',
'Canals', 'Canet', 'Cano', 'Cantero', 'Cantón', 'Caparrós', 'Capdevila',
'Carbajo', 'Carballo', 'Carbonell', 'Carbó', 'Cardona', 'Carlos', 'Carmona',
'Carnero', 'Caro', 'Carpio', 'Carranza', 'Carrasco', 'Carrera', 'Carreras',
'Carretero', 'Carreño', 'Carrillo', 'Carrión', 'Carro', 'Carvajal', 'Casado',
'Casal', 'Casals', 'Casanova', 'Casanovas', 'Casares', 'Casas', 'Cases',
'Castañeda', 'Castejón', 'Castell', 'Castellanos', 'Castells', 'Castelló', 'Castilla',
'Castillo', 'Castrillo', 'Castro', 'Catalá', 'Catalán', 'Cazorla', 'Cañas',
'Cañellas', 'Cañete', 'Cañizares', 'Cepeda', 'Cerdá', 'Cerdán', 'Cerezo',
'Cerro', 'Cervantes', 'Cervera', 'Chacón', 'Chamorro', 'Chaparro', 'Chaves',
'Checa', 'Chico', 'Cid', 'Cifuentes', 'Cisneros', 'Clavero', 'Clemente',
'Cobo', 'Cobos', 'Coca', 'Codina', 'Coello', 'Coll', 'Collado',
'Colom', 'Coloma', 'Colomer', 'Comas', 'Company', 'Conde', 'Conesa',
'Contreras', 'Corbacho', 'Cordero', 'Cornejo', 'Corominas', 'Coronado', 'Corral',
'Correa', 'Cortes', 'Cortina', 'Cortés', 'Costa', 'Crespi', 'Crespo',
'Criado', 'Cruz', 'Cuadrado', 'Cuenca', 'Cuervo', 'Cuesta', 'Cueto',
'Cuevas', 'Cuéllar', 'Cáceres', 'Cámara', 'Cánovas', 'Cárdenas', 'Céspedes',
'Córdoba', 'Cózar', 'Dalmau', 'Daza', 'Delgado', 'Diaz', 'Diego',
'Diez', 'Diéguez', 'Domingo', 'Dominguez', 'Doménech', 'Domínguez', 'Donaire',
'Donoso', 'Duarte', 'Dueñas', 'Duque', 'Duran', 'Durán', 'Dávila',
'Díaz', 'Díez', 'Echevarría', 'Echeverría', 'Egea', 'Elorza', 'Elías',
'Enríquez', 'Escalona', 'Escamilla', 'Escobar', 'Escolano', 'Escribano', 'Escrivá',
'Escudero', 'Espada', 'Esparza', 'España', 'Español', 'Espejo', 'Espinosa',
'Esteban', 'Esteve', 'Estevez', 'Estrada', 'Estévez', 'Exposito', 'Expósito',
'Fabra', 'Fabregat', 'Fajardo', 'Falcó', 'Falcón', 'Farré', 'Feijoo',
'Feliu', 'Fernandez', 'Fernández', 'Ferrando', 'Ferrer', 'Ferrera', 'Ferreras',
'Ferrero', 'Ferrán', 'Ferrández', 'Ferrándiz', 'Figueras', 'Figueroa', 'Figuerola',
'Fiol', 'Flor', 'Flores', 'Folch', 'Fonseca', 'Font', 'Fortuny',
'Franch', 'Francisco', 'Franco', 'Frutos', 'Frías', 'Fuente', 'Fuentes',
'Fuertes', 'Fuster', 'Fábregas', 'Gabaldón', 'Galan', 'Galiano', 'Galindo',
'Gallardo', 'Gallart', 'Gallego', 'Gallo', 'Galvez', 'Galván', 'Galán',
'Garay', 'Garcia', 'Garcés', 'García', 'Gargallo', 'Garmendia', 'Garrido',
'Garriga', 'Garzón', 'Gascón', 'Gaya', 'Gelabert', 'Gibert', 'Gil',
'Gilabert', 'Gimenez', 'Gimeno', 'Giménez', 'Giner', 'Giralt', 'Girona',
'Girón', 'Gisbert', 'Godoy', 'Goicoechea', 'Gomez', 'Gomila', 'Gomis',
'Gonzalez', 'Gonzalo', 'González', 'Gordillo', 'Goñi', 'Gracia', 'Granados',
'Grande', 'Gras', 'Grau', 'Gual', 'Guardia', 'Guardiola', 'Guerra',
'Guerrero', 'Guijarro', 'Guillen', 'Guillén', 'Guitart', 'Gutierrez', 'Gutiérrez',
'Guzman', 'Guzmán', 'Gálvez', 'Gámez', 'Gárate', 'Gómez', 'Haro',
'Heras', 'Heredia', 'Hernandez', 'Hernando', 'Hernández', 'Herranz', 'Herrera',
'Herrero', 'Hervia', 'Hervás', 'Hidalgo', 'Hierro', 'Higueras', 'Hoyos',
'Hoz', 'Huerta', 'Huertas', 'Huguet', 'Hurtado', 'Ibarra', 'Ibañez',
'Iborra', 'Ibáñez', 'Iglesia', 'Iglesias', 'Infante', 'Iniesta', 'Iriarte',
'Isern', 'Izaguirre', 'Izquierdo', 'Iñiguez', 'Jara', 'Jaume', 'Jaén',
'Jerez', 'Jimenez', 'Jiménez', 'Jordá', 'Jordán', 'Jove', 'Jover',
'Juan', 'Juliá', 'Julián', 'Jurado', 'Juárez', 'Jáuregui', 'Jódar',
'Lago', 'Laguna', 'Lamas', 'Landa', 'Lara', 'Larrañaga', 'Larrea',
'Lasa', 'Lastra', 'Leal', 'Ledesma', 'Leiva', 'Leon', 'Lerma',
'León', 'Lillo', 'Linares', 'Llabrés', 'Lladó', 'Llamas', 'Llano',
'Llanos', 'Lledó', 'Llobet', 'Llopis', 'Llorens', 'Llorente', 'Lloret',
'Lluch', 'Lobato', 'Lobo', 'Lopez', 'Lorenzo', 'Losa', 'Losada',
'Lozano', 'Lucas', 'Lucena', 'Luján', 'Lumbreras', 'Luna', 'Luque',
'Luz', 'Luís', 'López', 'Machado', 'Macias', 'Macías', 'Madrid',
'Madrigal', 'Maestre', 'Maldonado', 'Malo', 'Mancebo', 'Manjón', 'Manrique',
'Manso', 'Manuel', 'Manzanares', 'Manzano', 'Marco', 'Marcos', 'Marin',
'Mariscal', 'Mariño', 'Marquez', 'Marqués', 'Marti', 'Martin', 'Martinez',
'Martorell', 'Martí', 'Martín', 'Martínez', 'Marí', 'Marín', 'Mas',
'Mascaró', 'Mata', 'Matas', 'Mate', 'Mateo', 'Mateos', 'Mateu',
'Mayo', 'Mayol', 'Mayoral', 'Maza', 'Medina', 'Melero', 'Meléndez',
'Mena', 'Mendez', 'Mendizábal', 'Mendoza', 'Menendez', 'Menéndez', 'Mercader',
'Merino', 'Mesa', 'Miguel', 'Milla', 'Millán', 'Mir', 'Miralles',
'Miranda', 'Miró', 'Moles', 'Molina', 'Moliner', 'Molins', 'Moll',
'Monreal', 'Montalbán', 'Montaña', 'Montenegro', 'Montero', 'Montes', 'Montesinos',
'Montoya', 'Montserrat', 'Mora', 'Moraleda', 'Morales', 'Morante', 'Morata',
'Morcillo', 'Morell', 'Moreno', 'Morera', 'Morillo', 'Morán', 'Mosquera',
'Moya', 'Mulet', 'Mur', 'Murcia', 'Murillo', 'Muro', 'Muñoz',
'Mármol', 'Márquez', 'Méndez', 'Mínguez', 'Múgica', 'Múñiz', 'Nadal',
'Naranjo', 'Narváez', 'Navarrete', 'Navarro', 'Navas', 'Nebot', 'Neira',
'Nevado', 'Nicolau', 'Nicolás', 'Nieto', 'Niño', 'Nogueira', 'Noguera',
'Nogués', 'Noriega', 'Novoa', 'Nuñez', 'Núñez', 'Ocaña', 'Ochoa',
'Ojeda', 'Oliva', 'Olivares', 'Oliver', 'Olivera', 'Oliveras', 'Olivé',
'Oller', 'Olmedo', 'Olmo', 'Ordóñez', 'Orozco', 'Ortega', 'Ortiz',
'Ortuño', 'Osorio', 'Osuna', 'Otero', 'Pablo', 'Pacheco', 'Padilla',
'Pagès', 'Palacio', 'Palacios', 'Palau', 'Pallarès', 'Palma', 'Palmer',
'Palomar', 'Palomares', 'Palomino', 'Palomo', 'Paniagua', 'Pardo', 'Paredes',
'Pareja', 'Parejo', 'Parra', 'Pascual', 'Pastor', 'Patiño', 'Pavón',
'Paz', 'Pazos', 'Pedraza', 'Pedrero', 'Pedro', 'Pedrosa', 'Peinado',
'Peiró', 'Pelayo', 'Pellicer', 'Peláez', 'Pera', 'Peral', 'Perales',
'Peralta', 'Perea', 'Pereira', 'Perelló', 'Perera', 'Perez', 'Peña',
'Peñalver', 'Peñas', 'Pi', 'Pina', 'Pineda', 'Pinedo', 'Pinilla',
'Pino', 'Pinto', 'Pintor', 'Piquer', 'Pizarro', 'Piña', 'Piñeiro',
'Piñol', 'Pla', 'Plana', 'Planas', 'Plaza', 'Pol', 'Polo',
'Pomares', 'Pombo', 'Ponce', 'Pons', 'Pont', 'Porcel', 'Porras',
'Porta', 'Portero', 'Portillo', 'Posada', 'Pou', 'Poza', 'Pozo',
'Pozuelo', 'Prada', 'Prado', 'Prat', 'Prats', 'Priego', 'Prieto',
'Puente', 'Puerta', 'Puga', 'Puig', 'Pujadas', 'Pujol', 'Pulido',
'Páez', 'Pérez', 'Quero', 'Querol', 'Quesada', 'Quevedo', 'Quintana',
'Quintanilla', 'Quintero', 'Quiroga', 'Quirós', 'Ramirez', 'Ramis', 'Ramos',
'Ramírez', 'Ramón', 'Raya', 'Real', 'Rebollo', 'Recio', 'Redondo',
'Reguera', 'Reig', 'Reina', 'Requena', 'Revilla', 'Rey', 'Reyes',
'Riba', 'Ribas', 'Ribera', 'Ribes', 'Ricart', 'Rico', 'Riera',
'Rincón', 'Rios', 'Ripoll', 'Riquelme', 'Rius', 'Rivas', 'Rivera',
'Rivero', 'Robledo', 'Robles', 'Roca', 'Rocamora', 'Rocha', 'Roda',
'Rodrigo', 'Rodriguez', 'Rodríguez', 'Roig', 'Rojas', 'Roldan', 'Roldán',
'Roma', 'Roman', 'Romero', 'Romeu', 'Román', 'Ropero', 'Ros',
'Rosa', 'Rosado', 'Rosales', 'Rosell', 'Roselló', 'Rosselló', 'Roura',
'Rovira', 'Royo', 'Rozas', 'Ruano', 'Rubio', 'Rueda', 'Ruiz',
'Río', 'Ríos', 'Ródenas', 'Saavedra', 'Sabater', 'Sacristán', 'Saez',
'Sainz', 'Sala', 'Salamanca', 'Salas', 'Salazar', 'Salcedo', 'Saldaña',
'Sales', 'Salgado', 'Salinas', 'Salmerón', 'Salom', 'Salvador', 'Salvà',
'Samper', 'Sanabria', 'Sanchez', 'Sancho', 'Sandoval', 'Sanjuan', 'Sanmartín',
'Sanmiguel', 'Sans', 'Santamaria', 'Santamaría', 'Santana', 'Santiago', 'Santos',
'Sanz', 'Sarabia', 'Sarmiento', 'Sastre', 'Saura', 'Sebastián', 'Seco',
'Sedano', 'Segarra', 'Segovia', 'Segura', 'Seguí', 'Serna', 'Serra',
'Serrano', 'Sevilla', 'Sevillano', 'Sierra', 'Silva', 'Simó', 'Sobrino',
'Sola', 'Solana', 'Solano', 'Soler', 'Solera', 'Solsona', 'Solé',
'Solís', 'Somoza', 'Soria', 'Soriano', 'Sosa', 'Sotelo', 'Soto',
'Suarez', 'Sureda', 'Suárez', 'Sáenz', 'Sáez', 'Sánchez', 'Taboada',
'Talavera', 'Tamarit', 'Tamayo', 'Tapia', 'Tejada', 'Tejedor', 'Tejera',
'Tejero', 'Tello', 'Tena', 'Tenorio', 'Terrón', 'Teruel', 'Tirado',
'Toledo', 'Tolosa', 'Tomas', 'Tomás', 'Tomé', 'Tormo', 'Toro',
'Torralba', 'Torre', 'Torrecilla', 'Torrens', 'Torrent', 'Torrents', 'Torres',
'Torrijos', 'Tovar', 'Trillo', 'Trujillo', 'Tudela', 'Tur', 'Téllez',
'Ugarte', 'Ureña', 'Uriarte', 'Uribe', 'Urrutia', 'Uría', 'Valbuena',
'Valcárcel', 'Valderrama', 'Valdés', 'Valencia', 'Valenciano', 'Valentín', 'Valenzuela',
'Valera', 'Valero', 'Vall', 'Valle', 'Vallejo', 'Valls', 'Vallés',
'Valverde', 'Vaquero', 'Vara', 'Varela', 'Vargas', 'Vazquez', 'Vega',
'Velasco', 'Velázquez', 'Vendrell', 'Vera', 'Verdejo', 'Verdugo', 'Verdú',
'Vergara', 'Viana', 'Vicens', 'Vicente', 'Vidal', 'Vigil', 'Vila',
'Vilalta', 'Vilanova', 'Vilaplana', 'Vilar', 'Villa', 'Villalba', 'Villalobos',
'Villalonga', 'Villanueva', 'Villar', 'Villaverde', 'Villegas', 'Villena', 'Vives',
'Vizcaíno', 'Viña', 'Viñas', 'Vázquez', 'Vélez', 'Yuste', 'Yáñez',
'Zabala', 'Zabaleta', 'Zamora', 'Zamorano', 'Zapata', 'Zaragoza', 'Zorrilla',
'Zurita', 'Águila', 'Álamo', 'Álvarez', 'Álvaro', 'Ángel', 'Ávila'
)
prefixes = ('de', 'del')
@classmethod
def prefix(cls):
return cls.random_element(cls.prefixes)

View file

@ -0,0 +1,13 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+34 ### ### ###',
'+34 #########',
'+34 ### ## ## ##',
'+34### ### ###',
'+34#########',
'+34### ## ## ##',
)

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,168 @@
# -*- encoding: utf-8 -*-
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
#import locale
class Provider(AddressProvider):
#current_locale = locale.setlocale(locale.LC_ALL, "es_MX.UTF-8")
city_prefixes = ('Sur', 'Norte',)
city_adjetives = ('Nueva', 'Vieja',)
city_suffixies = ('de la Montaña', 'los bajos', 'los altos', )
street_prefixes = (
'Ampliación', 'Andador', 'Avenida', 'Boulevard', 'Calle', 'Callejón',
'Calzada', 'Cerrada', 'Circuito', 'Circunvalación', 'Continuación',
'Corredor', 'Diagonal', 'Eje vial', 'Pasaje', 'Peatonal', 'Periférico',
'Privada', 'Prolongación', 'Retorno', 'Viaducto'
)
building_number_formats = ('#####', '####', '###')
postcode_formats = ('#####', '#####-####')
## States and abbrs from Mexico from INEGI
## http://www.inegi.org.mx/geo/contenidos/geoestadistica/CatalogoClaves.aspx
states = (
('AGS','Aguascalientes'), ('BC','Baja California'),
('BCS','Baja California Sur'), ('CAMP','Campeche'),
('COAH', 'Coahuila de Zaragoza'), ('COL', 'Colima'),
('CHIS', 'Chiapas'), ('CHIH', 'Chihuahua'),
('DF','Distrito Federal'), ('DGO', 'Durango'),
('GTO', 'Guanajuato'), ('GRO', 'Guerrero'), ('HGO', 'Hidalgo'),
('JAL', 'Jalisco'), ('MEX', 'México'),
('MICH', 'Michoacán de Ocampo'), ('MOR', 'Morelos'),
('NAY', 'Nayarit'), ('NL', 'Nuevo León'), ('OAX', 'Oaxaca'),
('PUE','Puebla'), ('QRO', 'Querétaro'),
('Q. ROO', 'Quintana Roo'), ('SLP', 'San Luis Potosí'),
('SIN', 'Sinaloa'), ('SON', 'Sonora'), ('TAB', 'Tabasco'),
('TAMPS','Tamaulipas'), ('TLAX','Tlaxcala'),
('VER', 'Veracruz de Ignacio de la Llave'),
('YUC', 'Yucatán'), ('ZAC','Zacatecas'),)
zip_codes = {
## The ZipCodes has a begin & final range
## Source: Norma Técnica de Domicilios INEGI
'AGS': (20000, 20999), 'BC' : (21000, 22999),
'BCS': (23000, 23999), 'CAMP' : (24000, 24999),
'COAH': (25000, 27999), 'COL': (28000, 28999),
'CHIS': (29000, 30999), 'CHIH': (31000, 33999),
'DF': (1000, 19999), 'DGO': (36000, 35999),
'GTO': (36000, 38999), 'GRO': (39000, 41999),
'HGO': (42000, 43999), 'JAL': (44000, 49999),
'MEX': (50000, 57999), 'MICH': (58000, 61999),
'MOR': (62000, 62999), 'NAY': (63000, 63999),
'NL': (64000, 67999), 'OAX': (68000, 71999),
'PUE': (72000, 75999), 'QRO': (76000, 76999),
'Q. ROO': (77000, 75999), 'SLP': (78000, 79999),
'SIN': (80000, 82999), 'SON': (83000, 85999),
'TAB': (86000, 86999), 'TAMPS': (87000, 89999),
'TLAX': (90000, 90999), 'VER': (91000, 97999),
'YUC': (97000, 97999), 'ZAC': (98000, 99999)
}
## List of Countries https://www.un.org/es/members/
countries = (
'Afganistán', 'Albania', 'Alemania', 'Andorra', 'Angola',
'Antigua y Barbuda', 'Arabia Saudita', 'Argelia', 'Argentina',
'Armenia', 'Australia', 'Austria', 'Azerbaiyán',
'Bahamas', 'Bahrein', 'Bangladesh', 'Barbados', 'Belarús',
'Bélgica', 'Belice', 'Benin', 'Bhután', 'Bolivia',
'Bosnia y Herzegovina', 'Botswana', 'Brasil', 'Brunei Darussalam',
'Bulgaria', 'Burkina Faso', 'Burundi', 'Cabo Verde', 'Camboya',
'Camerún', 'Canadá', 'Chad', 'Chile', 'China', 'Chipre','Colombia',
'Comoras', 'Congo', 'Costa Rica', 'Côte d\'Ivoire', 'Croacia',
'Cuba', 'Dinamarca', 'Djibouti', 'Dominicana', 'Ecuador', 'Egipto',
'El Salvador', 'Emiratos Árabes Unidos', 'Eritrea', 'Eslovaquia',
'Eslovenia', 'España', 'Estados Unidos de América', 'Estonia',
'Etiopía', 'ex República Yugoslava de Macedonia',
'Federación de Rusia', 'Fiji', 'Filipinas', 'Finlandia', 'Francia',
'Gabón', 'Gambia', 'Georgia', 'Ghana', 'Granada', 'Grecia',
'Guatemala', 'Guinea', 'Guinea Bissau', 'Guinea Ecuatorial',
'Guyana', 'Haití', 'Honduras', 'Hungría', 'India', 'Indonesia',
'Irán', 'Iraq', 'Irlanda', 'Islandia', 'Islas Marshall',
'Islas Salomón', 'Israel', 'Italia', 'Jamaica', 'Japón',
'Jordania', 'Kazajstán', 'Kenya', 'Kirguistán', 'Kiribati',
'Kuwait', 'Lesotho', 'Letonia', 'Líbano', 'Liberia', 'Libia',
'Liechtenstein', 'Lituania', 'Luxemburgo', 'Madagascar',
'Malasia', 'Malawi', 'Maldivas', 'Mali', 'Malta','Marruecos',
'Mauricio', 'Mauritania', 'México', 'Micronesia', 'Mónaco',
'Mongolia', 'Montenegro','Mozambique','Myanmar', 'Namibia',
'Nauru', 'Nicaragua', 'Niger', 'Nigeria', 'Noruega',
'Nueva Zelandia', 'Omán', 'Países Bajos', 'Pakistán', 'Palau',
'Panamá', 'Papua Nueva Guinea', 'Paraguay', 'Perú', 'Polonia',
'Portugal', 'Qatar',
'Reino Unido de Gran Bretaña e Irlanda del Norte',
'República Árabe Siria', 'República Centroafricana',
'República Checa', 'República de Corea', 'República de Moldova',
'República Democrática del Congo',
'República Democrática Popular Lao',
'República Dominicana',
'República Federal Democrática de Nepal',
'República Popular Democrática de Corea',
'República Unida de Tanzanía', 'Rumania', 'Rwanda',
'Saint Kitts y Nevis', 'Samoa', 'San Marino', 'Santa Lucía',
'Santo Tomé y Príncipe', 'San Vicente y las Granadinas',
'Senegal', 'Serbia', 'Seychelles', 'Sierra Leona', 'Singapur',
'Somalia', 'Sri Lanka', 'Sudáfrica', 'Sudán', 'Sudán del Sur',
'Suecia', 'Suiza', 'Suriname', 'Swazilandia', 'Tailandia',
'Tayikistán', 'Timor-Leste', 'Togo', 'Tonga', 'Trinidad y Tabago',
'Túnez', 'Turkmenistán', 'Turquía', 'Tuvalu', 'Ucrania', 'Uganda',
'Uruguay', 'Uzbekistán', 'Vanuatu', 'Venezuela', 'Vietman',
'Yemen', 'Zambia', 'Zimbabwe'
)
city_formats = (
'{{city_adjetive}} {{country}}',
'San {{first_name}} {{city_suffix}}',
)
street_name_formats = (
'{{street_prefix}} {{last_name}}',
'{{street_prefix}} {{country}}',
'{{street_prefix}} {{state}}',
'{{street_prefix}} {{city_prefix}} {{last_name}}'
)
street_address_formats = (
#'{{building_number}} {{street_name}}',
'{{street_name}} {{secondary_address}}',
#'{{building_number}} {{street_name}} {{secondary_address}}',
)
address_formats = (
"{{street_address}}\n{{city}}, {{state_abbr}} {{postcode}}",
)
secondary_address_formats = ('### ###', '### Interior ###',
'### Edif. ### , Depto. ###')
@classmethod
def city_prefix(cls):
return cls.random_element(cls.city_prefixes)
@classmethod
def city_suffix(cls):
return cls.random_element(cls.city_suffixies)
@classmethod
def city_adjetive(cls):
return cls.random_element(cls.city_adjetives)
@classmethod
def street_prefix(cls):
"""
:example 'Avenida'
"""
return cls.random_element(cls.street_prefixes)
@classmethod
def secondary_address(cls):
"""
:example '020 Interior 999'
"""
return cls.numerify(cls.random_element(cls.secondary_address_formats))
@classmethod
def state(cls):
"""
example: u'Guerrero'
"""
return cls.random_element(cls.states)[1]
@classmethod
def state_abbr(cls):
"""
example: u'GRO'
"""
return cls.random_element(cls.states)[0]

View file

@ -0,0 +1,170 @@
# -*- encoding: utf-8 -*-
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}}-{{last_name}}',
'{{company_prefix}} {{last_name}}-{{last_name}}',
'{{company_prefix}} {{last_name}} y {{last_name}}',
'{{company_prefix}} {{last_name}}, {{last_name}} y {{last_name}}',
'{{last_name}}-{{last_name}} {{company_suffix}}',
'{{last_name}}, {{last_name}} y {{last_name}}',
'{{last_name}} y {{last_name}} {{company_suffix}}'
)
catch_phrase_words = (
(
"habilidad", "acceso", "adaptador", "algoritmo", "alianza",
"analista", "aplicación", "enfoque", "arquitectura",
"archivo", "inteligencia artificial", "array", "actitud",
"medición", "gestión presupuestaria", "capacidad", "desafío",
"circuito", "colaboración", "complejidad", "concepto",
"conglomeración", "contingencia", "núcleo", "fidelidad",
"base de datos", "data-warehouse", "definición", "emulación",
"codificar", "encriptar", "extranet", "firmware",
"flexibilidad", "focus group", "previsión", "base de trabajo",
"función", "funcionalidad", "Interfaz Gráfica", "groupware",
"Interfaz gráfico de usuario", "hardware", "Soporte", "jerarquía",
"conjunto", "implementación", "infraestructura", "iniciativa",
"instalación", "conjunto de instrucciones", "interfaz",
"intranet", "base del conocimiento", "red de area local",
"aprovechar", "matrices", "metodologías", "middleware",
"migración", "modelo", "moderador", "monitorizar",
"arquitectura abierta", "sistema abierto", "orquestar",
"paradigma", "paralelismo", "política", "portal",
"estructura de precios", "proceso de mejora",
"producto", "productividad", "proyecto", "proyección",
"protocolo", "línea segura", "software", "solución",
"estandardización", "estrategia", "estructura", "éxito",
"superestructura", "soporte", "sinergia", "mediante",
"marco de tiempo", "caja de herramientas", "utilización",
"website", "fuerza de trabajo"),
(
"24 horas", "24/7", "3ra generación", "4ta generación",
"5ta generación", "6ta generación", "analizada",
"asimétrica", "asíncrona", "monitorizada por red",
"bidireccional", "bifurcada", "generada por el cliente",
"cliente servidor", "coherente", "cohesiva", "compuesto",
"sensible al contexto", "basado en el contexto",
"basado en contenido", "dedicada",
"generado por la demanda", "didactica", "direccional",
"discreta", "dinámica", "potenciada", "acompasada",
"ejecutiva", "explícita", "tolerante a fallos",
"innovadora", "amplio ábanico", "global", "heurística",
"alto nivel", "holística", "homogénea", "híbrida",
"incremental", "intangible", "interactiva", "intermedia",
"local", "logística", "maximizada", "metódica",
"misión crítica", "móbil", "modular", "motivadora",
"multimedia", "multiestado", "multitarea", "nacional",
"basado en necesidades", "neutral", "nueva generación",
"no-volátil", "orientado a objetos", "óptima", "optimizada",
"radical", "tiempo real", "recíproca", "regional",
"escalable", "secundaria", "orientada a soluciones",
"estable", "estatica", "sistemática", "sistémica",
"tangible", "terciaria", "transicional", "uniforme",
"valor añadido", "vía web", "defectos cero", "tolerancia cero"
),
(
'adaptivo', 'avanzado', 'asimilado', 'automatizado',
'balanceado', 'enfocado al negocio',
'centralizado', 'clonado', 'compatible', 'configurable',
'multiplataforma', 'enfocado al cliente', 'personalizable',
'descentralizado', 'digitizado', 'distribuido', 'diverso',
'mejorado', 'en toda la empresa', 'ergonómico', 'exclusivo',
'expandido', 'extendido', 'cara a cara', 'enfocado',
'de primera línea', 'totalmente configurable',
'basado en funcionalidad', 'fundamental', 'horizontal',
'implementado', 'innovador', 'integrado', 'intuitivo',
'inverso', 'administrado', 'mandatorio', 'monitoreado',
'multicanal', 'multilateral', 'multi-capas', 'en red',
'basado en objetos', 'de arquitectura abierta',
'Open-source', 'operativo', 'optimizado', 'opcional',
'orgánico', 'organizado', 'perseverante', 'persistente',
'polarizado', 'preventivo', 'proactivo', 'enfocado a ganancias',
'programable', 'progresivo', 'llave pública',
'enfocado a la calidad', 'reactivo', 'realineado',
're-contextualizado', 'reducido', 'con ingeniería inversa',
'de tamaño adecuado', 'robusto', 'seguro', 'compartible',
'sincronizado', 'orientado a equipos', 'total',
'universal', 'actualizable', 'centrado al usuario',
'versátil', 'virtual', 'visionario',
)
)
bsWords = (
(
'implementa', 'utiliza', 'integrata', 'optimiza',
'evoluciona', 'transforma', 'abraza', 'habilia',
'orquesta', 'reinventa', 'agrega', 'mejora', 'incentiviza',
'modifica', 'empondera', 'monetiza', 'fortalece',
'facilita', 'synergiza', 'crear marca', 'crece',
'sintetiza', 'entrega', 'mezcla', 'incuba', 'compromete',
'maximiza', 'inmediata', 'visualiza', 'inova',
'escala', 'libera', 'maneja', 'extiende', 'revoluciona',
'genera', 'explota', 'transición', 'itera', 'cultiva',
'redefine', 'recontextualiza',
),
(
'synergías', 'paradigmas', 'marcados', 'socios',
'infraestructuras', 'plataformas', 'iniciativas',
'chanales', 'communidades', 'ROI', 'soluciones',
'portales', 'nichos', 'tecnologías', 'contenido',
'cadena de producción', 'convergencia', 'relaciones',
'architecturas', 'interfaces', 'comercio electrónico',
'sistemas', 'ancho de banda', 'modelos', 'entregables',
'usuarios', 'esquemas', 'redes', 'aplicaciones', 'métricas',
'funcionalidades', 'experiencias', 'servicios web',
'metodologías'
),
(
'valor agregado', 'verticales', 'proactivas', 'robustas',
'revolucionarias', 'escalables', 'de punta', 'innovadoras',
'intuitivas', 'estratégicas', 'e-business', 'de misión crítica',
'uno-a-uno', '24/7', 'end-to-end', 'globales', 'B2B', 'B2C',
'granulares', 'sin fricciones', 'virtuales', 'virales',
'dinámicas', '24/365', 'magnéticas', 'listo para la web',
'interactivas', 'dot-com', 'sexi', 'en tiempo real',
'eficientes', 'front-end', 'distribuidas', 'extensibles',
'llave en mano', 'de clase mundial', 'open-source',
'plataforma cruzada', 'de paquete', 'empresariales',
'integrado', 'impacto total', 'inalámbrica', 'transparentes',
'de siguiente generación', 'lo último', 'centrado al usuario',
'visionarias', 'personalizado', 'ubicuas', 'plug-and-play',
'colaborativas', 'holísticas', 'ricas'
),
)
company_preffixes = ('Despacho', 'Grupo', 'Corporativo', 'Club',
'Industrias', 'Laboratorios', 'Proyectos')
company_suffixes = ('A.C.', 'S.A.', 'S.A. de C.V.', 'S.C.',
'S. R.L. de C.V.','e Hijos', 'y Asociados')
def company_prefix(self):
"""
Ejemplo: Grupo
"""
return self.random_element(self.company_preffixes)
def catch_phrase(self):
"""
:example 'Robust full-range hub'
"""
result = []
for word_list in self.catch_phrase_words:
result.append(self.random_element(word_list))
return " ".join(result)
def bs(self):
"""
:example 'integrate extensible convergence'
"""
result = []
for word_list in self.bsWords:
result.append(self.random_element(word_list))
return " ".join(result)

View file

@ -0,0 +1,180 @@
# -*- encoding: utf-8 -*-
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{first_name}} {{last_name}}',
'{{first_name}} {{first_name}} {{last_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{prefix}} {{first_name}} {{last_name}}',
)
first_names = ('Abel', 'Abelardo', 'Abigail', 'Abraham', 'Abril',
'Adalberto', 'Adán', 'Adela', 'Adriana',
'Aida','Alejandra','Agustín', 'Alberto', 'Aldonza', 'Alicia',
'Alta Gracia', 'Alonso', 'Aldo', 'Alejandro', 'Alfonso', 'Alfredo',
'Alma', 'Alvaro', 'Amalia', 'Amanda', 'Amador', 'Amelia', 'Ana',
'Anabel', 'Ana Luisa', 'Ana María', 'Anel', 'Andrea', 'Andrés',
'Ángel', 'Ángela', 'Angélica', 'Antonia', 'Antonio', 'Araceli',
'Arcelia', 'Ariadna', 'Armando', 'Arturo', 'Asunción', 'Augusto',
'Aurora', 'Aurelio', 'Barbara', 'Beatriz' , 'Berta','Benito',
'Benjamín', 'Bernardo', 'Bernabé','Bianca','Blanca',
'Bruno','Camila', 'Camilo', 'Caridad', 'Carla','Carlos', 'Carlota',
'Carmen', 'Carolina', 'Catalina', 'César','Cecilia', 'Celia',
'Citlali', 'Clara', 'Claudia','Claudio', 'Clemente', 'Concepción',
'Conchita', 'Cornelio', 'Cristian', 'Cristal',
'Cristina','Cristobal', 'Cynthia', 'Dalia', 'Daniel', 'Daniela',
'Darío', 'David', 'Débora', 'Delia', 'Diana','Diego', 'Dolores',
'Dulce', 'Dulce María', 'Eduardo', 'Elena', 'Elias', 'Elisa',
'Eloisa', 'Elsa', 'Elvia', 'Elvira', 'Eloy', 'Emilia', 'Emiliano',
'Emilio', 'Enrique', 'Eric', 'Ernesto', 'Esmeralda', 'Esteban',
'Estefanía', 'Estela', 'Esparta','Espartaco','Esperanza', 'Estela',
'Esther', 'Eugenia', 'Eugenio', 'Eva', 'Evelio', 'Fabiola',
'Federico', 'Felipe', 'Fernando', 'Felix', 'Fidel', 'Flavio',
'Florencia', 'Francisco', 'Francisco Javier', 'Francisca', 'Frida',
'Gabino', 'Gabriela', 'Gabriel', 'Genaro', 'Georgina', 'Gerardo',
'Gerónimo', 'Germán', 'Gilberto', 'Guillermina', 'Gloria',
'Gonzalo', 'Graciela', 'Gregorio', 'Guillermo',
'Guadalupe','Gustavo', 'Héctor', 'Helena', 'Hermelinda' 'Hernán',
'Hilda', 'Homero', 'Horacio', 'Hugo', 'Humberto', 'Ignacio', 'Ilse',
'Indira', 'Inés', 'Irene', 'Irma', 'Itzel', 'Isaac', 'Isabel',
'Isabela', 'Israel', 'Iván', 'Ivonne', 'Jacinto' 'Jacobo', 'Jaime',
'Javier', 'Jaqueline', 'Jerónimo', 'Jesús','Joaquín', 'Jonás',
'Jorge', 'Jorge Luis', 'Jos', 'José', 'Josefina', 'José Carlos',
'José Eduardo', 'José Emilio', 'José Luis', 'José Manuél',
'José María', 'Juan', 'Juana', 'Juan Carlos', 'Judith', 'Julia',
'Julio', 'Julio César', 'Laura', 'Leonardo', 'Leonel', 'Leonor',
'Karla', 'Karina' 'Leticia', 'Lorenzo', 'Lucas', 'Lilia', 'Liliana',
'Linda','Lorena', 'Lourdes', 'Lucía', 'Luisa', 'Luz', 'Luis',
'Luis Miguel', 'Luis Manuel', 'Magdalena', 'Manuel', 'Marco Antonio',
'Marcela', 'Marcos', 'Margarita', 'María', 'Marisela', 'Marisol',
'María del Carmen', 'María Cristina', 'María Elena',
'María Eugenia', 'María José', 'María Luisa', 'María Teresa', 'Marisol',
'Martha', 'Mayte', 'Mariano', 'Mariana', 'Mario', 'Martín', 'Mateo',
'Mauro', 'Mauricio', 'Maximiliano', 'Mercedes','Micaela', 'Minerva',
'Mitzy', 'Miguel', 'Miguel Ángel', 'Miriam', 'Modesto', 'Mónica',
'Nadia', 'Natalia', 'Natividad', 'Nancy', 'Nayeli', 'Nelly',
'Noelia', 'Noemí', 'Norma','Nicolás', 'Octavio', 'Ofelia', 'Olivia',
'Óliver', 'Olga', 'Óscar', 'Oswaldo', 'Omar', 'Pablo', 'Paola',
'Patricia', 'Pamela', 'Patricio', 'Pascual', 'Paulina', 'Pedro',
'Perla', 'Pilar', 'Porfirio', 'Rafaél', 'Ramiro', 'Ramón', 'Raúl',
'Raquel', 'Rebeca', 'Reina', 'Renato', 'René', 'Reynaldo',
'Ricardo', 'Roberto', 'Rodolfo', 'Rocío', 'Rodrigo', 'Rolando',
'Rosa', 'Rosalia', 'Rosario','Rubén', 'Rufino', 'Ruby', 'Salvador',
'Salma', 'Samuel', 'Sandra', 'Santiago', 'Sara','Sessa', 'Sergio',
'Serafín', 'Silvano','Silvia', 'Sofía', 'Socorro', 'Soledad',
'Sonia', 'Susana', 'Tania', 'Teresa','Teodoro', 'Timoteo', 'Tomás',
'Trinidad', 'Verónica', 'Vicente', 'Violeta', 'Uriel', 'Úrsula',
'Vanesa', 'Víctor', 'Victoria', 'Virginia', 'Wilfrido', 'Wendolin',
'Yeni', 'Yolanda', 'Yuridia', 'Zacarías', 'Zeferino', 'Zoé')
last_names = ( 'Abrego', 'Abreu', 'Acevedo', 'Acosta', 'Acuña',
'Adame', 'Aguayo', 'Aguilar', 'Aguilera', 'Aguirre', 'Alarcón', 'Alba',
'Alcala', 'Alcántar', 'Alcaraz', 'Alejandro', 'Alemán', 'Alfaro',
'Almanza', 'Almaraz', 'Almonte', 'Alonso', 'Alonzo', 'Altamirano',
'Alva', 'Alvarado', 'Alvarez', 'Amador', 'Amaya', 'Anaya', 'Anguiano',
'Angulo', 'Aparicio', 'Apodaca', 'Aponte', 'Aragón', 'Aranda', 'Arce',
'Archuleta', 'Arellano', 'Arenas', 'Arevalo', 'Arguello', 'Arias',
'Armas', 'Armendáriz', 'Armenta', 'Arredondo', 'Arreola', 'Arriaga',
'Arroyo', 'Arteaga', 'Ávalos', 'Ávila', 'Avilés', 'Ayala', 'Baca',
'Badillo', 'Báez', 'Baeza', 'Bahena', 'Balderas', 'Ballesteros',
'Bañuelos', 'Barajas', 'Barela', 'Barragán', 'Barraza', 'Barrera',
'Barreto', 'Barrientos', 'Barrios', 'Batista', 'Becerra', 'Beltrán',
'Benavides', 'Benavídez', 'Benítez', 'Bermúdez', 'Bernal', 'Berríos',
'Bétancourt', 'Blanco', 'Bonilla', 'Borrego', 'Botello', 'Bravo',
'Briones', 'Briseño', 'Brito', 'Bueno', 'Burgos', 'Bustamante',
'Bustos', 'Caballero', 'Cabán', 'Cabrera', 'Cadena', 'Caldera',
'Calderón', 'Calvillo', 'Camacho', 'Camarillo', 'Campos', 'Canales',
'Candelaria', 'Cano', 'Cantú', 'Caraballo', 'Carbajal', 'Cardenas',
'Cardona', 'Carmona', 'Carranza', 'Carrasco', 'Carreón', 'Carrera',
'Carrero', 'Carrillo', 'Carrión', 'Carvajal', 'Casanova', 'Casares',
'Casárez', 'Casas', 'Casillas', 'Castañeda', 'Castellanos', 'Castillo',
'Castro', 'Cavazos', 'Cazares', 'Ceballos', 'Cedillo', 'Ceja',
'Centeno', 'Cepeda', 'Cervantes', 'Cervántez', 'Chacón', 'Chapa',
'Chavarría', 'Chávez', 'Cintrón', 'Cisneros', 'Collado', 'Collazo',
'Colón', 'Colunga', 'Concepción', 'Contreras', 'Cordero', 'Córdova',
'Cornejo', 'Corona', 'Coronado', 'Corral', 'Corrales', 'Correa',
'Cortés', 'Cortez', 'Cotto', 'Covarrubias', 'Crespo', 'Cruz', 'Cuellar',
'Curiel', 'Dávila', 'de Anda', 'de Jesús', 'de la Crúz', 'de la Fuente',
'de la Garza', 'de la O', 'de la Rosa', 'de la Torre', 'de León',
'Delgadillo', 'Delgado', 'del Río', 'del Valle', 'Díaz', 'Domínguez',
'Duarte', 'Dueñas', 'Durán', 'Echeverría', 'Elizondo', 'Enríquez',
'Escalante', 'Escamilla', 'Escobar', 'Escobedo', 'Esparza', 'Espinal',
'Espino', 'Espinosa', 'Espinoza', 'Esquibel', 'Esquivel', 'Estévez',
'Estrada', 'Fajardo', 'Farías', 'Feliciano', 'Fernández', 'Ferrer',
'Fierro', 'Figueroa', 'Flores', 'Flórez', 'Fonseca', 'Franco', 'Frías',
'Fuentes', 'Gaitán', 'Galarza', 'Galindo', 'Gallardo', 'Gallegos',
'Galván', 'Gálvez', 'Gamboa', 'Gamez', 'Gaona', 'Garay', 'García',
'Garibay', 'Garica', 'Garrido', 'Garza', 'Gastélum', 'Gaytán', 'Gil',
'Girón', 'Godínez', 'Godoy', 'Gómez', 'Gonzales', 'González', 'Gollum',
'Gracia', 'Granado', 'Granados', 'Griego', 'Grijalva', 'Guajardo',
'Guardado', 'Guerra', 'Guerrero', 'Guevara', 'Guillen', 'Gurule',
'Gutiérrez', 'Guzmán', 'Haro', 'Henríquez', 'Heredia', 'Hernádez',
'Hernandes', 'Hernández', 'Herrera', 'Hidalgo', 'Hinojosa', 'Holguín',
'Huerta', 'Hurtado', 'Ibarra', 'Iglesias', 'Irizarry', 'Jaime',
'Jaimes', 'Jáquez', 'Jaramillo', 'Jasso', 'Jiménez', 'Jimínez',
'Juárez', 'Jurado', 'Laboy', 'Lara', 'Laureano', 'Leal', 'Lebrón',
'Ledesma', 'Leiva', 'Lemus', 'León', 'Lerma', 'Leyva', 'Limón',
'Linares', 'Lira', 'Llamas', 'Loera', 'Lomeli', 'Longoria', 'López',
'Lovato', 'Loya', 'Lozada', 'Lozano', 'Lucero', 'Lucio', 'Luevano',
'Lugo', 'Luna', 'Macías', 'Madera', 'Madrid', 'Madrigal', 'Maestas',
'Magaña', 'Malave', 'Maldonado', 'Manzanares', 'Mares', 'Marín',
'Márquez', 'Marrero', 'Marroquín', 'Martínez', 'Mascareñas', 'Mata',
'Mateo', 'Matías', 'Matos', 'Maya', 'Mayorga', 'Medina', 'Medrano',
'Mejía', 'Meléndez', 'Melgar', 'Mena', 'Menchaca', 'Méndez', 'Mendoza',
'Menéndez', 'Meraz', 'Mercado', 'Merino', 'Mesa', 'Meza', 'Miramontes',
'Miranda', 'Mireles', 'Mojica', 'Molina', 'Mondragón', 'Monroy',
'Montalvo', 'Montañez', 'Montaño', 'Montemayor', 'Montenegro',
'Montero', 'Montes', 'Montez', 'Montoya', 'Mora', 'Morales', 'Moreno',
'Mota', 'Moya', 'Munguía', 'Muñiz', 'Muñoz', 'Murillo', 'Muro',
'Nájera', 'Naranjo', 'Narváez', 'Nava', 'Navarrete', 'Navarro',
'Nazario', 'Negrete', 'Negrón', 'Nevárez', 'Nieto', 'Nieves', 'Niño',
'Noriega', 'Núñez', 'Ocampo', 'Ocasio', 'Ochoa', 'Ojeda', 'Olivares',
'Olivárez', 'Olivas', 'Olivera', 'Olivo', 'Olmos', 'Olvera',
'Ontiveros', 'Oquendo', 'Ordóñez', 'Orellana', 'Ornelas', 'Orosco',
'Orozco', 'Orta', 'Ortega', 'Ortiz', 'Osorio', 'Otero', 'Ozuna',
'Pabón', 'Pacheco', 'Padilla', 'Padrón', 'Páez', 'Palacios', 'Palomino',
'Palomo', 'Pantoja', 'Paredes', 'Parra', 'Partida', 'Patiño', 'Paz',
'Pedraza', 'Pedroza', 'Pelayo', 'Peña', 'Perales', 'Peralta', 'Perea',
'Peres', 'Pérez', 'Pichardo', 'Piña', 'Pineda', 'Pizarro', 'Polanco',
'Ponce', 'Porras', 'Portillo', 'Posada', 'Prado', 'Preciado', 'Prieto',
'Puente', 'Puga', 'Pulido', 'Quesada', 'Quezada', 'Quiñones',
'Quiñónez', 'Quintana', 'Quintanilla', 'Quintero', 'Quiroz', 'Rael',
'Ramírez', 'Ramón', 'Ramos', 'Rangel', 'Rascón', 'Raya', 'Razo',
'Regalado', 'Rendón,' 'Rentería', 'Reséndez', 'Reyes', 'Reyna',
'Reynoso', 'Rico', 'Rincón', 'Riojas', 'Ríos', 'Rivas', 'Rivera',
'Rivero', 'Robledo', 'Robles', 'Rocha', 'Rodarte', 'Rodrígez',
'Rodríguez', 'Rodríquez', 'Rojas', 'Rojo', 'Roldán', 'Rolón', 'Romero',
'Romo', 'Roque', 'Rosado', 'Rosales', 'Rosario', 'Rosas', 'Roybal',
'Rubio', 'Ruelas', 'Ruiz', 'Saavedra', 'Sáenz', 'Saiz', 'Salas',
'Salazar', 'Salcedo', 'Salcido', 'Saldaña', 'Saldivar', 'Salgado',
'Salinas', 'Samaniego', 'Sanabria', 'Sanches', 'Sánchez', 'Sandoval',
'Santacruz', 'Santana', 'Santiago', 'Santillán', 'Sarabia', 'Sauceda',
'Saucedo', 'Segovia', 'Segura', 'Sepúlveda', 'Serna', 'Serrano',
'Serrato', 'Sevilla', 'Sierra', 'Sisneros', 'Solano', 'Solís', 'Soliz',
'Solorio', 'Solorzano', 'Soria', 'Sosa', 'Sotelo', 'Soto', 'Suárez',
'Tafoya', 'Tamayo', 'Tamez', 'Tapia', 'Tejada', 'Tejeda', 'Téllez',
'Tello', 'Terán', 'Terrazas', 'Tijerina', 'Tirado', 'Toledo', 'Toro',
'Torres', 'Tórrez', 'Tovar', 'Trejo', 'Treviño', 'Trujillo', 'Ulibarri',
'Ulloa', 'Urbina', 'Ureña', 'Urías', 'Uribe', 'Urrutia', 'Vaca',
'Valadez', 'Valdés', 'Valdez', 'Valdivia', 'Valencia', 'Valentín',
'Valenzuela', 'Valladares', 'Valle', 'Vallejo', 'Valles', 'Valverde',
'Vanegas', 'Varela', 'Vargas', 'Vásquez', 'Vázquez', 'Vega', 'Vela',
'Velasco', 'Velásquez', 'Velázquez', 'Vélez', 'Véliz', 'Venegas',
'Vera', 'Verdugo', 'Verduzco', 'Vergara', 'Viera', 'Vigil', 'Villa',
'Villagómez', 'Villalobos', 'Villalpando', 'Villanueva', 'Villareal',
'Villarreal', 'Villaseñor', 'Villegas', 'Yáñez', 'Ybarra', 'Zambrano',
'Zamora', 'Zamudio', 'Zapata', 'Zaragoza', 'Zarate', 'Zavala', 'Zayas',
'Zedillo', 'Zelaya', 'Zepeda', 'Zúñiga' )
prefixes = ('Sr(a).', 'Dr.', 'Mtro.', 'Lic.' ,
'Ing.')
@classmethod
def prefix(cls):
return cls.random_element(cls.prefixes)

View file

@ -0,0 +1,31 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+##(#)##########',
'+##(#)##########',
'0##########',
'0##########',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####',
'(###)###-####',
'1-###-###-####',
'###.###.####',
'###-###-####x###',
'(###)###-####x###',
'1-###-###-####x###',
'###.###.####x###',
'###-###-####x####',
'(###)###-####x####',
'1-###-###-####x####',
'###.###.####x####',
'###-###-####x#####',
'(###)###-####x#####',
'1-###-###-####x#####',
'###.###.####x#####'
)

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,47 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_prefixes = ('شمال', 'غرب', 'شرق', 'جنوب', 'بندر', 'شهر', 'روستای', 'دهستان', 'شهرستان', 'باغات', 'استان')
building_number_formats = ('#####', '####', '###')
street_suffixes = (
'کوچه', 'خیابان', 'پل', 'دره', 'میدان', 'چهار راه', 'بن بست', 'بلوار', 'جنب', 'تقاطع', 'آزاد راه', 'بزرگ راه', 'جزیره', 'کوه', 'جاده', 'تونل'
)
postcode_formats = ('###', '####', '#####','######', '##########')
states = (
'آذربایجان شرقی', 'آذربایجان غربی', 'اردبیل', 'خراسان', 'کردستان', 'گیلان', 'اصفهان', 'البرز', 'ایلام', 'بوشهر', 'تهران', 'چهارمحال و بختیاری', 'خراسان جنوبی', 'خراسان رضوی', 'خراسان شمالی', 'خوزستان', 'زنجان', 'سمنان', 'سیستان و بلوچستان', 'فارس', 'قزوین', 'قم', 'کرمان', 'کرمانشاه', 'کهگیلویه و بویراحمد', 'گلستان', 'لرستان', 'مازندران', 'مرکزی', 'هرمزگان', 'همدان', 'یزد'
)
countries = (
'جمهوری آذربایجان', 'آرژانتین', 'آفریقای جنوبی', 'جمهوری آفریقای مرکزی', 'آلبانی', 'آلمان', 'آنتیگوا و باربودا', 'آندورا', 'آنگولا', 'اتریش', 'اتیوپی', 'اردن', 'ارمنستان', 'اروگوئه', 'اریتره', 'ازبکستان', 'اسپانیا', 'استرالیا', 'استونی', 'اسرائیل', 'اسلواکی', 'اسلوونی', 'افغانستان', 'اکوادور', 'الجزایر', 'السالوادور', 'امارات متحده عربی', 'اندونزی', 'اوکراین', 'اوگاندا', 'ایالات متحده آمریکا', 'ایتالیا', 'ایران', 'جمهوری ایرلند', 'ایسلند', 'باربادوس', 'باهاما', 'بحرین', 'برزیل', 'برونئی', 'بریتانیا', 'بلاروس', 'بلژیک', 'بلغارستان', 'بلیز', 'بنگلادش', 'بنین', 'پادشاهی بوتان', 'بوتسوانا', 'بورکینافاسو', 'بوروندی', 'بوسنی و هرزگوین', 'بولیوی', 'پاپوآ گینه نو', 'پاراگوئه', 'پاناما', 'پاکستان', 'پرتغال', 'پرو', 'پورتوریکو', 'تاجیکستان', 'تانزانیا', 'تایلند', 'جمهوری چین', 'ترکمنستان', 'ترکیه', 'ترینیداد و توباگو', 'توگو', 'تونس', 'تونگا', 'تووالو', 'تیمور شرقی', 'جامائیکا', 'جزایر سلیمان', 'جزایر مارشال', 'جمهوری چک', 'جمهوری دومینیکن', 'جیبوتی', 'چاد', 'چین', 'دانمارک', 'دومینیکا', 'جمهوری دومینیکن', 'رواندا', 'روسیه', 'رومانی', 'زامبیا', 'نیوزیلند', 'زیمباوه', 'جمهوری دموکراتیک کنگو (زئیر)', 'ژاپن', 'سائوتومه و پرینسیپ', 'ساحل عاج', 'ساموآی غربی', 'سن مارینو', 'سری‌لانکا', 'سنت کیتس و نویس', 'سنت لوسیا', 'سنت وینسنت و گرنادین‌ها', 'سنگاپور', 'سنگال', 'سوئد', 'سوئیس', 'سوازیلند', 'سودان', 'سودان جنوبی', 'سورینام', 'سوریه', 'سومالی', 'سیرالئون', 'سیشل', 'شیلی', 'صربستان', 'عراق', 'عربستان سعودی', 'عمان', 'غنا', 'فرانسه', 'فلسطین', 'فنلاند', 'فیجی', 'فیلیپین', 'قبرس', 'قرقیزستان', 'قزاقستان', 'قطر', 'کامبوج', 'کامرون', 'کانادا', 'کره جنوبی', 'کره شمالی', 'کرواسی', 'کاستاریکا', 'کلمبیا', 'جمهوری کنگو', 'جمهوری دموکراتیک کنگو', 'کنیا', 'کوبا', 'کوزوو', 'مجمع‌الجزایر قمر', 'کویت', 'کیپ ورد', 'کیریباتی', 'گابن', 'گامبیا', 'گرجستان', 'گرنادا', 'گرینلند(از مستعمرات دانمارک)', 'گواتمالا', 'گویان', 'گینه', 'گینه استوایی', 'گینه بیسائو', 'لائوس', 'لبنان', 'لتونی', 'لسوتو', 'لهستان', 'لوکزامبورگ', 'لیبریا', 'لیبی', 'لیتوانی', 'لیختن‌اشتاین', 'ماداگاسکار', 'مالاوی', 'مالت', 'مالدیو', 'مالزی', 'مالی', 'مجارستان', 'مراکش', 'مصر', 'مغولستان', 'مقدونیه', 'مکزیک', 'موریتانی', 'موریس', 'موزامبیک', 'مولداوی', 'موناکو', 'مونته‌نگرو', 'میانمار', 'ایالات فدرال میکرونزی', 'نائورو', 'نامیبیا', 'نپال', 'نروژ', 'نیجریه', 'نیکاراگوئه', 'نیوزیلند', 'واتیکان', 'وانواتو', 'ونزوئلا', 'ویتنام', 'هائیتی', 'هلند', 'هندوراس', 'هند', 'یمن', 'یونان'
)
city_formats = (
'{{city_prefix}} {{first_name}}'
)
street_name_formats = (
'{{first_name}} {{street_suffix}}',
'{{last_name}} {{street_suffix}}'
)
street_address_formats = (
'{{building_number}} {{street_name}}',
'{{building_number}} {{street_name}} {{secondary_address}}',
)
address_formats = (
"{{street_address}}\n{{city}}, {{state}} {{postcode}}",
)
secondary_address_formats = ('سوئیت ###', 'واحد ###')
@classmethod
def city_prefix(cls):
return cls.random_element(cls.city_prefixes)
@classmethod
def secondary_address(cls):
return cls.numerify(cls.random_element(cls.secondary_address_formats))
@classmethod
def state(cls):
return cls.random_element(cls.states)

View file

@ -0,0 +1,39 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{prefix}} {{first_name}} {{last_name}}',
'{{first_name}} {{last_name}} {{suffix}}',
'{{prefix}} {{first_name}} {{last_name}} {{suffix}}'
)
first_names = (
# top 50 Female Names in Iran: http://www.sabteahval.ir/Upload/Modules/Contents/asset100/name/d1391.htm
'فاطمه', 'اسما', 'زهرا', 'عسل', 'نازنین زهرا', 'النا', 'زینب', 'سارا', 'یسنا', 'آتنا', 'ریحانه', 'آیناز', 'هستی', 'محیا', 'ستایش', 'باران', 'ثنا', 'هلیا', 'مریم', 'یلدا', 'فاطمه زهرا', 'ملیكا', 'سارینا', 'نازنین', 'مهسا', 'آیلین', 'نرگس', 'حنانه', 'رقیه', 'كیانا', 'كوثر', 'هانیه', 'مبینا', 'مهدیس', 'رها', 'آوا', 'اسرا', 'یگانه', 'نیایش', 'حدیث', 'الینا', 'سوگند', 'مائده', 'پریا', 'معصومه', 'مهدیه', 'آیدا', 'الناز', 'محدثه', 'یاسمین',
# top 50 male Names in Iran: http://www.sabteahval.ir/Upload/Modules/Contents/asset100/name/p1391.htm
'امیر علی', 'پرهام', 'ابوالفضل', 'كیان', 'امیرحسین', 'متین', 'محمد طاها', 'عرفان', 'محمد', 'دانیال', 'علی', 'آرمین', 'امیرمحمد', 'آرتین', 'حسین', 'سبحان', 'مهدی', 'سینا', 'محمد مهدی', 'آریا', 'محمدرضا', 'محمدپارسا', 'طاها', 'سجاد', 'امیررضا', 'آرش', 'امیرعباس', 'نیما', 'علیرضا', 'عرشیا', 'محمدامین', 'مبین', 'محمدحسین', 'یوسف', 'رضا', 'احسان', 'علی اصغر', 'آرین', 'امیرمهدی', 'محمدیاسین', 'ماهان', 'عباس', 'پارسا', 'حسام', 'یاسین', 'علی رضا', 'ایلیا', 'علی اكبر', 'محمدجواد', 'بنیامین'
)
last_names = (
'محمدی', 'محمد پور', 'اکبر پور', 'رضا زاده', 'مجتهدی', 'دایی', 'حمیدی', 'کابلی', 'عبدالعلی', 'احمدی', 'اشرفی', 'علیجانی', 'ابوطالبی', 'علی شاهی', 'الوندی', 'بهمنی', 'بهرامی', 'هنری', 'ایروانی', 'حریریان', 'جعفر پور', 'جلالی', 'جلیلی', 'روحانی', 'خسروجردی', 'منصوری', 'مهدیان', 'نوروزی', 'نوری', 'رسته', 'سماوات', 'سمسار', 'شادروان', 'شاکری', 'سلطانی', 'شبیری', 'تحسینی', 'تنزیلی', 'طلوعی', 'ولاشجردی', 'وثاق', 'ظفری', 'زمانی', 'زارع', 'زارعی', 'ربانی', 'شمشیری', 'صارمی', 'صیادی', 'سرخوشیان',
'رستمی', 'رسولی', 'رفیعی', 'کریمی', 'کرمانی', 'سعیدی', 'عباسی', 'پویان', 'ترکاشوند', 'زنجانی', 'تهرانی', 'جنتی', 'صنایعی', 'جهانی', 'اشتری', 'چنگیزی', 'دادفر', 'سغیری', 'پارسا', 'ضابطی', 'میردامادی', 'عقیلی', 'نامور', 'حسنی', 'لاهوتی', 'محجوب', 'هاشمی', 'معروف', 'معین', 'هوشیار', 'هومن', 'هدایت', 'قاضی', 'ملکیان', 'ضرغامی', 'یزدی', 'نوبختی', 'مجتبوی', 'نیلوفری', 'لاچینی', 'علی پور', 'عبدالمالکی', 'فرجی', 'موسوی', 'همدانی', 'موحد', 'کمالی', 'گلپایگانی', 'نعمتی', 'عزیزی'
)
prefixes = ('جناب آقای', 'سرکار خانم', 'جناب آقای دکتر', 'سرکار خانم دکتر')
@classmethod
def prefix(cls):
return cls.random_element(cls.prefixes)
@classmethod
def suffix(cls):
return ''

View file

@ -0,0 +1,25 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
# Mobile
'+98 91# ### ####',
'091# ### ####',
'+98 920 ### ####',
'0920 ### ####',
'+98 921 ### ####',
'0921 ### ####',
'+98 93# ### ####',
'093# ### ####',
# Land lines
'+98 21 #### ####',
'021 #### ####',
'+98 25 #### ####',
'025 #### ####',
'+98 26 #### ####',
'026 #### ####',
'+98 ### #### ####',
'0### #### ####'
)

View file

View file

@ -0,0 +1,148 @@
# coding=utf8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
building_number_formats = ('###', '##', '#')
postcode_formats = ('#####', )
city_formats = ('{{city_name}}', )
street_name_formats = ('{{fruit}}{{street_suffix}}', )
street_address_formats = ('{{street_name}} {{building_number}}',)
address_formats = ("{{street_address}}\n{{postcode}} {{city}}", )
cities = (
'Akaa', 'Alajärvi', 'Alavus', 'Espoo', 'Forssa', 'Haapajärvi',
'Haapavesi', 'Hämeenlinna', 'Hamina', 'Hanko', 'Harjavalta',
'Haukipudas', 'Heinola', 'Helsinki', 'Huittinen', 'Hyvinkää',
'Iisalmi', 'Ikaalinen', 'Imatra', 'Jakobstad', 'Joensuu', 'Juankoski',
'Jyväskylä', 'Jämsä', 'Järvenpää', 'Kaarina', 'Kajaani', 'Kalajoki',
'Kankaanpää', 'Kannus', 'Karkkila', 'Kaskinen', 'Kauhajoki', 'Kauhava',
'Kauniainen', 'Kemi', 'Kemijärvi', 'Kerava', 'Keuruu', 'Kitee',
'Kiuruvesi', 'Kokemäki', 'Kokkola', 'Kotka', 'Kouvola', 'Kristinestad',
'Kuhmo', 'Kuopio', 'Kurikka', 'Kuusamo', 'Lahti', 'Laitila',
'Lappeenranta', 'Lapua', 'Lieksa', 'Lohja', 'Loimaa', 'Loviisa',
'Mänttä-Vilppula', 'Mariehamn', 'Mikkeli', 'Naantali', 'Närpes',
'Nilsiä', 'Nivala', 'Nokia', 'Nurmes', 'Nykarleby', 'Orimattila',
'Orivesi', 'Oulainen', 'Oulu', 'Outokumpu', 'Paimio', 'Pargas',
'Parkano', 'Pieksämäki', 'Pori', 'Porvoo', 'Pudasjärvi', 'Pyhäjärvi',
'Raahe', 'Raseborg', 'Rauma', 'Raisio', 'Riihimäki', 'Rovaniemi',
'Saarijärvi', 'Salo', 'Sastamala', 'Savonlinna', 'Seinäjoki', 'Siuntio',
'Somero', 'Suonenjoki', 'Tampere', 'Tornio', 'Turku', 'Ulvila',
'Uusikaupunki', 'Vaasa', 'Valkeakoski', 'Vantaa', 'Varkaus',
'Viitasaari', 'Virrat', 'Ylivieska', 'Ylöjärvi', 'Äänekoski', 'Ähtäri'
)
countries = (
'Afganistan', 'Alankomaat', 'Albania', 'Algeria', 'Andorra', 'Angola',
'Antigua ja Barbuda', 'Argentiina', 'Armenia', 'Australia',
'Azerbaidžan', 'Bahama', 'Bahrain', 'Bangladesh', 'Barbados', 'Belgia',
'Belize', 'Benin', 'Bhutan', 'Bolivia', 'Bosnia ja Hertsegovina',
'Botswana', 'Brasilia', 'Brunei', 'Bulgaria', 'Burkina', 'Faso',
'Burundi', 'Chile', 'Costa', 'Rica', 'Djibouti', 'Dominica',
'Dominikaaninen tasavalta', 'Ecuador', 'Egypti', 'El', 'Salvador',
'Eritrea', 'Espanja', 'Etelä-Afrikka', 'Korean tasavalta',
'Etelä-Sudan', 'Etiopia', 'Fidži', 'Filippiinit', 'Gabon', 'Gambia',
'Georgia', 'Ghana', 'Grenada', 'Guatemala', 'Guinea-Bissau', 'Guinea',
'Guyana', 'Haiti', 'Honduras', 'Indonesia', 'Intia', 'Irak', 'Iran',
'Irlanti', 'Islanti', 'Israel', 'Italia', 'Itä-Timor', 'Itävalta',
'Jamaika', 'Japani', 'Jemen', 'Jordania', 'Kambodža', 'Kamerun',
'Kanada', 'Kap', 'Verde', 'Kazakstan', 'Kenia',
'Keski-Afrikan tasavalta', 'Kiina', 'Kirgisia', 'Kiribati',
'Kolumbia', 'Komorit', 'Kongon demokraattinen tasavalta',
'Kongon tasavalta', 'Kosovo', 'Kreikka', 'Kroatia', 'Kuuba', 'Kuwait',
'Kypros', 'Laos', 'Latvia', 'Lesotho', 'Libanon', 'Liberia', 'Libya',
'Liechtenstein', 'Liettua', 'Luxemburg', 'Madagaskar', 'Makedonia',
'Malawi', 'Malediivit', 'Malesia', 'Mali', 'Malta', 'Marokko',
'Marshallinsaaret', 'Mauritania', 'Mauritius', 'Meksiko', 'Mikronesia',
'Moldova', 'Monaco', 'Mongolia', 'Montenegro', 'Mosambik', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Nicaragua', 'Nigeria', 'Niger', 'Norja',
'Norsunluurannikko', 'Oman', 'Pakistan', 'Palau', 'Panama',
'Papua-Uusi-Guinea', 'Paraguay', 'Peru',
'Korean demokraattinen kansantasavalta', 'Portugali', 'Puola',
'Päiväntasaajan Guinea', 'Qatar', 'Ranska', 'Romania', 'Ruanda',
'Ruotsi', 'Saint Kitts ja Nevis', 'Saint Lucia',
'Saint Vincent ja Grenadiinit', 'Saksa', 'Salomonsaaret', 'Sambia',
'Samoa', 'San Marino', 'São Tomé ja Príncipe',
'Saudi-Arabia', 'Senegal', 'Serbia', 'Seychellit', 'Sierra', 'Leone',
'Singapore', 'Slovakia', 'Slovenia', 'Somalia', 'Sri', 'Lanka', 'Sudan',
'Suomi', 'Suriname', 'Swazimaa', 'Sveitsi', 'Syyria', 'Tadžikistan',
'Tansania', 'Tanska', 'Thaimaa', 'Togo', 'Tonga', 'Trinidad ja Tobago',
'Tšad', 'Tšekki', 'Tunisia', 'Turkki', 'Turkmenistan', 'Tuvalu',
'Uganda', 'Ukraina', 'Unkari', 'Uruguay', 'Uusi-Seelanti', 'Uzbekistan',
'Valko-Venäjä', 'Vanuatu', 'Vatikaanivaltio', 'Venezuela', 'Venäjä',
'Vietnam', 'Viro', 'Yhdistyneet arabiemiirikunnat',
'Yhdistynyt kuningaskunta', 'Yhdysvallat', 'Zimbabwe'
)
states = (
'Turun ja Porin lääni', 'Uudenmaan ja Hämeen lääni', 'Pohjanmaan lääni',
'Viipurin ja Savonlinnan lääni', 'Käkisalmen lääni',
'Savonlinnan ja Kymenkartanon lääni', 'Kymenkartanon ja Savon lääni',
'Vaasan lääni', 'Oulun lääni', 'Kymenkartanon lääni',
'Savon ja Karjalan lääni', 'Viipurin lääni', 'Uudenmaan lääni',
'Hämeen lääni', 'Mikkelin lääni', 'Kuopion lääni', 'Ahvenanmaan lääni',
'Petsamon lääni', 'Lapin lääni', 'Kymen lääni', 'Keski-Suomen lääni',
'Pohjois-Karjalan lääni', 'Etelä-Suomen lääni', 'Länsi-Suomen lääni',
'Itä-Suomen lääni', '', 'Turun ja Porin lääni',
'Uudenmaan ja Hämeen lääni', 'Pohjanmaan lääni',
'Viipurin ja Savonlinnan lääni', 'Käkisalmen lääni',
'Savonlinnan ja Kymenkartanon lääni', 'Kymenkartanon ja Savon lääni',
'Vaasan lääni', 'Oulun lääni', 'Kymenkartanon lääni',
'Savon ja Karjalan lääni', 'Viipurin lääni', 'Uudenmaan lääni',
'Hämeen lääni', 'Mikkelin lääni', 'Kuopion lääni', 'Ahvenanmaan lääni',
'Petsamon lääni', 'Lapin lääni', 'Kymen lääni', 'Keski-Suomen lääni',
'Pohjois-Karjalan lääni', 'Etelä-Suomen lääni', 'Länsi-Suomen lääni',
'Itä-Suomen lääni'
)
street_suffixes = ('tie', 'katu', 'polku', 'kuja', 'bulevardi')
# Using fruits to generate street names, since it doesn't make
# much grammatical sense to use first names
fruits = (
'Ananas', 'Ananaskirsikka', 'Annoona', 'Appelsiini', 'Aprikoosi',
'Avokado', 'Banaani', 'Cantaloupemeloni', 'Durio', 'Feijoa',
'Galiameloni', 'Granaattiomena', 'Granadilla', 'Greippi', 'Guava',
'Hunajameloni', 'Jakkihedelmä', 'Kaki', 'Kaktusviikuna', 'Karambola',
'Kastanja', 'Keittobanaani', 'Keltainen', 'kiivi', 'Keltapassio',
'Kiivi', 'Kirsikka', 'Kirsikkaluumu', 'Kiwai', 'Kiwano','Kookospähkinä',
'Kumkvatti', 'Limetti', 'Limkvatti', 'Litsi', 'Longaani', 'Luumu',
'Mandariini', 'Mango', 'Mangostaani', 'Maracuya', 'Meloni', 'Nashi',
'Nektariini', 'Omena', 'Papaija', 'Passionhedelmä', 'Persikka','Pepino',
'Pikkusitrukset', 'Pitahaya', 'Pomelo', 'Pähkinä', 'Päärynä',
'Rambutani', 'Rumeliini', 'Sapodilla', 'Salaki', 'Sitruuna',
'Sokerimeloni', 'Sweetie', 'Taateli', 'Tamarillo', 'Tomaatti',
'Verkkomeloni', 'Vesimeloni', 'Viikuna', 'Viinirypäle', 'Ananas',
'Annoona', 'Appelsiini', 'Aprikoosi', 'Avokado', 'Banaani',
'Cantaloupemeloni', 'Durio', 'Feijoa', 'Galiameloni', 'Granaattiomena',
'Granadilla', 'Greippi', 'Guava', 'Hunajameloni', 'Jakkihedelmä','Kaki',
'Kaktusviikuna', 'Karambola', 'Kastanja', 'Keittobanaani','Keltapassio',
'Kiivi', 'Kirsikka', 'Kirsikkaluumu', 'Kiwai', 'Kiwano','Kookospähkinä',
'Kumkvatti', 'Limetti', 'Limkvatti', 'Litsi', 'Longaani', 'Luumu',
'Mandariini', 'Mango', 'Mangostaani', 'Maracuya', 'Meloni', 'Nashi',
'Nektariini', 'Omena', 'Papaija', 'Passionhedelmä', 'Persikka','Pepino',
'Pikkusitrukset', 'Pitahaya', 'Pomelo', 'Pähkinä', 'Päärynä',
'Rambutani', 'Rumeliini', 'Sapodilla', 'Salaki', 'Sitruuna',
'Sokerimeloni', 'Sweetie', 'Taateli', 'Tamarillo', 'Tomaatti',
'Verkkomeloni', 'Vesimeloni', 'Viikuna', 'Viinirypäle'
)
@classmethod
def fruit(cls):
return cls.random_element(cls.fruits)
@classmethod
def city_name(cls):
return cls.random_element(cls.cities)
@classmethod
def state(cls):
return cls.random_element(cls.states)

View file

@ -0,0 +1,15 @@
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}} {{last_name}} {{company_suffix}}',
'{{last_name}} {{last_name}} {{company_suffix}}',
'{{last_name}}'
)
company_suffixes = (
'As Oy', 'Tmi', 'Oy', 'Oyj', 'Ky', 'Osk', 'ry'
)

View file

@ -0,0 +1,13 @@
# coding=utf-8
from __future__ import unicode_literals
from ..internet import Provider as InternetProvider
class Provider(InternetProvider):
free_email_domains = (
'gmail.com', 'googlemail.com', 'hotmail.com', 'suomi24.fi',
'kolumbus.fi', 'luukku.com', 'surffi.net'
)
tlds = ('com', 'com', 'com', 'fi', 'fi', 'net', 'org')

View file

@ -0,0 +1,208 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{last_name}}, {{first_name}}'
)
prefixes = (
'Herra', 'hra', 'Rouva', 'rva', 'Tohtori', 'tri', 'prof.', 'arkkit.'
)
suffixes = ('DI', 'PhD', 'MSc', 'BSc')
first_names = (
'Aake', 'Aapeli', 'Aapo', 'Aarne', 'Aarni', 'Aarno', 'Aaro', 'Aaron',
'Aarre', 'Aatami', 'Aatos', 'Aatto', 'Aatu', 'Ahti', 'Aimo', 'Aki',
'Aksel', 'Akseli', 'Aku', 'Alarik', 'Aleksanteri', 'Aleksi', 'Aleksis',
'Ali', 'Allan', 'Alpo', 'Altti', 'Alvar', 'Alvari', 'Anselmi', 'Anssi',
'Antero', 'Anton', 'Antti', 'Antton', 'Anttoni', 'Ari', 'Ari-Pekka',
'Armas', 'Arto', 'Arttu', 'Arttur', 'Artturi', 'Arvi', 'Arvo', 'Asko',
'Aslak', 'Asser', 'Asseri', 'Atte', 'Aukusti', 'Aulis', 'Auvo','Benjam',
'Benjamin', 'Daniel', 'Eeli', 'Eelis', 'Eemeli', 'Eemil', 'Eerik',
'Eerikki', 'Eero', 'Eetu', 'Eevert', 'Eevertti', 'Einari', 'Eino',
'Elias', 'Eliel', 'Eljas', 'Elmeri', 'Elmo', 'Ensio', 'Erkki', 'Erno',
'Esa', 'Esaias', 'Esko', 'Hannes', 'Hannu', 'Harri', 'Harry', 'Heikki',
'Heimo', 'Heino','Hemmo', 'Henri', 'Henrik', 'Henrikki', 'Herman',
'Hermanni', 'Huugo', 'Iikka', 'Iiro', 'Iisak', 'Iisakki', 'Iivari',
'Ilari', 'Ilkka', 'Ilmari', 'Ilmo', 'Ilpo', 'Immanuel', 'Into', 'Ismo',
'Isto', 'Jaakko', 'Jalmar', 'Jalmari', 'Jalo', 'Jami', 'Jani', 'Janne',
'Jari', 'Jari-Pekka', 'Jarkko', 'Jarmo', 'Jarno', 'Jasper', 'Jere',
'Jeremias', 'Jesse', 'Jimi', 'Joel', 'Johannes', 'Joni', 'Jonne',
'Joona', 'Joonas', 'Joonatan', 'Jooseppi', 'Jori', 'Jorma', 'Jouko',
'Jouni', 'Juha', 'Juha-Matti', 'Juha-Pekka', 'Juhana', 'Juhani', 'Juho',
'Jukka', 'Jukka-Pekka', 'Julius', 'Jussi', 'Juuso', 'Jyri', 'Jyrki',
'Kaapo', 'Kaarle', 'Kaarlo', 'Kai', 'Kaino', 'Kalervo', 'Kaleva',
'Kalevi', 'Kalle', 'Kari', 'Karri', 'Kasper', 'Kasperi', 'Kauko',
'Kauno', 'Keijo', 'Kimi', 'Kimmo', 'Klaus', 'Konsta', 'Konstantin',
'Kosti', 'Kristian', 'Kullervo', 'Kustaa', 'Kusti', 'Kyösti', 'Lari',
'Lasse', 'Lassi', 'Lauri', 'Leevi', 'Lenni', 'Leo', 'Luka', 'Luukas',
'Manu', 'Markku', 'Marko', 'Markus', 'Martti', 'Matias', 'Matti',
'Mauno', 'Maunu', 'Mauri', 'Miika', 'Miikka', 'Mika', 'Mikael', 'Mikko',
'Miko', 'Miro', 'Miska', 'Nestor', 'Nestori', 'Niilo', 'Niklas', 'Niko',
'Nikolai', 'Nuutti', 'Oiva', 'Olavi', 'Oliver', 'Olli', 'Olli-Pekka',
'Onni', 'Orvo', 'Oskar', 'Oskari', 'Osmo', 'Ossi', 'Ossian', 'Otso',
'Otto', 'Paavali', 'Paavo', 'Panu', 'Pasi', 'Paul', 'Pauli', 'Pekka',
'Pellervo', 'Pentti', 'Pertti', 'Perttu', 'Petri', 'Petter', 'Petteri',
'Pietari', 'Pyry', 'Päiviö', 'Rafael', 'Raimo', 'Raine', 'Rainer',
'Rami', 'Rasmus', 'Rauli', 'Rauni', 'Rauno', 'Reijo', 'Reima', 'Reino',
'Riku', 'Risto', 'Roni', 'Sakari', 'Saku', 'Salomon', 'Sami', 'Sampo',
'Sampsa', 'Samu', 'Samuel', 'Samuli', 'Santeri', 'Santtu', 'Sauli',
'Sebastian', 'Seppo', 'Severi', 'Simo', 'Soini', 'Sulevi', 'Sulo',
'Taavetti', 'Taavi', 'Taisto', 'Taito', 'Taneli', 'Tapani', 'Tapio',
'Tarmo', 'Tatu', 'Tauno', 'Teemu', 'Teijo', 'Tenho', 'Teppo',
'Terho', 'Tero', 'Teuvo', 'Timo', 'Tino', 'Toimi', 'Toivo', 'Tomi',
'Tommi', 'Toni', 'Topi', 'Topias', 'Torsti', 'Touko', 'Tuomas', 'Tuomo',
'Tuukka', 'Tuure', 'Ukko', 'Uljas', 'Untamo', 'Unto', 'Uolevi', 'Urho',
'Urpo', 'Usko', 'Uuno', 'Valde', 'Valdemar', 'Valentin', 'Valto',
'Valtteri', 'Waltteri', 'Veeti', 'Veijo', 'Veikka', 'Veikko', 'Veli',
'Veli-Matti', 'Veli-Pekka', 'Verner', 'Verneri', 'Vesa', 'Vieno',
'Vilhelmi', 'Vilho', 'Vili', 'Viljam', 'Viljami', 'Viljo', 'Ville',
'Voitto', 'Väinämö', 'Väinö', 'Ylermi', 'Yrjö', 'Aada', 'Aallotar',
'Aija', 'Aila', 'Aili', 'Aina', 'Aini', 'Aino', 'Aira', 'Airi',
'Aleksandra', 'Aliina', 'Aliisa', 'Alina', 'Alisa', 'Alli', 'Alma',
'Amalia', 'Amanda', 'Anastasia', 'Anelma', 'Anette', 'Anita', 'Anitta',
'Anja', 'Anna', 'Anna-Kaisa', 'Anna-Leena', 'Anna-Liisa', 'Anna-Maija',
'Anna-Mari', 'Anna-Maria', 'Anne', 'Anne-Mari', 'Anne-Maria', 'Annele',
'Anneli', 'Anni', 'Anniina', 'Annika', 'Annikki', 'Annukka', 'Anu',
'Arja', 'Armi', 'Asta', 'Auli', 'Aulikki', 'Aune', 'Aura', 'Aurora',
'Bertta', 'Eedit', 'Eelin', 'Eerika', 'Eeva', 'Eeva-Liisa', 'Eevi',
'Eija', 'Eila', 'Eine', 'Eini', 'Eira', 'Elena', 'Eliina', 'Eliisa',
'Eliisabet', 'Elina', 'Elisa', 'Elisabet', 'Elise', 'Ella', 'Ellen',
'Elli', 'Elma', 'Elna', 'Elsa', 'Else', 'Elsi', 'Elvi', 'Elviira',
'Emilia', 'Emma', 'Emmi', 'Enni', 'Eriika', 'Erja', 'Essi',
'Ester', 'Esteri', 'Eveliina', 'Fanni', 'Hanna', 'Hanna-Leena',
'Hanna-Mari', 'Hanne', 'Hannele', 'Heidi', 'Heini', 'Heleena', 'Helena',
'Heli', 'Helinä', 'Heljä', 'Helka', 'Hellevi', 'Helli', 'Hellin',
'Hellä', 'Helmi', 'Helmiina', 'Helvi', 'Hely', 'Henna', 'Henrietta',
'Henriikka', 'Hertta', 'Heta', 'Hilda', 'Hilja', 'Hilkka', 'Hilla',
'Hillevi', 'Hilma', 'Iida', 'Iina', 'Iines', 'Iiris', 'Ilma', 'Ilmi',
'Ilona', 'Ilta', 'Impi', 'Inari', 'Inka', 'Inkeri', 'Ira', 'Irene',
'Irina', 'Iris', 'Irja', 'Irma', 'Irmeli', 'Isabella', 'Jaana', 'Jade',
'Janette', 'Janika', 'Janina', 'Janita', 'Janna', 'Jasmiina', 'Jasmin',
'Jemina', 'Jenna', 'Jenni', 'Joanna', 'Johanna', 'Jonna', 'Josefiina',
'Julia', 'Justiina', 'Jutta', 'Juulia', 'Kaarin', 'Kaarina', 'Kaija',
'Kaino', 'Kaisa', 'Kaisu', 'Kanerva', 'Karita', 'Karoliina','Katariina',
'Kati', 'Katja', 'Katri', 'Katriina', 'Kerttu', 'Kiia', 'Kirsi',
'Kirsi-Marja', 'Kirsti', 'Kreeta', 'Krista', 'Kristiina', 'Kustaava',
'Kyllikki', 'Lahja', 'Laila', 'Laimi', 'Laina', 'Laura', 'Lea', 'Leea',
'Leena', 'Leila', 'Lemmikki', 'Lemmitty', 'Lempi', 'Liisa', 'Liisi',
'Lilja', 'Lilli', 'Linda', 'Linnea', 'Lotta', 'Loviisa', 'Lumi','Lyydi',
'Lyydia', 'Lyyli', 'Maaret', 'Maaria', 'Maarit', 'Maija', 'Maija-Leena',
'Maija-Liisa', 'Maiju', 'Maila', 'Maire', 'Margareeta', 'Margareetta',
'Mari', 'Maria', 'Marianna', 'Marianne', 'Mariia', 'Mariitta', 'Marika',
'Marita', 'Maritta', 'Marja', 'Marja-Leena', 'Marja-Liisa',
'Marja-Riitta', 'Marja-Terttu', 'Marjaana', 'Marjatta', 'Marjo',
'Marjo-Riitta', 'Marjukka', 'Marjut', 'Marketta', 'Marleena', 'Martta',
'Matilda', 'Matleena', 'Meeri','Meri', 'Merja', 'Mervi', 'Miia','Miina',
'Mikaela', 'Milja', 'Milka', 'Milla','Mimosa', 'Minea', 'Minja','Minna',
'Minttu', 'Mira', 'Mirja', 'Mirjam','Mirjami', 'Mirka', 'Mirva','Moona',
'Naima', 'Natalia', 'Nea', 'Neea', 'Nella', 'Nelli', 'Netta', 'Niina',
'Noora', 'Oili', 'Olivia', 'Onerva', 'Oona', 'Orvokki', 'Outi', 'Paula',
'Pauliina','Peppi', 'Petra', 'Pihla', 'Piia', 'Pilvi', 'Pinja','Pirita',
'Piritta', 'Pirjo', 'Pirkko', 'Pirkko-Liisa', 'Päivi', 'Päivikki',
'Raakel', 'Raija', 'Raila', 'Raili', 'Raisa', 'Rauha', 'Rauni',
'Rebekka', 'Reeta', 'Reetta', 'Reija', 'Riikka', 'Riina', 'Riitta',
'Riitta-Liisa', 'Ritva', 'Ronja', 'Roosa', 'Saana', 'Saara', 'Saija',
'Saila', 'Saima', 'Saimi', 'Saini', 'Salla', 'Salli', 'Salme','Sanelma',
'Sanna', 'Sanni', 'Sara', 'Sari', 'Sarita', 'Satu', 'Seija', 'Selma',
'Senja', 'Senni', 'Siiri', 'Silja', 'Sini', 'Sinikka', 'Sirkka',
'Sirkka-Liisa', 'Sirkku', 'Sirpa', 'Sisko', 'Siviä', 'Sofia', 'Sohvi',
'Soile', 'Soili', 'Soilikki', 'Sointu', 'Sonja', 'Stiina', 'Suoma',
'Susan', 'Susanna','Susanne', 'Suvi', 'Sylvi', 'Sylvia', 'Säde','Taija',
'Taimi', 'Taina', 'Talvikki', 'Tanja', 'Tarja', 'Taru', 'Tea', 'Teija',
'Tekla', 'Tellervo', 'Teresa', 'Terhi', 'Terhikki', 'Terttu', 'Tiia',
'Tiina', 'Tilda', 'Titta', 'Toini', 'Tuija', 'Tuire', 'Tuovi', 'Tuuli',
'Tuulia', 'Tuulikki', 'Tytti', 'Tyyne', 'Tyyni', 'Ulla', 'Ulla-Maija',
'Unelma', 'Ursula', 'Valma', 'Valpuri', 'Vappu', 'Varpu', 'Veera',
'Vellamo', 'Venla', 'Vieno', 'Viivi', 'Vilhelmiina', 'Wilhelmiina',
'Vilja', 'Vilma', 'Wilma', 'Viola', 'Virpi', 'Virva', 'Virve', 'Vuokko'
)
last_names = (
'Aalto', 'Aaltonen', 'Aarnio', 'Ahde', 'Aho', 'Ahopalo', 'Ahokas',
'Ahokangas', 'Ahola', 'Ahonen', 'Ahti', 'Ahtisaari', 'Alanen',
'Alasalmi', 'Alho', 'Annala', 'Anttila', 'Anttonen', 'Arajärvi', 'Aro',
'Aromaa', 'Asikainen', 'Askola', 'Astala', 'Asunmaa', 'Aura', 'Autio',
'Auvinen', 'Eerikäinen', 'Eerola', 'Einiö', 'Ekola', 'Elo', 'Elomaa',
'Eloranta', 'Elsilä', 'Ernamo', 'Erola', 'Eronen', 'Eskelinen','Eskola',
'Haanpää', 'Haapakoski', 'Haapasalo', 'Haataja', 'Hakala', 'Hannula',
'Harju', 'Harjula', 'Hartikainen', 'Hautala', 'Heikkilä', 'Heikkinen',
'Heinonen', 'Heiskanen', 'Helminen', 'Hietanen', 'Hiltunen','Hinkkanen',
'Hintikka', 'Hirsjärvi', 'Hirvelä', 'Hirvonen', 'Holappa', 'Hujanen',
'Huotari', 'Huovinen', 'Huttunen', 'Huusko', 'Huuskonen', 'Hynninen',
'Hyttinen', 'Häkkinen', 'Häkämies', 'Hämäläinen', 'Hänninen',
'Ihalainen', 'Ihamäki', 'Iivonen', 'Ijäs', 'Ikola', 'Ikonen','Ikäheimo',
'Ilmola', 'Ilmonen', 'Ilvonen', 'Immonen', 'Inkinen', 'Innanen',
'Isokangas', 'Isokallio', 'Isokoski', 'Isometsä', 'Isomäki', 'Isotalo',
'Issakainen', 'Itkonen', 'Itälä', 'Jaakkola', 'Jaakonsaari', 'Jaatinen',
'Jalava', 'Jalkanen', 'Jalonen', 'Jantunen', 'Jarva', 'Jokela',
'Jokelainen', 'Jokinen', 'Juhola', 'Jukarainen', 'Jukola', 'Julkunen',
'Juntunen', 'Jussila', 'Jutila', 'Juva', 'Juvonen', 'Jylhä',
'Jäntti', 'Järvi', 'Järvilehto', 'Järvinen', 'Jääskeläinen',
'Kainulainen', 'Kallio', 'Kalliokoski', 'Kangas', 'Karhu','Karjalainen',
'Karonen', 'Karppanen', 'Karppinen', 'Kataisto', 'Kataja', 'Kemppainen',
'Keskinen', 'Keto', 'Ketola', 'Kettunen', 'Kinnunen', 'Kivelä',
'Kiviluoto', 'Kivinen', 'Kivistö', 'Koistinen', 'Koivula', 'Kokkonen',
'Korhonen', 'Korpela', 'Koskinen', 'Kosonen', 'Krouvi' 'Kulmala',
'Kunnas', 'Kuosmanen', 'Kuparinen', 'Kurkela', 'Kurkinen', 'Kuusela',
'Kuusisto', 'Laaksonen', 'Laatikainen', 'Lahtela', 'Lahti', 'Lahtinen',
'Laiho', 'Laine', 'Laitinen', 'Lamminen', 'Lampinen', 'Lankinen',
'Lappalainen', 'Larivaara', 'Lassila', 'Latvanen', 'Laukkanen',
'Laurila', 'Lauronen', 'Lehtinen', 'Lehto', 'Lehtonen', 'Leino',
'Leinonen', 'Lepistö', 'Leppälä', 'Leppänen', 'Leskinen', 'Lesonen',
'Liikanen', 'Lilja', 'Linna', 'Lipponen', 'Litmanen', 'Liukkonen',
'Loponen', 'Luhtanen', 'Lumme', 'Luostarinen', 'Makkonen', 'Manninen',
'Markku', 'Martikainen', 'Matikainen', 'Matinsalo', 'Mattila',
'Meriluoto', 'Miettunen', 'Mieto', 'Mikkola', 'Moilanen', 'Mustonen',
'Muukkonen', 'Myllylä', 'Myllyniemi', 'Mäenpää', 'Mäkelä', 'Mäki',
'Mäkilä', 'Mäkinen', 'Mänttäri', 'Mänty', 'Määttä', 'Naarajärvi',
'Narinen', 'Nenonen', 'Neuvonen', 'Nevala', 'Nevalainen', 'Niemelä',
'Niemi', 'Nieminen', 'Niinisalo', 'Niinistö', 'Niiranen', 'Nikkinen',
'Nikkola', 'Nikkonen', 'Nikula', 'Niskala', 'Nissinen', 'Nousiainen',
'Nummi', 'Numminen', 'Nurmela', 'Nurmi', 'Nurminen', 'Nuutinen',
'Nykänen', 'Närhi', 'Oikarinen', 'Oittinen', 'Ojakangas', 'Ojala',
'Ojalehto', 'Ojanen', 'Oksanen', 'Ollikainen', 'Ollila', 'Onnela',
'Oranen', 'Otila', 'Outila', 'Outinen', 'Ovaska', 'Paananen', 'Paasio',
'Pajari', 'Pale', 'Pakarinen', 'Parras', 'Parviainen', 'Pasanen',
'Pekkanen', 'Pekkala', 'Pelkonen', 'Peltola', 'Peltonen', 'Peltoniemi',
'Peltosaari', 'Pennanen', 'Pesonen', 'Pesälä', 'Petäjä', 'Pirhonen',
'Pirinen', 'Pitkänen', 'Pohjola', 'Pohjonen', 'Pokka', 'Porkka', 'Poso',
'Poutanen', 'Puikkonen', 'Pulkkinen', 'Purho', 'Pyysalo', 'Päätalo',
'Rahikainen', 'Rahkamo', 'Rahnasto', 'Rajala', 'Rannisto', 'Rantala',
'Rantanen', 'Rauhala', 'Rautakorpi', 'Rautanen', 'Rautavaara',
'Rautiainen', 'Rautio', 'Reinikainen', 'Rekunen', 'Repo', 'Repomem',
'Riihelä', 'Riihijärvi', 'Riikonen', 'Rinne', 'Rintala', 'Rissanen',
'Ritala', 'Roimola', 'Roivas', 'Ronni', 'Ruohonen', 'Ruutu', 'Ryttäri',
'Räikkönen', 'Räisänen', 'Räty', 'Saarela', 'Saari', 'Saarikoski',
'Saario', 'Saarinen', 'Saikkonen', 'Sainio', 'Saisio', 'Saksala',
'Salli', 'Sallinen', 'Salmi', 'Salminen', 'Salo', 'Salonen',
'Savolainen', 'Seppälä', 'Seppänen', 'Setälä', 'Sillanpää', 'Sinisalo',
'Sipilä', 'Sipinen', 'Sirkiä', 'Sirviö', 'Soikkeli', 'Soinio',
'Sormunen', 'Suhonen', 'Sulkanen', 'Suntila', 'Suominen', 'Supinen',
'Takala', 'Tammisto', 'Tamminen', 'Tanskanen', 'Taipale', 'Tarkka',
'Tenhunen', 'Tiainen', 'Tiihonen', 'Tiilikainen', 'Tikkanen', 'Timonen',
'Tirkkonen', 'Toivonen', 'Tuomi', 'Tuominen', 'Tuomioja', 'Tuomola',
'Turunen', 'Tuuri', 'Ukkola', 'Ulmanen', 'Uosukainen', 'Uotila',
'Uotinen', 'Uronen', 'Utriainen', 'Utrio', 'Uusitalo', 'Vainikainen',
'Vainio', 'Vanhala', 'Varala', 'Varis', 'Varvikko', 'Vatanen','Veintie',
'Venäläinen', 'Viitala', 'Viitanen', 'Viljanen', 'Vinni', 'Virolainen',
'Virtanen', 'Vitikka', 'Voutilainen', 'Vuolle', 'Vuorela', 'Vuorinen',
'Vuoristo', 'Välkkynen', 'Väänänen', 'Väätäinen', 'Ykspetäjä',
'Ylikangas', 'Ylikoski', 'Ylimäki', 'Ylinen', 'Yliniemi', 'Ylioja',
'Ylisuvanto', 'Ylitalo', 'Ylämäki', 'Ylänne', 'Ylätalo', 'Ylönen',
'Ylöstalo', 'Yrjälä', 'Yrjänä', 'Yrjänäinen', 'Yrjölä', 'Yrjönen'
)
@classmethod
def prefix(cls):
return cls.random_element(cls.prefixes)
@classmethod
def suffix(cls):
return cls.random_element(cls.suffixes)

View file

@ -0,0 +1,13 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+358 ## #######',
'+358 #########',
'+358#########',
'(+358) #########',
'0#########',
'0## ### ####'
)

129
src/faker/providers/file.py Normal file
View file

@ -0,0 +1,129 @@
# coding=utf-8
from __future__ import unicode_literals
from faker.providers import BaseProvider
class Provider(BaseProvider):
application_mime_types = (
"application/atom+xml", # Atom feeds
"application/ecmascript",
# ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to application/javascript but with stricter processing rules)
"application/EDI-X12", # EDI X12 data; Defined in RFC 1767
"application/EDIFACT", # EDI EDIFACT data; Defined in RFC 1767
"application/json", # JavaScript Object Notation JSON; Defined in RFC 4627
"application/javascript", # ECMAScript/JavaScript; Defined in RFC 4329 (equivalent to application/ecmascript
# but with looser processing rules) It is not accepted in IE 8
# or earlier - text/javascript is accepted but it is defined as obsolete in RFC 4329.
# The "type" attribute of the <script> tag in HTML5 is optional and in practice
# omitting the media type of JavaScript programs is the most interoperable
# solution since all browsers have always assumed the correct
# default even before HTML5. "application/octet-stream", # Arbitrary binary data.[6] Generally speaking this type identifies files that are not associated with a specific application. Contrary to past assumptions by software packages such as Apache this is not a type that should be applied to unknown files. In such a case, a server or application should not indicate a content type, as it may be incorrect, but rather, should omit the type in order to allow the recipient to guess the type.[7]
"application/ogg", # Ogg, a multimedia bitstream container format; Defined in RFC 5334
"application/pdf", # Portable Document Format, PDF has been in use for document exchange
# on the Internet since 1993; Defined in RFC 3778
"application/postscript", # PostScript; Defined in RFC 2046
"application/rdf+xml", # Resource Description Framework; Defined by RFC 3870
"application/rss+xml", # RSS feeds
"application/soap+xml", # SOAP; Defined by RFC 3902
"application/font-woff", # Web Open Font Format; (candidate recommendation; use application/x-font-woff
# until standard is official)
"application/xhtml+xml", # XHTML; Defined by RFC 3236
"application/xml-dtd", # DTD files; Defined by RFC 3023
"application/xop+xml", # XOP
"application/zip", # ZIP archive files; Registered[8]
"application/gzip", # Gzip, Defined in RFC 6713
)
audio_mime_types = (
"audio/basic", # mulaw audio at 8 kHz, 1 channel; Defined in RFC 2046
"audio/L24", # 24bit Linear PCM audio at 8-48 kHz, 1-N channels; Defined in RFC 3190
"audio/mp4", # MP4 audio
"audio/mpeg", # MP3 or other MPEG audio; Defined in RFC 3003
"audio/ogg", # Ogg Vorbis, Speex, Flac and other audio; Defined in RFC 5334
"audio/vorbis", # Vorbis encoded audio; Defined in RFC 5215
"audio/vnd.rn-realaudio", # RealAudio; Documented in RealPlayer Help[9]
"audio/vnd.wave", # WAV audio; Defined in RFC 2361
"audio/webm", # WebM open media format
)
image_mime_types = (
"image/gif", # GIF image; Defined in RFC 2045 and RFC 2046
"image/jpeg", # JPEG JFIF image; Defined in RFC 2045 and RFC 2046
"image/pjpeg",
# JPEG JFIF image; Associated with Internet Explorer; Listed in ms775147(v=vs.85) - Progressive JPEG, initiated before global browser support for progressive JPEGs (Microsoft and Firefox).
"image/png", # Portable Network Graphics; Registered,[10] Defined in RFC 2083
"image/svg+xml", # SVG vector image; Defined in SVG Tiny 1.2 Specification Appendix M
"image/tiff", # Tag Image File Format (only for Baseline TIFF); Defined in RFC 3302
"image/vnd.microsoft.icon", # ICO image; Registered[11]
)
message_mime_types = (
"message/http", # Defined in RFC 2616
"message/imdn+xml", # IMDN Instant Message Disposition Notification; Defined in RFC 5438
"message/partial", # Email; Defined in RFC 2045 and RFC 2046
"message/rfc822", # Email; EML files, MIME files, MHT files, MHTML files; Defined in RFC 2045 and RFC 2046
)
model_mime_types = (
"model/example", # Defined in RFC 4735
"model/iges", # IGS files, IGES files; Defined in RFC 2077
"model/mesh", # MSH files, MESH files; Defined in RFC 2077, SILO files
"model/vrml", # WRL files, VRML files; Defined in RFC 2077
"model/x3d+binary", # X3D ISO standard for representing 3D computer graphics, X3DB binary files
"model/x3d+vrml", # X3D ISO standard for representing 3D computer graphics, X3DV VRML files
"model/x3d+xml", # X3D ISO standard for representing 3D computer graphics, X3D XML files
)
multipart_mime_types = (
"multipart/mixed", # MIME Email; Defined in RFC 2045 and RFC 2046
"multipart/alternative", # MIME Email; Defined in RFC 2045 and RFC 2046
"multipart/related", # MIME Email; Defined in RFC 2387 and used by MHTML (HTML mail)
"multipart/form-data", # MIME Webform; Defined in RFC 2388
"multipart/signed", # Defined in RFC 1847
"multipart/encrypted", # Defined in RFC 1847
)
text_mime_types = (
"text/cmd", # commands; subtype resident in Gecko browsers like Firefox 3.5
"text/css", # Cascading Style Sheets; Defined in RFC 2318
"text/csv", # Comma-separated values; Defined in RFC 4180
"text/html", # HTML; Defined in RFC 2854
"text/javascript",
# (Obsolete): JavaScript; Defined in and obsoleted by RFC 4329 in order to discourage its usage in favor of application/javascript. However, text/javascript is allowed in HTML 4 and 5 and, unlike application/javascript, has cross-browser support. The "type" attribute of the <script> tag in HTML5 is optional and there is no need to use it at all since all browsers have always assumed the correct default (even in HTML 4 where it was required by the specification).
"text/plain", # Textual data; Defined in RFC 2046 and RFC 3676
"text/vcard", # vCard (contact information); Defined in RFC 6350
"text/xml", # Extensible Markup Language; Defined in RFC 3023
)
video_mime_types = (
"video/mpeg", # MPEG-1 video with multiplexed audio; Defined in RFC 2045 and RFC 2046
"video/mp4", # MP4 video; Defined in RFC 4337
"video/ogg", # Ogg Theora or other video (with audio); Defined in RFC 5334
"video/quicktime", # QuickTime video; Registered[12]
"video/webm", # WebM Matroska-based open media format
"video/x-matroska", # Matroska open media format
"video/x-ms-wmv", # Windows Media Video; Documented in Microsoft KB 288102
"video/x-flv", # Flash video (FLV files)
)
mime_types = {
'application': application_mime_types,
'audio': audio_mime_types,
'image': image_mime_types,
'message': message_mime_types,
'model': model_mime_types,
'multipart': multipart_mime_types,
'text': text_mime_types,
'video': video_mime_types
}
@classmethod
def mime_type(cls, category=None):
"""
:param category: application|audio|image|message|model|multipart|text|video
"""
category = category if category else cls.random_element(list(cls.mime_types.keys()))
return cls.random_element(cls.mime_types[category])

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,150 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_suffixes = ('Ville', 'Bourg', '-les-Bains', '-sur-Mer', '-la-Forêt', 'boeuf', 'nec', 'dan')
street_prefixes = ('rue', 'rue', 'chemin', 'avenue', 'boulevard')
city_formats = (
'{{last_name}}',
'{{last_name}}',
'{{last_name}}',
'{{last_name}}',
'{{last_name}}{{city_suffix}}',
'{{last_name}}{{city_suffix}}',
'{{last_name}}{{city_suffix}}',
'{{last_name}}-sur-{{last_name}}',
)
street_name_formats = (
'{{street_prefix}} {{last_name}}',
'{{street_prefix}} {{first_name}} {{last_name}}',
'{{street_prefix}} de {{last_name}}',
)
street_address_formats = (
'{{street_name}}',
'{{building_number}}, {{street_name}}',
'{{building_number}}, {{street_name}}',
'{{building_number}}, {{street_name}}',
'{{building_number}}, {{street_name}}',
'{{building_number}}, {{street_name}}',
)
address_formats = (
"{{street_address}}\n{{postcode}} {{city}}",
)
building_number_formats = ('%', '%#', '%#', '%#', '%##')
postcode_formats = ('#####', '## ###')
countries = (
'Afghanistan', 'Afrique du sud', 'Albanie', 'Algérie', 'Allemagne', 'Andorre', 'Angola', 'Anguilla',
'Antarctique', 'Antigua et Barbuda', 'Antilles néerlandaises', 'Arabie saoudite', 'Argentine', 'Arménie',
'Aruba', 'Australie', 'Autriche', 'Azerbaïdjan', 'Bahamas', 'Bahrain', 'Bangladesh', 'Belgique', 'Belize',
'Benin', 'Bermudes (Les)', 'Bhoutan', 'Biélorussie', 'Bolivie', 'Bosnie-Herzégovine', 'Botswana',
'Bouvet (Îles)', 'Brunei', 'Brésil', 'Bulgarie', 'Burkina Faso', 'Burundi', 'Cambodge', 'Cameroun', 'Canada',
'Cap Vert', 'Cayman (Îles)', 'Chili', 'Chine (Rép. pop.)', 'Christmas (Île)', 'Chypre', 'Cocos (Îles)',
'Colombie', 'Comores', 'Cook (Îles)', 'Corée du Nord', 'Corée, Sud', 'Costa Rica', 'Croatie', 'Cuba',
'Côte d\'Ivoire', 'Danemark', 'Djibouti', 'Dominique', 'Égypte', 'El Salvador', 'Émirats arabes unis',
'Équateur', 'Érythrée', 'Espagne', 'Estonie', 'États-Unis', 'Ethiopie', 'Falkland (Île)',
'Fidji (République des)', 'Finlande', 'France', 'Féroé (Îles)', 'Gabon',
'Gambie', 'Ghana', 'Gibraltar', 'Grenade', 'Groenland', 'Grèce', 'Guadeloupe', 'Guam', 'Guatemala', 'Guinée',
'Guinée Equatoriale', 'Guinée-Bissau', 'Guyane', 'Guyane française', 'Géorgie',
'Géorgie du Sud et Sandwich du Sud (Îles)', 'Haïti', 'Heard et McDonald (Îles)', 'Honduras', 'Hong Kong',
'Hongrie', 'Îles Mineures Éloignées des États-Unis', 'Inde', 'Indonésie', 'Irak', 'Iran', 'Irlande', 'Islande',
'Israël', 'Italie', 'Jamaïque', 'Japon', 'Jordanie', 'Kazakhstan', 'Kenya', 'Kirghizistan', 'Kiribati',
'Koweit', 'La Barbad', 'Laos', 'Lesotho', 'Lettonie', 'Liban', 'Libye', 'Libéria', 'Liechtenstein', 'Lithuanie',
'Luxembourg', 'Macau', 'Macédoine', 'Madagascar', 'Malaisie', 'Malawi', 'Maldives (Îles)', 'Mali', 'Malte',
'Mariannes du Nord (Îles)', 'Maroc', 'Marshall (Îles)', 'Martinique', 'Maurice', 'Mauritanie', 'Mayotte',
'Mexique', 'Micronésie (États fédérés de)', 'Moldavie', 'Monaco', 'Mongolie', 'Montserrat', 'Mozambique',
'Myanmar', 'Namibie', 'Nauru', 'Nepal',
'Nicaragua', 'Niger', 'Nigeria', 'Niue', 'Norfolk (Îles)', 'Norvège', 'Nouvelle Calédonie', 'Nouvelle-Zélande',
'Oman', 'Ouganda', 'Ouzbékistan', 'Pakistan', 'Palau', 'Panama', 'Papouasie-Nouvelle-Guinée', 'Paraguay',
'Pays-Bas', 'Philippines', 'Pitcairn (Îles)', 'Pologne', 'Polynésie française', 'Porto Rico', 'Portugal',
'Pérou', 'Qatar', 'Roumanie', 'Royaume-Uni', 'Russie', 'Rwanda', 'Rép. Dém. du Congo',
'République centrafricaine', 'République Dominicaine', 'République tchèque', 'Réunion (La)',
'Sahara Occidental', 'Saint Pierre et Miquelon', 'Saint Vincent et les Grenadines', 'Saint-Kitts et Nevis',
'Saint-Marin (Rép. de)', 'Sainte Hélène', 'Sainte Lucie', 'Samoa', 'Samoa', 'Seychelles', 'Sierra Leone',
'Singapour', 'Slovaquie', 'Slovénie', 'Somalie', 'Soudan', 'Sri Lanka', 'Suisse', 'Suriname', 'Suède',
'Svalbard et Jan Mayen (Îles)', 'Swaziland', 'Syrie', 'São Tomé et Príncipe (Rép.)', 'Sénégal', 'Tadjikistan',
'Taiwan', 'Tanzanie', 'Tchad',
'Territoire britannique de l\'océan Indien', 'Territoires français du sud', 'Thailande', 'Timor', 'Togo',
'Tokelau', 'Tonga', 'Trinité et Tobago', 'Tunisie', 'Turkménistan', 'Turks et Caïques (Îles)', 'Turquie',
'Tuvalu', 'Ukraine', 'Uruguay', 'Vanuatu', 'Vatican (Etat du)', 'Venezuela', 'Vierges (Îles)',
'Vierges britanniques (Îles)', 'Vietnam', 'Wallis et Futuna (Îles)', 'Yemen', 'Yougoslavie', 'Zambie', 'Zaïre',
'Zimbabwe'
)
regions = (
'Alsace', 'Aquitaine', 'Auvergne', 'Bourgogne', 'Bretagne', 'Centre', 'Champagne-Ardenne',
'Corse', 'Franche-Comté', 'Île-de-France', 'Languedoc-Roussillon', 'Limousin',
'Lorraine', 'Midi-Pyrénées', 'Nord-Pas-de-Calais', 'Basse-Normandie', 'Haute-Normandie',
'Pays-de-Loire', 'Picardie', 'Poitou-Charentes', "Province-Alpes-Côte d'Azur", 'Rhone-Alpes',
'Guadeloupe', 'Martinique', 'Guyane', 'Réunion', 'Saint-Pierre-et-Miquelon', 'Mayotte',
'Saint-Barthélémy', 'Saint-Martin', 'Wallis-et-Futuna', 'Polynésie française', 'Nouvelle-Calédonie'
)
departments = (
('01', 'Ain'), ('02', 'Aisne'), ('03', 'Allier'), ('04', 'Alpes-de-Haute-Provence'), ('05', 'Hautes-Alpes'),
('06', 'Alpes-Maritimes'), ('07', 'Ardèche'), ('08', 'Ardennes'), ('09', 'Ariège'), ('10', 'Aube'),
('11', 'Aude'), ('12', 'Aveyron'), ('13', 'Bouches-du-Rhône'), ('14', 'Calvados'), ('15', 'Cantal'),
('16', 'Charente'), ('17', 'Charente-Maritime'), ('18', 'Cher'), ('19', 'Corrèze'), ('2A', 'Corse-du-Sud'),
('2B', 'Haute-Corse'), ('21', "Côte-d'Or"), ('22', "Côtes-d'Armor"), ('23', 'Creuse'), ('24', 'Dordogne'),
('25', 'Doubs'), ('26', 'Drôme'), ('27', 'Eure'), ('28', 'Eure-et-Loir'), ('29', 'Finistère'), ('30', 'Gard'),
('31', 'Haute-Garonne'), ('32', 'Gers'), ('33', 'Gironde'), ('34', 'Hérault'), ('35', 'Ille-et-Vilaine'),
('36', 'Indre'), ('37', 'Indre-et-Loire'), ('38', 'Isère'), ('39', 'Jura'), ('40', 'Landes'),
('41', 'Loir-et-Cher'),
('42', 'Loire'), ('43', 'Haute-Loire'), ('44', 'Loire-Atlantique'), ('45', 'Loiret'), ('46', 'Lot'),
('47', 'Lot-et-Garonne'), ('48', 'Lozère'), ('49', 'Maine-et-Loire'), ('50', 'Manche'), ('51', 'Marne'),
('52', 'Haute-Marne'), ('53', 'Mayenne'), ('54', 'Meurthe-et-Moselle'), ('55', 'Meuse'), ('56', 'Morbihan'),
('57', 'Moselle'), ('58', 'Nièvre'), ('59', 'Nord'), ('60', 'Oise'), ('61', 'Orne'), ('62', 'Pas-de-Calais'),
('63', 'Puy-de-Dôme'), ('64', 'Pyrénées-Atlantiques'), ('65', 'Hautes-Pyrénées'), ('66', 'Pyrénées-Orientales'),
('67', 'Bas-Rhin'), ('68', 'Haut-Rhin'), ('69', 'Rhône'), ('70', 'Haute-Saône'), ('71', 'Saône-et-Loire'),
('72', 'Sarthe'), ('73', 'Savoie'), ('74', 'Haute-Savoie'), ('75', 'Paris'), ('76', 'Seine-Maritime'),
('77', 'Seine-et-Marne'), ('78', 'Yvelines'), ('79', 'Deux-Sèvres'), ('80', 'Somme'), ('81', 'Tarn'),
('82', 'Tarn-et-Garonne'), ('83', 'Var'), ('84', 'Vaucluse'), ('85', 'Vendée'), ('86', 'Vienne'),
('87', 'Haute-Vienne'), ('88', 'Vosges'), ('89', 'Yonne'), ('90', 'Territoire de Belfort'), ('91', 'Essonne'),
('92', 'Hauts-de-Seine'), ('93', 'Seine-Saint-Denis'), ('94', 'Val-de-Marne'), ('95', "Val-d'Oise"),
('971', 'Guadeloupe'), ('972', 'Martinique'), ('973', 'Guyane'), ('974', 'La Réunion'), ('976', 'Mayotte')
)
@classmethod
def street_prefix(cls):
"""
:example 'rue'
"""
return cls.random_element(cls.street_prefixes)
@classmethod
def region(cls):
"""
:example 'Guadeloupe'
"""
return cls.random_element(cls.regions)
@classmethod
def department(cls):
"""
Randomly returns a french department ('departmentNumber' , 'departmentName').
:example ('2B' . 'Haute-Corse')
"""
return cls.random_element(cls.departments)
@classmethod
def department_name(cls):
"""
Randomly returns a french department name.
:example 'Ardèche'
"""
return cls.department()[1]
@classmethod
def department_number(cls):
"""
Randomly returns a french department number.
:example '59'
"""
return cls.department()[0]

View file

@ -0,0 +1,119 @@
# coding=utf-8
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}} {{last_name}} {{company_suffix}}',
'{{last_name}}',
'{{last_name}}',
)
catch_phrase_formats = (
'{{catch_phrase_noun}} {{catch_phrase_verb}} {{catch_phrase_attribute}}',
)
nouns = (
'la sécurité', 'le plaisir', 'le confort', 'la simplicité', "l'assurance", "l'art", 'le pouvoir', 'le droit',
'la possibilité', "l'avantage", 'la liberté'
)
verbs = (
'de rouler', "d'avancer", "d'évoluer", 'de changer', "d'innover", 'de louer', "d'atteindre vos buts",
'de concrétiser vos projets'
)
attributes = (
'de manière efficace', 'plus rapidement', 'plus facilement', 'plus simplement', 'en toute tranquilité',
'avant-tout', 'autrement', 'naturellement', 'à la pointe', 'sans soucis', "à l'état pur",
'à sa source', 'de manière sûre', 'en toute sécurité'
)
company_suffixes = ('SA', 'S.A.', 'SARL', 'S.A.R.L.', 'S.A.S.', 'et Fils')
siren_format = "### ### ###"
@classmethod
def catch_phrase_noun(cls):
"""
Returns a random catch phrase noun.
"""
return cls.random_element(cls.nouns)
@classmethod
def catch_phrase_attribute(cls):
"""
Returns a random catch phrase attribute.
"""
return cls.random_element(cls.attributes)
@classmethod
def catch_phrase_verb(cls):
"""
Returns a random catch phrase verb.
"""
return cls.random_element(cls.verbs)
def catch_phrase(self):
"""
:example 'integrate extensible convergence'
"""
catch_phrase = ""
while True:
pattern = self.random_element(self.catch_phrase_formats)
catch_phrase = self.generator.parse(pattern)
catch_phrase = catch_phrase[0].upper() + catch_phrase[1:]
if self._is_catch_phrase_valid(catch_phrase):
break
return catch_phrase
# An array containing string which should not appear twice in a catch phrase
words_which_should_not_appear_twice = ('sécurité', 'simpl')
@classmethod
def _is_catch_phrase_valid(cls, catch_phrase):
"""
Validates a french catch phrase.
:param catch_phrase: The catch phrase to validate.
"""
for word in cls.words_which_should_not_appear_twice:
# Fastest way to check if a piece of word does not appear twice.
begin_pos = catch_phrase.find(word)
end_pos = catch_phrase.find(word, begin_pos + 1)
if begin_pos != -1 and begin_pos != end_pos: return False
return True
@classmethod
def siren(cls):
"""
Generates a siren number (9 digits).
"""
return cls.numerify(cls.siren_format)
@classmethod
def siret(cls, max_sequential_digits=2):
"""
Generates a siret number (14 digits).
It is in fact the result of the concatenation of a siren number (9 digits),
a sequential number (4 digits) and a control number (1 digit) concatenation.
If $max_sequential_digits is invalid, it is set to 2.
:param max_sequential_digits The maximum number of digits for the sequential number (> 0 && <= 4).
"""
if max_sequential_digits > 4 or max_sequential_digits <= 0:
max_sequential_digits = 2
sequential_number = str(cls.random_number(max_sequential_digits)).zfill(4)
return cls.numerify(cls.siren() + ' ' + sequential_number + '#')

View file

@ -0,0 +1,11 @@
# coding=utf-8
from __future__ import unicode_literals
from ..internet import Provider as InternetProvider
class Provider(InternetProvider):
safe_email_tlds = ('com', 'net', 'fr', 'fr')
free_email_domains = (
'voila.fr', 'gmail.com', 'hotmail.fr', 'yahoo.fr', 'laposte.net', 'free.fr', 'sfr.fr', 'orange.fr', 'bouygtel.fr',
'club-internet.fr', 'dbmail.com', 'live.com', 'ifrance.com', 'noos.fr', 'tele2.fr', 'tiscali.fr', 'wanadoo.fr')
tlds = ('com', 'com', 'com', 'net', 'org', 'fr', 'fr', 'fr')

View file

@ -0,0 +1,93 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{prefix}} {{last_name}}',
'{{first_name}} {{last_name}}-{{last_name}}',
'{{first_name}}-{{first_name}} {{last_name}}',
)
first_names = (
'Adrien', 'Aimé', 'Alain', 'Alexandre', 'Alfred', 'Alphonse', 'André', 'Antoine', 'Arthur', 'Auguste',
'Augustin', 'Benjamin', 'Benoît', 'Bernard', 'Bertrand', 'Charles', 'Christophe', 'Daniel', 'David', 'Denis',
'Édouard', 'Émile', 'Emmanuel', 'Éric', 'Étienne', 'Eugène', 'François', 'Franck', 'Frédéric', 'Gabriel',
'Georges', 'Gérard', 'Gilbert', 'Gilles', 'Grégoire', 'Guillaume', 'Guy', 'William', 'Henri', 'Honoré',
'Hugues', 'Isaac', 'Jacques', 'Jean', 'Jérôme', 'Joseph', 'Jules', 'Julien', 'Laurent', 'Léon', 'Louis', 'Luc',
'Lucas', 'Marc', 'Marcel', 'Martin', 'Matthieu', 'Maurice', 'Michel', 'Nicolas', 'Noël', 'Olivier', 'Patrick',
'Paul', 'Philippe', 'Pierre', 'Raymond', 'Rémy', 'René', 'Richard', 'Robert', 'Roger', 'Roland', 'Sébastien',
'Stéphane', 'Théodore', 'Théophile', 'Thibaut', 'Thibault', 'Thierry', 'Thomas', 'Timothée', 'Tristan',
'Victor', 'Vincent', 'Xavier', 'Yves', 'Zacharie',
'Adélaïde', 'Adèle', 'Adrienne', 'Agathe', 'Agnès', 'Aimée', 'Alexandrie', 'Alix', 'Alexandria', 'Alex',
'Alice', 'Amélie', 'Anaïs', 'Anastasie', 'Andrée', 'Anne', 'Anouk', 'Antoinette', 'Arnaude', 'Astrid', 'Audrey',
'Aurélie', 'Aurore', 'Bernadette', 'Brigitte', 'Capucine', 'Caroline', 'Catherine', 'Cécile', 'Céline',
'Célina', 'Chantal', 'Charlotte', 'Christelle', 'Christiane', 'Christine', 'Claire', 'Claudine', 'Clémence',
'Colette', 'Constance', 'Corinne', 'Danielle', 'Denise', 'Diane', 'Dorothée', 'Édith', 'Éléonore', 'Élisabeth',
'Élise', 'Élodie', 'Émilie', 'Emmanuelle', 'Françoise', 'Frédérique', 'Gabrielle', 'Geneviève', 'Hélène',
'Henriette', 'Hortense', 'Inès', 'Isabelle', 'Jacqueline', 'Jeanne', 'Jeannine', 'Joséphine', 'Josette',
'Julie', 'Juliette', 'Laetitia', 'Laure', 'Laurence', 'Lorraine', 'Louise', 'Luce', 'Lucie', 'Lucy',
'Madeleine', 'Manon', 'Marcelle', 'Margaux', 'Margaud', 'Margot', 'Marguerite', 'Margot', 'Margaret', 'Maggie',
'daisy', 'Marianne', 'Marie', 'Marine', 'Marthe', 'Martine', 'Maryse', 'Mathilde', 'Michèle', 'Michelle',
'Michelle', 'Monique', 'Nathalie', 'Nath', 'Nathalie', 'Nicole', 'Noémi', 'Océane', 'Odette', 'Olivie',
'Patricia', 'Paulette', 'Pauline', 'Pénélope', 'Philippine', 'Renée', 'Sabine', 'Simone', 'Sophie', 'Stéphanie',
'Susanne', 'Suzanne', 'Susan', 'Suzanne', 'Sylvie', 'Thérèse', 'Valentine', 'Valérie', 'Véronique', 'Victoire',
'Virginie', 'Zoé',
'Camille', 'Claude', 'Dominique'
)
last_names = (
'Martin', 'Bernard', 'Thomas', 'Robert', 'Petit', 'Dubois', 'Richard', 'Garcia', 'Durand', 'Moreau', 'Lefebvre',
'Simon', 'Laurent', 'Michel', 'Leroy', 'Martinez', 'David', 'Fontaine', 'Da Silva', 'Morel', 'Fournier',
'Dupont', 'Bertrand', 'Lambert', 'Rousseau', 'Girard', 'Roux', 'Vincent', 'Lefevre', 'Boyer', 'Lopez', 'Bonnet',
'Andre', 'Francois', 'Mercier', 'Muller', 'Guerin', 'Legrand', 'Sanchez', 'Garnier', 'Chevalier', 'Faure',
'Perez', 'Clement', 'Fernandez', 'Blanc', 'Robin', 'Morin', 'Gauthier', 'Pereira', 'Perrin', 'Roussel', 'Henry',
'Duval', 'Gautier', 'Nicolas', 'Masson', 'Marie', 'Noel', 'Ferreira', 'Lemaire', 'Mathieu', 'Riviere', 'Denis',
'Marchand', 'Rodriguez', 'Dumont', 'Payet', 'Lucas', 'Dufour', 'Dos Santos', 'Joly', 'Blanchard', 'Meunier',
'Rodrigues', 'Caron', 'Gerard', 'Fernandes', 'Brunet', 'Meyer', 'Barbier', 'Leroux', 'Renard', 'Goncalves',
'Gaillard', 'Brun', 'Roy', 'Picard', 'Giraud', 'Roger', 'Schmitt', 'Colin', 'Arnaud', 'Vidal', 'Gonzalez',
'Lemoine', 'Roche', 'Aubert', 'Olivier', 'Leclercq', 'Pierre', 'Philippe', 'Bourgeois', 'Renaud', 'Martins',
'Leclerc', 'Guillaume', 'Lacroix', 'Lecomte', 'Benoit', 'Fabre', 'Carpentier', 'Vasseur', 'Louis', 'Hubert',
'Jean', 'Dumas', 'Rolland', 'Grondin', 'Rey', 'Huet', 'Gomez', 'Dupuis', 'Guillot', 'Berger', 'Moulin',
'Hoarau', 'Menard', 'Deschamps', 'Fleury', 'Adam', 'Boucher', 'Poirier', 'Bertin', 'Charles', 'Aubry',
'Da Costa', 'Royer', 'Dupuy', 'Maillard', 'Paris', 'Baron', 'Lopes', 'Guyot', 'Carre', 'Jacquet', 'Renault',
'Herve', 'Charpentier', 'Klein', 'Cousin', 'Collet', 'Leger', 'Ribeiro', 'Hernandez', 'Bailly', 'Schneider',
'Le Gall', 'Ruiz', 'Langlois', 'Bouvier', 'Gomes', 'Prevost', 'Julien', 'Lebrun', 'Breton', 'Germain', 'Millet',
'Boulanger', 'Remy', 'Le Roux', 'Daniel', 'Marques', 'Maillot', 'Leblanc', 'Le Goff', 'Barre', 'Perrot',
'Leveque', 'Marty', 'Benard', 'Monnier', 'Hamon', 'Pelletier', 'Alves', 'Etienne', 'Marchal', 'Poulain',
'Tessier', 'Lemaitre', 'Guichard', 'Besson', 'Mallet', 'Hoareau', 'Gillet', 'Weber', 'Jacob', 'Collin',
'Chevallier', 'Perrier', 'Michaud', 'Carlier', 'Delaunay', 'Chauvin', 'Alexandre', 'Marechal', 'Antoine',
'Lebon', 'Cordier', 'Lejeune', 'Bouchet', 'Pasquier', 'Legros', 'Delattre', 'Humbert', 'De Oliveira', 'Briand',
'Lamy', 'Launay', 'Gilbert', 'Perret', 'Lesage', 'Gay', 'Nguyen', 'Navarro', 'Besnard', 'Pichon', 'Hebert',
'Cohen', 'Pons', 'Lebreton', 'Sauvage', 'De Sousa', 'Pineau', 'Albert', 'Jacques', 'Pinto', 'Barthelemy',
'Turpin', 'Bigot', 'Lelievre', 'Georges', 'Reynaud', 'Ollivier', 'Martel', 'Voisin', 'Leduc', 'Guillet',
'Vallee', 'Coulon', 'Camus', 'Marin', 'Teixeira', 'Costa', 'Mahe', 'Didier', 'Charrier', 'Gaudin', 'Bodin',
'Guillou', 'Gregoire', 'Gros', 'Blanchet', 'Buisson', 'Blondel', 'Paul', 'Dijoux', 'Barbe', 'Hardy', 'Laine',
'Evrard', 'Laporte', 'Rossi', 'Joubert', 'Regnier', 'Tanguy', 'Gimenez', 'Allard', 'Devaux', 'Morvan', 'Levy',
'Dias', 'Courtois', 'Lenoir', 'Berthelot', 'Pascal', 'Vaillant', 'Guilbert', 'Thibault', 'Moreno', 'Duhamel',
'Colas', 'Masse', 'Baudry', 'Bruneau', 'Verdier', 'Delorme', 'Blin', 'Guillon', 'Mary', 'Coste', 'Pruvost',
'Maury', 'Allain', 'Valentin', 'Godard', 'Joseph', 'Brunel', 'Marion', 'Texier', 'Seguin', 'Raynaud', 'Bourdon',
'Raymond', 'Bonneau', 'Chauvet', 'Maurice', 'Legendre', 'Loiseau', 'Ferrand', 'Toussaint', 'Techer', 'Lombard',
'Lefort', 'Couturier', 'Bousquet', 'Diaz', 'Riou', 'Clerc', 'Weiss', 'Imbert', 'Jourdan', 'Delahaye', 'Gilles',
'Guibert', 'Begue', 'Descamps', 'Delmas', 'Peltier', 'Dupre', 'Chartier', 'Martineau', 'Laroche', 'Leconte',
'Maillet', 'Parent', 'Labbe', 'Potier', 'Bazin', 'Normand', 'Pottier', 'Torres', 'Lagarde', 'Blot', 'Jacquot',
'Lemonnier', 'Grenier', 'Rocher', 'Bonnin', 'Boutin', 'Fischer', 'Munoz', 'Neveu', 'Lacombe', 'Mendes',
'Delannoy', 'Auger', 'Wagner', 'Fouquet', 'Mace', 'Ramos', 'Pages', 'Petitjean', 'Chauveau', 'Foucher', 'Peron',
'Guyon', 'Gallet', 'Rousset', 'Traore', 'Bernier', 'Vallet', 'Letellier', 'Bouvet', 'Hamel', 'Chretien',
'Faivre', 'Boulay', 'Thierry', 'Samson', 'Ledoux', 'Salmon', 'Gosselin', 'Lecoq', 'Pires', 'Leleu', 'Becker',
'Diallo', 'Merle', 'Valette'
)
prefixes = ('de', 'de la', 'Le', 'du')
@classmethod
def prefix(cls):
return cls.random_element(cls.prefixes)

View file

@ -0,0 +1,39 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+33 (0)1 ## ## ## ##',
'+33 (0)1 ## ## ## ##',
'+33 (0)2 ## ## ## ##',
'+33 (0)3 ## ## ## ##',
'+33 (0)4 ## ## ## ##',
'+33 (0)5 ## ## ## ##',
'+33 (0)6 ## ## ## ##',
'+33 (0)8 ## ## ## ##',
'+33 1 ## ## ## ##',
'+33 1 ## ## ## ##',
'+33 2 ## ## ## ##',
'+33 3 ## ## ## ##',
'+33 4 ## ## ## ##',
'+33 5 ## ## ## ##',
'+33 6 ## ## ## ##',
'+33 8 ## ## ## ##',
'01########',
'01########',
'02########',
'03########',
'04########',
'05########',
'06########',
'08########',
'01 ## ## ## ##',
'01 ## ## ## ##',
'02 ## ## ## ##',
'03 ## ## ## ##',
'04 ## ## ## ##',
'05 ## ## ## ##',
'06 ## ## ## ##',
'08 ## ## ## ##',
)

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,55 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_formats = ('{{city_name}}', )
street_name_formats = (
'{{first_name}} {{last_name}}',
'{{last_name}}'
)
street_address_formats = ('{{building_number}} {{street_name}}', )
address_formats = ('{{street_address}}\n{{city}} {{postcode}}','{{street_address}}\n{{city}}-{{postcode}}' )
building_number_formats = ('####','###', '##', '#', '#/#','##/##','##/###','##/####')
postcode_formats = ('######', )
cities = (
'आदिलाबाद','अगरतला','अहमदाबाद', 'अहमदनगर' , 'अजमेर' ,'अम्बाजी' ,'अमरपुर' ,'इलाहाबाद' ,'अकोला' 'अखनूर',
'अन्तर्गत' , 'अलांग' ,'अलीगढ' ,'दादरा और नागर हवेली', 'अमरावती' , 'अमरोहा', 'अनन्तपुर', 'करना', 'जिससेबेलारी',
'अनंतनाग','भागलपुर', 'पेपरबोर्डस','त्रिबेनी', 'टिसूज', 'भद्रक', 'बचेली' ,'बहादुरगंज' ,'बहादुरगढ' ,'चिरमिरी', 'चिराला', 'चित्रदुर्ग' ,
'चित्तूर' ,'चित्रकूट' ,'देवगढ़' , 'दालखोला' , 'देवास', 'चंडीगढ', 'फादर', 'चिन्नफ', 'चिपलुन', 'चक्रधरपुर', 'चंबा', 'फतहपुर', 'फतेहपुर',
'फतेहगढ', 'फतहपुर' ,'फतहपुर' ,'चित्तूर' ,'चित्रकूट', 'सभापतिने', 'देवगढ़', 'द्वारारस्वीकृति', 'दालखोला',
'धर्मापुरी', 'पाकाला', 'धारवाड' ,'असम', 'देहरा' , 'रानीताल' ,'खडगपुर', 'मोकामा', 'मोकोकचुंग' ,'जिलोंपर' ,'विस्तारण' ,'मोतिहारी'
)
states = (
'अरूणाचल प्रदेश', 'बिहार', 'असम' ,'आंध्र प्रदेश' ,'छत्तीसगढ','हरियाणा' ,'गुजरात' ,'हिमाचल प्रदेश', 'गोवा', 'मध्य प्रदेश', 'महाराष्ट्र', 'कश्मीर',
'केरल' , 'कर्नाटक', 'मणिपुर' ,'मिजोरम', 'मेघालय', 'सिबक्कम' ,'राजस्थान','पंजाब', 'उडीसा' ,'उत्तरांचल' ,'उत्तर प्रदेश', 'तमिलनाडु', 'त्रिपुरा',
'पश्चिमी बंगाल', 'अंडमान और निकोबार', 'द्वीप समूह' , 'दमन और दीव', 'दादरा और नागर हवेली', 'दिल्ली','पांडिचेरी', 'लक्षद्वीप'
)
countries = (
'आर्मेनिया', 'यू.के.','फ्रांस', 'अजेपटीना', 'ब्राजील' ,'ईरान', 'यूनान', 'स्पेन' ,'हमारे' , 'जॉजिऩया', 'लेबनान' , 'सायप्रस', 'सीरिया', 'कनाडा', 'रूस' ,
'संयुक्त राज्य अमरीका' ,'नेदर्लान्ड', 'फ्रांस','ऑस्ट्रेलिया', 'एंटीगुआ', 'बार्बुडा' ,'अर्जेंटीना', 'आर्मेनिया' ,'ऑस्ट्रिया', 'अज़रबाइजान','बारबाडोस', 'बेलारूस', 'बेल्जियम',
'बेलीज़' ,'बेनिन', 'बहामास' ,'बहरीन', 'बांग्लादेश', 'भूटान', 'बोलिविया', 'बोस्निया' ,'हर्जेगोविना', 'बोत्सवाना' , 'ब्राजील' ,'ब्रुनेई' ,'बुल्गारिया', 'बुर्किना', 'फ़ासो',
'बर्मा', 'बुरूंडी','डोमिनिकन रिपब्लिक','गिनिया', 'टीमोर','फ़िनलैंड','गेबोन', 'गाम्बिया', 'जर्मनी', 'जार्जिया ग्रेनेडा','घाना' ,'यूनान' ,'ग्रेट ब्रिटेन', 'हंगरी',
'भारत', 'इराक', 'आयरलैंड', 'इंडोनेशिया' , 'इसराइल' , 'आइलैंड', 'ईरान' ,'इटली','जमैका' ,'जॉर्डन','जापान','क़जाख़स्तान', 'केन्या', 'किरिबाती', 'दक्षिण कोरिया', 'लातविया',
'लाओस' , 'उत्तर कोरिया', 'दक्षिण कोसोवो', 'कुवैत', 'लेबनान', 'लिचटीनस्टीन', 'लिथुआनिया' ,'लक्समबर्ग', 'लीबिया' ,'लाइबेरिया', 'लेसोथो',
'नेपाल' ,'न्यूजीलैंड', 'निकारागुआ', 'नाइजर', 'नाउरू','लुसिया', 'रूस', 'रोमानिया', 'अरब', 'अमीरात', 'यूएई' ,'युगांडा', 'यूक्रेन', 'उरूग्वे',
'उज़बेकिस्तान', 'यूनाइटेड किंगडम', 'वानुआतू', 'वेटिकन सिटी' , 'वेनेजुएला', 'पश्चिमी सहारा' , 'वियतनाम', 'यमन', 'ज़ायर' , 'जाबम्बया', 'जिम्बाब्वे'
)
@classmethod
def city_name(cls):
return cls.random_element(cls.cities)
@classmethod
def state(cls):
return cls.random_element(cls.states)

View file

@ -0,0 +1,29 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{last_name}}, {{first_name}}'
)
first_names = (
'अभय','आदित्य','अजित','अखिल','अमर','आनन्द','अंकुर','अनुपम','अशोक','चन्दना','गणेश','गौतम','गोविंदा','हनुमान्','इन्द्रजित','ईश',
'जगन्नाथ','जगदीश','जयदेव','जितेन्द्र','कैलाश','कालिदास','कम्बोज','किरण','ललित','मानदीप','मोहन','मुकेश','नरेन्द्र','नारायण','निखिल','प्रभाकर',
'प्रबोध','प्रदीप','प्रणव','प्रेम','राजीव','रतन','रोहन','विष्णु','विक्रम','विजया','विजय','विवेक','यश',
'अभिलाषा','अदिती','ऐश्वर्या','अमिता','अंकिता','आशा','अवनी','भरत','चेतना','दिव्या','एषा','इन्दु','जया','जयन्ती','ज्योत्सना','कान्ती','कुमारी',
'लता','लीला','मालती','मोहिनी','निशा','पूर्णिमा','पुष्पा','रचना','रजनी','रश्मी','रिया','सरला','सरस्वती','सावित्री','शक्ति','शान्ता','शर्मिला','श्यामा',
'सुलभा','तृष्णा','विद्या'
)
last_names = (
'पाटिल','शर्मा','आचार्य','अग्रवाल','सिंह','अहलुवालिया','आहूजा','पुष्कर','शिरोळे','गायकवाड','गावित','शिरोळे','बापट','अरोड़ा','बाबू',
'बादामी','जमानत','बजाज','बक्षी','बालकृष्णन','बालासुब्रमणियम','बसु','भंडारी','चौधरी','चौहान','छाबरा','दादा','डानी','डार', 'दारा', 'दत्ता',
'दवे', 'दयाल', 'धालीवाल','दीक्षित', 'दोषी', 'दुआ', 'दूबे' ,'ढींगरा','वाल', 'साया', 'बना', 'ड़ाल' ,'गर्ग' ,'गणेश','गांगुली','गुप्ता',
'हेगडे','जोशी','काले','कृष्णा', 'कृष्णमूर्ति', 'कृष्णन' ,'कुलकर्णी', 'कुमार', 'कुण्डा', 'नाम', 'रामलला', 'लता', 'लोदी', 'लोकनाट्यों',
'विकावि', 'लाल', 'लाला' ,'वफादार', 'लूथरा' ,'मदन', 'मगर' ,'भारत', 'महावीर' , 'महादेव', 'महाजन', 'महाराज', 'मजूमदार', 'मल्लिक' ,'सेनाधीश',
'माने' ,'मंगल', 'मंगत', 'रामशर्मा' ,'मणि', 'मान', 'श्रीविमल', 'कुमार', 'मंडल'
)

View file

@ -0,0 +1,12 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+91 ##########',
'+91 ### #######',
'0##-########',
'0##########',
'0#### ######',
)

View file

@ -0,0 +1,140 @@
# coding=utf-8
from __future__ import unicode_literals
from . import BaseProvider
import random
from faker.providers.lorem import Provider as Lorem
from faker.utils.decorators import slugify, slugify_domain
class Provider(BaseProvider):
safe_email_tlds = ('org', 'com', 'net')
free_email_domains = ('gmail.com', 'yahoo.com', 'hotmail.com')
tlds = ('com', 'com', 'com', 'com', 'com', 'com', 'biz', 'info', 'net', 'org')
uri_pages = (
'index', 'home', 'search', 'main', 'post', 'homepage', 'category', 'register', 'login', 'faq', 'about', 'terms',
'privacy', 'author')
uri_paths = (
'app', 'main', 'wp-content', 'search', 'category', 'tag', 'categories', 'tags', 'blog', 'posts', 'list', 'explore')
uri_extensions = ('.html', '.html', '.html', '.htm', '.htm', '.php', '.php', '.jsp', '.asp')
user_name_formats = (
'{{last_name}}.{{first_name}}',
'{{first_name}}.{{last_name}}',
'{{first_name}}##',
'?{{last_name}}',
)
email_formats = (
'{{user_name}}@{{domain_name}}',
'{{user_name}}@{{free_email_domain}}',
)
url_formats = (
'http://www.{{domain_name}}/',
'http://{{domain_name}}/',
)
uri_formats = (
'{{url}}',
'{{url}}{{uri_page}}/',
'{{url}}{{uri_page}}{{uri_extension}}',
'{{url}}{{uri_path}}/{{uri_page}}/',
'{{url}}{{uri_path}}/{{uri_page}}{{uri_extension}}',
)
image_placeholder_services = (
'http://placekitten.com/{width}/{height}',
'http://placehold.it/{width}x{height}',
'http://www.lorempixum.com/{width}/{height}',
'http://dummyimage.com/{width}x{height}',
)
def email(self):
pattern = self.random_element(self.email_formats)
return "".join(self.generator.parse(pattern).split(" "))
def safe_email(self):
return self.user_name() + '@example.' + self.random_element(self.safe_email_tlds)
def free_email(self):
return self.user_name() + '@' + self.free_email_domain()
def company_email(self):
return self.user_name() + '@' + self.domain_name()
@classmethod
def free_email_domain(cls):
return cls.random_element(cls.free_email_domains)
@slugify_domain
def user_name(self):
pattern = self.random_element(self.user_name_formats)
return self.bothify(self.generator.parse(pattern))
def domain_name(self):
return self.domain_word() + '.' + self.tld()
@slugify
def domain_word(self):
company = self.generator.format('company')
company_elements = company.split(' ')
company = company_elements.pop(0)
return company
def tld(self):
return self.random_element(self.tlds)
def url(self):
pattern = self.random_element(self.url_formats)
return self.generator.parse(pattern)
def ipv4(self):
"""
Convert 32-bit integer to dotted IPv4 address.
"""
return ".".join(map(lambda n: str(random.randint(-2147483648, 2147483647) >> n & 0xFF), [24, 16, 8, 0]))
def ipv6(self):
res = [hex(random.randint(0, 65535))[2:].zfill(4) for i in range(0, 8)]
return ":".join(res)
def mac_address(self):
mac = [random.randint(0x00, 0xff) for i in range(0, 6)]
return ":".join(map(lambda x: "%02x" % x, mac))
@classmethod
def uri_page(cls):
return cls.random_element(cls.uri_pages)
@classmethod
def uri_path(cls, deep=None):
deep = deep if deep else random.randint(1, 3)
return "/".join([cls.random_element(cls.uri_paths) for _ in range(0, deep)])
@classmethod
def uri_extension(cls):
return cls.random_element(cls.uri_extensions)
def uri(self):
pattern = self.random_element(self.uri_formats)
return self.generator.parse(pattern)
@classmethod
@slugify
def slug(cls, value=None):
"""
Django algorithm
"""
if value is None:
value = Lorem.text(20)
return value
@classmethod
def image_url(cls, width=None, height=None):
"""
Returns URL to placeholder image
Example: http://placehold.it/640x480
"""
width_ = width or cls.random_int(max=1024)
height_ = height or cls.random_int(max=1024)
placeholder_url = cls.random_element(cls.image_placeholder_services)
return placeholder_url.format(width=width_, height=height_)

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,121 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_prefixes = ('San', 'Borgo', 'Sesto', 'Quarto', 'Settimo')
city_suffixes = (
'a mare', 'lido', 'ligure', 'del friuli', 'salentino', 'calabro', 'veneto', 'nell\'emilia', 'umbro', 'laziale',
'terme', 'sardo')
building_number_formats = ('###', '##', '#')
street_suffixes = (
'Piazza', 'Strada', 'Via', 'Borgo', 'Contrada', 'Rotonda', 'Incrocio', 'Viale', 'Stretto', 'Vicolo', 'Canale')
postcode_formats = ('#####',)
states = ('Agrigento', 'Alessandria', 'Ancona', 'Aosta', 'Arezzo', 'Ascoli Piceno', 'Asti', 'Avellino', 'Bari',
'Barletta-Andria-Trani', 'Belluno', 'Benevento', 'Bergamo', 'Biella', 'Bologna', 'Bolzano', 'Brescia',
'Brindisi', 'Cagliari', 'Caltanissetta', 'Campobasso', 'Carbonia-Iglesias', 'Caserta', 'Catania',
'Catanzaro', 'Chieti', 'Como', 'Cosenza', 'Cremona', 'Crotone', 'Cuneo', 'Enna', 'Fermo', 'Ferrara',
'Firenze', 'Foggia', 'Forlì-Cesena', 'Frosinone', 'Genova', 'Gorizia', 'Grosseto', 'Imperia', 'Isernia',
'La Spezia', 'L\'Aquila', 'Latina', 'Lecce', 'Lecco', 'Livorno', 'Lodi', 'Lucca', 'Macerata', 'Mantova',
'Massa-Carrara', 'Matera', 'Messina', 'Milano', 'Modena', 'Monza e della Brianza', 'Napoli', 'Novara',
'Nuoro', 'Olbia-Tempio', 'Oristano', 'Padova', 'Palermo', 'Parma', 'Pavia', 'Perugia', 'Pesaro e Urbino',
'Pescara', 'Piacenza', 'Pisa', 'Pistoia', 'Pordenone', 'Potenza', 'Prato', 'Ragusa', 'Ravenna',
'Reggio Calabria', 'Reggio Emilia', 'Rieti', 'Rimini', 'Roma', 'Rovigo', 'Salerno', 'Medio Campidano',
'Sassari', 'Savona', 'Siena', 'Siracusa', 'Sondrio', 'Taranto', 'Teramo', 'Terni', 'Torino', 'Ogliastra',
'Trapani', 'Trento', 'Treviso', 'Trieste', 'Udine', 'Varese', 'Venezia', 'Verbano-Cusio-Ossola',
'Vercelli', 'Verona', 'Vibo Valentia', 'Vicenza', 'Viterbo' )
states_abbr = (
'AG', 'AL', 'AN', 'AO', 'AR', 'AP', 'AT', 'AV', 'BA', 'BT', 'BL', 'BN', 'BG', 'BI', 'BO', 'BZ', 'BS', 'BR',
'CA',
'CL', 'CB', 'CI', 'CE', 'CT', 'CZ', 'CH', 'CO', 'CS', 'CR', 'KR', 'CN', 'EN', 'FM', 'FE', 'FI', 'FG', 'FC',
'FR',
'GE', 'GO', 'GR', 'IM', 'IS', 'SP', 'AQ', 'LT', 'LE', 'LC', 'LI', 'LO', 'LU', 'MC', 'MN', 'MS', 'MT', 'ME',
'MI',
'MO', 'MB', 'NA', 'NO', 'NU', 'OT', 'OR', 'PD', 'PA', 'PR', 'PV', 'PG', 'PU', 'PE', 'PC', 'PI', 'PT', 'PN',
'PZ',
'PO', 'RG', 'RA', 'RC', 'RE', 'RI', 'RN', 'RM', 'RO', 'SA', 'VS', 'SS', 'SV', 'SI', 'SR', 'SO', 'TA', 'TE',
'TR',
'TO', 'OG', 'TP', 'TN', 'TV', 'TS', 'UD', 'VA', 'VE', 'VB', 'VC', 'VR', 'VV', 'VI', 'VT' )
countries = (
'Afghanistan', 'Albania', 'Algeria', 'American Samoa', 'Andorra', 'Angola', 'Anguilla',
'Antartide (territori a sud del 60° parallelo)', 'Antigua e Barbuda', 'Argentina', 'Armenia', 'Aruba',
'Australia', 'Austria', 'Azerbaijan',
'Bahamas', 'Bahrain', 'Bangladesh', 'Barbados', 'Bielorussia', 'Belgio', 'Belize', 'Benin', 'Bermuda', 'Bhutan',
'Bolivia', 'Bosnia e Herzegovina', 'Botswana', 'Bouvet Island (Bouvetoya)', 'Brasile',
'Territorio dell\'arcipelago indiano', 'Isole Vergini Britanniche', 'Brunei Darussalam', 'Bulgaria',
'Burkina Faso', 'Burundi',
'Cambogia', 'Cameroon', 'Canada', 'Capo Verde', 'Isole Cayman', 'Repubblica Centrale Africana', 'Chad', 'Cile',
'Cina', 'Isola di Pasqua', 'Isola di Cocos (Keeling)', 'Colombia', 'Comoros', 'Congo', 'Isole Cook',
'Costa Rica', 'Costa d\'Avorio', 'Croazia', 'Cuba', 'Cipro', 'Repubblica Ceca',
'Danimarca', 'Gibuti', 'Repubblica Dominicana',
'Equador', 'Egitto', 'El Salvador', 'Guinea Equatoriale', 'Eritrea', 'Estonia', 'Etiopia',
'Isole Faroe', 'Isole Falkland (Malvinas)', 'Fiji', 'Finlandia', 'Francia', 'Guyana Francese',
'Polinesia Francese', 'Territori Francesi del sud',
'Gabon', 'Gambia', 'Georgia', 'Germania', 'Ghana', 'Gibilterra', 'Grecia', 'Groenlandia', 'Grenada',
'Guadalupa', 'Guam', 'Guatemala', 'Guernsey', 'Guinea', 'Guinea-Bissau', 'Guyana',
'Haiti', 'Heard Island and McDonald Islands', 'Città del Vaticano', 'Honduras', 'Hong Kong', 'Ungheria',
'Islanda', 'India', 'Indonesia', 'Iran', 'Iraq', 'Irlanda', 'Isola di Man', 'Israele', 'Italia',
'Giamaica', 'Giappone', 'Jersey', 'Giordania',
'Kazakhstan', 'Kenya', 'Kiribati', 'Korea', 'Kuwait', 'Republicca Kirgiza',
'Repubblica del Laos', 'Latvia', 'Libano', 'Lesotho', 'Liberia', 'Libyan Arab Jamahiriya', 'Liechtenstein',
'Lituania', 'Lussemburgo',
'Macao', 'Macedonia', 'Madagascar', 'Malawi', 'Malesia', 'Maldive', 'Mali', 'Malta', 'Isole Marshall',
'Martinica', 'Mauritania', 'Mauritius', 'Mayotte', 'Messico', 'Micronesia', 'Moldova', 'Principato di Monaco',
'Mongolia', 'Montenegro', 'Montserrat', 'Marocco', 'Mozambico', 'Myanmar',
'Namibia', 'Nauru', 'Nepal', 'Antille Olandesi', 'Olanda', 'Nuova Caledonia', 'Nuova Zelanda', 'Nicaragua',
'Niger', 'Nigeria', 'Niue', 'Isole Norfolk', 'Northern Mariana Islands', 'Norvegia',
'Oman',
'Pakistan', 'Palau', 'Palestina', 'Panama', 'Papua Nuova Guinea', 'Paraguay', 'Peru', 'Filippine',
'Pitcairn Islands', 'Polonia', 'Portogallo', 'Porto Rico',
'Qatar',
'Reunion', 'Romania', 'Russia', 'Rwanda',
'San Bartolomeo', 'Sant\'Elena', 'Saint Kitts and Nevis', 'Saint Lucia', 'Saint Martin',
'Saint Pierre and Miquelon', 'Saint Vincent and the Grenadines', 'Samoa', 'San Marino', 'Sao Tome and Principe',
'Arabia Saudita', 'Senegal', 'Serbia', 'Seychelles', 'Sierra Leone', 'Singapore', 'Slovenia', 'Isole Solomon',
'Somalia', 'Sud Africa', 'Georgia del sud e South Sandwich Islands', 'Spagna', 'Sri Lanka', 'Sudan', 'Suriname',
'Svalbard & Jan Mayen Islands', 'Swaziland', 'Svezia', 'Svizzera', 'Siria',
'Taiwan', 'Tajikistan', 'Tanzania', 'Tailandia', 'Timor-Leste', 'Togo', 'Tokelau', 'Tonga', 'Trinidad e Tobago',
'Tunisia', 'Turchia', 'Turkmenistan', 'Isole di Turks and Caicos', 'Tuvalu',
'Uganda', 'Ucraina', 'Emirati Arabi Uniti', 'Regno Unito', 'Stati Uniti d\'America',
'United States Minor Outlying Islands', 'Isole Vergini Statunitensi', 'Uruguay', 'Uzbekistan',
'Vanuatu', 'Venezuela', 'Vietnam',
'Wallis and Futuna', 'Western Sahara',
'Yemen',
'Zambia', 'Zimbabwe'
)
city_formats = (
'{{city_prefix}} {{first_name}} {{city_suffix}}',
'{{city_prefix}} {{first_name}}',
'{{first_name}} {{city_suffix}}',
'{{last_name}} {{city_suffix}}',
)
street_name_formats = (
'{{street_suffix}} {{first_name}}',
'{{street_suffix}} {{last_name}}'
)
street_address_formats = (
'{{street_name}} {{building_number}}',
'{{street_name}} {{building_number}} {{secondary_address}}',
)
address_formats = (
"{{street_address}}\n{{city}}, {{postcode}} {{state}} ({{state_abbr}})",
)
secondary_address_formats = ('Appartamento ##', 'Piano #')
@classmethod
def city_prefix(cls):
return cls.random_element(cls.city_prefixes)
@classmethod
def secondary_address(cls):
return cls.numerify(cls.random_element(cls.secondary_address_formats))
@classmethod
def state(cls):
return cls.random_element(cls.states)
@classmethod
def state_abbr(cls):
return cls.random_element(cls.states_abbr)

View file

@ -0,0 +1,96 @@
# coding=utf-8
from __future__ import unicode_literals
from ..company import Provider as CompanyProvider
class Provider(CompanyProvider):
formats = (
'{{last_name}} {{company_suffix}}',
'{{last_name}}-{{last_name}} {{company_suffix}}',
'{{last_name}}, {{last_name}} e {{last_name}} {{company_suffix}}'
)
catch_phrase_words = (
(
'Abilità', 'Access', 'Adattatore', 'Algoritmo', 'Alleanza', 'Analizzatore', 'Applicazione', 'Approccio',
'Architettura', 'Archivio', 'Intelligenza artificiale', 'Array', 'Attitudine', 'Benchmark', 'Capacità',
'Sfida', 'Circuito', 'Collaborazione', 'Complessità', 'Concetto', 'Conglomerato', 'Contingenza', 'Core',
'Database', 'Data-warehouse', 'Definizione', 'Emulazione', 'Codifica', 'Criptazione', 'Firmware',
'Flessibilità', 'Previsione', 'Frame', 'framework', 'Funzione', 'Funzionalità', 'Interfaccia grafica',
'Hardware', 'Help-desk', 'Gerarchia', 'Hub', 'Implementazione', 'Infrastruttura', 'Iniziativa',
'Installazione', 'Set di istruzioni', 'Interfaccia', 'Soluzione internet', 'Intranet', 'Conoscenza base',
'Matrici', 'Matrice', 'Metodologia', 'Middleware', 'Migrazione', 'Modello', 'Moderazione', 'Monitoraggio',
'Moratoria', 'Rete', 'Architettura aperta', 'Sistema aperto', 'Orchestrazione', 'Paradigma', 'Parallelismo',
'Policy', 'Portale', 'Struttura di prezzo', 'Prodotto', 'Produttività', 'Progetto', 'Proiezione',
'Protocollo', 'Servizio clienti', 'Software', 'Soluzione', 'Standardizzazione', 'Strategia', 'Struttura',
'Successo', 'Sovrastruttura', 'Supporto', 'Sinergia', 'Task-force', 'Finestra temporale', 'Strumenti',
'Utilizzazione', 'Sito web', 'Forza lavoro'
),
(
'adattiva', 'avanzata', 'migliorata', 'assimilata', 'automatizzata', 'bilanciata', 'centralizzata',
'compatibile', 'configurabile', 'cross-platform', 'decentralizzata', 'digitalizzata', 'distribuita',
'piccola', 'ergonomica', 'esclusiva', 'espansa', 'estesa', 'configurabile', 'fondamentale', 'orizzontale',
'implementata', 'innovativa', 'integrata', 'intuitiva', 'inversa', 'gestita', 'obbligatoria', 'monitorata',
'multi-canale', 'multi-laterale', 'open-source', 'operativa', 'ottimizzata', 'organica', 'persistente',
'polarizzata', 'proattiva', 'programmabile', 'progressiva', 'reattiva', 'riallineata', 'ricontestualizzata',
'ridotta', 'robusta', 'sicura', 'condivisibile', 'stand-alone', 'switchabile', 'sincronizzata', 'sinergica',
'totale', 'universale', 'user-friendly', 'versatile', 'virtuale', 'visionaria'
),
(
'24 ore', '24/7', 'terza generazione', 'quarta generazione', 'quinta generazione', 'sesta generazione',
'asimmetrica', 'asincrona', 'background', 'bi-direzionale', 'biforcata', 'bottom-line', 'coerente',
'coesiva', 'composita', 'sensibile al contesto', 'basta sul contesto', 'basata sul contenuto', 'dedicata',
'didattica', 'direzionale', 'discreta', 'dinamica', 'eco-centrica', 'esecutiva', 'esplicita', 'full-range',
'globale', 'euristica', 'alto livello', 'olistica', 'omogenea', 'ibrida', 'impattante', 'incrementale',
'intangibile', 'interattiva', 'intermediaria', 'locale', 'logistica', 'massimizzata', 'metodica',
'mission-critical', 'mobile', 'modulare', 'motivazionale', 'multimedia', 'multi-tasking', 'nazionale',
'neutrale', 'nextgeneration', 'non-volatile', 'object-oriented', 'ottima', 'ottimizzante', 'radicale',
'real-time', 'reciproca', 'regionale', 'responsiva', 'scalabile', 'secondaria', 'stabile', 'statica',
'sistematica', 'sistemica', 'tangibile', 'terziaria', 'uniforme', 'valore aggiunto'
)
)
bsWords = (
(
'partnerships', 'comunità', 'ROI', 'soluzioni', 'e-services', 'nicchie', 'tecnologie', 'contenuti',
'supply-chains', 'convergenze', 'relazioni', 'architetture', 'interfacce', 'mercati', 'e-commerce',
'sistemi', 'modelli', 'schemi', 'reti', 'applicazioni', 'metriche', 'e-business', 'funzionalità',
'esperienze', 'webservices', 'metodologie'
),
(
'implementate', 'utilizzo', 'integrate', 'ottimali', 'evolutive', 'abilitate', 'reinventate', 'aggregate',
'migliorate', 'incentivate', 'monetizzate', 'sinergizzate', 'strategiche', 'deploy', 'marchi',
'accrescitive', 'target', 'sintetizzate', 'spedizioni', 'massimizzate', 'innovazione', 'guida',
'estensioni', 'generate', 'exploit', 'transizionali', 'matrici', 'ricontestualizzate'
),
(
'valore aggiunto', 'verticalizzate', 'proattive', 'forti', 'rivoluzionari', 'scalabili', 'innovativi',
'intuitivi', 'strategici', 'e-business', 'mission-critical', '24/7', 'globali', 'B2B', 'B2C', 'granulari',
'virtuali', 'virali', 'dinamiche', 'magnetiche', 'web', 'interattive', 'sexy', 'back-end', 'real-time',
'efficienti', 'front-end', 'distributivi', 'estensibili', 'mondiali', 'open-source', 'cross-platform',
'sinergiche', 'out-of-the-box', 'enterprise', 'integrate', 'di impatto', 'wireless', 'trasparenti',
'next-generation', 'cutting-edge', 'visionari', 'plug-and-play', 'collaborative', 'olistiche', 'ricche'
)
)
company_suffixes = ('SPA', 'e figli', 'Group', 's.r.l.')
def catch_phrase(self):
"""
:example 'Robust full-range hub'
"""
result = []
for word_list in self.catch_phrase_words:
result.append(self.random_element(word_list))
return " ".join(result)
def bs(self):
"""
:example 'integrate extensible convergence'
"""
result = []
for word_list in self.bsWords:
result.append(self.random_element(word_list))
return " ".join(result)

View file

@ -0,0 +1,101 @@
# coding=utf-8
from __future__ import unicode_literals
from ..person import Provider as PersonProvider
class Provider(PersonProvider):
formats = (
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{prefix}} {{first_name}} {{last_name}}',
'{{first_name}} {{last_name}}',
'{{prefix}} {{first_name}} {{last_name}}'
)
first_names = (
'Aaron', 'Akira', 'Alberto', 'Alessandro', 'Alighieri', 'Amedeo', 'Amos', 'Anselmo', 'Antonino', 'Arcibaldo',
'Armando', 'Artes',
'Audenico', 'Ausonio', 'Bacchisio', 'Battista', 'Bernardo', 'Boris', 'Caio', 'Carlo', 'Cecco', 'Cirino',
'Cleros', 'Costantino',
'Damiano', 'Danny', 'Davide', 'Demian', 'Dimitri', 'Domingo', 'Dylan', 'Edilio', 'Egidio', 'Elio', 'Emanuel',
'Enrico', 'Ercole',
'Ermes', 'Ethan', 'Eusebio', 'Evangelista', 'Fabiano', 'Ferdinando', 'Fiorentino', 'Flavio', 'Fulvio',
'Gabriele', 'Gastone', 'Germano',
'Giacinto', 'Gianantonio', 'Gianleonardo', 'Gianmarco', 'Gianriccardo', 'Gioacchino', 'Giordano', 'Giuliano',
'Graziano', 'Guido', 'Harry',
'Iacopo', 'Ilario', 'Ione', 'Italo', 'Jack', 'Jari', 'Joey', 'Joseph', 'Kai', 'Kociss', 'Laerte', 'Lauro',
'Leonardo', 'Liborio', 'Lorenzo',
'Ludovico', 'Maggiore', 'Manuele', 'Mariano', 'Marvin', 'Matteo', 'Mauro', 'Michael', 'Mirco', 'Modesto',
'Muzio', 'Nabil', 'Nathan',
'Nick', 'Noah', 'Odino', 'Olo', 'Oreste', 'Osea', 'Pablo', 'Patrizio', 'Piererminio', 'Pierfrancesco',
'Piersilvio', 'Priamo', 'Quarto',
'Quirino', 'Radames', 'Raniero', 'Renato', 'Rocco', 'Romeo', 'Rosalino', 'Rudy', 'Sabatino', 'Samuel', 'Santo',
'Sebastian', 'Serse',
'Silvano', 'Sirio', 'Tancredi', 'Terzo', 'Timoteo', 'Tolomeo', 'Trevis', 'Ubaldo', 'Ulrico', 'Valdo', 'Neri',
'Vinicio', 'Walter', 'Xavier', 'Yago', 'Zaccaria', 'Abramo', 'Adriano', 'Alan', 'Albino', 'Alessio',
'Alighiero',
'Amerigo', 'Anastasio', 'Antimo', 'Antonio', 'Arduino', 'Aroldo', 'Arturo', 'Augusto', 'Avide', 'Baldassarre',
'Bettino',
'Bortolo', 'Caligola', 'Carmelo', 'Celeste', 'Ciro', 'Costanzo', 'Dante', 'Danthon', 'Davis', 'Demis', 'Dindo',
'Domiziano', 'Edipo', 'Egisto', 'Eliziario', 'Emidio', 'Enzo', 'Eriberto', 'Erminio', 'Ettore', 'Eustachio',
'Fabio', 'Fernando',
'Fiorenzo', 'Folco', 'Furio', 'Gaetano', 'Gavino', 'Gerlando', 'Giacobbe', 'Giancarlo', 'Gianmaria', 'Giobbe',
'Giorgio', 'Giulio',
'Gregorio', 'Hector', 'Ian', 'Ippolito', 'Ivano', 'Jacopo', 'Jarno', 'Joannes', 'Joshua', 'Karim', 'Kris',
'Lamberto',
'Lazzaro', 'Leone', 'Lino', 'Loris', 'Luigi', 'Manfredi', 'Marco', 'Marino', 'Marzio', 'Mattia', 'Max',
'Michele', 'Mirko', 'Moreno',
'Nadir', 'Nazzareno', 'Nestore', 'Nico', 'Noel', 'Odone', 'Omar', 'Orfeo', 'Osvaldo', 'Pacifico', 'Pericle',
'Pietro', 'Primo',
'Quasimodo', 'Radio', 'Raoul', 'Renzo', 'Rodolfo', 'Romolo', 'Rosolino', 'Rufo', 'Sabino', 'Sandro', 'Sasha',
'Secondo', 'Sesto',
'Silverio', 'Siro', 'Tazio', 'Teseo', 'Timothy', 'Tommaso', 'Tristano', 'Umberto', 'Ariel', 'Artemide', 'Assia',
'Azue', 'Benedetta',
'Bibiana', 'Brigitta', 'Carmela', 'Cassiopea', 'Cesidia', 'Cira', 'Clea', 'Cleopatra', 'Clodovea', 'Concetta',
'Cosetta', 'Cristyn',
'Damiana', 'Danuta', 'Deborah', 'Demi', 'Diamante', 'Diana', 'Donatella', 'Doriana', 'Edvige', 'Elda', 'Elga',
'Elsa', 'Emilia', 'Enrica',
'Erminia', 'Eufemia', 'Evita', 'Fatima', 'Felicia', 'Filomena', 'Flaviana', 'Fortunata', 'Gelsomina',
'Genziana', 'Giacinta', 'Gilda',
'Giovanna', 'Giulietta', 'Grazia', 'Guendalina', 'Helga', 'Ileana', 'Ingrid', 'Irene', 'Isabel', 'Isira',
'Ivonne', 'Jelena', 'Jole',
'Claudia', 'Kayla', 'Kristel', 'Laura', 'Lucia', 'Lia', 'Lidia', 'Lisa', 'Loredana', 'Loretta', 'Luce',
'Lucrezia', 'Luna', 'Maika',
'Marcella', 'Maria', 'Mariagiulia', 'Marianita', 'Mariapia', 'Marieva', 'Marina', 'Maristella', 'Maruska',
'Matilde', 'Mecren',
'Mercedes', 'Mietta', 'Miriana', 'Miriam', 'Monia', 'Morgana', 'Naomi', 'Nayade', 'Nicoletta', 'Ninfa', 'Noemi',
'Nunzia', 'Olimpia',
'Oretta', 'Ortensia', 'Penelope', 'Piccarda', 'Prisca', 'Rebecca', 'Rita', 'Rosalba', 'Rosaria', 'Rosita',
'Ruth', 'Samira',
'Sarita', 'Selvaggia', 'Shaira', 'Sibilla', 'Soriana', 'Sue ellen', 'Thea', 'Tosca', 'Ursula', 'Vania', 'Vera',
'Vienna', 'Violante', 'Vitalba', 'Zelida'
)
last_names = (
'Rossi', 'Russo', 'Ferrari', 'Esposito', 'Bianchi', 'Romano', 'Colombo', 'Ricci', 'Marino', 'Greco', 'Bruno',
'Gallo', 'Conti',
'De luca', 'Mancini', 'Costa', 'Giordano', 'Rizzo', 'Lombardi', 'Moretti', 'Barbieri', 'Fontana', 'Santoro',
'Mariani',
'Rinaldi', 'Caruso', 'Ferrara', 'Galli', 'Martini', 'Leone', 'Longo', 'Gentile', 'Martinelli', 'Vitale',
'Lombardo', 'Serra',
'Coppola', 'De Santis', 'D\'angelo', 'Marchetti', 'Parisi', 'Villa', 'Conte', 'Ferraro', 'Ferri', 'Fabbri',
'Bianco',
'Marini', 'Grasso', 'Valentini', 'Messina', 'Sala', 'De Angelis', 'Gatti', 'Pellegrini', 'Palumbo', 'Sanna',
'Farina',
'Rizzi', 'Monti', 'Cattaneo', 'Morelli', 'Amato', 'Silvestri', 'Mazza', 'Testa', 'Grassi', 'Pellegrino',
'Carbone',
'Giuliani', 'Benedetti', 'Barone', 'Rossetti', 'Caputo', 'Montanari', 'Guerra', 'Palmieri', 'Bernardi',
'Martino', 'Fiore',
'De rosa', 'Ferretti', 'Bellini', 'Basile', 'Riva', 'Donati', 'Piras', 'Vitali', 'Battaglia', 'Sartori', 'Neri',
'Costantini',
'Milani', 'Pagano', 'Ruggiero', 'Sorrentino', 'D\'amico', 'Orlando', 'Damico', 'Negri'
)
prefixes = ('Sig.', 'Dott.', 'Sig.ra')
@classmethod
def prefix(cls):
return cls.random_element(cls.prefixes)

View file

@ -0,0 +1,14 @@
from __future__ import unicode_literals
from ..phone_number import Provider as PhoneNumberProvider
class Provider(PhoneNumberProvider):
formats = (
'+## ### ## ## ####',
'+## ## #######',
'+## ## ########',
'+## ### #######',
'+## ### ########',
'+## #### #######',
'+## #### ########'
)

View file

@ -0,0 +1,37 @@
# coding=utf-8
'it_IT ssn provider (yields italian fiscal codes)'
from __future__ import unicode_literals
from string import ascii_uppercase, digits
from ..ssn import Provider as SsnProvider
ALPHANUMERICS = sorted(digits + ascii_uppercase)
ALPHANUMERICS_DICT = dict((char, index)
for index, char in enumerate(ALPHANUMERICS))
CHECKSUM_TABLE = (
(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 1, 0, 5, 7, 9, 13, 15, 17, 19,
21, 2, 4, 18, 20, 11, 3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23),
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25))
def checksum(value):
'''
Calculates the checksum char used for the 16th char.
Author: Vincenzo Palazzo
'''
return chr(65 + sum(CHECKSUM_TABLE[index % 2][ALPHANUMERICS_DICT[char]]
for index, char in enumerate(value)) % 26)
class Provider(SsnProvider):
'''
Generates italian fiscal codes.
'''
fiscal_code_format = '??????##?##?###'
@classmethod
def ssn(cls):
code = cls.bothify(cls.fiscal_code_format).upper()
return code + checksum(code)

634
src/faker/providers/job.py Normal file
View file

@ -0,0 +1,634 @@
# coding=utf-8
from . import BaseProvider
from .. import Generator
class Provider(BaseProvider):
jobs=["Academic librarian",
"Accommodation manager",
"Accountant, chartered",
"Accountant, chartered certified",
"Accountant, chartered management",
"Accountant, chartered public finance",
"Accounting technician",
"Actor",
"Actuary",
"Acupuncturist",
"Administrator",
"Administrator, arts",
"Administrator, charities/voluntary organisations",
"Administrator, Civil Service",
"Administrator, education",
"Administrator, local government",
"Administrator, sports",
"Adult guidance worker",
"Adult nurse",
"Advertising account executive",
"Advertising account planner",
"Advertising art director",
"Advertising copywriter",
"Advice worker",
"Aeronautical engineer",
"Agricultural consultant",
"Agricultural engineer",
"Aid worker",
"Air broker",
"Air cabin crew",
"Air traffic controller",
"Airline pilot",
"Ambulance person",
"Amenity horticulturist",
"Analytical chemist",
"Animal nutritionist",
"Animal technologist",
"Animator",
"Applications developer",
"Arboriculturist",
"Archaeologist",
"Architect",
"Architectural technologist",
"Archivist",
"Armed forces logistics/support/administrative officer",
"Armed forces operational officer",
"Armed forces technical officer",
"Armed forces training and education officer",
"Art gallery manager",
"Art therapist",
"Artist",
"Arts administrator",
"Arts development officer",
"Astronomer",
"Audiological scientist",
"Automotive engineer",
"Banker",
"Barrister",
"Barrister's clerk",
"Best boy",
"Biochemist, clinical",
"Biomedical engineer",
"Biomedical scientist",
"Bonds trader",
"Bookseller",
"Brewing technologist",
"Broadcast engineer",
"Broadcast journalist",
"Broadcast presenter",
"Building control surveyor",
"Building services engineer",
"Building surveyor",
"Buyer, industrial",
"Buyer, retail",
"Cabin crew",
"Call centre manager",
"Camera operator",
"Careers adviser",
"Careers information officer",
"Cartographer",
"Catering manager",
"Ceramics designer",
"Charity fundraiser",
"Charity officer",
"Chartered accountant",
"Chartered certified accountant",
"Chartered legal executive (England and Wales)",
"Chartered loss adjuster",
"Chartered management accountant",
"Chartered public finance accountant",
"Chemical engineer",
"Chemist, analytical",
"Child psychotherapist",
"Chiropodist",
"Chiropractor",
"Civil engineer, consulting",
"Civil engineer, contracting",
"Civil Service administrator",
"Civil Service fast streamer",
"Claims inspector/assessor",
"Clinical biochemist",
"Clinical cytogeneticist",
"Clinical embryologist",
"Clinical molecular geneticist",
"Clinical psychologist",
"Clinical research associate",
"Clinical scientist, histocompatibility and immunogenetics",
"Clothing/textile technologist",
"Colour technologist",
"Commercial art gallery manager",
"Commercial horticulturist",
"Commercial/residential surveyor",
"Commissioning editor",
"Communications engineer",
"Community arts worker",
"Community development worker",
"Community education officer",
"Community pharmacist",
"Company secretary",
"Computer games developer",
"Conference centre manager",
"Conservation officer, historic buildings",
"Conservation officer, nature",
"Conservator, furniture",
"Conservator, museum/gallery",
"Consulting civil engineer",
"Contracting civil engineer",
"Control and instrumentation engineer",
"Copy",
"Copywriter, advertising",
"Corporate investment banker",
"Corporate treasurer",
"Counselling psychologist",
"Counsellor",
"Curator",
"Customer service manager",
"Cytogeneticist",
"Dance movement psychotherapist",
"Dancer",
"Data processing manager",
"Database administrator",
"Dealer",
"Dentist",
"Designer, blown glass/stained glass",
"Designer, ceramics/pottery",
"Designer, exhibition/display",
"Designer, fashion/clothing",
"Designer, furniture",
"Designer, graphic",
"Designer, industrial/product",
"Designer, interior/spatial",
"Designer, jewellery",
"Designer, multimedia",
"Designer, television/film set",
"Designer, textile",
"Development worker, community",
"Development worker, international aid",
"Diagnostic radiographer",
"Dietitian",
"Diplomatic Services operational officer",
"Dispensing optician",
"Doctor, general practice",
"Doctor, hospital",
"Dramatherapist",
"Drilling engineer",
"Early years teacher",
"Ecologist",
"Economist",
"Editor, commissioning",
"Editor, film/video",
"Editor, magazine features",
"Editorial assistant",
"Education administrator",
"Education officer, community",
"Education officer, environmental",
"Education officer, museum",
"Educational psychologist",
"Electrical engineer",
"Electronics engineer",
"Embryologist, clinical",
"Emergency planning/management officer",
"Energy engineer",
"Energy manager",
"Engineer, aeronautical",
"Engineer, agricultural",
"Engineer, automotive",
"Engineer, biomedical",
"Engineer, broadcasting (operations)",
"Engineer, building services",
"Engineer, chemical",
"Engineer, civil (consulting)",
"Engineer, civil (contracting)",
"Engineer, communications",
"Engineer, control and instrumentation",
"Engineer, drilling",
"Engineer, electrical",
"Engineer, electronics",
"Engineer, energy",
"Engineer, land",
"Engineer, maintenance",
"Engineer, maintenance (IT)",
"Engineer, manufacturing",
"Engineer, manufacturing systems",
"Engineer, materials",
"Engineer, mining",
"Engineer, petroleum",
"Engineer, production",
"Engineer, site",
"Engineer, structural",
"Engineer, technical sales",
"Engineer, water",
"Engineering geologist",
"English as a foreign language teacher",
"English as a second language teacher",
"Environmental consultant",
"Environmental education officer",
"Environmental health practitioner",
"Environmental manager",
"Equality and diversity officer",
"Equities trader",
"Ergonomist",
"Estate agent",
"Estate manager/land agent",
"Event organiser",
"Exercise physiologist",
"Exhibition designer",
"Exhibitions officer, museum/gallery",
"Facilities manager",
"Farm manager",
"Fashion designer",
"Fast food restaurant manager",
"Field seismologist",
"Field trials officer",
"Film/video editor",
"Financial adviser",
"Financial controller",
"Financial manager",
"Financial planner",
"Financial risk analyst",
"Financial trader",
"Fine artist",
"Firefighter",
"Fish farm manager",
"Fisheries officer",
"Fitness centre manager",
"Food technologist",
"Forensic psychologist",
"Forensic scientist",
"Forest/woodland manager",
"Freight forwarder",
"Furniture conservator/restorer",
"Furniture designer",
"Further education lecturer",
"Futures trader",
"Gaffer",
"Games developer",
"Garment/textile technologist",
"General practice doctor",
"Geneticist, molecular",
"Geochemist",
"Geographical information systems officer",
"Geologist, engineering",
"Geologist, wellsite",
"Geophysical data processor",
"Geophysicist/field seismologist",
"Geoscientist",
"Glass blower/designer",
"Government social research officer",
"Graphic designer",
"Haematologist",
"Health and safety adviser",
"Health and safety inspector",
"Health physicist",
"Health promotion specialist",
"Health service manager",
"Health visitor",
"Herbalist",
"Heritage manager",
"Higher education careers adviser",
"Higher education lecturer",
"Historic buildings inspector/conservation officer",
"Holiday representative",
"Homeopath",
"Horticultural consultant",
"Horticultural therapist",
"Horticulturist, amenity",
"Horticulturist, commercial",
"Hospital doctor",
"Hospital pharmacist",
"Hotel manager",
"Housing manager/officer",
"Human resources officer",
"Hydrogeologist",
"Hydrographic surveyor",
"Hydrologist",
"Illustrator",
"Immigration officer",
"Immunologist",
"Industrial buyer",
"Industrial/product designer",
"Information officer",
"Information systems manager",
"Insurance account manager",
"Insurance broker",
"Insurance claims handler",
"Insurance risk surveyor",
"Insurance underwriter",
"Intelligence analyst",
"Interior and spatial designer",
"International aid/development worker",
"Interpreter",
"Investment analyst",
"Investment banker, corporate",
"Investment banker, operational",
"IT consultant",
"IT sales professional",
"IT technical support officer",
"IT trainer",
"Jewellery designer",
"Journalist, broadcasting",
"Journalist, magazine",
"Journalist, newspaper",
"Land",
"Land/geomatics surveyor",
"Landscape architect",
"Lawyer",
"Lawyer",
"Learning disability nurse",
"Learning mentor",
"Lecturer, further education",
"Lecturer, higher education",
"Legal executive",
"Legal secretary",
"Leisure centre manager",
"Lexicographer",
"Librarian, academic",
"Librarian, public",
"Licensed conveyancer",
"Lighting technician, broadcasting/film/video",
"Lobbyist",
"Local government officer",
"Location manager",
"Logistics and distribution manager",
"Loss adjuster, chartered",
"Magazine features editor",
"Magazine journalist",
"Maintenance engineer",
"Make",
"Management consultant",
"Manufacturing engineer",
"Manufacturing systems engineer",
"Marine scientist",
"Market researcher",
"Marketing executive",
"Materials engineer",
"Mechanical engineer",
"Media buyer",
"Media planner",
"Medical illustrator",
"Medical laboratory scientific officer",
"Medical physicist",
"Medical sales representative",
"Medical secretary",
"Medical technical officer",
"Mental health nurse",
"Merchandiser, retail",
"Merchant navy officer",
"Metallurgist",
"Meteorologist",
"Microbiologist",
"Midwife",
"Minerals surveyor",
"Mining engineer",
"Mudlogger",
"Multimedia programmer",
"Multimedia specialist",
"Museum education officer",
"Museum/gallery conservator",
"Museum/gallery curator",
"Museum/gallery exhibitions officer",
"Music therapist",
"Music tutor",
"Musician",
"Nature conservation officer",
"Naval architect",
"Network engineer",
"Newspaper journalist",
"Nurse, adult",
"Nurse, children's",
"Nurse, learning disability",
"Nurse, mental health",
"Nutritional therapist",
"Occupational hygienist",
"Occupational psychologist",
"Occupational therapist",
"Oceanographer",
"Office manager",
"Oncologist",
"Operational investment banker",
"Operational researcher",
"Operations geologist",
"Ophthalmologist",
"Optician, dispensing",
"Optometrist",
"Orthoptist",
"Osteopath",
"Outdoor activities/education manager",
"Paediatric nurse",
"Paramedic",
"Passenger transport manager",
"Patent attorney",
"Patent examiner",
"Pathologist",
"Pension scheme manager",
"Pensions consultant",
"Personal assistant",
"Personnel officer",
"Petroleum engineer",
"Pharmacist, community",
"Pharmacist, hospital",
"Pharmacologist",
"Photographer",
"Physicist, medical",
"Physiological scientist",
"Physiotherapist",
"Phytotherapist",
"Pilot, airline",
"Planning and development surveyor",
"Plant breeder/geneticist",
"Podiatrist",
"Police officer",
"Politician's assistant",
"Presenter, broadcasting",
"Press photographer",
"Press sub",
"Primary school teacher",
"Print production planner",
"Printmaker",
"Prison officer",
"Private music teacher",
"Probation officer",
"Producer, radio",
"Producer, television/film/video",
"Product designer",
"Product/process development scientist",
"Production assistant, radio",
"Production assistant, television",
"Production designer, theatre/television/film",
"Production engineer",
"Production manager",
"Programme researcher, broadcasting/film/video",
"Programmer, applications",
"Programmer, multimedia",
"Programmer, systems",
"Proofreader",
"Psychiatric nurse",
"Psychiatrist",
"Psychologist, clinical",
"Psychologist, counselling",
"Psychologist, educational",
"Psychologist, forensic",
"Psychologist, occupational",
"Psychologist, prison and probation services",
"Psychologist, sport and exercise",
"Psychotherapist",
"Psychotherapist, child",
"Psychotherapist, dance movement",
"Public affairs consultant",
"Public house manager",
"Public librarian",
"Public relations account executive",
"Public relations officer",
"Publishing copy",
"Publishing rights manager",
"Purchasing manager",
"Quality manager",
"Quantity surveyor",
"Quarry manager",
"Race relations officer",
"Radiation protection practitioner",
"Radio broadcast assistant",
"Radio producer",
"Radiographer, diagnostic",
"Radiographer, therapeutic",
"Ranger/warden",
"Records manager",
"Recruitment consultant",
"Recycling officer",
"Regulatory affairs officer",
"Research officer, government",
"Research officer, political party",
"Research officer, trade union",
"Research scientist (life sciences)",
"Research scientist (maths)",
"Research scientist (medical)",
"Research scientist (physical sciences)",
"Restaurant manager",
"Restaurant manager, fast food",
"Retail banker",
"Retail buyer",
"Retail manager",
"Retail merchandiser",
"Risk analyst",
"Risk manager",
"Runner, broadcasting/film/video",
"Rural practice surveyor",
"Sales executive",
"Sales professional, IT",
"Sales promotion account executive",
"Science writer",
"Scientific laboratory technician",
"Scientist, audiological",
"Scientist, biomedical",
"Scientist, clinical (histocompatibility and immunogenetics)",
"Scientist, forensic",
"Scientist, marine",
"Scientist, physiological",
"Scientist, product/process development",
"Scientist, research (life sciences)",
"Scientist, research (maths)",
"Scientist, research (medical)",
"Scientist, research (physical sciences)",
"Scientist, water quality",
"Secondary school teacher",
"Secretary/administrator",
"Secretary, company",
"Seismic interpreter",
"Senior tax professional/tax inspector",
"Set designer",
"Ship broker",
"Site engineer",
"Social research officer, government",
"Social researcher",
"Social worker",
"Software engineer",
"Soil scientist",
"Solicitor",
"Solicitor, Scotland",
"Sound technician, broadcasting/film/video",
"Special educational needs teacher",
"Special effects artist",
"Speech and language therapist",
"Sport and exercise psychologist",
"Sports administrator",
"Sports coach",
"Sports development officer",
"Sports therapist",
"Stage manager",
"Statistician",
"Structural engineer",
"Sub",
"Surgeon",
"Surveyor, building",
"Surveyor, building control",
"Surveyor, commercial/residential",
"Surveyor, hydrographic",
"Surveyor, insurance",
"Surveyor, land/geomatics",
"Surveyor, minerals",
"Surveyor, mining",
"Surveyor, planning and development",
"Surveyor, quantity",
"Surveyor, rural practice",
"Systems analyst",
"Systems developer",
"Tax adviser",
"Tax inspector",
"Teacher, adult education",
"Teacher, early years/pre",
"Teacher, English as a foreign language",
"Teacher, music",
"Teacher, primary school",
"Teacher, secondary school",
"Teacher, special educational needs",
"Teaching laboratory technician",
"Technical author",
"Technical brewer",
"Technical sales engineer",
"TEFL teacher",
"Telecommunications researcher",
"Television camera operator",
"Television floor manager",
"Television production assistant",
"Television/film/video producer",
"Textile designer",
"Theatre director",
"Theatre manager",
"Theatre stage manager",
"Theme park manager",
"Therapeutic radiographer",
"Therapist, art",
"Therapist, drama",
"Therapist, horticultural",
"Therapist, music",
"Therapist, nutritional",
"Therapist, occupational",
"Therapist, speech and language",
"Therapist, sports",
"Tour manager",
"Tourism officer",
"Tourist information centre manager",
"Town planner",
"Toxicologist",
"Trade mark attorney",
"Trade union research officer",
"Trading standards officer",
"Training and development officer",
"Translator",
"Transport planner",
"Travel agency manager",
"Tree surgeon",
"Veterinary surgeon",
"Video editor",
"Visual merchandiser",
"Volunteer coordinator",
"Warden/ranger",
"Warehouse manager",
"Waste management officer",
"Water engineer",
"Water quality scientist",
"Web designer",
"Wellsite geologist",
"Writer",
"Youth worker"]
@classmethod
def job(cls):
return cls.random_element(cls.jobs)

View file

@ -0,0 +1 @@

View file

@ -0,0 +1,70 @@
# coding=utf-8
from __future__ import unicode_literals
from ..address import Provider as AddressProvider
class Provider(AddressProvider):
city_suffixes = ('마을', '', '', '')
building_number_formats = ('#', '####', '###')
street_suffixes = ('', '', '거리')
postcode_formats = ('###-###', '###-###')
states = (
'서울특별시', '부산광역시', '대구광역시', '인천광역시', '광주광역시', '대전광역시', '울산광역시',
'세종특별자치시', '경기도', '강원도', '충청북도', '충청남도', '전라북도', '전라남도', '경상북도',
'경상남도', '제주특별자치도')
countries = ('가나', '가봉', '가이아나', '감비아', '과테말라', '그레나다', '그리스', '기니', '기니비사우',
'나미비아', '나우루', '나이지리아', '남수단', '남아프리카 공화국', '네덜란드 왕국', '네팔',
'노르웨이', '뉴질랜드', '니제르', '니카라과', '대한민국', '덴마크', '도미니카 공화국',
'도미니카 연방', '독일', '동티모르', '라오스', '라이베리아', '라트비아', '러시아', '레바논',
'레소토', '루마니아', '룩셈부르크', '르완다', '리비아', '리투아니아', '리히텐슈타인',
'마다가스카르', '마셜 제도', '마케도니아 공화국', '말라위', '말레이시아', '말리', '멕시코',
'모나코', '모로코', '모리셔스', '모리타니', '모잠비크', '몬테네그로', '몰도바', '몰디브',
'몰타', '몽골', '미국', '미얀마', '미크로네시아 연방', '바누아투', '바레인', '바베이도스',
'바하마', '방글라데시', '베냉', '베네수엘라', '베트남', '벨기에', '벨라루스', '벨리즈',
'보스니아 헤르체고비나', '보츠와나', '볼리비아', '부룬디', '부르키나파소', '부탄', '불가리아',
'브라질', '브루나이', '사모아', '사우디아라비아', '산마리노', '상투메 프린시페', '세네갈',
'세르비아', '세이셸', '세인트루시아', '세인트빈센트 그레나딘', '세인트키츠 네비스',
'소말리아', '솔로몬 제도', '수단', '수리남', '스리랑카', '스와질란드', '스웨덴', '스위스',
'스페인', '슬로바키아', '슬로베니아', '시리아', '시에라리온 공화국', '싱가포르',
'아랍에미리트', '아르메니아', '아르헨티나', '아이슬란드', '아이티', '아일랜드',
'아제르바이잔', '아프가니스탄', '안도라', '알바니아', '알제리', '앙골라', '앤티가 바부다',
'에리트레아', '에스토니아', '에콰도르', '에티오피아', '엘살바도르', '영국', '예멘', '오만',
'오스트레일리아', '오스트리아', '온두라스', '요르단', '우간다', '우루과이', '우즈베키스탄',
'우크라이나', '이라크', '이란', '이스라엘', '이집트', '이탈리아', '인도네시아', '일본',
'자메이카', '잠비아', '적도 기니', '조선민주주의인민공화국', '조지아', '중앙아프리카 공화국',
'중화인민공화국', '지부티', '짐바브웨', '차드', '체코', '칠레', '카메룬', '카보베르데',
'카자흐스탄', '카타르', '캄보디아', '캐나다', '케냐', '코모로', '코스타리카', '코트디부아르',
'콜롬비아', '콩고 공화국', '콩고 민주 공화국', '쿠바', '쿠웨이트', '크로아티아',
'키르기스스탄', '키리바시', '키프로스', '타이', '타지키스탄', '탄자니아', '터키',
'토고', '통가', '투르크메니스탄', '투발루', '튀니지', '트리니다드 토바고', '파나마',
'파라과이', '파키스탄', '파푸아 뉴기니', '팔라우', '페루', '포르투갈', '폴란드', '프랑스',
'피지', '핀란드', '필리핀', '헝가리'
)
city_formats = (
'{{last_name}}{{last_name}}{{city_suffix}}',
'{{first_name}}{{last_name}}{{last_name}}{{city_suffix}}'
)
street_name_formats = (
'{{last_name}}{{last_name}}{{last_name}}{{city_suffix}}',
'{{last_name}}{{last_name}}{{last_name}}{{street_suffix}}',
'{{first_name}}{{last_name}}{{last_name}}{{street_suffix}}',
'{{last_name}}{{last_name}}{{street_suffix}}'
)
street_address_formats = (
'{{street_name}} {{building_number}}',
'{{street_name}} {{building_number}} {{secondary_address}}'
)
address_formats = (
"{{state}} {{city}} {{street_address}} ({{postcode}})",
"{{state}} {{city}} \n {{street_address}} {{postcode}}"
)
secondary_address_formats = ('###동 ###호', '#-#', '###', '###-#', '##-#')
@classmethod
def state(cls):
return cls.random_element(cls.states)
@classmethod
def secondary_address(cls):
return cls.numerify(cls.random_element(cls.secondary_address_formats))

Some files were not shown because too many files have changed in this diff Show more