MARBLExternalCodeBase

Attention

This project is still in an early phase of development.

The python API is not yet stable, and some aspects of the schema for the blueprint and workplan will likely evolve. Therefore whilst you are welcome to try out using the package, we cannot yet guarantee backwards compatibility. We expect to reach a more stable version in 2026.

MARBLExternalCodeBase#

class cstar.marbl.external_codebase.MARBLExternalCodeBase(source_repo: str | None = None, checkout_target: str | None = None)#

Bases: ExternalCodeBase

An implementation of the ExternalCodeBase class for the Marine Biogeochemistry Library.

This subclass sets unique values for ExternalCodeBase properties specific to MARBL, and overrides the get() method to compile MARBL.

Methods:#

get()

overrides ExternalCodeBase.get() to clone the MARBL repository, set environment, and compile library.

Methods

MARBLExternalCodeBase.configure()

Configure (set environment, compile, etc.) the external codebase on your local machine.

MARBLExternalCodeBase.get([target_dir])

Retrieve and stage this ExternalCodeBase

MARBLExternalCodeBase.setup([target_dir])

Retrieve and configure this codebase in a single call

MARBLExternalCodeBase.to_dict()

Return this ExternalCodeBase as a dictionary of kwargs to ExternalCodeBase.__init__

Attributes

MARBLExternalCodeBase.is_configured

Determine whether MARBL is configured locally.

MARBLExternalCodeBase.key

Return a string that uniquely identifies ExternalCodeBase subclasses.

MARBLExternalCodeBase.log

Return the logger instance for this class.

MARBLExternalCodeBase.root_env_var

Environment variable pointing to the location of the codebase when configured, e.g. MARBL_ROOT.

MARBLExternalCodeBase.source

The SourceData instance associated with this ExternalCodeBase

MARBLExternalCodeBase.working_copy

StagedRepository instance describing the local clone of this codebase (if it exists)