開発環境では、うまく機能します。しかし、AppEngine にデプロイした後、壊れます。プロジェクトに必要なファイルを含めます。
LEPL 5.1.3 が使用されています。
破損:
<type 'exceptions.SyntaxError'>: invalid syntax (parser.py, line 182)
Traceback (most recent call last):
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/controllers/main.py", line 26, in <module>
from controllers import users as Users
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/controllers/users.py", line 15, in <module>
from lepl.apps.rfc3696 import Email
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/lepl/__init__.py", line 113, in <module>
from lepl.contrib.matchers import SmartSeparator2
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/lepl/contrib/matchers.py", line 41, in <module>
from lepl.matchers.derived import Optional
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/lepl/matchers/derived.py", line 38, in <module>
from lepl.matchers.combine import And, DepthFirst, BreadthFirst, \
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/lepl/matchers/combine.py", line 45, in <module>
from lepl.matchers.core import Literal
File "/base/data/home/apps/s~roo-net/4-0.361574419262849513/lepl/matchers/core.py", line 44, in <module>
from lepl.core.parser import tagged
appengine によって表示されるこのエラー メッセージに非常に混乱しています。parser.py の 182 行を見てみると、問題ないように見えます。本当に美しいもの。
...
else:
if m_value: m_value.yield_(value)
yield value
# this allows us to restart with a new evaluation
# (backtracking) if called again.
value = main
except StopIteration as exception: # line 182
if exception_being_raised:
raise
# otherwise, we will propagate this value
value = exception
exception_being_raised = True
if m_value: m_value.exception(value)
...