code: def add_columns(
      df: pd.DataFrame,
      fill_remaining: bool = False,
      **kwargs: Any,
  ) -> pd.DataFrame:
      """Add multiple columns to the dataframe.
  
      This method does not mutate the original DataFrame.
  
      Method to augment
      [`add_column`][janitor.functions.add_columns.add_column]
      with ability to add multiple columns in
      one go. This replaces the need for multiple
      [`add_column`][janitor.functions.add_columns.add_column] calls.
  
      Usage is through supplying kwargs where the key is the col name and the
      values correspond to the values of the new DataFrame column.
  
      Values passed can be scalar or iterable (list, ndarray, etc.)
  
      !!!note
  
          This function will be deprecated in a 1.x release.
          Please use `pd.DataFrame.assign` instead.
  
      Examples:
          Inserting two more columns into a dataframe.
  
          >>> import pandas as pd
          >>> import janitor
          >>> df = pd.DataFrame({"a": list(range(3)), "b": list("abc")})
          >>> df.add_columns(x=4, y=list("def"))
             a  b  x  y
          0  0  a  4  d
          1  1  b  4  e
          2  2  c  4  f
  
      Args:
          df: A pandas DataFrame.
          fill_remaining: If value is a tuple or list that is smaller than
              the number of rows in the DataFrame, repeat the list or tuple
              (R-style) to the end of the DataFrame. (Passed to
              [`add_column`][janitor.functions.add_columns.add_column])
          **kwargs: Column, value pairs which are looped through in
              [`add_column`][janitor.functions.add_columns.add_column] calls.
  
      Returns:
          A pandas DataFrame with added columns.
      """
      # Note: error checking can pretty much be handled in `add_column`
  
      for col_name, values in kwargs.items():
          df = df.add_column(
              col_name, values, fill_remaining=fill_remaining
          )
  
      return df
  
imports: from typing import Any, List, Tuple, Union
  import numpy
  import pandas
  import pandas_flavor
  from janitor.utils import check, deprecated_alias, refactored_function
label_desc: Use image node_id 2 for calling a global function with example usage: add_columns(df, fill_remaining) and returns: df