code: def strategy_decimal(draw: DrawFn) -> PyDecimal:
      """Draw a decimal value, varying the number of decimal places."""
      places = draw(integers(min_value=0, max_value=18))
      return draw(
          # TODO: once fixed, re-enable decimal nan/inf values...
          #  (see https://github.com/pola-rs/polars/issues/8421)
          decimals(
              allow_nan=False,
              allow_infinity=False,
              min_value=-(2**66),
              max_value=(2**66) - 1,
              places=places,
          )
      )
  
imports: from __future__ import annotations
  import os
  from datetime import datetime, timedelta
  from itertools import chain
  from random import choice, shuffle
  from string import ascii_uppercase
  from typing import TYPE_CHECKING, Any, Callable, Iterator, Mapping, MutableMapping, Sequence
  from hypothesis.strategies import SearchStrategy, binary, booleans, characters, composite, dates, datetimes, decimals, floats, from_type, integers, lists, sampled_from, sets, text, timedeltas, times
  from polars.datatypes import Binary, Boolean, Categorical, Date, Datetime, Decimal, Duration, Float32, Float64, Int8, Int16, Int32, Int64, List, String, Time, UInt8, UInt16, UInt32, UInt64, is_polars_dtype
  from polars.type_aliases import PolarsDataType
  from polars.utils.deprecation import deprecate_nonkeyword_arguments
label_desc: Use image node_id 2 for calling a global function with example usage: strategy_decimal(draw) and returns: draw