Mike Auty
8b29b1f668
Rework the import ordering for requirements/configurations.
2018-02-12 00:51:05 +00:00
Mike Auty
994bd7c394
Fix up the finding of swap layers so swap actually works.
2018-02-11 21:41:39 +00:00
Mike Auty
b7c68f4e98
Rework LayerListRequirement from a ListRequirement to a MultiRequirement.
2018-02-11 18:35:18 +00:00
Mike Auty
e8212df604
Improve ListRequirement handling (default values, etc).
2018-02-11 02:16:53 +00:00
Mike Auty
cd8f6876ff
Add in LayerListRequirement type.
2018-02-10 22:42:59 +00:00
Mike Auty
7cb0330d04
Fix and correctly type ListRequirements.
2018-02-10 22:41:39 +00:00
Mike Auty
4e7fc078ee
Tidy up the requirements namespace.
2018-02-10 13:45:17 +00:00
Mike Auty
c203663f0b
Refactor requirements to support a list of swap layers.
2018-01-28 14:48:50 +00:00
Mike Auty
f40fae197d
Convert to python3.5 syntax (no local type-annotations).
2017-12-13 20:48:52 +00:00
Mike Auty
50b60c0df6
Add in more interfaces (and fix additional errors now that type information is available).
2017-12-13 20:48:52 +00:00
Mike Auty
2cc456e847
Finish off the automagic directory type annotations.
2017-12-13 20:48:52 +00:00
Mike Auty
d7d13eb19c
Add type annotations to most of the automagic files.
2017-12-13 20:48:52 +00:00
Mike Auty
ab5f4fa3ab
Refactor the List and Choice Requirements
...
These are required by the Automagic interface, and so to prevent
importing from outside the interfaces namespace, these two classes
were moved into interfaces.
2017-08-09 22:44:06 +01:00
Mike Auty
d32fc223e2
Fix up additional imports inconsistent with the coding style.
...
Note: also remove interfaces_configuration where ever possible
(this is not possible in the interfaces directory itself
because it would cause an import loop).
2017-08-09 22:32:44 +01:00
Mike Auty
5e15d522bd
Remove automatic IDE-inserted attributions.
...
They weren't consistent and they show just remind me how slowly
I've been getting vol 3 written! 5:S
There's git commits to track all of that stuff if we need it.
2017-05-14 11:40:49 +01:00
Mike Auty
3a648d75b0
Don't double wrap unsatisifed requirements, each should return its full config path of the requirement checked.
2017-01-08 17:59:04 +00:00
Mike Auty
149e57afee
Change the requirement validation system to return all unsatisfied requirements, to provide more feedback.
2017-01-08 17:26:09 +00:00
Mike Auty
b7b0d9720d
Make choices a public property.
2017-01-08 02:07:44 +00:00
Mike Auty
7b252d8b73
Refactor InstanceRequriement into the interfaces file.
...
This also fixes a minor bug where a property was used in the
initializer, which can't be read before initialization.
2017-01-08 02:04:55 +00:00
Mike Auty
0f811fbe34
Refactor the code to make it easier to find classes, and update documentation.
2016-12-30 02:13:23 +00:00
Mike Auty
5fe078e487
Adapt Automagic to have requirements, and convert the Stacker's single_location parameter to make use of it.
2016-12-29 15:21:39 +00:00
Mike Auty
7f0fb89da5
We don't need to check the element's type twice.
2016-12-29 15:20:44 +00:00
Mike Auty
88e9786967
Improve the requirements documentation.
2016-12-28 22:33:17 +00:00
Mike Auty
698d1c2b4a
Improve the granularity of logging.
2016-12-15 01:38:24 +00:00
Mike Auty
667014a1fd
Attempt to standardize error message display.
2016-10-30 17:51:45 +00:00
Mike Auty
a1b9be74c7
Refactor several configuration/requirement structures to avoid import loops.
2016-08-22 02:15:54 +01:00
Mike Auty
c5139ba568
Stop exposing the config_path for now, and fix the version that's passed in the construction phase.
2016-08-22 00:36:58 +01:00
Mike Auty
05d3da602f
Remove splice as too dangerous (and hopefully unnecessary).
2016-08-22 00:05:05 +01:00
Mike Auty
db21d4628c
Rework importing of interfaces, a little more verbose in the code, but a little less complex to import and name.
2016-08-16 10:54:57 +01:00
Mike Auty
ce16d60eaf
Add a warning about the dangers of splicing.
2016-08-14 21:27:13 +01:00
Mike Auty
e02feed16e
Python 3 has a sane super() implementation (no arguments), so convert to using that.
2016-08-14 00:55:02 +01:00
Mike Auty
523e159047
Add in convenience functions for working with the configuration and context.
2016-08-14 00:32:22 +01:00
Mike Auty
b92ccd771f
Fix up the DTB finder code and stick it all together.
2016-07-30 02:35:40 +01:00
Mike Auty
43aba96e3f
Minor pylint (alphabetical imports) and refactoring the construct class to work for symbols.
2016-07-30 01:58:29 +01:00
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