Skip to content

Commit 05a8362

Browse files
committed
STYLE: Simplify writing template python code files
Use of python3 template strings allows for greatly simplified and easier to maintain code block.
1 parent 70be2c1 commit 05a8362

File tree

1 file changed

+37
-51
lines changed

1 file changed

+37
-51
lines changed

Wrapping/Generators/SwigInterface/igenerator.py

Lines changed: 37 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -609,59 +609,45 @@ def generate_process_object_snake_case_functions(self, typedefs):
609609
for processObject in processObjects:
610610
snakeCase = self.camelCaseToSnakeCase(processObject)
611611
self.snakeCaseProcessObjectFunctions.add(snakeCase)
612-
self.outputFile.write("import itkHelpers\n")
613-
self.outputFile.write("@itkHelpers.accept_numpy_array_like_xarray\n")
614-
self.outputFile.write(f"def {snakeCase}(*args, **kwargs):\n")
615612
self.outputFile.write(
616-
f' """Procedural interface for {processObject}"""\n'
617-
)
618-
self.outputFile.write(" import itk\n")
619-
self.outputFile.write(
620-
f" instance = itk.{processObject}.New(*args, **kwargs)\n"
621-
)
622-
self.outputFile.write(" return instance.__internal_call__()\n\n")
623-
self.outputFile.write(f"def {snakeCase}_init_docstring():\n")
624-
self.outputFile.write(" import itk\n")
625-
self.outputFile.write(" import itkTemplate\n")
626-
self.outputFile.write(" import itkHelpers\n")
627-
self.outputFile.write(
628-
" if isinstance(itk.%s, itkTemplate.itkTemplate):\n"
629-
% processObject
630-
)
631-
self.outputFile.write(
632-
f" filter_object = itk.{processObject}.values()[0]\n"
633-
)
634-
self.outputFile.write(" else:\n")
635-
self.outputFile.write(
636-
f" filter_object = itk.{processObject}\n\n"
637-
)
638-
self.outputFile.write(
639-
f" {snakeCase}.__doc__ = filter_object.__doc__\n"
640-
)
641-
self.outputFile.write(
642-
f' {snakeCase}.__doc__ += "\\n Args are Input(s) to the filter.\\n"\n'
643-
)
644-
self.outputFile.write(
645-
f' {snakeCase}.__doc__ += "\\n Available Keyword Arguments:\\n"\n'
646-
)
647-
self.outputFile.write(
648-
f" if isinstance(itk.{processObject}, itkTemplate.itkTemplate):\n"
649-
)
650-
self.outputFile.write(
651-
f" {snakeCase}.__doc__ += itkHelpers.filter_args(filter_object)[0]\n"
652-
)
653-
self.outputFile.write(f' {snakeCase}.__doc__ += "\\n"\n')
654-
self.outputFile.write(
655-
f" {snakeCase}.__doc__ += itkHelpers.filter_args(filter_object)[1]\n"
656-
)
657-
self.outputFile.write(" else:\n")
658-
self.outputFile.write(f' {snakeCase}.__doc__ += "".join([\n')
659-
self.outputFile.write(
660-
' " " + itkHelpers.camel_to_snake_case(item[3:]) + "\\n"\n'
661-
)
662-
self.outputFile.write(" for item in dir(filter_object)\n")
663-
self.outputFile.write(' if item.startswith("Set")])\n')
613+
f"""import itkHelpers
614+
@itkHelpers.accept_numpy_array_like_xarray
615+
def {snakeCase}(*args, **kwargs):
616+
\"\"\"Procedural interface for {processObject}\"\"\"
617+
import itk
618+
619+
instance = itk.{processObject}.New(*args, **kwargs)
620+
return instance.__internal_call__()
621+
622+
623+
def {snakeCase}_init_docstring():
624+
import itk
625+
import itkTemplate
626+
import itkHelpers
627+
628+
if isinstance(itk.{processObject}, itkTemplate.itkTemplate):
629+
filter_object = itk.{processObject}.values()[0]
630+
else:
631+
filter_object = itk.{processObject}
632+
633+
{snakeCase}.__doc__ = filter_object.__doc__
634+
{snakeCase}.__doc__ += "\\n Args are Input(s) to the filter.\\n"
635+
{snakeCase}.__doc__ += "\\n Available Keyword Arguments:\\n"
636+
if isinstance(itk.{processObject}, itkTemplate.itkTemplate):
637+
{snakeCase}.__doc__ += itkHelpers.filter_args(filter_object)[0]
638+
{snakeCase}.__doc__ += "\\n"
639+
{snakeCase}.__doc__ += itkHelpers.filter_args(filter_object)[1]
640+
else:
641+
{snakeCase}.__doc__ += "".join(
642+
[
643+
" " + itkHelpers.camel_to_snake_case(item[3:]) + "\\n"
644+
for item in dir(filter_object)
645+
if item.startswith("Set")
646+
]
647+
)
664648
649+
"""
650+
)
665651
self.outputFile.write("%}\n")
666652
self.outputFile.write("#endif\n")
667653

0 commit comments

Comments
 (0)