class_docstr: Fit and predict one or more estimators on one or more datasets.
class_docstr_tok: ["Fit","and","predict","one","or","more","estimators","on","one","or","more","datasets","."]
docstr: Validate strategy names.
docstr_tok: ["Validate","strategy","names","."]
code: def _validate_strategy_names(strategies):
      """Validate strategy names."""
      # Check uniqueness of strategy names
      names = [strategy.name for strategy in strategies]
      if not len(names) == len(set(names)):
          raise ValueError(
              f"Names of provided strategies are not unique: "
              f"{names}"
          )
  
      # Check for conflicts with estimator kwargs
      all_params = []
      for strategy in strategies:
          params = list(strategy.get_params(deep=False).keys())
          all_params.extend(params)
  
      invalid_names = set(names).intersection(set(all_params))
      if invalid_names:
          raise ValueError(
              f"Strategy names conflict with constructor "
              f"arguments: {sorted(invalid_names)}"
          )
  
      # Check for conflicts with double-underscore convention
      invalid_names = [name for name in names if "__" in name]
      if invalid_names:
          raise ValueError(
              f"Estimator names must not contain __: got "
              f"{invalid_names}"
          )
  
file_path: sktime/sktime/benchmarking/orchestration.py
imports: import logging
  import pandas
  from sklearn.base import clone
  from sktime.benchmarking.tasks import TSCTask, TSRTask
label_desc: Use image node_id 7 for calling the Orchestrator obj's underlying member method code with example usage: obj._validate_strategy_names(strategies) without return types