I am fairly certain there is something wrong with the dev version of Nagare because I tried to run the simple Counter example that uses 2 presentation models and instead of it working, I get "ModelError: No model "static" for <freezecounter.app.Counter instance at 0x7f66876997a0>" ... the full shell session follows:
(nagare-home)<tebranno@polaris-stg-app1 ~/prg/freezecounter> cat freezecounter/app.py
from nagare import presentation
class Counter:
def __init__(self):
self.value = 12
def increase(self):
print "Increasing..."
self.value += 1
def decrease(self):
self.value -= 1
@presentation.render_for(Counter)
def render(self, h, comp, *args):
with h.div:
h << 'Var: ' << self.value << h.br h << h.a('--').action(self.decrease)
h << ' | '
h << h.a('FREEZE').action(comp.becomes, self, 'static')
h << ' | '
h << h.a('++').action(self.increase)
return h.root
presentation.render_for(Counter, model='static')
def render_static(self, h, *args):
return h.b(self.value)
# ---------------------------------------------------------------
app = Counter
(nagare-home)<tebranno@polaris-stg-app1 ~/prg/freezecounter> nagare-admin info
CPython 2.7.8 Stackless 3.1b3 060516 (v2.7.8-slp:ff29dd4f67de, Apr 9 2015, 18:40:01)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]
Nagare version 0.4.1.post467
(nagare-home)<tebranno@polaris-stg-app1 ~/prg/freezecounter> pip freeze
/home/tebranno/install/nagare-home/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning
Warning: cannot find svn location for PEAK-Rules===0.5a1.dev-r2713
AddOns==0.7
Babel==1.3
BytecodeAssembler==0.6.post2646
configobj==5.0.6
DecoratorTools==1.8
docutils==0.12
Elixir==0.7.1
Extremes==1.1.1
flup==1.0.3.dev20110405
freezecounter==0.0.1
lxml==3.4.4
nagare==0.4.1.post467
nose==1.3.6
Paste==1.7.5.1
## FIXME: could not find svn URL in dependency_links for this package:
PEAK-Rules===0.5a1.dev-r2713
Pygments==1.1
pymssql==2.1.1
python-memcached==1.54
pytz==2015.2
RstDoc==0.9.0
six==1.9.0
SQLAlchemy==1.0.2
SymbolType==1.0
Tempita==0.5.3.dev0
WebError==0.10.3
WebOb==1.4.1
(nagare-home)<tebranno@polaris-stg-app1 ~/prg/freezecounter> nagare-admin serve freezecounter --reload --host 0.0.0.0 --port 8089
Application 'app freezecounter' registered as '/freezecounter'
Increasing...
Increasing...
----------------------------------------
Exception happened during processing of request from ('10.24.3.246', 65298)
Traceback (most recent call last):
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 1068, in process_request_in_thread
self.finish_request(request, client_address)
File "/home/tebranno/install/stackless/lib/python2.7/SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/home/tebranno/install/stackless/lib/python2.7/SocketServer.py", line 651, in __init__
self.handle()
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 442, in handle
BaseHTTPRequestHandler.handle(self)
File "/home/tebranno/install/stackless/lib/python2.7/BaseHTTPServer.py", line 340, in handle
self.handle_one_request()
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 437, in handle_one_request
self.wsgi_execute()
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/httpserver.py", line 287, in wsgi_execute
self.wsgi_start_response)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/Paste-1.7.5.1-py2.7.egg/paste/urlmap.py", line 203, in __call__
return app(environ, start_response)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/wsgi.py", line 520, in __call__
response = self.on_exception(request, response)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/wsgi.py", line 500, in __call__
output = render(renderer) if render else root.render(renderer)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/component.py", line 113, in render
return presentation.render(self, renderer, self, model)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/presentation.py", line 22, in render
def render(self, renderer, comp, model):
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/component.py", line 262, in render
output = presentation.render(self(), renderer, self, model)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/presentation.py", line 22, in render
def render(self, renderer, comp, model):
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/PEAK_Rules-0.5a1.dev_r2713-py2.7.egg/peak/rules/core.py", line 589, in callback
return f(*args, **kw)
File "/home/tebranno/install/nagare-home/lib/python2.7/site-packages/nagare-0.4.1.post467-py2.7.egg/nagare/presentation.py", line 36, in render
raise ModelError('No model "%s" for %r' % (model, self))
ModelError: No model "static" for <freezecounter.app.Counter instance at 0x7f66876997a0>
----------------------------------------