code: def line(
      glyph, df, schema, canvas, summary, *, antialias=False, cuda=False
  ):
      if cuda:
          from cudf import concat
      else:
          from pandas import concat
  
      shape, bounds, st, axis = shape_bounds_st_and_axis(
          df, canvas, glyph
      )
  
      # Compile functions
      partitioned = isinstance(df, dd.DataFrame) and df.npartitions > 1
      (
          create,
          info,
          append,
          combine,
          finalize,
          antialias_stage_2,
          antialias_stage_2_funcs,
          _,
      ) = compile_components(
          summary,
          schema,
          glyph,
          antialias=antialias,
          cuda=cuda,
          partitioned=partitioned,
      )
      x_mapper = canvas.x_axis.mapper
      y_mapper = canvas.y_axis.mapper
      extend = glyph._build_extend(
          x_mapper,
          y_mapper,
          info,
          append,
          antialias_stage_2,
          antialias_stage_2_funcs,
      )
      x_range = bounds[:2]
      y_range = bounds[2:]
  
      def chunk(df, df2=None):
          plot_start = True
          if df2 is not None:
              df = concat([df.iloc[-1:], df2])
              plot_start = False
          aggs = create(shape)
          extend(aggs, df, st, bounds, plot_start=plot_start)
          return aggs
  
      name = tokenize(df.__dask_tokenize__(), canvas, glyph, summary)
      old_name = df.__dask_tokenize__()
      dsk = {(name, 0): (chunk, (old_name, 0))}
      for i in range(1, df.npartitions):
          dsk[(name, i)] = (chunk, (old_name, i - 1), (old_name, i))
      keys2 = [(name, i) for i in range(df.npartitions)]
      dsk[name] = (
          apply,
          finalize,
          [(combine, keys2)],
          dict(
              cuda=cuda,
              coords=axis,
              dims=[glyph.y_label, glyph.x_label],
              attrs=dict(x_range=x_range, y_range=y_range),
          ),
      )
      return dsk, name
  
file_path: datashader/datashader/data_libraries/dask.py
imports: from __future__ import annotations
  import numpy
  import pandas
  import dask
  import dask.array
  import dask.dataframe
  from dask.base import tokenize, compute
  from datashader.core import bypixel
  from datashader.utils import apply
  from datashader.compiler import compile_components
  from datashader.glyphs import Glyph, LineAxis0
  from datashader.utils import Dispatcher
label_desc: Use image node_id 4 for calling a global function with example usage: line(glyph, df, schema, canvas, summary) and returns: dsk,  name, aggs