Browse Source

Add outline for DataTable

master
Noelle 4 years ago
parent
commit
aabe6ba543
1 changed files with 32 additions and 3 deletions
  1. 32
    3
      main.py

+ 32
- 3
main.py View File

from bs4 import BeautifulSoup from bs4 import BeautifulSoup


class DataTable: class DataTable:
def __init__(self):
def __init__(self, rdas_obj=None):
self.table = {} self.table = {}
self.cols = {}
self.rows = {}
self._cols = {}
self._rows = {}
self.col_labels = {}
self.row_labels = {}
if rdas_obj != None:
self.populate(rdas_obj)

def populate(self, rdas_obj):
# 1. Put values from results:column:options:key into a list.
# a. Sort the list on the int value of the key.
# b. Place the list into self._cols, using the value as the key and the index as the value.
# 2. Do the same thing for the values from results:row:options:key and self._rows.
# 3. Using the key-value pairs in self._cols, place results:column:options:title into self.col_labels
# with the self._cols VALUE as the key.
# a. REMEMBER that missing values are coded "." in keys but "" in cell descriptors!
# 4. Do the same thing for results:row:options:title and self._rows.
# 5. For each record in results:cells, get a row-column coordinate by associating row_option and column_option
# with a key in each of self._rows and self._cols.
# a. Insert the value in results:cells:n:column into self.table at that row-column coordinate.
pass

def generate_table(self):
# Return an object containing self.col_labels, self.row_labels, and self.table.
# self._cols and self._rows are for internal use and don't need to be produced.
o = {
"clabels": self.col_labels,
"rlabels": self.row_labels,
"values": self.table
}
return o


class DataPocket: class DataPocket:
def __init__(self): def __init__(self):

Loading…
Cancel
Save