API Documentation

This is the PyDealer API overview. It contains the documentation extracted from the docstrings of the various classes, methods, and functions in the PyDealer package. If you want to know what a certain function/method does, this is the place to look.

card Module

Source

This module contains the Card class. Each Card instance represents a single playing card, of a given value and suit.

class pydealer.card.Card(value, suit)

The Card class, each instance representing a single playing card.

Parameters:
  • value (str) – The card value.
  • suit (str) – The card suit.
eq(other, ranks=None)

Compares the card against another card, other, and checks whether the card is equal to other, based on the given rank dict.

Parameters:
  • other (Card) – The second Card to compare.
  • ranks (dict) – The ranks to refer to for comparisons.
Returns:

True or False.

ge(other, ranks=None)

Compares the card against another card, other, and checks whether the card is greater than or equal to other, based on the given rank dict.

Parameters:
  • other (Card) – The second Card to compare.
  • ranks (dict) – The ranks to refer to for comparisons.
Returns:

True or False.

gt(other, ranks=None)

Compares the card against another card, other, and checks whether the card is greater than other, based on the given rank dict.

Parameters:
  • other (Card) – The second Card to compare.
  • ranks (dict) – The ranks to refer to for comparisons.
Returns:

True or False.

le(other, ranks=None)

Compares the card against another card, other, and checks whether the card is less than or equal to other, based on the given rank dict.

Parameters:
  • other (Card) – The second Card to compare.
  • ranks (dict) – The ranks to refer to for comparisons.
Returns:

True or False.

lt(other, ranks=None)

Compares the card against another card, other, and checks whether the card is less than other, based on the given rank dict.

Parameters:
  • other (Card) – The second Card to compare.
  • ranks (dict) – The ranks to refer to for comparisons.
Returns:

True or False.

ne(other, ranks=None)

Compares the card against another card, other, and checks whether the card is not equal to other, based on the given rank dict.

Parameters:
  • other (Card) – The second Card to compare.
  • ranks (dict) – The ranks to refer to for comparisons.
Returns:

True or False.

pydealer.card.card_abbrev(value, suit)

Constructs an abbreviation for the card, using the given value, and suit.

Parameters:
  • value (str) – The value to use.
  • suit (str) – The suit to use.
Returns:

A newly constructed abbreviation, using the given value & suit

pydealer.card.card_name(value, suit)

Constructs a name for the card, using the given value, and suit.

Parameters:
  • value (str) – The value to use.
  • suit (str) – The suit to use.
Returns:

A newly constructed name, using the given value & suit.

stack Module

Source

This module contains the Stack class, which is the backbone of the PyDealer package. A Stack is essentially just a generic “card container”, with all of the methods users may need to work with the cards they contain. A Stack can be used as a hand, or a discard pile, etc.

class pydealer.stack.Stack(**kwargs)

The Stack class, representing a collection of cards. This is the main ‘card container’ class, with methods for manipulating it’s contents.

Parameters:
  • cards (list) – A list of cards to be the initial contents of the Stack.
  • ranks (dict) – If sort=True, The rank dict to reference for sorting. Defaults to DEFAULT_RANKS.
  • sort (bool) – Whether or not to sort the stack upon instantiation.
add(cards, end='top')

Adds the given list of Card instances to the top of the stack.

Parameters:
  • cards – The cards to add to the Stack. Can be a single Card instance, or a list of cards.
  • end (str) – The end of the Stack to add the cards to. Can be TOP (“top”) or BOTTOM (“bottom”).
cards

The cards property.

Returns:The cards in the Stack/Deck.
deal(num=1, end='top')

Returns a list of cards, which are removed from the Stack.

Parameters:
  • num (int) – The number of cards to deal.
  • end (str) – Which end to deal from. Can be 0 (top) or 1 (bottom).
Returns:

The given number of cards from the stack.

empty(return_cards=False)

Empties the stack, removing all cards from it, and returns them.

Parameters:return_cards (bool) – Whether or not to return the cards.
Returns:If return_cards=True, a list containing the cards removed from the Stack.
find(term, limit=0, sort=False, ranks=None)

Searches the stack for cards with a value, suit, name, or abbreviation matching the given argument, ‘term’.

Parameters:
  • term (str) – The search term. Can be a card full name, value, suit, or abbreviation.
  • limit (int) – The number of items to retrieve for each term. 0 equals no limit.
  • sort (bool) – Whether or not to sort the results.
  • ranks (dict) – The rank dict to reference for sorting. If None, it will default to DEFAULT_RANKS.
Returns:

A list of stack indices for the cards matching the given terms, if found.

find_list(terms, limit=0, sort=False, ranks=None)

Searches the stack for cards with a value, suit, name, or abbreviation matching the given argument, ‘terms’.

Parameters:
  • terms (list) – The search terms. Can be card full names, suits, values, or abbreviations.
  • limit (int) – The number of items to retrieve for each term.
  • sort (bool) – Whether or not to sort the results, by poker ranks.
  • ranks (dict) – The rank dict to reference for sorting. If None, it will default to DEFAULT_RANKS.
Returns:

A list of stack indices for the cards matching the given terms, if found.

get(term, limit=0, sort=False, ranks=None)

Get the specified card from the stack.

Parameters:
  • term – The search term. Can be a card full name, value, suit, abbreviation, or stack indice.
  • limit (int) – The number of items to retrieve for each term.
  • sort (bool) – Whether or not to sort the results, by poker ranks.
  • ranks (dict) – The rank dict to reference for sorting. If None, it will default to DEFAULT_RANKS.
Returns:

A list of the specified cards, if found.

get_list(terms, limit=0, sort=False, ranks=None)

Get the specified cards from the stack.

Parameters:
  • term – The search term. Can be a card full name, value, suit, abbreviation, or stack indice.
  • limit (int) – The number of items to retrieve for each term.
  • sort (bool) – Whether or not to sort the results, by poker ranks.
  • ranks (dict) – The rank dict to reference for sorting. If None, it will default to DEFAULT_RANKS.
Returns:

A list of the specified cards, if found.

insert(card, indice=-1)

Insert a given card into the stack at a given indice.

Parameters:
  • card (Card) – The card to insert into the stack.
  • indice (int) – Where to insert the given card.
insert_list(cards, indice=-1)

Insert a list of given cards into the stack at a given indice.

Parameters:
  • cards (list) – The list of cards to insert into the stack.
  • indice (int) – Where to insert the given cards.
is_sorted(ranks=None)

Checks whether the stack is sorted.

Parameters:ranks (dict) – The rank dict to reference for checking. If None, it will default to DEFAULT_RANKS.
Returns:Whether or not the cards are sorted.
open_cards(filename=None)

Open cards from a txt file.

Parameters:filename (str) – The filename of the deck file to open. If no filename given, defaults to “cards-YYYYMMDD.txt”, where “YYYYMMDD” is the year, month, and day. For example, “cards-20140711.txt”.
random_card(remove=False)

Returns a random card from the Stack. If remove=True, it will also remove the card from the deck.

Parameters:remove (bool) – Whether or not to remove the card from the deck.
Returns:A random Card object, from the Stack.
reverse()

Reverse the order of the Stack in place.

save_cards(filename=None)

Save the current stack contents, in plain text, to a txt file.

Parameters:filename (str) – The filename to use for the file. If no filename given, defaults to “cards-YYYYMMDD.txt”, where “YYYYMMDD” is the year, month, and day. For example, “cards-20140711.txt”.
set_cards(cards)

Change the Deck’s current contents to the given cards.

Parameters:cards (list) – The Cards to assign to the stack.
shuffle(times=1)

Shuffles the Stack.

Note

Shuffling large numbers of cards (100,000+) may take a while.

Parameters:times (int) – The number of times to shuffle.
size

Counts the number of cards currently in the stack.

Returns:The number of cards in the stack.
sort(ranks=None)

Sorts the stack, either by poker ranks, or big two ranks.

Parameters:ranks (dict) – The rank dict to reference for sorting. If None, it will default to DEFAULT_RANKS.
Returns:The sorted cards.
split(indice=None)

Splits the Stack, either in half, or at the given indice, into two separate Stacks.

Parameters:indice (int) – Optional. The indice to split the Stack at. Defaults to the middle of the Stack.
Returns:The two parts of the Stack, as separate Stack instances.
pydealer.stack.convert_to_stack(deck)

Convert a Deck to a Stack.

Parameters:deck (Deck) – The Deck to convert.
Returns:A new Stack instance, containing the cards from the given Deck instance.

deck Module

Source

This module contains the Deck class. Each Deck instance contains a full, 52 card French deck of playing cards upon instantiation. The Deck class is a subclass of the Stack class, with a few extra/differing methods.

class pydealer.deck.Deck(**kwargs)

Bases: pydealer.stack.Stack

The Deck class, representing the deck that the cards will be in. It is a sublcass of Stack, sharing all of the same methods, in addition to a couple of others you would expect a deck class to have.

Warning

At the moment, adding Jokers may cause some (most) functions/methods to throw errors.

Parameters:
  • cards – A list of cards to be the initial contents of the Deck. If provided, the deck will not automatically build a new deck. Can be a Stack, Deck, or list instance.
  • jokers (bool) – Whether or not to include jokers in the deck.
  • num_jokers (int) – How many jokers to add to the deck.
  • build (bool) – Whether or not to build the deck on instantiation.
  • rebuild (bool) – Whether or not to rebuild the deck when it runs out of cards due to dealing.
  • re_shuffle (bool) – Whether or not to shuffle the deck after rebuilding.
  • ranks (dict) – The rank dict that will be referenced by the sorting methods etc. Defaults to DEFAULT_RANKS
build(jokers=False, num_jokers=0)

Builds a standard 52 card French deck of Card instances.

Parameters:
  • jokers (bool) – Whether or not to include jokers in the deck.
  • num_jokers (int) – The number of jokers to include.
deal(num=1, rebuild=False, shuffle=False, end='top')

Returns a list of cards, which are removed from the deck.

Parameters:
  • num (int) – The number of cards to deal.
  • rebuild (bool) – Whether or not to rebuild the deck when cards run out.
  • shuffle (bool) – Whether or not to shuffle on rebuild.
  • end (str) – The end of the Stack to add the cards to. Can be TOP (“top”) or BOTTOM (“bottom”).
Returns:

A given number of cards from the deck.

pydealer.deck.convert_to_deck(stack)

Convert a Stack to a Deck.

Parameters:stack (Stack) – The Stack instance to convert.

const Module

Source

These are the few constants that are used by the PyDealer package. The poker ranks, and big two ranks could be used for sorting, or by anyone making a game that relies on those ranks. PyDealer references DEFAULT_RANKS for sorting order, and ordering of newly instantiated decks by default.

pydealer.const.SUITS
["Diamonds", "Clubs", "Hearts", "Spades"]
pydealer.const.VALUES
["2", "3", "4", "5", "6", "7", "8", "9", "10", "Jack", "Queen", "King", "Ace"]
pydealer.const.BIG2_RANKS
{
    "values": {
        "2": 13,
        "Ace": 12,
        "King": 11,
        "Queen": 10,
        "Jack": 9,
        "10": 8,
        "9": 7,
        "8": 6,
        "7": 5,
        "6": 4,
        "5": 3,
        "4": 2,
        "3": 1,
    },
    "suits": {
        "Spades": 4,
        "Hearts": 3,
        "Clubs": 2,
        "Diamonds": 1
    }
}
pydealer.const.DEFAULT_RANKS
{
    "values": {
        "Ace": 13,
        "King": 12,
        "Queen": 11,
        "Jack": 10,
        "10": 9,
        "9": 8,
        "8": 7,
        "7": 6,
        "6": 5,
        "5": 4,
        "4": 3,
        "3": 2,
        "2": 1
    },
    "suits": {
        "Spades": 4,
        "Hearts": 3,
        "Clubs": 2,
        "Diamonds": 1
    }
}
pydealer.const.POKER_RANKS
{
    "Ace": 13,
    "King": 12,
    "Queen": 11,
    "Jack": 10,
    "10": 9,
    "9": 8,
    "8": 7,
    "7": 6,
    "6": 5,
    "5": 4,
    "4": 3,
    "3": 2,
    "2": 1
}
pydealer.const.TOP
"top"
pydealer.const.BOTTOM
"bottom"