Commit Graph
51 Commits
Author SHA1 Message Date
Mike Auty 555f587b15 Ensure the progress value for translation layer scanning is correct. 2016-12-08 12:08:42 +00:00
Mike Auty 797e51608e Move the masking code into the data layer. 2016-12-07 09:50:59 +00:00
Mike Auty 667014a1fd Attempt to standardize error message display. 2016-10-30 17:51:45 +00:00
Mike Auty 9959697ba5 Move where the rescursion into TranslationLayers happens. 2016-08-24 01:29:11 +01:00
Mike Auty f3bc1d30b3 Refactor the build_configuration in Layers so that even data layers get their requirements populated. 2016-08-24 01:14:34 +01:00
Mike Auty d3e63fbc1a Rename update_configuration to build_configuration and return a standalone config. 2016-08-22 02:18:23 +01:00
Mike Auty a1b9be74c7 Refactor several configuration/requirement structures to avoid import loops. 2016-08-22 02:15:54 +01:00
Mike Auty e54505701f Refactor Memory into an interface. 2016-08-21 21:26:21 +01:00
Mike Auty 386e8a34c7 Minor clean-up. 2016-08-21 21:23:29 +01:00
Mike Auty 0fd0fa0d55 Fix up the comment to match the acceptance of returning objects other than just offsets. 2016-08-17 20:05:23 +01:00
Mike Auty ca61cf10b9 Refactor the context back into the ConfigurableInterface.
This also adds support for manually constructed configurables to
populate the config tree in the current context.

I'm still toying around with this though, I need to figure out
what to do with optional values and think the whole thing through
to make sure it's worthwhile.
2016-08-14 21:28:43 +01:00
Mike Auty 9111f13a8a Get rid of obsolete fulfillment method (now handled by _construct_class in ConstructableRequirementInterface). 2016-08-14 11:44:18 +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 8db3adae05 Update the scanner interface to return all kind of objects.
This one's slightly contencious, in that scanner now don't all return a
uniform value, and therefore nothing can simply run through scanners.

Worst case scenario we make a separate stricter interface that says it
only returns offsets which will then allow things that need it to
dynamically find them, but it's probably too useful to be able to return
arbitrary objects of a type (as long as the objects returned are always
of that type).
2016-07-30 00:38:53 +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 8c6354e013 Document the ScannerInterface to make its use clearer. 2016-07-05 17:09:36 +01:00
Mike Auty 90fa5574b4 Add in the initial scanning framework. 2016-07-02 15:49:00 +01:00
Mike Auty c626bebb59 Convert mapping to a generator rather than a list. It must still return in sorted order. 2016-07-02 15:48:09 +01:00
Mike Auty fc34850345 Implement mapping with ignore_errors to get a (sorted) list of valid chunks in a layer. 2016-07-02 15:39:36 +01:00
Mike Auty 46190e37a9 Fix padding error in base read function. 2016-07-02 15:30:40 +01:00
Mike Auty 8c6e7918ee Fix up one missing exception change. 2016-07-02 14:53:41 +01:00
Mike Auty 5290baf73d Make InvalidAddress exceptions more useful. 2016-07-02 13:31:36 +01:00
Mike Auty 7a62e74996 Refactor the translation method out of the TranslationLayer, since it's not always applicable/useful. Contemplate a rename of the TranslationLayer now it doesn't actually translate. 5;) 2016-04-10 11:54:32 +01:00
Mike Auty a3d685c93a Ensure layers aren't provided more parameters than they need (in case the parameters were meant for a different potential provider. 2016-01-16 22:20:42 +00:00
Mike Auty 78cd3c84c0 Add in a NativeSymbolTable validator. 2016-01-16 21:38:00 +00:00
Mike Auty 00660f2a2b Refactor requirements to their own file. 2016-01-16 21:04:41 +00:00
Mike Auty 7db739279f Refactor configuration interfaces. 2016-01-16 13:24:25 +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 5697428770 Move accessing the configuration to an attribute of the configurable itself. 2016-01-13 00:41:17 +00:00
Mike Auty bef0689982 Add in constraints for dependency solving. 2016-01-04 01:17:23 +00:00
Mike Auty ff1e326a9c Rip out layer factories, and replace them with a single dependency resolver. 2015-12-30 21:58:41 +00:00
Mike Auty bcbfee9016 Refactor the validity function names to make it easier for autocomplete to find. 2015-12-29 22:24:32 +00:00
Mike Auty cf66d0b447 Start building a dependency resolver for translation layers. 2015-12-29 22:13:10 +00:00
Mike Auty d258c56991 Rerun pylint with pycharm-5 and fix pep8 issues as well. 2015-11-21 13:12:00 +00:00
Mike Auty a27a68de4b Add support for finalizing DataLayers once we're done using them. 2015-02-09 22:25:36 +00:00
Mike Auty 38a85cfc0b Fix up optimization to use byte strings. 2015-01-19 23:54:32 +00:00
Mike Auty a382916593 Add in reading optimization. 2015-01-19 11:02:01 +00:00
Mike Auty 119accb10c Add a length parameter to is_valid to check whether whole blocks are valid or not. 2015-01-05 18:40:33 +00:00
Mike Auty 811858aba8 Fix metaclass usage in python 3, and fill in some missing requirements. 2014-12-31 04:25:11 +00:00
Mike Auty 595ec89db1 Fix up some fairly critical core typos. 2014-12-30 03:50:22 +00:00
Mike Auty c1d054df10 Rename functions in validity to avoid future member name collisions. 2014-12-30 03:49:31 +00:00
Mike Auty a97bd19988 Reformat and optimize code, including trailing whitespace and end of file newline. 2014-06-10 15:40:50 +01:00
Mike Auty 3da8bdf28a Convert to using ABCMeta to get abstract class failures immediately rather than on method use. 2014-04-14 02:21:13 +01:00
Mike Auty 8e7ad364c7 Alter type/class checking structure so that it can be optimized out (either throws an exception or does nothing). 2014-04-08 00:59:08 +01:00
Mike Auty 89e7e6e7ff Tidy up several areas using PyCharm corrections. 2014-03-30 00:46:31 +00:00
Mike Auty 3709143c40 Clean-up a few files according to PyCharm's warning system. 2014-03-28 08:47:00 +00:00
Mike Auty 26caf31974 Revisit the decision to try out super, and decide to stick with specific inheritance to avoid **kwargs everywhere. 2013-05-08 19:17:21 +01:00
Mike Auty 9c2e486356 Refactor code locations, tidy up object initializers and add in File Layer. 2013-05-06 17:45:15 +01:00
Mike Auty e351958413 Move context, tidy up object model and add memory to test_rig. 2013-05-05 22:06:38 +01:00