# Path: poker/_common.py
# class PokerEnum(_OrderableMixin, enum.Enum, metaclass=_PokerEnumMeta):
#     def __str__(self):
#         return str(self._value_[0])
# 
#     def __repr__(self):
#         val = self._value_[0]
#         apostrophe = "'" if isinstance(val, str) else ""
#         return f"{self.__class__.__name__}({apostrophe}{val}{apostrophe})"
# 
#     def __format__(self, format_spec):
#         return str(self._value_[0])
# 
#     @property
#     def val(self):
#         """The first value of the Enum member."""
#         return self._value_[0]
# 
# class _ReprMixin:
#     def __repr__(self):
#         return f"{self.__class__.__name__}('{self}')"


import itertools
from functools import total_ordering
from ._common import PokerEnum, _ReprMixin


__all__ = ["Suit", "Rank", "Card", "FACE_RANKS", "BROADWAY_RANKS"]


class Suit(PokerEnum):
    CLUBS = "♣", "c", "clubs"
    DIAMONDS = "♦", "d", "diamonds"
    HEARTS = "♥", "h", "hearts"
    SPADES = "♠", "s", "spades"
    # Can't make alias with redefined value property
    # because of a bug in stdlib enum module (line 162)
    # C = '♣', 'c', 'C', 'clubs'



# Path: poker/_common.py
# class PokerEnum(_OrderableMixin, enum.Enum, metaclass=_PokerEnumMeta):
#     def __str__(self):
#         return str(self._value_[0])
# 
#     def __repr__(self):
#         val = self._value_[0]
#         apostrophe = "'" if isinstance(val, str) else ""
#         return f"{self.__class__.__name__}({apostrophe}{val}{apostrophe})"
# 
#     def __format__(self, format_spec):
#         return str(self._value_[0])
# 
#     @property
#     def val(self):
#         """The first value of the Enum member."""
#         return self._value_[0]
# 
# class _ReprMixin:
#     def __repr__(self):
#         return f"{self.__class__.__name__}('{self}')"


# Path: poker/card.py
import itertools
from functools import total_ordering
from ._common import PokerEnum, _ReprMixin



__all__ = ["Suit", "Rank", "Card", "FACE_RANKS", "BROADWAY_RANKS"]


class Suit(PokerEnum):
    CLUBS = "♣", "c", "clubs"
    DIAMONDS = "♦", "d", "diamonds"
    HEARTS = "♥", "h", "hearts"
    SPADES = "♠", "s", "spades"
    # Can't make alias with redefined value property
    # because of a bug in stdlib enum module (line 162)
    # C = '♣', 'c', 'C', 'clubs'



class Rank(PokerEnum):