Coding 2024-07-17
Okay, it's a little late, but I can still swing this...
I'm looking over the code I have written so far, and trying to decide if I want to break it down. The obvious candidate for putting stuff in its own module is MatchDict. Like, all any of the rest of the code really needs to know is that it's a mapping with a custom constructor. The less obvious candidate is the stuff related to the Structure type. I feel I should hold off on that until I've worked out the proper custom constructor stuff for Patterns, and how that interacts with Discard. Lastly, there's this compatibility class I, um,
:)
Copied and pasted from StackOverflow
Right, that... It handles the metaclass differences between enums and abstract base classes.
Anyway, while these all seem like basically solid bets, I guess what it really makes sense to do is to sketch out the new functionality I want this code to have...
- Helper function to convert non-scalar structures to CompoundStructures.
- Context variables and context managers to allow temporarily registering additional converter functions.
- Elaborate __getitem__ logic for MatchDict.
- Shortcuts for creating Patterns.
- Other CompoundStructures.
Ultimately, the big thing I need for reorganizing is to make a constructor for Patterns, which should lock down all of the important relationships.
Okay, I've got that done. I think what I'd like to do is get tox passing, and then start splitting things up.
Anyway, sleep.
Good night.