扩展 (python's) jsonschema 模块以允许指定非原始 属性 类型

Extend (python's) jsonschema module to allow specification of non-primitive property types

我有一种情况,我希望一系列模块化组件通过内联 json 模式定义来表达它们的参数要求,作为包含字典的属性保存在代码中,其中 json模式定义被存储。这用于在运行时验证输入,但也用于在 design/specification 时构建 UI。

大多数时候,参数要求完全符合普通 stringnumberobject 子类别,如正常 json 模式所定义 - 但有时我想指定一个特定的 属性 是一个非常特殊的 python 数据类型——可能是 pandas.DataFramenumpy.ndarrayMyClass

很明显,我正在推动 json 架构文档的正常预期,但这感觉好像它可能有用,我想知道核心的扩展是否以及是否一组数据类型是可能的——如果是这样,如何按照这些思路定义一些东西。

{ "title" : "Named DataFrame", 
  "type" : "object",
  "properties" : {
      "name" : {      "type" : "string",
                      "description" : "Name of a dataframe"},
      "dataframe" : { "description" : "A pandas.DataFrame object", 
                      "type" : pandas.DataFrame }
                },
"additionalProperties" : "false"}

是的,负责此扩展性的对象是 jsonschema.TypeChecker