class_docstr: A size of a financial instrument for use in trading.
  
  Parameters
  ----------
  instrument : `Instrument`
      The unit of the quantity.
  size : `Decimal`
      The number of units of the instrument.
  path_id : str, optional
      The path order_id that this quantity is allocated for and associated
      with.
  
  Raises
  ------
  InvalidNegativeQuantity
      Raised if the `size` of the quantity being created is negative.
code: def __init__(
      self, instrument: "Instrument", size: Decimal, path_id: str = None
  ):
      if size < 0:
          if abs(size) > Decimal(10) ** (-instrument.precision):
              raise InvalidNegativeQuantity(float(size))
          else:
              size = 0
  
      self.instrument = instrument
      self.size = size if isinstance(size, Decimal) else Decimal(size)
      self.path_id = path_id
  
imports: import operator
  from typing import Union, Tuple, Callable, TypeVar
  from numbers import Number
  from decimal import Decimal, ROUND_DOWN
  from functools import total_ordering
  from tensortrade.core.exceptions import InvalidNegativeQuantity, IncompatibleInstrumentOperation, InvalidNonNumericQuantity, QuantityOpPathMismatch
label_desc: Use image node_id 1 to create a new Quantity object  with example: obj = Quantity(instrument, size, path_id)