Use Lepl on appengine?

25 views
Skip to first unread message

Michal Hantl

unread,
Feb 5, 2012, 10:01:06 AM2/5/12
to le...@googlegroups.com
Hello,
 I am trying to use Lepl on my machine in such way that I can then deploy it to AppEngine.

I am new to Python so maybe there is easy solution for this.

So far I tried copying lepl from "/usr/local/lib/python2.7/dist-packages/LEPL-5.0.1-py2.7.egg/lepl" to my app/lepl and then running the JSON parser.

The file is located at app/something.py and lepl dir is at app/lepl

from lepl import * 
from lepl.support.lib import str 
 
 
def Simple(): 
    ''' 
    A simple JSON parser. 
    ''' 
     
    escapes = {'\\b': '\b', '\\f': '\f', '\\n': '\n', '\\t': '\t', '\\r': '\r'} 
     
    def unescape_string(text): 
        return escapes[text] 
     
    def unescape_unicode(text): 
        # Python 3 only 
        return bytes(str(text), 'utf8').decode('unicode_escape') 
     
    value          = Delayed() 
 
    unicode_escape = ("\\u" + Digit()[4, ...])   >> unescape_unicode 
    regular_escape = ("\\" + Any("bfntr"))       >> unescape_string 
    escape         = (unicode_escape | regular_escape) 
    string         = (Drop('"') & (AnyBut('"\\') | escape)[...] & Drop('"')) 
     
    number         = Real() >> float 
     
    comma          = Drop(',') 
     
    with DroppedSpace(): 
        array          = Drop("[") & value[:, comma] & Drop("]")  > list 
     
        pair           = string & Drop(":") & value               > tuple 
        object_        = Drop("{") & pair[:, comma] & Drop("}")   > dict 
     
     
    value         += ((Literal('true')  >= (lambda x: True)) | 
                      (Literal('false') >= (lambda x: False)) | 
                      (Literal('null')  >= (lambda x: None)) | 
                      array | object_ | number | string) 
 
    return value 


#parser = Simple()
#parser.parse("{a:'b', c:123")



The error is:

ImportError: No module named lepl.contrib.matchers
INFO     2012-02-05 14:58:55,106 dev_appserver.py:2832] "GET / HTTP/1.1" 500 -
ERROR    2012-02-05 14:58:55,220 wsgi.py:170] 
Traceback (most recent call last):
  File "/home/michal/dev/py/google/appengine/runtime/wsgi.py", line 168, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/home/michal/dev/py/google/appengine/runtime/wsgi.py", line 206, in _LoadHandler
    handler = __import__(path[0])
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1818, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1690, in FindAndLoadModule
    description)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1633, in LoadModuleRestricted
    description)
  File "/home/michal/dev/mychalpychal/helloworld.py", line 4, in <module>
    from app.application import *
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1818, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1690, in FindAndLoadModule
    description)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1633, in LoadModuleRestricted
    description)
  File "/home/michal/dev/mychalpychal/app/application.py", line 5, in <module>
    from translate import *
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1818, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1690, in FindAndLoadModule
    description)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1633, in LoadModuleRestricted
    description)
  File "/home/michal/dev/mychalpychal/app/translate.py", line 87, in <module>
    from lepl import *
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1818, in load_module
    return self.FindAndLoadModule(submodule, fullname, search_path)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1690, in FindAndLoadModule
    description)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 662, in Decorate
    return func(self, *args, **kwargs)
  File "/home/michal/dev/py/google/appengine/tools/dev_appserver_import_hook.py", line 1633, in LoadModuleRestricted
    description)
  File "/home/michal/dev/mychalpychal/app/lepl/__init__.py", line 113, in <module>
    from lepl.contrib.matchers import SmartSeparator2
ImportError: No module named lepl.contrib.matchers
INFO     2012-02-05 14:58:55,226 dev_appserver.py:2832] "GET /favicon.ico HTTP/1.1" 500 -


I hope I can solve it myself, but if you have any tips I will be greateful.

andrew cooke

unread,
Feb 7, 2012, 4:34:36 PM2/7/12
to le...@googlegroups.com

i haven't used lepl on gae, but there's nothing special about lelp compared to
any other pythonpackage. if you follow the recommendations at
http://stackoverflow.com/a/4863970/181772 then it should work.

in other words, your error doesn't look like a lepl problem. it looks like a
google app engine / python problem.

cheers,
andrew

> --
> You received this message because you are subscribed to the Google Groups "lepl" group.
> To view this discussion on the web visit https://groups.google.com/d/msg/lepl/-/JkYlAwpyRJMJ.
> To post to this group, send email to le...@googlegroups.com.
> To unsubscribe from this group, send email to lepl+uns...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/lepl?hl=en.
>

Reply all
Reply to author
Forward
0 new messages