SYMBOL INDEX (144 symbols across 8 files) FILE: client.py class SpreadsheetClient (line 28) | class SpreadsheetClient: method __init__ (line 29) | def __init__(self, spreadsheet, ip=IP, port=PORT): method __connect (line 37) | def __connect(self, ip, port): method __set_spreadsheet (line 42) | def __set_spreadsheet(self, spreadsheet): method set_cells (line 50) | def set_cells(self, sheet, cell_ref, data): method get_sheet_names (line 72) | def get_sheet_names(self): method get_cells (line 83) | def get_cells(self, sheet, cell_ref): method save_spreadsheet (line 105) | def save_spreadsheet(self, filename): method __send (line 112) | def __send(self, msg): method __receive (line 127) | def __receive(self): method __receive_length (line 147) | def __receive_length(self, length): method disconnect (line 168) | def disconnect(self): FILE: connection.py class SpreadsheetConnection (line 28) | class SpreadsheetConnection: method __init__ (line 32) | def __init__(self, spreadsheet, lock, save_path): method lock_spreadsheet (line 37) | def lock_spreadsheet(self): method unlock_spreadsheet (line 47) | def unlock_spreadsheet(self): method __get_xy_index (line 56) | def __get_xy_index(self, cell_ref): method __is_single_cell (line 93) | def __is_single_cell(self, cell_ref): method __check_single_cell (line 98) | def __check_single_cell(self, cell_ref): method __cell_to_index (line 104) | def __cell_to_index(self, cell_ref): method __cell_range_to_index (line 116) | def __cell_range_to_index(self, cell_ref): method __check_for_lock (line 139) | def __check_for_lock(self): method __convert_to_float_if_numeric (line 145) | def __convert_to_float_if_numeric(self, value): method __check_list (line 155) | def __check_list(self, data): method __check_1D_list (line 159) | def __check_1D_list(self, data): method set_cells (line 169) | def set_cells(self, sheet, cell_ref, value): method set_cell (line 184) | def set_cell(self, sheet, cell_ref, value): method set_cell_range (line 208) | def set_cell_range(self, sheet, cell_ref, data): method get_sheet_names (line 252) | def get_sheet_names(self): method __validate_cell_ref (line 257) | def __validate_cell_ref(self, cell_ref): method __validate_sheet_name (line 289) | def __validate_sheet_name(self, sheet): method get_cells (line 307) | def get_cells(self, sheet, cell_ref): method get_cell (line 322) | def get_cell(self, sheet, cell_ref): method get_cell_range (line 338) | def get_cell_range(self, sheet, cell_ref): method save_spreadsheet (line 371) | def save_spreadsheet(self, filename): FILE: monitor.py class MonitorThread (line 26) | class MonitorThread(threading.Thread): method __init__ (line 29) | def __init__( method stop_thread (line 56) | def stop_thread(self): method stopped (line 59) | def stopped(self): method initial_scan (line 62) | def initial_scan(self): method __get_full_path (line 65) | def __get_full_path(self, doc): method __delete_lock_files (line 68) | def __delete_lock_files(self): method __load_spreadsheet (line 77) | def __load_spreadsheet(self, doc): method __unload_spreadsheet (line 86) | def __unload_spreadsheet(self, doc_path): method __check_added (line 94) | def __check_added(self): method __check_removed (line 121) | def __check_removed(self): method __scan_directory (line 139) | def __scan_directory(self, d): method run (line 166) | def run(self): FILE: request_handler.py class ThreadedTCPServer (line 32) | class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPSer... method __init__ (line 33) | def __init__(self, save_path, *args, **kwargs): class ThreadedTCPRequestHandler (line 38) | class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): method __send (line 39) | def __send(self, msg): method __receive (line 56) | def __receive(self): method __receive_length (line 81) | def __receive_length(self, length): method __make_connection (line 102) | def __make_connection(self): method __close_connection (line 162) | def __close_connection(self): method __main_loop (line 181) | def __main_loop(self): method handle (line 217) | def handle(self): FILE: server.py class SpreadsheetServer (line 44) | class SpreadsheetServer: method __init__ (line 45) | def __init__( method __logging (line 95) | def __logging(self): method __start_soffice (line 105) | def __start_soffice(self): method __connect_to_soffice (line 133) | def __connect_to_soffice(self): method __start_threaded_tcp_server (line 159) | def __start_threaded_tcp_server(self): method __start_monitor_thread (line 210) | def __start_monitor_thread(self): method __stop_monitor_thread (line 227) | def __stop_monitor_thread(self): method __stop_threaded_tcp_server (line 233) | def __stop_threaded_tcp_server(self): method __kill_libreoffice (line 244) | def __kill_libreoffice(self): method __close_logfile (line 251) | def __close_logfile(self): method stop (line 256) | def stop(self): method run (line 264) | def run(self): FILE: tests/test_client.py class TestClient (line 16) | class TestClient(unittest.TestCase): method setUpClass (line 18) | def setUpClass(cls): method tearDownClass (line 31) | def tearDownClass(cls): method setUp (line 35) | def setUp(self): method tearDown (line 38) | def tearDown(self): method test_connect_invalid_spreadsheet (line 41) | def test_connect_invalid_spreadsheet(self): method test_get_sheet_names (line 54) | def test_get_sheet_names(self): method test_set_cell (line 58) | def test_set_cell(self): method test_set_cell_invalid_sheet (line 63) | def test_set_cell_invalid_sheet(self): method test_get_cell (line 70) | def test_get_cell(self): method test_get_cell_invalid_sheet (line 74) | def test_get_cell_invalid_sheet(self): method test_get_invalid_cell_numeric (line 81) | def test_get_invalid_cell_numeric(self): method test_get_invalid_cell_missing_alpha (line 88) | def test_get_invalid_cell_missing_alpha(self): method test_get_invalid_cell_missing_numeric (line 95) | def test_get_invalid_cell_missing_numeric(self): method test_get_invalid_cell_missing_start_numeric (line 102) | def test_get_invalid_cell_missing_start_numeric(self): method test_get_invalid_cell_missing_end_numeric (line 109) | def test_get_invalid_cell_missing_end_numeric(self): method test_get_invalid_cell_missing_start_alpha (line 116) | def test_get_invalid_cell_missing_start_alpha(self): method test_get_invalid_cell_missing_end_alpha (line 123) | def test_get_invalid_cell_missing_end_alpha(self): method test_get_invalid_cell_negative (line 130) | def test_get_invalid_cell_negative(self): method test_get_invalid_cell_numeric_too_large (line 137) | def test_get_invalid_cell_numeric_too_large(self): method test_get_invalid_cell_alpha_too_large (line 144) | def test_get_invalid_cell_alpha_too_large(self): method test_set_cell_row (line 151) | def test_set_cell_row(self): method test_get_cell_column (line 158) | def test_get_cell_column(self): method test_get_cell_column_large_alpha (line 162) | def test_get_cell_column_large_alpha(self): method test_set_cell_range (line 166) | def test_set_cell_range(self): method test_save_spreadsheet (line 173) | def test_save_spreadsheet(self): method test_unicode (line 184) | def test_unicode(self): FILE: tests/test_connection.py class TestConnection (line 15) | class TestConnection(unittest.TestCase): method setUpClass (line 17) | def setUpClass(cls): method tearDownClass (line 31) | def tearDownClass(cls): method setUp (line 36) | def setUp(self): method tearDown (line 47) | def tearDown(self): method test_lock_spreadsheet (line 50) | def test_lock_spreadsheet(self): method test_unlock_spreadsheet (line 55) | def test_unlock_spreadsheet(self): method test_unlock_spreadsheet_runtime_error (line 61) | def test_unlock_spreadsheet_runtime_error(self): method test_get_xy_index_first_cell (line 66) | def test_get_xy_index_first_cell(self): method test_get_xy_index_Z26 (line 74) | def test_get_xy_index_Z26(self): method test_get_xy_index_aa3492 (line 82) | def test_get_xy_index_aa3492(self): method test_get_xy_index_aaa1024 (line 90) | def test_get_xy_index_aaa1024(self): method test_get_xy_index_aab739 (line 98) | def test_get_xy_index_aab739(self): method test_get_xy_index_aba1 (line 106) | def test_get_xy_index_aba1(self): method test_get_xy_index_abc123 (line 114) | def test_get_xy_index_abc123(self): method test_get_xy_index_last_cell (line 122) | def test_get_xy_index_last_cell(self): method test_is_single_cell (line 130) | def test_is_single_cell(self): method test_is_not_single_cell (line 134) | def test_is_not_single_cell(self): method test_check_not_single_cell (line 138) | def test_check_not_single_cell(self): method test_cell_to_index (line 147) | def test_cell_to_index(self): method test_cell_range_to_index (line 153) | def test_cell_range_to_index(self): method test_check_for_lock (line 162) | def test_check_for_lock(self): method test_check_numeric (line 171) | def test_check_numeric(self): method test_check_not_numeric (line 177) | def test_check_not_numeric(self): method test_check_not_list (line 184) | def test_check_not_list(self): method test_check_1D_list (line 193) | def test_check_1D_list(self): method test_check_1D_list_when_2D (line 199) | def test_check_1D_list_when_2D(self): method test_invalid_sheet_name (line 209) | def test_invalid_sheet_name(self): method test_set_single_cell (line 220) | def test_set_single_cell(self): method test_set_single_cell_list_of_data (line 226) | def test_set_single_cell_list_of_data(self): method test_set_cell_range_columnn (line 238) | def test_set_cell_range_columnn(self): method test_set_cell_range_row (line 247) | def test_set_cell_range_row(self): method test_set_cell_range_2D (line 256) | def test_set_cell_range_2D(self): method test_set_cell_range_2D_incorrect_data (line 265) | def test_set_cell_range_2D_incorrect_data(self): method test_get_sheet_names (line 281) | def test_get_sheet_names(self): method test_save_spreadsheet (line 285) | def test_save_spreadsheet(self): method test_save_spreadsheet_no_lock (line 297) | def test_save_spreadsheet_no_lock(self): FILE: tests/test_monitor.py class TestMonitor (line 21) | class TestMonitor(unittest.TestCase): method setUpClass (line 23) | def setUpClass(cls): method tearDownClass (line 37) | def tearDownClass(cls): method setUp (line 43) | def setUp(self): method tearDown (line 49) | def tearDown(self): method test_unload_spreadsheet (line 52) | def test_unload_spreadsheet(self): method test_check_added_already_exists (line 66) | def test_check_added_already_exists(self): method test_check_removed_when_renamed (line 78) | def test_check_removed_when_renamed(self): method test_change_file_hash (line 105) | def test_change_file_hash(self):