Add txn type parametrisation for converter

This commit is contained in:
2026-02-12 21:28:26 +10:00
parent bde2b65710
commit c891ee883b
5 changed files with 12 additions and 7 deletions
+4 -3
View File
@@ -44,7 +44,7 @@ class ConverterConfig:
raise NotImplementedError
class Converter[RecordT: Record, ConfigT: ConverterConfig]:
class Converter[RecordT: Record, TxnT: PartialTXN, ConfigT: ConverterConfig]:
"""
ABC for Record -> Transaction conversion interface.
@@ -60,6 +60,7 @@ class Converter[RecordT: Record, ConfigT: ConverterConfig]:
record_type: ClassVar[Type[RecordT]]
config_type: ClassVar[Type[ConfigT]]
txn_type: ClassVar[Type[TxnT]]
def __init__(self, config: ConfigT, **kwargs):
self.config = config
@@ -68,7 +69,7 @@ class Converter[RecordT: Record, ConfigT: ConverterConfig]:
def qual_name(cls):
return f"{cls.converter_name}_v{cls.version}"
def annotation(self, record: RecordT, partial: PartialTXN) -> Optional[str]:
def annotation(self, record: RecordT, partial: TxnT) -> Optional[str]:
"""
Optional user-readable note/warning to attach to a mapped record.
@@ -76,7 +77,7 @@ class Converter[RecordT: Record, ConfigT: ConverterConfig]:
"""
raise NotImplementedError
def convert(self, record: RecordT, ruleset: RuleSet) -> PartialTXN | _SKIPT:
def convert(self, record: RecordT, ruleset: RuleSet) -> TxnT | _SKIPT:
"""
The meat of the conversion process.
Take a raw Record from the data and convert it into a partial transaction,
+2 -1
View File
@@ -97,9 +97,10 @@ class CBAConfig(ConverterConfig):
@available_converter
class CBAConverter(Converter[CBARecord, CBAConfig]):
class CBAConverter(Converter[CBARecord, PartialTXN, CBAConfig]):
record_type = CBARecord
config_type = CBAConfig
txn_type = PartialTXN
converter_name = "cbacsv"
version = "0"
display_name = "CBACSV converter v0"
@@ -94,9 +94,10 @@ class CBASTConfig(ConverterConfig):
@available_converter
class CBASTConverter(Converter[CBASTRecord, CBASTConfig]):
class CBASTConverter(Converter[CBASTRecord, PartialTXN, CBASTConfig]):
record_type = CBASTRecord
config_type = CBASTConfig
txn_type = PartialTXN
converter_name = "cbast"
version = "0"
display_name = "CBAST converter v0"
+2 -1
View File
@@ -65,9 +65,10 @@ class SampleConfig(ConverterConfig):
@available_converter
class SampleConverter(Converter[SampleRecord, SampleConfig]):
class SampleConverter(Converter[SampleRecord, PartialTXN, SampleConfig]):
record_type = SampleRecord
config_type = SampleConfig
txn_type = PartialTXN
converter_name = "sample"
version = "0"
display_name = "Sample converter v0"
+2 -1
View File
@@ -213,9 +213,10 @@ class WiseConfig(ConverterConfig):
@available_converter
class WiseConverter(Converter[WiseRecord, WiseConfig]):
class WiseConverter(Converter[WiseRecord, PartialTXN, WiseConfig]):
record_type = WiseRecord
config_type = WiseConfig
txn_type = PartialTXN
converter_name = "wise"
version = "0"
display_name = "Wise Record Converter v0"