class TaxNotKnown(Exception):
    """
    Exception for when a tax-inclusive price is requested but we don't know
    what the tax applicable is (yet).
    """


class Price(object):
    """
    Simple price class that encapsulates a price and its tax information

    Attributes:
        incl_tax (Decimal): Price including taxes
        excl_tax (Decimal): Price excluding taxes
        tax (Decimal): Tax amount
        is_tax_known (bool): Whether tax is known
        currency (str): 3 character currency code
    """

    def __init__(self, currency, excl_tax, incl_tax=None, tax=None):
        self.currency = currency
        self.excl_tax = excl_tax
        if incl_tax is not None:
            self.incl_tax = incl_tax
            self.is_tax_known = True
            self.tax = incl_tax - excl_tax
        elif tax is not None:
            self.incl_tax = excl_tax + tax
            self.is_tax_known = True
            self.tax = tax
        else:
            self.is_tax_known = False

class TaxNotKnown(Exception):
    """
    Exception for when a tax-inclusive price is requested but we don't know
    what the tax applicable is (yet).
    """


class Price(object):
    """
    Simple price class that encapsulates a price and its tax information

    Attributes:
        incl_tax (Decimal): Price including taxes
        excl_tax (Decimal): Price excluding taxes
        tax (Decimal): Tax amount
        is_tax_known (bool): Whether tax is known
        currency (str): 3 character currency code
    """

    def __init__(self, currency, excl_tax, incl_tax=None, tax=None):
        self.currency = currency
        self.excl_tax = excl_tax
        if incl_tax is not None:
            self.incl_tax = incl_tax
            self.is_tax_known = True
            self.tax = incl_tax - excl_tax
        elif tax is not None:
            self.incl_tax = excl_tax + tax
            self.is_tax_known = True
            self.tax = tax
        else:
            self.is_tax_known = False

    def __repr__(self):
        if self.is_tax_known:
            return "%s(currency=%r, excl_tax=%r, incl_tax=%r, tax=%r)" % (
                self.__class__.__name__, self.currency, self.excl_tax,
                self.incl_tax, self.tax)
        return "%s(currency=%r, excl_tax=%r)" % (
            self.__class__.__name__, self.currency, self.excl_tax)

Define __repr__ for the core Price class
Define __repr__ for the core Price class

  class TaxNotKnown(Exception):
      """
      Exception for when a tax-inclusive price is requested but we don't know
      what the tax applicable is (yet).
      """
  
  
  class Price(object):
      """
      Simple price class that encapsulates a price and its tax information
  
      Attributes:
          incl_tax (Decimal): Price including taxes
          excl_tax (Decimal): Price excluding taxes
          tax (Decimal): Tax amount
          is_tax_known (bool): Whether tax is known
          currency (str): 3 character currency code
      """
  
      def __init__(self, currency, excl_tax, incl_tax=None, tax=None):
          self.currency = currency
          self.excl_tax = excl_tax
          if incl_tax is not None:
              self.incl_tax = incl_tax
              self.is_tax_known = True
              self.tax = incl_tax - excl_tax
          elif tax is not None:
              self.incl_tax = excl_tax + tax
              self.is_tax_known = True
              self.tax = tax
          else:
              self.is_tax_known = False
  
+     def __repr__(self):
+         if self.is_tax_known:
+             return "%s(currency=%r, excl_tax=%r, incl_tax=%r, tax=%r)" % (
+                 self.__class__.__name__, self.currency, self.excl_tax,
+                 self.incl_tax, self.tax)
+         return "%s(currency=%r, excl_tax=%r)" % (
+             self.__class__.__name__, self.currency, self.excl_tax)
+ 
Define __repr__ for the core Price class
## Code Before:
class TaxNotKnown(Exception):
    """
    Exception for when a tax-inclusive price is requested but we don't know
    what the tax applicable is (yet).
    """


class Price(object):
    """
    Simple price class that encapsulates a price and its tax information

    Attributes:
        incl_tax (Decimal): Price including taxes
        excl_tax (Decimal): Price excluding taxes
        tax (Decimal): Tax amount
        is_tax_known (bool): Whether tax is known
        currency (str): 3 character currency code
    """

    def __init__(self, currency, excl_tax, incl_tax=None, tax=None):
        self.currency = currency
        self.excl_tax = excl_tax
        if incl_tax is not None:
            self.incl_tax = incl_tax
            self.is_tax_known = True
            self.tax = incl_tax - excl_tax
        elif tax is not None:
            self.incl_tax = excl_tax + tax
            self.is_tax_known = True
            self.tax = tax
        else:
            self.is_tax_known = False

## Instruction:
Define __repr__ for the core Price class
## Code After:
class TaxNotKnown(Exception):
    """
    Exception for when a tax-inclusive price is requested but we don't know
    what the tax applicable is (yet).
    """


class Price(object):
    """
    Simple price class that encapsulates a price and its tax information

    Attributes:
        incl_tax (Decimal): Price including taxes
        excl_tax (Decimal): Price excluding taxes
        tax (Decimal): Tax amount
        is_tax_known (bool): Whether tax is known
        currency (str): 3 character currency code
    """

    def __init__(self, currency, excl_tax, incl_tax=None, tax=None):
        self.currency = currency
        self.excl_tax = excl_tax
        if incl_tax is not None:
            self.incl_tax = incl_tax
            self.is_tax_known = True
            self.tax = incl_tax - excl_tax
        elif tax is not None:
            self.incl_tax = excl_tax + tax
            self.is_tax_known = True
            self.tax = tax
        else:
            self.is_tax_known = False

    def __repr__(self):
        if self.is_tax_known:
            return "%s(currency=%r, excl_tax=%r, incl_tax=%r, tax=%r)" % (
                self.__class__.__name__, self.currency, self.excl_tax,
                self.incl_tax, self.tax)
        return "%s(currency=%r, excl_tax=%r)" % (
            self.__class__.__name__, self.currency, self.excl_tax)
