blue-sandbox 5.47.1__py3-none-any.whl → 5.87.1__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. blue_sandbox/.abcli/alias.sh +1 -1
  2. blue_sandbox/.abcli/install.sh +1 -6
  3. blue_sandbox/.abcli/microsoft_building_damage_assessment/ingest.sh +2 -4
  4. blue_sandbox/.abcli/microsoft_building_damage_assessment/install.sh +49 -0
  5. blue_sandbox/.abcli/microsoft_building_damage_assessment/label.sh +26 -0
  6. blue_sandbox/.abcli/microsoft_building_damage_assessment/tensorboard.sh +21 -0
  7. blue_sandbox/.abcli/microsoft_building_damage_assessment/train.sh +53 -0
  8. blue_sandbox/.abcli/tests/help.sh +7 -3
  9. blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_label.sh +12 -0
  10. blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_train.sh +20 -0
  11. blue_sandbox/README.py +1 -1
  12. blue_sandbox/__init__.py +1 -1
  13. blue_sandbox/config.env +1 -1
  14. blue_sandbox/env.py +4 -2
  15. blue_sandbox/microsoft_building_damage_assessment/README.py +24 -13
  16. blue_sandbox/microsoft_building_damage_assessment/__main__.py +37 -2
  17. blue_sandbox/microsoft_building_damage_assessment/ingest.py +15 -3
  18. blue_sandbox/microsoft_building_damage_assessment/label.py +38 -0
  19. blue_sandbox/microsoft_building_damage_assessment/sas_token.py +9 -0
  20. blue_sandbox/microsoft_building_damage_assessment/train.py +95 -0
  21. blue_sandbox/sample.env +1 -0
  22. {blue_sandbox-5.47.1.dist-info → blue_sandbox-5.87.1.dist-info}/METADATA +11 -4
  23. blue_sandbox-5.87.1.dist-info/RECORD +46 -0
  24. blue_sandbox-5.47.1.dist-info/RECORD +0 -37
  25. {blue_sandbox-5.47.1.dist-info → blue_sandbox-5.87.1.dist-info}/LICENSE +0 -0
  26. {blue_sandbox-5.47.1.dist-info → blue_sandbox-5.87.1.dist-info}/WHEEL +0 -0
  27. {blue_sandbox-5.47.1.dist-info → blue_sandbox-5.87.1.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,5 @@
1
1
  #! /usr/bin/env bash
2
2
 
3
- alias @damage="blue_sandbox_microsoft_building_damage_assessment"
3
+ alias @damages="blue_sandbox_microsoft_building_damage_assessment"
4
4
 
5
5
  alias @sandbox=blue_sandbox
@@ -1,12 +1,7 @@
1
1
  #! /usr/bin/env bash
2
2
 
3
3
  function abcli_install_blue_sandbox() {
4
- abcli_git_clone https://github.com/microsoft/building-damage-assessment.git
5
-
6
- [[ "$abcli_is_mac" == true ]] &&
7
- brew install wget
8
-
9
- return 0
4
+ abcli_log "✅"
10
5
  }
11
6
 
12
7
  abcli_install_module blue_sandbox 1.1.1
@@ -26,8 +26,8 @@ function blue_sandbox_microsoft_building_damage_assessment_ingest() {
26
26
  pushd $object_path >/dev/null
27
27
 
28
28
  # https://github.com/microsoft/building-damage-assessment/blob/main/SATELLITE_WORKFLOW.md#1-image-acquisition-and-label-generation
29
- mkdir -pv data/demo/raw/
30
- cd data/demo/raw/
29
+ mkdir -pv raw
30
+ cd raw
31
31
 
32
32
  if [[ "$do_download" == 1 ]]; then
33
33
  # TODO: use $event_name and $count (options +=)
@@ -57,8 +57,6 @@ function blue_sandbox_microsoft_building_damage_assessment_ingest() {
57
57
  rm -v maxar_lahaina_8_12_2023-visual.vrt
58
58
  fi
59
59
 
60
- cd ../../..
61
-
62
60
  popd >/dev/null
63
61
 
64
62
  abcli_eval dryrun=$do_dryrun \
@@ -0,0 +1,49 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_sandbox_microsoft_building_damage_assessment_install() {
4
+ local options=$1
5
+ local do_dryrun=$(abcli_option_int "$options" dryrun 0)
6
+ local recreate_env=$(abcli_option_int "$options" recreate_env 0)
7
+
8
+ if [[ -d "$abcli_path_git/building-damage-assessment" ]]; then
9
+ abcli_log "✅ building-damage-assessment"
10
+ else
11
+ abcli_git_clone https://github.com/microsoft/building-damage-assessment.git
12
+ [[ $? -ne 0 ]] && return 1
13
+ fi
14
+
15
+ [[ "$abcli_is_github_workflow" == true ]] &&
16
+ return 0
17
+
18
+ if [[ "$recreate_env" == 1 ]]; then
19
+ abcli_conda_rm name=bda
20
+ [[ $? -ne 0 ]] && return 1
21
+ fi
22
+
23
+ local exists=$(abcli_conda_exists name=bda)
24
+ if [[ "$exists" == 0 ]]; then
25
+ # https://github.com/microsoft/building-damage-assessment?tab=readme-ov-file#setup
26
+ conda env create \
27
+ -f $abcli_path_git/building-damage-assessment/environment.yml
28
+ [[ $? -ne 0 ]] && return 1
29
+ fi
30
+
31
+ conda activate bda
32
+ [[ $? -ne 0 ]] && return 1
33
+
34
+ pushd $abcli_path_git/blue-sandbox >/dev/null
35
+ pip3 install -e .
36
+ [[ $? -ne 0 ]] && return 1
37
+ popd >/dev/null
38
+
39
+ [[ "$abcli_is_mac" == true ]] &&
40
+ brew install wget
41
+
42
+ return 0
43
+ }
44
+
45
+ function abcli_install_microsoft_building_damage_assessment() {
46
+ blue_sandbox_microsoft_building_damage_assessment_install "$@"
47
+ }
48
+
49
+ abcli_install_module microsoft_building_damage_assessment 1.1.1
@@ -0,0 +1,26 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_sandbox_microsoft_building_damage_assessment_label() {
4
+ local options=$1
5
+ local do_dryrun=$(abcli_option_int "$options" dryrun 0)
6
+ local do_download=$(abcli_option_int "$options" download $(abcli_not $do_dryrun))
7
+ local do_upload=$(abcli_option_int "$options" upload $(abcli_not $do_dryrun))
8
+
9
+ local object_name=$(abcli_clarify_object $2 .)
10
+ [[ "$do_download" == 1 ]] &&
11
+ abcli_download - $object_name
12
+
13
+ abcli_log "labeling $object_name ..."
14
+
15
+ abcli_eval dryrun=$do_dryrun \
16
+ python3 -m blue_sandbox.microsoft_building_damage_assessment \
17
+ label \
18
+ --object_name $object_name \
19
+ "${@:3}"
20
+ local status="$?"
21
+
22
+ [[ "$do_upload" == 1 ]] &&
23
+ abcli_upload - $object_name
24
+
25
+ return $status
26
+ }
@@ -0,0 +1,21 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_sandbox_microsoft_building_damage_assessment_tensorboard() {
4
+ local options=$1
5
+ local do_dryrun=$(abcli_option_int "$options" dryrun 0)
6
+ local do_browse=$(abcli_option_int "$options" browse $(abcli_not $do_dryrun))
7
+ local do_download=$(abcli_option_int "$options" download $(abcli_not $do_dryrun))
8
+ local port=$(abcli_option "$options" port 8889)
9
+
10
+ local model_object_name=$(abcli_clarify_object $2 .)
11
+ [[ "$do_download" == 1 ]] &&
12
+ abcli_download - $model_object_name
13
+
14
+ [[ "$do_browse" == 1 ]] &&
15
+ abcli_browse http://localhost:$port/
16
+
17
+ abcli_eval ,$options \
18
+ tensorboard \
19
+ --logdir $ABCLI_OBJECT_ROOT/$model_object_name/logs/ \
20
+ --port $port
21
+ }
@@ -0,0 +1,53 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function blue_sandbox_microsoft_building_damage_assessment_train() {
4
+ local options=$1
5
+ local do_dryrun=$(abcli_option_int "$options" dryrun 0)
6
+ local do_download=$(abcli_option_int "$options" download $(abcli_not $do_dryrun))
7
+ local do_upload=$(abcli_option_int "$options" upload $(abcli_not $do_dryrun))
8
+
9
+ local dataset_object_name=$(abcli_clarify_object $2 .)
10
+ [[ "$do_download" == 1 ]] &&
11
+ abcli_download - $dataset_object_name
12
+
13
+ local model_object_name=$(abcli_clarify_object $3 $dataset_object_name-model-$(abcli_string_timestamp_short))
14
+
15
+ abcli_log "training $dataset_object_name -> $model_object_name ..."
16
+
17
+ conda activate bda
18
+ [[ $? -ne 0 ]] && return 1
19
+
20
+ abcli_eval dryrun=$do_dryrun \
21
+ python3 -m blue_sandbox.microsoft_building_damage_assessment \
22
+ train \
23
+ --dataset_object_name $dataset_object_name \
24
+ --model_object_name $model_object_name \
25
+ "${@:4}"
26
+ [[ $? -ne 0 ]] && return 1
27
+
28
+ abcli_eval dryrun=$do_dryrun,path=$abcli_path_git/building-damage-assessment \
29
+ python3 project_setup.py \
30
+ --skip_health_check \
31
+ --config $ABCLI_OBJECT_ROOT/$model_object_name/config.yml
32
+ [[ $? -ne 0 ]] && return 1
33
+
34
+ abcli_eval dryrun=$do_dryrun,path=$abcli_path_git/building-damage-assessment \
35
+ python3 create_masks.py \
36
+ --config $ABCLI_OBJECT_ROOT/$model_object_name/config.yml
37
+ [[ $? -ne 0 ]] && return 1
38
+
39
+ abcli_eval dryrun=$do_dryrun,path=$abcli_path_git/building-damage-assessment \
40
+ python3 fine_tune.py \
41
+ --config $ABCLI_OBJECT_ROOT/$model_object_name/config.yml
42
+ [[ $? -ne 0 ]] && return 1
43
+
44
+ abcli_eval dryrun=$do_dryrun,path=$abcli_path_git/building-damage-assessment \
45
+ python3 inference.py \
46
+ --config $ABCLI_OBJECT_ROOT/$model_object_name/config.yml
47
+ [[ $? -ne 0 ]] && return 1
48
+
49
+ [[ "$do_upload" == 1 ]] &&
50
+ abcli_upload - $model_object_name
51
+
52
+ return 0
53
+ }
@@ -7,9 +7,13 @@ function test_blue_sandbox_help() {
7
7
  for module in \
8
8
  "@sandbox" \
9
9
  \
10
- "@damage" \
11
- "@damage ingest" \
12
- "@damage ingest list" \
10
+ "@damages" \
11
+ "@damages ingest" \
12
+ "@damages ingest list" \
13
+ "@damages install" \
14
+ "@damages label" \
15
+ "@damages tensorboard" \
16
+ "@damages train" \
13
17
  \
14
18
  "blue_sandbox"; do
15
19
  abcli_eval ,$options \
@@ -0,0 +1,12 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function test_blue_sandbox_microsoft_building_damage_assessment_label() {
4
+ local options=$1
5
+
6
+ abcli_eval ,$options \
7
+ blue_sandbox_microsoft_building_damage_assessment \
8
+ label \
9
+ ~upload,$options \
10
+ $DAMAGES_TEST_DATASET_OBJECT_NAME \
11
+ "${@:2}"
12
+ }
@@ -0,0 +1,20 @@
1
+ #! /usr/bin/env bash
2
+
3
+ function test_blue_sandbox_microsoft_building_damage_assessment_train() {
4
+ local options=$1
5
+
6
+ abcli_log_warning "disabled."
7
+ return 0
8
+
9
+ abcli_eval ,$options \
10
+ blue_sandbox_microsoft_building_damage_assessment \
11
+ train \
12
+ ~upload,$options \
13
+ $DAMAGES_TEST_DATASET_OBJECT_NAME \
14
+ test_blue_sandbox_microsoft_building_damage_assessment_train-$(abcli_string_timestamp_short) \
15
+ --verbose 1 \
16
+ "${@:2}"
17
+
18
+ # ignore error - TODO: disable
19
+ return 0
20
+ }
blue_sandbox/README.py CHANGED
@@ -11,7 +11,7 @@ from blue_sandbox.microsoft_building_damage_assessment import (
11
11
  items = [
12
12
  "{}[`{}`]({}) [![image]({})]({}) {}".format(
13
13
  "🌐",
14
- "`@damage`",
14
+ "`@damages`",
15
15
  "https://github.com/kamangir/blue-sandbox/blob/main/blue_sandbox/microsoft_building_damage_assessment/README.md",
16
16
  "https://github.com/microsoft/building-damage-assessment/raw/main/figures/damage.png",
17
17
  "https://github.com/kamangir/blue-sandbox/blob/main/blue_sandbox/microsoft_building_damage_assessment/README.md",
blue_sandbox/__init__.py CHANGED
@@ -4,7 +4,7 @@ ICON = "🌀"
4
4
 
5
5
  DESCRIPTION = f"{ICON} A sandbox for ideas and experiments."
6
6
 
7
- VERSION = "5.47.1"
7
+ VERSION = "5.87.1"
8
8
 
9
9
  REPO_NAME = "blue-sandbox"
10
10
 
blue_sandbox/config.env CHANGED
@@ -1 +1 @@
1
- BLUE_PLUGIN_CONFIG=value
1
+ DAMAGES_TEST_DATASET_OBJECT_NAME=Maui-Hawaii-fires-Aug-23-ingest-2025-01-10-qqJqhm
blue_sandbox/env.py CHANGED
@@ -5,7 +5,9 @@ load_env(__name__)
5
5
  load_config(__name__)
6
6
 
7
7
 
8
- BLUE_PLUGIN_CONFIG = os.getenv(
9
- "BLUE_PLUGIN_CONFIG",
8
+ DAMAGES_TEST_DATASET_OBJECT_NAME = os.getenv(
9
+ "DAMAGES_TEST_DATASET_OBJECT_NAME",
10
10
  "",
11
11
  )
12
+
13
+ ENCODED_BLOB_SAS_TOKEN = os.getenv("ENCODED_BLOB_SAS_TOKEN", "")
@@ -1,11 +1,22 @@
1
1
  from typing import Dict
2
2
 
3
+ from blue_sandbox.env import DAMAGES_TEST_DATASET_OBJECT_NAME
4
+
3
5
  list_of_steps: Dict[str, Dict] = {
4
- "ingest": "Maui-Hawaii-fires-Aug-23-damage-2025-01-09-GgnjQC",
5
- "label": "",
6
- "train": "",
7
- "predict": "",
8
- "summarize": "",
6
+ "ingest": {
7
+ "object_name": DAMAGES_TEST_DATASET_OBJECT_NAME,
8
+ "image_name": "Maui-Hawaii-fires-Aug-23-damage-2025-01-09-GgnjQC",
9
+ },
10
+ "label": {
11
+ "object_name": "",
12
+ "image_name": DAMAGES_TEST_DATASET_OBJECT_NAME,
13
+ },
14
+ "train": {
15
+ "object_name": "",
16
+ "image_name": "Maui-Hawaii-fires-Aug-23-model-2025-01-10-NQb8IS",
17
+ },
18
+ "predict": {"object_name": "", "image_name": ""},
19
+ "summarize": {"object_name": "", "image_name": ""},
9
20
  }
10
21
 
11
22
  items = (
@@ -13,22 +24,22 @@ items = (
13
24
  + [
14
25
  (
15
26
  "[`{}`](https://kamangir-public.s3.ca-central-1.amazonaws.com/{}.tar.gz)".format(
16
- object_name,
17
- object_name,
27
+ step["object_name"],
28
+ step["image_name"],
18
29
  )
19
- if object_name
30
+ if step["object_name"]
20
31
  else ""
21
32
  )
22
- for object_name in list_of_steps.values()
33
+ for step in list_of_steps.values()
23
34
  ]
24
35
  + [
25
36
  (
26
- "[![image](https://github.com/kamangir/assets/blob/main/blue-sandbox/{}.png?raw=true)](#)".format(
27
- object_name,
37
+ "![image](https://github.com/kamangir/assets/blob/main/blue-sandbox/{}.png?raw=true)".format(
38
+ step["image_name"],
28
39
  )
29
- if object_name
40
+ if step["image_name"]
30
41
  else ""
31
42
  )
32
- for object_name in list_of_steps.values()
43
+ for step in list_of_steps.values()
33
44
  ]
34
45
  )
@@ -5,6 +5,12 @@ from blueness.argparse.generic import sys_exit
5
5
 
6
6
  from blue_sandbox import NAME
7
7
  from blue_sandbox.microsoft_building_damage_assessment.ingest import ingest
8
+ from blue_sandbox.microsoft_building_damage_assessment.label import label
9
+ from blue_sandbox.microsoft_building_damage_assessment.train import train
10
+ from blue_sandbox.microsoft_building_damage_assessment.sas_token import (
11
+ decode_token,
12
+ encode_token,
13
+ )
8
14
  from blue_sandbox.help.microsoft_building_damage_assessment import list_of_events
9
15
  from blue_sandbox.logger import logger
10
16
 
@@ -14,12 +20,20 @@ parser = argparse.ArgumentParser(NAME)
14
20
  parser.add_argument(
15
21
  "task",
16
22
  type=str,
17
- help="ingest",
23
+ help="decode_token | encode_token | ingest | label | train",
18
24
  )
19
25
  parser.add_argument(
20
26
  "--object_name",
21
27
  type=str,
22
28
  )
29
+ parser.add_argument(
30
+ "--dataset_object_name",
31
+ type=str,
32
+ )
33
+ parser.add_argument(
34
+ "--model_object_name",
35
+ type=str,
36
+ )
23
37
  parser.add_argument(
24
38
  "--event_name",
25
39
  type=str,
@@ -32,15 +46,36 @@ parser.add_argument(
32
46
  default=0,
33
47
  help="0|1",
34
48
  )
49
+ parser.add_argument(
50
+ "--token",
51
+ type=str,
52
+ )
35
53
  args = parser.parse_args()
36
54
 
37
55
  success = False
38
- if args.task == "ingest":
56
+ if args.task == "decode_token":
57
+ success = True
58
+ print(decode_token(args.token))
59
+ elif args.task == "encode_token":
60
+ success = True
61
+ print(encode_token(args.token))
62
+ elif args.task == "ingest":
39
63
  success = ingest(
40
64
  object_name=args.object_name,
41
65
  event_name=args.event_name,
42
66
  verbose=args.verbose == 1,
43
67
  )
68
+ elif args.task == "label":
69
+ success = label(
70
+ object_name=args.object_name,
71
+ verbose=args.verbose == 1,
72
+ )
73
+ elif args.task == "train":
74
+ success = train(
75
+ dataset_object_name=args.dataset_object_name,
76
+ model_object_name=args.model_object_name,
77
+ verbose=args.verbose == 1,
78
+ )
44
79
  else:
45
80
  success = None
46
81
 
@@ -1,5 +1,7 @@
1
1
  from blueness import module
2
2
 
3
+ from blue_objects import mlflow, metadata
4
+
3
5
  from blue_sandbox import NAME
4
6
  from blue_sandbox.logger import logger
5
7
 
@@ -14,6 +16,16 @@ def ingest(
14
16
  ) -> bool:
15
17
  logger.info(f"{NAME}.ingest({event_name}) -> {object_name}")
16
18
 
17
- logger.info("🪄")
18
-
19
- return True
19
+ return all(
20
+ [
21
+ mlflow.set_tags(
22
+ object_name,
23
+ {"event": event_name},
24
+ ),
25
+ metadata.post_to_object(
26
+ object_name,
27
+ "ingest",
28
+ {"event": event_name},
29
+ ),
30
+ ]
31
+ )
@@ -0,0 +1,38 @@
1
+ import os
2
+
3
+ from blueness import module
4
+ from blue_objects import metadata, file, objects
5
+ from blue_objects.env import abcli_path_git
6
+
7
+ from blue_sandbox import NAME
8
+ from blue_sandbox.logger import logger
9
+
10
+
11
+ NAME = module.name(__file__, NAME)
12
+
13
+
14
+ def label(
15
+ object_name: str,
16
+ verbose: bool = False,
17
+ ) -> bool:
18
+ logger.info(f"{NAME}.label: {object_name}")
19
+
20
+ geojson_filename = os.path.join(
21
+ abcli_path_git,
22
+ "building-damage-assessment/data/demo/labels/Maui_Wildfires_August_0.geojson",
23
+ )
24
+
25
+ if not file.copy(
26
+ geojson_filename,
27
+ objects.path_of(
28
+ filename="label.geojson",
29
+ object_name=object_name,
30
+ ),
31
+ ):
32
+ return False
33
+
34
+ return metadata.post_to_object(
35
+ object_name,
36
+ "label",
37
+ {"geojson": geojson_filename},
38
+ )
@@ -0,0 +1,9 @@
1
+ import base64
2
+
3
+
4
+ def encode_token(token: str) -> str:
5
+ return base64.b64encode(token.encode()).decode()
6
+
7
+
8
+ def decode_token(encoded_token: str) -> str:
9
+ return base64.b64decode(encoded_token.encode()).decode()
@@ -0,0 +1,95 @@
1
+ import os
2
+
3
+ from blueness import module
4
+ from blue_objects import mlflow, metadata, file, objects, path
5
+ from blue_objects.env import abcli_path_git
6
+
7
+ from blue_sandbox import NAME
8
+ from blue_sandbox.env import ENCODED_BLOB_SAS_TOKEN
9
+ from blue_sandbox.microsoft_building_damage_assessment.sas_token import decode_token
10
+ from blue_sandbox.logger import logger
11
+
12
+
13
+ NAME = module.name(__file__, NAME)
14
+
15
+
16
+ # ... copy `configs/example_config.yml` and fill the first three sections.
17
+ def train(
18
+ dataset_object_name: str,
19
+ model_object_name: str,
20
+ verbose: bool = False,
21
+ ) -> bool:
22
+ logger.info(f"{NAME}.train: {dataset_object_name} -> {model_object_name}")
23
+
24
+ config_filename = os.path.join(
25
+ abcli_path_git,
26
+ "building-damage-assessment/configs/example_config.yml",
27
+ )
28
+ success, config = file.load_yaml(config_filename)
29
+ if not success:
30
+ return False
31
+
32
+ config["experiment_dir"] = objects.object_path(model_object_name)
33
+ config["experiment_name"] = model_object_name
34
+
35
+ config["imagery"]["rgb_fn"] = config["imagery"]["raw_fn"] = objects.path_of(
36
+ filename="raw/maxar_lahaina_8_12_2023-visual.tif",
37
+ object_name=dataset_object_name,
38
+ )
39
+
40
+ config["inference"]["output_subdir"] = objects.path_of(
41
+ filename="outputs/",
42
+ object_name=model_object_name,
43
+ )
44
+ config["inference"]["checkpoint_fn"] = objects.path_of(
45
+ filename="checkpoints/last.ckpt",
46
+ object_name=model_object_name,
47
+ )
48
+
49
+ config["infrastructure"]["container_name"] = "sandbox"
50
+ config["infrastructure"][
51
+ "storage_account"
52
+ ] = "https://kamangir.blob.core.windows.net/"
53
+ config["infrastructure"]["sas_token"] = decode_token(ENCODED_BLOB_SAS_TOKEN)
54
+ config["infrastructure"]["relative_path"] = dataset_object_name
55
+
56
+ config["labels"]["fn"] = objects.path_of(
57
+ filename="label.geojson",
58
+ object_name=dataset_object_name,
59
+ )
60
+
61
+ config["training"]["log_dir"] = objects.path_of(
62
+ filename="logs/",
63
+ object_name=model_object_name,
64
+ )
65
+ config["training"]["checkpoint_subdir"] = objects.path_of(
66
+ filename="checkpoints/",
67
+ object_name=model_object_name,
68
+ )
69
+
70
+ if not file.save_yaml(
71
+ objects.path_of(
72
+ filename="config.yml",
73
+ object_name=model_object_name,
74
+ ),
75
+ config,
76
+ ):
77
+ return False
78
+
79
+ return all(
80
+ [
81
+ mlflow.set_tags(
82
+ model_object_name,
83
+ {
84
+ "dataset": dataset_object_name,
85
+ },
86
+ ),
87
+ metadata.post_to_object(
88
+ model_object_name,
89
+ "train",
90
+ {
91
+ "dataset": dataset_object_name,
92
+ },
93
+ ),
94
+ ]
95
+ )
blue_sandbox/sample.env CHANGED
@@ -0,0 +1 @@
1
+ ENCODED_BLOB_SAS_TOKEN=value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: blue_sandbox
3
- Version: 5.47.1
3
+ Version: 5.87.1
4
4
  Summary: 🌀 A sandbox for ideas and experiments.
5
5
  Home-page: https://github.com/kamangir/blue-sandbox
6
6
  Author: Arash Abadpour (Kamangir)
@@ -13,8 +13,12 @@ Classifier: Operating System :: OS Independent
13
13
  Description-Content-Type: text/markdown
14
14
  License-File: LICENSE
15
15
  Requires-Dist: blueness
16
- Requires-Dist: blue-options
17
16
  Requires-Dist: abcli
17
+ Requires-Dist: blue-options
18
+ Requires-Dist: blue_objects
19
+ Requires-Dist: blue_geo
20
+ Requires-Dist: blueflow
21
+ Requires-Dist: blue_plugin
18
22
  Requires-Dist: boto3
19
23
  Requires-Dist: geojson
20
24
  Requires-Dist: geopandas
@@ -27,6 +31,9 @@ Requires-Dist: pylint
27
31
  Requires-Dist: pytest
28
32
  Requires-Dist: python-dotenv[cli]
29
33
  Requires-Dist: tqdm
34
+ Requires-Dist: azure-storage-blob
35
+ Requires-Dist: fiona
36
+ Requires-Dist: tensorboard
30
37
  Dynamic: author
31
38
  Dynamic: author-email
32
39
  Dynamic: classifier
@@ -47,11 +54,11 @@ pip install blue-sandbox
47
54
 
48
55
  | | | |
49
56
  | --- | --- | --- |
50
- | 🌐[``@damage``](https://github.com/kamangir/blue-sandbox/blob/main/blue_sandbox/microsoft_building_damage_assessment/README.md) [![image](https://github.com/microsoft/building-damage-assessment/raw/main/figures/damage.png)](https://github.com/kamangir/blue-sandbox/blob/main/blue_sandbox/microsoft_building_damage_assessment/README.md) Satellite imagery damage assessment workflow | 🌀[`experiment 2`](#) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](#) description of experiment 2 ... | 🌀[`experiment 3`](#) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](#) description of experiment 3 ... |
57
+ | 🌐[``@damages``](https://github.com/kamangir/blue-sandbox/blob/main/blue_sandbox/microsoft_building_damage_assessment/README.md) [![image](https://github.com/microsoft/building-damage-assessment/raw/main/figures/damage.png)](https://github.com/kamangir/blue-sandbox/blob/main/blue_sandbox/microsoft_building_damage_assessment/README.md) Satellite imagery damage assessment workflow | 🌀[`experiment 2`](#) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](#) description of experiment 2 ... | 🌀[`experiment 3`](#) [![image](https://github.com/kamangir/assets/raw/main/blue-plugin/marquee.png?raw=true)](#) description of experiment 3 ... |
51
58
 
52
59
  ---
53
60
 
54
61
 
55
62
  [![pylint](https://github.com/kamangir/blue-sandbox/actions/workflows/pylint.yml/badge.svg)](https://github.com/kamangir/blue-sandbox/actions/workflows/pylint.yml) [![pytest](https://github.com/kamangir/blue-sandbox/actions/workflows/pytest.yml/badge.svg)](https://github.com/kamangir/blue-sandbox/actions/workflows/pytest.yml) [![bashtest](https://github.com/kamangir/blue-sandbox/actions/workflows/bashtest.yml/badge.svg)](https://github.com/kamangir/blue-sandbox/actions/workflows/bashtest.yml) [![PyPI version](https://img.shields.io/pypi/v/blue-sandbox.svg)](https://pypi.org/project/blue-sandbox/) [![PyPI - Downloads](https://img.shields.io/pypi/dd/blue-sandbox)](https://pypistats.org/packages/blue-sandbox)
56
63
 
57
- built by 🌀 [`blue_options-4.177.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_sandbox-5.47.1`](https://github.com/kamangir/blue-sandbox).
64
+ built by 🌀 [`blue_options-4.180.1`](https://github.com/kamangir/awesome-bash-cli), based on 🌀 [`blue_sandbox-5.87.1`](https://github.com/kamangir/blue-sandbox).
@@ -0,0 +1,46 @@
1
+ blue_sandbox/README.py,sha256=Q45yMxvgjPLPQAZCRzMQZx7Znxa0OAOaf3PZNvdaAyc,1563
2
+ blue_sandbox/__init__.py,sha256=EZzxJTfEvzoa0q1G0mM346fmyKOTcdzq4xXL-X5cBLI,322
3
+ blue_sandbox/__main__.py,sha256=aPRHSpGpk-bDbzhHpfLNsd3y1gGEHpnhoTF-RBweNwc,361
4
+ blue_sandbox/config.env,sha256=SHQeFdzivHKDimmTyHzVziCfAONN48DSDmc3WVG6gEw,82
5
+ blue_sandbox/env.py,sha256=dpRUbxT2vq-9s-G5MP3IlZBdC1hFvDb7mJxzU5lUd-Q,267
6
+ blue_sandbox/functions.py,sha256=U41kQFNPpfYV6KJpMnkqgqLkozqXiG4tgV6rj8IW1BU,7
7
+ blue_sandbox/host.py,sha256=uJpiM105rnm6ySF16zA7waWekGBdec-dlpoRRU_QqwU,210
8
+ blue_sandbox/logger.py,sha256=ZoFrTIfJJGNtZUm2d7lkQjdB2SPl_KBKDmHJOcIivPM,107
9
+ blue_sandbox/sample.env,sha256=ovfKDKAIeuqWBmMDKeAint_SKTnZuyDU1TCBZ-Y3Iqg,28
10
+ blue_sandbox/urls.py,sha256=tIZ36ONJEoUBM-tFhOpkVhLwb1OgLegUeEaBDqW4USM,24
11
+ blue_sandbox/.abcli/abcli.sh,sha256=xsJ4IzuQsvLZog6U8VTBFVXsEi6ADe13L8rn47XtlbU,196
12
+ blue_sandbox/.abcli/actions.sh,sha256=vImEUI105GRcxs2mAKGMqcvoErtmOPZZ-7dfSmUUxvE,230
13
+ blue_sandbox/.abcli/aka.sh,sha256=RHDU_JbEEL2B0vvvRJ3NVSsRSEjSu09jNY85n7DLe-k,21
14
+ blue_sandbox/.abcli/alias.sh,sha256=q8j-uG7c0ZLp5BZhBKTXyESjMa_kcEH5Mf8pX4EgC7A,118
15
+ blue_sandbox/.abcli/blue_sandbox.sh,sha256=PGRJOgNGlC3XL5cw4ecZH40LDuc_6NVazTKhCWtZ-3g,233
16
+ blue_sandbox/.abcli/browse.sh,sha256=f8qa4qDVts2Am6_ldDwNeJXzhBQTk9PUKl0-a9wW1ww,287
17
+ blue_sandbox/.abcli/install.sh,sha256=zvl0GsHBmfw62ORmkMlhug264N_Zr8nc3rlPGFoq7Mk,125
18
+ blue_sandbox/.abcli/microsoft_building_damage_assessment.sh,sha256=wIP7BvltFj3Gx5VmSgT6hY67K1BnubELef93HHwKOU0,470
19
+ blue_sandbox/.abcli/microsoft_building_damage_assessment/ingest.sh,sha256=w_EUK_i4iSBpSy22TeexfF9jEAqzNwZuvjhpRraGKhA,2662
20
+ blue_sandbox/.abcli/microsoft_building_damage_assessment/install.sh,sha256=UQTjsVf-GS_Q3bhTJzj6PMDZZzTNouMVh_3kEFSl5uo,1455
21
+ blue_sandbox/.abcli/microsoft_building_damage_assessment/label.sh,sha256=RROjENj93FhCBOkbe8K05e1fR5QNny0syobkX14rwho,795
22
+ blue_sandbox/.abcli/microsoft_building_damage_assessment/tensorboard.sh,sha256=BHdnOvorV9gjO1ET64tbLOqSGviNFR96S67XHmJz2hs,746
23
+ blue_sandbox/.abcli/microsoft_building_damage_assessment/train.sh,sha256=XyTTFB2AD7p8XT0x1vvQLwndyscGN23QEDA80wS3cjk,1970
24
+ blue_sandbox/.abcli/microsoft_building_damage_assessment/ingest/list.sh,sha256=9bEjpbwO7Heqd-E2RTM-ck4Q39Eqsv4ged6e0WmxmSs,452
25
+ blue_sandbox/.abcli/tests/README.sh,sha256=rmJM-BPnTcmpPbJ5GXsF8vd_a84JKryeKkZyVScUing,145
26
+ blue_sandbox/.abcli/tests/help.sh,sha256=QeHmHpFRye7Ht7fYLAzqBo8b9OTSLBR_0qn77qrvIQU,523
27
+ blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_ingest.sh,sha256=oUUF8Kuyohxiqxo9FLY9EO0qlgkagntgfuFda6niHeM,426
28
+ blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_ingest_list.sh,sha256=5P0H-FHV7YKt1fenXAs_0cSFhJYWZ9u3LzRpfSRSptw,577
29
+ blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_label.sh,sha256=Envac5i9eGa5usDCO8MYfGFfyAZAT-f0KrrsAkaR91U,311
30
+ blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_train.sh,sha256=0FlwyR1drn6wAKX9IHU_ma7WTmH1Iv8DoTNsdsyj3PA,533
31
+ blue_sandbox/.abcli/tests/version.sh,sha256=jF8zoJN1eKE3LfDeRVG9uHEosmEVJX6RtKfdioyeN-o,150
32
+ blue_sandbox/help/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
33
+ blue_sandbox/help/__main__.py,sha256=3Cqp5oISrZCOUApmwoQoCj_0sQgtkiEkm_ob3LFKzRE,234
34
+ blue_sandbox/help/functions.py,sha256=Ki0nUGyHKDo2t0WnIVzBwxEVJHyRmHh-hIRv3ohJK3c,431
35
+ blue_sandbox/microsoft_building_damage_assessment/README.py,sha256=qqe1wXoc4TjKS4o3gskwNCBuX8PTVduQEAaVHeovsrE,1275
36
+ blue_sandbox/microsoft_building_damage_assessment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
+ blue_sandbox/microsoft_building_damage_assessment/__main__.py,sha256=RnyXyJdLmzLzccVmb6VZvD17Dwx-g1wByDugIisoPmQ,1995
38
+ blue_sandbox/microsoft_building_damage_assessment/ingest.py,sha256=tBchn4dWPIqArwAe8JjEM2xZZlFtrgBRDV_Ko26OEiM,639
39
+ blue_sandbox/microsoft_building_damage_assessment/label.py,sha256=mpRNOsF8ChxSLwOyvwGmXiD7aO2xfivJPZTC5qwnLaw,823
40
+ blue_sandbox/microsoft_building_damage_assessment/sas_token.py,sha256=t6oTXc6C52CH3tFbQo2H9YUB_7upAsfUwws43Iu9pHI,214
41
+ blue_sandbox/microsoft_building_damage_assessment/train.py,sha256=8DUt0S4LuKkRIi9XpASOg5skPaM3D2VaSBg5FEn8qog,2778
42
+ blue_sandbox-5.87.1.dist-info/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
43
+ blue_sandbox-5.87.1.dist-info/METADATA,sha256=9M7nPtpmiI0fX-oeF4ZwG31fT9TnSdndE7Vyt7iB_AU,2942
44
+ blue_sandbox-5.87.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
45
+ blue_sandbox-5.87.1.dist-info/top_level.txt,sha256=4D9Cb9QUCaqdYAmBiCwvtlaYBtUYVVxv0Sxcr_pzgS8,13
46
+ blue_sandbox-5.87.1.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- blue_sandbox/README.py,sha256=gHxb5Czp9oyNZykiCKtI9Qnx08QJab8Ht9znKxHMkPs,1562
2
- blue_sandbox/__init__.py,sha256=yAwWd5-dAV4y8R3MW_B3K5FX1Hf7ZNCSnuNJCfrS_co,322
3
- blue_sandbox/__main__.py,sha256=aPRHSpGpk-bDbzhHpfLNsd3y1gGEHpnhoTF-RBweNwc,361
4
- blue_sandbox/config.env,sha256=89ao50sGXYWiU-NMV_fUVXAXdTHKKfWV03BY3_p6EOE,25
5
- blue_sandbox/env.py,sha256=ljEErQJNy0cdSvPpJ_ziMNvXK6Qlvi_8VBgTqjSm2uk,173
6
- blue_sandbox/functions.py,sha256=U41kQFNPpfYV6KJpMnkqgqLkozqXiG4tgV6rj8IW1BU,7
7
- blue_sandbox/host.py,sha256=uJpiM105rnm6ySF16zA7waWekGBdec-dlpoRRU_QqwU,210
8
- blue_sandbox/logger.py,sha256=ZoFrTIfJJGNtZUm2d7lkQjdB2SPl_KBKDmHJOcIivPM,107
9
- blue_sandbox/sample.env,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
- blue_sandbox/urls.py,sha256=tIZ36ONJEoUBM-tFhOpkVhLwb1OgLegUeEaBDqW4USM,24
11
- blue_sandbox/.abcli/abcli.sh,sha256=xsJ4IzuQsvLZog6U8VTBFVXsEi6ADe13L8rn47XtlbU,196
12
- blue_sandbox/.abcli/actions.sh,sha256=vImEUI105GRcxs2mAKGMqcvoErtmOPZZ-7dfSmUUxvE,230
13
- blue_sandbox/.abcli/aka.sh,sha256=RHDU_JbEEL2B0vvvRJ3NVSsRSEjSu09jNY85n7DLe-k,21
14
- blue_sandbox/.abcli/alias.sh,sha256=A2Q2VBfKuAiWc0yRXeDj95lL70elSdDKZTKWPTK-590,117
15
- blue_sandbox/.abcli/blue_sandbox.sh,sha256=PGRJOgNGlC3XL5cw4ecZH40LDuc_6NVazTKhCWtZ-3g,233
16
- blue_sandbox/.abcli/browse.sh,sha256=f8qa4qDVts2Am6_ldDwNeJXzhBQTk9PUKl0-a9wW1ww,287
17
- blue_sandbox/.abcli/install.sh,sha256=gRbmZfSMWd7RlmQaaXqQKuzuG9EXXA4at1R3KUfQ-qU,263
18
- blue_sandbox/.abcli/microsoft_building_damage_assessment.sh,sha256=wIP7BvltFj3Gx5VmSgT6hY67K1BnubELef93HHwKOU0,470
19
- blue_sandbox/.abcli/microsoft_building_damage_assessment/ingest.sh,sha256=7ctyhe8wJ4RDJTOsrQ26FSYvtSizgBysSCGzL7Ap8f8,2701
20
- blue_sandbox/.abcli/microsoft_building_damage_assessment/ingest/list.sh,sha256=9bEjpbwO7Heqd-E2RTM-ck4Q39Eqsv4ged6e0WmxmSs,452
21
- blue_sandbox/.abcli/tests/README.sh,sha256=rmJM-BPnTcmpPbJ5GXsF8vd_a84JKryeKkZyVScUing,145
22
- blue_sandbox/.abcli/tests/help.sh,sha256=ULiOsZDZ-M2T7fFoCZk3xyBNmJchFeizV_x_WHVqCko,404
23
- blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_ingest.sh,sha256=oUUF8Kuyohxiqxo9FLY9EO0qlgkagntgfuFda6niHeM,426
24
- blue_sandbox/.abcli/tests/microsoft_building_damage_assessment_ingest_list.sh,sha256=5P0H-FHV7YKt1fenXAs_0cSFhJYWZ9u3LzRpfSRSptw,577
25
- blue_sandbox/.abcli/tests/version.sh,sha256=jF8zoJN1eKE3LfDeRVG9uHEosmEVJX6RtKfdioyeN-o,150
26
- blue_sandbox/help/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
27
- blue_sandbox/help/__main__.py,sha256=3Cqp5oISrZCOUApmwoQoCj_0sQgtkiEkm_ob3LFKzRE,234
28
- blue_sandbox/help/functions.py,sha256=Ki0nUGyHKDo2t0WnIVzBwxEVJHyRmHh-hIRv3ohJK3c,431
29
- blue_sandbox/microsoft_building_damage_assessment/README.py,sha256=AyZs8uYpZ7XSYs--5HkMHwgCfZZM1n_E-YWNZ6ncaO4,842
30
- blue_sandbox/microsoft_building_damage_assessment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
31
- blue_sandbox/microsoft_building_damage_assessment/__main__.py,sha256=rjjr-csHJd2jgO2GDlnAbbQAO_zbaXwA7n6Ce0UX0lM,1009
32
- blue_sandbox/microsoft_building_damage_assessment/ingest.py,sha256=F5GBHZ6s6QebC-w9e4QsRiQ6ZKxXjFbqckZqV8HDU1s,337
33
- blue_sandbox-5.47.1.dist-info/LICENSE,sha256=ogEPNDSH0_dhiv_lT3ifVIdgIzHAqNA_SemnxUfPBJk,7048
34
- blue_sandbox-5.47.1.dist-info/METADATA,sha256=bC0hgpyotWeXyJ5d4tZVHOBdGX52KfabS3PtxkD85uQ,2756
35
- blue_sandbox-5.47.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
36
- blue_sandbox-5.47.1.dist-info/top_level.txt,sha256=4D9Cb9QUCaqdYAmBiCwvtlaYBtUYVVxv0Sxcr_pzgS8,13
37
- blue_sandbox-5.47.1.dist-info/RECORD,,