def print_doc(provider_or_field=None, args=None, lang=DEFAULT_LOCALE, output=None, seed=None, includes=None): args = args or [] output = output or sys.stdout fake = Faker(locale=lang, includes=includes) fake.seed_instance(seed) 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 = Faker(locale, providers=[ provider_or_field], includes=includes) fake.seed_instance(seed) 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: raise ValueError('No faker found for "{0}({1})"'.format( provider_or_field, args)) 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) fake.seed_instance(seed) 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)
def write_docs(*args, **kwargs): from faker import Faker, documentor from faker.config import 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(fh, ':github_url: hide\n\n') write_provider(fh, doc, provider, fakers) with open(os.path.join(DOCS_ROOT, 'providers.rst'), 'wb') as fh: write(fh, ':github_url: hide\n\n') 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 = sorted(AVAILABLE_LOCALES) for lang in AVAILABLE_LOCALES: fname = os.path.join(DOCS_ROOT, 'locales', '%s.rst' % lang) with open(fname, 'wb') as fh: write(fh, ':github_url: hide\n\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, ':github_url: hide\n\n') 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]
def main(provider_or_field=None, *args): from faker import Faker, Factory, documentor, DEFAULT_LOCALE, AVAILABLE_LOCALES fake = Faker(locale=DEFAULT_LOCALE) 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 DEFAULT_LOCALE 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])) else: try: print(fake.format(provider_or_field, *args)) except AttributeError: print('No faker found for "{0}({1})"'.format( provider_or_field, args)) 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) for lang in AVAILABLE_LOCALES: if lang == DEFAULT_LOCALE: continue print() print('## LANGUAGE {0}'.format(lang)) 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): print_provider(d, p, fs)
def main(provider_or_field=None, *args): from faker import Faker, documentor fake = Faker() doc = documentor.Documentor(fake) if provider_or_field: try: print fake.format(provider_or_field, *args) return except AttributeError: providers = [ p for p in fake.providers if documentor.Documentor.getProviderName(p) == provider_or_field ] if not providers: return 'No faker found for "%s"' % provider_or_field from faker.providers import BaseProvider doc.already_generated = [fake for fake in dir(BaseProvider)] formatters = [(providers[0], doc.getProviderFormatters(providers[0]))] else: formatters = doc.getFormatters(with_args='first', with_defaults=True) for provider, fakers in formatters: print print "### %s" % documentor.Documentor.getProviderName(provider) print for signature, example in fakers.items(): print u"{fake:<{margin}}# {example}".format( fake=signature, example=example, margin=max(30, doc.max_name_len + 1))