静态分析python导入守护程序。

python-import-guardian的Python项目详细描述


python import guardian自述文件

这是什么?

python-import-guardian是python的静态分析导入守护程序。它 可用于明确控制哪些python模块和包可以 由项目中给定的一组模块和包导入。

什么时候有用?

假设您有一个包含两个主要组件的项目—客户机和服务器。 这两个组件都位于同一个存储库中(为了便于讨论) 它们都为各种功能使用一组通用的共享代码,例如 确定如何计算某些哈希值或某些哈希值。

代码可以这样排列:

    /myproject
      |
      |- client/
      |- server/
      |- shared/

从概念上讲,您只希望clientshared代码安装在 客户端机器和服务器机器上的servershared代码。模块 clientserver可以从shared导入,但不能从彼此导入,并且 shared两者都可以导入-这确保了您有一个良好的分离 在维护一些共享代码的同时关注客户机和服务器代码之间的关系 以及良好的干燥原则。

python-import-guardian允许您定义希望这些模块如何 当涉及到哪个模块可以从何处导入什么时,相互关联。 对于我们的示例项目,在 项目树可能如下所示:

    {
        "forbidden_modules": {
            "server": [
                "client",
                "shared"
            ],
            "client": [
                "server",
                "shared"
            ]

        }
    }

这里的forbidden_modules声明将python模块映射到 不能导入的模块或包。所以在这种情况下:server可以 不能由clientshared导入,并且client不能由 serversharedforbidden_modules是黑名单,因此shared可以 被任何东西导入,因为它没有被提及为禁止的模块。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java与Groovy正则表达式匹配混淆   java控制台未定义为JSNI   主目录中的java指针异常   java如何获取hashmap中的arrayList的大小   ApachePOI用于文本,Java代码中的word doc(.docx)中没有进行追加   Ruby对象到Java对象   JavaSpringJPA哈希集只返回一个值   Java在执行由配置了精确类路径参数的mavenjarpluin生成的可执行jar时无法找到依赖项   java我试图在画布上写一个文本,但什么也没发生   java HTTP 404源服务器找不到目标资源的当前表示形式,或者不愿意透露存在该表示形式。不起作用   java提取小数点后的最后一个数字   oop Java:无法访问对象的元素   PHP URL中RecyclerView中的java句柄空异常   不调用OnCreateViewHolder的java Update RecyclerView适配器项