Mike Auty
d3a226d7a8
Remove constraints as a thing, they'll need to come back, but in a different form.
2016-07-30 01:52:44 +01:00
Mike Auty
f8c3019165
Refactor requirements to expose the name ordering for quicker lookups.
2016-07-29 03:28:02 +01:00
Mike Auty
14c0cc262c
Significantly rework the configuration system.
...
So this is where I ripped out the guts of the dependency tree
and made it a little better defined in some ways, and delayed
populating it in others. The validate function signature has
changed and I'm still up in the air whether to validate with
True/False or throw/catch exceptions.
So now, configurables have a list of requirements, these are
then bundled into a single requirement and can be passed to
automagic. Automagic runs a set of things over the deptree
to help build/manage it. These run in order of priority.
The tree is still built from the top down, but now automagic
can build branch from the bottom up and try and splice them
into the tree where appropriate. Hopefully this will make it
easier to see follow.
2016-07-29 03:24:52 +01:00
Mike Auty
bb2dd859d5
Refactor the get_schema call to make more sense.
2016-07-29 02:56:20 +01:00
Mike Auty
4f17143fd3
Add in proper logging statements.
2016-07-29 02:35:07 +01:00
Mike Auty
0c56c494ae
Support saving/loading configs to a (JSON) string.
2016-07-02 12:34:09 +01:00
Mike Auty
afd28575ca
Re-check constraints when building the tree, in case they change. Also comment on why we don't use that when trimming the possibilties for windows automagic.
2016-02-25 22:03:49 +00:00
Mike Auty
0298df3569
Convert visitors to HierarchicalVisitors, keeping a stack of children's results for the dependency resolver.
2016-02-22 01:05:16 +00:00
Mike Auty
ba9eb0716a
Make output on requirement nodes a little more readable.
2016-02-22 01:03:41 +00:00
Mike Auty
a123572701
Add in debugging tools for the dependency tree.
2016-02-21 01:24:34 +00:00
Mike Auty
665ba8946b
Fix a logic error in the resolver that meant it might not visit every node.
2016-02-21 01:19:42 +00:00
Mike Auty
c6a3c2d6b1
Add in the automagic and allow mid-deptree resolution (without trying to re-fulfill already populated requirements).
2016-02-21 00:42:04 +00:00
Mike Auty
9d7e777c28
Fix up the validity class and enable short_circuiting.
2016-02-21 00:17:44 +00:00
Mike Auty
01ac22bac2
Ensure that the success or failure does not affect the ability for a visitor to change the shortcircuiting.
2016-02-20 23:35:16 +00:00
Mike Auty
a9ff081da5
Fix a few bugs and re-add a visitor pattern for traversing the tree.
2016-02-20 23:01:41 +00:00
Mike Auty
71b540f6db
Draft up a system to tag the configuration tree with useful information based on the context so far.
2016-02-20 21:36:12 +00:00
Mike Auty
1e8c55bfdd
Remove all the visitor pattern stuff, that's likely to bloat rather than help.
2016-02-20 21:35:31 +00:00
Mike Auty
ba2083fc7c
Refactor the RequirementTreeNode to put it in the interfaces file.
2016-02-20 21:35:05 +00:00
Mike Auty
da7774ee92
Refactor and add in a node type for multiple requirements. Lays the groundwork for the hierarchical visitor pattern.
2016-02-20 20:19:36 +00:00
Mike Auty
03cb131260
Add a priority ordering for testing layers (high priority trumps lower priority).
2016-01-21 00:06:39 +01:00
Mike Auty
139a6b610e
Add in an appropriate requirement for BufferLayers.
2016-01-16 22:20:10 +00:00
Mike Auty
590304ed1f
Improve debugging in the dependency resolver.
2016-01-16 22:00:16 +00:00
Mike Auty
78cd3c84c0
Add in a NativeSymbolTable validator.
2016-01-16 21:38:00 +00:00
Mike Auty
84815d204e
Refactor and clarify exactly what the dependency resolver's doing.
...
Also includes requirements and a provider to support adding the
symbol spaces required for XP SP2.
2016-01-16 21:05:37 +00:00
Mike Auty
00660f2a2b
Refactor requirements to their own file.
2016-01-16 21:04:41 +00:00
Mike Auty
a8d6fd5647
Refactor windows code to windows basic to avoid import loops.
2016-01-16 20:09:18 +00:00
Mike Auty
7db739279f
Refactor configuration interfaces.
2016-01-16 13:24:25 +00:00
Mike Auty
dc066d3d29
Add in validate function for symbol requirements.
2016-01-15 02:10:50 +00:00
Mike Auty
8e1602c02e
Refactor constrained to constraint.
2016-01-15 01:53:08 +00:00
Mike Auty
cc2770e88c
Make build_caches private.
2016-01-15 01:51:59 +00:00
Mike Auty
21cdc08092
Remove the last traces of metadata.
2016-01-15 01:51:17 +00:00
Mike Auty
b36d84ab0d
Move metadata to providers variable, and genericize the rudimentary resolver.
2016-01-15 01:50:02 +00:00
Mike Auty
3a8decd57c
Add in the interfaces for constraints/providers.
2016-01-15 01:49:18 +00:00
Mike Auty
1c2cb77ea3
Refactor the DataLayerDepResolver into just a generic DepResolver.
2016-01-15 01:47:58 +00:00
Mike Auty
1e48527096
Refactor Leaf/Node structures.
2016-01-13 00:50:51 +00:00
Mike Auty
603769cd3d
Tidy up useful debugging output.
2016-01-13 00:49:12 +00:00
Mike Auty
ffcacaec7d
Refactor SchemaNodes into RequirementInterface.
2016-01-13 00:48:54 +00:00
Mike Auty
5697428770
Move accessing the configuration to an attribute of the configurable itself.
2016-01-13 00:41:17 +00:00
Mike Auty
55a93073eb
Use the data level to produce the class initialization variables.
2016-01-13 00:11:30 +00:00
Mike Auty
415a0948a0
Rename the SCHEMA_NAME_DIVIDER, and ensure all paths are flat strings.
2016-01-12 23:44:55 +00:00
Mike Auty
629dfe2653
Remove paths from the DepTree structures, since we don't actually use them (save for debugging) and we're trying to minimize the use of the separator constant.
2016-01-12 23:20:53 +00:00
Mike Auty
56710a3483
Fix up a small set logic issue.
2016-01-12 23:16:46 +00:00
Mike Auty
cb3f42f0e9
Rework the CLI a little to actually call the plugin, but the config system needs improving/fixing/rewriting. 5:S
2016-01-11 00:18:16 +00:00
Mike Auty
321064f387
Improve documentation.
2016-01-11 00:09:04 +00:00
Mike Auty
62eff8242d
Include an initial version of the dependency resolver.
2016-01-11 00:03:54 +00:00
Mike Auty
3e9ae60d15
Remove the no-longer needed layer requirements.
2016-01-11 00:01:26 +00:00
Mike Auty
3bf336df41
Rework the dependency section and contemplate how to thread it all together a little more.
2016-01-10 16:29:47 +00:00
Mike Auty
82a145200f
Add in the next tasks for the dep resolver.
2016-01-10 12:36:28 +00:00
Mike Auty
f49f047e55
Clear up the dependency resolver.
2016-01-05 23:26:20 +00:00
Mike Auty
b2be217a13
Add in an initial draft of the dependency resolver
...
Some gotchas:
* Classes can't update attributes that they inherit, because the
inheritance happens after class construction
* The dep resolver can go in circle if the constraints in a layer are
too permissive
2016-01-04 01:17:51 +00:00