New OBIDMS method to list the columns of an OBIDMS
This commit is contained in:
@ -1,15 +1,34 @@
|
||||
#cython: language_level=3
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from .capidms cimport *
|
||||
|
||||
|
||||
cdef class OBIDMS :
|
||||
|
||||
def __init__(self, dms_name) :
|
||||
dms_name_b = dms_name.encode(encoding='UTF-8')
|
||||
self.dms_name = dms_name
|
||||
self.pointer = obi_dms(dms_name_b)
|
||||
|
||||
# def __del__(self) :
|
||||
# obi_close_dms(self.pointer)
|
||||
|
||||
def list(self):
|
||||
obi_list_columns(self.pointer)
|
||||
p = Path(self.dms_name+'.obidms')
|
||||
#dms = {}
|
||||
print("{:<25} {:<25} {:<25} {:<25}".format('-Column name-','-Data type-','-Latest version number-', '-Line count of latest version-'))
|
||||
for entry in p.iterdir():
|
||||
if entry.suffix == ".obicol":
|
||||
column_name = entry.stem
|
||||
column_name_b = column_name.encode('utf-8')
|
||||
#dms[column_name] = {}
|
||||
data_type = (name_data_type(obi_column_get_data_type_from_name(self.pointer, column_name_b))).decode('utf-8')
|
||||
latest_version = obi_column_get_latest_version_from_name(self.pointer, column_name_b)
|
||||
line_count = obi_column_get_line_count_from_name(self.pointer, column_name_b)
|
||||
#dms[column_name]['data_type'] = data_type
|
||||
#dms[column_name]['latest_version'] = latest_version
|
||||
#dms[column_name]['line_count'] = line_count
|
||||
print("{:<25} {:<25} {:<25} {:<25}".format(column_name, data_type, latest_version, line_count))
|
||||
|
Reference in New Issue
Block a user