def setup_class(self): title = test_config.get('Spreadsheet', 'title') + PYTHON_VERSION self.spreadsheet = pygsheet_client.create(title) self.worksheet = self.spreadsheet.worksheet() self.grange = pygsheets.GridRange(worksheet=self.worksheet, start='A1', end='D4')
def load_topics(self): for data_reference_item in self.data_reference: if self.verbose: print("[EXTRACT] {}".format(data_reference_item['name'])) wks = self.google_credentials.open( data_reference_item['filename']).sheet1 topic = data_reference_item.copy() del topic['filename'] topic['_id'] = Utils.generate_id(topic['name']) topic['tags'] = [] data = wks.get_values(grange=pygsheets.GridRange( worksheet=wks, start=None, end=None)) for row in data[1:]: if row[0] == '' and row[1] == '' and row[2] == '' and row[ 3] == '': continue tag = { 'regex': row[3], 'tag': row[2], 'subtopic': row[1], 'shuffle': bool(int(row[0])) } self.__validate(tag) # topic['knowledgebase'] = self.get_knowledge_base() topic['tags'].append(tag) self.topics.append(topic)
def get_all_record(self, title, head=1) -> List[Dict]: wks = self._get_wks_by_title(title) endtag = f"{xl_col_to_name(wks.cols-1)}{wks.rows}" grange = pygsheets.GridRange(end=endtag) data = wks.get_values( grange=grange, include_tailing_empty=True, include_tailing_empty_rows=False ) idx = head - 1 keys = data[idx] field_index_map = { field: n for n, field in enumerate(keys) if field.strip() != "" } vals = [] for row in data[idx + 1 :]: val = {field: row[i] for field, i in field_index_map.items()} vals.append(val) return vals