in sagemaker_run_notebook/cli.py [0:0]
def local_notebook(args):
params = process_params(args.p)
notebook_dir = os.path.dirname(args.notebook)
notebook = os.path.basename(args.notebook)
nb_name, nb_ext = os.path.splitext(notebook)
timestamp = time.strftime("%Y-%m-%d-%H-%M-%S", time.gmtime())
result = "{}-{}{}".format(nb_name, timestamp, nb_ext)
session = boto3.session.Session()
region = session.region_name
account = session.client("sts").get_caller_identity()["Account"]
image = args.image
if not image:
image = "notebook-runner"
if "/" not in image:
image = f"{account}.dkr.ecr.{region}.amazonaws.com/{image}"
if ":" not in image:
image = image + ":latest"
base_cmd = ["docker", "run", "--rm", "-td" if args.no_wait else "-ti"]
mnts = [
"-v",
os.path.abspath(notebook_dir) + ":/opt/ml/processing/input",
"-v",
os.path.abspath(args.output_dir) + ":/opt/ml/processing/output",
]
env = [
"-e",
f"PAPERMILL_INPUT=/opt/ml/processing/input/{notebook}",
"-e",
f"PAPERMILL_OUTPUT=/opt/ml/processing/output/{result}",
"-e",
f"PAPERMILL_PARAMS={json.dumps(params)}",
"-e",
f"PAPERMILL_NOTEBOOK_NAME={notebook}",
"-e",
f"AWS_DEFAULT_REGION={region}",
]
cmd = [*base_cmd, *mnts, *env, image, "run_notebook"]
p = subprocess.run(cmd)
print(f"Run finished with status {p.returncode}")