通用yaml/json配置读写器

saiti的Python项目详细描述


saiti-通用yaml/json配置处理程序

saiti包将yaml或json配置文件转换为类。 用于我们的应用程序。它对参数进行验证 并检查参数的存在性。验证是为了防止 配置中的输入错误。

它目前支持跟踪外部包;

  • 烧瓶
  • 烧瓶Jwt
  • 烧瓶Jwt伸长
  • 烧瓶sqlalchemy
  • 烧瓶后挡板

概念

这个概念简单明了,从一个 继承configfile类并实现可访问的属性 在根文件级别。对于基元变量(str、int、bool和float) 同时实现属性getter和setter。

classMyConfigurationFileObject(ConfigYamlFile):def__init__(self,**kwargs)self.__property_name=defaultvalueorNone...ConfigFile.__init__(self,**kwargs)return@propertydefproperty_name(self):returnself.__property_name@property_name.setterdefproperty_name(self,value)self.__property_name=valuereturn

对于复杂的属性,只需要实现一个getter。

classMyConfigurationObject(ConfigProcessor):def__init__(self,**kwargs)self.__list_property_name=[]self.__object_property_name=DerivedConfigProcessorself.__list_objects_property_name=DerivedConfigProcessorList...@propertydeflist_property_name(self):returnself.__list_property_name@propertydefobject_property_name(self):returnself.__object_property_name@propertydeflist_object_property_name(self):returnself.__list_object_property_name

内部变量可能是一个包含原始变量的简单列表,或者 从中的configprocessor或configlistprocessor派生的对象 复杂对象列表的大小写。

从configprocess类派生的对象如下所示

fromsaitiimportConfigProcessorclassMyConfigurationObject(ConfigProcessor):def__init__(self,**kwargs):self.__property_name=defaultvalueorNoneConfigProcessor.__init__(self,'<name>',**kwargs)...@propertydefproperty_name(self):returnself.__property_name@property_name.setterdefproperty_name(self,value)self.__property_name=valuereturn

一个复杂对象的列表需要像上面这样的一个实现 在名单上。以及configlistprocessor类的一个实现 下面。

fromsaitiimportConfigListProcessorclassMyListConfigurationObject(ConfigListProcessor):def__init__(self,**kwargs):ConfigListProcessor.__init__(self,**kwargs)returndefnewObject(self,name,obj):returnMyConfigurationObject(name)

库中提供了许多配置类;

  • loggingconfig;实现标准的python日志记录。
  • databaseconfig:实现访问的标准配置项 到具有以下属性的数据库:
  • engine
  • database
  • username
  • password
  • hostname
  • hostport
  • 烧瓶配置:
<> P>混炼子包中也有许多混炼;

    HooToPosikCasiMin;具有以下属性:
  • hostname
  • host same ase hostname
  • hostport
  • port same ase hostport
  • UserPassConfigMixin;具有以下性质:
  • username
  • password

特殊情况

每当配置包含配置对象的键时 是变量,因此不是预定义的。

在派生的configprocessor类中,变量“通配符对象”必须 设置为从configprocessor派生的类。

示例

请参见示例文件夹

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

推荐PyPI第三方库


热门话题
如何在Java中比较忽略大小写的字符串   Swing应用程序中的java本机接口Jni字体错误   在maven spark java应用程序中运行html文件的javascript   JavaMaven和jboss模块   会话过期后java自动注销   java Android警报对话框强制关闭错误   java为分级栏添加边距/填充   java JPanel在使用BoxLayout时不会调整大小   java如何在编辑JTable的JSpinner单元格后重新应用或重新提交我的JTable   java异步任务FTP上载Android服务崩溃?   java如何从对象列表中获取字符串属性数组   java在许多片段中使用BroadcastReceiver   java Sockets聊天应用NotSerializableException   Java audio无法在Linux中播放wav文件   空的花括号/大括号在Java中是什么意思?   intellij idea如何告诉草书Clojure模块依赖于本地Java/Scala模块?   swing Java键绑定在按住键的同时触发按下和释放   当使用via时,java Log4j不显示行记录。jar文件