Skip to content
Merged
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 11 additions & 9 deletions core/dbt/cli/flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from importlib import import_module
from multiprocessing import get_context
from pprint import pformat as pf
from pathlib import Path
from typing import Set, List

from click import Context, get_current_context, BadOptionUsage
Expand All @@ -15,6 +16,8 @@
from dbt.helper_types import WarnErrorOptions
from dbt.config.project import PartialProject
from dbt.exceptions import DbtProjectError
from dbt.cli.resolvers import default_project_dir


if os.name != "nt":
# https://bugs.python.org/issue41567
Expand Down Expand Up @@ -133,20 +136,19 @@ def assign_params(ctx, params_assigned_from_default):
# Default LOG_PATH from PROJECT_DIR, if available.
if getattr(self, "LOG_PATH", None) is None:
log_path = "logs"
project_dir = getattr(self, "PROJECT_DIR", None)
# If available, set LOG_PATH from log-path in dbt_project.yml
# Known limitations:
# 1. Using PartialProject here, so no jinja rendering of log-path.
# 2. Programmatic invocations of the cli via dbtRunner may pass a Project object directly,
# which is not being used here to extract log-path.
if project_dir:
try:
partial = PartialProject.from_project_root(
project_dir, verify_version=getattr(self, "VERSION_CHECK", True)
)
log_path = str(partial.project_dict.get("log-path", log_path))
except DbtProjectError:
pass
project_dir = getattr(self, "PROJECT_DIR", default_project_dir())
try:
partial = PartialProject.from_project_root(
project_dir, verify_version=getattr(self, "VERSION_CHECK", True)
)
log_path = Path(project_dir) / partial.project_dict.get("log-path", log_path)
except DbtProjectError:
pass

object.__setattr__(self, "LOG_PATH", log_path)

Expand Down