Init Commit: Moved bproto to seperate repo
This commit is contained in:
57
src/nameHandling/style/pythonNameStyle.py
Normal file
57
src/nameHandling/style/pythonNameStyle.py
Normal file
@@ -0,0 +1,57 @@
|
||||
from typing import Literal
|
||||
from nameHandling.base import ComponentName, NameStyle, to_cap_case, to_snake_case, to_screaming_case
|
||||
from protocol_components.protocol import ProtocolDefinitions
|
||||
|
||||
|
||||
class NameStylePython(NameStyle):
|
||||
|
||||
@staticmethod
|
||||
def toStr(bproto_style_name: str | ComponentName, context:
|
||||
Literal[
|
||||
"", "enum_name", "enum_item",
|
||||
"class_name", "class_member",
|
||||
] = "") -> str:
|
||||
|
||||
match context:
|
||||
case "class_name":
|
||||
return to_cap_case(bproto_style_name)
|
||||
case "class_member":
|
||||
return to_snake_case(bproto_style_name)
|
||||
case "enum_name":
|
||||
return to_cap_case(bproto_style_name)
|
||||
case "enum_item":
|
||||
return to_screaming_case(bproto_style_name)
|
||||
case _:
|
||||
return to_snake_case(bproto_style_name)
|
||||
|
||||
@staticmethod
|
||||
def fromStr(bproto_style_name: str | ComponentName, context: str = "") -> ComponentName:
|
||||
raise NotImplementedError("This mode is not avaialbe for NameStylePython")
|
||||
|
||||
@staticmethod
|
||||
def preprocess(protocol: ProtocolDefinitions) -> ProtocolDefinitions:
|
||||
protocol.enums = {
|
||||
protocol.name + "Enum" + v.name: v
|
||||
for _, v in protocol.enums.items()
|
||||
}
|
||||
|
||||
for name, e in protocol.enums.items():
|
||||
e.name = name
|
||||
|
||||
protocol.bitfields = {
|
||||
protocol.name + "Bitfield" + v.name: v
|
||||
for _, v in protocol.bitfields.items()
|
||||
}
|
||||
|
||||
for name, b in protocol.bitfields.items():
|
||||
b.name = name
|
||||
|
||||
protocol.messages = {
|
||||
protocol.name + "Message" + v.name: v
|
||||
for _, v in protocol.messages.items()
|
||||
}
|
||||
|
||||
for name, m in protocol.messages.items():
|
||||
m.name = name
|
||||
|
||||
return protocol
|
||||
Reference in New Issue
Block a user