Commit Graph
52 Commits
Author SHA1 Message Date
Mike Auty efada8a15f Bring relative_child_offset typing in line with practice. 2018-03-23 16:04:03 +00:00
Mike Auty 942de5f166 Finish adding type-annotations thoughout the code. 2017-12-13 20:48:52 +00:00
Mike Auty f40fae197d Convert to python3.5 syntax (no local type-annotations). 2017-12-13 20:48:52 +00:00
Mike Auty 21b4506b7b Add in type-annotations for the remaining interfaces. 2017-12-13 20:48:52 +00:00
Mike Auty def6de51bd Add in the ability to get a symbol table from a specific object (often self.get_symbol_table). 2017-11-09 23:11:05 +00:00
Mike Auty 6523364c90 Add a validate method to all objects to allow for (optional) validation of data on construction. 2017-09-22 09:57:01 +01:00
Mike Auty cd2eaeab06 Rename the imported context interface to match other examples in the code. 2017-01-23 01:12:44 +00:00
Mike Auty 547a3d94bb Fix up the documentation and leave a note about cast accepting short type names. 2017-01-04 22:10:27 +00:00
Mike Auty e596c6a1b7 Further documentation updates. 2017-01-03 23:06:39 +00:00
Mike Auty a7ea6e2210 Improve the object/template documentation. 2017-01-01 01:43:08 +00:00
Mike Auty 8f6f5f6403 Update object interface documentation. 2016-12-30 02:36:06 +00:00
Mike Auty 433f47c458 Allow casting to inherit the symbol table of its parent. 2016-12-25 18:34:14 +00:00
Mike Auty e230bbf6a8 Ensure we don't ever get in a loop looking up ._vol (could happen when pickling/unpickling). 2016-12-25 00:02:11 +00:00
Mike Auty 2323e15ec3 Clarify in the documentation that these updates are transient. 2016-12-18 19:38:22 +00:00
Mike Auty 09ee0e6258 Fix fairly deep flaw where resolved templates could be modified by casting or creating an object. 2016-12-18 19:21:27 +00:00
Mike Auty 6b973f1538 Expose VolTemplateProxy.vol values in the Proxy (to allow for enumeration access in a template). 2016-12-18 02:19:46 +00:00
Mike Auty bd3762a81c Improve exception returns in TemplateProxy. 2016-12-18 01:52:06 +00:00
Mike Auty 2c60747355 Minor fix, small but might as well fix it. 2016-12-14 00:27:41 +00:00
Mike Auty 797e51608e Move the masking code into the data layer. 2016-12-07 09:50:59 +00:00
Mike Auty 6cb5d06d6d Ensure all offsets are normalized to fall within their layer's address range. 2016-12-07 00:07:57 +00:00
Mike Auty 667014a1fd Attempt to standardize error message display. 2016-10-30 17:51:45 +00:00
Mike Auty d1b58143fe Add in UnresolvedTemplate type.
This template type allows objects that have not been able to be resolved
to exist within the symbol system.  It emits a debug message on creation
so that intermediate format developers can identify potential issues,
but does not raise an exception so as to allow partial tables to be
used.

If the UnresolvedTemplate is called (to create an object) before the
symbol has been added to the symbolspace, it will fail with a
SymbolError (as thrown by the individual SymbolTable).  For this reason,
the class has been made private to the SymbolSpace class to prevent
unexpected use.
2016-10-30 16:54:12 +00: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 2d23c93def Completely refactor constants and structures to symbols and types. 2016-05-22 11:51:06 +01:00
Mike Auty 9c9183feb2 API change: Alter cast to accept object parameters rather than inheriting (which usually will be wrong). 2016-02-14 01:40:25 +00:00
Mike Auty df4a4d5e8d Remove abstract method from classmethods (since it won't error if the abstract method isn't implemented until instantiation. 2016-01-10 16:30:37 +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 d258c56991 Rerun pylint with pycharm-5 and fix pep8 issues as well. 2015-11-21 13:12:00 +00:00
Mike Auty cadb761f67 Fix documentation typo. 2015-01-05 16:01:14 +00:00
Mike Auty 49fa45cda1 Clean-up the namespace even more by putting the template proxy code into its own subclass. 2015-01-05 15:57:35 +00:00
Mike Auty 465bf03ad1 Fix casting. 2015-01-05 15:05:26 +00:00
Mike Auty 87967853f7 Convert volinfo namespace to vol namespace. 2015-01-05 15:04:40 +00:00
Mike Auty 0af0a5b21f Avoid built-in shadowing. 2015-01-04 21:16:54 +00:00
Mike Auty ea3ba27a04 Refactor template_* functions. 2015-01-04 20:52:34 +00:00
Mike Auty 95238f7f01 Eradicate **magic where possible and rename where appropriate. 2015-01-04 04:55:17 +00:00
Mike Auty e9e7f396ed Refactor ReadOnlyInformation to the more appropriate ReadOnlyMapping. 2015-01-04 04:54:02 +00:00
Mike Auty 8560aa8a55 Tidy up the Object calling interface. 2015-01-04 04:38:34 +00:00
Mike Auty 446536d789 Remove the concept of template_info and revert to structure_name alone. 2015-01-04 04:27:52 +00:00
Mike Auty 15b2f6f717 Initial introduction of ObjectInformation class. 2015-01-04 03:41:37 +00:00
Mike Auty 88afd32158 Create an initial divide between object_information and template_information. 2015-01-02 01:52:00 +00:00
Mike Auty 85f639fd83 Remove attempt at type checking through annotations. 2015-01-02 00:10:22 +00:00
Mike Auty 932662e453 Fix up refactoring of the get_structure method. 2014-12-31 21:04:39 +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 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 50e8f6a627 Add in PyCharm IDE project details, and improve the sphinx apidoc autogeneration of documentation. 2014-04-02 02:44:55 +01: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 5b23325447 Change symbol_names to structure_names. 2014-03-22 13:46:22 +00:00