Source code for openalea.core.util

import warnings
import datetime
import traceback
import os

[docs] def camel_case_to_lower(name): """ :Examples: >>> camel_case_to_lower('squareRoot') 'square_root' >>> camel_case_to_lower('SquareRoot') 'square_root' >>> camel_case_to_lower('ComputeSQRT') 'compute_sqrt' >>> camel_case_to_lower('SQRTCompute') 'sqrt_compute' """ lowername = '_' index = 0 while index < len(name): if name[index].islower(): lowername += name[index] index += 1 else: if not name[index] == '_': if not lowername[-1] == '_': lowername += '_' lowername += name[index].lower() index += 1 if index < len(name) and not name[index].islower(): while index < len(name) and not name[index].islower(): lowername += name[index].lower() index += 1 if index < len(name): lowername = lowername[:-1] + '_' + lowername[-1] else: if not lowername[-1] == '_': lowername += '_' index += 1 lowername = lowername.lstrip('_') return lowername
[docs] def camel_case_to_upper(name): """ :Examples: >>> camel_case_to_upper('squareRoot') 'SQUARE_ROOT' >>> camel_case_to_upper('SquareRoot') 'SQUARE_ROOT' >>> camel_case_to_upper('ComputeSQRT') 'COMPUTE_SQRT' >>> camel_case_to_upper('SQRTCompute') 'SQRT_COMPUTE' >>> camel_case_to_upper('Char_U') """ lowername = '_' index = 0 while index < len(name): if name[index].islower(): lowername += name[index].upper() index += 1 else: if not name[index] == '_': if not lowername[-1] == '_': lowername += '_' lowername += name[index].upper() index += 1 if index < len(name) and not name[index].islower(): while index < len(name) and not name[index].islower(): lowername += name[index] index += 1 if index < len(name): lowername = lowername[:-1] + '_' + lowername[-1] else: if not lowername[-1] == '_': lowername += '_' index += 1 lowername = lowername.lstrip('_') return lowername
[docs] def to_camel_case(name): """ :Examples: >>> lower_to_camel_case(camel_case_to_lower('squareRoot')) 'SquareRoot' >>> lower_to_camel_case(camel_case_to_lower('SquareRoot')) 'SquareRoot' >>> lower_to_camel_case(camel_case_to_lower('ComputeSQRT')) 'ComputeSqrt' >>> lower_to_camel_case(camel_case_to_lower('SQRTCompute')) 'SqrtCompute' """ camelname = '' index = 0 while index < len(name): if name[index] == '_': index += 1 while index < len(name) and name[index] == '_': index += 1 if index < len(name): camelname += name[index].upper() else: camelname += name[index] index += 1 if camelname[0].islower(): camelname = camelname[0].upper() + camelname[1:] return camelname
[docs] def warn_deprecated(old_name, new_name, date=None): """ :param date: (yyyy, mm, dd) ex: (2014, 9, 25) for 2014, 25th of september """ tb = traceback.extract_stack() if date: final_date = datetime.date(*date) + datetime.timedelta(100) # deleted after 100 days datemsg = 'on %s' % (final_date) else: datemsg = 'soon' if 'OA_CLICOLOR' in os.environ: msg = "\n\033[93m%r is deprecated and will be removed \033[91m%s.\033[0m. Use %r instead. " % ( old_name, datemsg, new_name) else: msg = "\n%r is deprecated and will be removed %s. Use %r instead. " % (old_name, datemsg, new_name) for i in range(0, len(tb) - 3): filename, lineno, caller, line = tb[i] msg += '\n' + ' ' * i + '%s:%s - %s' % (filename, lineno, line) if 'OA_RAISE_ON_WARNING' in os.environ: warnings.warn(msg, stacklevel=3) raise IOError else: warnings.warn(msg, stacklevel=3)