Code Duplication    Length = 19-20 lines in 2 locations

savu/core/transports/base_transport.py 1 location

@@ 577-596 (lines=20) @@
574
            gp = entry.require_group('data')
575
            self.__output_data_type(gp, data.data, 'data')
576
577
    def __output_data(self, entry, data, name):
578
        if isinstance(data, dict):
579
            entry = entry.require_group(name)
580
            entry.attrs[NX_CLASS] = 'NXcollection'
581
            for key, value in data.items():
582
                self.__output_data(entry, value, key)
583
        else:
584
            try:
585
                self.__create_dataset(entry, name, data)
586
            except Exception:
587
                try:
588
                    import json
589
                    data = np.array([json.dumps(data).encode("ascii")])
590
                    self.__create_dataset(entry, name, data)
591
                except Exception:
592
                    try:
593
                        data = cu._savu_encoder(data)
594
                        self.__create_dataset(entry, name, data)
595
                    except:
596
                        raise Exception('Unable to output %s to file.' % name)
597
598
    def __create_dataset(self, entry, name, data):
599
        if name not in list(entry.keys()):

savu/plugins/loaders/base_tomophantom_loader.py 1 location

@@ 347-365 (lines=19) @@
344
                    nx_data.attrs['NX_class'] = 'NXdata'
345
                    self.__output_data(nx_data, value, key)
346
347
    def __output_data(self, entry, data, name):
348
        if isinstance(data, dict):
349
            entry = entry.require_group(name)
350
            entry.attrs['NX_class'] = 'NXcollection'
351
            for key, value in data.items():
352
                self.__output_data(entry, value, key)
353
        else:
354
            try:
355
                self.__create_dataset(entry, name, data)
356
            except Exception:
357
                try:
358
                    import json
359
                    data = np.array([json.dumps(data).encode("ascii")])
360
                    self.__create_dataset(entry, name, data)
361
                except Exception:
362
                    try:
363
                        self.__create_dataset(entry, name, data)
364
                    except:
365
                        raise Exception('Unable to output %s to file.' % name)
366
367
    def __create_dataset(self, entry, name, data):
368
        if name not in list(entry.keys()):