Thank you Mathieu,

I found the place to create issue... Actually, I wanted to better qualify 
the issue before open it, restarting from a clean project, and I cannot 
reproduce the very first issue!
I encounter some other issues related to binary encoding but now I prefer 
triple check before speaking!

Le lundi 2 avril 2018 16:36:59 UTC+2, Mathieu Clabaut a écrit :
>
> Alexandre,
>
> just go to : https://github.com/web2py/web2py/issues/new
>
> And fill in the issue withe the information given in your mail.
>
> Le ven. 30 mars 2018 à 16:50, <[email protected] <javascript:>> a 
> écrit :
>
>> Sure! Let me see how to do that and I will. Thank you
>>
>>
>> Le mercredi 28 mars 2018 18:49:08 UTC+2, Massimo Di Pierro a écrit :
>>
>>> I think this is. Can you please open an issue about it?
>>>
>>> On Tuesday, 27 March 2018 13:32:15 UTC-5, [email protected] wrote:
>>>>
>>>> Hello All,
>>>>
>>>> I'm an absolute newbie with web2py so I'm not sure if the issue lies in 
>>>> web2py/3.6 or my own mistakes... My apologies in advance.
>>>>
>>>> I encounter this error in a db.my_table.update_or_insert(..)
>>>>
>>>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 
>>>> 96328: invalid start byte'
>>>>
>>>>
>>>> What I'm trying to do:
>>>> I have a text file that is the representation of a datamodel in a 
>>>> specific COTS format.
>>>> I want to parse it, list the tables to be created and create them 
>>>> actually.
>>>> I know that the file countains non-utf-8 characters, that's why I open 
>>>> it in binary:
>>>>
>>>>        dpm_file = gzip.open(filepath,'rb')
>>>>
>>>> ... parse it using binary regex: (I imported the 'regex' module)
>>>>         regexp = regex.compile(b':columns 
>>>> (\(((?>[^()]+)|(?1))*\))',regex.DOTALL)
>>>>         header_classes = regexp.findall(one_format_text)[0]
>>>>
>>>> ... and insert the results in db blob fields: (the error occurs here)
>>>>     db.dpm_header.update_or_insert(db.dpm_header.dpm == my_dpm_id, dpm 
>>>> = my_dpm_id, header_classes  = header_classes, header_objects  = 
>>>> header_objects)
>>>>
>>>> I defined blob fields because I thought that it was the way to write 
>>>> directly in binary in database.
>>>> I really wanted to use binary preciselly to avoid to manage the 
>>>> encoding/decoding issues.
>>>>
>>>> In addition, this project is an attempt to transport in web2py an older 
>>>> project that was working perfectly in pure python 3.6.3 (unix and windows) 
>>>> (except that instead of creating tables in a DB, I created text files in a 
>>>> filer...).
>>>> Is it a issue on web2py/python 3.6? Or my misunderstanding on database 
>>>> management...
>>>>
>>>> Thank you for your help!
>>>>
>>>> Here is the trace
>>>>
>>>> Traceback (most recent call last):
>>>>   File "D:\web\zz\web2py\gluon\restricted.py", line 219, in restricted
>>>>     exec(ccode, environment)
>>>>   File "D:/web/zz/web2py/applications/dpm_manager/controllers/default.py" 
>>>> <http://127.0.0.1:8000/admin/default/edit/dpm_manager/controllers/default.py>,
>>>>  line 175, in <module>
>>>>   File "D:\web\zz\web2py\gluon\globals.py", line 419, in <lambda>
>>>>     self._caller = lambda f: f()
>>>>   File "D:\web\zz\web2py\gluon\tools.py", line 3982, in f
>>>>     return action(*a, **b)
>>>>   File "D:/web/zz/web2py/applications/dpm_manager/controllers/default.py" 
>>>> <http://127.0.0.1:8000/admin/default/edit/dpm_manager/controllers/default.py>,
>>>>  line 131, in analyze
>>>>     header_classes  = header_classes)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\objects.py", line 811, 
>>>> in update_or_insert
>>>>     record = self(_key)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\objects.py", line 565, 
>>>> in __call__
>>>>     orderby_on_limitby=False).first()
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\objects.py", line 2250, 
>>>> in select
>>>>     return adapter.select(self.query, fields, attributes)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\sqlite.py", 
>>>> line 82, in select
>>>>     return super(SQLite, self).select(query, fields, attributes)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\base.py", line 
>>>> 762, in select
>>>>     return self._select_aux(sql, fields, attributes, colnames)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\base.py", line 
>>>> 741, in _select_aux
>>>>     return processor(rows, fields, colnames, cacheable=cacheable)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\base.py", line 
>>>> 305, in parse
>>>>     for row in rows
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\base.py", line 
>>>> 302, in <listcomp>
>>>>     self._parse(
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\base.py", line 
>>>> 231, in _parse
>>>>     value = self.parse_value(value, fit, ft, blob_decode)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\adapters\base.py", line 
>>>> 198, in parse_value
>>>>     return self.parser.parse(value, field_itype, field_type)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\parsers\__init__.py", 
>>>> line 101, in parse
>>>>     return self.registered[field_itype](value, field_type)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\parsers\__init__.py", 
>>>> line 76, in __call__
>>>>     return self.call(value, field_type)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\parsers\__init__.py", 
>>>> line 73, in _call
>>>>     return self.f(self.parser, value)
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\parsers\base.py", line 
>>>> 37, in _blob
>>>>     return to_native(b64decode(to_bytes(value)))
>>>>   File "D:\web\zz\web2py\gluon\packages\dal\pydal\_compat.py", line 82, in 
>>>> to_native
>>>>     return obj.decode(charset, errors)
>>>> UnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 
>>>> 96328: invalid start byte
>>>>
>>>> -- 
>> 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 [email protected] <javascript:>.
>> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to