繁体   English   中英

如何阻止内部 package 进口

[英]How to block intra package imports

我正在构建一个 python 应用程序,我的代码库具有以下结构:

/utils
  /foo
/package_1
  /foo
/package_2
  /foo
/whatever

我想执行以下规则:

  1. utils package 只能从utils package 本身导入
  2. package_1中可以从utilspackage_1本身导入
  3. package_2中可以从utilspackage_2本身导入
  4. 在您可以从所有其他包中导入的任何内容中

我可以使用哪种自动策略来强制执行此编码规则?

值得一试flake8-import-graph

如果你想要一些运行时检查,你可以编写一个自定义模块导入器。 请参阅import-hooks示例

我将 go 与 static 分析。 也就是说,不要在运行时强制执行此操作。 您可以将其与工具一起用于 linting 和测试代码。

我的方法是调整 scope 示例,用于从 LibCST 项目进行导入分析,以强制执行您的导入要求。

https://libcst.readthedocs.io/en/latest/scope_tutorial.html

AFAIK,您无法阻止某人导入在其路径中找到的内容,但您可以修改路径以不包含您不想访问的内容。 我不推荐它,但它是可行的......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM