コード例 #1
0
ファイル: default_storage.py プロジェクト: alpha-hunter/pslx
    def write(self, data, params=None):
        if not isinstance(data, str):
            if not params:
                params = {'delimiter': ','}
            else:
                assert isinstance(params, dict) and 'delimiter' in params

        if params:
            for param in params:
                if not isinstance(data, str) and param == 'delimiter':
                    continue
                self._logger.warning(
                    param +
                    " will be omitted since it is not useful as an input argument in this function."
                )
                self.sys_log(
                    param +
                    " will be omitted since it is not useful as an input argument in this function."
                )

        while self._reader_status != Status.IDLE:
            self.sys_log("Waiting for reader to finish.")
            time.sleep(TimeSleepObj.ONE_SECOND)

        self._writer_status = Status.RUNNING
        if not isinstance(data, str):
            self.sys_log(
                "Data is not str instance, joining them with preset delimiter."
            )
            data_to_write = params['delimiter'].join(
                [str(val) for val in data])
        else:
            data_to_write = data
        try:
            if self._config['write_rule_type'] == WriteRuleType.WRITE_FROM_END:
                with FileLockTool(self._file_name, read_mode=False):
                    with open(
                            FileUtil.create_file_if_not_exist(
                                file_name=self._file_name), 'a') as outfile:
                        outfile.write(data_to_write + '\n')
            else:
                with FileLockTool(self._file_name, read_mode=False):
                    with open(
                            FileUtil.create_file_if_not_exist(
                                file_name=self._file_name), 'r+') as outfile:
                        file_data = outfile.read()
                        outfile.seek(0, 0)
                        outfile.write(data_to_write + '\n' + file_data)

            self._writer_status = Status.IDLE
        except Exception as err:
            self.sys_log("Write to file [" + self._file_name +
                         "] got exception: " + str(err) + '.')
            self._logger.error("Write to file [" + self._file_name +
                               "] got exception: " + str(err) + '.')
            raise StorageWriteException("Write to file [" + self._file_name +
                                        "] got exception: " + str(err) + '.')
コード例 #2
0
    def initialize_from_file(self, file_name):
        if '.pb' not in file_name:
            self.sys_log("Please use .pb extension for proto files.")

        self._file_name = FileUtil.create_file_if_not_exist(file_name=file_name)
        if FileUtil.is_file_empty(file_name=self._file_name):
            self._table_message = ProtoTable()
        else:
            with FileLockTool(self._file_name, read_mode=True):
                self._table_message = FileUtil.read_proto_from_file(
                    proto_type=ProtoTable,
                    file_name=self._file_name
                )
        if not self._table_message.table_path:
            self._table_message.table_path = self._file_name
        if not self._table_message.table_name:
            self._table_message.table_name = FileUtil.base_name(file_name=file_name)
        if not self._table_message.created_time:
            self._table_message.created_time = str(TimezoneUtil.cur_time_in_pst())
コード例 #3
0
ファイル: default_storage.py プロジェクト: alpha-hunter/pslx
 def initialize_from_file(self, file_name):
     self.sys_log("Initialize from file " + file_name + '.')
     self._logger.info("Initialize from file " + file_name + '.')
     self._file_name = FileUtil.create_file_if_not_exist(
         file_name=file_name)
     self._last_read_line = 0