Skip to content

Commit 2e21ecc

Browse files
authored
Fix docs (#81)
1 parent 60c9aeb commit 2e21ecc

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

docs/conf.py

+27
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import sys
2+
from abc import ABC
23
from datetime import datetime
34
from pathlib import Path
5+
from unittest.mock import MagicMock, patch
46

57

68
try:
@@ -9,8 +11,33 @@
911
from importlib_metadata import metadata
1012

1113

14+
def mock_rpy2():
15+
# Can’t use autodoc_mock_imports as we import anndata2ri
16+
patch('rpy2.situation.get_r_home', lambda: None).start()
17+
sys.modules['rpy2.rinterface_lib'] = MagicMock()
18+
submods = ['embedded', 'conversion', 'memorymanagement', 'sexp', 'bufferprotocol', 'callbacks', '_rinterface_capi']
19+
sys.modules.update({f'rpy2.rinterface_lib.{sub}': MagicMock() for sub in submods})
20+
sexp = sys.modules['rpy2.rinterface_lib'].sexp = sys.modules['rpy2.rinterface_lib.sexp']
21+
sexp.Sexp = type('Sexp', (MagicMock, ABC), dict(__module__='rpy2.rinterface_lib.sexp'))
22+
sexp.SexpEnvironment = type('SexpEnvironment', (sexp.Sexp,), dict(__module__='rpy2.rinterface_lib.sexp'))
23+
sexp.SexpVector = sexp.StrSexpVector = MagicMock
24+
sexp.SexpVector.from_iterable = MagicMock()
25+
26+
import rpy2.rinterface
27+
import rpy2.rinterface_lib.sexp
28+
29+
rpy2.rinterface_lib = sys.modules['rpy2.rinterface_lib']
30+
rpy2.rinterface._MissingArgType = object
31+
rpy2.rinterface.initr_simple = lambda *_, **__: None
32+
33+
assert rpy2.rinterface_lib.sexp is sexp
34+
35+
1236
HERE = Path(__file__).parent
1337

38+
mock_rpy2()
39+
40+
# now we can anndata2ri and our extensions
1441
sys.path[:0] = [str(HERE.parent), str(HERE / 'ext')]
1542

1643

0 commit comments

Comments
 (0)