many pep8 improvements
This commit is contained in:
@@ -9,13 +9,14 @@ import pickle
|
||||
import copy
|
||||
import simplejson
|
||||
|
||||
|
||||
def quote(text):
|
||||
return str(text).replace('\\', '\\\\').replace("'", "\\'")
|
||||
|
||||
|
||||
class Node:
|
||||
def __init__(self, name, value, url='.', readonly=False, active=True,
|
||||
onchange=None, **kwarg):
|
||||
onchange=None, **kwarg):
|
||||
self.url = url
|
||||
self.name = name
|
||||
self.value = str(value)
|
||||
@@ -246,8 +247,8 @@ class Sheet:
|
||||
r, c = int(r), int(c)
|
||||
except (ValueError, IndexError, TypeError), e:
|
||||
error = "%s. %s" % \
|
||||
("Unexpected position parameter",
|
||||
"Must be a key of type 'rncn'")
|
||||
("Unexpected position parameter",
|
||||
"Must be a key of type 'rncn'")
|
||||
raise ValueError(error)
|
||||
return r, c
|
||||
|
||||
@@ -316,7 +317,6 @@ class Sheet:
|
||||
|
||||
return changes
|
||||
|
||||
|
||||
def process(self, request, db=None, db_callback=None):
|
||||
"""
|
||||
call this in action that creates table, it will handle ajax callbacks
|
||||
@@ -333,22 +333,22 @@ class Sheet:
|
||||
|
||||
if request.args(0) == 'focus':
|
||||
return "jQuery('#%(cell)s').val('%(value)s');" % \
|
||||
dict(cell=cell, value=quote(self[cell].value))
|
||||
dict(cell=cell, value=quote(self[cell].value))
|
||||
|
||||
value = request.vars[cell]
|
||||
self[cell] = value
|
||||
|
||||
if request.args(0) == 'blur':
|
||||
return "jQuery('#%(cell)s').val('%(value)s');" % \
|
||||
dict(cell=cell, value=quote(self[cell].computed_value))
|
||||
dict(cell=cell, value=quote(self[cell].computed_value))
|
||||
|
||||
elif request.args(0) == 'keyup':
|
||||
jquery = ''
|
||||
for other_key in self.modified:
|
||||
if other_key != cell:
|
||||
jquery += "jQuery('#%(other_key)s').val('%(value)s');" % \
|
||||
dict(other_key=other_key,
|
||||
value=quote(self[other_key].computed_value))
|
||||
dict(other_key=other_key,
|
||||
value=quote(self[other_key].computed_value))
|
||||
|
||||
else:
|
||||
# spreadsheet db update
|
||||
@@ -390,8 +390,8 @@ class Sheet:
|
||||
return "odd"
|
||||
|
||||
def __init__(self, rows, cols, url='.', readonly=False,
|
||||
active=True, onchange=None, value=None, data=None,
|
||||
headers=None, update_button="", **kwarg):
|
||||
active=True, onchange=None, value=None, data=None,
|
||||
headers=None, update_button="", **kwarg):
|
||||
|
||||
"""
|
||||
Arguments:
|
||||
@@ -418,7 +418,7 @@ class Sheet:
|
||||
self.nodes = {}
|
||||
self.error = 'ERROR: %(error)s'
|
||||
self.allowed_keywords = ['for', 'in', 'if', 'else', 'and', 'or', 'not',
|
||||
'i', 'j', 'k', 'x', 'y', 'z', 'sum']
|
||||
'i', 'j', 'k', 'x', 'y', 'z', 'sum']
|
||||
self.value = value
|
||||
self.environment = {}
|
||||
self.attributes = self.get_attributes(kwarg)
|
||||
@@ -431,14 +431,14 @@ class Sheet:
|
||||
self.update_button = update_button
|
||||
|
||||
self.client = {
|
||||
"columns": {},
|
||||
"colnames": {},
|
||||
"id_columns": [],
|
||||
"id_colnames": {},
|
||||
"cells": {},
|
||||
"modified": {},
|
||||
"headers": headers
|
||||
}
|
||||
"columns": {},
|
||||
"colnames": {},
|
||||
"id_columns": [],
|
||||
"id_colnames": {},
|
||||
"cells": {},
|
||||
"modified": {},
|
||||
"headers": headers
|
||||
}
|
||||
|
||||
# if db and query:
|
||||
if self.data is not None:
|
||||
@@ -467,10 +467,10 @@ class Sheet:
|
||||
self.client["id_columns"].append(y)
|
||||
self.client["id_colnames"][colname] = y
|
||||
|
||||
for k in xrange(self.rows*self.cols):
|
||||
key = 'r%sc%s'%(k/self.cols, k%self.cols)
|
||||
for k in xrange(self.rows * self.cols):
|
||||
key = 'r%sc%s' % (k / self.cols, k % self.cols)
|
||||
r, c = self.position(key)
|
||||
if self.client["cells"].has_key(key):
|
||||
if key in self.client["cells"]:
|
||||
value = self.client["cells"][key]
|
||||
# readonly id values
|
||||
if c in self.client["id_columns"]:
|
||||
@@ -485,7 +485,7 @@ class Sheet:
|
||||
else:
|
||||
value = '0.00'
|
||||
self.cell(key, value,
|
||||
readonly, active, onchange)
|
||||
readonly, active, onchange)
|
||||
|
||||
exec('from math import *', {}, self.environment)
|
||||
|
||||
@@ -565,7 +565,7 @@ class Sheet:
|
||||
for col, data in cells.iteritems():
|
||||
key = "r%sc%s" % (row, col)
|
||||
active, onchange, readonly, cell_value = \
|
||||
self.get_cell_arguments(data, default=kwarg)
|
||||
self.get_cell_arguments(data, default=kwarg)
|
||||
if value is None:
|
||||
v = cell_value
|
||||
else:
|
||||
@@ -575,7 +575,7 @@ class Sheet:
|
||||
onchange=onchange, **attributes)
|
||||
else:
|
||||
active, onchange, readonly, all_value = \
|
||||
self.get_cell_arguments(kwarg)
|
||||
self.get_cell_arguments(kwarg)
|
||||
for col, cell_value in enumerate(cells):
|
||||
key = "r%sc%s" % (row, col)
|
||||
if value is None:
|
||||
@@ -601,7 +601,7 @@ class Sheet:
|
||||
for row, data in cells.iteritems():
|
||||
key = "r%sc%s" % (row, col)
|
||||
active, onchange, readonly, cell_value = \
|
||||
self.get_cell_arguments(data, default=kwarg)
|
||||
self.get_cell_arguments(data, default=kwarg)
|
||||
if value is None:
|
||||
v = cell_value
|
||||
else:
|
||||
@@ -610,7 +610,7 @@ class Sheet:
|
||||
onchange=onchange, **attributes)
|
||||
else:
|
||||
active, onchange, readonly, all_value = \
|
||||
self.get_cell_arguments(kwarg)
|
||||
self.get_cell_arguments(kwarg)
|
||||
for row, cell_value in enumerate(cells):
|
||||
key = "r%sc%s" % (row, col)
|
||||
if value is None:
|
||||
@@ -646,36 +646,36 @@ class Sheet:
|
||||
if isinstance(cells, dict):
|
||||
for key, data in cells.iteritems():
|
||||
r, c = self.position(key)
|
||||
key = "r%sc%s" % (r+starts_r, c+starts_c)
|
||||
key = "r%sc%s" % (r + starts_r, c + starts_c)
|
||||
active, onchange, readonly, cell_value = \
|
||||
self.get_cell_arguments(data, default=kwarg)
|
||||
self.get_cell_arguments(data, default=kwarg)
|
||||
if value is None:
|
||||
v = cell_value
|
||||
else:
|
||||
v = value
|
||||
if (ends is None) or ((ends_r >= r+starts_r) and\
|
||||
(ends_c >= c+starts_c)):
|
||||
if (ends is None) or ((ends_r >= r + starts_r) and
|
||||
(ends_c >= c + starts_c)):
|
||||
self.cell(key, v, active=active,
|
||||
readonly=readonly,
|
||||
onchange=onchange, **attributes)
|
||||
readonly=readonly,
|
||||
onchange=onchange, **attributes)
|
||||
else:
|
||||
active, onchange, readonly, all_value = \
|
||||
self.get_cell_arguments(kwarg)
|
||||
self.get_cell_arguments(kwarg)
|
||||
for r, row in enumerate(cells):
|
||||
for c, cell_value in enumerate(row):
|
||||
if value is None:
|
||||
v = cell_value
|
||||
else:
|
||||
v = value
|
||||
key = "r%sc%s" % (r+starts_r, c+starts_c)
|
||||
key = "r%sc%s" % (r + starts_r, c + starts_c)
|
||||
if (ends is None) or \
|
||||
((ends_r >= r+starts_r) and\
|
||||
(ends_c >= c+starts_c)):
|
||||
((ends_r >= r + starts_r) and
|
||||
(ends_c >= c + starts_c)):
|
||||
self.cell(key, v,
|
||||
active=active,
|
||||
onchange=onchange,
|
||||
readonly=readonly,
|
||||
**attributes)
|
||||
active=active,
|
||||
onchange=onchange,
|
||||
readonly=readonly,
|
||||
**attributes)
|
||||
|
||||
def __setitem__(self, key, value):
|
||||
key = str(key)
|
||||
@@ -694,7 +694,7 @@ class Sheet:
|
||||
other_key = match.group()
|
||||
if other_key == key:
|
||||
self.computed_value = self.error % dict(error='cycle')
|
||||
self.modified={}
|
||||
self.modified = {}
|
||||
break
|
||||
if other_key in self.nodes:
|
||||
other_node = self.nodes[other_key]
|
||||
@@ -704,7 +704,8 @@ class Sheet:
|
||||
not other_key in self.environment:
|
||||
node.locked = True
|
||||
node.computed_value = \
|
||||
self.error % dict(error='invalid keyword: ' + other_key)
|
||||
self.error % dict(
|
||||
error='invalid keyword: ' + other_key)
|
||||
self.modified = {}
|
||||
break
|
||||
self.compute(node)
|
||||
@@ -737,7 +738,7 @@ class Sheet:
|
||||
output = {node.name: node.computed_value}
|
||||
changed_nodes = self.changed(node)
|
||||
while changed_nodes:
|
||||
ok=False
|
||||
ok = False
|
||||
set_changed_nodes = set(changed_nodes)
|
||||
for (k, other_node) in enumerate(changed_nodes):
|
||||
#print other_node, changed_nodes
|
||||
@@ -758,7 +759,7 @@ class Sheet:
|
||||
return self.nodes[str(key)]
|
||||
|
||||
def get_computed_values(self):
|
||||
d={}
|
||||
d = {}
|
||||
for key in self.nodes:
|
||||
node = self.nodes[key]
|
||||
if node.value[:1] != '=' or not node.active:
|
||||
@@ -780,21 +781,21 @@ class Sheet:
|
||||
gluon.html.TH, gluon.html.BR, gluon.html.SCRIPT)
|
||||
regex = re.compile('r\d+c\d+')
|
||||
|
||||
header = TR(TH(), *[TH('c%s' % c) \
|
||||
for c in range(self.cols)])
|
||||
header = TR(TH(), *[TH('c%s' % c)
|
||||
for c in range(self.cols)])
|
||||
rows = []
|
||||
for r in range(self.rows):
|
||||
tds = [TH('r%s' % r),]
|
||||
tds = [TH('r%s' % r), ]
|
||||
for c in range(self.cols):
|
||||
key = 'r%sc%s'%(r, c)
|
||||
attributes = {"_class": "w2p_spreadsheet_col_%s" % \
|
||||
self.even_or_odd(c)}
|
||||
key = 'r%sc%s' % (r, c)
|
||||
attributes = {"_class": "w2p_spreadsheet_col_%s" %
|
||||
self.even_or_odd(c)}
|
||||
if key in self.td_attributes:
|
||||
attributes.update(self.td_attributes[key])
|
||||
td = TD(self.nodes[key], **attributes)
|
||||
tds.append(td)
|
||||
attributes = {"_class": "w2p_spreadsheet_row_%s" % \
|
||||
self.even_or_odd(r)}
|
||||
attributes = {"_class": "w2p_spreadsheet_row_%s" %
|
||||
self.even_or_odd(r)}
|
||||
if str(r) in self.tr_attributes:
|
||||
attributes.update(self.tr_attributes[str(r)])
|
||||
rows.append(TR(*tds, **attributes))
|
||||
@@ -805,8 +806,8 @@ class Sheet:
|
||||
table = TABLE(header, *rows, **self.attributes)
|
||||
|
||||
if len(self.client["cells"]) >= 1:
|
||||
data = SCRIPT(\
|
||||
"""
|
||||
data = SCRIPT(
|
||||
"""
|
||||
var w2p_spreadsheet_data = %(data)s;
|
||||
var w2p_spreadsheet_update_button = "%(update_button)s";
|
||||
var w2p_spreadsheet_update_result = null;
|
||||
@@ -835,7 +836,8 @@ class Sheet:
|
||||
|
||||
if (w2p_spreadsheet_update_button != ""){
|
||||
jQuery(function(){
|
||||
jQuery("#" + w2p_spreadsheet_update_button).click(w2p_spreadsheet_update_db);
|
||||
jQuery("#" + w2p_spreadsheet_update_button).click(
|
||||
w2p_spreadsheet_update_db);
|
||||
});
|
||||
}
|
||||
""" % dict(data=simplejson.dumps(self.client),
|
||||
@@ -848,22 +850,22 @@ class Sheet:
|
||||
if self.client["headers"] is not None:
|
||||
for fieldname, name in self.client["headers"].iteritems():
|
||||
unsorted_headers.append((self.client["columns"][fieldname],
|
||||
name))
|
||||
name))
|
||||
else:
|
||||
for fieldname, c in self.client["columns"].iteritems():
|
||||
unsorted_headers.append((c, fieldname))
|
||||
|
||||
sorted_headers = [TH(),] + \
|
||||
[TH(header[1]) for header in sorted(unsorted_headers)]
|
||||
sorted_headers = [TH(), ] + \
|
||||
[TH(header[1]) for header in sorted(unsorted_headers)]
|
||||
table.insert(0, TR(*sorted_headers,
|
||||
**{_class:"%s_fieldnames" % \
|
||||
attributes["_class"]}))
|
||||
**{_class: "%s_fieldnames" %
|
||||
attributes["_class"]}))
|
||||
else:
|
||||
data = SCRIPT(""" // web2py Spreadsheets: no db data.""")
|
||||
|
||||
return DIV(table,
|
||||
BR(),
|
||||
TABLE(*[TR(TH(key), TD(self.nodes[key])) \
|
||||
TABLE(*[TR(TH(key), TD(self.nodes[key]))
|
||||
for key in self.nodes if not regex.match(key)]),
|
||||
data, **attributes)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user