Exemplo n.º 1
0
    def init(self, context: CommandContext):
        # パラメータを取得する
        self.__params = context.get_parameters()
        self.__rows = []
        context.set_supplier(self)
        self.__has_data = True

        try:
            dataType = self.__params.data_type
            if dataType == 'csv':
                lines = self.__params.data.split('\n')
                head = [x.rstrip() for x in lines[0].split(',')]
                data = [line for line in lines[1:] if not line.strip() == ""]
                for row in data:
                    row = [x.rstrip() for x in row.split(',')]
                    newData = {}
                    for i in range(len(head)):
                        newData[head[i]] = row[i]
                    self.__rows.append(newData)
            if dataType == 'json':
                self.__rows = json.loads(self.__params.data)
            if dataType == 'yaml':
                self.__rows = yaml.load(self.__params.data)
            if dataType == 'object':
                if type(self.__params.data) == list:
                    self.__rows = self.__params.data
                else:
                    logger.error('データ型がlist構造になっていません')
        except Exception as e:
            logger.error(e)
            raise e
Exemplo n.º 2
0
    def init(self, context: CommandContext):
        """
        スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
        context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
        を取得することができます。
        """
        # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
        self.__params = context.get_parameters()

        # 正規表現オプションを構築
        option = 0
        for opt in self.__params.match_options:
            if opt == 'verbose':
                option |= re.VERBOSE
            elif opt == 'multiline':
                option |= re.MULTILINE
            elif opt == 'dotall':
                option |= re.DOTALL
            elif opt == 'ignore':
                option |= re.IGNORECASE

        # 正規表現をコンパイルする
        reg = re.compile(parse_easy_regexp(self.__params.pattern), option)

        self.__reg = reg
Exemplo n.º 3
0
    def init(self, context: CommandContext):
        """
        スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
        context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
        を取得することができます。
        """
        # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
        self.__params = context.get_parameters()

        # ファイルをオープンする
        logger.info(f"open file for csv write {self.__params.file_path}")
        self.__open_file = open(self.__params.file_path,
                                'w',
                                encoding=self.__params.encoding)

        # 区切り文字を決定
        delimiter = ","
        if self.__params.delimiter == "tab":
            delimiter = "\t"
        if self.__params.delimiter == "semi":
            delimiter = ";"

        # 書き込みオブジェクトを作成
        self.__writer = csv.writer(self.__open_file,
                                   delimiter=delimiter,
                                   doublequote=self.__params.doublequote,
                                   escapechar=self.__params.escape_char,
                                   quotechar=self.__params.quotechar)
        self.__write_header = False
Exemplo n.º 4
0
 def init(self, context: CommandContext):
     """
     スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
     context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
     を取得することができます。
     """
     # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
     self.__params = context.get_parameters()
Exemplo n.º 5
0
 def init(self, context: CommandContext):
     """
     スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
     context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
     を取得することができます。
     """
     # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
     self.__params = context.get_parameters()
     # このコマンドがデータを供給するならコメントアウト
     # context.set_supplier(self)
     self.__template = Template(self.__params.template)
Exemplo n.º 6
0
    def init(self, context: CommandContext):
        """
        スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
        context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
        を取得することができます。
        """
        # 親クラス呼出
        super().init(context)

        # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
        self.__params = context.get_parameters()

        # フェッチサイズを指定
        super().set_fetch_size(0)
Exemplo n.º 7
0
    def init(self, context: CommandContext):
        # パラメータを取得する
        self.__params = context.get_parameters()

        # データベースサービスを取得
        self.__dbService = cast(DatabaseService,
                                services.get_service('database')[0])
        # アクセスしたいDB名を指定してDBインスタンスを取得
        logger.info(f"open database {self.__params.db_name}")
        self.__db = self.__dbService.open(self.__params.db_name)
        self.__cursor = self.__dbService.cursor(self.__db)

        # 事前の処理を実施
        for sql in self.__params.init_sql.split(";"):
            sql = sql.strip()
            self.__dbService.execute(self.__cursor, sql,
                                     context.get_script_parameters())
Exemplo n.º 8
0
    def init(self, context: CommandContext):
        """
        スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
        context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
        を取得することができます。
        """
        super().init(context)
        # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
        self.__params = context.get_parameters()
        # フェッチサイズを指定
        super().set_fetch_size(self.__params.fetch_size)

        # データベースサービスを取得
        self.__dbService = cast(DatabaseService,
                                services.get_service('database')[0])
        # アクセスしたいDB名を指定してDBインスタンスを取得
        logger.info(f"open database {self.__params.db_name}")
        self.__db = self.__dbService.open(self.__params.db_name)
        self.__cursor = self.__dbService.cursor(self.__db)
Exemplo n.º 9
0
    def init(self, context: CommandContext):
        '''
        スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
        context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
        を取得することができます。
        '''
        super().init(context)
        # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
        self.__params = context.get_parameters()
        # フェッチサイズを指定
        super().set_fetch_size(self.__params.fetch_size)

        self.__white_filters = [re.compile(x)
                                for x in self.__params.white_list]

        self.__black_filters = [re.compile(x)
                                for x in self.__params.black_list]

        self.__detector = UniversalDetector()
Exemplo n.º 10
0
    def init(self, context: CommandContext):
        """
        スクリプト読み込み後に、利用するコマンドの初期化時に呼び出れます。
        context.get_parameters()で、スクリプトに記述されたコマンドパラメータ
        を取得することができます。
        """
        # パラメータを取得する( self.__params.プロパティ名 でアクセス可能)
        self.__params = context.get_parameters()
        # このコマンドがデータを供給するならコメントアウト
        # context.set_supplier(self)

        modules = {}
        for key in self.__params.modules.keys():
            module_name = self.__params.modules[key]
            modules[key] = importlib.import_module(module_name)
        modules['objdict'] = objdict
        self.__modules = modules

        script = self.__params.script
        script = f'\n{script}\noutput_rows = proc(input_rows, args)'
        logger.debug(script)
        self.__script = script
Exemplo n.º 11
0
 def init(self, context: CommandContext):
     self.__args = context.get_parameters()
Exemplo n.º 12
0
 def init(self, context: CommandContext):
     super().init(context)
     # パラメータ取得
     self.__params = context.get_parameters()
     super().set_fetch_size(self.__params.fetch_size)