为C和C++库生成FORTRAN和Python包装器

llnl-shroud的Python项目详细描述


< H1>包:为C和C++库生成FORTRAN和Python包装器。

coverage是一个工具,用于创建到C的Fortran或Python接口 或者C++库。它还可以为C++库创建一个C API。在

<>用户创建一个YAML文件,其中的C/C++声明要包装 以及一些注释,以提供语义信息和代码 生成选项。coverage为库生成一个包装器。 生成的代码具有很高的可读性,并且与代码类似 这将被手工编写来创建绑定。在

动词

  1. 把(尸体)裹在裹尸布里埋葬。在
  2. 盖住或包住以使看不见。在

Build StatusDocumentation Status

目标

  • 简化了C++库的包装器的创建。在
  • 保留了面向对象的C++类风格。在从C++ API创建一个习惯性包装器API。在
  • 生成易于理解的代码。在
  • 没有依赖的运行库。在

示例

用户创建一个包含来自zoo.hpp的声明的YAML文件。在

library: zoo
cxx_header: zoo.hpp

declarations:
- decl: class Animal
  declarations:
  - decl: Animal()
  - decl: void speak(const std::string &word)

这将创建一个Fortran接口,可用于:

^{pr2}$

从Python身上

import zoo
dog = zoo.Animal()
dog.speak("woof")

文件

要开始使用裹尸布,请查看完整的文档:

http://shroud.readthedocs.io/en/develop

邮件列表

shroud-users@groups.io

https://groups.io/g/shroud-users

必需的软件包

< H2> C++→C→FORTRAN < /H2>

生成的Fortran需要Fortran 2003编译器。在

< H2> C++或C到Python < /H2>

生成的Python需要python2.7或3.4+。在

Python特性:

  • 对数组使用NumPy。如果NumPy被过度使用,也可以使用Python列表。在
  • 对类使用扩展类型。在
  • 创建可读源。在

入门

护罩可使用pip安装

pip install llnl-shroud

另外,由创建的文件 shiv 可从github版本获得。 裹尸布和PyYAML被捆绑到一个单独的可执行文件中,它使用 你路上的Python。在

wget https://github.com/LLNL/shroud/archive/shroud-0.12.1.pyz

许可证

版权所有(c)2017-2020,Lawrence Livermore National Security,LLC。 在劳伦斯利弗莫尔国家实验室生产。在

SPDX许可证标识符:(BSD-3-CREASE)

有关详细信息,请参见LICENSE

无限开源-BSD 3子句分发 ^{{cd3}

SPDX使用

单个文件包含SPDX标记,而不是完整的许可证文本。 这使得基于SPDX的许可证信息的机器处理成为可能 此处提供的许可证标识符:https://spdx.org/licenses/

被授权为bsd3-Clause的文件包含以下内容 许可证标题中的文本:

SPDX许可证标识符:(BSD-3-CREASE)

外部包装

裹尸布在其存储库中捆绑了一些外部依赖项。这些 软件包受各种许可证的保护。摘要清单 跟随。有关详细信息,请参阅每个软件包附带的许可证。在

包装名称:水果
软件包主页:https://sourceforge.net/projects/fortranxunit/
包装许可声明:BSD-3-条款

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

推荐PyPI第三方库


热门话题
java使用prepared语句在oracle中插入日期   对点具有双重值的java   使用多个通配符的java请求映射   java Springboot为什么要设置springbootstartertomcat   除了对JavaBean的请求之外,还使用servletContext的servlet   java如何清除OCSID。返回到池的连接时的CLIENTID JDBC客户端信息属性   将整型数组转换为光栅Java   java使用对象引用作为互斥锁   java为什么在编程语言中使用sin函数返回奇怪的sin值不像计算器   java如何将JButton链接到对象并调用相关方法   php用Java发送POST数据   导航属性的java模拟加载   java多个活动错误Android试图对空对象引用调用虚拟方法“”   java Android更改ActionBar文本颜色   如何使用带有java反射且不带开关的parant引用创建子类