- importer/exporter sidecar expansion (boring stuff):
- split the importer/exporter objects into separate importers and exporters. existing router objects will update and split their internal objects safely
- all objects in this system can now describe themselves
- all import/export nodes now produce appropriate example texts for string processing and parsing UI test panels
- Filename Tagging Options objects no longer track neighbouring .txt file importing, and their UI removes it too. Import Folders will suck their old data on update and convert to metadata routers
- wrote a json sidecar importer that takes a parsing formula
- wrote a json sidecar exporter that takes a list of dictionary names to export to. it will edit an existing file
- wrote some ui panels to edit single file metadata migration routers
- wrote some ui panels to edit single file metadata migration importers
- wrote some ui panels to edit single file metadata migration exporters
- updated edit export folder panel to use the new UI. it was already using a full static version of the system behind the scenes; now this is exposed and editable
- updated the manual file export panel to use the new UI. it was using a half version of the system before--now the default options are updated to the new router object and you can create multiple exports
- updated import folders to use the new UI. the filename tagging options no longer handles .txt, it is now on a separate button on the import folder
- updated manual file imports to use the new UI. the 'add tags before import' window now has a 'sidecars' page tab, which lets you edit metadata routers. it updates a path preview list live with what it expects to parse
- a full suite of new unit tests now checks the router, the four import nodes, and the four export nodes thoroughly
- renamed ClientExportingMetadata to ClientMetadataMigration and moved to the metadata module. refactored the importers, exporters, and shared methods to their own files in the same module
- created a gui.metadata module for the new router and metadata import/export widgets and panels
- created a gui.exporting module for the existing export folder and manual export gui code
- reworked some of the core importer/exporter objects and inheritance in clientmetadatamigration
- updated the HDDImport object and creation pipeline to handle metadata routers (as piped from the new sidecars tab)
- when the hdd import or import folder is set to delete original files, now all defined sidecars are deleted along with the media file
- cleaned up a bunch of related metadata importer/exporter code
- cleaned import folder code
- cleaned hdd importer code
next week
I focused on sidecars this week almost exclusively, so I want to catch up on small work that piled up in the meantime. It would be nice to have some more Client API commands too, but we'll see. I can feel myself going down with something, so it might be a slim week.