In what I'd hoped to be a prelude to implementing DM-15749, I recently took a shot at removing pex_policy from the stack (because its extensive usage of PropertySet is making it hard to make changes to PropertySet).
That didn't work out as well as I'd hoped, but I did make a lot of progress that I'd like to merge, which you can see directly on
DM-15767. The changes include:
- Making PropertySet not inherit from Persistable.
- Removing nearly all C++ from daf_persistence (which was most of the usage of pex_policy).
- Removing support for pex_policy in obs mapper policy files; in addition to obs_base, this required changing obs_ctio0m9. All other active obs packages already use YAML.
- Removing usage of pex_policy to initialize afw.image.Filter objects. This was only used in rather stale test code (in afw, coadd_utils, coadd_chisquared), which has now been updated to use afw.image.utils.defineFilter.
For the curious (or ambitious), the reason this effort stalled there is that ctrl_orca and ctrl_execute still use pex_policy extensively, and I know next to nothing about those packages. There are also still some instances of pex_policy usage in (at least) meas_algorithms and ip_diffim; I believe those are fairly straightforward cases where PropertySet or a C++ "Control struct" could be used instead.