def construct_meta(need_data, env):
hide_options = env.config.needs_hide_options<EOL>if not isinstance(hide_options, list):<EOL><INDENT>raise SphinxError('<STR_LIT>')<EOL><DEDENT>node_meta = nodes.line_block(classes=['<STR_LIT>'])<EOL>param_status = "<STR_LIT>"<EOL>param_tags = "<STR_LIT>"<EOL>if need_data["<STR_LIT:status>"] is not None and '<STR_LIT:status>' not in hide_options:<EOL><INDENT>status_line = nodes.line(classes=['<STR_LIT:status>'])<EOL>node_status = nodes.inline(param_status, param_status, classes=['<STR_LIT:status>'])<EOL>status_line.append(node_status)<EOL>status_line.append(nodes.inline(need_data["<STR_LIT:status>"], need_data["<STR_LIT:status>"],<EOL>classes=["<STR_LIT>", str(need_data['<STR_LIT:status>'])]))<EOL>node_meta.append(status_line)<EOL><DEDENT>if need_data["<STR_LIT>"] and '<STR_LIT>' not in hide_options:<EOL><INDENT>tag_line = nodes.line(classes=['<STR_LIT>'])<EOL>node_tags = nodes.inline(param_tags, param_tags, classes=['<STR_LIT>'])<EOL>tag_line.append(node_tags)<EOL>for tag in need_data['<STR_LIT>']:<EOL><INDENT>tag_line.append(nodes.inline(tag, tag, classes=["<STR_LIT>", str(tag)]))<EOL>tag_line.append(nodes.inline('<STR_LIT:U+0020>', '<STR_LIT:U+0020>'))<EOL><DEDENT>node_meta.append(tag_line)<EOL><DEDENT>if need_data['<STR_LIT>'] and '<STR_LIT>' not in hide_options:<EOL><INDENT>node_incoming_line = nodes.line(classes=['<STR_LIT>', '<STR_LIT>'])<EOL>prefix = "<STR_LIT>"<EOL>node_incoming_prefix = nodes.inline(prefix, prefix)<EOL>node_incoming_line.append(node_incoming_prefix)<EOL>node_incoming_links = Need_incoming(reftarget=need_data['<STR_LIT:id>'])<EOL>node_incoming_links.append(nodes.inline(need_data['<STR_LIT:id>'], need_data['<STR_LIT:id>']))<EOL>node_incoming_line.append(node_incoming_links)<EOL>node_meta.append(node_incoming_line)<EOL><DEDENT>if need_data['<STR_LIT>'] and '<STR_LIT>' not in hide_options:<EOL><INDENT>node_outgoing_line = nodes.line(classes=['<STR_LIT>', '<STR_LIT>'])<EOL>prefix = "<STR_LIT>"<EOL>node_outgoing_prefix = nodes.inline(prefix, prefix)<EOL>node_outgoing_line.append(node_outgoing_prefix)<EOL>node_outgoing_links = Need_outgoing(reftarget=need_data['<STR_LIT:id>'])<EOL>node_outgoing_links.append(nodes.inline(need_data['<STR_LIT:id>'], need_data['<STR_LIT:id>']))<EOL>node_outgoing_line.append(node_outgoing_links)<EOL>node_meta.append(node_outgoing_line)<EOL><DEDENT>extra_options = getattr(env.config, '<STR_LIT>', {})<EOL>node_extra_options = []<EOL>for key, value in extra_options.items():<EOL><INDENT>if key in hide_options:<EOL><INDENT>continue<EOL><DEDENT>param_data = need_data[key]<EOL>if param_data is None or not param_data:<EOL><INDENT>continue<EOL><DEDENT>param_option = '<STR_LIT>'.format(key)<EOL>option_line = nodes.line(classes=['<STR_LIT>'])<EOL>option_line.append(nodes.inline(param_option, param_option, classes=['<STR_LIT>']))<EOL>option_line.append(nodes.inline(param_data, param_data,<EOL>classes=["<STR_LIT>", str(key)]))<EOL>node_extra_options.append(option_line)<EOL><DEDENT>node_meta += node_extra_options<EOL>global_options = getattr(env.config, '<STR_LIT>', {})<EOL>node_global_options = []<EOL>for key, value in global_options.items():<EOL><INDENT>if key in extra_options or key in hide_options:<EOL><INDENT>continue<EOL><DEDENT>param_data = need_data[key]<EOL>if param_data is None or not param_data:<EOL><INDENT>continue<EOL><DEDENT>param_option = '<STR_LIT>'.format(key)<EOL>global_option_line = nodes.line(classes=['<STR_LIT>'])<EOL>global_option_line.append(nodes.inline(param_option, param_option, classes=['<STR_LIT>']))<EOL>global_option_line.append(nodes.inline(param_data, param_data,<EOL>classes=["<STR_LIT>", str(key)]))<EOL>node_global_options.append(global_option_line)<EOL><DEDENT>node_meta += node_global_options<EOL>return node_meta<EOL>
Constructs the node-structure for the status container
:param need_data: need_info container
:return: node