code: def feature_scale_train(
      ctx: Context,
      role: Role,
      train_data: cpn.dataframe_input(roles=[GUEST, HOST]),
      method: cpn.parameter(
          type=params.string_choice(["standard", "min_max"]),
          default="standard",
          optional=False,
      ),
      feature_range: cpn.parameter(
          type=Union[list, dict],
          default=[0, 1],
          optional=True,
          desc="Result feature value range for `min_max` method, "
          "take either dict in format: {col_name: [min, max]} for specific columns "
          "or [min, max] for all columns. Columns unspecified will be scaled to default range [0,1]",
      ),
      scale_col: cpn.parameter(
          type=List[str],
          default=None,
          optional=True,
          desc="list of column names to be scaled, if None, all columns will be scaled; "
          "only one of {scale_col, scale_idx} should be specified",
      ),
      scale_idx: cpn.parameter(
          type=List[params.conint(ge=0)],
          default=None,
          optional=True,
          desc="list of column index to be scaled, if None, all columns will be scaled; "
          "only one of {scale_col, scale_idx} should be specified",
      ),
      strict_range: cpn.parameter(
          type=bool,
          default=True,
          desc="whether transformed value to be strictly restricted within given range; "
          "effective for 'min_max' scale method only",
      ),
      use_anonymous: cpn.parameter(
          type=bool,
          default=False,
          desc="bool, whether interpret `scale_col` as anonymous column names",
      ),
      train_output_data: cpn.dataframe_output(roles=[GUEST, HOST]),
      output_model: cpn.json_model_output(roles=[GUEST, HOST]),
  ):
      train(
          ctx,
          train_data,
          train_output_data,
          output_model,
          method,
          feature_range,
          scale_col,
          scale_idx,
          strict_range,
          use_anonymous,
      )
  
file_path: FATE/python/fate/components/components/feature_scale.py
imports: import logging
  from typing import List, Union
  from fate.arch import Context
  from fate.components.core import GUEST, HOST, Role, cpn, params
label_desc: Use image node_id 2 for calling a global function with example usage: feature_scale_train(ctx, role, train_data, method, feature_range, scale_col, scale_idx, strict_range, use_anonymous, train_output_data, output_model) without return types