code: def snake_case_to_camel(string, upper_case_first=True, separator='_'):
      
      if not is_string(string):
          raise TypeError('Expected string')
      if not is_snake_case(string, separator):
          return string
      re_map = {
          '_': SNAKE_CASE_REPLACE_RE,
          '-': SNAKE_CASE_REPLACE_DASH_RE
      }
      r = re_map.get(separator, re.compile('({sign})([a-z\d])'.format(sign=re.escape(separator))))
      string = r.sub(lambda m: m.group(2).upper(), string)
      if upper_case_first:
          return string[0].upper() + string[1:]
      return string
docs: Convert a snake case string into a camel case one.
      (The original string is returned if is not a valid snake case string)
  
      :param string: String to convert.
      :type string: str
      :param upper_case_first: True to turn the first letter into uppercase (default).
      :type upper_case_first: bool
      :param separator: Sign to use as separator (default to "_").
      :type separator: str
      :return: Converted string
      :rtype: str