whats wrong with this code?

```
import os
import platform
from ctypes import *


class IDomSDK:
    """IDomSDK."""

    def __init__(self) -> None:
        """Initialize."""

        print("IDomSDK")

        idom_sdk_file_name = None
        if platform.system() == "Linux":
            if platform.architecture()[0] == '64bit':
                idom_sdk_file_name = 'libiDom3SDKLiteLinuxX86_64.so'
            else:
                idom_sdk_file_name = 'libiDom3SDKLiteLinuxX86_32.so'

        if not idom_sdk_file_name:
            raise Exception('can find sdk for current system')

        current_dir = os.path.dirname(__file__)
        sdk_file = os.path.join(current_dir, idom_sdk_file_name)

        self.idom_sdk = CDLL(sdk_file)

    def init (self, cycle_time = 0):
        return self.idom_sdk.idom_init(cycle_time)

    def connect (self, remote_host_addr: str, remote_host_port: int):
        print('connect', remote_host_addr, remote_host_port)
        return bool(self.idom_sdk.idom_connect(remote_host_addr, remote_host_port))

    def pump_events (self):
        print('pump_events')
        self.idom_sdk.idom_pump_events()

    connection_state_cb_type = CFUNCTYPE(None, c_int)
    def reg_connection_state_cb(self, cb):
        return self.idom_sdk.idom_reg_connection_state_cb(
            self.connection_state_cb_type(cb)
        )
    
    object_data_cb_type = CFUNCTYPE(None, c_int, POINTER(c_char_p), c_char_p, c_bool, c_char_p, c_char_p)
    def reg_object_data_cb(self, cb):
        self.idom_sdk.idom_reg_object_data_cb(
            self.object_data_cb_type(cb)
        )

    system_file_cb_type = CFUNCTYPE(None, c_int, c_char, c_char_p, c_int)
    def reg_system_file_cb(self, cb):
        self.idom_sdk.idom_reg_system_file_cb(
            self.system_file_cb_type(cb)
        )
```