跳转到主要内容

文件预处理器。

项目描述

### 预处理器

适用于Python文件的简单预处理器。该软件包的原用例是处理数据类型相关的Cython工作。注意,预处理器可以在任何类型的文件上运行(例如TSV,C++源文件等)。为了避免与其他编程语言预处理器冲突,前缀和后缀是完全可调的。

#### 示例
这里有一个小文件,我们在其中重复了相同的Cython代码3次——一次用于每个int,float和double数据类型。您可以在本仓库中的`sample_utils.py`文件中找到`typed_expression`函数的代码。

```Python
pyp
from sample_utils import typed_expression
ypy

cdef class Mat
cdef CMat[dtype] matinternal
int dtype

def sum(Mat self)
# 行内预处理器表达式。执行一个函数。
# 通常行内表达式应该是一行,
# 但可以扩展到多行,其中第二行及以后的
# 所有数据都将被捕获为字符串参数,
# 作为函数的最后一个位置参数传递

pypinline typed_expression(pyp, "self.matinternal", "CMat",
print('siema')
return WrapMat(TYPED_EXPRESSION.sum())
ypy
```

预处理器处理后的文件输出如下

```Python
cdef class Mat
cdef CMat[dtype] matinternal
int dtype

def sum(Mat self)
# 行内预处理器表达式。执行一个函数。
# 通常行内表达式应该是一行,
# 但可以扩展到多行,其中第二行及以后的
# 所有数据都将被捕获为字符串参数,
# 作为函数的最后一个位置参数传递

if self.dtype == np.int32
print('siema')
return WrapMat((<CMat[int]>(self.matinternal)).sum())
elif self.dtype == np.float32
print('siema')
return WrapMat((<CMat[float]>(self.matinternal)).sum())
elif self.dtype == np.float64
print('siema')
return WrapMat((<CMat[double]>(self.matinternal)).sum())
else
raise ValueError("Invalid dtype:" + self.dtype + " (should be one of int32, float32, float64)")
```

#### 命令行界面

预处理器附带一个命令行脚本,以便在Python环境之外轻松运行预处理器

```bash
预处理器 --input sample.py.pre --output sample.py
```

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

preprocessor-1.1.3.tar.gz (4.2 kB 查看哈希值)

上传时间

由以下支持