chore: 添加虚拟环境到仓库
- 添加 backend_service/venv 虚拟环境 - 包含所有Python依赖包 - 注意:虚拟环境约393MB,包含12655个文件
This commit is contained in:
@@ -0,0 +1,157 @@
|
||||
from enum import Enum
|
||||
from typing import Any
|
||||
|
||||
__author__ = "Timothy Heys"
|
||||
__email__ = "theys@kayak.com"
|
||||
|
||||
|
||||
class Arithmetic(Enum):
|
||||
add = "+"
|
||||
sub = "-"
|
||||
mul = "*"
|
||||
div = "/"
|
||||
lshift = "<<"
|
||||
rshift = ">>"
|
||||
|
||||
|
||||
class Comparator(Enum):
|
||||
pass
|
||||
|
||||
|
||||
class Equality(Comparator):
|
||||
eq = "="
|
||||
ne = "<>"
|
||||
gt = ">"
|
||||
gte = ">="
|
||||
lt = "<"
|
||||
lte = "<="
|
||||
|
||||
|
||||
class Matching(Comparator):
|
||||
not_like = " NOT LIKE "
|
||||
like = " LIKE "
|
||||
not_ilike = " NOT ILIKE "
|
||||
ilike = " ILIKE "
|
||||
rlike = " RLIKE "
|
||||
regex = " REGEX "
|
||||
regexp = " REGEXP "
|
||||
bin_regex = " REGEX BINARY "
|
||||
as_of = " AS OF "
|
||||
glob = " GLOB "
|
||||
|
||||
|
||||
class Boolean(Comparator):
|
||||
and_ = "AND"
|
||||
or_ = "OR"
|
||||
xor_ = "XOR"
|
||||
true = "TRUE"
|
||||
false = "FALSE"
|
||||
|
||||
|
||||
class Order(Enum):
|
||||
asc = "ASC"
|
||||
desc = "DESC"
|
||||
|
||||
|
||||
class JoinType(Enum):
|
||||
inner = ""
|
||||
left = "LEFT"
|
||||
right = "RIGHT"
|
||||
outer = "FULL OUTER"
|
||||
left_outer = "LEFT OUTER"
|
||||
right_outer = "RIGHT OUTER"
|
||||
full_outer = "FULL OUTER"
|
||||
cross = "CROSS"
|
||||
hash = "HASH"
|
||||
|
||||
|
||||
class ReferenceOption(Enum):
|
||||
cascade = "CASCADE"
|
||||
no_action = "NO ACTION"
|
||||
restrict = "RESTRICT"
|
||||
set_null = "SET NULL"
|
||||
set_default = "SET DEFAULT"
|
||||
|
||||
|
||||
class SetOperation(Enum):
|
||||
union = "UNION"
|
||||
union_all = "UNION ALL"
|
||||
intersect = "INTERSECT"
|
||||
except_of = "EXCEPT"
|
||||
minus = "MINUS"
|
||||
|
||||
|
||||
class DatePart(Enum):
|
||||
year = "YEAR"
|
||||
quarter = "QUARTER"
|
||||
month = "MONTH"
|
||||
week = "WEEK"
|
||||
day = "DAY"
|
||||
hour = "HOUR"
|
||||
minute = "MINUTE"
|
||||
second = "SECOND"
|
||||
microsecond = "MICROSECOND"
|
||||
|
||||
|
||||
class SqlType:
|
||||
def __init__(self, name: str) -> None:
|
||||
self.name = name
|
||||
|
||||
def __call__(self, length: int) -> "SqlTypeLength":
|
||||
return SqlTypeLength(self.name, length)
|
||||
|
||||
def get_sql(self, **kwargs: Any) -> str:
|
||||
return "{name}".format(name=self.name)
|
||||
|
||||
|
||||
class SqlTypeLength:
|
||||
def __init__(self, name: str, length: int) -> None:
|
||||
self.name = name
|
||||
self.length = length
|
||||
|
||||
def get_sql(self, **kwargs: Any) -> str:
|
||||
return "{name}({length})".format(name=self.name, length=self.length)
|
||||
|
||||
|
||||
class SqlTypes:
|
||||
BOOLEAN = "BOOLEAN"
|
||||
INTEGER = "INTEGER"
|
||||
FLOAT = "FLOAT"
|
||||
NUMERIC = "NUMERIC"
|
||||
SIGNED = "SIGNED"
|
||||
UNSIGNED = "UNSIGNED"
|
||||
|
||||
DATE = "DATE"
|
||||
TIME = "TIME"
|
||||
TIMESTAMP = "TIMESTAMP"
|
||||
|
||||
CHAR = SqlType("CHAR")
|
||||
VARCHAR = SqlType("VARCHAR")
|
||||
LONG_VARCHAR = SqlType("LONG VARCHAR")
|
||||
BINARY = SqlType("BINARY")
|
||||
VARBINARY = SqlType("VARBINARY")
|
||||
LONG_VARBINARY = SqlType("LONG VARBINARY")
|
||||
|
||||
|
||||
class Dialects(Enum):
|
||||
VERTICA = "vertica"
|
||||
CLICKHOUSE = "clickhouse"
|
||||
ORACLE = "oracle"
|
||||
MSSQL = "mssql"
|
||||
MYSQL = "mysql"
|
||||
POSTGRESQL = "postgressql"
|
||||
REDSHIFT = "redshift"
|
||||
SQLLITE = "sqllite"
|
||||
SNOWFLAKE = "snowflake"
|
||||
|
||||
|
||||
class JSONOperators(Enum):
|
||||
HAS_KEY = "?"
|
||||
CONTAINS = "@>"
|
||||
CONTAINED_BY = "<@"
|
||||
HAS_KEYS = "?&"
|
||||
HAS_ANY_KEYS = "?|"
|
||||
GET_JSON_VALUE = "->"
|
||||
GET_TEXT_VALUE = "->>"
|
||||
GET_PATH_JSON_VALUE = "#>"
|
||||
GET_PATH_TEXT_VALUE = "#>>"
|
||||
Reference in New Issue
Block a user