| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Handle overlaps a bit more violently but report about it.
|
| |
|
| |
|
|
|
|
| |
Turns out every desired output of this is ordered at the moment.
|
|
|
|
|
| |
Now by default strips away provenance but also
optionally sorts it into a recursively ordered thingy.
|
|
|
|
|
|
| |
This sorts dictionaries in the input recursively so that
elements dont have to care too much about how they return
stuff from plugin.get_unique_key()
|
|
|
|
| |
These are all now handled by the Plugin class
|
| |
|
| |
|
|
|
|
|
|
| |
Used to create mirror directories for sources, these use fully
qualified urls because a user may have multiple projects and
we want to be damn sure they dont overlap.
|
|
|
|
| |
Since python 3.3 IOError (among a few others) are just aliases for OSError.
|
|
|
|
|
| |
This is useful for plugins to assert presence of host tools
so it should be publicly available
|
|
|
|
|
|
|
|
| |
o list_relative_paths() reports a sorted list of relative filenames
o safe_copy() copy a file, unlinking the destination if it exists
o safe_link() tries to create a hardlink but falls back to a copy
o copy_files() copies files from one directory to another
o link_files() links files from one directory to another, or falls back to copy
|
| |
|
|
|
|
|
| |
Needed by both Element and Source implementations, but let's
not give them the whole _yaml API.
|
|
|
|
|
|
|
| |
The _yaml module has everything we need for parsing and validating
loaded roundtrip yaml. This includes the dictionary compositing algorithm
and also some provenance tracking to tell whence a node, member or list
element was loaded from.
|
| |
|
|
|
|
| |
And renamed ContextError exception to a more general LoadError.
|
|
Utility box, now with method for recursively overriding dictionary values.
We use this to load user config overrides but will also be using
it for overriding defaults of elements from yaml
|