Add package dependencies for printing and testing

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add containers for Python modules and packages

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add loader classes that use new containers

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Change ValueError to return None for Package.get()

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add basic interfaces for code optimizers

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add first draft of new style constant optimizer

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Remove old style visitor modules

These will be replaced with new style optimizer modules.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Change common cli module to use new interfaces

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Change scripts to use new interfaces

Also removed the lint script. This will be added again later when
it is better supported.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add support for constant tuple-style assignments

Also fixes bug related to inlining list/tuple values in strange ways.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Fix exception caused by not passing destination

The compile CLI script would fail if the optional destination param
was not given. It turned out the default None value was passed down
to the other functions rather than the constructed path.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Fix output location for compiled .pyc files

When compiling packages in place the .pyc files were getting dropped
in a subdirectory of the target. Now they drop correctly in place as
though the normal python compile process created them.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Fix ConstantCheck to not return on 0 assignments

The check would return True if the variable had less than one
valid assignement recorded. The correct behaviour is to only
return true when there is exactly one valid assignment.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Remove old loader module

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Remove lint script from the setup.py

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Remove unused imports

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add plugin support for optimizers

This should make it possible to develop additional optimizers
as third party extensions rather than always requiring that
new optimizers must be merged into the project.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Remove old samples

These will be added back once better support for those optimizers
is complete.

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Change name of arg register function to 'register'

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>
Add support for checking AugAssign nodes

Signed-off-by: Kevin Conway <kevinjacobconway@gmail.com>