runway.sources.source module

Abstract parent class for a ‘Source’ type object.

Allows us to specify specific remote sourced resources for out application (Git, S3, ect.)

class runway.sources.source.Source(*, cache_dir: Union[pathlib.Path, str] = PosixPath('/home/docs/checkouts/'), **_: Any)[source]

Bases: object

Abstract parent class for a ‘Source’ type object.

The Source parent class allows us to specify remote resources for our application via services such as Git or S3. A cache directory, as part of object’s configuration, is automatically created by default: ./.runway/cache. This folder can be overridden by specifying the cache_dir property in the configuration passed.

Every Source type object is expected to have a fetch method which will return the folder path at where the module requested resides.



cache_dir – The directory where the given remote resource should be cached.


Retrieve remote source. To be implemented in each subclass.

static sanitize_directory_path(uri: str)str[source]

Sanitize a Source directory path string.


uri – The uniform resource identifier when targetting a remote resource.