Ok, look into that when you can. Just notice that the "run_view_in" can't 
see the unicodedata module, but in shell environment unicodedata is 
present, otherwise this

>>> unicodedata.normalize('NFKD', u'hi')
u'hi'



would have raised an exception

On Thursday, October 11, 2012 10:46:17 PM UTC+2, Massimo Di Pierro wrote:
>
> There is a known problem with the custom_import, it does not work when 
> import mymodule is called from the shell. Perhaps this is also a problem 
> with the scheduler. It is in my todo list to fix it by the end of the week.
>
> On Thursday, 11 October 2012 14:20:37 UTC-5, Niphlod wrote:
>>
>> it's odd, but seems unrelated to scheduler. To help on further 
>> investigation, I managed to reproduce in shell.
>> Append to standard db.py
>>
>> import unicodedata
>> def testfunction():
>>      return response.render('message.html', context=dict())
>>
>>
>>
>> then, create views/message.html
>>
>> {{=XML('<p>%s</p>' % (unicodedata.normalize('NFKD', u'hi')))}}
>>
>>
>>
>> then, controllers/default.py
>> def test():
>>     return testfunction()
>>
>>
>>
>> go to testapp/default/test , no errors, "hi" is returned correctly
>>
>> but, in shell....
>> web2py -M -S testapp
>> >>> myvar = testfunction()
>> Traceback (most recent call last):
>>   File "<console>", line 1, in <module>
>>   File "applications/un/models/db.py", line 86, in testfunction
>>     return response.render('message.html', context=dict())
>>   File "/home/niphlod/Scrivania/web2py_source/web2py/gluon/globals.py",line 
>> 218, in render
>>     run_view_in(self._view_environment)
>>   File "/home/niphlod/Scrivania/web2py_source/web2py/gluon/compileapp.py"
>> , line 656, in run_view_in
>>     restricted(ccode, environment, layer)
>>   File "/home/niphlod/Scrivania/web2py_source/web2py/gluon/restricted.py"
>> , line 222, in restricted
>>     raise RestrictedError(layer, code, output, environment)
>> RestrictedError: <type 'exceptions.NameError'> name 'unicodedata' is not 
>> defined
>> >>> unicodedata.normalize('NFKD', u'hi')
>> u'hi'
>>
>>
>>
>>
>>
>> On Thursday, October 11, 2012 7:29:09 PM UTC+2, Adi wrote:
>>>
>>> this is the one that comes from python: 
>>> http://docs.python.org/library/unicodedata.html 
>>>
>>> (using it to clean out trademark and other symbols in order to send text 
>>> as email)
>>>
>>>
>>> On Thursday, October 11, 2012 12:18:19 PM UTC-4, Massimo Di Pierro wrote:
>>>>
>>>> Where is unicodedata.py located?
>>>>
>>>> On Thursday, 11 October 2012 10:56:50 UTC-5, Adi wrote:
>>>>>
>>>>>
>>>>> unicodedata module is accessible in a view when i test code directly 
>>>>> from an application, but get the error when run the same code from 
>>>>> scheduler. I can move the code up to a model (db_scheduler), but just 
>>>>> wanted to know if imports from models should be visible to Views when run 
>>>>> through scheduler? 
>>>>>
>>>>> Thanks,
>>>>> Adnan
>>>>>
>>>>>
>>>>> db_scheduler.py
>>>>>         import unicodedata
>>>>>
>>>>>         def send_order_confirmation_email():
>>>>>             ...
>>>>>              context=dict(order=order)
>>>>>              message=response.render(msg_file, context)
>>>>>           ...send email
>>>>>             return
>>>>>
>>>>> Views:
>>>>> msg_file.html
>>>>>     {{=XML('<p>%s %s</p>' % \
>>>>>                                                 
>>>>> (row.orderItem.Qty,unicodedata
>>>>> .normalize('NFKD', \
>>>>>                                                 unicode(row.
>>>>> orderItemDetail.ProductDesc, 'utf8')).encode('ascii','ignore')))
>>>>>     }}
>>>>>
>>>>>
>>>>>
>>>>> Traceback (most recent call last):
>>>>>   File "/opt/web-apps/web2py/gluon/scheduler.py", line 218, in executor
>>>>>     result = dumps(_function(*args,**vars))
>>>>>   File "applications/crm/models/db_scheduler.py", line 179, in 
>>>>> send_order_confirmation_email
>>>>>     message=response.render(msg_file, context)
>>>>>   File "/opt/web-apps/web2py/gluon/globals.py", line 217, in render
>>>>>     run_view_in(self._view_environment)
>>>>>   File "/opt/web-apps/web2py/gluon/compileapp.py", line 654, in 
>>>>> run_view_in
>>>>>     context=environment)
>>>>>   File "/opt/web-apps/web2py/gluon/restricted.py", line 222, in 
>>>>> restricted
>>>>>     raise RestrictedError(layer, code, output, environment)
>>>>> RestrictedError: <type 'exceptions.NameError'> name 'unicodedata' is 
>>>>> not defined
>>>>>
>>>>>
>>>>>

-- 



Reply via email to