class_docstr: Extracts and stores information about the signature of a function.
  
  name : the functions name
  arguments : list of all arguments
  vararg_name : name of the *args variable
  kw_wildcard_name : name of the **kwargs variable
  positional_args : list of all positional-only arguments
  kwargs : dict of all keyword arguments mapped to their default
class_docstr_tok: ["Extracts","and","stores","information","about","the","signature","of","a","function",".","name",":","the","functions","name","arguments",":","list","of","all","arguments","vararg_name",":","name","of","the","*","args","variable","kw_wildcard_name",":","name","of","the","*","*","kwargs","variable","positional_args",":","list","of","all","positional-only","arguments","kwargs",":","dict","of","all","keyword","arguments","mapped","to","their","default"]
docstr: Construct args list and kwargs dictionary for this signature.
  
  They are created such that:
    - the original explicit call arguments (args, kwargs) are preserved
    - missing arguments are filled in by name using options (if possible)
    - default arguments are overridden by options
    - TypeError is thrown if:
      * kwargs contains one or more unexpected keyword arguments
      * conflicting values for a parameter in both args and kwargs
      * there is an unfilled parameter at the end of this process
docstr_tok: ["Construct","args","list","and","kwargs","dictionary","for","this","signature",".","They","are","created","such","that",":","-","the","original","explicit","call","arguments","(","args",",","kwargs",")","are","preserved","-","missing","arguments","are","filled","in","by","name","using","options","(","if","possible",")","-","default","arguments","are","overridden","by","options","-","TypeError","is","thrown","if",":","*","kwargs","contains","one","or","more","unexpected","keyword","arguments","*","conflicting","values","for","a","parameter","in","both","args","and","kwargs","*","there","is","an","unfilled","parameter","at","the","end","of","this","process"]
code: def construct_arguments(self, args, kwargs, options, bound=False):
      """
      Construct args list and kwargs dictionary for this signature.
  
      They are created such that:
        - the original explicit call arguments (args, kwargs) are preserved
        - missing arguments are filled in by name using options (if possible)
        - default arguments are overridden by options
        - TypeError is thrown if:
          * kwargs contains one or more unexpected keyword arguments
          * conflicting values for a parameter in both args and kwargs
          * there is an unfilled parameter at the end of this process
      """
      expected_args = self._get_expected_args(bound)
      self._assert_no_unexpected_args(expected_args, args)
      self._assert_no_unexpected_kwargs(expected_args, kwargs)
      self._assert_no_duplicate_args(expected_args, args, kwargs)
  
      args, kwargs = self._fill_in_options(args, kwargs, options, bound)
  
      self._assert_no_missing_args(args, kwargs, bound)
      return args, kwargs
  
file_path: sacred/sacred/config/signature.py
imports: import inspect
  from inspect import Parameter
  from collections import OrderedDict
  from sacred.utils import MissingConfigError, SignatureError
label_desc: Use image node_id 3 for calling the Signature obj's underlying member method code with example usage: obj.construct_arguments(args, kwargs, options, bound) and returns: args,  kwargs