How do I create a Python namespace (argparse.parse_args value)?
Question: To interactively test my python script, I would like to create a `Namespace`
object, similar to what would be returned by `argparse.parse_args()`. The
obvious way,

    
    
    >>> import argparse
    >>> parser = argparse.ArgumentParser()
    >>> parser.parse_args()
    Namespace()
    >>> parser.parse_args("-a")
    usage: [-h]
    : error: unrecognized arguments: - a
    
    Process Python exited abnormally with code 2
    

may result in Python repl exiting (as above) on a silly error.

So, **what is the easiest way to create a Python namespace with a given set of
attributes?**

E.g., I can create a `dict` on the fly (`dict([("a",1),("b","c")])`) but I
cannot use it as a `Namespace`:

    
    
    AttributeError: 'dict' object has no attribute 'a'
    


Answer: You can create a simple class:

    
    
    class Namespace:
        def __init__(self, **kwargs):
            self.__dict__.update(kwargs)
    

and it'll work the exact same way as the `argparse` `Namespace` class when it
comes to attributes:

    
    
    >>> args = Namespace(a=1, b='c')
    >>> args.a
    1
    >>> args.b
    'c'
    

Alternatively, just _import the class_ ; it is available from the `argparse`
module:

    
    
    from argparse import Namespace
    
    args = Namespace(a=1, b='c')
    

