From a86c90b5bbc2d8fffdf7ede0bfc22a6ba9febc21 Mon Sep 17 00:00:00 2001 From: Yaroslav Klyuyev Date: Thu, 12 Feb 2015 22:42:10 +0200 Subject: [PATCH] moved get_all_generators to utils from tests as this is useful --- pynames/__init__.py | 1 + pynames/tests/test_generators.py | 43 +------------------------------- pynames/utils.py | 43 ++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 42 deletions(-) create mode 100644 pynames/utils.py diff --git a/pynames/__init__.py b/pynames/__init__.py index 5739ece..27b59ad 100644 --- a/pynames/__init__.py +++ b/pynames/__init__.py @@ -7,3 +7,4 @@ import pynames.korean import pynames.russian from pynames.relations import GENDER, LANGUAGE +from pynames.utils import get_all_generators diff --git a/pynames/tests/test_generators.py b/pynames/tests/test_generators.py index b13a552..2a6e977 100644 --- a/pynames/tests/test_generators.py +++ b/pynames/tests/test_generators.py @@ -1,15 +1,9 @@ # coding: utf-8 -import os -import importlib import unittest -import pynames - from pynames.relations import GENDER -from pynames.base import BaseGenerator -from pynames.from_list_generator import FromListGenerator -from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGenerator +from pynames.utils import get_all_generators # TODO: test forms: @@ -17,45 +11,10 @@ from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGene # - how many items in forms (12 for russian) -def get_all_generators(): - - submodules = [] - - root_dir = os.path.dirname(pynames.__file__) - - for dirname in os.listdir(root_dir): - module_path = os.path.join(root_dir, dirname) - if not os.path.isdir(module_path): - continue - - try: - module_name = 'pynames.%s' % dirname - module = importlib.import_module(module_name) - submodules.append(module) - except Exception: - continue - - generators = [] - - for module in submodules: - for generator in module.__dict__.values(): - if not isinstance(generator, type) or not issubclass(generator, BaseGenerator): - continue - - if generator in (FromTablesGenerator, FromListGenerator, FromCSVTablesGenerator): - continue - - generators.append(generator) - - return generators - - - class TestGenerators(unittest.TestCase): pass - def create_test_method(generator_class): def test_method(self): diff --git a/pynames/utils.py b/pynames/utils.py new file mode 100644 index 0000000..afa71cf --- /dev/null +++ b/pynames/utils.py @@ -0,0 +1,43 @@ +# coding: utf-8 + +import os +import importlib + +import pynames + +from pynames.base import BaseGenerator +from pynames.from_list_generator import FromListGenerator +from pynames.from_tables_generator import FromTablesGenerator, FromCSVTablesGenerator + + +def get_all_generators(): + + submodules = [] + + root_dir = os.path.dirname(pynames.__file__) + + for dirname in os.listdir(root_dir): + module_path = os.path.join(root_dir, dirname) + if not os.path.isdir(module_path): + continue + + try: + module_name = 'pynames.%s' % dirname + module = importlib.import_module(module_name) + submodules.append(module) + except Exception: + continue + + generators = [] + + for module in submodules: + for generator in module.__dict__.values(): + if not isinstance(generator, type) or not issubclass(generator, BaseGenerator): + continue + + if generator in (FromTablesGenerator, FromListGenerator, FromCSVTablesGenerator): + continue + + generators.append(generator) + + return generators