Package: humanbingo
Human BingoCreate cards for the “Human Bingo” icebreaker game, with customizable
properties and templating.SynopsisThis is an icebreaker game to play on the first day of class.  SeeAbout.comorWikiHowfor references.FeaturesRead 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.UsageInstalling the package exposes a scripthumanbingo.  Call it like this:$ humanbingo [-n|--number NUM]
    [-v|--verbose]
    [-d|--debug]
    [-o|--output] OUTPUTFILE
    [-f|--input-format] (yaml|xml)
    [-F|--output-format] (pdf|html)
    INPUTFILERead properties file as its sole argument.  If neither-nor--numberoption is not specified, write one bingo card to stdout.
If-n NUMBERor--number=NUMBERis
specified, writes NUMBER cards to separate files.WarningAt 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 withpdftk:$ /path/to/pdftk card*.pdf cat output allcards.pdfDocumentationSeehttps://human-bingo.readthedocs.io.LicenseFree software: MIT licenseCreditsHuman bingo relies on a lot of big python packages, heartily endorsed.Jinja2for templatingClickfor publishing command-line applicationsWeasyPrintfor converting HTML to PDFWe also useruamel.yamlover PyYaml since it supports a few more features (notably,
the!!omapsequence declaration).This package was created withCookiecutterand theaudreyr/cookiecutter-pypackageproject template.HistoryVersion 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 pdfto 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 yamltohumanbingo.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 thepypackagecookiecutter, add asetup.pyscript so
that it can be installed withpip.Nowpip installwill install an executable filehumanbingo,
and the originalbingo.pymodule/script is gone.  So this is a
backwards-incompatible change.Version 1.1.0 (July 26, 2017)Port from Python 2.7 to 3.5Use the shell environment’s python instead of a hardcoded oneVersion 1.0.0 (January 27, 2013)parse script arguments withargparseget closer to POSIX compliant interface (print to stdout when only
one card is needed)add a READMEupload to github2007MPL converted the ColdFusion script to python as an exercise.2006Derek Bruff wrote the original “Name Bingo” script in ColdFusion.