Esempio n. 1
0
 def download_prediction_result(self, results, local_file):
     for provider in results.keys():
         result = results[provider]
         predicted = dict_dig(result, 'data', 'predicted')
         if predicted and type(predicted) == str and fsclient.is_s3_path(
                 predicted):
             file_path = os.path.splitext(local_file)[0] + '_predicted.csv'
             client = self.create_uploader()
             client.download(predicted, file_path)
             result['data']['predicted'] = file_path
             self.ctx.log(f'{predicted} downloaded to {file_path}')
Esempio n. 2
0
    async def wait_result(self, request_id, local_file):
        data = {}

        while not self.get_response_data_type(data) == 'result':
            data = await self.connect_and_get_result(request_id, local_file)

        result = data.get('result', {})
        if result:
            return dict_dig(result, 'response') or result
        else:
            return {
                self.provider: {
                    'result': False,
                    'data': "Server error. Please try again..."
                }
            }
Esempio n. 3
0
    async def wait_result(self, request_id, local_file):
        data = {}

        while not self.get_response_data_type(data) == 'result':
            data = await self.connect_and_get_result(request_id, local_file)

        if data.get('status') == 'SUCCESS':
            result = data.get('result', {})
            return dict_dig(result, 'response') or result
        else:
            return {
                self.provider: {
                    'result': False,
                    'data': "Server error. Details: %s" % data.get('result')
                }
            }
Esempio n. 4
0
    def show_output(self, data):
        data_type = self.get_response_data_type(data)

        if data_type == 'log':
            self.ctx.log(str(data['msg']))
        elif data_type == 'result':
            if self.ctx.debug or data.get('status') == 'FAILURE':
                self.ctx.log(
                    str(data['status']) + ': ' +
                    str(dict_dig(data, 'result', 'response')))
        elif data_type == 'ping':
            pass
        elif data_type == 'start':
            pass
        elif isinstance(data, Exception):
            if self.ctx.debug:
                traceback.print_exc()

            self.ctx.log('Error: ' + str(data))
        else:
            self.ctx.log(str(data))
Esempio n. 5
0
    def test_dict_dig(self):
        d = {'a': {'b': {'c': 123}}}

        assert dict_dig(d, 'a', 'b', 'c') == 123
        assert dict_dig(d, 'a', 'b', 'd') == None
        assert dict_dig(d, 'aa', 'bb') == None