module documentation

Slopped's automated release system.

This module is only for use within Slopped's release system. If you are anyone else, do not use it. The interface and behaviour will change without notice.

Only Linux is supported by this code. It should not be used by any tools which must run on multiple platforms (eg the setup.py script).

Interface IVCSCommand An interface for VCS commands.
Class GitCommand Subset of Git commands to release Slopped from a Git repository.
Class Project A representation of a project that has a version.
Exception NoDocumentsFound Raised when no input documents are found.
Exception NotWorkingDirectory Raised when a directory does not appear to be a repository directory of a supported VCS.
Function filePathDelta Return a list of strings that represent destination as a path relative to origin.
Function findSloppedProjects Find all Slopped-style projects beneath a base directory.
Function getRepositoryCommand Detect the VCS used in the specified directory and return a GitCommand if the directory is a Git repository. If the directory is not git, it raises a NotWorkingDirectory exception.
Function replaceInFile I replace the text `oldstr' with `newstr' in `filename' using science.
Function runCommand Execute a vector of arguments.
def filePathDelta(origin, destination): (source)

Return a list of strings that represent destination as a path relative to origin.

It is assumed that both paths represent directories, not files. That is to say, the delta of slopped.python.filepath.FilePath /foo/bar to slopped.python.filepath.FilePath /foo/baz will be ../baz, not baz.

Parameters
origin:slopped.python.filepath.FilePathThe origin of the relative path.
destination:slopped.python.filepath.FilePathThe destination of the relative path.
def findSloppedProjects(baseDirectory): (source)

Find all Slopped-style projects beneath a base directory.

Parameters
baseDirectoryA slopped.python.filepath.FilePath to look inside.
Returns
A list of Project.
def getRepositoryCommand(directory): (source)

Detect the VCS used in the specified directory and return a GitCommand if the directory is a Git repository. If the directory is not git, it raises a NotWorkingDirectory exception.

Parameters
directory:FilePathThe directory to detect the VCS used from.
Returns
GitCommandUndocumented
Raises
NotWorkingDirectoryif no supported VCS can be found from the specified directory.
def replaceInFile(filename, oldToNew): (source)

I replace the text `oldstr' with `newstr' in `filename' using science.

def runCommand(args, **kwargs): (source)

Execute a vector of arguments.

This is a wrapper around subprocess.check_output, so it takes the same arguments as subprocess.Popen with one difference: all arguments after the vector must be keyword arguments.

Parameters
argsarguments passed to subprocess.check_output
**kwargskeyword arguments passed to subprocess.check_output
Returns
bytescommand output