diff --git a/.gitignore b/.gitignore index b6e4761..9aa5817 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,7 @@ dmypy.json # Pyre type checker .pyre/ + +#batches and tests +make.bat +test.py diff --git a/ImagesInREADME/advancedAlignment.png b/ImagesInREADME/advancedAlignment.png new file mode 100644 index 0000000..c6b9db3 Binary files /dev/null and b/ImagesInREADME/advancedAlignment.png differ diff --git a/ImagesInREADME/simpleCentreAlinement.png b/ImagesInREADME/simpleCentreAlinement.png new file mode 100644 index 0000000..da92d40 Binary files /dev/null and b/ImagesInREADME/simpleCentreAlinement.png differ diff --git a/README.md b/README.md index ed387c1..46acada 100644 --- a/README.md +++ b/README.md @@ -127,6 +127,34 @@ You don't have to hard code in the RGB values for the color each time, you can s ```python cyan = (26, 156, 171) ``` +alternativly you can use one of the predifined colors witch can be done by: +```python +TableIt.printTable(myList, useFieldNames=True, color=TableIt.colors.dark_cyan) +``` +As output you get: + +![](ImagesInREADME/TableIt_Colors.png) + +## Setting alignment +the `alignment` parameter allows you to specify weather the elements of the table are allined to the left (TableIt.left), the right (TableIt.right) or the centre (TableIt.centre). + +the simplest way of doing so will aline all the elements in the same way like so: +```python +TableIt.printTable(myList, useFieldNames=True, alignment=TableIt.centre) +``` +witch will create the following table: + +![](ImagesInREADME/simpleCentreAlinement.png) + +however you can alsow aline every element indevidualy by passing a list shuld the list ever be out of range the last valid element of the alignment list will be used. shuld the alignment for a given column not be a list the alignment will be used for the entire column. so: +```python +TableIt.printTable(myList, useFieldNames=True, alignment=[[TableIt.centre,[TableIt.left, TableIt.right]]) +``` + +could result in: + +![](ImagesInREADME/advancedAlignment.png) + #### The initColors() function clears all output and should be run before all previous printing. It enables it to work on certain command lines. @@ -135,7 +163,9 @@ There are many uses for TableIt. I first created it as an output library for pri ```python import TableIt ``` + and then: + ```python TableIt.printTable(myTable) ``` @@ -155,15 +185,15 @@ This is the list of updates which were not on my goals list or on the issues lis ## Future Goals I don't have lots of plans but some things that would definitely be worth considering are: -* Adding an option for the elements in the table to be centered * Adding an option to choose whether the colors are on the top, side, or both -* Adding default colors so that you don't have to choose RGB values (defaults like red, shades of blue and green, orange and yellow, etc.) * Complete rewrite of library structure * Complete rewrite of documentation ## Accomplished Goals These are goals that I preiously had which I achieved: +* Adding an option for the elements in the table to be centered * Colors are now an option in the table +* Adding default colors so that you don't have to choose RGB values (defaults like red, shades of blue and green, orange and yellow, etc.) ## Known Issues These are the issues that I know of: diff --git a/TableIt.py b/TableIt/__init__.py similarity index 71% rename from TableIt.py rename to TableIt/__init__.py index 6f6bbb5..0fffcca 100644 --- a/TableIt.py +++ b/TableIt/__init__.py @@ -1,136 +1,188 @@ -import os -import math -import random - -def initColors(): - os.system("cls") - -def findLargestElement(rows, cols, lengthArray, matrix): - # Loop through each row - for i in range(rows): - # Loop through each column - for j in range(cols): - lengthArray.append(len(str(matrix[i][j]))) - # Sort the length matrix so that we can find the element with the longest length - lengthArray.sort() - # Store that length - largestElementLength = lengthArray[-1] - - return largestElementLength - - -def createMatrix(rows, cols, matrixToWorkOn, matrix): - # Loop through each row - for i in range(rows): - # Append a row to matrixToWorkOn for each row in the matrix passed in - matrixToWorkOn.append([]) - # Loop through each column - for j in range(cols): - # Add a each column of the current row (in string form) to matrixToWorkOn - matrixToWorkOn[i].append(str(matrix[i][j])) - -def makeRows(rows, cols, largestElementLength, rowLength, matrixToWorkOn, finalTable, color): - - # Loop through each row - for i in range(rows): - # Initialize the row that will we work on currently as a blank string - currentRow = "" - # Loop trhough each column - for j in range(cols): - # If we are using colors then do the same thing but as without (below) - if ((color != None) and (j == 0 or i == 0)): - # Only add color if it is in the first column or first row - currentEl = " " + "\033[38;2;" + str(color[0]) + ";" + str(color[1]) + ";" + str(color[2]) +"m" + matrixToWorkOn[i][j] + "\033[0m" - # If we are not using colors (or j != 0 or i != 0) just add a space and the element that should be in that position to a variable which will store the current element to work on - else: - currentEl = " " + matrixToWorkOn[i][j] - - # If the raw element is less than the largest length of a raw element (raw element is just the unformatted element passed in) - if (largestElementLength != len(matrixToWorkOn[i][j])): - # If we are using colors then add the amount of spaces that is equal to the difference of the largest element length and the current element (minus the length that is added for the color) - # * The plus two here comes from the one space we would normally need and the fact that we need to account for a space that tbe current element already has - if (color != None): - if (j == 0 or i == 0): - currentEl = currentEl + " " * (largestElementLength - (len(currentEl) - len("\033[38;2;" + str(color[0]) + ";" + str(color[1]) + ";" + str(color[2]) + "m" + "\033[0m")) + 2) + "|" - # If it is not the first column or first row than it doesn't need to subtract the color length - else: - currentEl = currentEl + " " * (largestElementLength - len(currentEl) + 2) + "|" - # If we are not using color just do the same thing as above when we were using colors for when the row or column is not the first each time - else: - currentEl = currentEl + " " * (largestElementLength - len(currentEl) + 2) + "|" - # If the raw element length us equal to the largest length of a raw element then we don't need to add extra spaces - else: - currentEl = currentEl + " " + "|" - # Now add the current element to the row that we are working on - currentRow += currentEl - # When the entire row that we were working on is done add it as a row to the final table that we will print - finalTable.append("|" + currentRow) - # If we are using color then the length of each row (each row will end up being the same length) equals to the length of the last row (again each row will end up being the same length) minus the length the color will inevitably add if we are using colors - if (color != None): - rowLength = len(currentRow) - len("\033[38;2;" + str(color[0]) + ";" + str(color[1]) + ";" + str(color[2]) + "m" + "\033[0m") - # Otherwise (we are not using colors) the length of each row will be equal to the length of the last row (each row will end up being the same length) - else: - rowLength = len(currentRow) - - return rowLength - -def createWrappingRows(rowLength, finalTable): - # Here we deal with the rows that will go on the top and bottom of the table (look like -> +--------------+), we start by initializing an empty string - wrappingRows = "" - # Then for the length of each row minus one (have to account for the plus that comes at the end, not minus two because rowLength doesn't include the | at the beginning) we add a - - for i in range(rowLength - 1): - wrappingRows += "-" - # Add a plus at the beginning - wrappingRows = "+" + wrappingRows - # Add a plus at the end - wrappingRows += "+" - - # Add the two wrapping rows - finalTable.insert(0, wrappingRows) - finalTable.append(wrappingRows) - -def createRowUnderFields(largestElementLength, cols, finalTable): - # Initialize the row that will be created - rowUnderFields = "" - # Loop through each column - for j in range(cols): - # For each column add a plus - currentElUnderField = "+" - # Then add an amount of -'s equal to the length of largest raw element and add 2 for the 2 spaces that will be either side the element - currentElUnderField = currentElUnderField + "-" * (largestElementLength + 2) - # Then add the current element (there will be one for each column) to the final row that will be under the fields - rowUnderFields += currentElUnderField - # Add a final plus at the end of the row - rowUnderFields += "+" - # Insert this row under the first row - finalTable.insert(2, rowUnderFields) - - -def printRowsInTable(finalTable): - # For each row - print it - for row in finalTable: - print(row) - -def printTable(matrix, useFieldNames=False, color=None): - # Rows equal amount of lists inside greater list - rows = len(matrix) - # Cols equal amount of elements inside each list - cols = len(matrix[0]) - # This is the array to sort the length of each element - lengthArray = [] - # This is the variable to store the vakye of the largest length of any element - largestElementLength = None - #This is the variable that will store the length of each row - rowLength = None - # This is the matrix that we will work with throughout this program (main difference between matrix passed in and this matrix is that the matrix that is passed in doesn't always have elements which are all strings) - matrixToWorkOn = [] - #This the list in which each row will be one of the final table to be printed - finalTable = [] - - largestElementLength = findLargestElement(rows, cols, lengthArray, matrix) - createMatrix(rows, cols, matrixToWorkOn, matrix) - rowLength = makeRows(rows, cols, largestElementLength, rowLength, matrixToWorkOn, finalTable, color) - createWrappingRows(rowLength, finalTable) - if (useFieldNames): - createRowUnderFields(largestElementLength, cols, finalTable) - printRowsInTable(finalTable) +import os +import math +import random +from . import colors + +left = 0 +right = 2 +centre = 1 + +def initColors(): + os.system("cls") + +def findLargestElement(rows, cols, lengthArray, matrix): + # Loop through each row + for i in range(rows): + # Loop through each column + for j in range(cols): + lengthArray.append(len(str(matrix[i][j]))) + # Sort the length matrix so that we can find the element with the longest length + lengthArray.sort() + # Store that length + largestElementLength = lengthArray[-1] + + return largestElementLength + + +def createMatrix(rows, cols, matrixToWorkOn, matrix): + # Loop through each row + for i in range(rows): + # Append a row to matrixToWorkOn for each row in the matrix passed in + matrixToWorkOn.append([]) + # Loop through each column + for j in range(cols): + # Add a each column of the current row (in string form) to matrixToWorkOn + matrixToWorkOn[i].append(str(matrix[i][j])) + +def makeRows(rows, cols, largestElementLength, rowLength, matrixToWorkOn, finalTable, colors, alinement): + + def getSideSpacings(alinement, largestElementLength, currentEl_length): + "cumpute the left and right spacings for alinement" + if alinement == 0 or alinement == "left": + return 0, (largestElementLength - currentEl_length + 2) + + elif alinement == 2 or alinement == "right": + return (largestElementLength - currentEl_length + 1), 1 + + elif alinement == 1 or alinement == "center": + a = math.floor((largestElementLength - currentEl_length + 1)/2) + b = (largestElementLength - currentEl_length + 1) - a + 1 + return a, b + else: + raise ValueError (f"unknown alinement: alinement must be 'right', 'left' or 'center' not {alinement}") + + # Loop through each row + for i in range(rows): + + if isinstance(alinement, (list, tuple)): + if len(alinement) >= i+1: + rowAlinement = alinement[i] + else: + rowAlinement = alinement[len(alinement)-1] + else: + rowAlinement = alinement + + if len(colors) >= i+1: + rowColors = colors[i] + else: + rowColors = colors[len(colors)-1] + + # Initialize the row that will we work on currently as a blank string + currentRow = "" + # Loop trhough each column + for j in range(cols): + + if isinstance(rowAlinement, (list, tuple)): + if len(rowAlinement) >= j+1: + colAlinement = rowAlinement[j] + else: + colAlinement = rowAlinement[len(rowAlinement)-1] + else: + colAlinement = rowAlinement + + if isinstance(rowColors, (list)): + if len(rowColors) >= j+1: + color = rowColors[j] + else: + color = rowColors[len(rowColors)-1] + else: + color = rowColors + + # If we are using colors then do the same thing but as without (below) + if (color != None): + # Only add color if it is in the first column or first row + currentEl = " " + "\033[38;2;" + str(color[0]) + ";" + str(color[1]) + ";" + str(color[2]) +"m" + matrixToWorkOn[i][j] + "\033[0m" + # If we are not using colors (or j != 0 or i != 0) just add a space and the element that should be in that position to a variable which will store the current element to work on + else: + currentEl = " " + matrixToWorkOn[i][j] + + # If the raw element is less than the largest length of a raw element (raw element is just the unformatted element passed in) + if (largestElementLength != len(str(matrixToWorkOn[i][j]))): + # If we are using colors then add the amount of spaces that is equal to the difference of the largest element length and the current element (minus the length that is added for the color) + # * The plus two here comes from the one space we would normally need and the fact that we need to account for a space that tbe current element already has + if (color != None): + leftSpace, rightSpace = getSideSpacings(colAlinement, largestElementLength, (len(currentEl) - len("\033[38;2;" + str(color[0]) + ";" + str(color[1]) + ";" + str(color[2]) + "m" + "\033[0m"))) + currentEl = " " * leftSpace + currentEl + " " * rightSpace + "|" + # If we are not using color just do the same thing as above when we were using colors for when the row or column is not the first each time + else: + leftSpace, rightSpace = getSideSpacings(colAlinement, largestElementLength, len(currentEl)) + currentEl = " " * leftSpace + currentEl + " " * rightSpace + "|" + # If the raw element length us equal to the largest length of a raw element then we don't need to add extra spaces + else: + currentEl = currentEl + " " + "|" + # Now add the current element to the row that we are working on + currentRow += currentEl + # When the entire row that we were working on is done add it as a row to the final table that we will print + finalTable.append("|" + currentRow) + # If we are using color then the length of each row (each row will end up being the same length) equals to the length of the last row (again each row will end up being the same length) minus the length the color will inevitably add if we are using colors + if (color != None): + rowLength = len(currentRow) - len("\033[38;2;" + str(color[0]) + ";" + str(color[1]) + ";" + str(color[2]) + "m" + "\033[0m") + # Otherwise (we are not using colors) the length of each row will be equal to the length of the last row (each row will end up being the same length) + else: + rowLength = len(currentRow) + + return rowLength + +def createWrappingRows(rowLength, finalTable): + # Here we deal with the rows that will go on the top and bottom of the table (look like -> +--------------+), we start by initializing an empty string + wrappingRows = "" + # Then for the length of each row minus one (have to account for the plus that comes at the end, not minus two because rowLength doesn't include the | at the beginning) we add a - + for i in range(rowLength - 1): + wrappingRows += "-" + # Add a plus at the beginning + wrappingRows = "+" + wrappingRows + # Add a plus at the end + wrappingRows += "+" + + # Add the two wrapping rows + finalTable.insert(0, wrappingRows) + finalTable.append(wrappingRows) + +def createRowUnderFields(largestElementLength, cols, finalTable): + # Initialize the row that will be created + rowUnderFields = "" + # Loop through each column + for j in range(cols): + # For each column add a plus + currentElUnderField = "+" + # Then add an amount of -'s equal to the length of largest raw element and add 2 for the 2 spaces that will be either side the element + currentElUnderField = currentElUnderField + "-" * (largestElementLength + 2) + # Then add the current element (there will be one for each column) to the final row that will be under the fields + rowUnderFields += currentElUnderField + # Add a final plus at the end of the row + rowUnderFields += "+" + # Insert this row under the first row + finalTable.insert(2, rowUnderFields) + + +def printRowsInTable(finalTable): + # For each row - print it + for row in finalTable: + print(row) + +def printTable(matrix, useFieldNames=False, color=None, alignment=0): + # Rows equal amount of lists inside greater list + rows = len(matrix) + # Cols equal amount of elements inside each list + cols = len(matrix[0]) + # This is the array to sort the length of each element + lengthArray = [] + # This is the variable to store the vakye of the largest length of any element + largestElementLength = None + #This is the variable that will store the length of each row + rowLength = None + # This is the matrix that we will work with throughout this program (main difference between matrix passed in and this matrix is that the matrix that is passed in doesn't always have elements which are all strings) + matrixToWorkOn = [] + #This the list in which each row will be one of the final table to be printed + finalTable = [] + + if not isinstance(color, (list)): + color = [[color], [color, None]] + + largestElementLength = findLargestElement(rows, cols, lengthArray, matrix) + createMatrix(rows, cols, matrixToWorkOn, matrix) + rowLength = makeRows(rows, cols, largestElementLength, rowLength, matrixToWorkOn, finalTable, color, alignment) + createWrappingRows(rowLength, finalTable) + if (useFieldNames): + createRowUnderFields(largestElementLength, cols, finalTable) + printRowsInTable(finalTable) diff --git a/TableIt/colors.py b/TableIt/colors.py new file mode 100644 index 0000000..9dbcbff --- /dev/null +++ b/TableIt/colors.py @@ -0,0 +1,593 @@ +AliceBlue = (240, 248, 255) +AntiqueWhite = (250, 235, 215) +AntiqueWhite1 = (255, 239, 219) +AntiqueWhite2 = (238, 223, 204) +AntiqueWhite3 = (205, 192, 176) +AntiqueWhite4 = (139, 131, 120) +agua = (0, 255, 255) +aquamarine = (127, 255, 212) +aquamarine1 = (127, 255, 212) +aquamarine2 = (118, 238, 198) +aquamarine3 = (102, 205, 170) +aquamarine4 = (69, 139, 116) +azure = (240, 255, 255) +azure1 = (240, 255, 255) +azure2 = (224, 238, 238) +azure3 = (193, 205, 205) +azure4 = (131, 139, 139) +beige = (245, 245, 220) +bisque = (255, 228, 196) +bisque1 = (255, 228, 196) +bisque2 = (238, 213, 183) +bisque3 = (205, 183, 158) +bisque4 = (139, 125, 107) +black = (0, 0, 0) +BlanchedAlmond = (255, 235, 205) +blue = (0, 0, 255) +blue_violet = (138, 43, 226) +blue1 = (0, 0, 255) +blue2 = (0, 0, 238) +blue3 = (0, 0, 205) +blue4 = (0, 0, 139) +BlueViolet = (138, 43, 226) +brown = (165, 42, 42) +brown1 = (255, 64, 64) +brown2 = (238, 59, 59) +brown3 = (205, 51, 51) +brown4 = (139, 35, 35) +burlywood = (222, 184, 135) +burlywood1 = (255, 211, 155) +burlywood2 = (238, 197, 145) +burlywood3 = (205, 170, 125) +burlywood4 = (139, 115, 85) +cadet_blue = (95, 158, 160) +CadetBlue = (95, 158, 160) +CadetBlue1 = (152, 245, 255) +CadetBlue2 = (142, 229, 238) +CadetBlue3 = (122, 197, 205) +CadetBlue4 = (83, 134, 139) +chartreuse = (127, 255, 0) +chartreuse1 = (127, 255, 0) +chartreuse2 = (118, 238, 0) +chartreuse3 = (102, 205, 0) +chartreuse4 = (69, 139, 0) +chocolate = (210, 105, 30) +chocolate1 = (255, 127, 36) +chocolate2 = (238, 118, 33) +chocolate3 = (205, 102, 29) +chocolate4 = (139, 69, 19) +coral = (255, 127, 80) +coral1 = (255, 114, 86) +coral2 = (238, 106, 80) +coral3 = (205, 91, 69) +coral4 = (139, 62, 47) +cornflower_blue = (100, 149, 237) +CornflowerBlue = (100, 149, 237) +cornsilk = (255, 248, 220) +cornsilk1 = (255, 248, 220) +cornsilk2 = (238, 232, 205) +cornsilk3 = (205, 200, 177) +cornsilk4 = (139, 136, 120) +crymson = (220, 20, 60) +cyan = (0, 255, 255) +cyan1 = (0, 255, 255) +cyan2 = (0, 238, 238) +cyan3 = (0, 205, 205) +cyan4 = (0, 139, 139) +dark_blue = (0, 0, 139) +dark_cyan = (0, 139, 139) +dark_goldenrod = (184, 134, 11) +dark_gray = (169, 169, 169) +dark_green = (0, 100, 0) +dark_grey = (169, 169, 169) +dark_khaki = (189, 183, 107) +dark_magenta = (139, 0, 139) +dark_olive_green = (85, 107, 47) +dark_orange = (255, 140, 0) +dark_orchid = (153, 50, 204) +dark_red = (139, 0, 0) +dark_salmon = (233, 150, 122) +dark_sea_green = (143, 188, 143) +dark_slate_blue = (72, 61, 139) +dark_slate_gray = (47, 79, 79) +dark_slate_grey = (47, 79, 79) +dark_turquoise = (0, 206, 209) +dark_violet = (148, 0, 211) +DarkBlue = (0, 0, 139) +DarkCyan = (0, 139, 139) +DarkGoldenrod = (184, 134, 11) +DarkGoldenrod1 = (255, 185, 15) +DarkGoldenrod2 = (238, 173, 14) +DarkGoldenrod3 = (205, 149, 12) +DarkGoldenrod4 = (139, 101, 8) +DarkGray = (169, 169, 169) +DarkGreen = (0, 100, 0) +DarkGrey = (169, 169, 169) +DarkKhaki = (189, 183, 107) +DarkMagenta = (139, 0, 139) +DarkOliveGreen = (85, 107, 47) +DarkOliveGreen1 = (202, 255, 112) +DarkOliveGreen2 = (188, 238, 104) +DarkOliveGreen3 = (162, 205, 90) +DarkOliveGreen4 = (110, 139, 61) +DarkOrange = (255, 140, 0) +DarkOrange1 = (255, 127, 0) +DarkOrange2 = (238, 118, 0) +DarkOrange3 = (205, 102, 0) +DarkOrange4 = (139, 69, 0) +DarkOrchid = (153, 50, 204) +DarkOrchid1 = (191, 62, 255) +DarkOrchid2 = (178, 58, 238) +DarkOrchid3 = (154, 50, 205) +DarkOrchid4 = (104, 34, 139) +DarkRed = (139, 0, 0) +DarkSalmon = (233, 150, 122) +DarkSeaGreen = (143, 188, 143) +DarkSeaGreen1 = (193, 255, 193) +DarkSeaGreen2 = (180, 238, 180) +DarkSeaGreen3 = (155, 205, 155) +DarkSeaGreen4 = (105, 139, 105) +DarkSlateBlue = (72, 61, 139) +DarkSlateGray = (47, 79, 79) +DarkSlateGray1 = (151, 255, 255) +DarkSlateGray2 = (141, 238, 238) +DarkSlateGray3 = (121, 205, 205) +DarkSlateGray4 = (82, 139, 139) +DarkSlateGrey = (47, 79, 79) +DarkTurquoise = (0, 206, 209) +DarkViolet = (148, 0, 211) +deep_pink = (255, 20, 147) +deep_sky_blue = (0, 191, 255) +DeepPink = (255, 20, 147) +DeepPink1 = (255, 20, 147) +DeepPink2 = (238, 18, 137) +DeepPink3 = (205, 16, 118) +DeepPink4 = (139, 10, 80) +DeepSkyBlue = (0, 191, 255) +DeepSkyBlue1 = (0, 191, 255) +DeepSkyBlue2 = (0, 178, 238) +DeepSkyBlue3 = (0, 154, 205) +DeepSkyBlue4 = (0, 104, 139) +dim_gray = (105, 105, 105) +dim_grey = (105, 105, 105) +DimGray = (105, 105, 105) +DimGrey = (105, 105, 105) +dodger_blue = (30, 144, 255) +DodgerBlue = (30, 144, 255) +DodgerBlue1 = (30, 144, 255) +DodgerBlue2 = (28, 134, 238) +DodgerBlue3 = (24, 116, 205) +DodgerBlue4 = (16, 78, 139) +firebrick = (178, 34, 34) +firebrick1 = (255, 48, 48) +firebrick2 = (238, 44, 44) +firebrick3 = (205, 38, 38) +firebrick4 = (139, 26, 26) +floral_white = (255, 250, 240) +FloralWhite = (255, 250, 240) +forest_green = (34, 139, 34) +ForestGreen = (34, 139, 34) +fuchsia = (255, 0, 255) +gainsboro = (220, 220, 220) +ghost_white = (248, 248, 255) +GhostWhite = (248, 248, 255) +gold = (255, 215, 0) +gold1 = (255, 215, 0) +gold2 = (238, 201, 0) +gold3 = (205, 173, 0) +gold4 = (139, 117, 0) +goldenrod = (218, 165, 32) +goldenrod1 = (255, 193, 37) +goldenrod2 = (238, 180, 34) +goldenrod3 = (205, 155, 29) +goldenrod4 = (139, 105, 20) +gray = (128, 128, 128) +gray0 = (0, 0, 0) +gray1 = (3, 3, 3) +gray2 = (5, 5, 5) +gray3 = (8, 8, 8) +gray4 = (10, 10, 10) +gray5 = (13, 13, 13) +gray6 = (15, 15, 15) +gray7 = (18, 18, 18) +gray8 = (20, 20, 20) +gray9 = (23, 23, 23) +gray10 = (26, 26, 26) +gray11 = (28, 28, 28) +gray12 = (31, 31, 31) +gray13 = (33, 33, 33) +gray14 = (36, 36, 36) +gray15 = (38, 38, 38) +gray16 = (41, 41, 41) +gray17 = (43, 43, 43) +gray18 = (46, 46, 46) +gray19 = (48, 48, 48) +gray20 = (51, 51, 51) +gray21 = (54, 54, 54) +gray22 = (56, 56, 56) +gray23 = (59, 59, 59) +gray24 = (61, 61, 61) +gray25 = (64, 64, 64) +gray26 = (66, 66, 66) +gray27 = (69, 69, 69) +gray28 = (71, 71, 71) +gray29 = (74, 74, 74) +gray30 = (77, 77, 77) +gray31 = (79, 79, 79) +gray32 = (82, 82, 82) +gray33 = (84, 84, 84) +gray34 = (87, 87, 87) +gray35 = (89, 89, 89) +gray36 = (92, 92, 92) +gray37 = (94, 94, 94) +gray38 = (97, 97, 97) +gray39 = (99, 99, 99) +gray40 = (102, 102, 102) +gray41 = (105, 105, 105) +gray42 = (107, 107, 107) +gray43 = (110, 110, 110) +gray44 = (112, 112, 112) +gray45 = (115, 115, 115) +gray46 = (117, 117, 117) +gray47 = (120, 120, 120) +gray48 = (122, 122, 122) +gray49 = (125, 125, 125) +gray50 = (127, 127, 127) +gray51 = (130, 130, 130) +gray52 = (133, 133, 133) +gray53 = (135, 135, 135) +gray54 = (138, 138, 138) +gray55 = (140, 140, 140) +gray56 = (143, 143, 143) +gray57 = (145, 145, 145) +gray58 = (148, 148, 148) +gray59 = (150, 150, 150) +gray60 = (153, 153, 153) +gray61 = (156, 156, 156) +gray62 = (158, 158, 158) +gray63 = (161, 161, 161) +gray64 = (163, 163, 163) +gray65 = (166, 166, 166) +gray66 = (168, 168, 168) +gray67 = (171, 171, 171) +gray68 = (173, 173, 173) +gray69 = (176, 176, 176) +gray70 = (179, 179, 179) +gray71 = (181, 181, 181) +gray72 = (184, 184, 184) +gray73 = (186, 186, 186) +gray74 = (189, 189, 189) +gray75 = (191, 191, 191) +gray76 = (194, 194, 194) +gray77 = (196, 196, 196) +gray78 = (199, 199, 199) +gray79 = (201, 201, 201) +gray80 = (204, 204, 204) +gray81 = (207, 207, 207) +gray82 = (209, 209, 209) +gray83 = (212, 212, 212) +gray84 = (214, 214, 214) +gray85 = (217, 217, 217) +gray86 = (219, 219, 219) +gray87 = (222, 222, 222) +gray88 = (224, 224, 224) +gray89 = (227, 227, 227) +gray90 = (229, 229, 229) +gray91 = (232, 232, 232) +gray92 = (235, 235, 235) +gray93 = (237, 237, 237) +gray94 = (240, 240, 240) +gray95 = (242, 242, 242) +gray96 = (245, 245, 245) +gray97 = (247, 247, 247) +gray98 = (250, 250, 250) +gray99 = (252, 252, 252) +gray100 = (255, 255, 255) +green = (0, 128, 0) +green_yellow = (173, 255, 47) +green1 = (0, 255, 0) +green2 = (0, 238, 0) +green3 = (0, 205, 0) +green4 = (0, 139, 0) +GreenYellow = (173, 255, 47) +grey = (128, 128, 128) +grey0 = (0, 0, 0) +grey1 = (3, 3, 3) +grey2 = (5, 5, 5) +grey3 = (8, 8, 8) +grey4 = (10, 10, 10) +grey5 = (13, 13, 13) +grey6 = (15, 15, 15) +grey7 = (18, 18, 18) +grey8 = (20, 20, 20) +grey9 = (23, 23, 23) +grey10 = (26, 26, 26) +grey11 = (28, 28, 28) +grey12 = (31, 31, 31) +grey13 = (33, 33, 33) +grey14 = (36, 36, 36) +grey15 = (38, 38, 38) +grey16 = (41, 41, 41) +grey17 = (43, 43, 43) +grey18 = (46, 46, 46) +grey19 = (48, 48, 48) +grey20 = (51, 51, 51) +grey21 = (54, 54, 54) +grey22 = (56, 56, 56) +grey23 = (59, 59, 59) +grey24 = (61, 61, 61) +grey25 = (64, 64, 64) +grey26 = (66, 66, 66) +grey27 = (69, 69, 69) +grey28 = (71, 71, 71) +grey29 = (74, 74, 74) +grey30 = (77, 77, 77) +grey31 = (79, 79, 79) +grey32 = (82, 82, 82) +grey33 = (84, 84, 84) +grey34 = (87, 87, 87) +grey35 = (89, 89, 89) +grey36 = (92, 92, 92) +grey37 = (94, 94, 94) +grey38 = (97, 97, 97) +grey39 = (99, 99, 99) +grey40 = (102, 102, 102) +grey41 = (105, 105, 105) +grey42 = (107, 107, 107) +grey43 = (110, 110, 110) +grey44 = (112, 112, 112) +grey45 = (115, 115, 115) +grey46 = (117, 117, 117) +grey47 = (120, 120, 120) +grey48 = (122, 122, 122) +grey49 = (125, 125, 125) +grey50 = (127, 127, 127) +grey51 = (130, 130, 130) +grey52 = (133, 133, 133) +grey53 = (135, 135, 135) +grey54 = (138, 138, 138) +grey55 = (140, 140, 140) +grey56 = (143, 143, 143) +grey57 = (145, 145, 145) +grey58 = (148, 148, 148) +grey59 = (150, 150, 150) +grey60 = (153, 153, 153) +grey61 = (156, 156, 156) +grey62 = (158, 158, 158) +grey63 = (161, 161, 161) +grey64 = (163, 163, 163) +grey65 = (166, 166, 166) +grey66 = (168, 168, 168) +grey67 = (171, 171, 171) +grey68 = (173, 173, 173) +grey69 = (176, 176, 176) +grey70 = (179, 179, 179) +grey71 = (181, 181, 181) +grey72 = (184, 184, 184) +grey73 = (186, 186, 186) +grey74 = (189, 189, 189) +grey75 = (191, 191, 191) +grey76 = (194, 194, 194) +grey77 = (196, 196, 196) +grey78 = (199, 199, 199) +grey79 = (201, 201, 201) +grey80 = (204, 204, 204) +grey81 = (207, 207, 207) +grey82 = (209, 209, 209) +grey83 = (212, 212, 212) +grey84 = (214, 214, 214) +grey85 = (217, 217, 217) +grey86 = (219, 219, 219) +grey87 = (222, 222, 222) +grey88 = (224, 224, 224) +grey89 = (227, 227, 227) +grey90 = (229, 229, 229) +grey91 = (232, 232, 232) +grey92 = (235, 235, 235) +grey93 = (237, 237, 237) +grey94 = (240, 240, 240) +grey95 = (242, 242, 242) +grey96 = (245, 245, 245) +grey97 = (247, 247, 247) +grey98 = (250, 250, 250) +grey99 = (252, 252, 252) +grey100 = (255, 255, 255) +honeydew = (240, 255, 240) +honeydew1 = (240, 255, 240) +honeydew2 = (224, 238, 224) +honeydew3 = (193, 205, 193) +honeydew4 = (131, 139, 131) +hot_pink = (255, 105, 180) +HotPink = (255, 105, 180) +HotPink1 = (255, 110, 180) +HotPink2 = (238, 106, 167) +HotPink3 = (205, 96, 144) +HotPink4 = (139, 58, 98) +indian_red = (205, 92, 92) +IndianRed = (205, 92, 92) +IndianRed1 = (255, 106, 106) +IndianRed2 = (238, 99, 99) +IndianRed3 = (205, 85, 85) +IndianRed4 = (139, 58, 58) +indigo = (75, 0, 130) +ivory = (255, 255, 240) +ivory1 = (255, 255, 240) +ivory2 = (238, 238, 224) +ivory3 = (205, 205, 193) +ivory4 = (139, 139, 131) +khaki = (240, 230, 140) +khaki1 = (255, 246, 143) +khaki2 = (238, 230, 133) +khaki3 = (205, 198, 115) +khaki4 = (139, 134, 78) +lavender = (230, 230, 250) +lavender_blush = (255, 240, 245) +LavenderBlush = (255, 240, 245) +LavenderBlush1 = (255, 240, 245) +LavenderBlush2 = (238, 224, 229) +LavenderBlush3 = (205, 193, 197) +LavenderBlush4 = (139, 131, 134) +lawn_green = (124, 252, 0) +LawnGreen = (124, 252, 0) +lemon_chiffon = (255, 250, 205) +LemonChiffon = (255, 250, 205) +LemonChiffon1 = (255, 250, 205) +LemonChiffon2 = (238, 233, 191) +LemonChiffon3 = (205, 201, 165) +LemonChiffon4 = (139, 137, 112) +light_blue = (173, 216, 230) +light_coral = (240, 128, 128) +light_cyan = (224, 255, 255) +light_goldenrod = (238, 221, 130) +light_goldenrod_yellow = (250, 250, 210) +light_gray = (211, 211, 211) +light_green = (144, 238, 144) +light_grey = (211, 211, 211) +light_pink = (255, 182, 193) +light_salmon = (255, 160, 122) +light_sea_green = (32, 178, 170) +light_sky_blue = (135, 206, 250) +light_slate_blue = (132, 112, 255) +light_slate_gray = (119, 136, 153) +light_slate_grey = (119, 136, 153) +light_steel_blue = (176, 196, 222) +light_yellow = (255, 255, 224) +LightBlue = (173, 216, 230) +LightBlue1 = (191, 239, 255) +LightBlue2 = (178, 223, 238) +LightBlue3 = (154, 192, 205) +LightBlue4 = (104, 131, 139) +LightCoral = (240, 128, 128) +LightCyan = (224, 255, 255) +LightCyan1 = (224, 255, 255) +LightCyan2 = (209, 238, 238) +LightCyan3 = (180, 205, 205) +LightCyan4 = (122, 139, 139) +LightGoldenrod = (238, 221, 130) +LightGoldenrod1 = (255, 236, 139) +LightGoldenrod2 = (238, 220, 130) +LightGoldenrod3 = (205, 190, 112) +LightGoldenrod4 = (139, 129, 76) +LightGoldenrodYellow = (250, 250, 210) +LightGray = (211, 211, 211) +LightGreen = (144, 238, 144) +LightGrey = (211, 211, 211) +LightPink = (255, 182, 193) +LightPink1 = (255, 174, 185) +LightPink2 = (238, 162, 173) +LightPink3 = (205, 140, 149) +LightPink4 = (139, 95, 101) +LightSalmon = (255, 160, 122) +LightSalmon1 = (255, 160, 122) +LightSalmon2 = (238, 149, 114) +LightSalmon3 = (205, 129, 98) +LightSalmon4 = (139, 87, 66) +LightSeaGreen = (32, 178, 170) +LightSkyBlue = (135, 206, 250) +LightSkyBlue1 = (176, 226, 255) +LightSkyBlue2 = (164, 211, 238) +LightSkyBlue3 = (141, 182, 205) +LightSkyBlue4 = (96, 123, 139) +LightSlateBlue = (132, 112, 255) +LightSlateGray = (119, 136, 153) +LightSlateGrey = (119, 136, 153) +LightSteelBlue = (176, 196, 222) +LightSteelBlue1 = (202, 225, 255) +LightSteelBlue2 = (188, 210, 238) +LightSteelBlue3 = (162, 181, 205) +LightSteelBlue4 = (110, 123, 139) +LightYellow = (255, 255, 224) +LightYellow1 = (255, 255, 224) +LightYellow2 = (238, 238, 209) +LightYellow3 = (205, 205, 180) +LightYellow4 = (139, 139, 122) +lime = (0, 255, 0) +lime_green = (50, 205, 50) +LimeGreen = (50, 205, 50) +linen = (250, 240, 230) +magenta = (255, 0, 255) +magenta1 = (255, 0, 255) +magenta2 = (238, 0, 238) +magenta3 = (205, 0, 205) +magenta4 = (139, 0, 139) +maroon = (128, 0, 0) +maroon1 = (255, 52, 179) +maroon2 = (238, 48, 167) +maroon3 = (205, 41, 144) +maroon4 = (139, 28, 98) +medium_aquamarine = (102, 205, 170) +medium_blue = (0, 0, 205) +medium_orchid = (186, 85, 211) +medium_purple = (147, 112, 219) +medium_sea_green = (60, 179, 113) +medium_slate_blue = (123, 104, 238) +medium_spring_green = (0, 250, 154) +medium_turquoise = (72, 209, 204) +medium_violet_red = (199, 21, 133) +MediumAquamarine = (102, 205, 170) +MediumBlue = (0, 0, 205) +MediumOrchid = (186, 85, 211) +MediumOrchid1 = (224, 102, 255) +MediumOrchid2 = (209, 95, 238) +MediumOrchid3 = (180, 82, 205) +MediumOrchid4 = (122, 55, 139) +MediumPurple = (147, 112, 219) +MediumPurple1 = (171, 130, 255) +MediumPurple2 = (159, 121, 238) +MediumPurple3 = (137, 104, 205) +MediumPurple4 = (93, 71, 139) +MediumSeaGreen = (60, 179, 113) +MediumSlateBlue = (123, 104, 238) +MediumSpringGreen = (0, 250, 154) +MediumTurquoise = (72, 209, 204) +MediumVioletRed = (199, 21, 133) +midnight_blue = (25, 25, 112) +MidnightBlue = (25, 25, 112) +mint_cream = (245, 255, 250) +MintCream = (245, 255, 250) +misty_srose = (255, 228, 225) +MistyRose = (255, 228, 225) +MistyRose1 = (255, 228, 225) +MistyRose2 = (238, 213, 210) +MistyRose3 = (205, 183, 181) +MistyRose4 = (139, 125, 123) +moccasin = (255, 228, 181) +navajo_white = (255, 222, 173) +NavajoWhite = (255, 222, 173) +NavajoWhite1 = (255, 222, 173) +NavajoWhite2 = (238, 207, 161) +NavajoWhite3 = (205, 179, 139) +NavajoWhite4 = (139, 121, 94) +navy = (0, 0, 128) +navy_blue = (0, 0, 128) +NavyBlue = (0, 0, 128) +old_lace = (253, 245, 230) +OldLace = (253, 245, 230) +olive = (128, 128, 0) +olive_drab = (107, 142, 35) +OliveDrab = (107, 142, 35) +OliveDrab1 = (192, 255, 62) +OliveDrab2 = (179, 238, 58) +OliveDrab3 = (154, 205, 50) +OliveDrab4 = (105, 139, 34) +orange = (255, 165, 0) +orange_red = (255, 69, 0) +orange1 = (255, 165, 0) +orange2 = (238, 154, 0) +orange3 = (205, 133, 0) +orange4 = (139, 90, 0) +OrangeRed = (255, 69, 0) +OrangeRed1 = (255, 69, 0) +OrangeRed2 = (238, 64, 0) +OrangeRed3 = (205, 55, 0) +OrangeRed4 = (139, 37, 0) +orchid = (218, 112, 214) +orchid1 = (255, 131, 250) +orchid2 = (238, 122, 233) +orchid3 = (205, 105, 201) +orchid4 = (139, 71, 137) +pale_goldenrod = (238, 232, 170) +pale_green = (152, 251, 152) +pale_turquoise = (175, 238, 238) +pale_violet_red = (219, 112, 147) +PaleGoldenrod = (238, 232, 170) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..9772040 --- /dev/null +++ b/setup.py @@ -0,0 +1,31 @@ +from setuptools import setup, find_packages + +with open("README.md") as mdfile: + long_description = mdfile.read() + +with open("LICENSE") as mdfile: + lisence = mdfile.read() + + +setup( + name = "TableIt", + packages = ["TableIt"], + version="0.0.0", + description="", + long_description = long_description, + author = "SuperMaZingCoder", + url = "https://github.com/SuperMaZingCoder/TableIt", + keywords = ["tables"], + + license=lisence, + + classifiers=[ + "Development Status :: 6 - Mature", + "Framework :: IDLE", + "Intended Audience :: Developers", + "Natural Language :: English", + "Programming Language :: Python :: 3.0", + "Topic :: Printing", + + ] +) \ No newline at end of file