type_utils.py
61 lines
| 1.8 KiB
| text/x-python
|
PythonLexer
/ vcsserver / type_utils.py
r1111 | # RhodeCode VCSServer provides access to different vcs backends via network. | ||
# Copyright (C) 2014-2020 RhodeCode GmbH | |||
# | |||
# This program is free software; you can redistribute it and/or modify | |||
# it under the terms of the GNU General Public License as published by | |||
# the Free Software Foundation; either version 3 of the License, or | |||
# (at your option) any later version. | |||
# | |||
# 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 General Public License | |||
# along with this program; if not, write to the Free Software Foundation, | |||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |||
import logging | |||
log = logging.getLogger(__name__) | |||
def str2bool(str_): | |||
""" | |||
returns True/False value from given string, it tries to translate the | |||
string into boolean | |||
:param str_: string value to translate into boolean | |||
:rtype: boolean | |||
:returns: boolean from given string | |||
""" | |||
if str_ is None: | |||
return False | |||
if str_ in (True, False): | |||
return str_ | |||
str_ = str(str_).strip().lower() | |||
return str_ in ('t', 'true', 'y', 'yes', 'on', '1') | |||
def aslist(obj, sep=None, strip=True) -> list: | |||
""" | |||
Returns given string separated by sep as list | |||
:param obj: | |||
:param sep: | |||
:param strip: | |||
""" | |||
if isinstance(obj, str): | |||
if obj in ['', ""]: | |||
return [] | |||
lst = obj.split(sep) | |||
if strip: | |||
lst = [v.strip() for v in lst] | |||
return lst | |||
elif isinstance(obj, (list, tuple)): | |||
return obj | |||
elif obj is None: | |||
return [] | |||
else: | |||
return [obj] |