状态和控制的持久性基于文件系统的标志。

cs.app.flag的Python项目详细描述


状态和控制的持久性基于文件系统的标志。

文件系统可见布尔标志 对于控制和状态, 允许轻松监控服务或其他状态, 以及旗管控制 用于同时监视旗帜的节目。

标记表示为具有大写名称的单个文件 在公共目录中(默认为$home/var/flags); 空的或丢失的文件是“false” 一个非空文件是“真的”。

flags类提供对该目录的简单pythonic访问。 它显示为一个可修改的映射,其键是标志名:

  flags = Flags()
  flags['UNTOPPOST'] = True

还有一个FraceDigIn类,提供了方便的方法和属性 用于维护与某个对象关联的标志集合 以对象的.name属性作为前缀的标志名 大写并附加下划线:

  class SvcD(...,FlaggedMixin):
    def __init__(self, name, ...)
      self.name = name
      FlaggedMixin.__init__(self)
      ...
    def disable(self):
      self.flag_disable = True
    def restart(self):
      self.flag_restart = True
    def _restart(self):
      self.flag_restart = False
      ... restart the SvcD ...

因此,对象设置为:

  svcd = SvcD("portfwd")
  print(svcd.flag_disable)

访问名为“portfwd_disable”的标志。

FlaggedMixin

一个添加Frime*和FravaMeN**属性的MIXIN类。

这将定义实例的以下属性:

  • flags:提供标志值的Flags实例。
  • flags_prefix:感兴趣标志的前缀。
  • flagname_name:中的全名.flags 被称为name的标志。 这是.flags_prefix + '_' +name 如果.flags_prefix不是空的, 或者只要name否则。
  • flag_name:来自.flags的值 被称为name的标志。 这是一个可设置的属性 将更改传播到.flags

方法FlaggedMixin.__init__(self, flags=None, debug=None, prefix=None)

P>初始化MIXIN。

参数:

  • flags:可选参数; 如果None默认为新的默认值Flags()
  • prefix:可选前缀; 如果不提供前缀 从对象的.name属性, 如果没有.name

Flags

mro:collections.abc.MutableMappingcollections.abc.Mappingcollections.abc.Collectioncollections.abc.Sizedcollections.abc.Iterablecollections.abc.ContainerFlaggedMixin
直接检查标志目录的映射。

方法Flags.__init__(self, flagdir=None, environ=None, lock=None, debug=None)

初始化Flags实例。

参数:

  • flagdir:保存标志状态文件的目录; 如果省略,则使用cs.env.FLAGDIR(environ)
  • 中的值
  • environ:要使用的环境映射, 默认值os.environ
  • lock:控制多线程访问的类似于Lock的互斥体; 如果省略,则不锁定
  • debug:调试模式,默认值False

函数lowername(s)

小写字母,将“u”转换为“-”。注意:不是大写的反面。

函数main(argv=None)

主程序:检查或修改标志。

函数main_flagset(argv=None, stdin=None)

“flagset”命令的主程序。

PolledFlags

mro:builtins.dict
维护标志目录当前状态的一种映射。 定期更新。

这允许应用程序非常频繁地查询标志 而不是敲打文件系统。

功能truthy(value)

决定一个值是否被认为是真的。

字符串转换为:

  • '0'False
  • '1'True
  • 'true'True(不区分大小写)
  • 'false'False(不区分大小写)
  • 其他字符串值保持不变。

其他类型用bool()转换。

函数uppername(s)

大写字母,将某些字符转换为''.'或'.'.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Frida Java windows的逆向工程   Java术语中的对象初始化   java在何处放置maven参数化junit输入xml文件   java如何在Swift中创建以日期为键、布尔值为值的字典/地图?   java Velocity动态属性访问   java Maven站点我如何找到它们?   java JavaFX按钮在显示阶段时显示为选中状态   文件io字符串方法java赋值   java为SOAP头生成证书   java Android更改EditText的setError弹出消息的背景色   java格式存储为字符串的数字   java Testcontainers+dbrider:无法清除表X,消息:启用自动提交时无法提交。,原因:无效   java程序应该可以运行,但仍然没有输出?   Java在列表末尾添加一个节点?   java类对象中的默认构造函数做什么?   java如何更快地从映射返回键和值?