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

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第三方库


热门话题
java如何在导航抽屉中显示图像   DDD中的java聚合对象   java如何在登录后隐藏主活动上的项目?   java如何知道MouseWheelListener是否可以接收事件?   java地图中未显示新标记   Z3Java绑定是否具有与python相同的get_vars()API?   java重置或清除Lucene索引   Java骑士之旅代码   集合Java类树集合中的Java方法headSet和tailSet在日志(N)时间内工作吗?   java从SpringWeb服务获取Jetty实例   java需要在jira中将jsp文件更改为vm文件   创建对象时发生java IllegalMonitorStateException   java SnakeYaml从字符串第一行转储   使用java在文件中逐个使用for循环写入行