BUG Settings Page - Updating the census district infomation config.yaml through the settings page causes clustering to crash.
To Reproduce, Run cluster, open the settings page, edit/or do nothing, press update app.
ERROR 19-Jul 11:45:57 web Uncaught exception GET /cluster-census-2011-district (::1)
HTTPServerRequest(protocol='http', host='localhost:9988', method='GET', uri='/cluster-census-2011-district', version='HTTP/1.1', remote_ip='::1')
Traceback (most recent call last):
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/scope.py", line 181, inresolve
return self.resolvers[key]
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/collections/__init__.py", line 883, in __getitem__
return self.__missing__(key) # support subclasses that define __missing__
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/collections/__init__.py", line 875, in __missing__
raise KeyError(key)
KeyError: 'literacy_pc'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/scope.py", line 192, inresolve
return self.temps[key]
KeyError: 'literacy_pc'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/web.py", line 1543, in _execute
result = yield result
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/gramex/handlers/filehandler.py", line 191, in _get
yield self._get_path(self.root / path if self.root.is_dir() else self.root)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/gen.py", line 1107, in run
yielded = self.gen.throw(*exc_info)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/gramex/handlers/filehandler.py", line 295, in _get_path
item = yield item
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/gen.py", line 1099, in run
value = future.result()
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/gen.py", line 296, in wrapper
result = func(*args, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/types.py", line 248, in wrapped
coro = func(*args, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/gramex/transforms/template.py", line 15, in template
raise tornado.gen.Return(tmpl.generate(handler=handler, **kwargs).decode('utf-8'))
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/tornado/template.py", line 346, in generate
return execute()
File "<string>.generated.py", line 87, in _tt_execute
info, data = geocluster.get_dataset(handler, datasetname) # <string>:83
File "/home/karmanya/repos/geocluster/geocluster.py", line 146, in get_dataset
result[name] = result.eval(column_info['formula'])
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/frame.py", line 2366, in eval
return _eval(expr, inplace=inplace, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/eval.py", line 290, in eval
truediv=truediv)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 732, in __init__
self.terms = self.parse()
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 749, in parse
return self._visitor.visit(self.expr)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 314, in visit
return visitor(node, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 320, in visit_Module
return self.visit(expr, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 314, in visit
return visitor(node, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 323, in visit_Expr
return self.visit(node.value, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 314, in visit
return visitor(node, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 418, in visit_BinOp
op, op_class, left, right = self._maybe_transform_eq_ne(node)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 355, in _maybe_transform_eq_ne
left = self.visit(node.left, side='left')
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 314, in visit
return visitor(node, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 418, in visit_BinOp
op, op_class, left, right = self._maybe_transform_eq_ne(node)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 355, in _maybe_transform_eq_ne
left = self.visit(node.left, side='left')
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 314, in visit
return visitor(node, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/expr.py", line 432, in visit_Name
return self.term_type(node.id, self.env, **kwargs)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/ops.py", line 58, in __init__
self._value = self._resolve_name()
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/ops.py", line 75, in _resolve_name
res = self.env.resolve(self.local_name, is_local=self.is_local)
File "/home/karmanya/anaconda3/envs/gramexmaster/lib/python3.6/site-packages/pandas/core/computation/scope.py", line 194, inresolve
raise compu.ops.UndefinedVariableError(key, is_local)
pandas.core.computation.ops.UndefinedVariableError: name 'literacy_pc' is not defined
Doesn't seem to be a problem in any other dataset - could be because census creates new columns in the config.