Previously, dict and list types were contained within strings in
sceptre.stack.Stack.__repr__(). This commit removes the strings so that
a stack.__repr__() can be used to create a stack using eval().
In order to properly compare stacks a custom `__eq__` and therefore
`__hash__` implementations were added to Stack. Adding a correct `__eq__`
method to Stack allowed testing of Stack objects that were created from
`eval()` of the stack `__repr__`.
Sceptre is only tested against Python 2.7 and 3.6. Removing Python
2.6 from PyPi Classifiers for this reason. Also, the `importlib`
package is used and was only (partially) added in Python 2.7.
Updates the StackOutputResolver class to add implicit dependencies in
the way that v2 requires them to be added. Also fixes a bug where by
stacks directly under `config/` were prepended with a "/" and thus result
in a dependency key error.
In v1 stack_output resolver could only reference outputs from Stacks
within the same environment. In v2 stack_output can reference outputs
from any Stack in the Sceptre project.
In v1 `environment_path` was accessible as a list in templates,
split by the path separator.
In v2 the `environment_path` is known as the `command_path`. This
commit adds support for accessing the `command_path` back in to
Sceptre. For example, the user can now access parts of the
`command_path` in templates like {{ command_path.0 }}.
There was a divergence between the available attributes of resolvers and
what was documented when developing v1 -> v2. This commit updates the
Sceptre website documentation so that it reflects the available
attributes in v2.