nodes: 0, module; 1, function_definition; 2, function_name:single_load; 3, parameters; 4, block; 5, identifier:input_; 6, default_parameter; 7, default_parameter; 8, default_parameter; 9, dictionary_splat_pattern; 10, expression_statement; 11, expression_statement; 12, expression_statement; 13, expression_statement; 14, return_statement; 15, identifier:ac_parser; 16, None; 17, identifier:ac_template; 18, False; 19, identifier:ac_context; 20, None; 21, identifier:options; 22, comment:r"""
      Load single configuration file.
  
      .. note::
  
         :func:`load` is a preferable alternative and this API should be used
         only if there is a need to emphasize given input 'input\_' is single
         one.
  
      :param input\_:
          File path or file or file-like object or pathlib.Path object represents
          the file or a namedtuple 'anyconfig.globals.IOInfo' object represents
          some input to load some data from
      :param ac_parser: Forced parser type or parser object itself
      :param ac_template:
          Assume configuration file may be a template file and try to compile it
          AAR if True
      :param ac_context: A dict presents context to instantiate template
      :param options: Optional keyword arguments such as:
  
          - Options common in :func:`single_load`, :func:`multi_load`,
            :func:`load` and :func:`loads`:
  
            - ac_dict: callable (function or class) to make mapping objects from
              loaded data if the selected backend can customize that such as JSON
              which supports that with 'object_pairs_hook' option, or None. If
              this option was not given or None, dict or
              :class:`collections.OrderedDict` will be used to make result as
              mapping object depends on if ac_ordered (see below) is True and
              selected backend can keep the order of items loaded. See also
              :meth:`_container_factory` of
              :class:`anyconfig.backend.base.Parser` for more implementation
              details.
  
            - ac_ordered: True if you want to keep resuls ordered. Please note
              that order of items may be lost depends on the selected backend.
  
            - ac_schema: JSON schema file path to validate given config file
            - ac_query: JMESPath expression to query data
  
          - Common backend options:
  
            - ac_ignore_missing:
              Ignore and just return empty result if given file 'input\_' does
              not exist actually.
  
          - Backend specific options such as {"indent": 2} for JSON backend
  
      :return: Mapping object
      :raises: ValueError, UnknownProcessorTypeError, UnknownFileTypeError
      """; 23, assignment; 24, assignment; 25, assignment; 26, call; 27, identifier:cnf; 28, call; 29, identifier:schema; 30, call; 31, identifier:cnf; 32, call; 33, attribute; 34, argument_list; 35, identifier:_single_load; 36, argument_list; 37, identifier:_maybe_schema; 38, argument_list; 39, identifier:_try_validate; 40, argument_list; 41, attribute; 42, identifier:query; 43, identifier:cnf; 44, dictionary_splat; 45, identifier:input_; 46, keyword_argument; 47, keyword_argument; 48, keyword_argument; 49, dictionary_splat; 50, keyword_argument; 51, keyword_argument; 52, dictionary_splat; 53, identifier:cnf; 54, identifier:schema; 55, dictionary_splat; 56, identifier:anyconfig; 57, identifier:query; 58, identifier:options; 59, identifier:ac_parser; 60, identifier:ac_parser; 61, identifier:ac_template; 62, identifier:ac_template; 63, identifier:ac_context; 64, identifier:ac_context; 65, identifier:options; 66, identifier:ac_template; 67, identifier:ac_template; 68, identifier:ac_context; 69, identifier:ac_context; 70, identifier:options; 71, identifier:options
code: def single_load(input_, ac_parser=None, ac_template=False,
                  ac_context=None, **options):
      r"""
      Load single configuration file.
  
      .. note::
  
         :func:`load` is a preferable alternative and this API should be used
         only if there is a need to emphasize given input 'input\_' is single
         one.
  
      :param input\_:
          File path or file or file-like object or pathlib.Path object represents
          the file or a namedtuple 'anyconfig.globals.IOInfo' object represents
          some input to load some data from
      :param ac_parser: Forced parser type or parser object itself
      :param ac_template:
          Assume configuration file may be a template file and try to compile it
          AAR if True
      :param ac_context: A dict presents context to instantiate template
      :param options: Optional keyword arguments such as:
  
          - Options common in :func:`single_load`, :func:`multi_load`,
            :func:`load` and :func:`loads`:
  
            - ac_dict: callable (function or class) to make mapping objects from
              loaded data if the selected backend can customize that such as JSON
              which supports that with 'object_pairs_hook' option, or None. If
              this option was not given or None, dict or
              :class:`collections.OrderedDict` will be used to make result as
              mapping object depends on if ac_ordered (see below) is True and
              selected backend can keep the order of items loaded. See also
              :meth:`_container_factory` of
              :class:`anyconfig.backend.base.Parser` for more implementation
              details.
  
            - ac_ordered: True if you want to keep resuls ordered. Please note
              that order of items may be lost depends on the selected backend.
  
            - ac_schema: JSON schema file path to validate given config file
            - ac_query: JMESPath expression to query data
  
          - Common backend options:
  
            - ac_ignore_missing:
              Ignore and just return empty result if given file 'input\_' does
              not exist actually.
  
          - Backend specific options such as {"indent": 2} for JSON backend
  
      :return: Mapping object
      :raises: ValueError, UnknownProcessorTypeError, UnknownFileTypeError
      """
      cnf = _single_load(input_, ac_parser=ac_parser, ac_template=ac_template,
                         ac_context=ac_context, **options)
      schema = _maybe_schema(ac_template=ac_template, ac_context=ac_context,
                             **options)
      cnf = _try_validate(cnf, schema, **options)
      return anyconfig.query.query(cnf, **options)