Commit Graph
53 Commits
Author SHA1 Message Date
Mike Auty fcd77b4c5f Update the documentation to support the wrapper with autodoc-typehints. 2019-01-21 22:10:18 +00:00
Mike Auty c64ed6a8dd Remove validity checking in favour of static-type checking.
This removes the assertions that checked plugin devs didn't do anything
overly bad in favour of using mypy to ensure appropriate type-checking.

It also moves the ProgressCallback typing information to constants in
order to avoid circular imports (since constants doesn't import
anything).
2019-01-20 02:35:49 +00:00
Mike Auty 67c9c7e097 Add in fix for absolute symbol offsets within modules. 2018-12-20 15:46:42 +00:00
Mike Auty fdc6efc4ad Add in the LICENSE and the README. 2018-12-19 23:55:03 +00:00
Mike Auty b61ac3bd47 Many more typing fixes. 2018-12-17 01:17:06 +00:00
Mike Auty 19572b6e1e Reformat all python files using yapf with custom volatility style. 2018-12-16 16:50:17 +00:00
Mike Auty 29d41470a4 Mass reformat of typing imports
Relented on the strict import of direct objects/classes for the typing
module only.  Typing module components can be directly imported because
it makes the code really painful to read and write otherwise.

This is still in-line with the python style guide adopted from Google at
http://google.github.io/styleguide/pyguide.html section 2.2.
2018-12-16 13:04:22 +00:00
Mike Auty d829028a36 Apply various type annotation/bug fixes. 2018-10-05 00:16:42 +01:00
Mike Auty 90d13be9a9 Ensure we pass the native_layer_name whenever constructing a subobject. 2018-09-16 15:59:30 +01:00
Mike Auty 218567c228 Allow Context.module to create a SizedModule if a size is provided. 2018-08-09 14:53:21 +01:00
Mike Auty 0a55a7c3f2 Introduced SizedModules to simplify when we just don't care about the size. 2018-08-09 14:42:18 +01:00
Mike Auty 0f08432aa5 Refactor Symbol interface to SymbolInterface. 2018-08-09 14:28:08 +01:00
Mike Auty 366269deb2 Refactor Module in interfaces to ModuleInterface. 2018-08-09 13:55:16 +01:00
Mike Auty 9e4875009d Move the horrendously slow no-module-size calculation to an on-demand calculation. 2018-08-09 13:39:07 +01:00
Mike Auty b1d46f843b Convert documentation to napoleon/Google format docstrings. 2018-08-05 15:52:12 +01:00
Mike Auty 79d2bab44d A few additional typing fixes. 2018-07-22 13:29:43 +01:00
Mike Auty 5c41e05876 Improve Module construction.
The hash/size determination takes time, so make the hash generated on
use (so far, only on dedupe) and cache it, since it shouldn't change.

We also cache the Module construction, so that if it's done in a loop
(like pslist), it won't keep recaculating for the same module.
2018-07-18 21:46:56 +01:00
Mike Auty ce05510413 Additional fixes for module collections. 2018-07-18 14:35:54 +01:00
Mike Auty 91e94440fe Add in hashing for module differentiation and additional collection features. 2018-07-18 00:42:48 +01:00
Mike Auty 5fbf923186 Fix documentation and try to guess the size where possible. 2018-07-17 21:15:09 +01:00
Mike Auty 8fd1196de7 Fix minor typo. 2018-06-25 00:22:00 +01:00
Mike Auty 9c06c25fae Add in support for module sizes. 2018-06-25 00:16:17 +01:00
Mike Auty c012842bd6 Refactor the name to be more accurate. 2018-06-21 00:27:38 +01:00
Mike Auty aedcf40fc2 Add support for separate symbol_tables and name in Modules. 2018-06-21 00:25:55 +01:00
Mike Auty 113c23a66d Last of the typing fix-ups. 2018-06-04 23:55:38 +01:00
Mike Auty 7a52ac9deb Fix a large number of typing issues.
There are several instances where mypy didn't detect

if blah is not None:
    blah = thing

and so were rewritten as:

blah = blah or thing
2018-06-04 01:25:02 +01:00
Mike Auty f23c4b51e4 Add in ModuleCollections for identifying symbols. 2018-05-07 00:05:01 +01:00
Mike Auty ac12098317 Add type-annotations for reamining layer files. 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 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 d7d13eb19c Add type annotations to most of the automagic files. 2017-12-13 20:48:52 +00:00
Mike Auty df527d2f00 Convert from abstractproperty which was deprecated in python-3.3. 2017-06-20 15:14:13 +01:00
Mike Auty 60ded760b6 Add in a first draft of a Module and context.module call. 2017-04-21 21:50:26 +01:00
Mike Auty 8b5ed7ea88 Improve the context documentation. 2016-12-30 02:19:44 +00:00
Mike Auty 16a8fcc6c7 Add in some context documentation. 2016-12-29 00:52:59 +00: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 33ab4c9109 Remove ConfigurationModifiers for now, the idea might return later, but for now it's out. 2016-01-13 00:24:00 +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 9e801c428b Rename ContextModifier.__call__ to ContextModifier.modify_context. 2015-10-11 18:19:45 +01:00
Mike Auty 813750c81e Add validation and basic lint on the CLI. 2015-09-24 15:06:04 +01:00
Mike Auty 4157c1c493 Refine the config system, realize that ContextFactories are in fact LayerFactories? 2015-04-10 17:38:56 -05:00
Mike Auty a85bcb9e58 Rework config system yet again, and start filling in some of the requirements. 2015-04-09 15:56:57 -05:00
Mike Auty 3d00956951 Refactor some names and consider reworking the config system *again*. 2015-04-08 18:13:06 -05:00
Mike Auty 3a28d7ae41 Refactor the context work, to use composable objects rather than inheritable classes. 2015-01-19 23:57:49 +00:00
Mike Auty f04122f640 Add in initial implementation of ContextFactories as classes. This is probably not the right way to do things, so I'll be trying out making them as objects with a function chain for applying modifications in a little while. 2015-01-16 11:29:12 +00:00
Mike Auty 246974de36 First draft of a ContextBuilding system. 2015-01-09 01:55:32 +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 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