Did a lot of refactoring to buyers.py, donors.py, and items.py to make the names of methods begin with lower case -- better Python style.
Cleaned up code by removing about seven unused modules.  Have made a new class named Printer that looks a whole lot like the Console class.  It will build using tbl and groff instead of the python formatter for the console.  I think that I can also remove all the modules named Report*.py.  That willl come as I get tbl and groff working.
Refactored printingservices.py in preparation for adding capability to print reports on buyers, donors, and items.
Modified PrintingServices class so that the summary header will work for buyers, donors, items, etc.  Have begun to work on the buyers report now that I have the header working and know how to do the rest with Unix tools (tbl, etc.).  This required passing whatToPrint to a module in PrintingServices that didn't need it before.  I've tested printing carts and receipts, and all appears to be okay.
Can now print and preview the buyers report.  It will be easy to do other reports now that I can do all the groff stuff to my satisfaction.  Yet to do are donors and items and maybe purchases.  I have to decide whether there's a difference between the summary of purchases that I already have and what might be learned from a separate purchaes report.
Changed printingservices.py so that the pdf file needed for previewing landscape is written to /tmp.
Now have four methods in printingservices.py: printPortrait, previewPortrait, printLandscape, and previewLandscape.
Can now produce reports for buyers, donors, and items.  I think that completes the reports that I want to construct.  Now to do the CSVs.
I thought I had a problem, but the PyCharm launcher was trying to launch printingservices.py instead of silentauctionmanager.py.
Fixed the __init__  for Samdb so that the test scaffolding modules such as createauction.py can have the dbname as the single argument (no honame, port, mysql user, and password).
Removed print statements that had been inserted into dbservices.py.
I can build a csv file for buyers -- and therefore for everything else.  I imported csv from the Python Standard Library.  It seems that I had to do more work than I should have to build a row for the file, but it works.