根据环境变量条件性地包含代码
项目描述
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识别以"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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f0e4f95bfd8d516c1c8b96b602f4b16454e971a4a4435643abc8c004f32fe646 |
|
MD5 | 024bac4a26a41908632f41ea5cf4e388 |
|
BLAKE2b-256 | eaad6e499998cf9371587fb1af5985957d59dd43dd6e1c3d870791164b8eae1b |