|
| 1 | +from __future__ import absolute_import |
1 | 2 | import re |
2 | 3 | from collections import OrderedDict |
3 | 4 |
|
4 | 5 | from .base import Code, CodeGenerator |
5 | 6 | from .jsonschema import Schema, SchemaGenerator, build_default |
| 7 | +import six |
6 | 8 |
|
7 | 9 | SUPPORT_METHODS = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head'] |
8 | 10 |
|
@@ -94,13 +96,21 @@ def _type(parameters): |
94 | 96 |
|
95 | 97 | return url, params |
96 | 98 |
|
| 99 | +if six.PY3: |
| 100 | + def _remove_characters(text, deletechars): |
| 101 | + return text.translate({ord(x): None for x in deletechars}) |
| 102 | +else: |
| 103 | + def _remove_characters(text, deletechars): |
| 104 | + return text.translate(None, deletechars) |
97 | 105 |
|
98 | 106 | def _path_to_endpoint(swagger_path): |
99 | | - return swagger_path.strip('/').replace('/', '_').replace('-', '_').translate(None, '{}') |
| 107 | + return _remove_characters( |
| 108 | + swagger_path.strip('/').replace('/', '_').replace('-', '_'), |
| 109 | + '{}') |
100 | 110 |
|
101 | 111 |
|
102 | 112 | def _path_to_resource_name(swagger_path): |
103 | | - return swagger_path.title().translate(None, '{}/_-') |
| 113 | + return _remove_characters(swagger_path.title(), '{}/_-') |
104 | 114 |
|
105 | 115 |
|
106 | 116 | def _location(swagger_location): |
@@ -130,18 +140,18 @@ def _dependence_callback(self, code): |
130 | 140 | # use flask endpoint to replace default validator's key, |
131 | 141 | # example: `('some_path_param', 'method')` |
132 | 142 | validators = OrderedDict() |
133 | | - for k, v in schemas.data['validators'].iteritems(): |
134 | | - locations = {_location(loc): val for loc, val in v.iteritems()} |
| 143 | + for k, v in six.iteritems(schemas.data['validators']): |
| 144 | + locations = {_location(loc): val for loc, val in six.iteritems(v)} |
135 | 145 | validators[(_path_to_endpoint(k[0]), k[1])] = locations |
136 | 146 |
|
137 | 147 | # filters |
138 | 148 | filters = OrderedDict() |
139 | | - for k, v in schemas.data['filters'].iteritems(): |
| 149 | + for k, v in six.iteritems(schemas.data['filters']): |
140 | 150 | filters[(_path_to_endpoint(k[0]), k[1])] = v |
141 | 151 |
|
142 | 152 | # scopes |
143 | 153 | scopes = OrderedDict() |
144 | | - for k, v in schemas.data['scopes'].iteritems(): |
| 154 | + for k, v in six.iteritems(schemas.data['scopes']): |
145 | 155 | scopes[(_path_to_endpoint(k[0]), k[1])] = v |
146 | 156 |
|
147 | 157 | schemas.data['validators'] = validators |
@@ -169,9 +179,9 @@ def _process_data(self): |
169 | 179 | methods[method] = {} |
170 | 180 | validator = self.validators.get((endpoint, method.upper())) |
171 | 181 | if validator: |
172 | | - methods[method]['requests'] = validator.keys() |
| 182 | + methods[method]['requests'] = list(validator.keys()) |
173 | 183 |
|
174 | | - for status, res_data in data[method].get('responses', {}).iteritems(): |
| 184 | + for status, res_data in six.iteritems(data[method].get('responses', {})): |
175 | 185 | if isinstance(status, int) or status.isdigit(): |
176 | 186 | example = res_data.get('examples', {}).get('application/json') |
177 | 187 |
|
|
0 commit comments