python学习
This commit is contained in:
45
venv/Lib/site-packages/flask_sqlalchemy/utils.py
Normal file
45
venv/Lib/site-packages/flask_sqlalchemy/utils.py
Normal file
@@ -0,0 +1,45 @@
|
||||
import warnings
|
||||
|
||||
import sqlalchemy
|
||||
|
||||
|
||||
def parse_version(v):
|
||||
"""
|
||||
Take a string version and conver it to a tuple (for easier comparison), e.g.:
|
||||
|
||||
"1.2.3" --> (1, 2, 3)
|
||||
"1.2" --> (1, 2, 0)
|
||||
"1" --> (1, 0, 0)
|
||||
"""
|
||||
parts = v.split(".")
|
||||
# Pad the list to make sure there is three elements so that we get major, minor, point
|
||||
# comparisons that default to "0" if not given. I.e. "1.2" --> (1, 2, 0)
|
||||
parts = (parts + 3 * ['0'])[:3]
|
||||
return tuple(int(x) for x in parts)
|
||||
|
||||
|
||||
def sqlalchemy_version(op, val):
|
||||
sa_ver = parse_version(sqlalchemy.__version__)
|
||||
target_ver = parse_version(val)
|
||||
|
||||
assert op in ('<', '>', '<=', '>=', '=='), 'op {} not supported'.format(op)
|
||||
|
||||
if op == '<':
|
||||
return sa_ver < target_ver
|
||||
if op == '>':
|
||||
return sa_ver > target_ver
|
||||
if op == '<=':
|
||||
return sa_ver <= target_ver
|
||||
if op == '>=':
|
||||
return sa_ver >= target_ver
|
||||
return sa_ver == target_ver
|
||||
|
||||
|
||||
def engine_config_warning(config, version, deprecated_config_key, engine_option):
|
||||
if config[deprecated_config_key] is not None:
|
||||
warnings.warn(
|
||||
'The `{}` config option is deprecated and will be removed in'
|
||||
' v{}. Use `SQLALCHEMY_ENGINE_OPTIONS[\'{}\']` instead.'
|
||||
.format(deprecated_config_key, version, engine_option),
|
||||
DeprecationWarning
|
||||
)
|
||||
Reference in New Issue
Block a user