You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Everything compiles to python. Here are there resulting python files:
** u_nfsv3_setattr_call.py **
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuildfrompkg_resourcesimportparse_versionfromkaitaistructimport__version__asks_version, KaitaiStruct, KaitaiStream, BytesIOifparse_version(ks_version) <parse_version('0.7'):
raiseException("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s"% (ks_version))
classUNfsv3SetattrCall(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.fhandle_length=self._io.read_u4be()
self.fhandle=self._io.read_bytes(self.fhandle_length)
self.new_attributes=self._root.Sattr3(self._io, self, self._root)
** nfs_structs.py **
# This is a generated file! Please edit source .ksy file and use kaitai-struct-compiler to rebuildfrompkg_resourcesimportparse_versionfromkaitaistructimport__version__asks_version, KaitaiStruct, KaitaiStream, BytesIOfromenumimportEnumifparse_version(ks_version) <parse_version('0.7'):
raiseException("Incompatible Kaitai Struct Python API: 0.7 or later is required, but you have %s"% (ks_version))
classNfsStructs(KaitaiStruct):
classNfsstat3Enum(Enum):
nfs3_ok=0nfs3err_perm=1nfs3err_noent=2nfs3err_io=5nfs3err_nxio=6nfs3err_acces=13nfs3err_exist=17nfs3err_xdev=18nfs3err_nodev=19nfs3err_notdir=20nfs3err_isdir=21nfs3err_inval=22nfs3err_fbig=27nfs3err_nospc=28nfs3err_rofs=30nfs3err_mlink=31nfs3err_nametoolong=63nfs3err_notempty=66nfs3err_dquot=69nfs3err_stale=70nfs3err_remote=71nfs3err_badhandle=10001nfs3err_not_sync=10002nfs3err_bad_cookie=10003nfs3err_notsupp=10004nfs3err_toosmall=10005nfs3err_serverfault=10006nfs3err_badtype=10007nfs3err_jukebox=10008def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
passclassSattr3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.set_mode=self._io.read_u4be()
ifself.set_mode==1:
self.mode=self._io.read_u4be()
self.set_uid=self._io.read_u4be()
ifself.set_uid==1:
self.uid=self._io.read_u4be()
self.set_gid=self._io.read_u4be()
ifself.set_gid==1:
self.gid=self._io.read_u4be()
self.set_size=self._io.read_u4be()
ifself.set_size==1:
self.size=self._io.read_u4be()
classCreateverf3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.nfs3_createverfsize=self._io.read_u8be()
classNfstime3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.seconds=self._io.read_u4be()
self.nseconds=self._io.read_u4be()
classNfsstat3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.nfs_status3=self._root.Nfsstat3Enum(self._io.read_u4be())
classNfsFh3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.fhandle_length=self._io.read_u4be()
self.fhandle=self._io.read_bytes(self.fhandle_length)
classWriteverf3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.nfs3_writeverfsize=self._io.read_u8be()
classSpecdata3(KaitaiStruct):
def__init__(self, _io, _parent=None, _root=None):
self._io=_ioself._parent=_parentself._root=_rootif_rootelseselfself._read()
def_read(self):
self.specdata1=self._io.read_u4be()
Traceback (most recent call last):
File "/root/dev/kaitai_struct_formats/network/rpc/nfs/unit_test/v3_calls/02_SETATTR/test.py", line 3, in <module>
data = UNfsv3SetattrCall.from_file("u_nfsv3_setattr_call.test")
File "/usr/local/lib/python3.5/dist-packages/kaitaistruct.py", line 35, in from_file
return cls(KaitaiStream(f))
File "/root/dev/kaitai_struct_formats/network/rpc/nfs/unit_test/v3_calls/02_SETATTR/u_nfsv3_setattr_call.py", line 15, in __init__
self._read()
File "/root/dev/kaitai_struct_formats/network/rpc/nfs/unit_test/v3_calls/02_SETATTR/u_nfsv3_setattr_call.py", line 20, in _read
self.new_attributes = self._root.Sattr3(self._io, self, self._root)
AttributeError: 'UNfsv3SetattrCall' object has no attribute 'Sattr3'
Is this a known compiler error? There appears to be some sort of class inheritance error going on when we import custom data types. Any insight would be greatly appreciated, as usual!
The text was updated successfully, but these errors were encountered:
I have compiled kaitai_struct 0.9 on Debian Linux to take advantage of importing custom types. I have two .ksy files:
** u_nfsv3_setattr_call.ksy **
** nfs_structs.ksy **
Everything compiles to python. Here are there resulting python files:
** u_nfsv3_setattr_call.py **
** nfs_structs.py **
When I run the following simple test.py:
I get the following error:
Is this a known compiler error? There appears to be some sort of class inheritance error going on when we import custom data types. Any insight would be greatly appreciated, as usual!
The text was updated successfully, but these errors were encountered: