@add_object.register(core.Sphere)
def _add_object(obj: core.Sphere):
    bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=5)
    bpy.ops.object.shade_smooth()
    cube = bpy.context.active_object
    return (cube, {'position': core.AttributeSetter(cube, 'location'), 'quaternion': core.AttributeSetter(cube, 'rotation_quaternion'), 'scale': core.AttributeSetter(cube, 'scale'), 'material': core.AttributeSetter(cube, 'active_material')})
@add_object.register(core.Sphere)
def _add_object(obj: core.Sphere):
    bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=5)
    bpy.ops.object.shade_smooth()
    cube = bpy.context.active_object
    return (cube, {'position': core.AttributeSetter(cube, 'location'), 'quaternion': core.AttributeSetter(cube, 'rotation_quaternion'), 'scale': core.AttributeSetter(cube, 'scale'), 'material': core.AttributeSetter(cube, 'active_material')})