52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC
|
|
from cpl_core.utils import String
|
|
|
|
|
|
class Schematic(GenerateSchematicABC):
|
|
|
|
def __init__(self, name: str, path: str, schematic: str):
|
|
GenerateSchematicABC.__init__(self, name, path, schematic)
|
|
self._name = f'schematic_{String.convert_to_snake_case(name)}.py'
|
|
self._path = '.cpl/'
|
|
self._class_name = String.convert_to_camel_case(name)
|
|
|
|
def get_code(self) -> str:
|
|
code = """\
|
|
from cpl_cli.abc.generate_schematic_abc import GenerateSchematicABC
|
|
|
|
|
|
class $Name(GenerateSchematicABC):
|
|
|
|
def __init__(self, *args: str):
|
|
GenerateSchematicABC.__init__(self, *args)
|
|
|
|
def get_code(self) -> str:
|
|
import textwrap
|
|
code = textwrap.dedent(\"\"\"\\
|
|
from enum import Enum
|
|
|
|
|
|
class $Name(Enum):
|
|
|
|
atr = 0
|
|
\"\"\")
|
|
return self.build_code_str(code, Name=self._class_name)
|
|
|
|
@classmethod
|
|
def register(cls):
|
|
GenerateSchematicABC.register(
|
|
cls,
|
|
'$NameLower',
|
|
[]
|
|
)
|
|
"""
|
|
return self.build_code_str(code, Name=self._class_name)
|
|
|
|
@classmethod
|
|
def register(cls):
|
|
GenerateSchematicABC.register(
|
|
cls,
|
|
'schematic',
|
|
['scheme', 'SCHEME']
|
|
)
|