Installing this library is super easy! There are two ways you can do it.
Install the TableIt.py file into each of you project's directories. This solution doesn't allow repeated use, you have to do it for each project.
Install the TableIt.py file into your \<Directory to python>\Python\Python38-32\Lib\site-packages path (note that your path will most likely have a different version of python and your python installation may come from a different place). This solution allows repeated use, you only have to do it once.
TableIt is a free open-source python library that prints arrays as tables to the console.
This library is extremly simple, to use it make a list of lists, each inner list should be a row. The amount of elements in each inner list needs to be uniform.
For example,
table = [
[1, 2, 3.0],
[5.0, 400, 1],
["Hi", 3, 2]
]
Will print:
+-----------------+
| 1 | 2 | 3.0 |
| 5.0 | 400 | 1 |
| Hi | 3 | 2 |
+-----------------+
It can also print:
+-----------------+
| 1 | 2 | 3.0 |
+-----+-----+-----+
| 5.0 | 400 | 1 |
| Hi | 3 | 2 |
+-----------------+
It's all your choice.
To use TableIt, simply import TableIt after following the installation instructions from above
import TableIt
Then, create the list you would like to print
myList = [
["Name", "Email"],
["Richard", "richard@fakeemail.com"],
["Tasha", "tash@fakeemail.com"]
]
Then simply print it! Choose whether or not you would like field names (use True
if so, don't put anything if not (don't include useFieldNames
at all) because it defaults to False
).
# NOTE: useFieldNames defaults to False, so, if you don't type useFieldNames=True it automatically goes to False
TableIt.printTable(myList, useFieldNames=True)
As output, you get:
+-----------------------------------------------+
| Name | Email |
+-----------------------+-----------------------+
| Richard | richard@fakeemail.com |
| Tasha | tash@fakeemail.com |
+-----------------------------------------------+
If you didn't want to use field names then you would only have to write:
TableIt.printTable(myList)
Another example:
myList = [
["", "a", "b"],
["x", "a + x", "a + b"],
["z", "a + z", "z + b"]
]
From that, you get:
+-----------------------+
| | a | b |
+-------+-------+-------+
| x | a + x | a + b |
| z | a + z | z + b |
+-----------------------+
You might want to use colors in TableIt. Using colors is an experimental feature that might not work for you, but, you can think of it like a bonus because I don't know other table libraries that can do this. I have tested it in the normal python IDLE, it doesn't work there. I have also tested it in the Windows Command Prompt, it works there to (as long as you run the initColors() function mentioned below). I also tested it in VS Code, it does work there. I'm not sure if it will work on Apple or Linux machines. In general, more feature-rich terminals should be able to use the colors.
To use them simply use RGB values, so, using the example from above:
import TableIt
TableIt.initColors()
myList = [
["", "a", "b"],
["x", "a + x", "a + b"],
["z", "a + z", "z + b"]
]
# The RGB values 26, 156, 171 make a cyan type of color
TableIt.printTable(myList, useFieldNames=True, color=(26, 156, 171))
As output you get:
You don't have to hard code in the RGB values for the color each time, you can store the color in a variable:
cyan = (26, 156, 171)
There are many uses for TableIt. I first created it as an output library for printing out matrices, since then I've found much more functionality. I recommend using this library any time you would like something formatted nicely for the user. If you just want to print out an array and don't care how it looks, then you probably don't have to use it. However, if you feel like taking the 2 extra seconds to:
import TableIt
and then:
TableIt.printTable(myTable)
instead of:
print(myTable)
Then you can be happy knowing that you get lots of added beauty for using one extra line of code.
This is the list of updates which were not on my goals list or on the issues list (top of list is newer):
initColors()
function to allow the colors option to work on more systemsuseFieldNames
defaults to False
color
defaults to None
I don't have lots of plans but some things that would definitely be worth considering are:
These are goals that I preiously had which I achieved:
These are the issues that I know of:
That's enough of me talking! Go print some beautiful tables!
Here is the link to my patreon page: https://www.patreon.com/supermazingcoder :D