mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-08 07:18:27 +01:00
* implement import-db command * generate .dvc file * update * fix tests * pin dbt-fal * try to run on ci * use os.chdir * fix * revert * require dbt-core>=1.5 * add db config schema * remove platformdirs constraints * use logger.getChild * improve error messaging * rename cli flag --export-format to --output-format * use feature flag for db config * hide command from dvc commands list * refactor dependency._get * remove todo * refactor dependency._get * fix dbt installation check
33 lines
851 B
Python
33 lines
851 B
Python
import logging
|
|
|
|
from funcy import once_per_args
|
|
|
|
from dvc.log import logger
|
|
|
|
logger = logger.getChild(__name__)
|
|
|
|
|
|
@once_per_args
|
|
def check_required_version(pkg: str, dist: str = "dvc", log_level=logging.WARNING):
|
|
from importlib import metadata
|
|
|
|
from packaging.requirements import InvalidRequirement, Requirement
|
|
|
|
try:
|
|
reqs = {
|
|
r.name: r.specifier for r in map(Requirement, metadata.requires(dist) or [])
|
|
}
|
|
version = metadata.version(pkg)
|
|
except (metadata.PackageNotFoundError, InvalidRequirement):
|
|
return
|
|
|
|
specifier = reqs.get(pkg)
|
|
if specifier and version and version not in specifier:
|
|
logger.log(
|
|
log_level,
|
|
"%s%s is required, but you have %r installed which is incompatible.",
|
|
pkg,
|
|
specifier,
|
|
version,
|
|
)
|