omniopt2 8129__py3-none-any.whl → 8167__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.

Potentially problematic release.


This version of omniopt2 might be problematic. Click here for more details.

Files changed (37) hide show
  1. .omniopt.py +72 -25
  2. omniopt +1 -1
  3. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt.py +72 -25
  4. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/omniopt +1 -1
  5. {omniopt2-8129.dist-info → omniopt2-8167.dist-info}/METADATA +1 -1
  6. {omniopt2-8129.dist-info → omniopt2-8167.dist-info}/RECORD +37 -37
  7. omniopt2.egg-info/PKG-INFO +1 -1
  8. pyproject.toml +1 -1
  9. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.colorfunctions.sh +0 -0
  10. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.general.sh +0 -0
  11. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.helpers.py +0 -0
  12. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_cpu_ram_usage.py +0 -0
  13. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_general.py +0 -0
  14. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_gpu_usage.py +0 -0
  15. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_kde.py +0 -0
  16. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_scatter.py +0 -0
  17. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_scatter_generation_method.py +0 -0
  18. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_scatter_hex.py +0 -0
  19. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_time_and_exit_code.py +0 -0
  20. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_trial_index_result.py +0 -0
  21. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.omniopt_plot_worker.py +0 -0
  22. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.random_generator.py +0 -0
  23. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.shellscript_functions +0 -0
  24. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/.tpe.py +0 -0
  25. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/LICENSE +0 -0
  26. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/apt-dependencies.txt +0 -0
  27. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/omniopt_docker +0 -0
  28. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/omniopt_evaluate +0 -0
  29. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/omniopt_plot +0 -0
  30. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/omniopt_share +0 -0
  31. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/pylint.rc +0 -0
  32. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/requirements.txt +0 -0
  33. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/setup.py +0 -0
  34. {omniopt2-8129.data → omniopt2-8167.data}/data/bin/test_requirements.txt +0 -0
  35. {omniopt2-8129.dist-info → omniopt2-8167.dist-info}/WHEEL +0 -0
  36. {omniopt2-8129.dist-info → omniopt2-8167.dist-info}/licenses/LICENSE +0 -0
  37. {omniopt2-8129.dist-info → omniopt2-8167.dist-info}/top_level.txt +0 -0
.omniopt.py CHANGED
@@ -65,6 +65,7 @@ _func_call_paths = defaultdict(Counter)
65
65
  _last_mem = defaultdict(float)
66
66
  _leak_threshold_mb = 10.0
67
67
  generation_strategy_names: list = []
68
+ default_max_range_difference: int = 1000000
68
69
 
69
70
  _function_name_cache: dict = {}
70
71
 
@@ -130,7 +131,7 @@ try:
130
131
  )
131
132
 
132
133
  def spinner(text: str) -> Any:
133
- return console.status(f"[bold green]{text}")
134
+ return console.status(f"[bold green]{text}", speed=0.2, refresh_per_second=6)
134
135
 
135
136
  with spinner("Importing logging..."):
136
137
  import logging
@@ -662,6 +663,15 @@ def my_exit(_code: int = 0) -> None:
662
663
 
663
664
  print(f"Wallclock-Runtime: {whole_run_time} seconds {human_time}")
664
665
 
666
+ if is_skip_search() and os.getenv("SKIP_SEARCH_EXIT_CODE"):
667
+ skip_search_exit_code = os.getenv("SKIP_SEARCH_EXIT_CODE")
668
+
669
+ try:
670
+ sys.exit(int(skip_search_exit_code))
671
+ except ValueError:
672
+ print(f"Trying to look for SKIP_SEARCH_EXIT_CODE failed. Exiting with original exit code {_code}")
673
+ sys.exit(_code)
674
+
665
675
  sys.exit(_code)
666
676
 
667
677
  def print_green(text: str) -> None:
@@ -817,6 +827,8 @@ class ConfigLoader:
817
827
  occ: bool
818
828
  force_choice_for_ranges: bool
819
829
  dryrun: bool
830
+ range_max_difference: int
831
+ skip_search: bool
820
832
  just_return_defaults: bool
821
833
  run_mode: str
822
834
 
@@ -901,6 +913,8 @@ class ConfigLoader:
901
913
  optional.add_argument('--run_program_once', type=str, help='Path to a setup script that will run once before the main program starts.')
902
914
  optional.add_argument('--worker_generator_path', type=str, help='Path of the run folder where this script should plug itself in as a worker points generator')
903
915
  optional.add_argument('--save_to_database', help='Save all entries into a sqlite3 database', action='store_true', default=False)
916
+ optional.add_argument('--range_max_difference', help=f'Max. difference for range, default is {default_max_range_difference}', default=default_max_range_difference, type=int)
917
+ optional.add_argument('--skip_search', help='Skips the actual search, uses exit code 0 if not the environment variable SKIP_SEARCH_EXIT_CODE is set', action='store_true', default=False)
904
918
 
905
919
  speed.add_argument('--dont_warm_start_refitting', help='Do not keep Model weights, thus, refit for every generator (may be more accurate, but slower)', action='store_true', default=False)
906
920
  speed.add_argument('--refit_on_cv', help='Refit on Cross-Validation (helps in accuracy, but makes generating new points slower)', action='store_true', default=False)
@@ -966,7 +980,8 @@ class ConfigLoader:
966
980
  if file_format == 'json':
967
981
  return json.load(file)
968
982
  except (Exception, json.decoder.JSONDecodeError) as e:
969
- print_red(f"Error parsing {file_format} file '{config_path}': {e}")
983
+ print_red(f"Error parsing {file_format} file '{config_path}'")
984
+ print_debug(f"Error parsing {file_format} file {config_path}: {e}")
970
985
  self._parsing_arguments_loader.stop()
971
986
  print("Exit-Code: 5")
972
987
  sys.exit(5)
@@ -1142,6 +1157,15 @@ with spinner("Parsing arguments...") as parsing_arguments_loader:
1142
1157
  loader = ConfigLoader(parsing_arguments_loader)
1143
1158
  args = loader.parse_arguments()
1144
1159
 
1160
+ def is_skip_search() -> bool:
1161
+ if args.skip_search:
1162
+ return True
1163
+
1164
+ if os.getenv("SKIP_SEARCH"):
1165
+ return True
1166
+
1167
+ return False
1168
+
1145
1169
  original_result_names = args.result_names
1146
1170
 
1147
1171
  if args.seed is not None:
@@ -1606,7 +1630,7 @@ class InteractiveCLIGenerationNode(ExternalGenerationNode):
1606
1630
  constraints: Optional[Any]
1607
1631
  fit_time_since_gen: float
1608
1632
 
1609
- def __init__( # identical signature to the original class
1633
+ def __init__(
1610
1634
  self: Any,
1611
1635
  node_name: str = "INTERACTIVE_GENERATOR",
1612
1636
  ) -> None:
@@ -2206,7 +2230,7 @@ class SearchSpaceExhausted (Exception):
2206
2230
  pass
2207
2231
 
2208
2232
  NR_INSERTED_JOBS: int = 0
2209
- executor: Union[LocalExecutor, AutoExecutor, None] = None
2233
+ submitit_executor: Union[LocalExecutor, AutoExecutor, None] = None
2210
2234
 
2211
2235
  NR_OF_0_RESULTS: int = 0
2212
2236
 
@@ -3093,6 +3117,14 @@ def get_value_type_and_log_scale(this_args: Union[str, list], j: int) -> Tuple[i
3093
3117
 
3094
3118
  return skip, value_type, log_scale
3095
3119
 
3120
+ def check_for_too_high_differences(lower_bound: Union[int, float], upper_bound: Union[int, float]) -> None:
3121
+ bound_diff = abs(lower_bound - upper_bound)
3122
+
3123
+ if bound_diff > args.range_max_difference:
3124
+ print_red(f"The difference between {lower_bound} and {upper_bound} was too high, these large numbers can cause memory leaks. Difference was: {bound_diff}, max difference is {args.range_max_difference}")
3125
+
3126
+ sys.exit(235)
3127
+
3096
3128
  def parse_range_param(classic_params: list, params: list, j: int, this_args: Union[str, list], name: str, search_space_reduction_warning: bool) -> Tuple[int, list, list, bool]:
3097
3129
  check_factorial_range()
3098
3130
  check_range_params_length(this_args)
@@ -3102,7 +3134,7 @@ def parse_range_param(classic_params: list, params: list, j: int, this_args: Uni
3102
3134
 
3103
3135
  lower_bound, upper_bound = get_bounds(this_args, j)
3104
3136
 
3105
- die_181_or_91_if_lower_and_upper_bound_equal_zero(lower_bound, upper_bound)
3137
+ die_if_lower_and_upper_bound_equal_zero(lower_bound, upper_bound)
3106
3138
 
3107
3139
  lower_bound, upper_bound = switch_lower_and_upper_if_needed(name, lower_bound, upper_bound)
3108
3140
 
@@ -3114,6 +3146,12 @@ def parse_range_param(classic_params: list, params: list, j: int, this_args: Uni
3114
3146
 
3115
3147
  lower_bound, upper_bound = get_bounds_from_previous_data(name, lower_bound, upper_bound)
3116
3148
 
3149
+ check_for_too_high_differences(lower_bound, upper_bound)
3150
+
3151
+ if lower_bound == upper_bound:
3152
+ print_red(f"Lower bound {lower_bound} was equal to upper bound {upper_bound}. Please fix this. Cannot continue.")
3153
+ my_exit(181)
3154
+
3117
3155
  search_space_reduction_warning = check_bounds_change_due_to_previous_job(name, lower_bound, upper_bound, search_space_reduction_warning)
3118
3156
 
3119
3157
  param = create_range_param(name, lower_bound, upper_bound, value_type, log_scale)
@@ -3271,9 +3309,9 @@ def check_range_params_length(this_args: Union[str, list]) -> None:
3271
3309
  if len(this_args) != 5 and len(this_args) != 4 and len(this_args) != 6:
3272
3310
  _fatal_error("\n⚠ --parameter for type range must have 4 (or 5, the last one being optional and float by default, or 6, while the last one is true or false) parameters: <NAME> range <START> <END> (<TYPE (int or float)>, <log_scale: bool>)", 181)
3273
3311
 
3274
- def die_181_or_91_if_lower_and_upper_bound_equal_zero(lower_bound: Union[int, float], upper_bound: Union[int, float]) -> None:
3312
+ def die_if_lower_and_upper_bound_equal_zero(lower_bound: Union[int, float], upper_bound: Union[int, float]) -> None:
3275
3313
  if upper_bound is None or lower_bound is None:
3276
- _fatal_error("die_181_or_91_if_lower_and_upper_bound_equal_zero: upper_bound or lower_bound is None. Cannot continue.", 91)
3314
+ _fatal_error("die_if_lower_and_upper_bound_equal_zero: upper_bound or lower_bound is None. Cannot continue.", 91)
3277
3315
  if upper_bound == lower_bound:
3278
3316
  if lower_bound == 0:
3279
3317
  _fatal_error(f"⚠ Lower bound and upper bound are equal: {lower_bound}, cannot automatically fix this, because they -0 = +0 (usually a quickfix would be to set lower_bound = -upper_bound)", 181)
@@ -7331,7 +7369,7 @@ def submit_new_job(parameters: Union[dict, str], trial_index: int) -> Any:
7331
7369
 
7332
7370
  start = time.time()
7333
7371
 
7334
- new_job = executor.submit(evaluate, {"params": parameters, "trial_idx": trial_index, "submit_time": int(time.time())})
7372
+ new_job = submitit_executor.submit(evaluate, {"params": parameters, "trial_idx": trial_index, "submit_time": int(time.time())})
7335
7373
 
7336
7374
  elapsed = time.time() - start
7337
7375
 
@@ -7340,7 +7378,7 @@ def submit_new_job(parameters: Union[dict, str], trial_index: int) -> Any:
7340
7378
  return new_job
7341
7379
 
7342
7380
  def orchestrator_start_trial(parameters: Union[dict, str], trial_index: int) -> None:
7343
- if executor and ax_client:
7381
+ if submitit_executor and ax_client:
7344
7382
  new_job = submit_new_job(parameters, trial_index)
7345
7383
  submitted_jobs(1)
7346
7384
 
@@ -7355,7 +7393,7 @@ def orchestrator_start_trial(parameters: Union[dict, str], trial_index: int) ->
7355
7393
  print_debug(f"orchestrator_start_trial: appending job {new_job} to global_vars['jobs'], trial_index: {trial_index}")
7356
7394
  global_vars["jobs"].append((new_job, trial_index))
7357
7395
  else:
7358
- _fatal_error("executor or ax_client could not be found properly", 9)
7396
+ _fatal_error("submitit_executor or ax_client could not be found properly", 9)
7359
7397
 
7360
7398
  def handle_exclude_node(stdout_path: str, hostname_from_out_file: Union[None, str]) -> None:
7361
7399
  stdout_path = check_alternate_path(stdout_path)
@@ -7465,8 +7503,8 @@ def execute_evaluation(_params: list) -> Optional[int]:
7465
7503
 
7466
7504
  return None
7467
7505
 
7468
- if not executor:
7469
- _fatal_error("executor could not be found", 9)
7506
+ if not submitit_executor:
7507
+ _fatal_error("submitit_executor could not be found", 9)
7470
7508
 
7471
7509
  return None
7472
7510
 
@@ -7521,10 +7559,10 @@ def set_sbatch_environment() -> None:
7521
7559
  def exclude_defective_nodes() -> None:
7522
7560
  excluded_string: str = ",".join(count_defective_nodes())
7523
7561
  if len(excluded_string) > 1:
7524
- if executor:
7525
- executor.update_parameters(exclude=excluded_string)
7562
+ if submitit_executor:
7563
+ submitit_executor.update_parameters(exclude=excluded_string)
7526
7564
  else:
7527
- _fatal_error("executor could not be found", 9)
7565
+ _fatal_error("submitit_executor could not be found", 9)
7528
7566
 
7529
7567
  def handle_failed_job(error: Union[None, Exception, str], trial_index: int, new_job: Optional[Job]) -> None:
7530
7568
  if "QOSMinGRES" in str(error) and args.gpus == 0:
@@ -8821,6 +8859,10 @@ def _create_and_execute_next_runs_run_loop(_max_eval: Optional[int], phase: Opti
8821
8859
 
8822
8860
  filtered_trial_index_to_param = {k: v for k, v in trial_index_to_param.items() if k not in abandoned_trial_indices}
8823
8861
 
8862
+ if is_skip_search():
8863
+ print_yellow("Skipping search part")
8864
+ return True, {}
8865
+
8824
8866
  if len(filtered_trial_index_to_param):
8825
8867
  execute_trials(filtered_trial_index_to_param, phase, _max_eval)
8826
8868
  else:
@@ -8873,17 +8915,17 @@ def get_number_of_steps(_max_eval: int) -> int:
8873
8915
  return _random_steps
8874
8916
 
8875
8917
  def _set_global_executor() -> None:
8876
- global executor
8918
+ global submitit_executor
8877
8919
 
8878
8920
  log_folder: str = f'{get_current_run_folder()}/single_runs/%j'
8879
8921
  subjob_uuid = str(uuid.uuid4())
8880
8922
 
8881
8923
  if args.force_local_execution:
8882
- executor = LocalExecutor(folder=log_folder)
8924
+ submitit_executor = LocalExecutor(folder=log_folder)
8883
8925
  else:
8884
- executor = AutoExecutor(folder=log_folder)
8926
+ submitit_executor = AutoExecutor(folder=log_folder)
8885
8927
 
8886
- if executor:
8928
+ if submitit_executor:
8887
8929
  params = {
8888
8930
  "name": f'{global_vars["experiment_name"]}_{run_uuid}_{subjob_uuid}',
8889
8931
  "timeout_min": args.worker_timeout,
@@ -8897,14 +8939,14 @@ def _set_global_executor() -> None:
8897
8939
  "exclude": args.exclude,
8898
8940
  }
8899
8941
 
8900
- executor.update_parameters(**params)
8942
+ submitit_executor.update_parameters(**params)
8901
8943
 
8902
- print_debug("executor.update_parameters(\n" + json.dumps(params, indent=4) + "\n)")
8944
+ print_debug("submitit_executor.update_parameters(\n" + json.dumps(params, indent=4) + "\n)")
8903
8945
 
8904
8946
  if args.exclude:
8905
8947
  print_yellow(f"Excluding the following nodes: {args.exclude}")
8906
8948
  else:
8907
- _fatal_error("executor could not be found", 9)
8949
+ _fatal_error("submitit_executor could not be found", 9)
8908
8950
 
8909
8951
  def set_global_executor() -> None:
8910
8952
  try:
@@ -10263,7 +10305,13 @@ def run_program_once(params=None) -> None:
10263
10305
  my_exit(57)
10264
10306
 
10265
10307
  def show_omniopt_call() -> None:
10266
- original_print(oo_call + " " + " ".join(sys.argv[1:]))
10308
+ def remove_ui_url(arg_str):
10309
+ return re.sub(r'(?:--ui_url(?:=\S+)?(?:\s+\S+)?)', '', arg_str).strip()
10310
+
10311
+ original_argv = " ".join(sys.argv[1:])
10312
+ cleaned = remove_ui_url(original_argv)
10313
+
10314
+ original_print(oo_call + " " + cleaned)
10267
10315
 
10268
10316
  def main() -> None:
10269
10317
  global RESULT_CSV_FILE, ax_client, LOGFILE_DEBUG_GET_NEXT_TRIALS
@@ -11006,7 +11054,7 @@ def main_outside() -> None:
11006
11054
  end_program(True)
11007
11055
 
11008
11056
  def auto_wrap_namespace(namespace: Any) -> Any:
11009
- enable_beartype = os.getenv("ENABLE_BEARTYPE") is not None
11057
+ enable_beartype = any(os.getenv(v) for v in ("ENABLE_BEARTYPE", "CI"))
11010
11058
 
11011
11059
  excluded_functions = {
11012
11060
  "log_time_and_memory_wrapper",
@@ -11026,7 +11074,6 @@ def auto_wrap_namespace(namespace: Any) -> Any:
11026
11074
  if (isinstance(obj, types.FunctionType) and name not in excluded_functions):
11027
11075
  wrapped = obj
11028
11076
  if enable_beartype:
11029
- print(f"Wrapping function '{name}' in @beartype")
11030
11077
  wrapped = beartype(wrapped)
11031
11078
 
11032
11079
  if args.runtime_debug:
omniopt CHANGED
@@ -1954,7 +1954,7 @@ EOF
1954
1954
  sbatch_command=$(echo "$sbatch_command" | sed -e 's#^[[:space:]]*##' -e 's#[[:space:]]*$##')
1955
1955
  red_text "Failed to start sbatch job. Command:\n"
1956
1956
  red_text "$sbatch_command\n"
1957
- red_text "Exit-Code: $exit_code\n"
1957
+ red_text "Exit-Code (sbatch): $exit_code\n"
1958
1958
 
1959
1959
  myexit $exit_code
1960
1960
  fi
@@ -65,6 +65,7 @@ _func_call_paths = defaultdict(Counter)
65
65
  _last_mem = defaultdict(float)
66
66
  _leak_threshold_mb = 10.0
67
67
  generation_strategy_names: list = []
68
+ default_max_range_difference: int = 1000000
68
69
 
69
70
  _function_name_cache: dict = {}
70
71
 
@@ -130,7 +131,7 @@ try:
130
131
  )
131
132
 
132
133
  def spinner(text: str) -> Any:
133
- return console.status(f"[bold green]{text}")
134
+ return console.status(f"[bold green]{text}", speed=0.2, refresh_per_second=6)
134
135
 
135
136
  with spinner("Importing logging..."):
136
137
  import logging
@@ -662,6 +663,15 @@ def my_exit(_code: int = 0) -> None:
662
663
 
663
664
  print(f"Wallclock-Runtime: {whole_run_time} seconds {human_time}")
664
665
 
666
+ if is_skip_search() and os.getenv("SKIP_SEARCH_EXIT_CODE"):
667
+ skip_search_exit_code = os.getenv("SKIP_SEARCH_EXIT_CODE")
668
+
669
+ try:
670
+ sys.exit(int(skip_search_exit_code))
671
+ except ValueError:
672
+ print(f"Trying to look for SKIP_SEARCH_EXIT_CODE failed. Exiting with original exit code {_code}")
673
+ sys.exit(_code)
674
+
665
675
  sys.exit(_code)
666
676
 
667
677
  def print_green(text: str) -> None:
@@ -817,6 +827,8 @@ class ConfigLoader:
817
827
  occ: bool
818
828
  force_choice_for_ranges: bool
819
829
  dryrun: bool
830
+ range_max_difference: int
831
+ skip_search: bool
820
832
  just_return_defaults: bool
821
833
  run_mode: str
822
834
 
@@ -901,6 +913,8 @@ class ConfigLoader:
901
913
  optional.add_argument('--run_program_once', type=str, help='Path to a setup script that will run once before the main program starts.')
902
914
  optional.add_argument('--worker_generator_path', type=str, help='Path of the run folder where this script should plug itself in as a worker points generator')
903
915
  optional.add_argument('--save_to_database', help='Save all entries into a sqlite3 database', action='store_true', default=False)
916
+ optional.add_argument('--range_max_difference', help=f'Max. difference for range, default is {default_max_range_difference}', default=default_max_range_difference, type=int)
917
+ optional.add_argument('--skip_search', help='Skips the actual search, uses exit code 0 if not the environment variable SKIP_SEARCH_EXIT_CODE is set', action='store_true', default=False)
904
918
 
905
919
  speed.add_argument('--dont_warm_start_refitting', help='Do not keep Model weights, thus, refit for every generator (may be more accurate, but slower)', action='store_true', default=False)
906
920
  speed.add_argument('--refit_on_cv', help='Refit on Cross-Validation (helps in accuracy, but makes generating new points slower)', action='store_true', default=False)
@@ -966,7 +980,8 @@ class ConfigLoader:
966
980
  if file_format == 'json':
967
981
  return json.load(file)
968
982
  except (Exception, json.decoder.JSONDecodeError) as e:
969
- print_red(f"Error parsing {file_format} file '{config_path}': {e}")
983
+ print_red(f"Error parsing {file_format} file '{config_path}'")
984
+ print_debug(f"Error parsing {file_format} file {config_path}: {e}")
970
985
  self._parsing_arguments_loader.stop()
971
986
  print("Exit-Code: 5")
972
987
  sys.exit(5)
@@ -1142,6 +1157,15 @@ with spinner("Parsing arguments...") as parsing_arguments_loader:
1142
1157
  loader = ConfigLoader(parsing_arguments_loader)
1143
1158
  args = loader.parse_arguments()
1144
1159
 
1160
+ def is_skip_search() -> bool:
1161
+ if args.skip_search:
1162
+ return True
1163
+
1164
+ if os.getenv("SKIP_SEARCH"):
1165
+ return True
1166
+
1167
+ return False
1168
+
1145
1169
  original_result_names = args.result_names
1146
1170
 
1147
1171
  if args.seed is not None:
@@ -1606,7 +1630,7 @@ class InteractiveCLIGenerationNode(ExternalGenerationNode):
1606
1630
  constraints: Optional[Any]
1607
1631
  fit_time_since_gen: float
1608
1632
 
1609
- def __init__( # identical signature to the original class
1633
+ def __init__(
1610
1634
  self: Any,
1611
1635
  node_name: str = "INTERACTIVE_GENERATOR",
1612
1636
  ) -> None:
@@ -2206,7 +2230,7 @@ class SearchSpaceExhausted (Exception):
2206
2230
  pass
2207
2231
 
2208
2232
  NR_INSERTED_JOBS: int = 0
2209
- executor: Union[LocalExecutor, AutoExecutor, None] = None
2233
+ submitit_executor: Union[LocalExecutor, AutoExecutor, None] = None
2210
2234
 
2211
2235
  NR_OF_0_RESULTS: int = 0
2212
2236
 
@@ -3093,6 +3117,14 @@ def get_value_type_and_log_scale(this_args: Union[str, list], j: int) -> Tuple[i
3093
3117
 
3094
3118
  return skip, value_type, log_scale
3095
3119
 
3120
+ def check_for_too_high_differences(lower_bound: Union[int, float], upper_bound: Union[int, float]) -> None:
3121
+ bound_diff = abs(lower_bound - upper_bound)
3122
+
3123
+ if bound_diff > args.range_max_difference:
3124
+ print_red(f"The difference between {lower_bound} and {upper_bound} was too high, these large numbers can cause memory leaks. Difference was: {bound_diff}, max difference is {args.range_max_difference}")
3125
+
3126
+ sys.exit(235)
3127
+
3096
3128
  def parse_range_param(classic_params: list, params: list, j: int, this_args: Union[str, list], name: str, search_space_reduction_warning: bool) -> Tuple[int, list, list, bool]:
3097
3129
  check_factorial_range()
3098
3130
  check_range_params_length(this_args)
@@ -3102,7 +3134,7 @@ def parse_range_param(classic_params: list, params: list, j: int, this_args: Uni
3102
3134
 
3103
3135
  lower_bound, upper_bound = get_bounds(this_args, j)
3104
3136
 
3105
- die_181_or_91_if_lower_and_upper_bound_equal_zero(lower_bound, upper_bound)
3137
+ die_if_lower_and_upper_bound_equal_zero(lower_bound, upper_bound)
3106
3138
 
3107
3139
  lower_bound, upper_bound = switch_lower_and_upper_if_needed(name, lower_bound, upper_bound)
3108
3140
 
@@ -3114,6 +3146,12 @@ def parse_range_param(classic_params: list, params: list, j: int, this_args: Uni
3114
3146
 
3115
3147
  lower_bound, upper_bound = get_bounds_from_previous_data(name, lower_bound, upper_bound)
3116
3148
 
3149
+ check_for_too_high_differences(lower_bound, upper_bound)
3150
+
3151
+ if lower_bound == upper_bound:
3152
+ print_red(f"Lower bound {lower_bound} was equal to upper bound {upper_bound}. Please fix this. Cannot continue.")
3153
+ my_exit(181)
3154
+
3117
3155
  search_space_reduction_warning = check_bounds_change_due_to_previous_job(name, lower_bound, upper_bound, search_space_reduction_warning)
3118
3156
 
3119
3157
  param = create_range_param(name, lower_bound, upper_bound, value_type, log_scale)
@@ -3271,9 +3309,9 @@ def check_range_params_length(this_args: Union[str, list]) -> None:
3271
3309
  if len(this_args) != 5 and len(this_args) != 4 and len(this_args) != 6:
3272
3310
  _fatal_error("\n⚠ --parameter for type range must have 4 (or 5, the last one being optional and float by default, or 6, while the last one is true or false) parameters: <NAME> range <START> <END> (<TYPE (int or float)>, <log_scale: bool>)", 181)
3273
3311
 
3274
- def die_181_or_91_if_lower_and_upper_bound_equal_zero(lower_bound: Union[int, float], upper_bound: Union[int, float]) -> None:
3312
+ def die_if_lower_and_upper_bound_equal_zero(lower_bound: Union[int, float], upper_bound: Union[int, float]) -> None:
3275
3313
  if upper_bound is None or lower_bound is None:
3276
- _fatal_error("die_181_or_91_if_lower_and_upper_bound_equal_zero: upper_bound or lower_bound is None. Cannot continue.", 91)
3314
+ _fatal_error("die_if_lower_and_upper_bound_equal_zero: upper_bound or lower_bound is None. Cannot continue.", 91)
3277
3315
  if upper_bound == lower_bound:
3278
3316
  if lower_bound == 0:
3279
3317
  _fatal_error(f"⚠ Lower bound and upper bound are equal: {lower_bound}, cannot automatically fix this, because they -0 = +0 (usually a quickfix would be to set lower_bound = -upper_bound)", 181)
@@ -7331,7 +7369,7 @@ def submit_new_job(parameters: Union[dict, str], trial_index: int) -> Any:
7331
7369
 
7332
7370
  start = time.time()
7333
7371
 
7334
- new_job = executor.submit(evaluate, {"params": parameters, "trial_idx": trial_index, "submit_time": int(time.time())})
7372
+ new_job = submitit_executor.submit(evaluate, {"params": parameters, "trial_idx": trial_index, "submit_time": int(time.time())})
7335
7373
 
7336
7374
  elapsed = time.time() - start
7337
7375
 
@@ -7340,7 +7378,7 @@ def submit_new_job(parameters: Union[dict, str], trial_index: int) -> Any:
7340
7378
  return new_job
7341
7379
 
7342
7380
  def orchestrator_start_trial(parameters: Union[dict, str], trial_index: int) -> None:
7343
- if executor and ax_client:
7381
+ if submitit_executor and ax_client:
7344
7382
  new_job = submit_new_job(parameters, trial_index)
7345
7383
  submitted_jobs(1)
7346
7384
 
@@ -7355,7 +7393,7 @@ def orchestrator_start_trial(parameters: Union[dict, str], trial_index: int) ->
7355
7393
  print_debug(f"orchestrator_start_trial: appending job {new_job} to global_vars['jobs'], trial_index: {trial_index}")
7356
7394
  global_vars["jobs"].append((new_job, trial_index))
7357
7395
  else:
7358
- _fatal_error("executor or ax_client could not be found properly", 9)
7396
+ _fatal_error("submitit_executor or ax_client could not be found properly", 9)
7359
7397
 
7360
7398
  def handle_exclude_node(stdout_path: str, hostname_from_out_file: Union[None, str]) -> None:
7361
7399
  stdout_path = check_alternate_path(stdout_path)
@@ -7465,8 +7503,8 @@ def execute_evaluation(_params: list) -> Optional[int]:
7465
7503
 
7466
7504
  return None
7467
7505
 
7468
- if not executor:
7469
- _fatal_error("executor could not be found", 9)
7506
+ if not submitit_executor:
7507
+ _fatal_error("submitit_executor could not be found", 9)
7470
7508
 
7471
7509
  return None
7472
7510
 
@@ -7521,10 +7559,10 @@ def set_sbatch_environment() -> None:
7521
7559
  def exclude_defective_nodes() -> None:
7522
7560
  excluded_string: str = ",".join(count_defective_nodes())
7523
7561
  if len(excluded_string) > 1:
7524
- if executor:
7525
- executor.update_parameters(exclude=excluded_string)
7562
+ if submitit_executor:
7563
+ submitit_executor.update_parameters(exclude=excluded_string)
7526
7564
  else:
7527
- _fatal_error("executor could not be found", 9)
7565
+ _fatal_error("submitit_executor could not be found", 9)
7528
7566
 
7529
7567
  def handle_failed_job(error: Union[None, Exception, str], trial_index: int, new_job: Optional[Job]) -> None:
7530
7568
  if "QOSMinGRES" in str(error) and args.gpus == 0:
@@ -8821,6 +8859,10 @@ def _create_and_execute_next_runs_run_loop(_max_eval: Optional[int], phase: Opti
8821
8859
 
8822
8860
  filtered_trial_index_to_param = {k: v for k, v in trial_index_to_param.items() if k not in abandoned_trial_indices}
8823
8861
 
8862
+ if is_skip_search():
8863
+ print_yellow("Skipping search part")
8864
+ return True, {}
8865
+
8824
8866
  if len(filtered_trial_index_to_param):
8825
8867
  execute_trials(filtered_trial_index_to_param, phase, _max_eval)
8826
8868
  else:
@@ -8873,17 +8915,17 @@ def get_number_of_steps(_max_eval: int) -> int:
8873
8915
  return _random_steps
8874
8916
 
8875
8917
  def _set_global_executor() -> None:
8876
- global executor
8918
+ global submitit_executor
8877
8919
 
8878
8920
  log_folder: str = f'{get_current_run_folder()}/single_runs/%j'
8879
8921
  subjob_uuid = str(uuid.uuid4())
8880
8922
 
8881
8923
  if args.force_local_execution:
8882
- executor = LocalExecutor(folder=log_folder)
8924
+ submitit_executor = LocalExecutor(folder=log_folder)
8883
8925
  else:
8884
- executor = AutoExecutor(folder=log_folder)
8926
+ submitit_executor = AutoExecutor(folder=log_folder)
8885
8927
 
8886
- if executor:
8928
+ if submitit_executor:
8887
8929
  params = {
8888
8930
  "name": f'{global_vars["experiment_name"]}_{run_uuid}_{subjob_uuid}',
8889
8931
  "timeout_min": args.worker_timeout,
@@ -8897,14 +8939,14 @@ def _set_global_executor() -> None:
8897
8939
  "exclude": args.exclude,
8898
8940
  }
8899
8941
 
8900
- executor.update_parameters(**params)
8942
+ submitit_executor.update_parameters(**params)
8901
8943
 
8902
- print_debug("executor.update_parameters(\n" + json.dumps(params, indent=4) + "\n)")
8944
+ print_debug("submitit_executor.update_parameters(\n" + json.dumps(params, indent=4) + "\n)")
8903
8945
 
8904
8946
  if args.exclude:
8905
8947
  print_yellow(f"Excluding the following nodes: {args.exclude}")
8906
8948
  else:
8907
- _fatal_error("executor could not be found", 9)
8949
+ _fatal_error("submitit_executor could not be found", 9)
8908
8950
 
8909
8951
  def set_global_executor() -> None:
8910
8952
  try:
@@ -10263,7 +10305,13 @@ def run_program_once(params=None) -> None:
10263
10305
  my_exit(57)
10264
10306
 
10265
10307
  def show_omniopt_call() -> None:
10266
- original_print(oo_call + " " + " ".join(sys.argv[1:]))
10308
+ def remove_ui_url(arg_str):
10309
+ return re.sub(r'(?:--ui_url(?:=\S+)?(?:\s+\S+)?)', '', arg_str).strip()
10310
+
10311
+ original_argv = " ".join(sys.argv[1:])
10312
+ cleaned = remove_ui_url(original_argv)
10313
+
10314
+ original_print(oo_call + " " + cleaned)
10267
10315
 
10268
10316
  def main() -> None:
10269
10317
  global RESULT_CSV_FILE, ax_client, LOGFILE_DEBUG_GET_NEXT_TRIALS
@@ -11006,7 +11054,7 @@ def main_outside() -> None:
11006
11054
  end_program(True)
11007
11055
 
11008
11056
  def auto_wrap_namespace(namespace: Any) -> Any:
11009
- enable_beartype = os.getenv("ENABLE_BEARTYPE") is not None
11057
+ enable_beartype = any(os.getenv(v) for v in ("ENABLE_BEARTYPE", "CI"))
11010
11058
 
11011
11059
  excluded_functions = {
11012
11060
  "log_time_and_memory_wrapper",
@@ -11026,7 +11074,6 @@ def auto_wrap_namespace(namespace: Any) -> Any:
11026
11074
  if (isinstance(obj, types.FunctionType) and name not in excluded_functions):
11027
11075
  wrapped = obj
11028
11076
  if enable_beartype:
11029
- print(f"Wrapping function '{name}' in @beartype")
11030
11077
  wrapped = beartype(wrapped)
11031
11078
 
11032
11079
  if args.runtime_debug:
@@ -1954,7 +1954,7 @@ EOF
1954
1954
  sbatch_command=$(echo "$sbatch_command" | sed -e 's#^[[:space:]]*##' -e 's#[[:space:]]*$##')
1955
1955
  red_text "Failed to start sbatch job. Command:\n"
1956
1956
  red_text "$sbatch_command\n"
1957
- red_text "Exit-Code: $exit_code\n"
1957
+ red_text "Exit-Code (sbatch): $exit_code\n"
1958
1958
 
1959
1959
  myexit $exit_code
1960
1960
  fi
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omniopt2
3
- Version: 8129
3
+ Version: 8167
4
4
  Summary: Automatic highly parallelized hyperparameter optimizer based on Ax/Botorch
5
5
  Home-page: https://scads.ai/transfer-2/verfuegbare-software-dienste-en/omniopt/
6
6
  Author: Norman Koch
@@ -3,7 +3,7 @@
3
3
  .general.sh,sha256=uyGMN8xNToQ0v50KoiYxm6jRmgf0orroOaodM_Nuq30,2107
4
4
  .gitignore,sha256=GmSD6dE4AqN4_fhQUdAzydst60s3w3ePYxetTr3Et7c,3776
5
5
  .helpers.py,sha256=posn69_5fnlCqU-jRTFaED0LoeC2uuQe6r9NuqvfHm0,31456
6
- .omniopt.py,sha256=JRBDV3C7D4L8DMq-CPwddm_qWqO04-vaJy2LEBmTEtE,431304
6
+ .omniopt.py,sha256=Uf7m37w65oUv6Iuhu_NWDBDJUpj7IzS7YihaybSKzCw,433380
7
7
  .omniopt_plot_cpu_ram_usage.py,sha256=DbOAmdrbcZtsMnHJgHfeRngjtv6zX5J0axyua_dYezc,3932
8
8
  .omniopt_plot_general.py,sha256=3iy-bPef8I5rTB3KRz-TuleMdgKDmVZ6c8LuNQhNwu0,6810
9
9
  .omniopt_plot_gpu_usage.py,sha256=ojxVicwSoiyl7f3c-6lLuT2EpyPcSJKEcbp75LgDY2k,5107
@@ -21,51 +21,51 @@ LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
21
21
  MANIFEST.in,sha256=L3QBXyL1TtyWxbAPsfjZdCfpeBrRuI5MSgdnvwdQ22Q,24
22
22
  README.md,sha256=WJxay4TRM8wfK_k5C01SlizLUHgKqlMwa_PQwAxj-As,3221
23
23
  apt-dependencies.txt,sha256=X5tBB8ZLW9XaFtRh8B7C2pIkSoxNNawqioDr0QZAtuM,149
24
- omniopt,sha256=4cZwHmYuwhwzb7gSvGvN_lEp61mPZuPeuJ-kqiGojSc,50843
24
+ omniopt,sha256=1JkaAUOyNb1e81U47sXr2VU4smjOG0i0iWTzkeH3j5E,50852
25
25
  omniopt_docker,sha256=LWVUeyvmA5AKqAHiH9jBUkR5uZ6AHMnSy0eET7mK6E4,3602
26
26
  omniopt_evaluate,sha256=9oBh0_ikCuIz_aJQZrN0j39NDiIDYoSvEFmSVIoFjJE,23842
27
27
  omniopt_plot,sha256=ze6Dz2k0w5jyUnfatAA7dk59nzQjKC_G36tDvJGWsfA,13696
28
28
  omniopt_share,sha256=2KZcTjN_7vcxNjb4sLLiWgUc38pl2-6-Qwmgq6_nTb0,13856
29
- pyproject.toml,sha256=3bu_D9e_qNd0WJTgBBvmxG7YehQxEkHcU3m_-pZjh5w,397
29
+ pyproject.toml,sha256=2rlAz7Qx9S-23CAVKKkUYxClyeyx68nLO1r8fjkCBss,397
30
30
  requirements.txt,sha256=-dJa3VXI74qUD39-aF6whZV6RTN7Dt7KE3o43PnFHqA,299
31
31
  setup.cfg,sha256=HEc8uu6NpfxG5_AVh5SvXOpEFMNKPPPxgMIAH144vT4,38
32
32
  test_requirements.txt,sha256=jpyZzAwbWR_qnoRqWvpBB5MUjIX9jVwynX2D-B-r8aA,487
33
33
  .tests/pylint.rc,sha256=ZGtZjVgJtK_6tdwgscJneS-LUeDASjSVVz6veCkp9rw,22631
34
- omniopt2-8129.data/data/bin/.colorfunctions.sh,sha256=xxc08V3Fh_0Je20fkJMRO14u9VCSvMyOiMaDfioEyCY,1098
35
- omniopt2-8129.data/data/bin/.general.sh,sha256=uyGMN8xNToQ0v50KoiYxm6jRmgf0orroOaodM_Nuq30,2107
36
- omniopt2-8129.data/data/bin/.helpers.py,sha256=posn69_5fnlCqU-jRTFaED0LoeC2uuQe6r9NuqvfHm0,31456
37
- omniopt2-8129.data/data/bin/.omniopt.py,sha256=JRBDV3C7D4L8DMq-CPwddm_qWqO04-vaJy2LEBmTEtE,431304
38
- omniopt2-8129.data/data/bin/.omniopt_plot_cpu_ram_usage.py,sha256=DbOAmdrbcZtsMnHJgHfeRngjtv6zX5J0axyua_dYezc,3932
39
- omniopt2-8129.data/data/bin/.omniopt_plot_general.py,sha256=3iy-bPef8I5rTB3KRz-TuleMdgKDmVZ6c8LuNQhNwu0,6810
40
- omniopt2-8129.data/data/bin/.omniopt_plot_gpu_usage.py,sha256=ojxVicwSoiyl7f3c-6lLuT2EpyPcSJKEcbp75LgDY2k,5107
41
- omniopt2-8129.data/data/bin/.omniopt_plot_kde.py,sha256=uRLWr72TDKvj3AqJ0O0AvkKZ1ok1O1QpXnbfQQdo0nA,6873
42
- omniopt2-8129.data/data/bin/.omniopt_plot_scatter.py,sha256=b0_CIqgyi6PztaUVJRL9X9XBTaOonh-yDH2hRxMGkH0,8403
43
- omniopt2-8129.data/data/bin/.omniopt_plot_scatter_generation_method.py,sha256=rgKY_w1E516c9UucVaEvaKd8tCnoUq9xg-RrYSDzYEQ,4289
44
- omniopt2-8129.data/data/bin/.omniopt_plot_scatter_hex.py,sha256=UKjw40c1eumgEcf0xqB-_SakX5PB6HD3u4VwBxbsgQo,10279
45
- omniopt2-8129.data/data/bin/.omniopt_plot_time_and_exit_code.py,sha256=WUyl2uI59wsC1eSX_5uJHOrqcF-s5cUDIEu8u3IFMLU,6462
46
- omniopt2-8129.data/data/bin/.omniopt_plot_trial_index_result.py,sha256=9ApSv3-eZXohafsCAY5jr2B0rG4XpaTloCb0TuevYSg,4577
47
- omniopt2-8129.data/data/bin/.omniopt_plot_worker.py,sha256=VuluQq4W6KRR5RU08dxmDSFk5mbfDRkRJQFwwcLgAGw,4524
48
- omniopt2-8129.data/data/bin/.random_generator.py,sha256=ezBBUXpez_QaGdpCglMcJ0KZPdQP0XdX5gnLzO1xhwU,2987
49
- omniopt2-8129.data/data/bin/.shellscript_functions,sha256=9Yo5j3BBLDNVPwe2uNjHbVCbj3H1v1gC5Ju8KvPXfC4,13624
50
- omniopt2-8129.data/data/bin/.tpe.py,sha256=xxQuTZFQHHobvZuqG8cP2y2ev8ifjlLvex3TOaNWq8w,6754
51
- omniopt2-8129.data/data/bin/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
52
- omniopt2-8129.data/data/bin/apt-dependencies.txt,sha256=X5tBB8ZLW9XaFtRh8B7C2pIkSoxNNawqioDr0QZAtuM,149
53
- omniopt2-8129.data/data/bin/omniopt,sha256=4cZwHmYuwhwzb7gSvGvN_lEp61mPZuPeuJ-kqiGojSc,50843
54
- omniopt2-8129.data/data/bin/omniopt_docker,sha256=LWVUeyvmA5AKqAHiH9jBUkR5uZ6AHMnSy0eET7mK6E4,3602
55
- omniopt2-8129.data/data/bin/omniopt_evaluate,sha256=9oBh0_ikCuIz_aJQZrN0j39NDiIDYoSvEFmSVIoFjJE,23842
56
- omniopt2-8129.data/data/bin/omniopt_plot,sha256=ze6Dz2k0w5jyUnfatAA7dk59nzQjKC_G36tDvJGWsfA,13696
57
- omniopt2-8129.data/data/bin/omniopt_share,sha256=2KZcTjN_7vcxNjb4sLLiWgUc38pl2-6-Qwmgq6_nTb0,13856
58
- omniopt2-8129.data/data/bin/pylint.rc,sha256=ZGtZjVgJtK_6tdwgscJneS-LUeDASjSVVz6veCkp9rw,22631
59
- omniopt2-8129.data/data/bin/requirements.txt,sha256=-dJa3VXI74qUD39-aF6whZV6RTN7Dt7KE3o43PnFHqA,299
60
- omniopt2-8129.data/data/bin/setup.py,sha256=zg7k4jeHXEdaGWGeB1mPC14fFj-hqz1vNimnU0JcMyk,4632
61
- omniopt2-8129.data/data/bin/test_requirements.txt,sha256=jpyZzAwbWR_qnoRqWvpBB5MUjIX9jVwynX2D-B-r8aA,487
62
- omniopt2-8129.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
63
- omniopt2.egg-info/PKG-INFO,sha256=mSFHa-No7FW746wHUCP47oMscp5iwMl6Xz_USejedjY,5740
34
+ omniopt2-8167.data/data/bin/.colorfunctions.sh,sha256=xxc08V3Fh_0Je20fkJMRO14u9VCSvMyOiMaDfioEyCY,1098
35
+ omniopt2-8167.data/data/bin/.general.sh,sha256=uyGMN8xNToQ0v50KoiYxm6jRmgf0orroOaodM_Nuq30,2107
36
+ omniopt2-8167.data/data/bin/.helpers.py,sha256=posn69_5fnlCqU-jRTFaED0LoeC2uuQe6r9NuqvfHm0,31456
37
+ omniopt2-8167.data/data/bin/.omniopt.py,sha256=Uf7m37w65oUv6Iuhu_NWDBDJUpj7IzS7YihaybSKzCw,433380
38
+ omniopt2-8167.data/data/bin/.omniopt_plot_cpu_ram_usage.py,sha256=DbOAmdrbcZtsMnHJgHfeRngjtv6zX5J0axyua_dYezc,3932
39
+ omniopt2-8167.data/data/bin/.omniopt_plot_general.py,sha256=3iy-bPef8I5rTB3KRz-TuleMdgKDmVZ6c8LuNQhNwu0,6810
40
+ omniopt2-8167.data/data/bin/.omniopt_plot_gpu_usage.py,sha256=ojxVicwSoiyl7f3c-6lLuT2EpyPcSJKEcbp75LgDY2k,5107
41
+ omniopt2-8167.data/data/bin/.omniopt_plot_kde.py,sha256=uRLWr72TDKvj3AqJ0O0AvkKZ1ok1O1QpXnbfQQdo0nA,6873
42
+ omniopt2-8167.data/data/bin/.omniopt_plot_scatter.py,sha256=b0_CIqgyi6PztaUVJRL9X9XBTaOonh-yDH2hRxMGkH0,8403
43
+ omniopt2-8167.data/data/bin/.omniopt_plot_scatter_generation_method.py,sha256=rgKY_w1E516c9UucVaEvaKd8tCnoUq9xg-RrYSDzYEQ,4289
44
+ omniopt2-8167.data/data/bin/.omniopt_plot_scatter_hex.py,sha256=UKjw40c1eumgEcf0xqB-_SakX5PB6HD3u4VwBxbsgQo,10279
45
+ omniopt2-8167.data/data/bin/.omniopt_plot_time_and_exit_code.py,sha256=WUyl2uI59wsC1eSX_5uJHOrqcF-s5cUDIEu8u3IFMLU,6462
46
+ omniopt2-8167.data/data/bin/.omniopt_plot_trial_index_result.py,sha256=9ApSv3-eZXohafsCAY5jr2B0rG4XpaTloCb0TuevYSg,4577
47
+ omniopt2-8167.data/data/bin/.omniopt_plot_worker.py,sha256=VuluQq4W6KRR5RU08dxmDSFk5mbfDRkRJQFwwcLgAGw,4524
48
+ omniopt2-8167.data/data/bin/.random_generator.py,sha256=ezBBUXpez_QaGdpCglMcJ0KZPdQP0XdX5gnLzO1xhwU,2987
49
+ omniopt2-8167.data/data/bin/.shellscript_functions,sha256=9Yo5j3BBLDNVPwe2uNjHbVCbj3H1v1gC5Ju8KvPXfC4,13624
50
+ omniopt2-8167.data/data/bin/.tpe.py,sha256=xxQuTZFQHHobvZuqG8cP2y2ev8ifjlLvex3TOaNWq8w,6754
51
+ omniopt2-8167.data/data/bin/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
52
+ omniopt2-8167.data/data/bin/apt-dependencies.txt,sha256=X5tBB8ZLW9XaFtRh8B7C2pIkSoxNNawqioDr0QZAtuM,149
53
+ omniopt2-8167.data/data/bin/omniopt,sha256=1JkaAUOyNb1e81U47sXr2VU4smjOG0i0iWTzkeH3j5E,50852
54
+ omniopt2-8167.data/data/bin/omniopt_docker,sha256=LWVUeyvmA5AKqAHiH9jBUkR5uZ6AHMnSy0eET7mK6E4,3602
55
+ omniopt2-8167.data/data/bin/omniopt_evaluate,sha256=9oBh0_ikCuIz_aJQZrN0j39NDiIDYoSvEFmSVIoFjJE,23842
56
+ omniopt2-8167.data/data/bin/omniopt_plot,sha256=ze6Dz2k0w5jyUnfatAA7dk59nzQjKC_G36tDvJGWsfA,13696
57
+ omniopt2-8167.data/data/bin/omniopt_share,sha256=2KZcTjN_7vcxNjb4sLLiWgUc38pl2-6-Qwmgq6_nTb0,13856
58
+ omniopt2-8167.data/data/bin/pylint.rc,sha256=ZGtZjVgJtK_6tdwgscJneS-LUeDASjSVVz6veCkp9rw,22631
59
+ omniopt2-8167.data/data/bin/requirements.txt,sha256=-dJa3VXI74qUD39-aF6whZV6RTN7Dt7KE3o43PnFHqA,299
60
+ omniopt2-8167.data/data/bin/setup.py,sha256=zg7k4jeHXEdaGWGeB1mPC14fFj-hqz1vNimnU0JcMyk,4632
61
+ omniopt2-8167.data/data/bin/test_requirements.txt,sha256=jpyZzAwbWR_qnoRqWvpBB5MUjIX9jVwynX2D-B-r8aA,487
62
+ omniopt2-8167.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
63
+ omniopt2.egg-info/PKG-INFO,sha256=EtVKfxYyVokfB8XD-lxn2cIq-nAoF7BxHjcX-ILV3c0,5740
64
64
  omniopt2.egg-info/SOURCES.txt,sha256=2mSVIhM8Ncyl5_s8ZFBlb6qjRDbTCQmV9FwVVjp5ROE,795
65
65
  omniopt2.egg-info/dependency_links.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
66
66
  omniopt2.egg-info/requires.txt,sha256=aCvaeeNulrw3AspOfG7FYwkso3fOUXeUqioyYvEnyFI,786
67
67
  omniopt2.egg-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
68
- omniopt2-8129.dist-info/METADATA,sha256=mSFHa-No7FW746wHUCP47oMscp5iwMl6Xz_USejedjY,5740
69
- omniopt2-8129.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
70
- omniopt2-8129.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
71
- omniopt2-8129.dist-info/RECORD,,
68
+ omniopt2-8167.dist-info/METADATA,sha256=EtVKfxYyVokfB8XD-lxn2cIq-nAoF7BxHjcX-ILV3c0,5740
69
+ omniopt2-8167.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
70
+ omniopt2-8167.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
71
+ omniopt2-8167.dist-info/RECORD,,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: omniopt2
3
- Version: 8129
3
+ Version: 8167
4
4
  Summary: Automatic highly parallelized hyperparameter optimizer based on Ax/Botorch
5
5
  Home-page: https://scads.ai/transfer-2/verfuegbare-software-dienste-en/omniopt/
6
6
  Author: Norman Koch
pyproject.toml CHANGED
@@ -5,7 +5,7 @@ authors = [
5
5
  {email = "norman.koch@tu-dresden.de"},
6
6
  {name = "Norman Koch"}
7
7
  ]
8
- version = "8129"
8
+ version = "8167"
9
9
 
10
10
  readme = "README.md"
11
11
  dynamic = ["dependencies"]