On Monday, 3 March 2014 14:26:15 UTC-6, Mariano Reingart wrote:
>
> Including contrib in sys.path would be interesting but there could be 
> collisions (for example, in this case, witch pg8000 will be imported: the 
> one installed or the one in gluon.contrib?)
>

That depends on the order in sys.path. We always put gluon first. 
gluon.contrib could be second.
Anyway, I agree that unless your other issues are addressed we will stick 
with your fork.

Massimo

 

>
> Tony: there are other changes needed for web2py (see the diff for web2py 
> DAL I've attached earlier), the most important are:
>
>  * missing __version__ attribute (now it is on setup.py, web2py need it to 
> differentiate drivers capabilities)
>  * connect doesn't suppor dsn string anymore (you need to pass keyword 
> parameters)
>  * set_client_encoding is not present anymore (you need to execute SQL SET 
> ...)
>  * server_version attribute has a leading underscore (_server_version), 
> this is need to detect server capabilities like JSON
>
> Also, for the pg8000 driver currently in web2py, I'd applied many bugfixes 
> reported in github / launchpad for the original project (mainly data types, 
> unicode, importing, etc.)
> Also, I'd improved the psycopg2 compatibility (i.e. set_client_encoding, 
> autocommit, set_isolation_level), implementing the simple query protocol 
> (the one that uses psycopg2, and to avoid overhead of non-prepared 
> statements) and two-phase commit support.
>
> The last would be important for web2py distributed_transaction_commit, but 
> currently gluon.dal is sending raw SQL PREPARE TRANSACTION / COMMIT 
> PREPARED / ROLLBACK PREPARED without using dbapi proposed methods TPC 
> Connection Methods (tpc_begin, tpc_prepare, tpc_commit, tpc_rollback, 
> tpc_recover) 
>
> You can see the detail of the changes applied to the web2py contrib pg8000 
> here:
>
> https://code.google.com/p/pg8000/source/list
>
> https://github.com/reingart/pg8000/commits/master
>
> If this kind of changes could be accepted (psycopg2 compatibility, simple 
> query protocol, dbapi 2.0 two-pass commit, etc.), I could help to make the 
> pull requests (note that some could depend on each other). 
> Sorry I couldn't keep track of pg8000 due lack of time, so I don't know 
> what direction the project has taken.
>
> Best regards,
>
>
> Mariano Reingart
> http://www.sistemasagiles.com.ar
> http://reingart.blogspot.com
>
>
> On Mon, Mar 3, 2014 at 10:23 AM, Massimo Di Pierro 
> <massimo....@gmail.com<javascript:>
> > wrote:
>
>> I agree with Niphlod. I do not like packages that need to be installed to 
>> work and explicit relative imports is better than absolute imports.
>> Yet, this is not the only package we had to tweak to include in contrib. 
>> So this may come up again. Any objection to include contrib in sys.path?
>>
>>
>> On Sunday, 2 March 2014 18:29:45 UTC-6, Niphlod wrote:
>>>
>>> as long as you can use it without installing it in sys.path, then it's 
>>> fine. If not, it can't be shipped with web2py, just supported as a module.
>>> I don't like packages that needs a complete install to work. It's true 
>>> that we have venvs for quite some time now, but a module with less than 10 
>>> files can accomodate for relative imports quite finely without impairing 
>>> the code-reader in everyone of us :P
>>>
>>> BTW, search for "explicit relative imports" in that doc :-P
>>>
>>> On Sunday, March 2, 2014 7:24:58 PM UTC+1, Tony Locke wrote:
>>>>
>>>> Hi, I'm a contributor to pg8000 and if there are any changes you need 
>>>> to get pg8000 working with web2py, let me know. Looking at the absolute 
>>>> import problem, PEP8 seems to think absolute imports are the way to go:
>>>>
>>>> http://legacy.python.org/dev/peps/pep-0008/<http://www.google.com/url?q=http%3A%2F%2Flegacy.python.org%2Fdev%2Fpeps%2Fpep-0008%2F&sa=D&sntz=1&usg=AFQjCNG8T4Krvic_V8TCmT4iog4T5e4pyg>
>>>>
>>>> (search for 'relative' in the text) but I'm open to persuasion :-)
>>>>
>>>> Cheers,
>>>>
>>>> Tony.
>>>>
>>>> On Saturday, 1 March 2014 11:18:43 UTC, Joe Barnhart wrote:
>>>>>
>>>>> Hi Mariano --
>>>>>
>>>>> I'd like to encourage you to keep making pg8000 a viable alternative 
>>>>> for web2py.  I started with it but had to change to psycopg2 because of 
>>>>> some issues that postgres handled better under the psy driver.  But I 
>>>>> think 
>>>>> pypy could be the future of python and it won't support a driver like 
>>>>> psycopg2 -- but it could support pg8000 since it is all python.
>>>>>
>>>>> It's just good to have an alternative because no driver does it all.
>>>>>
>>>>> -- Joe B.
>>>>>
>>>>> On Tuesday, February 25, 2014 6:55:17 PM UTC-8, Mariano Reingart wrote:
>>>>>>
>>>>>> Hi Horst:
>>>>>>
>>>>>> Sadly there have been a lot of changes in pg8000, so it is not 
>>>>>> backward compatible with the current custom version in web2py. 
>>>>>>
>>>>>> First, you need to delete the pg8000 folder in contrib, and put the 
>>>>>> new pg8000 folder (the one with __init__.py) directly in the web2py top 
>>>>>> level folder (at the same level as gluon).
>>>>>> Note that the new pg8000 uses absolute imports that will not work if 
>>>>>> pg8000 is in contrib folder (or it should be added to the PYTHONPATH)
>>>>>>
>>>>>> Second, you need to apply the attached patch to gluon/dal.py to:
>>>>>>  * change the import (and add a missing __version__ attribute)
>>>>>>  * change connection to pass individual parameters (dsn string is not 
>>>>>> supported anymore)
>>>>>>  * change after_connection set_client_encoding to execute SQL
>>>>>>  * change server_version to _server_version
>>>>>>
>>>>>> I'll propose (again) to the pg8000 group the changes I've introduced 
>>>>>> for web2py, so the latest version could be used as a direct drop-in 
>>>>>> replacement for psycopg2
>>>>>> IIRC, at some stage the author gave me commit access, but I didn't 
>>>>>> have time to pull my changes and missed some discussions about the 
>>>>>> project 
>>>>>> internals.
>>>>>>
>>>>>> Best regards
>>>>>>
>>>>>>  
>>>>>> Mariano Reingart
>>>>>> http://www.sistemasagiles.com.ar
>>>>>> http://reingart.blogspot.com
>>>>>>
>>>>>>
>>>>>> On Tue, Feb 25, 2014 at 5:46 PM, Horst Horst <spamf...@gmail.com>wrote:
>>>>>>
>>>>>>> I've tried the latest pg8000 as a drop-in replacement, but it seems 
>>>>>>> web2py can't import it:
>>>>>>>
>>>>>>> <type 'exceptions.RuntimeError'> Failure to connect, tried 5 times: 
>>>>>>> Traceback (most recent call last): File "/Users/sfx/dev/mdb/web2py.
>>>>>>> app/Contents/Resources/gluon/dal.py", line 7766, in __init__ File 
>>>>>>> "/Users/sfx/dev/mdb/web2py.app/Contents/Resources/gluon/dal.py", 
>>>>>>> line 2756, in __init__ File "/Users/sfx/dev/mdb/web2py.
>>>>>>> app/Contents/Resources/gluon/dal.py", line 795, in find_driver 
>>>>>>> RuntimeError: no driver available ('psycopg2', 'pg8000')
>>>>>>>
>>>>>>> I didn't step through it in the debugger, but the module's 
>>>>>>> __init__.pyc got compiled, so I know web2py attempted an import.
>>>>>>>
>>>>>>> The latest pg8000/__init__.py contains a section which matches the 
>>>>>>> former interface
>>>>>>>
>>>>>>> # For compatibility with 1.8
>>>>>>> import pg8000 as dbapi
>>>>>>> DBAPI = dbapi
>>>>>>> pg8000_dbapi = DBAPI
>>>>>>>
>>>>>>> so I'd guess it's a minor problem, nonetheless I'm lost at this 
>>>>>>> point.
>>>>>>>
>>>>>>>
>>>>>>> On Monday, February 24, 2014 9:32:05 PM UTC+1, Mariano Reingart 
>>>>>>> wrote:
>>>>>>>
>>>>>>>> You could try to update pg8000 from the official:
>>>>>>>>
>>>>>>>> https://github.com/mfenniak/pg8000
>>>>>>>>
>>>>>>>> Let us know if that works, so we could update the one distributed 
>>>>>>>> with web2py
>>>>>>>> The one currently distributed in contrib is an older version with 
>>>>>>>> custom patches (as it was not being mantained at the time it was 
>>>>>>>> included 
>>>>>>>> to web2py), but now the official site has updates that could help you 
>>>>>>>> in 
>>>>>>>> this case.
>>>>>>>>
>>>>>>>> Best regards
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> Mariano Reingart
>>>>>>>> http://www.sistemasagiles.com.ar
>>>>>>>> http://reingart.blogspot.com
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Feb 24, 2014 at 10:18 AM, Horst Horst 
>>>>>>>> <spamf...@gmail.com>wrote:
>>>>>>>>
>>>>>>>>>  I'm getting a:
>>>>>>>>>
>>>>>>>>>   <class 'gluon.contrib.pg8000.errors.NotSupportedError'> type 
>>>>>>>>> oid 114 not mapped to py type
>>>>>>>>>
>>>>>>>>> I'm wondering what's the best thing to do now? Currently I'm 
>>>>>>>>> considering:
>>>>>>>>>
>>>>>>>>> - using TEXT instead. But my former JSON strings are then enclosed 
>>>>>>>>> by "|" which leads to new errors
>>>>>>>>>
>>>>>>>>> - updating gp8000 (there seems to be a newer version, but the 
>>>>>>>>> version numbering is confusing)
>>>>>>>>>
>>>>>>>>> - using psycopg2. How can I install this into an Mac OS standalone 
>>>>>>>>> version of web2py?
>>>>>>>>>
>>>>>>>>>  -- 
>>>>>>>>> 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/groups/opt_out.
>>>>>>>>>
>>>>>>>>
>>>>>>>>  -- 
>>>>>>> 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/groups/opt_out.
>>>>>>>
>>>>>>
>>>>>>  -- 
>> 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 <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>

-- 
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/groups/opt_out.

Reply via email to