Ensure all sources are ready to be queried.

        Parses ``sys.argv`` with the contained ``argparse.ArgumentParser`` and
        sets ``parsed`` to True if ``only_known`` is False.  Once ``parsed`` is
        set to True, it is inadvisable to add more parameters (cf.
        ``add_parameter``).  Also, if ``parsed`` is not set to True, retrieving
        items (cf. ``__getitem__``) will result in a warning that values are
        being retrieved from an uparsed Parameters.

        **Arguments**

        :``only_known``: If True, do not error or fail when unknown parameters
                         are encountered.

                         .. note::
                             If ``only_known`` is True, the ``--help`` and
                             ``-h`` options on the command line (``sys.argv``)
                             will be ignored during parsing as it is unexpected
                             that these parameters' default behavior would be
                             desired at this stage of execution.

def parse(self, only_known = False):
        '''Ensure all sources are ready to be queried.

        Parses ``sys.argv`` with the contained ``argparse.ArgumentParser`` and
        sets ``parsed`` to True if ``only_known`` is False.  Once ``parsed`` is
        set to True, it is inadvisable to add more parameters (cf.
        ``add_parameter``).  Also, if ``parsed`` is not set to True, retrieving
        items (cf. ``__getitem__``) will result in a warning that values are
        being retrieved from an uparsed Parameters.

        **Arguments**

        :``only_known``: If True, do not error or fail when unknown parameters
                         are encountered.

                         .. note::
                             If ``only_known`` is True, the ``--help`` and
                             ``-h`` options on the command line (``sys.argv``)
                             will be ignored during parsing as it is unexpected
                             that these parameters' default behavior would be
                             desired at this stage of execution.

        '''

        self.parsed = not only_known or self.parsed

        logger.info('parsing parameters')

        logger.debug('sys.argv: %s', sys.argv)

        if only_known:
            args = [ _ for _ in copy.copy(sys.argv) if not re.match('-h|--help', _) ]

            self._group_parsers['default'].parse_known_args(args = args, namespace = self._argument_namespace)
        else:
            self._group_parsers['default'].parse_args(namespace = self._argument_namespace)