class_docstr: Data representing numbers.
  
  :param locale:
      A locale specification such as :code:`en_US` or :code:`de_DE` to use
      for parsing formatted numbers.
  :param group_symbol:
      A grouping symbol used in the numbers. Overrides the value provided by
      the specified :code:`locale`.
  :param decimal_symbol:
      A decimal separate symbol used in the numbers. Overrides the value
      provided by the specified :code:`locale`.
  :param currency_symbols:
      A sequence of currency symbols to strip from numbers.
code: def __init__(
      self,
      locale="en_US",
      group_symbol=None,
      decimal_symbol=None,
      currency_symbols=DEFAULT_CURRENCY_SYMBOLS,
      **kwargs,
  ):
      super().__init__(**kwargs)
  
      self.locale = Locale.parse(locale)
  
      self.currency_symbols = currency_symbols
  
      # Suppress Babel warning on Python 3.6
      # See #665
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
  
          # Babel 2.14 support.
          # https://babel.pocoo.org/en/latest/changelog.html#possibly-backwards-incompatible-changes
          number_symbols = self.locale.number_symbols.get(
              "latn", self.locale.number_symbols
          )
          self.group_symbol = group_symbol or number_symbols.get(
              "group", ","
          )
          self.decimal_symbol = decimal_symbol or number_symbols.get(
              "decimal", "."
          )
  
file_path: agate/agate/data_types/number.py
imports: import warnings
  from decimal import Decimal, InvalidOperation
  from babel.core import Locale
  from agate.data_types.base import DataType
  from agate.exceptions import CastError
label_desc: Use image node_id 1 to create a new Number object from inherited base classes: DataType with example: obj = Number(locale, group_symbol, decimal_symbol, currency_symbols)