OpoTests/Python/Utils/Patterns.py

33 lines
1.9 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from re import Pattern as REPattern
from re import compile as re_compile
from re import IGNORECASE as RE_IGNORE_CASE
class RE:
KEY:REPattern = re_compile(r'^[a-z_][a-z0-9_]*$', RE_IGNORE_CASE)
STRING_VARIABLES:REPattern = re_compile(r'\{([a-z_][a-z0-9_]*)\}', RE_IGNORE_CASE)
LINE:REPattern = re_compile(r'^([^\r\n]*)')
SLASHES:REPattern = re_compile(r'[\\/]+')
EXCEPTION:REPattern = re_compile(r'^\s*File "([^"]+)", line ([0-9]+), in ([^\n]+)(.*|[\r\n]*)*$')
BREAK_LINES:REPattern = re_compile(r'\r\n|[\r\n]')
TO_SNAKE:REPattern = re_compile(r'[^a-zA-Z0-9]*([A-Z][A-Z0-9]*)|[^a-z0-9]+')
FRAGMENT_PATTERN:REPattern = re_compile(r'\${3}([0-9]+)\${3}')
FRAGMENT_VARIABLES:REPattern = re_compile(r'\{([^\{\}]+)\}')
FORMAT_SPLIT:REPattern = re_compile(r'^([^,:]+)[,:](.*)$')
FORMAT_PARTS:REPattern = re_compile(r'\{([^\{\}]+)\}|[^\{]+|\{')
LIST_ITEM:REPattern = re_compile(r'^list:([a-z0-9_]+)$', RE_IGNORE_CASE)
CAPITAL_CASE:REPattern = re_compile(r'^(.)')
BASIC_MODE_SPLIT:REPattern = re_compile(r'^([^,]+),(.*)$')
IS_SEPARATOR:REPattern = re_compile(r'^[a-z 0-9]+$', RE_IGNORE_CASE)
ABSOLUTE_INTEGER:REPattern = re_compile(r'^[0-9]+$')
SELECT_MODE_SPLIT:REPattern = re_compile(r'^([^,]+),([^,]+),(.*)$')
ROUTE_ITEM:REPattern = re_compile(r'^(?:([^:]+):)([^\s]+)\s+(?:([^\@\s]+)\@([^\s]+)|([^\s]+))(?:\s+([^\s]+))?$')
ROUTE_RE_FORMAT:REPattern = re_compile(r'(\(\[\^\\\/\]\+\))|([\/])')
HTTP_BLOCKS:REPattern = re_compile(r'((?:(?!(?:(?:\r\n){2}|\n{2}|\r{2}))(?:.|[\r\n]+))+)(?:(?:\r\n){2}|\n{2}|\r{2}((?:.+|[\r\n]+)*))?')
NEW_LINE:REPattern = re_compile(r'\r\n|[\n\r]')
HTTP_REQUEST:REPattern = re_compile(r'^([^\s]+)\s([^\s\?\#]+)(?:\?([^#]+))?(?:\#[^\s]+)?\s([^\/]+)\/([0-9\.]+)$')
URI_VARIABLES:REPattern = re_compile(r'&?([^=&]+)=([^&]*)')
HEADER_LINE:REPattern = re_compile(r'^([^\:]+)\:(.+)$')