<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_config(case=None, Exp='Dummy', Type='Tor', Lim=None, Bump_posextent=[np.pi/4., np.pi/4], R=2.4, r=1., elong=0., Dshape=0., divlow=True, divup=True, nP=200, out='object', SavePath='./'):
 """ Create easily a tofu.geom.Config object In tofu, a Config (short for geometrical configuration) refers to the 3D geometry of a fusion device. It includes, at least, a simple 2D polygon describing the first wall of the fusion chamber, and can also include other structural elements (tiles, To create a simple Config, provide either the name of a reference test This is just a tool for fast testing, if you want to create a custom config, use directly tofu.geom.Config and provide the parameters you want. Parameters case : str The name of a reference test case, if provided, this arguments is sufficient, the others are ignored Exp : str The name of the experiment Type : str The type of configuration (toroidal 'Tor' or linear 'Lin') Lim_Bump: list The angular (poloidal) limits, in the cross-section of the extension of the outer bumper R : float The major radius of the center of the cross-section r : float The minor radius of the cross-section elong: float An elongation parameter (in [-1;1]) Dshape: float A parameter specifying the D-shape of the cross-section (in [-1;1]) divlow: bool A flag specifying whether to include a lower divertor-like shape divup: bool A flag specifying whether to include an upper divertor-like shape nP: int Number of points used to describe the cross-section polygon out: str FLag indicating whether to return: - 'dict' : the polygons as a dictionary of np.ndarrays - 'object': the configuration as a tofu.geom.Config instance Return ------ conf: tofu.geom.Config / dict Depending on the value of parameter out, either: - the tofu.geom.Config object created - a dictionary of the polygons and their pos/extent (if any) """


    if case is not None:
        conf = _create_config_testcase(config=case, out=out)
    else:
        poly, pbump, pbaffle = _compute_VesPoly(R=R, r=r, elong=elong, Dshape=Dshape,
                                                divlow=divlow, divup=divup, nP=nP)

        if out=='dict':
            conf = {'Ves':{'Poly':poly},
                    'Baffle':{'Poly':pbaffle},
                    'Bumper':{'Poly':pbump,
                              'pos':Bump_posextent[0],
                              'extent':Bump_posextent[1]}}
        else:
            ves = _core.Ves(Poly=poly, Type=Type, Lim=Lim, Exp=Exp, Name='Ves',
                            SavePath=SavePath)
            baf = _core.PFC(Poly=pbaffle, Type=Type, Lim=Lim,
                            Exp=Exp, Name='Baffle', color='b', SavePath=SavePath)
            bump = _core.PFC(Poly=pbump, Type=Type,
                             pos=Bump_posextent[0], extent=Bump_posextent[1],
                             Exp=Exp, Name='Bumper', color='g', SavePath=SavePath)

            conf = _core.Config(Name='Dummy', Exp=Exp, lStruct=[ves,baf,bump],
                                SavePath=SavePath)
    return conf