Source code for projectreport.analyzer.project

import os
from pathlib import Path
from typing import Optional, Sequence, Union

import git
from cached_property import cached_property

from projectreport.analyzer.folder import Folder
from projectreport.config import DEFAULT_IGNORE_PATHS


[docs]class Project(Folder): """ Pass a project path to get analysis about the project. """
[docs] def __init__( self, path: Union[str, Path], excluded_types: Optional[Sequence[str]] = None, included_types: Optional[Sequence[str]] = None, ignore_paths: Optional[Sequence[str]] = DEFAULT_IGNORE_PATHS, ): super().__init__( path, project=self, excluded_types=excluded_types, included_types=included_types, ignore_paths=ignore_paths, )
@cached_property def repo(self) -> Optional[git.Repo]: try: return git.Repo(self.path) except git.InvalidGitRepositoryError: return None