Module labcom.DBstorer
汎用保存データの登録を制御する。
Classes
class DBstoreError (func, msg, code)-
Expand source code
class DBstoreError(Exception): ''' ''' def __init__(self, func, msg, code): self.func = func self.msg = msg self.code = codeAncestors
- builtins.Exception
- builtins.BaseException
class DBstorer-
Expand source code
class DBstorer(object): ''' [ クラス名 ] DBstorer < パブリックメンバー > なし < 説明 > 汎用保存データの登録制御クラス ''' def __init__(self): ''' [ コンストラクタ ] ''' return def puts( self, shot, sub_shot, diag, mail_address, data_type, arc_data_array): ''' [ 関数名 ] puts < 引数 > shot (int) : ショット番号 sub_shot (int) : サブショット番号 diag (string) : データ名(計測名) mail_address (string): メールアドレス data_type (string) : データ種別 'RAW','ANA' arc_data_array (list[ArcData]) : チャネルデータ配列 < 返値 > なし < 説明 > チャネルデータ配列を保存する。 < 例外 > TypeError DBstoreError : dbstoreライブラリからのエラー ''' dd = 0 if arc_data_array is None : return if isinstance( arc_data_array, list) : if 0 == len( arc_data_array) : return data_array = arc_data_array elif isinstance( arc_data_array, ArcData ) : data_array = [arc_data_array] else : raise TypeError("arc_data_arry") for arc in data_array : if not isinstance( arc, ArcData ) : raise TypeError("arc_data_arry") try : dd = _dbstore.open(mail_address, diag, shot, sub_shot, data_type.upper()) # enumerate : origin is 0. for ch, arc_data in enumerate(data_array) : ch_no = ch+1 if arc_data.is_frame() : _dbstore.open_frame(dd, ch_no, arc_data.samples.x_size, \ arc_data.samples.y_size, arc_data.samples.image_type) for fr, fr_data in enumerate( arc_data.samples.frames) : _dbstore.write_frame(dd, ch_no, fr+1, fr_data.block_bin_str) _dbstore.close_frame(dd, ch_no, arc_data.parameters) else : _dbstore.write(dd, ch_no, arc_data.parameters, arc_data.samples.block_bin_str, arc_data.samples.image_type) _dbstore.close(dd) dd = 0 except _dbstore.error as xxx_todo_changeme: (efunc,emes,ecode) = xxx_todo_changeme.args if dd != 0 : _dbstore.abort(dd) raise DBstoreError(efunc, emes, ecode) return return @classmethod def version(cls): return _dbstore.version()[ クラス名 ] DBstorer < パブリックメンバー > なし < 説明 > 汎用保存データの登録制御クラス
[ コンストラクタ ]
Static methods
def version()
Methods
def puts(self, shot, sub_shot, diag, mail_address, data_type, arc_data_array)-
Expand source code
def puts( self, shot, sub_shot, diag, mail_address, data_type, arc_data_array): ''' [ 関数名 ] puts < 引数 > shot (int) : ショット番号 sub_shot (int) : サブショット番号 diag (string) : データ名(計測名) mail_address (string): メールアドレス data_type (string) : データ種別 'RAW','ANA' arc_data_array (list[ArcData]) : チャネルデータ配列 < 返値 > なし < 説明 > チャネルデータ配列を保存する。 < 例外 > TypeError DBstoreError : dbstoreライブラリからのエラー ''' dd = 0 if arc_data_array is None : return if isinstance( arc_data_array, list) : if 0 == len( arc_data_array) : return data_array = arc_data_array elif isinstance( arc_data_array, ArcData ) : data_array = [arc_data_array] else : raise TypeError("arc_data_arry") for arc in data_array : if not isinstance( arc, ArcData ) : raise TypeError("arc_data_arry") try : dd = _dbstore.open(mail_address, diag, shot, sub_shot, data_type.upper()) # enumerate : origin is 0. for ch, arc_data in enumerate(data_array) : ch_no = ch+1 if arc_data.is_frame() : _dbstore.open_frame(dd, ch_no, arc_data.samples.x_size, \ arc_data.samples.y_size, arc_data.samples.image_type) for fr, fr_data in enumerate( arc_data.samples.frames) : _dbstore.write_frame(dd, ch_no, fr+1, fr_data.block_bin_str) _dbstore.close_frame(dd, ch_no, arc_data.parameters) else : _dbstore.write(dd, ch_no, arc_data.parameters, arc_data.samples.block_bin_str, arc_data.samples.image_type) _dbstore.close(dd) dd = 0 except _dbstore.error as xxx_todo_changeme: (efunc,emes,ecode) = xxx_todo_changeme.args if dd != 0 : _dbstore.abort(dd) raise DBstoreError(efunc, emes, ecode) return return[ 関数名 ] puts < 引数 > shot (int) : ショット番号 sub_shot (int) : サブショット番号 diag (string) : データ名(計測名) mail_address (string): メールアドレス data_type (string) : データ種別 'RAW','ANA' arc_data_array (list[ArcData]) : チャネルデータ配列 < 返値 > なし < 説明 > チャネルデータ配列を保存する。 < 例外 > TypeError DBstoreError : dbstoreライブラリからのエラー