[web2py] making a secure db connection on top of already existing SSL for the site

2019-06-15 Thread Vlad
Here is a quote from the web2py docs: 

"Making a secure connection
Sometimes it is necessary (and advised) to connect to your database using 
secure connection, especially if your database is not on the same server as 
your application. In this case you need to pass additional parameters to 
the database driver. You should refer to database driver documentation for 
details.
For PostgreSQL with psycopg2 it should look like this:
DAL('postgres://user_name:user_password@server_addr/db_name',
driver_args={'sslmode': 'require', 'sslrootcert': 'root.crt',
 'sslcert': 'postgresql.crt', 'sslkey': 'postgresql.key'})"
<>

I am wondering if this feature is still necessary for a secure db 
connection in case I anyway use SSL for the site. 

Does this secure postgres feature need to be used on top of existing SSL 
connection? Or it's rather for non-ssl site to make a db connection secure? 

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/80a95bc2-94d3-49b0-af02-9f9681b7651e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] switching to postgres [RuntimeError: No driver of supported ones ('psycopg2',) is available]

2019-06-15 Thread Vlad
I am getting the following error:
RuntimeError: No driver of supported ones ('psycopg2',) is available

I used "pip3 install psycopg2"  and pip now reports that psycopg2 is 
installed. 

What am I still missing? What's the best (quickest, easiest, and 
hassle-free) way to use postgres from web2py? That is to say, I don't want 
to become a postgres expert - simply want to point to the postgres database 
and web2py to take care of the rest - this is exactly what DAL is about, 
isn't it? Ideally it should work out of the box, just like SQLite does...


-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/0d2f5773-bc1b-439a-a390-a40a05d446e0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Web3py

2019-06-15 Thread 黄祥
still have an error, a bit different told about __iter__ and __len__
$ pip3 install -U -r requirements.txt
Successfully built yatl
Installing collected packages: yatl
  Found existing installation: yatl 1.0.6
Uninstalling yatl-1.0.6:
  Successfully uninstalled yatl-1.0.6
Successfully installed yatl-1.0.7

ERROR:root:Traceback (most recent call last):
  File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 416, in 
wrapper
ret = dumps(ret)
  File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 157, in 
dumps
return json.dumps(obj, default=objectify, sort_keys=sort_keys, indent=
indent)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/__init__.py", 
line 238, in dumps
**kw).encode(obj)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 201, in encode
chunks = list(chunks)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 431, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 405, in _iterencode_dict
yield from chunks
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 438, in _iterencode
o = _default(o)
  File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 146, in 
objectify
return list(obj)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 222, in __iter__
for c in str(self):
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 222, in __iter__
for c in str(self):
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 222, in __iter__
for c in str(self):
  [Previous line repeated 481 more times]
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 226, in __len__
return len(self.text)
RecursionError: maximum recursion depth exceeded while calling a Python 
object

thx n best regards,
stifan

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/c41a8e71-02f0-4b03-a6a8-5d3499946c15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: pyDAL "adapter" for Pandas syntax (phylosophical)

2019-06-15 Thread Massimo Di Pierro
+1

On Monday, 3 June 2019 09:51:56 UTC-7, Leonel Câmara wrote:
>
> Sorry to dig this thread up, but I had to take a look at this recently.  
>   
> I think the most efficient way is to use pydal to make the sql query and 
> then have pandas do it. As an example say you want a dataframe which has 
> the user's id and their first_name
>
> import pandas as pd
> conn = db._adapter.connection
> sqlquery = pd.read_sql_query(db(db.auth_user.id > 0)._select(db.auth_user.
> id, db.auth_user.first_name), conn)
> df = pd.DataFrame(sqlquery, columns=["id", "first_name"])
>
> This uses the connection to the database already done by pydal, it uses 
> sql produced by pydal, however pydal does not process the result as it goes 
> directly to pandas.
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/7f4a5b1f-a0f0-4e28-bad6-988176d4bae0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [web2py] Generating graph with chartjs

2019-06-15 Thread Massimo Di Pierro
mind highcharts is not free

On Tuesday, 11 June 2019 09:33:37 UTC-7, Lovedie JC wrote:
>
> I'm following this discussion. Does the chart have a print to image(jpg, 
> png, svg) or pdf?
> Hicharts does a nice job. 
> Regards 
>
> On Tue, 11 Jun 2019, 19:25 Dave S  wrote:
>
>>
>>
>> On Sunday, June 9, 2019 at 3:06:01 PM UTC-7, Christian Varas wrote:
>>>
>>> II have this site www.climbersoul.cl using AdminLTE, and I with 
>>> graphics too.
>>> https://imgur.com/HQTI1u7
>>> [image: image.png]
>>>
>>>
>>> you need to include the libraries first:
>>>
>>> https://www.chartjs.org/samples/latest/utils.js";>
>>> https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js
>>> ">
>>>
>>> This is the code for the bar chart, for other chart is similar, you just 
>>> need to set the values in the array (are marked)
>>>


>> Nice!   What type of chart is the 2nd one, some sort of polar display?
>>
>> /dps
>>  
>>
>> -- 
>> 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.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/web2py/1b1bc784-149a-4886-9bc2-e4182ca58d8e%40googlegroups.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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/92223ec4-fd55-4e7a-a244-e4580df84d91%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Web3py

2019-06-15 Thread Massimo Di Pierro
was a yatl bug in len(XML('')) 
now fixed in yatl

On Saturday, 15 June 2019 00:56:45 UTC-7, 黄祥 wrote:
>
> *work in web2py*
> def json_row_as_list():
> if not request.env.request_method == 'GET': raise HTTP(403)
> import json
> table_name = request.args(0)
> id = request.args(1)
> if id.isdigit() and int(id) > 0:
> query = (db[table_name]['id'] == id)
> else:
> query = (db[table_name]['id'] > 0)
> rows = db(query).select()
> json_list = json.dumps(rows.as_list(), default = str, sort_keys = True
> )
> return dict(data = XML(json_list) )
>
> *in web3py return an error when using XML() helper, but when not using 
> XML() helper it works fine in web3py*
> *code*
> from yatl.helpers import XML
> @action('api/json_row_as_list//', method = 'GET')
> @action.uses(db)
> def json_row_as_list(table_name, id):
> import json
> if id.isdigit() and int(id) > 0:
> query = (db[table_name]['id'] == id)
> else:
> query = (db[table_name]['id'] > 0)
> row = db(query).select()
> json_list = json.dumps(row.as_list(), default = str, sort_keys = True)
> return dict(data = XML(json_list) )
>
> *result*
> ERROR:root:Traceback (most recent call last):
>   File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 416, in 
> wrapper
> ret = dumps(ret)
>   File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 157, in 
> dumps
> return json.dumps(obj, default=objectify, sort_keys=sort_keys, indent=
> indent)
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/__init__.py"
> , line 238, in dumps
> **kw).encode(obj)
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py"
> , line 201, in encode
> chunks = list(chunks)
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py"
> , line 431, in _iterencode
> yield from _iterencode_dict(o, _current_indent_level)
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py"
> , line 405, in _iterencode_dict
> yield from chunks
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py"
> , line 438, in _iterencode
> o = _default(o)
>   File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 146, in 
> objectify
> return list(obj)
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
> , line 226, in __len__
> return len(str(self))
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
> , line 226, in __len__
> return len(str(self))
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
> , line 226, in __len__
> return len(str(self))
>   [Previous line repeated 482 more times]
> RecursionError: maximum recursion depth exceeded while calling a Python 
> object
>
> *code*
> from yatl.helpers import XML
> @action('api/json_row_as_list//', method = 'GET')
> @action.uses(db)
> def json_row_as_list(table_name, id):
> import json
> if id.isdigit() and int(id) > 0:
> query = (db[table_name]['id'] == id)
> else:
> query = (db[table_name]['id'] > 0)
> row = db(query).select()
> json_list = json.dumps(rowhttp://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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/bc03d136-fb59-4222-b93b-11b2d336d940%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [web2py] Web2py Windows edition with 3.x Interpreter

2019-06-15 Thread Dave S


On Friday, June 14, 2019 at 9:00:05 AM UTC-7, rāma wrote:
>
> Hi Dave,
>
> Nico is right here. I used pip to pre-package modules for easier 
> distribution. Not really a DLL but works. The only downside is that 
> distributing the app can be really large.
>
>
Thanks, guys!

Dave S
/dps
 

> On Friday, 14 June 2019 00:31:50 UTC+8, Dave S wrote:
>>
>>
>>
>> On Monday, April 29, 2019 at 8:15:09 PM UTC-7, rāma wrote:
>>>
>>> Hi Nico,
>>>
>>> Thanks for your inputs.
>>>
>>> I've actually run windows py2.7 binary with modules within 
>>> site-packages, and pip can be leveraged by setting your target folder like 
>>> this: 
>>>
>>> pip install -t site-packages 
>>>
>>> for the benefit of other readers. It's just that pandas didn't quite 
>>> work for me in py2.7 and ported my code to python 3.5+.
>>>

>  
>> Hi, rāma --
>>
>> I'm interested in how you got pip installed with python as a DLL.  I want 
>> to play around with Pillow.
>>
>> /dps
>>
>>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/8cb8f3d5-89ce-4cd9-a7be-ed46824e9fcd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Upgrading from 2.08 to 2.18.5

2019-06-15 Thread Jim Gregory


On Friday, June 14, 2019 at 2:57:38 PM UTC-5, Jim Gregory wrote:
>
>
> On the old version of my blog, I would get relative URLs 
> '/blog/', but now I'm getting '/blog/default/'.   
> SImilar behavior is occurring in the top-level navigation.  Has routing 
> behavior changed?
>
> I had forgotten to copy the root routes.py file from my old web2py 
directory.  Once I did that and restarted the server, all my app's 
routes.py rewrote URLs as expected.

Everything seems to be working :-).  Thanks for everyone's help.

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/06d9f67e-6e32-4456-98e3-0d5eb827e654%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Web3py

2019-06-15 Thread 黄祥
*work in web2py*
def json_row_as_list():
if not request.env.request_method == 'GET': raise HTTP(403)
import json
table_name = request.args(0)
id = request.args(1)
if id.isdigit() and int(id) > 0:
query = (db[table_name]['id'] == id)
else:
query = (db[table_name]['id'] > 0)
rows = db(query).select()
json_list = json.dumps(rows.as_list(), default = str, sort_keys = True)
return dict(data = XML(json_list) )

*in web3py return an error when using XML() helper, but when not using 
XML() helper it works fine in web3py*
*code*
from yatl.helpers import XML
@action('api/json_row_as_list//', method = 'GET')
@action.uses(db)
def json_row_as_list(table_name, id):
import json
if id.isdigit() and int(id) > 0:
query = (db[table_name]['id'] == id)
else:
query = (db[table_name]['id'] > 0)
row = db(query).select()
json_list = json.dumps(row.as_list(), default = str, sort_keys = True)
return dict(data = XML(json_list) )

*result*
ERROR:root:Traceback (most recent call last):
  File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 416, in 
wrapper
ret = dumps(ret)
  File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 157, in 
dumps
return json.dumps(obj, default=objectify, sort_keys=sort_keys, indent=
indent)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/__init__.py", 
line 238, in dumps
**kw).encode(obj)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 201, in encode
chunks = list(chunks)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 431, in _iterencode
yield from _iterencode_dict(o, _current_indent_level)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 405, in _iterencode_dict
yield from chunks
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/json/encoder.py", 
line 438, in _iterencode
o = _default(o)
  File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 146, in 
objectify
return list(obj)
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 226, in __len__
return len(str(self))
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 226, in __len__
return len(str(self))
  File 
"/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/yatl/helpers.py"
, line 226, in __len__
return len(str(self))
  [Previous line repeated 482 more times]
RecursionError: maximum recursion depth exceeded while calling a Python 
object

*code*
from yatl.helpers import XML
@action('api/json_row_as_list//', method = 'GET')
@action.uses(db)
def json_row_as_list(table_name, id):
import json
if id.isdigit() and int(id) > 0:
query = (db[table_name]['id'] == id)
else:
query = (db[table_name]['id'] > 0)
row = db(query).select()
json_list = json.dumps(row.as_list(), default = str, sort_keys = True)
return XML(json_list)

*result*
Critical error while processing request: 
/test/api/json_row_as_list/bank/1ERROR:tornado.access:500 GET 
/test/api/json_row_as_list/bank/1 (127.0.0.1) 2.65ms


*execute in terminal*
curl -X GET -i http://localhost:8000/test/api/json_row_as_list/bank/1

best regards,
stifan

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/d7f52f3b-459f-4168-9017-1267086373c8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Web3py

2019-06-15 Thread Massimo Di Pierro
db.tablename.fieldname.readable = False # SAFE
def test():
db.tablename.fieldname.readable = False # NOT SAFE

*models.py*
def on_define_tablename(table): 
table.fieldname.readable = False # SAFE
db.define_table('tablename', 
Field('fieldname'), 
on_define = on_define_tablename)

BUT things like on_define = on_define_tablename
are no longer necessary in web3py. Tables are defined when the files are 
imported not at every request (like in web2py) and therefore you do not 
need optimization tricks any more.


On Friday, 14 June 2019 22:03:04 UTC-7, 黄祥 wrote:
>
> Be careful that you can no longer change attributes everywhere you like as 
>> in:
>>
>> db.tablename.fieldname.readable = False
>>
>> In web2py this is ok. In web3py this is not safe. Attributes must be 
>> global. The state of fixtures must not be modified inside actions.
>>
>
> is it mean in controller not safe, but in on_define, safe or not ?
> *e.g.*
> *controller.py*
> db.tablename.fieldname.readable = False # not safe in web3py
> def test():
> db.tablename.fieldname.readable = False # not safe in web3py
>
> *models.py*
> def on_define_tablename(table): 
> table.fieldname.readable = False # safe or not ?
> db.define_table('tablename', 
> Field('fieldname'), 
> on_define = on_define_tablename)
>
> best regards,
> stifan
>
>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/82e955db-788c-4280-9504-0bbd242882eb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


[web2py] Re: Web3py

2019-06-15 Thread Massimo Di Pierro
Does not exist because it is always lazy by default.

On Friday, 14 June 2019 21:53:54 UTC-7, 黄祥 wrote:
>
> *url* = 
>> http://localhost:8000/_dashboard/dbadmin?app=test=db=address
>> *result* = { "__class__": "lazyT", "kwargs": {}, "text": "Field 0", 
>> "translator": { "__class__": "method" } }
>> *expected result *= Field 0
>> no error occured but the result is not expected
>>
>
> there's told about lazyT, so put it lazy (which work in web2py), but 
> return an error on web3py
> def on_define_address(table): 
> table.street.label = T('Street', lazy = True)
>
> Traceback (most recent call last):
>   File "/Users/sugizo/learn/python/web3py/web3py/core.py", line 614, in 
> import_apps
> module = importlib.machinery.SourceFileLoader(module_name, init).
> load_module()
>   File "", line 407, in 
> _check_name_wrapper
>   File "", line 907, in load_module
>   File "", line 732, in load_module
>   File "", line 265, in _load_module_shim
>   File "", line 696, in _load
>   File "", line 677, in _load_unlocked
>   File "", line 728, in exec_module
>   File "", line 219, in 
> _call_with_frames_removed
>   File "/Users/sugizo/learn/python/web3py/apps/test/__init__.py", line 1, 
> in 
> from .controllers.install import *
>   File 
> "/Users/sugizo/learn/python/web3py/apps/test/controllers/install.py", 
> line 2, in 
> from ..models.db_schema_1_address import *
>   File 
> "/Users/sugizo/learn/python/web3py/apps/test/models/db_schema_1_address.py"
> , line 54, in 
> format = lambda r: \
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/pydal/base.py"
> , line 592, in define_table
> table = self.lazy_define_table(tablename, *fields, **kwargs)
>   File 
> "/Users/sugizo/miniconda3/envs/python3_test/lib/python3.7/site-packages/pydal/base.py"
> , line 633, in lazy_define_table
> on_define(table)
>   File 
> "/Users/sugizo/learn/python/web3py/apps/test/models/db_schema_1_address.py"
> , line 8, in on_define_address
> table.street.label = T('Street', lazy = True)
> TypeError: __call__() got an unexpected keyword argument 'lazy'
>
> best regards,
> stifan
>
>

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/ccfec337-af57-4788-ad45-48f5213c7eaf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.