I don't know why anyone would want to continue using Python v2.7. It's old, it's clunky, it's also getting support dropped soon. v3.x is fantastic, and has a hell of a lot of very good improvements.
///
I'll see if I can attempt a good description of the framework I've come up with. My proof of concept is working extremely well so far.
///
Each object is instantiated by a class. There are two main types of objects; backgrounds, and "everything else".
When each object is created, it is created with parameters.
Starting with backgrounds, "ID, art, orientation, aspect".
All others are created with "ID, orientation, aspect, x, y, w, h, reference Res", and a slight variation on that for text.
The "other" objects are linked to the background they were set up with, via sharing the same ID, and also being passed the resolution they were originally set up in. (Now, the reason for passing the res, is so it can be floating point. I'd prefer to just grab the bg.art.texture_width etc, but it's been too unreliable if all numbers end up being ints. Besides, this way allows you to scale the BG up later if everything is retaining the same placements)
All objects are appended to a global object list.
Each "tick", the object list is iterated through, an the objects update function called, but only if it matches the current aspect + orientation, otherwise the obj.update is skipped and set invisible.
So using the module I'm developing to grab the aspect ratio, combined with orientation and auto object linking, I can easily create a layout that caters for the 6 different use cases.
I'll eventually chunk the object setups into separate config files, so that all that needs to be done is just design the layout graphics, stick the object types and coords/dimensions/links in a config, and let my scripts do the work.
This will be good mostly only for simple layouts that use existing stock AM features.