Я написал функцию, основанную на http://www.codinghorror.com/blog/2007/12/sorting-for-humans-natural-sort-order.html , которая добавляет возможность все еще передаются в ваш собственный параметр «ключ». Мне нужно это, чтобы выполнить естественный вид списков, содержащих более сложные объекты (а не только строки).
import re
def natural_sort(list, key=lambda s:s):
"""
Sort the list into natural alphanumeric order.
"""
def get_alphanum_key_func(key):
convert = lambda text: int(text) if text.isdigit() else text
return lambda s: [convert(c) for c in re.split('([0-9]+)', key(s))]
sort_key = get_alphanum_key_func(key)
list.sort(key=sort_key)
Например:
my_list = [{'name':'b'}, {'name':'10'}, {'name':'a'}, {'name':'1'}, {'name':'9'}]
natural_sort(my_list, key=lambda x: x['name'])
print my_list
[{'name': '1'}, {'name': '9'}, {'name': '10'}, {'name': 'a'}, {'name': 'b'}]
Postgres on Cloud SQL является стандартным Postgres, поэтому он похож на любой другой экземпляр Postgres:
Чтобы предоставить роли все привилегии:
GRANT ALL ON <db_name> TO <role_name>;
Чтобы удалить все привилегии:
REVOKE ALL ON <db_name> TO <role_name>;
Postgres docs в привилегиях дает следующее предостережение для:
Специальные привилегии владельца объекта (т. е. права для изменения или уничтожения объекта) всегда подразумеваются в качестве владельца и не могут быть предоставлены или отменены
. Помните об этом - если UserA владеет обеими базами данных, они всегда могут их изменять.