##// END OF EJS Templates
apps: removed utf8 marker
apps: removed utf8 marker

File last commit:

r4908:04e2d7da default
r5053:8da271d0 default
Show More
preparers.py
87 lines | 2.4 KiB | text/x-python | PythonLexer
gists: use colander schema to validate input data....
r523 # -*- coding: utf-8 -*-
code: update copyrights to 2020
r4306 # Copyright (C) 2016-2020 RhodeCode GmbH
gists: use colander schema to validate input data....
r523 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
import unicodedata
def strip_preparer(value):
"""
strips given values using .strip() function
"""
if value:
value = value.strip()
return value
schema: preparer should keep case by default.
r1216 def slugify_preparer(value, keep_case=True):
gists: use colander schema to validate input data....
r523 """
Slugify given value to a safe representation for url/id
"""
from rhodecode.lib.utils import repo_name_slug
if value:
schema: preparer should keep case by default.
r1216 value = repo_name_slug(value if keep_case else value.lower())
gists: use colander schema to validate input data....
r523 return value
def non_ascii_strip_preparer(value):
"""
trie to replace non-ascii letters to their ascii representation
eg::
`żołw` converts into `zolw`
"""
if value:
value = unicodedata.normalize('NFKD', value).encode('ascii', 'ignore')
return value
def unique_list_preparer(value):
"""
Converts an list to a list with only unique values
"""
def make_unique(value):
seen = []
return [c for c in value if
not (c in seen or seen.append(c))]
if isinstance(value, list):
ret_val = make_unique(value)
elif isinstance(value, set):
ret_val = list(value)
elif isinstance(value, tuple):
ret_val = make_unique(value)
elif value is None:
ret_val = []
else:
ret_val = [value]
return ret_val
def unique_list_from_str_preparer(value):
"""
Converts an list to a list with only unique values
"""
from rhodecode.lib.utils2 import aslist
py3: remove use of pyramid.compat
r4908 if isinstance(value, str):
gists: use colander schema to validate input data....
r523 value = aslist(value, ',')
return unique_list_preparer(value)