Basic operations

Card suits

Enumeration of suits:

>>> from poker import Suit
>>> list(Suit)
[Suit('♣'), Suit('♦'), Suit('♥'), Suit('♠')]

Suits are comparable:

>>> Suit.CLUBS < Suit.DIAMONDS
True

Card ranks

Enumeration of ranks:

>>> from poker import Rank
>>> list(Rank)
[Rank('2'), Rank('3'), Rank('4'), Rank('5'), Rank('6'), Rank('7'), Rank('8'), Rank('9'), Rank('T'), Rank('J'), Rank('Q'), Rank('K'), Rank('A')]

Ranks are comparable:

>>> Rank('2') < Rank('A')
True

Making a random Rank:

>> Rank.make_random()
Rank('2')

Cards

Making a random Card:

>>> Card.make_random()
Card('As')

Comparing Cards:

>>> Card('As') > Card('Ks')
True
>>> Card('Tc') < Card('Td')
True

Implementing a deck

A deck is just a list of poker.card.Cards. Making a new deck and simulating shuffling is easy:

import random
from poker import Card

deck = list(Card)
random.shuffle(deck)

flop = [deck.pop() for __ in range(3)]
turn = deck.pop()
river = deck.pop()

Operations with Hands and Combos

>>> from poker.hand import Hand, Combo

List of all hands:

>>> list(Hand)
[Hand('32o'), Hand('32s'), Hand('42o'), Hand('42s'), Hand('43o'), Hand('43s'), Hand('52o'),
 ..., Hand('JJ'), Hand('QQ'), Hand('KK'), Hand('AA')]

Comparing:

>>> Hand('AAd') > Hand('KK')
True
>>> Combo('7s6s') > Combo('6d5d')
True

Sorting:

>>> sorted([Hand('22'), Hand('66'), Hand('76o')])
[Hand('76o'), Hand('22'), Hand('66')]

Making a random hand:

>>> Hand.make_random()
Hand('AJs')