Connexion: 包含值“no”的枚举错误

创建于 2018-07-29  ·  3评论  ·  资料来源: zalando/connexion

描述

包含值'no'的枚举在模式验证器中将该值转换为 False,从而导致验证错误。

预期行为

'no'表示'no'

实际行为

'no'被转换为 False。

重现步骤

只需创建一个这样的枚举:

Countries:
    type: string
    enum:
      - ad
      - ae
      - af
      - ag
      - ai
      - al
      - am
      - ao
      - aq
      - ar
      - as
      - at
      - au
      - aw
      - ax
      - az
      - ba
      - bb
      - bd
      - be
      - bf
      - bg
      - bh
      - bi
      - bj
      - bl
      - bm
      - bn
      - bo
      - bq
      - br
      - bs
      - bt
      - bv
      - bw
      - by
      - bz
      - ca
      - cc
      - cd
      - cf
      - cg
      - ch
      - ci
      - ck
      - cl
      - cm
      - cn
      - co
      - cr
      - cu
      - cv
      - cw
      - cx
      - cy
      - cz
      - de
      - dj
      - dk
      - dm
      - do
      - dz
      - ec
      - ee
      - eg
      - eh
      - er
      - es
      - et
      - fi
      - fj
      - fk
      - fm
      - fo
      - fr
      - ga
      - gb
      - gd
      - ge
      - gf
      - gg
      - gh
      - gi
      - gl
      - gm
      - gn
      - gp
      - gq
      - gr
      - gs
      - gt
      - gu
      - gw
      - gy
      - hk
      - hm
      - hn
      - hr
      - ht
      - hu
      - id
      - ie
      - il
      - im
      - in
      - io
      - iq
      - ir
      - is
      - it
      - je
      - jm
      - jo
      - jp
      - ke
      - kg
      - kh
      - ki
      - km
      - kn
      - kp
      - kr
      - kw
      - ky
      - kz
      - la
      - lb
      - lc
      - li
      - lk
      - lr
      - ls
      - lt
      - lu
      - lv
      - ly
      - ma
      - mc
      - md
      - me
      - mf
      - mg
      - mh
      - mk
      - ml
      - mm
      - mn
      - mo
      - mp
      - mq
      - mr
      - ms
      - mt
      - mu
      - mv
      - mw
      - mx
      - my
      - mz
      - na
      - nc
      - ne
      - nf
      - ng
      - ni
      - nl
      - no
      - np
      - nr
      - nu
      - nz
      - om
      - pa
      - pe
      - pf
      - pg
      - ph
      - pk
      - pl
      - pm
      - pn
      - pr
      - ps
      - pt
      - pw
      - py
      - qa
      - re
      - ro
      - rs
      - ru
      - rw
      - sa
      - sb
      - sc
      - sd
      - se
      - sg
      - sh
      - si
      - sk
      - sl
      - sm
      - sn
      - so
      - sr
      - ss
      - st
      - sv
      - sx
      - sy
      - sz
      - tc
      - td
      - tf
      - tg
      - th
      - tj
      - tk
      - tl
      - tm
      - tn
      - to
      - tr
      - tt
      - tv
      - tw
      - tz
      - ua
      - ug
      - um
      - us
      - uy
      - uz
      - va
      - vc
      - ve
      - vg
      - vi
      - vn
      - vu
      - wf
      - ws
      - ye
      - yt
      - za
      - zm
      - zw

并将其作为参数和响应发送 - 你会看到它发生。

附加信息:

来自 Connexion 验证器的示例错误:

2018-07-27 11:56:33,268 [15/#7fc7bc797638] ERROR in validation.validate_schema:131: validation error: 'no' is not one of ['ww', 'eu', 'ad', 'ae', 'af', 'ag', 'ai', 'al', 'am', 'ao', 'aq', 'ar', 'as', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bl', 'bm', 'bn', 'bo', 'bq', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', 'cd', 'cf', 'cg', 'ch', 'ci', 'ck', 'cl', 'cm', 'cn', 'co', 'cr', 'cu', 'cv', 'cw', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', 'eg', 'eh', 'er', 'es', 'et', 'fi', 'fj', 'fk', 'fm', 'fo', 'fr', 'ga', 'gb', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie', 'il', 'im', 'in', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', 'me', 'mf', 'mg', 'mh', 'mk', 'ml', 'mm', 'mn', 'mo', 'mp', 'mq', 'mr', 'ms', 'mt', 'mu', 'mv', 'mw', 'mx', 'my', 'mz', 'na', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', False, 'np', 'nr', 'nu', 'nz', 'om', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', 'ps', 'pt', 'pw', 'py', 'qa', 're', 'ro', 'rs', 'ru', 'rw', 'sa', 'sb', 'sc', 'sd', 'se', 'sg', 'sh', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'sv', 'sx', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tl', 'tm', 'tn', 'to', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'um', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'yt', 'za', 'zm', 'zw']

我猜这是由一些自动代码引起的,这些代码将'no'为 False,将'yes'为 True,但我没有足够的时间深入研究代码。

命令的输出:

  • python --version
    蟒蛇 3.6.3

  • pip show connexion | grep "^Version\:"
    版本:2016.0.dev1(是的,旧的,但它也发生在最新的)

最有用的评论

我想我们可以关闭这个问题吗? 我们/Connexion 无法修复 YAML 规范.. :smirk:

所有3条评论

这是 yaml 文件格式的属性。 你需要引用你的
字符串类型。

在周一7月30,2018,5:59阿龙钻石[email protected]写道:

描述

包含值 'no' 的枚举将该值转换为 False
模式验证器,导致验证错误。
预期行为

'不就是不'。
实际行为

'no' 被强制转换为 False。
重现步骤

只需创建一个这样的枚举:

国家:
类型:字符串
枚举:
- 广告
- ae
- AF
- 银
- 艾
- 阿尔
- 是
- 奥
- 水
- ar
- 作为
- 在
- au
- 啊
- 斧头
- az
- 巴
- BB
- BD
- 是
- 男朋友
- 背景
- bh
- 毕
- bj
- BL
- BM
- 十亿
- 博
- bq
- br
- BS
- BT
- bv
- 体重
- 经过
- bz
- ca
- 抄送
- 光盘
- 比照
- CG
- ch
- 慈
- ck
- CL
- 厘米
- cn
- 合作
- CR
- 铜
- 简历
- 连续
- CX
- cy
- cz
- 德
- DJ
- dk
- dm
- 做
- dz
- 欧共体
- ee
- 例如
- 嗯
- 呃
- es
- 等
- fi
- 缩略词
- fk
- 调频
- 佛
- fr
- 嘎
- 国标
- GD
- 葛
- 女朋友
- GG
- gh
- gi
- GL
- 通用汽车
- GN
- GP
- gq
- 克
- GS
- GT
- 顾
- GW
- gy
- 香港
- 嗯
- 恩
- 小时
- H T
- 胡
- ID
- IE
- 伊尔
- 我是
- 在
- io
- 智商
- 红外线
- 是
- 它
- je
- jm
- 乔
- J.P
- 克
- 公斤
- kh
- ki
- 公里
- 知识
- kp
- kr
- 千瓦
- 凯
- kz
- 拉
- 磅
- lc
- 李
- lk
- lr
- ls
- lt
- 卢
- lv
- ly
- 嘛
- 麦克
- 医学博士
- 我
- mf
- 毫克
- 嗯
- 马克
- 毫升
- 毫米
- 锰
- 莫
- 议员
- MQ
- 先生
- 多发性硬化症
- 山
- 亩
- MV
- 兆瓦
- MX
- 我的
- mz
- 呐
- nc
- ne
- NF
- ng
- 你
- NL
- 不
- NP
- NR
- 努
- 新西兰
- 嗡
- pa
- 聚乙烯
- pf
- pg
- 酸碱度
- pk
- pl
- 下午
- pn
- 公关
- ps
- 点
- 密码
- py
- qa
- 回覆
- 罗
- rs
- 茹
- rw
- 萨
- 某人
- sc
- 标清
- se
- SG
- sh
- si
- sk
- SL
- sm
- sn
- 所以
- sr
- ss
- 英石
- SV
- sx
- sy
- sz
- tc
- td
- tf
- tg
- 次
- tj
- 传统知识
- tl
- Tm值
- tn
- 到
- tr
- tt
- 电视
- tw
- 茨
- UA
- ug
- 嗯
- 我们
- 嗯
- 乌兹
- va
- VC
- ve
- vg
- 六
- vn
- 武
- wf
- ws
- 是的
- yt
- 扎
- zm
- zw

并将其作为参数和响应发送 - 你会看到它发生。
附加信息:

来自 Connexion 验证器的示例错误:

2018-07-27 11:56:33,268 [15/#7fc7bc797638]validation.validate_schema :131 中的错误:验证错误:'no' 不是 ['ww'、'eu'、'ad'、'ae 之一', 'af', 'ag', 'ai', 'al', 'am', 'ao', 'aq', 'ar', 'as', 'at', 'au', 'aw', 'ax', 'az', 'ba', 'bb', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bj', 'bl', 'bm ', 'bn', 'bo', 'bq', 'br', 'bs', 'bt', 'bv', 'bw', 'by', 'bz', 'ca', 'cc', “cd”、“cf”、“cg”、“ch”、“ci”、“ck”、“cl”、“cm”、“cn”、“co”、“cr”、“cu”、“cv” ', 'cw', 'cx', 'cy', 'cz', 'de', 'dj', 'dk', 'dm', 'do', 'dz', 'ec', 'ee', “eg”、“eh”、“er”、“es”、“et”、“fi”、“fj”、“fk”、“fm”、“fo”、“fr”、“ga”、“gb” ', 'gd', 'ge', 'gf', 'gg', 'gh', 'gi', 'gl', 'gm', 'gn', 'gp', 'gq', 'gr', 'gs', 'gt', 'gu', 'gw', 'gy', 'hk', 'hm', 'hn', 'hr', 'ht', 'hu', 'id', 'ie ', 'il', 'im', 'in', 'io', 'iq', 'ir', 'is', 'it', 'je', 'jm', 'jo', 'jp', 'ke', 'kg', 'kh', 'ki', 'km', 'kn', 'kp', 'kr', 'kw', 'ky', 'kz', 'la', 'lb ', 'lc', 'li', 'lk', 'lr', 'ls', 'lt', 'lu', 'lv', 'ly', 'ma', 'mc', 'md', '我','mf','mg','mh','mk', “ml”、“mm”、“mn”、“mo”、“mp”、“mq”、“mr”、“ms”、“mt”、“mu”、“mv”、“mw”、“mx” ', 'my', 'mz', 'na', 'nc', 'ne', 'nf', 'ng', 'ni', 'nl', False, 'np', 'nr', 'nu ', 'nz', 'om', 'pa', 'pe', 'pf', 'pg', 'ph', 'pk', 'pl', 'pm', 'pn', 'pr', “ps”、“pt”、“pw”、“py”、“qa”、“re”、“ro”、“rs”、“ru”、“rw”、“sa”、“sb”、“sc” ', 'sd', 'se', 'sg', 'sh', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sr', 'ss', 'st', 'sv', 'sx', 'sy', 'sz', 'tc', 'td', 'tf', 'tg', 'th', 'tj', 'tk', 'tl ', 'tm', 'tn', 'to', 'tr', 'tt', 'tv', 'tw', 'tz', 'ua', 'ug', 'um', 'us', 'uy', 'uz', 'va', 'vc', 've', 'vg', 'vi', 'vn', 'vu', 'wf', 'ws', 'ye', 'yt ', 'za', 'zm', 'zw']

我猜这是由一些将“否”转换为“否”的自动代码引起的
False 和 True 的“是”,但我没有足够的时间深入研究
代码。

命令的输出:

——

蟒蛇--版本
蟒蛇 3.6.3
——

点显示连接| grep "^版本:"
版本:2016.0.dev1(是的,旧的,但它也发生在最新的)


您收到此消息是因为您订阅了此线程。
直接回复本邮件,在GitHub上查看
https://github.com/zalando/connexion/issues/646 ,或静音线程
https://github.com/notifications/unsubscribe-auth/AAlPSbDrv5AocLyMGZKe2WPOLbUAMk_Eks5uLhQogaJpZM4VljBk
.

是的,我已经想通了:
https://github.com/yaml/pyyaml/blob/93694d3e42b0cfd460f42beb75910aacacd9b5d2/lib3/yaml/constructor.py#L210

有点傻好的,将引用并希望它有效。 谢谢!

我想我们可以关闭这个问题吗? 我们/Connexion 无法修复 YAML 规范.. :smirk:

此页面是否有帮助?
0 / 5 - 0 等级