文件预处理器。
项目描述
### 预处理器
适用于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
```
适用于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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1cf360f24a21a3af8ef4a08837c549d20b5160199f6bbc0e4b7fedfda1822855 |
|
MD5 | ef287ec910666943a30ee17e8f5ce34f |
|
BLAKE2b-256 | 96add9f4ffb9bb97d1cb5bcb876b7932571d4dbaa3eff1701ad45d367f0ea27b |