Hi,

I'm proud to announce that I've finished the work, and now the web2py book
is python3 compatible, as with PR #395
<https://github.com/web2py/web2py-book/pull/395> It was a hard work for me,
but I've learned a lot ;-)

Cheers,
Nico

Il giorno lun 15 ott 2018 alle ore 22:26 Nico Zanferrari <nicoz...@gmail.com>
ha scritto:

> Thank you all,
>
> I've finally resolved by using io.open() for the encode problem, and by
> putting the message in the redirect  for bypassing the session.forget()
> command.
>
> Nico
>
> Il giorno ven 12 ott 2018 alle ore 21:34 Dave S <snidely....@gmail.com>
> ha scritto:
>
>>
>>
>> On Friday, October 12, 2018 at 2:52:44 AM UTC-7, Nico Zanferrari wrote:
>>>
>>> Hi Dave!
>>>
>>> On
>>> https://github.com/web2py/web2py-book/blob/master/controllers/default.py
>>>  the session.forget() command is on line 10 - and I suppose it's quite
>>> necessary.
>>>
>>>
>> I wonder if that's for development, like uncommenting the hack in
>> calc_date() a little below there.
>>
>>
>>> If I change the convert2html function in order to test for import errors:
>>>
>>>     try:
>>>         from pygments import highlight as pygments_highlight
>>>         from pygments.lexers import PythonLexer as pygments_PythonLexer
>>>         from pygments.formatters import HtmlFormatter as
>>> pygments_HtmlFormatter
>>>     except (ModuleNotFoundError, ImportError) as e:
>>>         session.flash = T('Requires pygments module, but it is not
>>> installed - %s' % e)
>>>         redirect(URL('index'))
>>>
>>> The FLASH message is never displayed, unless I comment line 10.
>>>
>>>
>> And request.flash gets flushed by the redirect, IIRC.
>>
>> As a  fresh hack, put the message in the URL of the redirect, and look
>> for it in index(), and sanitize it into request.flash.
>>
>> /dps
>>
>>
>>
>>>
>>>
>>> Il giorno ven 12 ott 2018 alle ore 11:17 Dave S <snide...@gmail.com> ha
>>> scritto:
>>>
>>>>
>>>>
>>>> On Thursday, October 11, 2018 at 1:29:04 PM UTC-7, Nico Zanferrari
>>>> wrote:
>>>>>
>>>>> Thank you Ben,
>>>>>
>>>>> I was looking at  the same official page ;-)
>>>>> It seems that  using the io module is the way to go, and it's already
>>>>> used in pymysql . I'm testing it.
>>>>>
>>>>> Nobody has suggestions about the session.foget() and session.flash
>>>>> message?
>>>>>
>>>>> thank you,
>>>>> nico
>>>>>
>>>>>
>>>> Where is the session.forget() call?  Is it part of the error path?  Or
>>>> did you set up your index() function to do that>
>>>>
>>>> /dps
>>>>
>>>>
>>>>> Il giorno gio 11 ott 2018 alle ore 17:35 Ben Duncan <linu...@gmail.com>
>>>>> ha scritto:
>>>>>
>>>>>> Also found this:
>>>>>>
>>>>>> http://python-future.org/compatible_idioms.html
>>>>>>
>>>>>> On Thu, Oct 11, 2018 at 10:30 AM Ben Duncan <linu...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Try These suggestions:
>>>>>>>
>>>>>>>
>>>>>>> https://stackoverflow.com/questions/491921/unicode-utf-8-reading-and-writing-to-files-in-python/844443
>>>>>>> http://www.evanjones.ca/python-utf8.html
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Oct 11, 2018 at 9:38 AM Nico Zanferrari <nico...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi,
>>>>>>>>
>>>>>>>> the encode-decode problem on question 1 is mostly related to the
>>>>>>>> opening of files. For example:
>>>>>>>>
>>>>>>>>     filename = os.path.join(FOLDER, subfolder, 'chapters.txt')
>>>>>>>>     if PY2:
>>>>>>>>         lines = open(filename)
>>>>>>>>     else:
>>>>>>>>         lines = open(filename, encoding='utf-8')
>>>>>>>>
>>>>>>>> In PY2 there is no option for the encoder, while on PY3 it is
>>>>>>>> mandatory.
>>>>>>>>
>>>>>>>> I'm still learning, too ;-)
>>>>>>>> Nico
>>>>>>>>
>>>>>>>>
>>>>>>>> Il giorno gio 11 ott 2018 alle ore 16:16 Ben Duncan <
>>>>>>>> linu...@gmail.com> ha scritto:
>>>>>>>>
>>>>>>>>> Exactly what are you running into?
>>>>>>>>>
>>>>>>>>> I ran into this with my rewrite of of extract
>>>>>>>>> extract_pgsql_models.py:
>>>>>>>>> ......
>>>>>>>>>     f['type'] =
>>>>>>>>> "'decimal({},{})'".format(f['precision'],f['scale'])
>>>>>>>>> had to become
>>>>>>>>>  f['type'] = "'decimal({0},{1})'".format(f['precision'],f['scale'])
>>>>>>>>>
>>>>>>>>> And so one.
>>>>>>>>>
>>>>>>>>> The changes work across Python 2.7 and 3.6 seamlessly now ...
>>>>>>>>>
>>>>>>>>> FWIW, I'm just making the transition to Python 3,6 so I'm learning
>>>>>>>>> things the hard way ...
>>>>>>>>>
>>>>>>>>> Ben Duncan
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Wed, Oct 10, 2018 at 4:02 PM Nico Zanferrari <nico...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> I'm playing with the web2py-book app, in order to make it python
>>>>>>>>>> 3 compatible and also to improve it a bit. I have a couple of 
>>>>>>>>>> questions
>>>>>>>>>> related to default.py:
>>>>>>>>>>
>>>>>>>>>> 1. there were some encode-decode errors. I was able to resolve
>>>>>>>>>> them (see https://github.com/nicozanf/web2py-book for a preview)
>>>>>>>>>> but I was forced to use many "IF PY2 / else" conditions, in order to
>>>>>>>>>> preserve python 2.7 compatibility.  Is there a more elegant and 
>>>>>>>>>> pythonic
>>>>>>>>>> solution to manage this and similar situations?
>>>>>>>>>>
>>>>>>>>>> 2. I've added a try/except condition, in order to catch a missing
>>>>>>>>>> library (pygments). It works fine, but the session.flash error 
>>>>>>>>>> message is
>>>>>>>>>> not displayed at all because it's followed by a  redirect to index 
>>>>>>>>>> itself
>>>>>>>>>> and there is a session.forget() on the top that cleans it. If I 
>>>>>>>>>> comment the
>>>>>>>>>> session.forget() the flash message is correctly displayed. What can 
>>>>>>>>>> I do?
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Nico
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Resources:
>>>>>>>>>> - http://web2py.com
>>>>>>>>>> - http://web2py.com/book (Documentation)
>>>>>>>>>> - http://github.com/web2py/web2py (Source code)
>>>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>>>>>>> ---
>>>>>>>>>> You received this message because you are subscribed to the
>>>>>>>>>> Google Groups "web2py-users" group.
>>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>>> send an email to web2py+un...@googlegroups.com.
>>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Resources:
>>>>>>>>> - http://web2py.com
>>>>>>>>> - http://web2py.com/book (Documentation)
>>>>>>>>> - http://github.com/web2py/web2py (Source code)
>>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>>>>>> ---
>>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>>> Groups "web2py-users" group.
>>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>>> send an email to web2py+un...@googlegroups.com.
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>> --
>>>>>>>> Resources:
>>>>>>>> - http://web2py.com
>>>>>>>> - http://web2py.com/book (Documentation)
>>>>>>>> - http://github.com/web2py/web2py (Source code)
>>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>>>>> ---
>>>>>>>> You received this message because you are subscribed to the Google
>>>>>>>> Groups "web2py-users" group.
>>>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>>>> send an email to web2py+un...@googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>> --
>>>>>> Resources:
>>>>>> - http://web2py.com
>>>>>> - http://web2py.com/book (Documentation)
>>>>>> - http://github.com/web2py/web2py (Source code)
>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>>>> ---
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "web2py-users" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it,
>>>>>> send an email to web2py+un...@googlegroups.com.
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>> --
>>>> Resources:
>>>> - http://web2py.com
>>>> - http://web2py.com/book (Documentation)
>>>> - http://github.com/web2py/web2py (Source code)
>>>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>>>> ---
>>>> You received this message because you are subscribed to the Google
>>>> Groups "web2py-users" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to web2py+un...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
>> Resources:
>> - http://web2py.com
>> - http://web2py.com/book (Documentation)
>> - http://github.com/web2py/web2py (Source code)
>> - https://code.google.com/p/web2py/issues/list (Report Issues)
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "web2py-users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to web2py+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to