Why can't I access the rotation and location values of an object moved with empties and constraints with Python? I created a mesh in a script that has 5 vertices and each vertex is moved by an empty using Hook constraints. This animates the plane to follow the path of a spinning torus based on the animation I had on the empties. The pivot point is at the center of the mesh. 

I want to access the location and rotation of the full object. However, when I look at the location and rotation, is not changing and the rotation is always 0, 0, 0 no matter what rotation type I use. Any ideas what could be causing this? I just need the values of its location and rotation on each frame. 

This is how I create the mesh... not sure if there is a way that can give me better results:

bpy.ops.object.mode_set(mode='EDIT', toggle=False)
mesh = bpy.data.meshes.new("myBeautifulMesh")  # add the new mesh
obj = bpy.data.objects.new(mesh.name, mesh)
col = bpy.data.collections.get("Collection")
col.objects.link(obj)
bpy.context.view_layer.objects.active = obj

verts = [order[0].location, 
         order[1].location,
         order[2].location,
         order[3].location,
         order[4].location
         ]  # 4 verts made with XYZ coords
edges = []
faces = [[0, 1, 2, 3, 4]]

mesh.from_pydata(verts, [], faces)
Modifiers alter mesh at a local level

The hook modifier, or most modifiers modify the mesh data, not the object transform.

The location of the hooked object could be estimated from all the hook empties (average there global translations).

Or use a copy location constraint.  Add all the verts to one group, make that the constraint target.  The rotation can be estimated (depends on mesh) using track to constraints.

For rotation consider parenting.

Can parent an object to 3 of the beautiful mesh vertices.

See this answer https://blender.stackexchange.com/a/175503/15543  The modifier for this case is shrinkwrap.  The cubes are parented to 3 vertices modified "foot" object.