def folder(self) -> typing.Union[str, None]:
        """
        The folder, relative to the project source_directory, where the file
        resides

        :return:
        """

        if 'folder' in self.data:
            return self.data.get('folder')
        elif self.project_folder:
            if callable(self.project_folder):
                return self.project_folder()
            else:
                return self.project_folder
        return None
The folder, relative to the project source_directory, where the file
        resides

        :return: