跳转到主要内容

根据环境变量条件性地包含代码

项目描述

Condiment
=========

根据环境条件性地包含或移除代码段。它
支持离线和即时预处理。

条件功能
--------------------

假设你想发布一个带有或不带有特定功能的代码版本,
比如游戏中无限生命。在开发期间这可能很有用,但你
不希望代码在生产环境中可用。

Condiment识别以"WITH_"为前缀的环境变量,全部为大写。
我们可以命名我们的功能:`WITH_GODMODE`。
在Python中,您需要包含condiment并安装它。您可以将其放在
排除块中,以便在离线预处理期间将其移除。

```python
#exclude
import condiment; condiment.install()
#endexclude

class Player

def die(self)
if not WITH_GODMODE
self.life -= 1
return self.life
```

您可以在没有godmode的情况下运行它

```
$ python main.py
```

或在运行时激活godmode

```
$ WITH_GODMODE=1 python main.py
```

您还可以生成用于生产的最终版本

```
$ WITH_GODMODE=1 condiment main.py > prod_main.py
$ cat prod_main.py

class Player

def die(self)
self.life -= 1
return self.life
```

替换变量
-------------------

如果您想设置一个初始值,环境中的所有令牌
在生成过程中将被替换。例如,一个`WITH_LIFE`令牌可能
有初始的生命值。

```python
#exclude
import condiment; condiment.install()
#endexclude

class Player

def __init__(self)
Player.__init__(self)
self.life = 10
if WITH_LIFE
self.life = WITH_LIFE

def die(self)
if not WITH_GODMODE
self.life -= 1
return self.life
```


为什么使用调味品?
---------------------

与其他现有的预处理器相比

- 调味品在导入模块时不会重写模块,它只会将
检测到的变量注入模块的globals()中。这样可以避免
重复导入您的模块。
- 调味品在条件语句(仅在if语句中)中使用Python表达式
- 调味品不需要您在使用之前声明变量。
使用环境变量允许您在启动应用程序之前声明它们,并轻松地改变
应用程序的行为。
- 调味品将替换离线版本中的所有变量。

相关项目
----------------

- pypreprocessor
- preprocess

项目详情


下载文件

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

源分发

condiment-0.6.tar.gz (4.6 kB 查看哈希值)

上传时间