outerbounds 0.3.180rc4__py3-none-any.whl → 0.3.180rc5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -127,7 +127,13 @@ class CliState(object):
127
127
  pass
128
128
 
129
129
 
130
- def _pre_create_debug(app_config: AppConfig, capsule: CapsuleDeployer, state_dir: str):
130
+ def _pre_create_debug(
131
+ app_config: AppConfig,
132
+ capsule: CapsuleDeployer,
133
+ state_dir: str,
134
+ options: Dict[str, Any],
135
+ cli_parsed_config: Dict[str, Any],
136
+ ):
131
137
  if CAPSULE_DEBUG:
132
138
  os.makedirs(state_dir, exist_ok=True)
133
139
  debug_path = os.path.join(state_dir, f"debug_{time.time()}.yaml")
@@ -136,14 +142,16 @@ def _pre_create_debug(app_config: AppConfig, capsule: CapsuleDeployer, state_dir
136
142
  "w",
137
143
  ) as f:
138
144
  f.write(
139
- yaml.dump(
145
+ json.dumps(
140
146
  {
141
- "app_state": app_config.dump_state(),
142
- "capsule_input": capsule.create_input(),
143
- "deploy_response": capsule._capsule_deploy_response,
147
+ "app_state": app_config.dump_state(), # This is the state of the app config after parsing the CLI options and right before the capsule deploy API is called
148
+ "capsule_input": capsule.create_input(), # This is the input that is passed to the capsule deploy API
149
+ "deploy_response": capsule._capsule_deploy_response, # This is the response from the capsule deploy API
150
+ "cli_options": options, # These are the actual options passing down to the CLI
151
+ "cli_parsed_config": cli_parsed_config, # This is the config object that is created after parsing options from the CLI
144
152
  },
145
- default_flow_style=False,
146
153
  indent=2,
154
+ default=str,
147
155
  )
148
156
  )
149
157
 
@@ -543,6 +551,7 @@ def deploy(
543
551
 
544
552
  logger = partial(_logger, timestamp=True)
545
553
  try:
554
+ _cli_parsed_config = build_config_from_options(options)
546
555
  # Create configuration
547
556
  if options["config_file"]:
548
557
  # Load from file
@@ -552,8 +561,7 @@ def deploy(
552
561
  app_config.update_from_cli_options(options)
553
562
  else:
554
563
  # Create from CLI options
555
- config_dict = build_config_from_options(options)
556
- app_config = AppConfig(config_dict)
564
+ app_config = AppConfig(_cli_parsed_config)
557
565
 
558
566
  # Validate the configuration
559
567
  app_config.validate()
@@ -690,7 +698,7 @@ def deploy(
690
698
 
691
699
  force_upgrade = app_config.get_state("force_upgrade", False)
692
700
 
693
- _pre_create_debug(app_config, capsule, cache_dir)
701
+ _pre_create_debug(app_config, capsule, cache_dir, options, _cli_parsed_config)
694
702
 
695
703
  if len(currently_present_capsules) > 0:
696
704
  # Only update the capsule if there is no upgrade in progress
@@ -87,9 +87,9 @@ def build_config_from_options(options):
87
87
  config["auth"]["public"] = options["auth_public"]
88
88
 
89
89
  replicas = {}
90
- if options.get("min_replicas"):
90
+ if options.get("min_replicas") is not None:
91
91
  replicas["min"] = options["min_replicas"]
92
- if options.get("max_replicas"):
92
+ if options.get("max_replicas") is not None:
93
93
  replicas["max"] = options["max_replicas"]
94
94
  if len(replicas) > 0:
95
95
  config["replicas"] = replicas
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: outerbounds
3
- Version: 0.3.180rc4
3
+ Version: 0.3.180rc5
4
4
  Summary: More Data Science, Less Administration
5
5
  License: Proprietary
6
6
  Keywords: data science,machine learning,MLOps
@@ -29,8 +29,8 @@ Requires-Dist: google-cloud-secret-manager (>=2.20.0,<3.0.0) ; extra == "gcp"
29
29
  Requires-Dist: google-cloud-storage (>=2.14.0,<3.0.0) ; extra == "gcp"
30
30
  Requires-Dist: metaflow-checkpoint (==0.2.1)
31
31
  Requires-Dist: ob-metaflow (==2.15.17.1)
32
- Requires-Dist: ob-metaflow-extensions (==1.1.168rc4)
33
- Requires-Dist: ob-metaflow-stubs (==6.0.3.180rc4)
32
+ Requires-Dist: ob-metaflow-extensions (==1.1.168rc5)
33
+ Requires-Dist: ob-metaflow-stubs (==6.0.3.180rc5)
34
34
  Requires-Dist: opentelemetry-distro (>=0.41b0) ; extra == "otel"
35
35
  Requires-Dist: opentelemetry-exporter-otlp-proto-http (>=1.20.0) ; extra == "otel"
36
36
  Requires-Dist: opentelemetry-instrumentation-requests (>=0.41b0) ; extra == "otel"
@@ -44,11 +44,11 @@ outerbounds/_vendor/yaml/serializer.py,sha256=8wFZRy9SsQSktF_f9OOroroqsh4qVUe53r
44
44
  outerbounds/_vendor/yaml/tokens.py,sha256=JBSu38wihGr4l73JwbfMA7Ks1-X84g8-NskTz7KwPmA,2578
45
45
  outerbounds/apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
46
  outerbounds/apps/_state_machine.py,sha256=3hQF5O2zJdtQWdy9e5w393O85u6UjGApqTMlRU3UhFk,12964
47
- outerbounds/apps/app_cli.py,sha256=FfONKmfTzI0jJmGfBq5APWVJmFDbcvrsEKi78aaXfj0,44763
47
+ outerbounds/apps/app_cli.py,sha256=j_0vEQlsKGgvlPidog4bSZrY-_D1ne3JmHVafijL-iI,45354
48
48
  outerbounds/apps/app_config.py,sha256=KBmW9grhiuG9XZG-R0GZkM-024cjj6ztGzOX_2wZW34,11291
49
49
  outerbounds/apps/artifacts.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
50
50
  outerbounds/apps/capsule.py,sha256=YoOkUYGPrbXPaSUwS3teui1XPJDZCIxn-9tPpm1X0GM,30927
51
- outerbounds/apps/cli_to_config.py,sha256=9IIrJbiaNXoUruCh1s23KbzN87Qyc_MPfqLqXM3nEaE,3275
51
+ outerbounds/apps/cli_to_config.py,sha256=Thc5jXRxoU6Pr8kAVVOX-5Es5ha6y6Vh_GBzL__oI7Q,3299
52
52
  outerbounds/apps/code_package/__init__.py,sha256=8McF7pgx8ghvjRnazp2Qktlxi9yYwNiwESSQrk-2oW8,68
53
53
  outerbounds/apps/code_package/code_packager.py,sha256=RWvM5BKjgLhu7icsO_n5SSYC57dwyST0dWpoWF88ovU,22881
54
54
  outerbounds/apps/code_package/examples.py,sha256=aF8qKIJxCVv_ugcShQjqUsXKKKMsm1oMkQIl8w3QKuw,4016
@@ -76,7 +76,7 @@ outerbounds/utils/metaflowconfig.py,sha256=l2vJbgPkLISU-XPGZFaC8ZKmYFyJemlD6bwB-
76
76
  outerbounds/utils/schema.py,sha256=lMUr9kNgn9wy-sO_t_Tlxmbt63yLeN4b0xQXbDUDj4A,2331
77
77
  outerbounds/utils/utils.py,sha256=4Z8cszNob_8kDYCLNTrP-wWads_S_MdL3Uj3ju4mEsk,501
78
78
  outerbounds/vendor.py,sha256=gRLRJNXtZBeUpPEog0LOeIsl6GosaFFbCxUvR4bW6IQ,5093
79
- outerbounds-0.3.180rc4.dist-info/METADATA,sha256=TzNa7b91XFl1ZaQIBEPoZICgaod09sSxkfz5hMqFp8k,1846
80
- outerbounds-0.3.180rc4.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
81
- outerbounds-0.3.180rc4.dist-info/entry_points.txt,sha256=AP6rZg7y5SK9e9a9iVq0Fi9Q2KPjPZSwtZ6R98rLw-8,56
82
- outerbounds-0.3.180rc4.dist-info/RECORD,,
79
+ outerbounds-0.3.180rc5.dist-info/METADATA,sha256=bhULcwevS8zjmFWtUdm_NqRqF1vYNqx1z-NGfBmKpb8,1846
80
+ outerbounds-0.3.180rc5.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
81
+ outerbounds-0.3.180rc5.dist-info/entry_points.txt,sha256=AP6rZg7y5SK9e9a9iVq0Fi9Q2KPjPZSwtZ6R98rLw-8,56
82
+ outerbounds-0.3.180rc5.dist-info/RECORD,,