Skip to content

Commit 3e1c2e9

Browse files
authored
Merge pull request #125 from guokr/fix_124_sanic_schemas
fix sanic schema and py3 compatible error
2 parents f501981 + 847d69f commit 3e1c2e9

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

swagger_py_codegen/sanic.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from .base import Code, CodeGenerator
66
from .jsonschema import build_default, build_data
7+
import six
78

89
SUPPORT_METHODS = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head']
910

@@ -109,8 +110,12 @@ def _type(parameters):
109110
return url, params
110111

111112

112-
def _remove_characters(text, deletechars):
113-
return text.translate({ord(x): None for x in deletechars})
113+
if six.PY3:
114+
def _remove_characters(text, deletechars):
115+
return text.translate({ord(x): None for x in deletechars})
116+
else:
117+
def _remove_characters(text, deletechars):
118+
return text.translate(None, deletechars)
114119

115120

116121
def _path_to_endpoint(swagger_path):
@@ -150,18 +155,18 @@ def _dependence_callback(self, code):
150155
# use sanic endpoint to replace default validator's key,
151156
# example: `('some_path_param', 'method')`
152157
validators = OrderedDict()
153-
for k, v in schemas.data['validators'].items():
154-
locations = {_location(loc): val for loc, val in v.items()}
158+
for k, v in six.iteritems(schemas.data['validators']):
159+
locations = {_location(loc): val for loc, val in six.iteritems(v)}
155160
validators[(_path_to_endpoint(k[0]), k[1])] = locations
156161

157162
# filters
158163
filters = OrderedDict()
159-
for k, v in schemas.data['filters'].items():
164+
for k, v in six.iteritems(schemas.data['filters']):
160165
filters[(_path_to_endpoint(k[0]), k[1])] = v
161166

162167
# scopes
163168
scopes = OrderedDict()
164-
for k, v in schemas.data['scopes'].items():
169+
for k, v in six.iteritems(schemas.data['scopes']):
165170
scopes[(_path_to_endpoint(k[0]), k[1])] = v
166171

167172
schemas.data['validators'] = validators
@@ -191,7 +196,7 @@ def _process_data(self):
191196
if validator:
192197
methods[method]['requests'] = list(validator.keys())
193198

194-
for status, res_data in data[method].get('responses', {}).items():
199+
for status, res_data in six.iteritems(data[method].get('responses', {})):
195200
if isinstance(status, int) or status.isdigit():
196201
example = res_data.get('examples', {}).get('application/json')
197202

swagger_py_codegen/templates/sanic/schemas.tpl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ import six
77

88
base_path = '{{base_path}}'
99

10-
{% for name, value in schemas.items() %}
11-
{{ name }} = {{ value }}
12-
{%- endfor %}
10+
definitions = {{ definitions }}
1311

1412
validators = {
1513
{%- for name, value in validators.items() %}
@@ -30,6 +28,8 @@ scopes = {
3028
}
3129

3230

31+
resolver = RefResolver.from_schema(definitions)
32+
3333
class Current(object):
3434

3535
request = None

0 commit comments

Comments
 (0)