aboutsummaryrefslogtreecommitdiff
path: root/mmi2grpc/_description.py
diff options
context:
space:
mode:
Diffstat (limited to 'mmi2grpc/_description.py')
-rw-r--r--mmi2grpc/_description.py25
1 files changed, 22 insertions, 3 deletions
diff --git a/mmi2grpc/_description.py b/mmi2grpc/_description.py
index a6fa3dd..0a3c574 100644
--- a/mmi2grpc/_description.py
+++ b/mmi2grpc/_description.py
@@ -20,7 +20,8 @@ def assert_description(f):
test = unittest.TestCase()
test.maxDiff = None
test.assertMultiLineEqual(
- docstring.strip(), description.strip(),
+ docstring.strip(),
+ description.strip(),
f'description does not match with function docstring of {f.__name__}')
return f(*args, **kwargs)
@@ -28,8 +29,8 @@ def assert_description(f):
def format_function(id, description):
- wrapped = textwrap.fill(description, COMMENT_WIDTH,
- replace_whitespace=False)
+ wrapped = textwrap.fill(
+ description, COMMENT_WIDTH, replace_whitespace=False)
return (
f'@assert_description\n'
f'def {id}(self, **kwargs):\n'
@@ -39,3 +40,21 @@ def format_function(id, description):
f'\n'
f' return "OK"\n'
)
+
+
+def format_proxy(profile, id, description):
+ return (
+ f'from ._description import assert_description\n'
+ f'from ._proxy import ProfileProxy\n'
+ f'\n'
+ f'from blueberry.{profile.lower()}_grpc import {profile}\n'
+ f'\n'
+ f'\n'
+ f'class {profile}Proxy(ProfileProxy):\n'
+ f'\n'
+ f' def __init__(self, channel):\n'
+ f' super().__init__()\n'
+ f' self.{profile.lower()} = {profile}(channel)\n'
+ f'\n'
+ f'{textwrap.indent(format_function(id, description), " ")}'
+ )