def hierarchy_check(self, clazz, expected_set):
        pkg_root = 'tests.util.test_pkg_1'
        full_tree = class_util.find_subclasses_in_packages([pkg_root], clazz)

        res_set = set()
        res_set.update(full_tree.values())
        self.assertEqual(res_set, expected_set)
示例#2
0
 def hierarchy_check(self, clazz, expected_dict):
     pkg_root = 'tests.util.test_pkg_1'
     result_dict = class_util.find_subclasses_in_packages([pkg_root], clazz)
     self.assertDictEqual(result_dict, expected_dict)
        'start_date': datetime.combine(pipeline['start_date'], datetime.min.time()),
        __DEPENDS_ON_PAST: default_args[
            __DEPENDS_ON_PAST
        ] if __DEPENDS_ON_PAST in default_args else False,
    }
    default_args.update(override_args)
    return default_args


logging.info(f'Loading task implementations..')

# TODO: add configuration for user tasks package
impl_packages = 'liminal.runners.airflow.tasks'
user_task_package = 'TODO: user_tasks_package'

tasks_by_liminal_name = class_util.find_subclasses_in_packages([impl_packages], Task)

logging.info(f'Finished loading task implementations: {tasks_by_liminal_name.keys()}')

executors_by_liminal_name = class_util.find_subclasses_in_packages(
    ['liminal.runners.airflow.executors'],
    executor.Executor)

logging.info(f'Finished loading executor implementations: {executors_by_liminal_name.keys()}')


def get_task_class(task_type):
    return tasks_by_liminal_name[task_type]


def get_executor_class(executor_type):
def __get_task_build_class(task_type):
    return task_build_types.get(task_type, None)


def __get_service_build_class(service_type):
    return service_build_types.get(service_type, None)


logging.info(f'Loading image builder implementations..')

# TODO: add configuration for user image builders package
image_builders_package = 'liminal.build.image'
# user_image_builders_package = 'TODO: user_image_builders_package'

task_build_types = class_util.find_subclasses_in_packages(
    [image_builders_package], ImageBuilder)

logging.info(
    f'Finished loading image builder implementations: {task_build_types}')
logging.info(f'Loading service image builder implementations..')

# TODO: add configuration for user service image builders package
service_builders_package = 'liminal.build.service'
# user_service_builders_package = 'TODO: user_service_builders_package'

service_build_types = class_util.find_subclasses_in_packages(
    [service_builders_package], ServiceImageBuilderMixin)

logging.info(
    f'Finished loading service image builder implementations: {service_build_types}'
)
示例#5
0
    return dags


logging.info(f'Loading task implementations..')

# TODO: add configuration for user tasks package
impl_packages = 'liminal.runners.airflow.tasks'
user_task_package = 'TODO: user_tasks_package'


def tasks_by_liminal_name(task_classes):
    return {
        full_name.replace(impl_packages, '').replace(clzz.__name__, '')[1:-1]:
        clzz
        for (full_name, clzz) in task_classes.items()
    }


tasks_by_liminal_name = tasks_by_liminal_name(
    class_util.find_subclasses_in_packages([impl_packages], Task))

logging.info(f'Finished loading task implementations: {tasks_by_liminal_name}')


def get_task_class(task_type):
    return tasks_by_liminal_name[task_type]


register_dags(environment.get_dags_dir())
    override_args = {
        'start_date':
        datetime.combine(pipeline['start_date'], datetime.min.time()),
        __DEPENDS_ON_PAST:
        default_args[__DEPENDS_ON_PAST]
        if __DEPENDS_ON_PAST in default_args else False,
    }
    default_args.update(override_args)
    return default_args


logging.info(f'Loading task implementations..')

# TODO: add configuration for user tasks package
impl_packages = 'liminal.runners.airflow.tasks'
user_task_package = 'TODO: user_tasks_package'

tasks_by_liminal_name = class_util.find_subclasses_in_packages([impl_packages],
                                                               Task)

logging.info(
    f'Finished loading task implementations: {tasks_by_liminal_name.keys()}')


def get_task_class(task_type):
    return tasks_by_liminal_name[task_type]


register_dags(
    os.path.join(env.get_airflow_home_dir(), env.DEFAULT_PIPELINES_SUBDIR))
def __get_task_build_class(task_type):
    return task_build_types.get(task_type, None)


def __get_service_build_class(service_type):
    return service_build_types.get(service_type, None)


logging.info(f'Loading image builder implementations..')

# TODO: add configuration for user image builders package
image_builders_package = 'liminal.build.image'
# user_image_builders_package = 'TODO: user_image_builders_package'

TASK_BUILD_CLASSES = class_util.find_subclasses_in_packages(
    [image_builders_package],
    ImageBuilder)


def get_types_dict(task_build_classes):
    # take module name from class name
    return {x.split(".")[-2]: c for x, c in task_build_classes.items()}


task_build_types = get_types_dict(TASK_BUILD_CLASSES)

logging.info(f'Finished loading image builder implementations: {TASK_BUILD_CLASSES}')
logging.info(f'Loading service image builder implementations..')

# TODO: add configuration for user service image builders package
service_builders_package = 'liminal.build.service'