diff --git a/CHANGELOG.rst b/CHANGELOG.rst
index 560f7d1..fcc257a 100644
--- a/CHANGELOG.rst
+++ b/CHANGELOG.rst
@@ -6,6 +6,11 @@ Versions follow `Semantic Versioning `_ (``..
TBC (TBC)
---------
+Features
+^^^^^^^^
+* `#222 `:
+ Declare the extension as parallel safe.
+
Bug Fixes
^^^^^^^^^
* `#219 `:
diff --git a/autoapi/extension.py b/autoapi/extension.py
index b29ddb3..f4a7a35 100644
--- a/autoapi/extension.py
+++ b/autoapi/extension.py
@@ -316,3 +316,8 @@ def setup(app):
app.add_event("autoapi-skip-member")
app.setup_extension("sphinx.ext.inheritance_diagram")
app.add_directive("autoapi-inheritance-diagram", AutoapiInheritanceDiagram)
+
+ return {
+ "parallel_read_safe": True,
+ "parallel_write_safe": True,
+ }
diff --git a/tests/python/test_pyintegration.py b/tests/python/test_pyintegration.py
index 26d3e32..f9332f8 100644
--- a/tests/python/test_pyintegration.py
+++ b/tests/python/test_pyintegration.py
@@ -23,7 +23,7 @@ from autoapi.mappers.python import (
def builder():
cwd = os.getcwd()
- def build(test_dir, confoverrides=None):
+ def build(test_dir, confoverrides=None, **kwargs):
os.chdir("tests/python/{0}".format(test_dir))
app = Sphinx(
srcdir=".",
@@ -32,6 +32,7 @@ def builder():
doctreedir="_build/.doctrees",
buildername="text",
confoverrides=confoverrides,
+ **kwargs
)
app.build(force_all=True)
@@ -639,6 +640,12 @@ class TestComplexPackage(object):
assert "unicode_str" in foo_file
+class TestComplexPackageParallel(object):
+ @pytest.fixture(autouse=True, scope="class")
+ def built(self, builder):
+ builder("pypackagecomplex", parallel=2)
+
+
@pytest.mark.skipif(
sys.version_info < (3, 3), reason="Implicit namespace not supported in python < 3.3"
)