Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 17 additions & 1 deletion src/kirin/ir/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
from kirin.ir.exception import CompilerError, ValidationError

if TYPE_CHECKING:
from kirin.ir import Dialect, Statement
from kirin.ir import Method, Dialect, Statement
from kirin.lowering import Python
from kirin.registry import Registry
from kirin.serialization.base.serializer import Serializer
Expand Down Expand Up @@ -330,6 +330,22 @@ def decode(self, encoded: "SerializationModule") -> Method:
deserializer = Deserializer(dialect_group=self)
return deserializer.decode(encoded)

def encode_json(self, program: Method) -> str:
from kirin.serialization.jsonserializer import JSONSerializer

encoded_module = self.encode(program)
json_serializer = JSONSerializer()
json_str = json_serializer.encode(encoded_module)
return json_str

def decode_json(self, json_str: str) -> Method:
from kirin.serialization.jsonserializer import JSONSerializer

json_serializer = JSONSerializer()
decoded_module = json_serializer.decode(json_str)
program = self.decode(decoded_module)
return program


def dialect_group(
dialects: Iterable[Union["Dialect", ModuleType]],
Expand Down