parameters: (expansion_file: str, evg_api_config: str, evg_project_config: str, output_file: str,
           verbose: bool, resmoke_run_args: Tuple[str])
docstring: Generate task configuration for a build variant.
      \f
      :param expansion_file: Location of evergreen expansions for task.
      :param evg_api_config: Location of file containing evergreen API authentication information.
      :param evg_project_config: Location of file containing evergreen project configuration.
      :param output_file: Location to write generated configuration to.
      :param verbose: Should verbose logging be used.
      :param resmoke_run_args: Args to forward to `resmoke.py run`.
docstring_summary: Generate task configuration for a build variant.
      \f
      :param expansion_file: Location of evergreen expansions for task.
      :param evg_api_config: Location of file containing evergreen API authentication information.
      :param evg_project_config: Location of file containing evergreen project configuration.
      :param output_file: Location to write generated configuration to.
      :param verbose: Should verbose logging be used.
      :param resmoke_run_args: Args to forward to `resmoke.py run`.
docstring_tokens: Generate task configuration for a build variant . \ f : param expansion_file : Location of evergreen expansions for task . : param evg_api_config : Location of file containing evergreen API authentication information . : param evg_project_config : Location of file containing evergreen project configuration . : param output_file : Location to write generated configuration to . : param verbose : Should verbose logging be used . : param resmoke_run_args : Args to forward to resmoke . py run .
function: def main(expansion_file: str, evg_api_config: str, evg_project_config: str, output_file: str,
           verbose: bool, resmoke_run_args: Tuple[str]) -> None:
      """
      Generate task configuration for a build variant.
      \f
      :param expansion_file: Location of evergreen expansions for task.
      :param evg_api_config: Location of file containing evergreen API authentication information.
      :param evg_project_config: Location of file containing evergreen project configuration.
      :param output_file: Location to write generated configuration to.
      :param verbose: Should verbose logging be used.
      :param resmoke_run_args: Args to forward to `resmoke.py run`.
      """
      enable_logging(verbose)
  
      end_date = datetime.utcnow().replace(microsecond=0)
      start_date = end_date - timedelta(days=LOOKBACK_DURATION_DAYS)
  
      evg_expansions = EvgExpansions.from_yaml_file(expansion_file)
  
      # pylint: disable=no-value-for-parameter
      def dependencies(binder: inject.Binder) -> None:
          binder.bind(EvgExpansions, evg_expansions)
          binder.bind(SuiteSplitConfig, evg_expansions.build_suite_split_config(start_date, end_date))
          binder.bind(SplitStrategy, greedy_division)
          binder.bind(FallbackStrategy, round_robin_fallback)
          binder.bind(GenTaskOptions, evg_expansions.build_evg_config_gen_options())
          binder.bind(EvergreenApi, RetryingEvergreenApi.get_api(config_file=evg_api_config))
          binder.bind(EvergreenProjectConfig, parse_evergreen_file(evg_project_config))
          binder.bind(GenerationConfiguration, GenerationConfiguration.from_yaml_file())
          binder.bind(ResmokeProxyService, ResmokeProxyService(" ".join(resmoke_run_args)))
  
      inject.configure(dependencies)
  
      orchestrator = GenerateBuildVariantOrchestrator()  # pylint: disable=no-value-for-parameter
      start_time = perf_counter()
      orchestrator.generate(evg_expansions.task_id, evg_expansions.build_variant, output_file)
      end_time = perf_counter()
  
      LOGGER.info("Total runtime", duration=end_time - start_time)
function_tokens: def main ( expansion_file : str , evg_api_config : str , evg_project_config : str , output_file : str , verbose : bool , resmoke_run_args : Tuple [ str ] ) -> None : enable_logging ( verbose ) end_date = datetime . utcnow ( ) . replace ( microsecond = 0 ) start_date = end_date - timedelta ( days = LOOKBACK_DURATION_DAYS ) evg_expansions = EvgExpansions . from_yaml_file ( expansion_file ) # pylint: disable=no-value-for-parameter def dependencies ( binder : inject . Binder ) -> None : binder . bind ( EvgExpansions , evg_expansions ) binder . bind ( SuiteSplitConfig , evg_expansions . build_suite_split_config ( start_date , end_date ) ) binder . bind ( SplitStrategy , greedy_division ) binder . bind ( FallbackStrategy , round_robin_fallback ) binder . bind ( GenTaskOptions , evg_expansions . build_evg_config_gen_options ( ) ) binder . bind ( EvergreenApi , RetryingEvergreenApi . get_api ( config_file = evg_api_config ) ) binder . bind ( EvergreenProjectConfig , parse_evergreen_file ( evg_project_config ) ) binder . bind ( GenerationConfiguration , GenerationConfiguration . from_yaml_file ( ) ) binder . bind ( ResmokeProxyService , ResmokeProxyService ( " " . join ( resmoke_run_args ) ) ) inject . configure ( dependencies ) orchestrator = GenerateBuildVariantOrchestrator ( ) # pylint: disable=no-value-for-parameter start_time = perf_counter ( ) orchestrator . generate ( evg_expansions . task_id , evg_expansions . build_variant , output_file ) end_time = perf_counter ( ) LOGGER . info ( "Total runtime" , duration = end_time - start_time )