Ejemplo n.º 1
0
 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')
Ejemplo n.º 2
0
 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)
Ejemplo n.º 3
0
    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