天文学和天体物理学数据的标准规范。

pyastroschema的Python项目详细描述


#astroschema

这个包定义了一组与天文学和天体物理学研究相关的json模式。该模式旨在指定用于包含天文(和相关)数据的json文件的结构。该包还包含在"python"中使用这些模式的模块,以及在以后的其他语言中使用这些模式的模块。

master:[![构建状态(主)](https://travis-ci.org/astrocatalogs/astroschema.svg?branch=master)(https://travis-ci.org/astrocatalogs/astroschema)[![覆盖状态(主)](https://coveralls.io/repos/github/astrocatalogs/astroschema/badge.svg?branch=master)(https://coveralls.io/github/astrocatalogs/astroschema?分支=主)

dev:[![构建状态(dev)](https://travis-ci.org/astrocatalogs/astroschema.svg?branch=dev)(https://travis-ci.org/astrocatalogs/astroschema)[![覆盖状态(dev)](https://coveralls.io/repos/github/astrocatalogs/astroschema/badge.svg?branch=master)(https://coveralls.io/github/astrocatalogs/astroschema?branch=dev)


\structure

-`schema/`:模式规范本身
-`metaschema/`:指定每个astro模式结构的元模式
-`pyastroschema/`:用于与astroschema进行交互的python模块
-`tests/`:包含sam的目录用于测试架构验证的JSON文件:
-`astroschema.json`:此包中包含的每个架构的描述。



\definitions and terminology
-a`struct`是具有架构规范的"astroschema"数据结构。例如,"source"是一个特定的"astroschema"struct,它有一个指定其结构的"schema"。
-一个"entry"是一个"struct"形式的数据,即一个充满数据的"struct"的实例。

-"unique"与"distinging"之比较hat唯一地一对一地标识它所引用的内容。如果两样东西有不同的"独特"属性,它们就不同。如果它们具有相同的"唯一"属性,则它们是相同的。
-例如,"bibcode"是"唯一的",则这些"source"是相同的:
-`{"name":"open supernova catalog","bibcode":"2017apj…835…64g","alias":0}`
-`{"name":"guillochon+2017","bibcode":"2017apj…835…64g,"alias":1}`
-一个"distinging"属性是描述它所引用内容的属性,而不是一对一。如果两个事物有不同的"区别"属性,它们不一定是不同的。如果它们具有相同的"区别"属性,则它们不一定相同。
-例如,"bibcode"是"唯一的",则这些"source"是相同的:
-`{"name":"open supernova catalog","bibcode":"2017apj…835…64g","alias":0}`
-`{"name":"guillochon"+2017年,"bibcode":"2017apj…835…64g","alias":1}`



.json`file now和模式引用中的相对路径要求验证器使用具有基本路径的"json schema.refresolver"对象。为此,在创建"struct.schemadict"实例时,架构规范应为绝对文件路径。方法"utils.load_schema_dict"现在还返回架构的路径。方法"utils.get-schema-odict"和"utils.get-list-of-schema"已被弃用(目前已注释掉),以简化可接受的参数类型。
-[2]代码已被修改为与python2和python3兼容。

-`-init.py`
-`copy-schema-files()`[new-function]
-将所有或单个架构文件复制到给定的目标目录。
-`schema.py`
-`jsonordereddict`
-通过传递sorti,在"dump"和"dumps"命令之前添加钩子进行排序ng函数。
-`schemadict`
-不再接受架构列表作为参数。必须使用"extend"或"update"方法组合架构。
-简化初始化以限制可接受的参数(请参见[1])。
-尽可能存储架构路径和构造的"jsonschema.refresolver"(请参见[1])。
-`extend()`
-默认情况下,将"check_conflict"参数设置为true。
-`update()`[new-function]
-在"jsonordereddict.update()"周围添加包装,以便将参数第一次转换为"schemadict"。
-`utils.py`
-`warn_with_traceback()`[new-function]
-修改"warnings"模块以提供回溯
-`get-schema-odict()`[removed]
-请参见[1]
-`get-schema-list-of-schema()`[removed]
-请参见[1]
-`index-entry-for-schema()`[new-function]
-检索目标架构的索引项(dict)。
-`path_for_schema_file()`[new-function]
-检索目标架构的完整路径。
-`validation.py`
-`pas_validator()`
-传递'kwargs',以便可以将'resolver'添加到validator.

-`schema/`
-重新构造schema以引用新的"defs.json"文件。在每个文件名中添加了"id"属性,这样相对引用和内部引用都可以工作;这可能是python"jsonschema"包中的一个bug。
-`entry.json`
-删除了astrocats特定的字段。
-`defs.json`[新文件]
-特别是新文件对于架构定义,来自其他架构文件的引用。

-`astroschema_index.json`
-更新为包含新的'defs.json`.
-`license`
-从mit更改为gnu
-`manifest.in`,`requirements.in`,`requirements.txt`,`setup.py`,`tox.ini`
-添加了包分发材料。




\v0.5.0-2018-08-02

-添加新的"格式"架构规范,包括"数字"和"天文时间"。
-新的"架构"类,将架构规范存储在"结构"类中。提供内部验证方法。
-注意:"schemadict"尚未*集成到"key"类中,但它存储在每个"keychain"中。
-"struct"子类已升级为使用受保护的类属性(即共享)存储架构信息。添加了包装器(`struct.set_struct_schema()`)和类因子方法(`struct.struct.construct()`),为派生类提供自定义API。

-`pyastroschema/`
-`tests/`
-`test_schemadict.py`[新文件]
-基本构造单元新"schemadict"类的sts。
-`test_struct.py`[new-file]
-对"struct"类的基本测试,特别是确保子类按预期工作,并与新的"schemadict"类一起工作。
-`test_validation.py`[new-file]
-对新"p"的测试as_validator()`方法(和自定义类)。

-`keys.py`
-`key`
-将"key"实例更改为不可变的。一旦它们被创建,它们的属性就不能被更改。
-`` repr`
-在初始化时缓存'repr'的结果以节省时间。取决于"key"是不可变的。
-`equals()`
-错误:相比之下,可以比较会失败的内置方法,例如str的"format"方法。
-`schema.py`
-`jsonordereddict`[new-class]
-这个包装在"orde"上reddict`类添加一些json方法(例如加载/保存到/从字符串)
-`extend()`[new-function]
-在不重写现有参数(例如`update()`do).
-`schemadict`[new-class]
-`jsonordereddict`的子类,设计用于包含模式。添加验证方法。可以从许多模式初始化,在这种情况下,使用"extend()"组合它们。
-`struct.py`
-所有派生结构(struct的子类)现在都使用decorator,而不是使用"meta\u struct"进行子类化。
-`struct`
-添加了"keychain"、"schema"和"extensable"作为受保护的"pro"perty`values.
-更改为继承自'schema.jsonordereddict`以获得基于json的导入/导出方法。
-`construct()`[new-method]
-工厂方法,它使用'struct.set\u schema`创建自定义的'struct'子类,以便以后实例化。
-`get\keychain()`[removed]
-不赞成使用"keychain``property`.
-`to_json()`[removed]
-不赞成使用继承的"jsonordereddict"方法。
-`validate()`
-错误:未使用自定义验证器。现在调用内部"schemadict"进行验证。
-`meta_struct`[removed]
-不赞成使用新的子类化过程。
-`validation.py`
-`pas_validator()`<;=`default_validator()`
-新的自定义验证程序,它不仅设置默认值(如前所述),还检查"nu"meric"format"说明符。
-添加了行为测试。

-`schema/`
-`quantity.json`
-错误,修复:将"value"从数字更改为任何类型。这是为了适应"astrocats"中的"alias"值…不确定这是否应该保留或更改。
-错误,修复:将"source"从数字更改为任何类型。这是为了适应像"1,3,4"这样的字符串,目前在astrocats中使用。这应该在未来解决。





\v0.4.0-2018-07-30

-fix:结构模式的许多方面都发生了变化(例如变量名、新参数),以便与"astrocats"保持一致。这是暂时的。这些都应该在以后恢复/删除。

-`pyastroschema`
-`tests/`
-`test_photometry.py`[new-file]
-"photometry"架构和类的单元测试。
-包括架构中一些复杂的"依赖项"和要求的测试。
-`test_spectrum.py`[new-file]
-对"spectrum"架构和类进行单元测试。
-包括对架构中某些复杂依赖项和要求的测试。

-``uu init_uuu.py`
-`paths`
-`test_u dir()`[新方法]
-返回特定架构的测试json文件目录a.
-`keys.py`
-`keychain`
-`get_key_by_name()`[new-method]
-基于Astrocats中的相关方法。
-基于此keychain而不是其名称获取密钥。
-`struct.py`
-`struct`
-`get_keychain()`
-允许"可变"an要通过此方法传递的d个"可扩展"参数。
-`photometry`[new-class]
-具有关联的"photometry.json"架构的"struct"的新子类。
-`spectrum`[new-class]
-具有关联的"spectrum.json"架构的"struct"的新子类。
-`entry`[new-class]
-带有关联的"entry.json"架构的"struct"的新子类。
-`utils.py`
-`get-schema-odict()`[new-function
-将返回给定文件名、索引架构名或odict的"ordereddict"的函数。
-`get-list-of-schema()`[new-function]
-返回一个odict架构列表给定由文件名、str或odict指定的一个或多个。

-`schema/`
-`photometry.json`
-添加了依赖项,这些依赖项被手动编码到"astrocats``photometry"类中,例如在包含通量时需要频率、频带或能量。
-`entry.json`
-修复:临时添加"…pref-kinds"段"astrocats"一致性的度量。
-`key.json`
-修复:临时更改"astrocats"兼容性。
-`spectrum.json`
-错误:修复了一些不正确的需求逻辑。
-添加了更复杂的需求/依赖逻辑,这些逻辑被硬编码到` astrocats"spectrum"类。



\v0.3.0-2018-07-28

-`conversion.md`[new-file]
-记录从"astrocats"到"astroschema"的转换过程的文件。
-`readme.md`
-许多新的"待办事项"项和需要解决的问题。


-`schema/`
-`entry.json`[new-file]
-目录项的规范(名称、来源、数量等)。基于"astrocats"entry类。
-`key.json`[new-file]
-通用astroschema的单个"keys"的模式规范。与"meta schema.json"一起使用。
-`meta schema.json`<;==`meta schema/astro-schema_draft-0.json`
-所有其他架构的属性与"key.json"架构匹配的架构规范。
-`photometry.json`[新文件]
-指定光度量度的架构领带。基于"astrocats"的"photometry"类。
-`quantity.json`[new-file]
-指定核心"quantity"的架构,核心"quantity"是条目和组合数据值(例如,"photometry")的数据点。
-`spectrum.json`[new-file]
-指定光谱的架构短裤。基于"astrocats"的"spectrum"类。
-`source.json`
-同时使用"unique"和"differenting"属性。"unique"属性是唯一定义其所指内容的属性(即,如果两个"unique"属性匹配,则这些属性指的是同一对象)。"distinging"属性可以用来比较两个实例(基于"astrocats"的"comparable"值概念)。如果两个"区分"值不同,则对象不同;如果它们相同,则对象*可能*相同。

-`pyastroschema/`
-`tests/`
-`test_entry.py`[new-file]
-对新"entry"架构的最简单测试。
-`test_key.py`
-对"key"类的更改进行小更新。
-`test_keychain.py`
-对"keychain"类的更改进行小更新。
-`test_quantity.py`[新文件]
-对新"quantity"架构的基本测试。
-`test ou source.py`
-对从"source"独立类到"source(struct)"子类的更改进行小更新。

-`keys.py`
-`key`
-使用"json"验证,而不是手动检查(如要求)。
-`validate()`[新方法]
-加载不仅验证而且设置默认值的自定义验证器。请参见"validation.py"。
-`equals()`[新方法]
-相互比较两个键(类似于astrocats'is_duplicate_of`methods)。有可选的"相同"参数来确定比较的精度。
-`schema.py`[new-file]
-表示架构本身的类的开头。
-注意:不可操作。
-`struct.py`<;==`source.py`
-以前的"source"类是什么s已泛化为"struct"类,然后可用于任何数据结构。
-`struct`[new-class]
-泛化类结构,以应用于架构指定的任何目录对象。这与‘astrocats.catdict.catdict’clas类似(并且主要基于它)s.
-初始化时,类使用其对应的架构生成一个填充有描述该类的每个属性的"key"实例的"keychain"。使用jsonschema执行验证。
-`meta_struct`[new-class]
-`struct`的子类,设计用于进一步子类化以构造特定类型的对象,例如`source`,`quantity`,等等。`meta_struct`用作指定描述/约束特定结构的架构。
-`validation.py`[new-file]
-创建具有扩展功能的jsonschema验证程序实例以设置参数的默认值。当前用于设置默认的"key"属性。




。目前,这采用标准JSON架构并对其进行了略微扩展:每个"property"都需要"type"和"unique"属性。
-`source.json`
-`source'对象的架构规范。
-目前:v0.4

-`pyastroschema/`
-`tests/`
-` test_keychain.py`
-对"keychain"类进行单元测试。
-`test_source.py`
-对"source"类的基本功能进行基本测试。
-对复制和deepcopy行为进行测试。

-`uu main `
-`main()`
-这是主接口例程。
-加载astro模式元模式并根据标准json模式验证它。
-加载所有astro模式并根据元模式和标准json模式验证它们。
-生成一个"index"输出文件,列出当前包含的架构及其版本和修改信息。
-`keys.py`
-将"keychain"从"source.py"移到此处。
-添加新的"key"类以保存每个属性键。

-`source.py`
-删除了"keychain"类(请参见"keys.py")。
-`source`
-添加了对"复制"和"深度复制"方法的重写。
-`is"duplicate"of()`[新函数]
-在astrocats类中复制了相关方法的行为。
-`utils.py`
-` json加载str()`[新函数]
-从json格式的字符串加载字典。
-`get_relative_path()`[新函数]
-从完整路径转换为相对于给定引用路径的路径。





v0.1.0-2018-06-28


-为"source"结构创建了简单的架构。
-在"tests/source"中添加了一些测试json文件以检查验证。

-`pyastroschema/`
-`keychain`类以存储架构文件中指定的参数名称('keys')。
-`source`类以存储与e`source.json`架构。当前特定于"source"结构,将来将被泛化为任意架构。
-使用"jsonschema"python包对"source"条目和"source"实例进行验证。这使用了"tests/source"中的示例json文件。



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

推荐PyPI第三方库


热门话题
编译器构造为什么在Java中允许初始化对Null的引用?   java手动调用javax的actionPerformed。摆动计时器   使用git分支的java Maven版本控制   Java8句子流   java JPA OneToOne和OneToMany实体实例化/创建   java如何将值添加到列表<Map<String,Object>>?   java如何使用ComboBox在一个框架内更改JPanel。getSelectedIndex()   java在比较XML和xmlunit时忽略文本差异   java无法从其他pc连接到本地主机   Java中分配对象id的优雅方式   Java中静态变量的使用   java试图从Neteller获取OAuth访问令牌时产生错误:“服务器返回HTTP响应代码:401表示URL”   Java:基元类型是否会影响性能?   java可以让hasNext()不区分大小写吗?   基于AutoCompleteTextView建议属性或AutoCompleteTextView值的java Android搜索   java流文件到firefox浏览器有时无法打开应用程序对话框   在没有ArrayList的Java中返回数组中的搜索结果   复制java。木卫一。IOException:数据错误(CRC)   java为什么我在尝试删除Facebook测试用户时会出现“方法未实现”错误   java如何使用JNA调用SetProcessReliationPolicy