__init__.py 973 Bytes
# coding=utf-8

import datetime
import importlib
import inspect
import json
import pkgutil

from osgeo import ogr
import configure
import math
from flask import request
import zipfile
import os
from flask import current_app
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker,session

# 蓝图的父类,用作标识蓝图
class BlueprintApi():
    pass

# 递归查找某个模块下特定父类的子类
def find_class(modname, class_name):
    module = importlib.import_module(modname)
    path = getattr(module, "__path__", None)
    basename = module.__name__ + "."

    for _importer, modname, ispkg in pkgutil.iter_modules(path):
        modname = basename + modname
        if ispkg:
            for name, obj in inspect.getmembers(importlib.import_module(modname), inspect.isclass):
                if obj.__base__ == class_name:
                    yield obj
            for i in find_class(modname, class_name):
                yield i