New OBIDMS method to list the columns of an OBIDMS

This commit is contained in:
Celine Mercier
2015-09-15 17:09:31 +02:00
parent 90bf15186e
commit 2698022aaf
7 changed files with 130 additions and 69 deletions

View File

@ -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))