Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def tearDown(self):
nx.write_gpickle = self.real_write_gpickle
dbt.utils.dependency_projects = self.real_dependency_projects
dbt.clients.system.find_matching = self.real_find_matching
dbt.clients.system.load_file_contents = self.real_load_file_contents
to_return = []
if 'models' in relative_paths_to_search:
to_return = to_return + self.mock_models
return to_return
self.real_find_matching = dbt.clients.system.find_matching
dbt.clients.system.find_matching = MagicMock(
side_effect=mock_find_matching)
def mock_load_file_contents(path):
return self.mock_content[path]
self.real_load_file_contents = dbt.clients.system.load_file_contents
dbt.clients.system.load_file_contents = MagicMock(
side_effect=mock_load_file_contents)
if tags is None:
tags = []
if dbt.flags.STRICT_MODE:
dbt.contracts.project.ProjectList(**all_projects)
file_matches = dbt.clients.system.find_matching(
root_dir,
relative_dirs,
extension)
result = {}
for file_match in file_matches:
file_contents = dbt.clients.system.load_file_contents(
file_match.get('absolute_path'))
result.update(
parse_macro_file(
file_match.get('relative_path'),
file_contents,
root_dir,
package_name,
resource_type))
return result
def read_packages(project_dir):
package_filepath = dbt.clients.system.resolve_path_from_base(
'packages.yml', project_dir)
if dbt.clients.system.path_exists(package_filepath):
package_file_contents = dbt.clients.system.load_file_contents(
package_filepath)
package_cfg = dbt.clients.yaml_helper.load_yaml_text(
package_file_contents)
else:
package_cfg = {}
return package_cfg.get('packages', [])
def load_file(cls, package_name, root_dir, relative_dirs):
"""Load and parse documentation in a list of projects. Returns a list
of ParsedNodes.
"""
extension = "[!.#~]*.md"
file_matches = dbt.clients.system.find_matching(
root_dir,
relative_dirs,
extension)
for file_match in file_matches:
file_contents = dbt.clients.system.load_file_contents(
file_match.get('absolute_path'), strip=False)
parts = dbt.utils.split_path(file_match.get('relative_path', ''))
name, _ = os.path.splitext(parts[-1])
path = file_match.get('relative_path')
original_file_path = os.path.join(
file_match.get('searched_path'),
path)
yield UnparsedDocumentationFile(
root_path=root_dir,
resource_type=NodeType.Documentation,
path=path,
original_file_path=original_file_path,
package_name=package_name,
def find_schema_yml(cls, package_name, root_dir, relative_dirs):
"""This is common to both v1 and v2 - look through the relative_dirs
under root_dir for .yml files yield pairs of filepath and loaded yaml
contents.
"""
extension = "[!.#~]*.yml"
file_matches = dbt.clients.system.find_matching(
root_dir,
relative_dirs,
extension)
for file_match in file_matches:
file_contents = dbt.clients.system.load_file_contents(
file_match.get('absolute_path'), strip=False)
test_path = file_match.get('relative_path', '')
original_file_path = os.path.join(file_match.get('searched_path'),
test_path)
try:
test_yml = dbt.clients.yaml_helper.load_yaml_text(
file_contents
)
except dbt.exceptions.ValidationException as e:
test_yml = None
logger.info("Error reading {}:{} - Skipping\n{}".format(
package_name, test_path, e))
if test_yml is None:
if tags is None:
tags = []
if dbt.flags.STRICT_MODE:
dbt.contracts.project.ProjectList(**all_projects)
file_matches = dbt.clients.system.find_matching(
root_dir,
relative_dirs,
extension)
result = {}
for file_match in file_matches:
file_contents = dbt.clients.system.load_file_contents(
file_match.get('absolute_path'))
result.update(
cls.parse_macro_file(
file_match.get('relative_path'),
file_contents,
root_dir,
package_name,
resource_type))
return result
def _load_profile(self):
if not os.path.exists(self.profile_path):
self.profile_fail_details = FILE_NOT_FOUND
self.messages.append(MISSING_PROFILE_MESSAGE.format(
path=self.profile_path, url=ProfileConfigDocs
))
return red('ERROR not found')
try:
raw_profile_data = load_yaml_text(
dbt.clients.system.load_file_contents(self.profile_path)
)
except Exception:
pass # we'll report this when we try to load the profile for real
else:
if isinstance(raw_profile_data, dict):
self.raw_profile_data = raw_profile_data
self.profile_name = self._choose_profile_name()
self.target_name = self._choose_target_name()
try:
self.profile = Profile.from_args(self.args, self.profile_name)
except dbt.exceptions.DbtConfigError as exc:
self.profile_fail_details = str(exc)
return red('ERROR invalid')
return green('OK found and valid')
def read_profile(profiles_dir):
path = os.path.join(profiles_dir, 'profiles.yml')
contents = None
if os.path.isfile(path):
try:
contents = load_file_contents(path, strip=False)
return load_yaml_text(contents)
except ValidationException as e:
msg = INVALID_PROFILE_MESSAGE.format(error_string=e)
raise ValidationException(msg) from e
return {}