Skip to main content

1 SSHManager

Classe di gestione SSH tramite paramiko
import sve_common_tools as svect

cp = '.*(\@host1> )$'
re1 = '.*(a\.b\.c\.d).*[>] $'
ssh_manager = svect.SSHManager(username='xxxx', password='yyyy', host='a.b.c.d', timeout=10)
command_output = ssh_manager.connect(re_string=cp, timeout=10)
command_output = ssh_manager.send_command('ls -lrt', re_string=re1)
command_output = ssh_manager.send_command('date', re_string=re1)

Note: se la RegExp non ritorna il buffer, scatta il timeout ed è generata una Exception

2 FileUtils

Classe di gestione operazioni su blocchi di testo
  • costanti

    raise_msg_header_not_found = 'HEADER_NOT_FOUND'
  • def strip_rows(command_output)

    import sve_common_tools as svect
    
    command_output = "\nROW1 ROW1    \n\nROW2 ROW2\n\n"
    result = "\nROW1 ROW1\n\nROW2 ROW2\n\n"
    multiline_header = svect.FileUtils.strip_rows(command_output=command_output)
    self.assertTrue(multiline_header == result)
  • def remove_skip_rows(multiline_str, skip_str_array, skip_empty_lines)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\n\n-----------\nROW2 ROW2\n=======\n"
    skip_str_array=["---", "===="]
    result = "ROW1 ROW1\nROW2 ROW2\n"
    multiline_header = svect.FileUtils.remove_skip_rows(multiline_str=multiline_str,
                                                        skip_str_array=skip_str_array,
                                                        skip_empty_lines=True)
    self.assertTrue(multiline_header == result)
  • def check_header_string_array(multiline_str, header_str_array)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\nHEADER1    H1   \nDATA"
    header_str_array = [['BASE', 'HEADER1 H1', 'STR'],
                        ['VAR1', '^(HEADER1).*(H1).*$', 'REGEXP']]
    found_header, label_header, string_header = svect.FileUtils.check_header_string_array(
              multiline_str=multiline_str,
              header_str_array=header_str_array)
    self.assertTrue(found_header == True)
    self.assertTrue(label_header == "VAR1")
    self.assertTrue(string_header == "HEADER1    H1   ")
  • def remove_before_header_string(multiline_str, header_str)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\nHEADER1 H1\nDATA\n"
    header_str = "HEADER1 H1"
    result = "DATA\n"
    outr = svect.FileUtils.remove_before_header_string(multiline_str=multiline_str,
                                                       header_str=header_str)
    self.assertTrue(outr == result)
  • def remove_after_footer_string(multiline_str, footer_str)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\nHEADER1 H1\nDATA\nFOOTER F1\nDATA2\n"
    footer_str = "FOO"
    result = "ROW1 ROW1\nHEADER1 H1\nDATA\n"
    outr = svect.FileUtils.remove_after_footer_string(multiline_str=multiline_str,
                                                      footer_str=footer_str)
    self.assertTrue(outr == result)
  • def extract_block(multiline_str, starting_row, ending_row, add_ending_row)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\nHEADER1 H1\nDATA\nDATA3\nFOOTER F1\nDATA2\n"
    starting_row = "HEADER1 H1"
    footer_str = "FOOTER F1"
    result = "HEADER1 H1\nDATA\nDATA3\n"
    outr = svect.FileUtils.extract_block(multiline_str=multiline_str,
                                         starting_row=starting_row,
                                         ending_row=footer_str,
                                         add_ending_row=False)
    self.assertTrue(outr == result)
  • def add_char_to_every_row_if_not_exist(multiline_str, character)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\n\nROW2 ROW2\n\n"
    result = "ROW1 ROW1:\n:\nROW2 ROW2:\n:\n"
    outr = svect.FileUtils.add_char_to_every_row_if_not_exist(multiline_str=multiline_str,
                                                              character=":")
    self.assertTrue(outr == result)
  • def parse_exact_table(multiline_str, header_column_position)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\nHEADER1 H1\nDATA\nFOOTER F1\nDATA2\n"
    multiline_str = "H1   H2   | H3\nROW1 ROW1 | ROW1\nROW2 ROW2 | ROW2\nROW3 ROW3 | ROW3\n"
    h = "H1   H2   | H3"
    col_init = [[h.find('H1'), None],
                [h.find('H2'), h.find('|')],
                [h.find('H3'), None]]
    result = [['H1', 'H2', 'H3'],
              ['ROW1', 'ROW1', 'ROW1'],
              ['ROW2', 'ROW2', 'ROW2'],
              ['ROW3', 'ROW3', 'ROW3']]
    outr = svect.FileUtils.parse_exact_table(multiline_str=multiline_str,
                                             header_column_position=col_init)
    self.assertTrue(outr == result)
    
    Nota: se la riga e' interamente vuota non e' inserita in matrice
  • def create_htmltable(command_output_array_table, first_row_html_header)

    import sve_common_tools as svect
    
    multiline_str = "ROW1 ROW1\nHEADER1 H1\nDATA\nFOOTER F1\nDATA2\n"
    command_output_array_table = [['H1', 'H2', 'H3'],
                                  ['ROW1', 'ROW1', 'ROW1'],
                                   ['ROW2', 'ROW2', 'ROW2']]
       result = """<table style="color:black" border="1" cellpadding="5">
                <thead>
                <th>H1</th>
                <th>H2</th>
                <th>H3</th>
                </thead>
                <tbody>
                <tr>
                <td>ROW1</td>
                <td>ROW1</td>
                <td>ROW1</td>
                </tr>
                <tr>
                <td>ROW2</td>
                <td>ROW2</td>
                <td>ROW2</td>
                </tr>
                </tbody>
                </table>
                """
       outr = svect.FileUtils.create_htmltable(command_output_array_table=command_output_array_table,
                                               first_row_html_header=True)
       self.assertTrue(outr == result)

3 TestingHelper

Classe di utility per unit-test

  • get_input_and_output(self, in_file_name, out_file_name)

    import sve_common_tools as svect
    
    th = svect.TestingHelper(basedir=os.path.dirname(os.path.realpath(__file__)))
    in_text, out_text = self.th.get_input_and_output('FILE_IN.txt', 'FILE_OUT.txt')

Metadata

Release files for sve_common_tools 0.1.8.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sve_common_tools 0.1.8.1
File Size Uploaded
sve_common_tools-0.1.8.1.tar.gz 10.2 kB Details

Release files / sve_common_tools-0.1.8.1.tar.gz

Download URL sve_common_tools-0.1.8.1.tar.gz
Size 10.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d10dc7b79a786a0960ff03b8761e841d98b42d97d2971b3f7b8794b6b3fd0b1a
BLAKE2b-256 checksum
How to use checksums
f0e875b69ac1594e8661012c2576757f6639ce18745d10f5442848a4a9842912
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.8.1 This release

1 release file

0.1.7.9

1 release file

0.1.7.8

1 release file

0.1.7.7

1 release file

0.1.7.6

1 release file

0.1.7.5

1 release file

0.1.7.4

1 release file

0.1.7.3

1 release file

0.1.7.2

1 release file

0.1.7.1

1 release file

0.1.7.0

1 release file

0.1.6.5

1 release file

0.1.6.4

1 release file

0.1.6.3

1 release file

0.1.6.2

1 release file

0.1.6.1

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page