def show_stat(self, recursive = False, prepend = ""):
        prepend += self._name
        print("{}: I'm a pds called {}".format(prepend, self._name))
        print("{}:     dirname  :{}".format(prepend, self._dirname))
        print("{}:     filename :{}".format(prepend, self._filename))
        
        self.need_open()
        
        str_key = 0
        bin_key = 0
        oth_key = 0
        
        sub_c = 0
        npa_c = 0
        
        sub_data_keys = set()
        
        for k in self:
            if isinstance(k, str):
                str_key += 1
            elif isinstance(k, bytes):
                bin_key += 1
            else:
                oth_key += 1
                
            t, v = self.get_value_and_value_type(k)
            if t == TYPE_NPA:
                npa_c += 1
            elif t == TYPE_SUB:
                sub_c += 1
                sub_data_keys.add(k)
                
        print("{}:     number of string keys: {}".format(prepend, str_key))
        print("{}:     number of byte   keys: {}".format(prepend, bin_key))
        if oth_key > 0:
            print("{}:     number of other  keys: {}".format(prepend, oth_key))
        print("{}:     number of subdata: {}".format(prepend, sub_c))
        print("{}:     nparray counter: {}".format(prepend, npa_c))
        print()
        sys.stdout.flush()
        if recursive:
            for k in sub_data_keys:
                print("show stat for subdata with key {}".format(key_to_str(k)))
                sys.stdout.flush()
                with self.getData(k) as subdata:
                    subdata.show_stat(recursive = recursive,
                                      prepend = prepend + "->")
dataset/ETHPy150Open cimatosa/jobmanager/jobmanager/persistentData.py/PersistentDataStructure.show_stat/original