Skip to main content

Create cards for the "Human Bingo" icebreaker game, with customizable properties and templating

Project description

Human Bingo Documentation Status Updates

Create cards for the “Human Bingo” icebreaker game, with customizable properties and templating.


This is an icebreaker game to play on the first day of class. See or WikiHow for references.


  • Read cardset specifications as XML and YAML files. The YAML specification is newer, more flexible, and easier to write. The XML specification is older, and seemed like a good idea at the time.
  • Write HTML and PDF files. Since it’s more likely the cards will be printed onto paper, the default is writing PDF. Originally, only HTML files were created, and PDF conversion was done by a third-party utility (wkhtmltopdf). In version 3 the PDF writer was baked in. Since the PDF writer internally creates HTML first, the HTML feature is still maintained.


Installing the package exposes a script humanbingo. Call it like this:

$ humanbingo [-n|--number NUM]
    [-o|--output] OUTPUTFILE
    [-f|--input-format] (yaml|xml)
    [-F|--output-format] (pdf|html)

Read properties file as its sole argument. If neither -n or --number option is not specified, write one bingo card to stdout. If -n NUMBER or --number=NUMBER is specified, writes NUMBER cards to separate files.


At this time writing PDF to stdout is not supported. But you probably don’t want to do that anyway.

To easily print the PDF cards, they can be concatenated with pdftk:

$ /path/to/pdftk card*.pdf cat output allcards.pdf


Free software: MIT license


Human bingo relies on a lot of big python packages, heartily endorsed.

  • Jinja2 for templating
  • Click for publishing command-line applications
  • WeasyPrint for converting HTML to PDF

We also use ruamel.yaml over PyYaml since it supports a few more features (notably, the !!omap sequence declaration).

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.


Version 3.0.1 (August 24, 2017)

Updated history file for version 3.0.0.

Version 3.0.0 (August 24, 2017)

Added the PDF writer. Pass -F pdf to explicitly write PDF files.

Backwards-incompatible changes: YAML input and PDF output are now default.

Improved refactoring and documentation.

Version 2.1.0 (August 4, 2017)

Added the ability to specify card sets with a YAML file instead of the old XML format. Pass -f yaml to humanbingo.

Lots of improvements to documentation.

Version 2.0.2 (August 3, 2017)

Pretty big refactoring into separate modules, in order to facilitate extensibility, practice dependency injections, etc. But no functional change yet.

Version 2.0.1 (July 28, 2017)

Flesh out history file.

Version 2.0.0 (July 28, 2017)

Name change: “Name Bingo” to “Human Bingo”. The latter sounds more interesting and seems to be the more popular term.

Morphing this script into a bona fide python package to upload to PyPI. Using the pypackage cookiecutter, add a script so that it can be installed with pip.

Now pip install will install an executable file humanbingo, and the original module/script is gone. So this is a backwards-incompatible change.

Version 1.1.0 (July 26, 2017)

  • Port from Python 2.7 to 3.5
  • Use the shell environment’s python instead of a hardcoded one

Version 1.0.0 (January 27, 2013)

  • parse script arguments with argparse
  • get closer to POSIX compliant interface (print to stdout when only one card is needed)
  • add a README
  • upload to github


MPL converted the ColdFusion script to python as an exercise.


Derek Bruff wrote the original “Name Bingo” script in ColdFusion.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

humanbingo-3.0.1.tar.gz (25.4 kB view hashes)

Uploaded source

Built Distribution

humanbingo-3.0.1-py2.py3-none-any.whl (14.0 kB view hashes)

Uploaded 3 5

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page