Skip to content

Commit ef973ef

Browse files
Parameterizing "self" reference in transform functions
1 parent d1dae03 commit ef973ef

File tree

1 file changed

+21
-21
lines changed

1 file changed

+21
-21
lines changed

sphinxcontrib/prettyspecialmethods.py

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ def patch_node(node, text=None, children=None, *, constructor=None):
4141

4242

4343
def function_transformer(new_name):
44-
def xf(name_node, parameters_node):
44+
def xf(name_node, parameters_node, selfref):
4545
return (
4646
patch_node(name_node, new_name, ()),
4747
patch_node(parameters_node, '', [
48-
SphinxNodes.desc_parameter('', 'self'),
48+
SphinxNodes.desc_parameter('', selfref),
4949
*parameters_node.children,
5050
])
5151
)
@@ -54,20 +54,20 @@ def xf(name_node, parameters_node):
5454

5555

5656
def unary_op_transformer(op):
57-
def xf(name_node, parameters_node):
57+
def xf(name_node, parameters_node, selfref):
5858
return (
5959
patch_node(name_node, op, ()),
60-
emphasis('', 'self'),
60+
emphasis('', selfref),
6161
)
6262

6363
return xf
6464

6565

6666
def binary_op_transformer(op):
67-
def xf(name_node, parameters_node):
67+
def xf(name_node, parameters_node, selfref):
6868
return inline(
6969
'', '',
70-
emphasis('', 'self'),
70+
emphasis('', selfref),
7171
Text(' '),
7272
patch_node(name_node, op, ()),
7373
Text(' '),
@@ -77,22 +77,22 @@ def xf(name_node, parameters_node):
7777
return xf
7878

7979

80-
def brackets(parameters_node):
80+
def brackets(parameters_node, selfref):
8181
return [
82-
emphasis('', 'self'),
82+
emphasis('', selfref),
8383
SphinxNodes.desc_name('', '', Text('[')),
8484
emphasis('', parameters_node.children[0].astext()),
8585
SphinxNodes.desc_name('', '', Text(']')),
8686
]
8787

8888

8989
SPECIAL_METHODS = {
90-
'__getitem__': lambda name_node, parameters_node: inline(
91-
'', '', *brackets(parameters_node)
90+
'__getitem__': lambda name_node, parameters_node, selfref: inline(
91+
'', '', *brackets(parameters_node, selfref)
9292
),
93-
'__setitem__': lambda name_node, parameters_node: inline(
93+
'__setitem__': lambda name_node, parameters_node, selfref: inline(
9494
'', '',
95-
*brackets(parameters_node),
95+
*brackets(parameters_node, selfref),
9696
Text(' '),
9797
SphinxNodes.desc_name('', '', Text('=')),
9898
Text(' '),
@@ -101,26 +101,26 @@ def brackets(parameters_node):
101101
if len(parameters_node.children) > 1 else ''
102102
)),
103103
),
104-
'__delitem__': lambda name_node, parameters_node: inline(
104+
'__delitem__': lambda name_node, parameters_node, selfref: inline(
105105
'', '',
106106
SphinxNodes.desc_name('', '', Text('del')),
107107
Text(' '),
108-
*brackets(parameters_node),
108+
*brackets(parameters_node, selfref),
109109
),
110-
'__contains__': lambda name_node, parameters_node: inline(
110+
'__contains__': lambda name_node, parameters_node, selfref: inline(
111111
'', '',
112112
emphasis('', parameters_node.children[0].astext()),
113113
Text(' '),
114114
SphinxNodes.desc_name('', '', Text('in')),
115115
Text(' '),
116-
emphasis('', 'self'),
116+
emphasis('', selfref),
117117
),
118118

119-
'__await__': lambda name_node, parameters_node: inline(
119+
'__await__': lambda name_node, parameters_node, selfref: inline(
120120
'', '',
121121
SphinxNodes.desc_name('', '', Text('await')),
122122
Text(' '),
123-
emphasis('', 'self'),
123+
emphasis('', selfref),
124124
),
125125

126126
'__lt__': binary_op_transformer('<'),
@@ -156,8 +156,8 @@ def brackets(parameters_node):
156156
'__abs__': function_transformer('abs'),
157157
'__invert__': unary_op_transformer('~'),
158158

159-
'__call__': lambda name_node, parameters_node: (
160-
emphasis('', 'self'),
159+
'__call__': lambda name_node, parameters_node, selfref: (
160+
emphasis('', selfref),
161161
patch_node(parameters_node, '', parameters_node.children)
162162
),
163163
'__getattr__': function_transformer('getattr'),
@@ -202,7 +202,7 @@ def apply(self):
202202
if method_name in SPECIAL_METHODS:
203203
parameters_node = ref.next_node(SphinxNodes.desc_parameterlist)
204204

205-
name_node.replace_self(SPECIAL_METHODS[method_name](name_node, parameters_node))
205+
name_node.replace_self(SPECIAL_METHODS[method_name](name_node, parameters_node, 'self'))
206206
parameters_node.replace_self(())
207207

208208

0 commit comments

Comments
 (0)