Remove JSONSchema 1.3 compatibility code

JSONSchema 1.3 is no longer satisfies Designates dependencies

Change-Id: I994ab7525d2a5c2b5d51572dead78a54df1b2fac
This commit is contained in:
Kiall Mac Innes 2014-03-12 18:40:41 +00:00
parent 5e7da3e282
commit 2da6b064a8
2 changed files with 17 additions and 61 deletions

View File

@ -15,20 +15,11 @@
# under the License.
import datetime
import jsonschema
try:
# JSONSchema 2+
from jsonschema import _utils
ensure_list = _utils.ensure_list
types_msg = _utils.types_msg
except ImportError:
# JSONSchema 1.3
ensure_list = jsonschema._list
types_msg = jsonschema._types_msg
from jsonschema import _utils
def type_draft3(validator, types, instance, schema):
types = ensure_list(types)
types = _utils.ensure_list(types)
# NOTE(kiall): A datetime object is not a string, but is still valid.
if ('format' in schema and schema['format'] == 'date-time'
@ -49,7 +40,7 @@ def type_draft3(validator, types, instance, schema):
return
else:
yield jsonschema.ValidationError(
types_msg(instance, types), context=all_errors,
_utils.types_msg(instance, types), context=all_errors,
)
@ -76,7 +67,7 @@ def oneOf_draft3(validator, oneOf, instance, schema):
def type_draft4(validator, types, instance, schema):
types = ensure_list(types)
types = _utils.ensure_list(types)
# NOTE(kiall): A datetime object is not a string, but is still valid.
if ('format' in schema and schema['format'] == 'date-time'
@ -84,4 +75,4 @@ def type_draft4(validator, types, instance, schema):
return
if not any(validator.is_type(instance, type) for type in types):
yield jsonschema.ValidationError(types_msg(instance, types))
yield jsonschema.ValidationError(_utils.types_msg(instance, types))

View File

@ -13,56 +13,21 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import jsonschema
from jsonschema import validators
from designate.openstack.common import log as logging
from designate.schema import _validators
LOG = logging.getLogger(__name__)
Draft3Validator = validators.extend(
validators.Draft3Validator,
validators={
"type": _validators.type_draft3,
"oneOf": _validators.oneOf_draft3,
})
# JSONSchema 1.3 to 2.0 compatibility
try:
# JSONSchema 2+
from jsonschema import _utils # flake8: noqa
from jsonschema import validators
JS2 = True
Draft3ValidatorBase = validators.Draft3Validator
Draft4ValidatorBase = validators.Draft4Validator
except ImportError:
# JSONSchema 1.3
JS2 = False
Draft3ValidatorBase = jsonschema.Draft3Validator
Draft4ValidatorBase = jsonschema.Draft4Validator
if JS2:
Draft3Validator = validators.extend(
Draft3ValidatorBase,
validators={
"type": _validators.type_draft3,
"oneOf": _validators.oneOf_draft3,
})
Draft4Validator = validators.extend(
Draft4ValidatorBase,
validators={
"type": _validators.type_draft4,
})
else:
class Draft3Validator(Draft3ValidatorBase):
def validate_type(self, types, instance, schema):
for i in _validators.type_draft3(self, types, instance,
schema):
yield i
def validate_oneOf(self, oneOf, instance, schema):
for i in _validators.oneOf_draft3(self, oneOf, instance, schema):
yield i
class Draft4Validator(Draft4ValidatorBase):
def validate_type(self, types, instance, schema):
for i in _validators.type_draft4(self, types, instance,
schema):
yield i
Draft4Validator = validators.extend(
validators.Draft4Validator,
validators={
"type": _validators.type_draft4,
})