'Create a new polynomial instance out of something useful.'

def __new__(cls, rep, *gens, **args):

    opt = options.build_options(gens, args)
    if ('order' in opt):
        raise NotImplementedError("'order'    keyword    is    not    implemented    yet")
    if iterable(rep, exclude=str):
        if isinstance(rep, dict):
            return cls._from_dict(rep, opt)
        else:
            return cls._from_list(list(rep), opt)
    else:
        rep = sympify(rep)
        if rep.is_Poly:
            return cls._from_poly(rep, opt)
        else:
            return cls._from_expr(rep, opt)
