diff options
Diffstat (limited to 'mmi2grpc/_description.py')
-rw-r--r-- | mmi2grpc/_description.py | 25 |
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), " ")}' + ) |