@@ -87,13 +87,17 @@ class members that are inherited from a base class. This value can be
87
87
import os
88
88
import re
89
89
import io
90
+ from distutils .version import LooseVersion
90
91
92
+ from sphinx import __version__
91
93
from sphinx .ext .autosummary import Autosummary
92
94
from sphinx .ext .inheritance_diagram import InheritanceDiagram
93
95
from docutils .parsers .rst .directives import flag
94
96
95
97
from .utils import find_mod_objs , cleanup_whitespace
96
98
99
+ SPHINX_LT_17 = LooseVersion (__version__ ) < LooseVersion ('1.7' )
100
+
97
101
98
102
def _str_list_converter (argument ):
99
103
"""
@@ -262,7 +266,7 @@ def process_automodsumm_generation(app):
262
266
suffix = os .path .splitext (sfn )[1 ]
263
267
if len (lines ) > 0 :
264
268
generate_automodsumm_docs (
265
- lines , sfn , builder = app .builder , warn = app .warn , info = app .info ,
269
+ lines , sfn , app = app , builder = app .builder , warn = app .warn , info = app .info ,
266
270
suffix = suffix , base_path = app .srcdir ,
267
271
inherited_members = app .config .automodsumm_inherited_members )
268
272
@@ -397,7 +401,7 @@ def automodsumm_to_autosummary_lines(fn, app):
397
401
return newlines
398
402
399
403
400
- def generate_automodsumm_docs (lines , srcfn , suffix = '.rst' , warn = None ,
404
+ def generate_automodsumm_docs (lines , srcfn , app = None , suffix = '.rst' , warn = None ,
401
405
info = None , base_path = None , builder = None ,
402
406
template_dir = None ,
403
407
inherited_members = False ):
@@ -493,7 +497,11 @@ def generate_automodsumm_docs(lines, srcfn, suffix='.rst', warn=None,
493
497
f = open (fn , 'w' )
494
498
495
499
try :
496
- doc = get_documenter (obj , parent )
500
+
501
+ if SPHINX_LT_17 :
502
+ doc = get_documenter (obj , parent )
503
+ else :
504
+ doc = get_documenter (app , obj , parent )
497
505
498
506
if template_name is not None :
499
507
template = template_env .get_template (template_name )
@@ -511,8 +519,10 @@ def get_members_mod(obj, typ, include_public=[]):
511
519
items = []
512
520
for name in dir (obj ):
513
521
try :
514
- documenter = get_documenter (safe_getattr (obj , name ),
515
- obj )
522
+ if SPHINX_LT_17 :
523
+ documenter = get_documenter (safe_getattr (obj , name ), obj )
524
+ else :
525
+ documenter = get_documenter (app , safe_getattr (obj , name ), obj )
516
526
except AttributeError :
517
527
continue
518
528
if typ is None or documenter .objtype == typ :
@@ -541,8 +551,10 @@ def get_members_class(obj, typ, include_public=[],
541
551
542
552
for name in names :
543
553
try :
544
- documenter = get_documenter (safe_getattr (obj , name ),
545
- obj )
554
+ if SPHINX_LT_17 :
555
+ documenter = get_documenter (safe_getattr (obj , name ), obj )
556
+ else :
557
+ documenter = get_documenter (app , safe_getattr (obj , name ), obj )
546
558
except AttributeError :
547
559
continue
548
560
if typ is None or documenter .objtype == typ :
0 commit comments