def handle_signature(self, sig, signode):
assert (not sig.startswith('<<')) and (not sig.endswith('>>'))
modname = self.options.get(
'module', self.env.ref_context.get('py:module'))
classname = self.env.ref_context.get('py:class')
fullname = classname + '.' + sig
signode['module'] = modname
signode['class'] = classname
signode['fullname'] = fullname
signode += desc_annotation('virtual event ', 'virtual event ')
signode += desc_name('<<' + sig + '>>', '<<' + sig + '>>')
return fullname, ''
python类desc_name()的实例源码
def handle_signature(self, sig, signode):
signode += addnodes.desc_name(sig, sig)
return sig
def handle_signature(self, sig, signode):
signode += addnodes.desc_name(sig, sig)
return sig
def handle_signature(self, sig, signode):
signode += addnodes.desc_name(sig, sig)
return sig
def handle_signature(self, sig, signode):
signode += addnodes.desc_name(sig, sig)
return sig
def handle_signature(self, sig, signode):
if self.parse_node:
name = self.parse_node(self.env, sig, signode)
else:
signode.clear()
signode += addnodes.desc_name(sig, sig)
# normalize whitespace like XRefRole does
name = ws_re.sub('', sig)
return name
def process_service(self, filename):
data = self.get_json_from_file(os.path.join(self.dir, filename))
request_filename = self.write_tmp(data['request'] or '')
response_filename = self.write_tmp(data['response'] or '')
example = HTTPExample(
'http:example',
arguments=['curl', 'httpie', 'python-requests'],
options={
'request': request_filename,
'response': response_filename
},
content=self.content,
lineno=self.lineno,
content_offset=self.content_offset,
block_text='.. http:example::',
state=self.state,
state_machine=self.state_machine
)
method = data['method'].upper()
service = data['service']
name = service.get('name') or ''
path_scheme = data.get('path_scheme') or name
summary = service.get('summary') or ''
permission = service.get('permission') or ''
container = nodes.container('')
container.append(addnodes.desc_name('', method + ' '))
container.append(addnodes.desc_name('', path_scheme))
inner_container = nodes.definition('')
container.append(inner_container)
inner_container.append(nodes.paragraph(summary, summary))
inner_container.append(addnodes.desc_name('permission', 'permission'))
perm_label = ': ' + permission
inner_container.append(addnodes.desc_annotation(perm_label, perm_label))
inner_container.append(example.run()[0])
# extra = nodes.paragraph('', '')
# inner_container.append(extra)
# if service.get('responses'):
# extra.append(nodes.strong('', 'Responses'))
# blist = nodes.bullet_list('')
# extra.append(blist)
# for code, config in service['responses'].items():
# blist.append(render_response(code, 'Hello'))
# cleanup
os.remove(request_filename)
os.remove(response_filename)
return container
def handle_signature(self, sig, signode):
container_class_name = self.env.temp_data.get('swift:class')
match = var_sig.match(sig)
if not match:
self.env.warn(
self.env.docname,
'invalid variable/constant documentation string "%s", ' % sig,
self.lineno)
return
match = match.groupdict()
if self.objtype == 'static_var':
signode += addnodes.desc_addname("static var", "static var ")
elif self.objtype == 'static_let':
signode += addnodes.desc_addname("static let", "static let ")
elif self.objtype == 'var':
signode += addnodes.desc_addname("var", "var ")
elif self.objtype == 'let':
signode += addnodes.desc_addname("let", "let ")
name = match['name'].strip()
signature = name
signode += addnodes.desc_name(name, name)
if match['type']:
typ = match['type'].strip()
#signature += '-' + typ
signode += addnodes.desc_type(typ, " : " + typ)
if match['value'] and len(match['value']) > 0:
value = match['value'].strip()
signode += addnodes.desc_addname(value, " = " + value)
elif match['value']:
signode += addnodes.desc_addname('{ ... }', ' = { ... }')
#signature += "-" + self.objtype
if container_class_name:
name = container_class_name + '.' + name
signature = container_class_name + '.' + signature
return name, signature, True
def handle_signature(self, sig, signode):
sig = sig.strip()
if '(' in sig and sig[-1:] == ')':
prefix, arglist = sig.split('(', 1)
prefix = prefix.strip()
arglist = arglist[:-1].strip()
else:
prefix = sig
arglist = None
if '.' in prefix:
nameprefix, name = prefix.rsplit('.', 1)
else:
nameprefix = None
name = prefix
objectname = self.env.ref_context.get('js:object')
if nameprefix:
if objectname:
# someone documenting the method of an attribute of the current
# object? shouldn't happen but who knows...
nameprefix = objectname + '.' + nameprefix
fullname = nameprefix + '.' + name
elif objectname:
fullname = objectname + '.' + name
else:
# just a function or constructor
objectname = ''
fullname = name
signode['object'] = objectname
signode['fullname'] = fullname
if self.display_prefix:
signode += addnodes.desc_annotation(self.display_prefix,
self.display_prefix)
if nameprefix:
signode += addnodes.desc_addname(nameprefix + '.', nameprefix + '.')
signode += addnodes.desc_name(name, name)
if self.has_arguments:
if not arglist:
signode += addnodes.desc_parameterlist()
else:
_pseudo_parse_arglist(signode, arglist)
return fullname, nameprefix