def __new__(cls, *args, **kwargs):
    'Support for using name of assignment\n\n        Example:\n            node["thisName"] =  cmdx.Double()\n\n        In this example, the attribute isn\'t given a `name`\n        Instead, the name is inferred from where it is assigned.\n\n        '
    if (not args):
        return (cls, kwargs)
    return super(_AbstractAttribute, cls).__new__(cls, *args, **kwargs)
Support for using name of assignment

Example:
    node["thisName"] =  cmdx.Double()

In this example, the attribute isn't given a `name`
Instead, the name is inferred from where it is assigned.
def __new__(cls, *args, **kwargs):
    'Support for using name of assignment\n\n        Example:\n            node["thisName"] =  cmdx.Double()\n\n        In this example, the attribute isn\'t given a `name`\n        Instead, the name is inferred from where it is assigned.\n\n        '
    if (not args):
        return (cls, kwargs)
    return super(_AbstractAttribute, cls).__new__(cls, *args, **kwargs)