Index: breathe-4.35.0/tests/test_renderer.py =================================================================== --- breathe-4.35.0.orig/tests/test_renderer.py +++ breathe-4.35.0/tests/test_renderer.py @@ -35,7 +35,11 @@ def app(test_params, app_params, make_ap """ args, kwargs = app_params assert "srcdir" in kwargs - kwargs["srcdir"].makedirs(exist_ok=True) + try: + kwargs["srcdir"].mkdir(parents=True, exist_ok=True) + except AttributeError: + # old version of Sphinx + kwargs["srcdir"].makedirs(exist_ok=True) (kwargs["srcdir"] / "conf.py").write_text("") app_ = make_app(*args, **kwargs) yield app_ Index: breathe-4.35.0/breathe/project.py =================================================================== --- breathe-4.35.0.orig/breathe/project.py +++ breathe-4.35.0/breathe/project.py @@ -113,7 +113,7 @@ class ProjectInfoFactory: # Assume general build directory is the doctree directory without the last component. # We strip off any trailing slashes so that dirname correctly drops the last part. # This can be overridden with the breathe_build_directory config variable - self._default_build_dir = os.path.dirname(app.doctreedir.rstrip(os.sep)) + self._default_build_dir = app.doctreedir.parent self.project_count = 0 self.project_info_store: Dict[str, ProjectInfo] = {} self.project_info_for_auto_store: Dict[str, AutoProjectInfo] = {}