Main approach and ideas #3
thorwhalen
started this conversation in
Ideas
Replies: 1 comment
-
|
The config The word
The proposed design has been (for awhile) quite straightforward: Interface with configs through a mapping. Encapsulate
Depend on the mapping interface to build UIs (GUI, CLI, http services, python objects) to view and edit configs. I'm accumulating the encapsulation tools in We can discuss if it makes sense to also put the UI dispatching tools there, or rather have that stuff as an (important) section of UI dispatching packages (e.g. (Opened a private discussion about this here) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
The idea here is to be able to deal with configuration problems simply and as separated as possible from other concerns (such as formats, file location and type, etc.). We do so by using, when ever we can, builtin interfaces such as
mappingsandsequences.Consider past situations where you'd want to edit your
ci.ymlor.gitignore, consider how you'd automate this edition, and consider how you'd do it if you were dealing with a simple list (of lines of.gitignore) ordict(note that the values could be nested; could be dicts or lists themselves).
Working with lists or dicts is closer to the domain of "creating and maintaining" configurations, and allow more separation from the file implementation detail.
Relevant packages
Editing
dol, but specializes to configuration needs. This is probably where you want to put, or aggregate most of your work.dol(data-object-layer) for streams, i.e. iterator and iterables, but would be a sensible place to put sequence object layers.Creation
Take note of the (placeholder) project for general templated creation (think of f-strings, generalized to any python objects (so dicts, lists, etc.)): embody.
Also relevant:
knowproject, but will probably be moved tocreekormeshed.Pipe(function composition) andDAG.meshedis a well weathered project at this point.meshedandembody.For the specific case of creating templated projects there's cookiecutter.
Never used, but could use going forward.
Our package for that is wads.
Beta Was this translation helpful? Give feedback.
All reactions