产生mahotas的原因

《Mahotas原则》

以下是Mahotas的原则,按重要性降序排列:

  1. 能用即可

  2. 文档良构

  3. 快速代码

  4. 简单代码

  5. 最小依赖关系

能用即可

第一个原则是,事情应该 能够运行 。这意味着两件事:(1)不应该有错误,(2)接口应该灵活或故障良好。

为了避免错误,测试被广泛使用。每个报告的错误都会导致一个新的测试用例,因此它永远不会再次发生。新功能至少应该有冒烟测试(运行功能并验证输出的一些基本属性的测试)。

接口被设计成尽可能灵活。除非确实需要或在性能增强功能中(例如使用 out 参数)。

用户应该永远不会使用mahotas使Python解释器崩溃。

文档良构

没有一个公共函数没有完整的文档字符串。除此之外, hard documentation (即,包含界面每个角落和缝隙的完整技术细节的信息),还有 soft documentation (带有示例和更高级推理的类似教程的文档)。

快速代码

性能是一项功能。

代码应该在不牺牲通用性的情况下尽可能快(请参见 just work (见上文)。这就是C++模板用于类型无关代码的原因。

简单代码

代码应该简单。

最小依赖关系

Mahotas试图避免依赖。

目前,构建mahotas依赖于C++编译器Numpy。这些都不太可能永远改变。要运行mahotas,我们需要 numpy。为了读取图像,我们需要(1)imread或(2)Free Image中的一个。

Imread/freImage依赖项是一种软依赖项:除imread以外的所有内容都可以在没有它的情况下工作。编写代码是为了确保 import -不带IO后端的mahotas不会触发错误,除非 imread() 函数被使用。

因此,一旦编译了mahotas,您真正需要的就是 numpy 。这一点不太可能改变。