小编ida*_*ray的帖子

mypy importlib 模块函数

我正在使用 importlib 在运行时导入模块。这些模块是我的应用程序的插件,必须实现 1 个或多个模块级功能。我已经开始向我的应用程序添加类型注释,但我从 mypy 中收到一个错误说明

模块没有属性“generate_configuration”

其中“generate_configuration”是模块功能之一。

在这个例子中,模块中只需要有一个 generate_configuration 函数。该函数采用单个 dict 参数。

def generate_configuration(data: Dict[str, DataFrame]) -> None: ...
Run Code Online (Sandbox Code Playgroud)

我一直在寻找如何指定模块的接口,但我能找到的只是类接口。有人可以指点我一些显示如何执行此操作的文档吗?我的 google-fu 在这方面让我失望。

加载此模块的代码如下所示。错误是由最后一行生成的。

plugin_directory = os.path.join(os.path.abspath(directory), 'Configuration-Generation-Plugins')
plugins = (
    module_file
    for module_file in Path(plugin_directory).glob('*.py')
)
sys.path.insert(0, plugin_directory)
for plugin in plugins:
    plugin_module = import_module(plugin.stem)
    plugin_module.generate_configuration(directory, points_list)
Run Code Online (Sandbox Code Playgroud)

python-3.x mypy

5
推荐指数
1
解决办法
961
查看次数

使用Elixir中的Map中的多个键选择多个项目

我试图在Elixir中实现Modbus协议,作为练习Elixir和进一步理解功能编程的练习.

Modbus数据被建模为连续的寄存器块.modbus读取请求采用以下形式.这指示服务器收集从寄存器开始并继续寄存器的寄存器.例如,如果为0且为5,则服务器将返回寄存器0,1,2,3和4的值.

我认为用于建模这些寄存器的良好数据结构是一个映射,其中键是寄存器,值是寄存器的值.因此,我很好奇是否有一种习惯的方法从给定多个键的映射中检索多个值,而不必遍历键并为每个键调用get().

如果地图不合适,我会接受其他建议以获得更好的数据模型.

Python 在运算符模块中有itemgetter来执行此任务.也许这将为我想要完成的事情提供另一条线索.

elixir

2
推荐指数
1
解决办法
1957
查看次数

标签 统计

elixir ×1

mypy ×1

python-3.x ×1