From 8df0332475991884b8e1801d31f9c3e06d06bf9f Mon Sep 17 00:00:00 2001 From: Nicola Lunghi Date: Thu, 14 Nov 2019 18:58:56 +0000 Subject: [PATCH] setup.cfg: add non GPL format option This is a rewrite of the following upstream commits: - 10f8a3e Add format validators as separate modules - af37707 non GPL format option removing all the non necessary bits (tox in particular) Original author: Nicolas Aimetti Upstream-status: Backported. [ to be removed for releases > 3.1.1 ] --- jsonschema/_format.py | 33 ++++++++++++++++++++++++++++----- setup.cfg | 6 ++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/jsonschema/_format.py b/jsonschema/_format.py index aa04090..c967d98 100644 --- a/jsonschema/_format.py +++ b/jsonschema/_format.py @@ -248,7 +248,26 @@ else: try: import rfc3987 except ImportError: - pass + try: + from rfc3986_validator import validate_rfc3986 + except ImportError: + pass + else: + @_checks_drafts(name="uri",) + def is_uri(instance): + if not isinstance(instance, str_types): + return True + return validate_rfc3986(instance, rule="URI") + + @_checks_drafts( + draft6="uri-reference", + draft7="uri-reference", + raises=ValueError, + ) + def is_uri_reference(instance): + if not isinstance(instance, str_types): + return True + return validate_rfc3986(instance, rule="URI_reference") else: @_checks_drafts(draft7="iri", raises=ValueError) def is_iri(instance): @@ -280,15 +299,19 @@ else: try: - import strict_rfc3339 + from strict_rfc3339 import validate_rfc3339 except ImportError: - pass -else: + try: + from rfc3339_validator import validate_rfc3339 + except ImportError: + validate_rfc3339 = None + +if validate_rfc3339: @_checks_drafts(name="date-time") def is_datetime(instance): if not isinstance(instance, str_types): return True - return strict_rfc3339.validate_rfc3339(instance) + return validate_rfc3339(instance) @_checks_drafts(draft7="time") def is_time(instance): diff --git a/setup.cfg b/setup.cfg index 74bc4a7..878221c 100644 --- a/setup.cfg +++ b/setup.cfg @@ -40,6 +40,12 @@ format = rfc3987 strict-rfc3339 webcolors +format_nongpl = + idna + jsonpointer>1.13 + webcolors + rfc3986-validator>0.1.0 + rfc3339-validator [options.entry_points] console_scripts = -- 2.20.1