code: def compose(*funcs):
      """
      Compose any number of unary functions into a single unary function.
  
      >>> import textwrap
      >>> expected = str.strip(textwrap.dedent(compose.__doc__))
      >>> strip_and_dedent = compose(str.strip, textwrap.dedent)
      >>> strip_and_dedent(compose.__doc__) == expected
      True
  
      Compose also allows the innermost function to take arbitrary arguments.
  
      >>> round_three = lambda x: round(x, ndigits=3)
      >>> f = compose(round_three, int.__truediv__)
      >>> [f(3*x, x+1) for x in range(1,10)]
      [1.5, 2.0, 2.25, 2.4, 2.5, 2.571, 2.625, 2.667, 2.7]
      """
  
      def compose_two(f1, f2):
          return lambda *args, **kwargs: f1(f2(*args, **kwargs))
  
      return functools.reduce(compose_two, funcs)
  
imports: import functools
  import time
  import inspect
  import collections
  import types
  import itertools
  import warnings
  import setuptools.extern.more_itertools
  from typing import Callable, TypeVar
label_desc: Use image node_id 1 for calling a global function with example usage: compose() and returns: functools, function