Source code for dateparser.utils

# -*- coding: utf-8 -*-
import re
import logging
import logging.config

GROUPS_REGEX = re.compile(r'(?<=\\)(\d+|g<\d+>)')
G_REGEX = re.compile(r'g<(\d+)>')


[docs]def wrap_replacement_for_regex(replacement, regex): # prepend group to replacement replacement = r"\g<1>%s" % increase_regex_replacements_group_positions(replacement, increment=1) # append group to replacement used_groups = re.compile(regex).groups new_group = used_groups + 2 # Consider that we already prepended replacement with one group replacement = "%s\\g<%d>" % (replacement, new_group) return replacement
[docs]def increase_regex_replacements_group_positions(replacement, increment): splitted = GROUPS_REGEX.split(replacement) for i in range(1, len(splitted), 2): group = splitted[i] if group.isdigit(): splitted[i] = str(int(group) + increment) else: splitted[i] = "g<{}>".format(int(G_REGEX.match(group).group(1)) + increment) return u"".join(splitted)
[docs]def setup_logging(): if len(logging.root.handlers): return config = { 'version': 1, 'disable_existing_loggers': True, 'formatters': { 'console': { 'format': "%(asctime)s %(levelname)s: [%(name)s] %(message)s", }, }, 'handlers': { 'console': { 'level': logging.DEBUG, 'class': "logging.StreamHandler", 'formatter': "console", 'stream': "ext://sys.stdout", }, }, 'root': { 'level': logging.DEBUG, 'handlers': ["console"], }, } logging.config.dictConfig(config)
[docs]def get_logger(): setup_logging() return logging.getLogger('dateparser')