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