Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def create_slack_observer(webhook=None):
from sacred.observers import SlackObserver
slack_obs = None
if webhook is None:
if "OBSERVERS" in SETTINGS and "SLACK" in SETTINGS.OBSERVERS:
if "WEBHOOK" in SETTINGS.OBSERVERS.SLACK:
webhook = SETTINGS.OBSERVERS.SLACK.WEBHOOK
slack_obs = SlackObserver(webhook)
else:
slack_obs = SlackObserver(webhook)
if slack_obs is None:
logging.warning('Failed to create Slack observer.')
return slack_obs
def create_neptune_observer(project_name, api_token=None,
source_extensions=['**/*.py', '**/*.yaml', '**/*.yml']):
from neptunecontrib.monitoring.sacred import NeptuneObserver
if api_token is None:
if "OBSERVERS" in SETTINGS and "NEPTUNE" in SETTINGS.OBSERVERS:
if "AUTH_TOKEN" in SETTINGS.OBSERVERS.NEPTUNE:
api_token = SETTINGS.OBSERVERS.NEPTUNE.AUTH_TOKEN
else:
api_token = SETTINGS.OBSERVERS.NEPTUNE.AUTH_TOKEN
if api_token is None:
logging.info('No API token for Nepune provided. Trying to use environment variable NEPTUNE_API_TOKEN.')
neptune_obs = NeptuneObserver(api_token=api_token, project_name=project_name, source_extensions=source_extensions)
return neptune_obs
# Use current Anaconda environment if not specified
if 'conda_environment' not in seml_config:
if 'CONDA_DEFAULT_ENV' in os.environ:
seml_config['conda_environment'] = os.environ['CONDA_DEFAULT_ENV']
else:
seml_config['conda_environment'] = None
# Set Slurm config with default parameters as fall-back option
if slurm_config is None:
slurm_config = {'sbatch_options': {}}
for k, v in SETTINGS.SLURM_DEFAULT['sbatch_options'].items():
if k not in slurm_config['sbatch_options']:
slurm_config['sbatch_options'][k] = v
del SETTINGS.SLURM_DEFAULT['sbatch_options']
for k, v in SETTINGS.SLURM_DEFAULT.items():
if k not in slurm_config:
slurm_config[k] = v
slurm_config['sbatch_options'] = remove_prepended_dashes(slurm_config['sbatch_options'])
collection = get_collection(db_collection_name)
configs = generate_configs(experiment_config)
batch_id = get_max_in_collection(collection, "batch_id")
if batch_id is None:
batch_id = 1
else:
batch_id = batch_id + 1
if seml_config['use_uploaded_sources']:
uploaded_files = upload_sources(seml_config, collection, batch_id)
else:
def queue_experiments(db_collection_name, config_file, force_duplicates, no_hash=False, no_config_check=False):
seml_config, slurm_config, experiment_config = read_config(config_file)
# Use current Anaconda environment if not specified
if 'conda_environment' not in seml_config:
if 'CONDA_DEFAULT_ENV' in os.environ:
seml_config['conda_environment'] = os.environ['CONDA_DEFAULT_ENV']
else:
seml_config['conda_environment'] = None
# Set Slurm config with default parameters as fall-back option
if slurm_config is None:
slurm_config = {'sbatch_options': {}}
for k, v in SETTINGS.SLURM_DEFAULT['sbatch_options'].items():
if k not in slurm_config['sbatch_options']:
slurm_config['sbatch_options'][k] = v
del SETTINGS.SLURM_DEFAULT['sbatch_options']
for k, v in SETTINGS.SLURM_DEFAULT.items():
if k not in slurm_config:
slurm_config[k] = v
slurm_config['sbatch_options'] = remove_prepended_dashes(slurm_config['sbatch_options'])
collection = get_collection(db_collection_name)
configs = generate_configs(experiment_config)
batch_id = get_max_in_collection(collection, "batch_id")
if batch_id is None:
batch_id = 1
else:
batch_id = batch_id + 1