##// END OF EJS Templates
feat(archive-cache): re-calculate size better if we miss it in stats
feat(archive-cache): re-calculate size better if we miss it in stats

File last commit:

r5095:aa627a5f default
r5425:9c658c9d default
Show More
preparers.py
97 lines | 2.5 KiB | text/x-python | PythonLexer
# Copyright (C) 2016-2023 RhodeCode GmbH
#
# 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/
from rhodecode.lib.str_utils import convert_special_chars, safe_int, safe_bytes
def to_bytes_preparer(value):
if value:
value = safe_bytes(value)
return value
def strip_preparer(value):
"""
strips given values using .strip() function
"""
if value:
value = value.strip()
return value
def slugify_preparer(value, keep_case=True):
"""
Slugify given value to a safe representation for url/id
"""
from rhodecode.lib.utils import repo_name_slug
if value:
value = repo_name_slug(value if keep_case else value.lower())
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 = convert_special_chars(value)
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
if isinstance(value, str):
value = aslist(value, ',')
return unique_list_preparer(value)
def ensure_value_is_int(value):
return safe_int(value)