在python程序中使用的可嵌套、可选项卡选项
optioneer的Python项目详细描述
optioner在程序选项中生成:
- 可嵌套且可分组,
- REPL中是否可以使用tab键,以便轻松找到选项
- 为每个选项提供一个可选的文档字符串,以便轻松解释该选项
- 可根据透明折旧周期进行折旧
- 可在更改时验证
- 可以执行自定义回调
optioner基于中的core/config.py模块 pandas。
安装
使用pip安装很容易:
pip install optioneer
使用指南
在config.py文件中设置选项:
fromoptioneerimportOptioneeroptions_maker=Optioneer()options_maker.register_option('api_key','abcdefg')options_maker.register_option('display.width',200,doc='Width of our display')options_maker.register_option('display.height',200,doc='Height of our display')options_maker.register_option('color','red',validator=options_maker.is_str)options=options_maker.options
然后,在你图书馆的相关位置,只要 from config import options你已经设置好了选项。
库的用户现在可以从相关位置访问选项 在您的软件包中,例如,如果您已经提供了顶级的 __init__.py一个名为mylib的包:
>>>importmylib>>>importmylib.optionsOptions(api_key:Nodescriptionavailable.[default:abcdefg][currently:abcdefg]color:Nodescriptionavailable.[default:red][currently:red]display.height:Heightofourdisplay[default:200][currently:200]display.width:Widthofourdisplay[default:200][currently:200])
请注意repr输出如何显示相关选项及其说明。
使用REPL中的选项卡可以发现相关选项:
>>>mylib.options.<TAB>option.api_keyoptions.coloroptions.display>>>mylib.options.display.<TAB>options.display.heightoptions.display.width
您还可以很容易地看到中的子组的选项及其值和文档 repr字符串:
>>>mylib.options.displayOptions(display.height:Heightofourdisplay[default:200][currently:200]display.width:Widthofourdisplay[default:200][currently:200])
回调
通过在注册选项时提供回调,更改选项可能会触发 期望的行动。例如,如果您在config.pydo:
options_maker.register_option('shout',True,callback=lambdax:print("YEAH!"))
然后用户在更改该选项时将看到:
>>>mylib.options.shout=FalseYEAH!
当然,回调可能比上面更实际,例如日志记录或 设置一些内部选项或其他内容。
弃用选项
如果您想否决某个选项,optioneer允许您这样做:
options_maker.deprecate_option('api_key',msg='An api key is no longer needed')
现在,如果您的用户访问此选项,将收到一个弃用警告:
>>>mylib.options.api_keyAnapikeyisnolongerneededC:\Users\TP\Documents\Python\optioneer\optioneer\lib.py:677:FutureWarning:Anapikeyisnolongerneededwarnings.warn(deprecated_option.msg,FutureWarning)Out[20]:'abcdefg'
如果一个选项应该被重命名和/或一个标记应该在什么时候 也可以删除:
options_maker.register_option('display.length',300,doc='Length of our display')options_maker.deprecate_option('display.height',redirect_key='display.length',removal_version='v1.3')
然后访问该选项将显示
>>>mylib.options.display.heightC:\Users\TP\Documents\Python\optioneer\optioneer\lib.py:689:FutureWarning:'display.height'isdeprecatedandwillberemovedinv1.3,pleaseuse'display.length'instead.warnings.warn(msg,FutureWarning)Out[24]:300
不推荐的选项不会显示在repr输出或制表符完成时。
依赖关系
认股人没有外部依赖关系。
optioner使用pytest进行测试。
许可证
认股权人获得BSD 3许可。