@@ -132,9 +132,16 @@ def conforms(self, instance, format):
132132_draft_checkers = {"draft3" : [], "draft4" : [], "draft6" : []}
133133
134134
135- def _checks_drafts (both = None , draft3 = None , draft4 = None , raises = ()):
136- draft3 = draft3 or both
137- draft4 = draft4 or both
135+ def _checks_drafts (
136+ name = None ,
137+ draft3 = None ,
138+ draft4 = None ,
139+ draft6 = None ,
140+ raises = (),
141+ ):
142+ draft3 = draft3 or name
143+ draft4 = draft4 or name
144+ draft6 = draft6 or name
138145
139146 def wrap (func ):
140147 if draft3 :
@@ -143,11 +150,14 @@ def wrap(func):
143150 if draft4 :
144151 _draft_checkers ["draft4" ].append (draft4 )
145152 func = FormatChecker .cls_checks (draft4 , raises )(func )
153+ if draft6 :
154+ _draft_checkers ["draft6" ].append (draft6 )
155+ func = FormatChecker .cls_checks (draft6 , raises )(func )
146156 return func
147157 return wrap
148158
149159
150- @_checks_drafts ("email" )
160+ @_checks_drafts (name = "email" )
151161def is_email (instance ):
152162 if not isinstance (instance , str_types ):
153163 return True
@@ -167,7 +177,7 @@ def is_ipv4(instance):
167177
168178
169179if hasattr (socket , "inet_pton" ):
170- @_checks_drafts ("ipv6" , raises = socket .error )
180+ @_checks_drafts (name = "ipv6" , raises = socket .error )
171181 def is_ipv6 (instance ):
172182 if not isinstance (instance , str_types ):
173183 return True
@@ -195,7 +205,7 @@ def is_host_name(instance):
195205except ImportError :
196206 pass
197207else :
198- @_checks_drafts ("uri" , raises = ValueError )
208+ @_checks_drafts (name = "uri" , raises = ValueError )
199209 def is_uri (instance ):
200210 if not isinstance (instance , str_types ):
201211 return True
@@ -210,20 +220,23 @@ def is_uri(instance):
210220 except ImportError :
211221 pass
212222 else :
213- @_checks_drafts ("date-time" , raises = (ValueError , isodate .ISO8601Error ))
223+ @_checks_drafts (
224+ name = "date-time" ,
225+ raises = (ValueError , isodate .ISO8601Error ),
226+ )
214227 def is_datetime (instance ):
215228 if not isinstance (instance , str_types ):
216229 return True
217230 return isodate .parse_datetime (instance )
218231else :
219- @_checks_drafts ("date-time" )
232+ @_checks_drafts (name = "date-time" )
220233 def is_datetime (instance ):
221234 if not isinstance (instance , str_types ):
222235 return True
223236 return strict_rfc3339 .validate_rfc3339 (instance )
224237
225238
226- @_checks_drafts ("regex" , raises = re .error )
239+ @_checks_drafts (name = "regex" , raises = re .error )
227240def is_regex (instance ):
228241 if not isinstance (instance , str_types ):
229242 return True
0 commit comments