Beispiel #1
0
 def get_path(self) -> FilePath:
     path = FilePath(
         project_root=self.project.project_root,
         searched_path='.',
         relative_path='dbt_project.yml',
     )
     return path
Beispiel #2
0
 def _mock_hook_path(self):
     path = FilePath(
         searched_path='.',
         project_root=os.path.normcase(os.getcwd()),
         relative_path='dbt_project.yml',
     )
     return path
Beispiel #3
0
 def get_paths(self) -> List[FilePath]:
     path = FilePath(
         project_root=self.project.project_root,
         searched_path='.',
         relative_path='dbt_project.yml',
     )
     return [path]
Beispiel #4
0
 def load_file(self,
               match: FilePath,
               *,
               set_contents: bool = False) -> SourceFile:
     if match.seed_too_large():
         # We don't want to calculate a hash of this file. Use the path.
         return SourceFile.big_seed(match)
     else:
         # We want to calculate a hash, but we don't need the contents
         return super().load_file(match, set_contents=set_contents)
 def _new_file(self, searched, name, match):
     if match:
         checksum = MatchingHash()
     else:
         checksum = MismatchedHash()
     path = FilePath(
         searched_path=normalize(searched),
         relative_path=normalize(name),
         project_root=normalize(self.root_project_config.project_root),
     )
     return SourceFile(path=path, checksum=checksum)
Beispiel #6
0
 def use_models(self, models):
     for k, v in models.items():
         path = FilePath(
             searched_path='models',
             project_root=os.path.normcase(os.getcwd()),
             relative_path='{}.sql'.format(k),
         )
         # FileHash can't be empty or 'search_key' will be None
         source_file = SourceFile(path=path, checksum=FileHash.from_contents('abc'))
         source_file.contents = v
         self.mock_models.append(source_file)
Beispiel #7
0
def load_seed_source_file(match: FilePath, project_name) -> SourceFile:
    if match.seed_too_large():
        # We don't want to calculate a hash of this file. Use the path.
        source_file = SourceFile.big_seed(match)
    else:
        file_contents = load_file_contents(match.absolute_path, strip=False)
        checksum = FileHash.from_contents(file_contents)
        source_file = SourceFile(path=match, checksum=checksum)
        source_file.contents = ''
    source_file.parse_file_type = ParseFileType.Seed
    source_file.project_name = project_name
    return source_file
Beispiel #8
0
 def file_block_for(self, data: str, filename: str, searched: str):
     root_dir = get_abs_os_path('./dbt_modules/snowplow')
     filename = normalize(filename)
     path = FilePath(
         searched_path=searched,
         relative_path=filename,
         project_root=root_dir,
     )
     source_file = SourceFile(
         path=path,
         checksum=FileHash.from_contents(data),
     )
     source_file.contents = data
     return FileBlock(file=source_file)
Beispiel #9
0
    def __iter__(self) -> Iterator[FilePath]:
        ext = "[!.#~]*" + self.extension

        root = self.project.project_root

        for result in find_matching(root, self.relative_dirs, ext):
            if 'searched_path' not in result or 'relative_path' not in result:
                raise InternalException(
                    'Invalid result from find_matching: {}'.format(result))
            file_match = FilePath(
                searched_path=result['searched_path'],
                relative_path=result['relative_path'],
                project_root=root,
            )
            yield file_match