Package: display-tty
Display ttyDescriptionThis is a python package I created in order to simplify the boiling process for displaying text in a geometrical shape drawn using characters.DisclaimerThe package was originally nameddispbut had to be changed todisplay_ttybecause the namesdispanddisplaywere already taken by other packages.The class will still remainDispbut bindings namedDisplay,DispTTYandDisplayTTYare available.The Preloaded version exists under:IDISP,IDISPLAY,IDTTYandIDISPTTYTable of ContentDisplay ttyDescriptionDisclaimerTable of ContentInstallationUsing pipUsing pythonUsageImportingInitialisingCalling the tree functionDisplaying a beautified Hello WorldHello World as a titleHello World as a sub titleHello World as a sub sub titleHello World as a message with adjustable delay per callHello World as a messageHello World as a question messageHello World as an error messageHello World as a success messageHello World as a warning messageHello World as an inform messageChange the initialisation contentTOML configuration breakdownline 1line 2line 3line 4line 5line 6line 7line 8line 9line 10line 11line 12line 13line 14line 15line 16line 17Update the configuration of an initialised classAuthorVersionInstallationUsing pippipinstall-UdispUsing pythonUnder Windows:py -m pip install -U display_ttyUnder Linux/Mac OS:python3-mpipinstall-Udisplay_ttyUsageImportingfromdisplay_ttyimportIDTTYInitialisingThe generic class is:Disp(toml_content: dict, save_to_file: bool = False, file_name: str = "text_output_run.txt", file_descriptor: any = None)For your convenience, you can use theIDTTYvariable which is an initialised version of the class.IDTTY.title("Hello World")Otherwise, if you wish to initialise the class with your own parameters, you can do so like this:fromdisplay_ttyimportDisplayTTYTOML_CONF={'PRETTIFY_OUTPUT':True,'PRETTY_OUTPUT_IN_BLOCS':True,'MESSAGE_CHARACTER':'@','MESSAGE_ERROR_CHARACTER':'#','MESSAGE_INFORM_CHARACTER':'i','MESSAGE_QUESTION_CHARACTER':'?','MESSAGE_SUCCESS_CHARACTER':'/','MESSAGE_WARNING_CHARACTER':'!','SUB_SUB_TITLE_WALL_CHARACTER':'*','SUB_TITLE_WALL_CHARACTER':'@','TITLE_WALL_CHARACTER':'#','TREE_COLUMN_SEPERATOR_CHAR':'│','TREE_LINE_SEPERATOR_CHAR':'─','TREE_NODE_CHAR':'├','TREE_NODE_END_CHAR':'└','MESSAGE_ANIMATION_DELAY_BLOCKY':0.01,'MESSAGE_ANIMATION_DELAY':0.01}SAVE_TO_FILE=FalseFILE_NAME="run_results.txt"FILE_DESCRIPTOR=NoneIDTTY=DisplayTTY(TOML_CONF,SAVE_TO_FILE,FILE_NAME,)Calling the tree functionThe generic function is:tree(self,title:str,data:list[str],offset:int=0)The output is: NoneTEST_DATA={"test_data1":"test_data1.1","test_data2":"test_data2.1","test_data3":["test_data_list3.1","test_data_list3.2","test_data_list3.3","test_data_list3.4","test_data_list3.5"],"test_data4":"test_data4.1","test_data5":{"test_data5.1":"test_data5.1.1","test_data5.2":"test_data5.2.1","test_data5.3":"test_data5.3.1","test_data5.4":"test_data5.4.1"},"test_data6":[{"test_data6.1":"test_data6.1.1","test_data6.2":"test_data6.2.1"},["test_data_list6.3.1","test_data_list6.3.1","test_data_list6.3.1","test_data_list6.3.1"]],"test_data7":{"test_data7.1":{"test_data7.1.1":"test_data7.1.1.1","test_data7.1.2":"test_data7.1.2.1"},"test_data7.2":["test_data7.2.1","test_data7.2.2","test_data7.2.3","test_data7.2.4","test_data7.2.5"]}}IDTTY.tree("This is a test tree",TEST_DATA,0)Displaying a beautified Hello WorldHello World as a titleThe generic function to displayHello World!as a title is:title(self,title)The outputs is: NoneIDTTY.title("Hello World !")Hello World as a sub titleThe generic function to displayHello World!as a sub title is:sub_title(self,sub_title)The outputs is: NoneIDTTY.sub_title("Hello World !")Hello World as a sub sub titleThe generic function to displayHello World!as a sub sub  title is:sub_sub_title(self,sub_sub_title)The outputs is: NoneIDTTY.sub_sub_title("Hello World !")Hello World as a message with adjustable delay per callThe generic function to displayHello World!as a message is:animate_message(self,message:str="Hello World!",delay:float=0.02)The outputs is: NoneIDTTY.animate_message("Hello World !",0.01)Hello World as a messageThe generic function to displayHello World!as a message is:message(self,message:str)The outputs is: NoneIDTTY.message("Hello World !")Hello World as a question messageThe generic function to displayHello World!as a question message is:question_message(self,message:str)The outputs is: NoneIDTTY.question_message("Hello World !")Hello World as an error messageThe generic function to displayHello World!as an error message is:error_message(self,message:str)The outputs is: NoneIDTTY.error_message("Hello World !")Hello World as a success messageThe generic function to displayHello World!as a success message is:success_message(self,message:str)The outputs is: NoneIDTTY.success_message("Hello World !")Hello World as a warning messageThe generic function to displayHello World!as a warning message is:warning_message(self,message:str)The outputs is: NoneIDTTY.warning_message("Hello World !")Hello World as an inform messageThe generic function to displayHello World!as an inform message is:append_run_date(self)The outputs is: NoneIDTTY.append_run_date()Displaying the current dateThe generic function to display the current date as a title is:inform_message(self,message:list)The outputs is: NoneIDTTY.inform_message("Hello World !")Change the initialisation contentWhen initialising the class it is possible to change the animation behaviour by editing theTOML_CONFthat you must provide when initialising the class.During the initialisation it is also possible to redirect the output to a file instead of displaying it on the terminal. For this, please set thesave_to_filetoTrueand either:provide a file name infile_nameprovide a file descriptor infile_descriptorIf you provided afile_name, the file will automatically be opened
However, in both cases, you will need to close the file by calling the functionclose_file(i.e. at the end of your program)TOML configuration breakdownThis is the arguments that are required in theTOMLfile:1  | PRETTIFY_OUTPUT: True,
2  | PRETTY_OUTPUT_IN_BLOCS: True,
3  | MESSAGE_CHARACTER: '@',
4  | MESSAGE_ERROR_CHARACTER: '#',
5  | MESSAGE_INFORM_CHARACTER: '!',
6  | MESSAGE_QUESTION_CHARACTER: '?',
7  | MESSAGE_SUCCESS_CHARACTER: '/',
8  | MESSAGE_WARNING_CHARACTER: '?',
9  | SUB_SUB_TITLE_WALL_CHARACTER: '*',
10 | SUB_TITLE_WALL_CHARACTER: '@',
11 | TITLE_WALL_CHARACTER: '#',
12 | TREE_COLUMN_SEPERATOR_CHAR: '│',
13 | TREE_LINE_SEPERATOR_CHAR: '─',
14 | TREE_NODE_CHAR: '├',
15 | TREE_NODE_END_CHAR: '└',
16 | MESSAGE_ANIMATION_DELAY_BLOCKY: 0.01,
17 | MESSAGE_ANIMATION_DELAY: 0.01PS: I've added line numbers<number> |to help you track the analysis of the file, these are generally added automatically by your code editor.Thats a big file, lets break it down together:line 1PRETTIFY_OUTPUT: TrueThis option is a crucial pivot for the program.If:True: The program will output the content letter by letter while waiting a specified delayFalse: It will print out all of your messages at once without waiting any delayline 2PRETTY_OUTPUT_IN_BLOCS: TrueThis option is an optimisation for the program.If:True: The program will:Extract the words from the inputoutput the content word by word while waiting a specified delay and respecting spacingFalse: It will print out all of your messages at once without waiting any delayline 3MESSAGE_CHARACTER: '@'This is a customisation, it allows you to specify the characther to use when displaying a message.line 4MESSAGE_ERROR_CHARACTER: '#'This is a customisation, it allows you to specify the characther to use when displaying an error message.line 5MESSAGE_INFORM_CHARACTER: '!'This is a customisation, it allows you to specify the characther to use when displaying an inform message.line 6MESSAGE_QUESTION_CHARACTER: '?'This is a customisation, it allows you to specify the characther to use when displaying a question message.line 7MESSAGE_SUCCESS_CHARACTER: '/'This is a customisation, it allows you to specify the characther to use when displaying a success message.line 8MESSAGE_WARNING_CHARACTER: '?'This is a customisation, it allows you to specify the characther to use when displaying a warning message.line 9SUB_SUB_TITLE_WALL_CHARACTER: '*'This is a customisation, it allows you to specify the characther to use when displaying a sub sub title.line 10SUB_TITLE_WALL_CHARACTER: '@'This is a customisation, it allows you to specify the characther to use when displaying a sub title.line 11TITLE_WALL_CHARACTER: '#'This is a customisation, it allows you to specify the characther to use when displaying a title.line 12TREE_COLUMN_SEPERATOR_CHAR: '│'This is the character used by the tree function to indicate the indentation leveli.e:│   ├─── my_fileline 13TREE_LINE_SEPERATOR_CHAR: '─'This is the character used by the tree function to indicate the file/folder of the current linei.e:├─── my_fileline 14TREE_NODE_CHAR: '├'This is the character used by the tree function to indicate the directory level to wich the file/directory is linked but that this is not the last file/directory.i.e:├─── my_fileline 15TREE_NODE_END_CHAR: '└'This is the character used by the tree function to indicate the directory level to wich the file/directory is linked but that this is the last file/directory.i.e:└─── my_fileline 16MESSAGE_ANIMATION_DELAY_BLOCKY: 0.01Specify the delay between each word placement. (min: 0)PS: if you enter 0, this is like settingPRETTY_OUTPUT_IN_BLOCStoFalseline 17MESSAGE_ANIMATION_DELAY: 0.01This variable is a pivot point for the program.Specify the delay between each word placement. (min: 0)PS: if you enter 0, this is like settingPRETTY_OUTPUT_IN_BLOCStoFalseUpdate the configuration of an initialised classIf the default initialisation, or the class you previously initialised has some elements you would like to update, you can do so by calling the inner variables.Here are the variables you might be interested in:fromdisplay_ttyimportIDTTYIDTTY.title_wall_chr# string (length 1): i.e.: '#'IDTTY.sub_title_wall_chr# string (length 1): i.e.: '@'IDTTY.sub_sub_title_wall_chr# string (length 1): i.e.: '*'IDTTY.message_char# string (length 1): i.e.: '@'IDTTY.message_error_char# string (length 1): i.e.: '#'IDTTY.message_success_char# string (length 1): i.e.: '/'IDTTY.message_inform_char# string (length 1): i.e.: 'i'IDTTY.message_warning_char# string (length 1): i.e.: '!'IDTTY.message_question_char# string (length 1): i.e.: '?'IDTTY.message_animation_delay# float: i.e.: # 0.01IDTTY.tree_node_char# string (length 1): i.e.: '├'IDTTY.tree_node_end_char# string (length 1): i.e.: '└'IDTTY.tree_line_seperator_char# string (length 1): i.e.: '─'IDTTY.tree_column_seperator_char# string (length 1): i.e.: '│'IDTTY.save_to_file# True or FalseIDTTY.toml_content["PRETTIFY_OUTPUT"]# True of FalseIDTTY.toml_content["PRETTY_OUTPUT_IN_BLOCS"]# True of FalseTo update a variable, simply assing it a new value, like in this example:IDTTY.title_wall_chr = "&"PS: These changes only apply to the class you loaded, any others will not be touched.AuthorThis module was written by (c) Henry Letellier
Attributions are appreciated.Quick way:print(f"AskQuestion is written by{IDTTY.author}")VersionThe current version is 1.0.0An easy way to display the version is:importdisplay_ttyasIDTTYprint(f"Version :{IDTTY.__Version__}")