zodb show: new subcommand to print an object state from its oid
While debugging the cause of ConflictError, for which the error is always something like:
ConflictError: database conflict error (oid 0x0144966f, class BTrees.OIBTree.OIBucket, serial this txn started with 0x03ff889405753100 2025-03-21 03:32:01.279167, serial currently committed 0x03ff8895bd7300ee 2025-03-21 03:33:44.402164)
seeing the content of the object on which there is a conflict ( 0x0144966f in that example) usually is enough to guess what happened. This new command helps for this use case.
Because loading the actual objects needs to be able to import the module, which can be complex, like in the case of ERP5 dynamic classes and also sometimes needs to have monkey patches applied before trying to load the state, like Products.ERP5Type.patches.DateTimePatch too be able to load a DateTime saved by ERP5, the approach here is to load dummy objects that are enough to print the state.