Skip to content

Commit ea5c0e3

Browse files
committed
Python, Construct: add missing imports of KaitaiStream
Fixes tests: - Python: - ExprBytesNonLiteral - Construct: - EnumOfValueInst - ExprBytesNonLiteral - ExprBytesOps - ExprEnum
1 parent 2191070 commit ea5c0e3

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

shared/src/main/scala/io/kaitai/struct/translators/PythonTranslator.scala

+16-4
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,11 @@ class PythonTranslator(provider: TypeProvider, importList: ImportList, config: R
6363
}
6464
s"${PythonCompiler.types2class(enumSpec.name, isExternal)}.$label"
6565
}
66-
override def doEnumById(enumSpec: EnumSpec, id: String): String =
66+
override def doEnumById(enumSpec: EnumSpec, id: String): String = {
67+
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")
68+
6769
s"${PythonCompiler.kstreamName}.resolve_enum(${PythonCompiler.types2class(enumSpec.name, enumSpec.isExternal(provider.nowClass))}, $id)"
70+
}
6871

6972
override def booleanOp(op: Ast.boolop) = op match {
7073
case Ast.boolop.Or => "or"
@@ -103,16 +106,25 @@ class PythonTranslator(provider: TypeProvider, importList: ImportList, config: R
103106

104107
override def bytesLength(value: Ast.expr): String =
105108
s"len(${translate(value)})"
106-
override def bytesSubscript(container: Ast.expr, idx: Ast.expr): String =
109+
override def bytesSubscript(container: Ast.expr, idx: Ast.expr): String = {
110+
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")
111+
107112
s"${PythonCompiler.kstreamName}.byte_array_index(${translate(container)}, ${translate(idx)})"
113+
}
108114
override def bytesFirst(a: Ast.expr): String =
109115
bytesSubscript(a, Ast.expr.IntNum(0))
110116
override def bytesLast(a: Ast.expr): String =
111117
bytesSubscript(a, Ast.expr.IntNum(-1))
112-
override def bytesMin(b: Ast.expr): String =
118+
override def bytesMin(b: Ast.expr): String = {
119+
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")
120+
113121
s"${PythonCompiler.kstreamName}.byte_array_min(${translate(b)})"
114-
override def bytesMax(b: Ast.expr): String =
122+
}
123+
override def bytesMax(b: Ast.expr): String = {
124+
importList.add(s"from kaitaistruct import ${PythonCompiler.kstreamName}")
125+
115126
s"${PythonCompiler.kstreamName}.byte_array_max(${translate(b)})"
127+
}
116128

117129

118130
override def strLength(value: Ast.expr): String =

0 commit comments

Comments
 (0)