Parse the known arguments at this point, and also return the remaining unknown flag arguments. :returns: A tuple containing an argparse namespace object for the known arguments, and a list of unknown flag arguments.
(
self,
args: Sequence[str | os.PathLike[str]],
namespace: argparse.Namespace | None = None,
)
| 154 | return self.parse_known_and_unknown_args(args, namespace=namespace)[0] |
| 155 | |
| 156 | def parse_known_and_unknown_args( |
| 157 | self, |
| 158 | args: Sequence[str | os.PathLike[str]], |
| 159 | namespace: argparse.Namespace | None = None, |
| 160 | ) -> tuple[argparse.Namespace, list[str]]: |
| 161 | """Parse the known arguments at this point, and also return the |
| 162 | remaining unknown flag arguments. |
| 163 | |
| 164 | :returns: |
| 165 | A tuple containing an argparse namespace object for the known |
| 166 | arguments, and a list of unknown flag arguments. |
| 167 | """ |
| 168 | strargs = [os.fspath(x) for x in args] |
| 169 | if sys.version_info < (3, 12, 8) or (3, 13) <= sys.version_info < (3, 13, 1): |
| 170 | # Older argparse have a bugged parse_known_intermixed_args. |
| 171 | namespace, unknown = self.optparser.parse_known_args(strargs, namespace) |
| 172 | assert namespace is not None |
| 173 | file_or_dir = getattr(namespace, FILE_OR_DIR) |
| 174 | unknown_flags: list[str] = [] |
| 175 | for arg in unknown: |
| 176 | (unknown_flags if arg.startswith("-") else file_or_dir).append(arg) |
| 177 | return namespace, unknown_flags |
| 178 | else: |
| 179 | return self.optparser.parse_known_intermixed_args(strargs, namespace) |
| 180 | |
| 181 | def addini( |
| 182 | self, |