Skip to content

Commit aab1435

Browse files
Merge pull request #486 from appwrite/feat-refactor-python-templates
2 parents c2d60e6 + 45b56dc commit aab1435

File tree

4 files changed

+65
-61
lines changed

4 files changed

+65
-61
lines changed

templates/python/base/params.twig

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
params = {}
2+
{% if method.parameters.all | length %}
3+
{% for parameter in method.parameters.all %}
4+
{% if parameter.required %}
5+
if {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }} is None:
6+
raise {{spec.title | caseUcfirst}}Exception('Missing required parameter: "{{ parameter.name | escapeKeyword | caseSnake }}"')
7+
8+
{% endif %}
9+
{% endfor %}
10+
{% for parameter in method.parameters.path %}
11+
path = path.replace('{{ '{' }}{{ parameter.name | caseCamel }}{{ '}' }}', {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }})
12+
{% endfor %}
13+
14+
{% for parameter in method.parameters.query %}
15+
params['{{ parameter.name }}'] = {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }}
16+
{% endfor %}
17+
{% for parameter in method.parameters.body %}
18+
{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" ) %}
19+
params['{{ parameter.name }}'] = str({{ parameter.name | escapeKeyword | caseSnake }}).lower() if type({{ parameter.name | escapeKeyword | caseSnake }}) is bool else {{ parameter.name | escapeKeyword | caseSnake }}
20+
{% else %}
21+
params['{{ parameter.name }}'] = {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }}
22+
{% endif %}
23+
{% endfor %}
24+
{% for parameter in method.parameters.formData %}
25+
{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" ) %}
26+
params['{{ parameter.name }}'] = str({{ parameter.name | escapeKeyword | caseSnake }}).lower() if type({{ parameter.name | escapeKeyword | caseSnake }}) is bool else {{ parameter.name | escapeKeyword | caseSnake }}
27+
{% else %}
28+
params['{{ parameter.name }}'] = {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }}
29+
{% endif %}
30+
{% endfor %}
31+
{% endif %}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
return self.client.call('{{ method.method | caseLower }}', path, {
2+
{% for parameter in method.parameters.header %}
3+
'{{ parameter.name }}': {{ parameter.name | escapeKeyword | caseSnake }},
4+
{% endfor %}
5+
{% for key, header in method.headers %}
6+
'{{ key }}': '{{ header }}',
7+
{% endfor %}
8+
}, params)
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{% for parameter in method.parameters.all %}
2+
{% if parameter.type == 'file' %}
3+
param_name = '{{ parameter.name }}'
4+
5+
{% endif %}
6+
{% endfor %}
7+
8+
upload_id = ''
9+
{% for parameter in method.parameters.all %}
10+
{% if parameter.isUploadID %}
11+
upload_id = {{ parameter.name | escapeKeyword | caseSnake }}
12+
{% endif %}
13+
{% endfor %}
14+
15+
return self.client.chunked_upload(path, {
16+
{% for parameter in method.parameters.header %}
17+
'{{ parameter.name }}': {{ parameter.name | escapeKeyword | caseSnake }},
18+
{% endfor %}
19+
{% for key, header in method.headers %}
20+
'{{ key }}': '{{ header }}',
21+
{% endfor %}
22+
}, params, param_name, on_progress, upload_id)

templates/python/package/services/service.py.twig

Lines changed: 4 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -19,69 +19,12 @@ class {{ service.name | caseUcfirst }}(Service):
1919
{% if method.title %}
2020
"""{{ method.title }}"""
2121

22-
{% endif %}
23-
{% for parameter in method.parameters.all %}
24-
{% if parameter.required %}
25-
if {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }} is None:
26-
raise {{spec.title | caseUcfirst}}Exception('Missing required parameter: "{{ parameter.name | escapeKeyword | caseSnake }}"')
27-
28-
{% endif %}
29-
{% endfor %}
30-
params = {}
22+
{% endif %}
3123
path = '{{ method.path }}'
32-
{% for parameter in method.parameters.path %}
33-
path = path.replace('{{ '{' }}{{ parameter.name | caseCamel }}{{ '}' }}', {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }})
34-
{% endfor %}
35-
36-
{% for parameter in method.parameters.query %}
37-
params['{{ parameter.name }}'] = {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }}
38-
{% endfor %}
39-
{% for parameter in method.parameters.body %}
40-
{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" ) %}
41-
params['{{ parameter.name }}'] = str({{ parameter.name | escapeKeyword | caseSnake }}).lower() if type({{ parameter.name | escapeKeyword | caseSnake }}) is bool else {{ parameter.name | escapeKeyword | caseSnake }}
42-
{% else %}
43-
params['{{ parameter.name }}'] = {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }}
44-
{% endif %}
45-
{% endfor %}
46-
{% for parameter in method.parameters.formData %}
47-
{% if method.consumes[0] == "multipart/form-data" and ( parameter.type != "string" and parameter.type != "array" ) %}
48-
params['{{ parameter.name }}'] = str({{ parameter.name | escapeKeyword | caseSnake }}).lower() if type({{ parameter.name | escapeKeyword | caseSnake }}) is bool else {{ parameter.name | escapeKeyword | caseSnake }}
49-
{% else %}
50-
params['{{ parameter.name }}'] = {% if parameter.isGlobal %}self.{% endif %}{{ parameter.name | escapeKeyword | caseSnake }}
51-
{% endif %}
52-
{% endfor %}
24+
{{ include('python/base/params.twig') }}
5325
{% if 'multipart/form-data' in method.consumes %}
54-
{% for parameter in method.parameters.all %}
55-
{% if parameter.type == 'file' %}
56-
param_name = '{{ parameter.name }}'
57-
58-
{% endif %}
59-
{% endfor %}
60-
61-
upload_id = ''
62-
{% for parameter in method.parameters.all %}
63-
{% if parameter.isUploadID %}
64-
upload_id = {{ parameter.name | escapeKeyword | caseSnake }}
65-
{% endif %}
66-
{% endfor %}
67-
68-
return self.client.chunked_upload(path, {
69-
{% for parameter in method.parameters.header %}
70-
'{{ parameter.name }}': {{ parameter.name | escapeKeyword | caseSnake }},
71-
{% endfor %}
72-
{% for key, header in method.headers %}
73-
'{{ key }}': '{{ header }}',
74-
{% endfor %}
75-
}, params, param_name, on_progress, upload_id)
26+
{{ include('python/base/requests/file.twig') }}
7627
{% else %}
77-
78-
return self.client.call('{{ method.method | caseLower }}', path, {
79-
{% for parameter in method.parameters.header %}
80-
'{{ parameter.name }}': {{ parameter.name | escapeKeyword | caseSnake }},
81-
{% endfor %}
82-
{% for key, header in method.headers %}
83-
'{{ key }}': '{{ header }}',
84-
{% endfor %}
85-
}, params)
28+
{{ include('python/base/requests/api.twig') }}
8629
{% endif %}
8730
{% endfor %}

0 commit comments

Comments
 (0)