diff --git a/templates/python/package/services/service.py.twig b/templates/python/package/services/service.py.twig index 1443d183b..463f68719 100644 --- a/templates/python/package/services/service.py.twig +++ b/templates/python/package/services/service.py.twig @@ -1,5 +1,5 @@ from ..service import Service -from typing import List +from typing import List, Dict, Any from ..exception import AppwriteException {% set added = [] %} {% for method in service.methods %} @@ -24,12 +24,38 @@ from ..enums.{{ name | caseSnake }} import {{ name | caseUcfirst }}; class {{ service.name | caseUcfirst }}(Service): - def __init__(self, client): + def __init__(self, client) -> None: super({{ service.name | caseUcfirst }}, self).__init__(client) {% for method in service.methods %} - def {{ method.name | caseSnake }}(self{% if method.parameters.all|length > 0 %}, {% endif %}{% for parameter in method.parameters.all %}{{ parameter.name | escapeKeyword | caseSnake }}: {{ parameter | getPropertyType(method) | raw }}{% if not parameter.required %} = None{% endif %}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, on_progress = None{% endif %}): - """{{method.title}}""" + def {{ method.name | caseSnake }}(self{% if method.parameters.all|length > 0 %}, {% endif %}{% for parameter in method.parameters.all %}{{ parameter.name | escapeKeyword | caseSnake }}: {{ parameter | getPropertyType(method) | raw }}{% if not parameter.required %} = None{% endif %}{% if not loop.last %}, {% endif %}{% endfor %}{% if 'multipart/form-data' in method.consumes %}, on_progress = None{% endif %}) -> {% if method.type == 'webAuth' %}str{% else %}Dict[str, Any]{% endif %}: + """ + {% autoescape false %}{{ method.description | replace({"\n": "\n "}) }}{% endautoescape %} +{% if method.parameters.all|length > 0 or 'multipart/form-data' in method.consumes %} + + Parameters + ---------- + {% for parameter in method.parameters.all %}{{ parameter.name | escapeKeyword | caseSnake }} : {{ parameter | getPropertyType(method) | raw }} + {% autoescape false %}{{ parameter.description | replace({"\n": "\n "}) }}{% endautoescape %} + + {% endfor %}{% if 'multipart/form-data' in method.consumes %} + on_progress : callable, optional + Optional callback for upload progress + {% endif %}{% endif %} + + Returns + ------- + {% if method.type == 'webAuth' %}str + Authentication response as a string + {% else %}Dict[str, Any] + API response as a dictionary + {% endif %} + + Raises + ------ + AppwriteException + If API request fails + """ api_path = '{{ method.path }}' {{ include('python/base/params.twig') }}