csv can return a generator, thanks Jonathan

This commit is contained in:
mdipierro
2012-10-29 11:36:04 -05:00
parent 7549f77edc
commit 9d7e009c0f
2 changed files with 14 additions and 16 deletions
+1 -1
View File
@@ -1 +1 @@
Version 2.2.1 (2012-10-29 10:09:01) stable
Version 2.2.1 (2012-10-29 11:35:59) stable
+13 -15
View File
@@ -1365,13 +1365,13 @@ class Auth(object):
archive_names='%(tablename)s_archive',
current_record='current_record'):
"""
to enable full record vernionioning (including auth tables):
to enable full record versioning (including auth tables):
auth = Auth(db)
auth.define_tables(signature=True)
# define our own tables
db.define_table('mything',Field('name'),auth.signature)
auth.enable_record_vernining(tables=db)
auth.enable_record_versioning(tables=db)
tables can be the db (all table) or a list of tables.
only tables with modified_by and modified_on fiels (as created
@@ -1386,7 +1386,7 @@ class Auth(object):
Important: If you use auth.enable_record_versioning,
do not use auth.archive or you will end up with duplicates.
auth.archive does explicitely what enable_record_versioning
auth.archive does explicitly what enable_record_versioning
does automatically.
"""
@@ -1489,7 +1489,7 @@ class Auth(object):
IS_NOT_IN_DB(db, '%s.username' % settings.table_user_name)]
if not settings.username_case_sensitive:
is_unique_username.insert(1, IS_LOWER())
table = db.define_table(
db.define_table(
settings.table_user_name,
Field('first_name', length=128, default='',
label=self.messages.label_first_name,
@@ -1522,7 +1522,7 @@ class Auth(object):
fake_migrate=fake_migrate,
format='%(username)s'))
else:
table = db.define_table(
db.define_table(
settings.table_user_name,
Field('first_name', length=128, default='',
label=self.messages.label_first_name,
@@ -1555,7 +1555,7 @@ class Auth(object):
if not settings.table_group_name in db.tables:
extra_fields = settings.extra_fields.get(
settings.table_group_name, []) + signature_list
table = db.define_table(
db.define_table(
settings.table_group_name,
Field('role', length=512, default='',
label=self.messages.label_role,
@@ -1573,7 +1573,7 @@ class Auth(object):
if not settings.table_membership_name in db.tables:
extra_fields = settings.extra_fields.get(
settings.table_membership_name, []) + signature_list
table = db.define_table(
db.define_table(
settings.table_membership_name,
Field('user_id', reference_table_user,
label=self.messages.label_user_id),
@@ -1587,7 +1587,7 @@ class Auth(object):
if not settings.table_permission_name in db.tables:
extra_fields = settings.extra_fields.get(
settings.table_permission_name, []) + signature_list
table = db.define_table(
db.define_table(
settings.table_permission_name,
Field('group_id', reference_table_group,
label=self.messages.label_group_id),
@@ -1605,7 +1605,7 @@ class Auth(object):
settings.table_permission_name, migrate),
fake_migrate=fake_migrate))
if not settings.table_event_name in db.tables:
table = db.define_table(
db.define_table(
settings.table_event_name,
Field('time_stamp', 'datetime',
default=current.request.now,
@@ -1629,7 +1629,7 @@ class Auth(object):
now = current.request.now
if settings.cas_domains:
if not settings.table_cas_name in db.tables:
table = db.define_table(
db.define_table(
settings.table_cas_name,
Field('user_id', reference_table_user, default=None,
label=self.messages.label_user_id),
@@ -1773,8 +1773,6 @@ class Auth(object):
"""
logins user as specified by usernname (or email) and password
"""
request = current.request
session = current.session
table_user = self.table_user()
if self.settings.login_userfield:
userfield = self.settings.login_userfield
@@ -2669,7 +2667,6 @@ class Auth(object):
redirect(self.settings.login_url)
db = self.db
table_user = self.table_user()
usern = self.settings.table_user_name
s = db(table_user.id == self.user.id)
request = current.request
@@ -4139,12 +4136,13 @@ class Service(object):
return '<NULL>'
return value
if args and args[0] in self.run_procedures:
import types
r = universal_caller(self.run_procedures[args[0]],
*args[1:], **dict(request.vars))
s = cStringIO.StringIO()
if hasattr(r, 'export_to_csv_file'):
r.export_to_csv_file(s)
elif r and isinstance(r[0], (dict, Storage)):
elif r and not isinstance(r, types.GeneratorType) and isinstance(r[0], (dict, Storage)):
import csv
writer = csv.writer(s)
writer.writerow(r[0].keys())
@@ -4656,7 +4654,7 @@ class Wiki(object):
html = page.body
# @///function -> http://..../function
html = replace_at_urls(html, URL)
# http://...jpg -> <img src="http://...jpg/> or oembed
# http://...jpg -> <img src="http://...jpg/> or embed
html = replace_autolinks(html, lambda link: expand_one(link, {}))
# @{component:name} -> <script>embed component name</script>
html = replace_components(html, self.env)