{ "info": { "author": "Riccardo Russo", "author_email": "riccardo.russo79@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "=========================================\nsve_common_tools\n=========================================\n\n.. sectnum::\n\n.. contents:: Indice\n\nSSHManager\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nClasse di gestione SSH tramite paramiko\n ::\n\n import sve_common_tools as svect\n\n cp = '.*(\\@host1> )$'\n re1 = '.*(a\\.b\\.c\\.d).*[>] $'\n ssh_manager = svect.SSHManager(username='xxxx', password='yyyy', host='a.b.c.d', timeout=10)\n command_output = ssh_manager.connect(re_string=cp, timeout=10)\n command_output = ssh_manager.send_command('ls -lrt', re_string=re1)\n command_output = ssh_manager.send_command('date', re_string=re1)\n\n Note: se la RegExp non ritorna il buffer, scatta il timeout ed \u00e8 generata una Exception\n\n\nFileUtils\n~~~~~~~~~~~~~~~~~~~~~~~~~\n\nClasse di gestione operazioni su blocchi di testo\n - **costanti**\n\n ::\n\n raise_msg_header_not_found = 'HEADER_NOT_FOUND'\n\n - **def strip_rows(command_output)**\n\n ::\n\n import sve_common_tools as svect\n\n command_output = \"\\nROW1 ROW1 \\n\\nROW2 ROW2\\n\\n\"\n result = \"\\nROW1 ROW1\\n\\nROW2 ROW2\\n\\n\"\n multiline_header = svect.FileUtils.strip_rows(command_output=command_output)\n self.assertTrue(multiline_header == result)\n\n - **def remove_skip_rows(multiline_str, skip_str_array, skip_empty_lines)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\n\\n-----------\\nROW2 ROW2\\n=======\\n\"\n skip_str_array=[\"---\", \"====\"]\n result = \"ROW1 ROW1\\nROW2 ROW2\\n\"\n multiline_header = svect.FileUtils.remove_skip_rows(multiline_str=multiline_str,\n skip_str_array=skip_str_array,\n skip_empty_lines=True)\n self.assertTrue(multiline_header == result)\n\n - **def check_header_string_array(multiline_str, header_str_array)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\nHEADER1 H1 \\nDATA\"\n header_str_array = [['BASE', 'HEADER1 H1', 'STR'],\n ['VAR1', '^(HEADER1).*(H1).*$', 'REGEXP']]\n found_header, label_header, string_header = svect.FileUtils.check_header_string_array(\n multiline_str=multiline_str,\n header_str_array=header_str_array)\n self.assertTrue(found_header == True)\n self.assertTrue(label_header == \"VAR1\")\n self.assertTrue(string_header == \"HEADER1 H1 \")\n\n - **def remove_before_header_string(multiline_str, header_str)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\nHEADER1 H1\\nDATA\\n\"\n header_str = \"HEADER1 H1\"\n result = \"DATA\\n\"\n outr = svect.FileUtils.remove_before_header_string(multiline_str=multiline_str,\n header_str=header_str)\n self.assertTrue(outr == result)\n\n - **def remove_after_footer_string(multiline_str, footer_str)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\nHEADER1 H1\\nDATA\\nFOOTER F1\\nDATA2\\n\"\n footer_str = \"FOO\"\n result = \"ROW1 ROW1\\nHEADER1 H1\\nDATA\\n\"\n outr = svect.FileUtils.remove_after_footer_string(multiline_str=multiline_str,\n footer_str=footer_str)\n self.assertTrue(outr == result)\n\n - **def extract_block(multiline_str, starting_row, ending_row, add_ending_row)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\nHEADER1 H1\\nDATA\\nDATA3\\nFOOTER F1\\nDATA2\\n\"\n starting_row = \"HEADER1 H1\"\n footer_str = \"FOOTER F1\"\n result = \"HEADER1 H1\\nDATA\\nDATA3\\n\"\n outr = svect.FileUtils.extract_block(multiline_str=multiline_str,\n starting_row=starting_row,\n ending_row=footer_str,\n add_ending_row=False)\n self.assertTrue(outr == result)\n\n - **def add_char_to_every_row_if_not_exist(multiline_str, character)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\n\\nROW2 ROW2\\n\\n\"\n result = \"ROW1 ROW1:\\n:\\nROW2 ROW2:\\n:\\n\"\n outr = svect.FileUtils.add_char_to_every_row_if_not_exist(multiline_str=multiline_str,\n character=\":\")\n self.assertTrue(outr == result)\n\n - **def parse_exact_table(multiline_str, header_column_position)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\nHEADER1 H1\\nDATA\\nFOOTER F1\\nDATA2\\n\"\n multiline_str = \"H1 H2 | H3\\nROW1 ROW1 | ROW1\\nROW2 ROW2 | ROW2\\nROW3 ROW3 | ROW3\\n\"\n h = \"H1 H2 | H3\"\n col_init = [[h.find('H1'), None],\n [h.find('H2'), h.find('|')],\n [h.find('H3'), None]]\n result = [['H1', 'H2', 'H3'],\n ['ROW1', 'ROW1', 'ROW1'],\n ['ROW2', 'ROW2', 'ROW2'],\n ['ROW3', 'ROW3', 'ROW3']]\n outr = svect.FileUtils.parse_exact_table(multiline_str=multiline_str,\n header_column_position=col_init)\n self.assertTrue(outr == result)\n\n Nota: se la riga e' interamente vuota non e' inserita in matrice\n\n - **def create_htmltable(command_output_array_table, first_row_html_header)**\n ::\n\n import sve_common_tools as svect\n\n multiline_str = \"ROW1 ROW1\\nHEADER1 H1\\nDATA\\nFOOTER F1\\nDATA2\\n\"\n command_output_array_table = [['H1', 'H2', 'H3'],\n ['ROW1', 'ROW1', 'ROW1'],\n ['ROW2', 'ROW2', 'ROW2']]\n result = \"\"\"
| H1 | \nH2 | \nH3 | \n \n \n
|---|---|---|
| ROW1 | \nROW1 | \nROW1 | \n
| ROW2 | \nROW2 | \nROW2 | \n