From aa39140bc8861e6d6514530e2e4486ceec417486 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Sat, 1 Feb 2020 20:12:25 +0100 Subject: [PATCH] Release: d4bf62e70e70b47431f7471f25637ecf --- __init__.py | 164 +- _testresults_/coverage.xml | 366 ++- _testresults_/unittest.json | 4774 +++++++++++++++++++++++++++++++---- _testresults_/unittest.pdf | Bin 192888 -> 227954 bytes common.py | 19 + convert.py | 35 + metadata.py | 131 +- 7 files changed, 4773 insertions(+), 716 deletions(-) create mode 100644 common.py create mode 100644 convert.py diff --git a/__init__.py b/__init__.py index 7826ade..8a462b0 100644 --- a/__init__.py +++ b/__init__.py @@ -16,6 +16,7 @@ media (Media Tools) **Submodules:** * :func:`media.get_media_data` +* :class:`media.image` **Unittest:** @@ -24,7 +25,7 @@ media (Media Tools) __DEPENDENCIES__ = [] import logging -from media import metadata +from PIL import Image, ImageEnhance logger_name = 'MEDIA' logger = logging.getLogger(logger_name) @@ -37,14 +38,161 @@ __INTERPRETER__ = (3, ) """The Tested Interpreter-Versions""" +KEY_ALBUM = 'album' +KEY_APERTURE = 'aperture' +KEY_ARTIST = 'artist' +KEY_BITRATE = 'bitrate' +KEY_CAMERA = 'camera' +KEY_DURATION = 'duration' +KEY_EXPOSURE_PROGRAM = 'exposure_program' +KEY_EXPOSURE_TIME = 'exposure_time' +KEY_FLASH = 'flash' +KEY_FOCAL_LENGTH = 'focal_length' +KEY_GENRE = 'genre' +KEY_GPS = 'gps' +KEY_HEIGHT = 'height' +KEY_ISO = 'iso' +KEY_ORIENTATION = 'orientation' +KEY_RATIO = 'ratio' +KEY_SIZE = 'size' +KEY_TIME = 'time' # USE time.localtime(value) or datetime.fromtimestamp(value) to convert the timestamp +KEY_TIME_IS_SUBSTITUTION = 'tm_is_subst' +KEY_TITLE = 'title' +KEY_TRACK = 'track' +KEY_WIDTH = 'width' +KEY_YEAR = 'year' + + def get_media_data(full_path): - ft = metadata.get_filetype(full_path) + from media.metadata import get_audio_data, get_image_data, get_video_data + from media.common import get_filetype, FILETYPE_AUDIO, FILETYPE_IMAGE, FILETYPE_VIDEO # - if ft == metadata.FILETYPE_AUDIO: - return metadata.get_audio_data(full_path) - elif ft == metadata.FILETYPE_IMAGE: - return metadata.get_image_data(full_path) - elif ft == metadata.FILETYPE_VIDEO: - return metadata.get_video_data(full_path) + ft = get_filetype(full_path) + # + if ft == FILETYPE_AUDIO: + return get_audio_data(full_path) + elif ft == FILETYPE_IMAGE: + return get_image_data(full_path) + elif ft == FILETYPE_VIDEO: + return get_video_data(full_path) else: logger.warning('Filetype not known: %s', full_path) + + +ORIENTATION_NORMAL = 1 +ORIENTATION_VERTICAL_MIRRORED = 2 +ORIENTATION_HALF_ROTATED = 3 +ORIENTATION_HORIZONTAL_MIRRORED = 4 +ORIENTATION_LEFT_ROTATED = 6 +ORIENTATION_RIGHT_ROTATED = 8 + +JOIN_TOP_LEFT = 1 +JOIN_TOP_RIGHT = 2 +JOIN_BOT_LEFT = 3 +JOIN_BOT_RIGHT = 4 +JOIN_CENTER = 5 + + +class image(object): + def __init__(self, media_instance=None): + if media_instance is not None: + self.load_from_file(media_instance) + else: + self._im = None + + def load_from_file(self, media_instance): + from media.convert import get_pil_image + # + self._im = get_pil_image(media_instance) + if self._im is None: + return False + return True + + def save(self, full_path): + if self._im is None: + logger.warning('No image available to be saved (%s)', repr(full_path)) + return False + else: + logger.debug('Saving image to %s', repr(full_path)) + with open(full_path, 'w') as fh: + im = self._im.convert('RGB') + im.save(fh, 'JPEG') + return True + + def resize(self, max_size): + if self._im is None: + logger.warning('No image available to be resized') + return False + else: + logger.debug('Resizing picture to max %d pixel in whatever direction', max_size) + x, y = self._im.size + xy_max = max(x, y) + self._im = self._im.resize((int(x * float(max_size) / xy_max), int(y * float(max_size) / xy_max)), Image.NEAREST).rotate(0) + return True + + def rotate_by_orientation(self, orientation): + if self._im is None: + logger.warning('No image available, rotation not possible') + return False + + if orientation == ORIENTATION_HALF_ROTATED: + angle = 180 + elif orientation == ORIENTATION_LEFT_ROTATED: + angle = 270 + elif orientation == ORIENTATION_RIGHT_ROTATED: + angle = 90 + else: + logger.warning('Orientation %s unknown for rotation', repr(orientation)) + return False + logger.debug('Rotating picture by %d°', angle) + self._im = self._im.rotate(angle, expand=True) + return True + + def join(self, join_image, join_pos=JOIN_TOP_RIGHT, opacity=0.7): + from media.convert import get_pil_image + + def rgba_copy(im): + if im.mode != 'RGBA': + return im.convert('RGBA') + else: + return im.copy() + + if self._im is None: + logger.warning('No image available, joining not possible') + return False + + # ensure type of join_image is PIL.Image + join_image = get_pil_image(join_image) + if join_image is None: + logger.warning('Image to be joined is not supported %s', repr(join_image)) + return False + + im2 = rgba_copy(join_image) + # change opacity of im2 + alpha = im2.split()[3] + alpha = ImageEnhance.Brightness(alpha).enhance(opacity) + im2.putalpha(alpha) + + self._im = rgba_copy(self._im) + + # create a transparent layer + layer = Image.new('RGBA', self._im.size, (0, 0, 0, 0)) + # draw im2 in layer + if join_pos == JOIN_TOP_LEFT: + layer.paste(im2, (0, 0)) + elif join_pos == JOIN_TOP_RIGHT: + layer.paste(im2, ((self._im.size[0] - im2.size[0]), 0)) + elif join_pos == JOIN_BOT_LEFT: + layer.paste(im2, (0, (self._im.size[1] - im2.size[1]))) + elif join_pos == JOIN_BOT_RIGHT: + layer.paste(im2, ((self._im.size[0] - im2.size[0]), (self._im.size[1] - im2.size[1]))) + elif join_pos == JOIN_CENTER: + layer.paste(im2, (int((self._im.size[0] - im2.size[0]) / 2), int((self._im.size[1] - im2.size[1]) / 2))) + else: + logger.warning("Join position value %s is not supported", join_pos) + return False + + logger.debug('Joining two images') + self._im = Image.composite(layer, self._im, layer) + + return True diff --git a/_testresults_/coverage.xml b/_testresults_/coverage.xml index 415574f..6032fa0 100644 --- a/_testresults_/coverage.xml +++ b/_testresults_/coverage.xml @@ -1,34 +1,168 @@ - + - + - + - - + - + - - - + + + - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + @@ -38,12 +172,46 @@ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -58,8 +226,6 @@ - - @@ -67,163 +233,129 @@ + - - - + - - + + + - - - - - + + + - - - - + + - - - - + + + + + - - - - + + + + - - - - - + + + + + + + - + + + - - - + + + + - - - + + + - - - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + - - + + - - - + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + diff --git a/_testresults_/unittest.json b/_testresults_/unittest.json index b91a42c..fa62312 100644 --- a/_testresults_/unittest.json +++ b/_testresults_/unittest.json @@ -1,11 +1,11 @@ { "coverage_information": [ { - "branch_coverage": 97.61999999999999, + "branch_coverage": 96.43, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media", "files": [ { - "branch_coverage": 97.61999999999999, + "branch_coverage": 96.43, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/__init__.py", "fragments": [ { @@ -20,96 +20,434 @@ }, { "coverage_state": "clean", - "end": 23, + "end": 24, "start": 5 }, { "coverage_state": "covered", - "end": 24, - "start": 24 - }, - { - "coverage_state": "clean", "end": 25, "start": 25 }, { - "coverage_state": "covered", - "end": 27, + "coverage_state": "clean", + "end": 26, "start": 26 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 28, - "start": 28 + "start": 27 }, { - "coverage_state": "covered", - "end": 30, + "coverage_state": "clean", + "end": 29, "start": 29 }, + { + "coverage_state": "covered", + "end": 31, + "start": 30 + }, { "coverage_state": "clean", - "end": 32, - "start": 31 + "end": 33, + "start": 32 }, { "coverage_state": "covered", - "end": 33, - "start": 33 - }, - { - "coverage_state": "clean", - "end": 35, + "end": 34, "start": 34 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 36, - "start": 36 + "start": 35 }, { - "coverage_state": "clean", - "end": 39, + "coverage_state": "covered", + "end": 37, "start": 37 }, + { + "coverage_state": "clean", + "end": 40, + "start": 38 + }, { "coverage_state": "covered", - "end": 41, - "start": 40 + "end": 63, + "start": 41 }, { "coverage_state": "clean", - "end": 42, - "start": 42 + "end": 65, + "start": 64 }, { "coverage_state": "covered", - "end": 48, - "start": 43 + "end": 68, + "start": 66 }, { "coverage_state": "clean", - "end": 49, - "start": 49 + "end": 69, + "start": 69 }, { "coverage_state": "covered", - "end": 50, - "start": 50 + "end": 70, + "start": 70 + }, + { + "coverage_state": "clean", + "end": 71, + "start": 71 + }, + { + "coverage_state": "covered", + "end": 77, + "start": 72 + }, + { + "coverage_state": "clean", + "end": 78, + "start": 78 + }, + { + "coverage_state": "covered", + "end": 79, + "start": 79 + }, + { + "coverage_state": "clean", + "end": 81, + "start": 80 + }, + { + "coverage_state": "covered", + "end": 87, + "start": 82 + }, + { + "coverage_state": "clean", + "end": 88, + "start": 88 + }, + { + "coverage_state": "covered", + "end": 93, + "start": 89 + }, + { + "coverage_state": "clean", + "end": 95, + "start": 94 + }, + { + "coverage_state": "covered", + "end": 99, + "start": 96 + }, + { + "coverage_state": "clean", + "end": 100, + "start": 100 + }, + { + "coverage_state": "covered", + "end": 101, + "start": 101 + }, + { + "coverage_state": "clean", + "end": 102, + "start": 102 + }, + { + "coverage_state": "covered", + "end": 104, + "start": 103 + }, + { + "coverage_state": "clean", + "end": 105, + "start": 105 + }, + { + "coverage_state": "covered", + "end": 109, + "start": 106 + }, + { + "coverage_state": "clean", + "end": 110, + "start": 110 + }, + { + "coverage_state": "covered", + "end": 114, + "start": 111 + }, + { + "coverage_state": "clean", + "end": 115, + "start": 115 + }, + { + "coverage_state": "covered", + "end": 120, + "start": 116 + }, + { + "coverage_state": "clean", + "end": 121, + "start": 121 + }, + { + "coverage_state": "covered", + "end": 125, + "start": 122 + }, + { + "coverage_state": "clean", + "end": 126, + "start": 126 + }, + { + "coverage_state": "covered", + "end": 131, + "start": 127 + }, + { + "coverage_state": "clean", + "end": 132, + "start": 132 + }, + { + "coverage_state": "covered", + "end": 136, + "start": 133 + }, + { + "coverage_state": "clean", + "end": 137, + "start": 137 + }, + { + "coverage_state": "covered", + "end": 143, + "start": 138 + }, + { + "coverage_state": "clean", + "end": 144, + "start": 144 + }, + { + "coverage_state": "covered", + "end": 149, + "start": 145 + }, + { + "coverage_state": "clean", + "end": 150, + "start": 150 + }, + { + "coverage_state": "covered", + "end": 152, + "start": 151 + }, + { + "coverage_state": "clean", + "end": 153, + "start": 153 + }, + { + "coverage_state": "covered", + "end": 154, + "start": 154 + }, + { + "coverage_state": "partially-covered", + "end": 155, + "start": 155 + }, + { + "coverage_state": "covered", + "end": 156, + "start": 156 + }, + { + "coverage_state": "clean", + "end": 157, + "start": 157 + }, + { + "coverage_state": "uncovered", + "end": 158, + "start": 158 + }, + { + "coverage_state": "clean", + "end": 159, + "start": 159 + }, + { + "coverage_state": "covered", + "end": 162, + "start": 160 + }, + { + "coverage_state": "clean", + "end": 164, + "start": 163 + }, + { + "coverage_state": "covered", + "end": 168, + "start": 165 + }, + { + "coverage_state": "clean", + "end": 169, + "start": 169 + }, + { + "coverage_state": "covered", + "end": 170, + "start": 170 + }, + { + "coverage_state": "clean", + "end": 171, + "start": 171 + }, + { + "coverage_state": "covered", + "end": 174, + "start": 172 + }, + { + "coverage_state": "clean", + "end": 175, + "start": 175 + }, + { + "coverage_state": "covered", + "end": 176, + "start": 176 + }, + { + "coverage_state": "clean", + "end": 178, + "start": 177 + }, + { + "coverage_state": "covered", + "end": 179, + "start": 179 + }, + { + "coverage_state": "clean", + "end": 180, + "start": 180 + }, + { + "coverage_state": "covered", + "end": 190, + "start": 181 + }, + { + "coverage_state": "clean", + "end": 191, + "start": 191 + }, + { + "coverage_state": "covered", + "end": 193, + "start": 192 + }, + { + "coverage_state": "clean", + "end": 194, + "start": 194 + }, + { + "coverage_state": "covered", + "end": 196, + "start": 195 + }, + { + "coverage_state": "clean", + "end": 197, + "start": 197 + }, + { + "coverage_state": "covered", + "end": 198, + "start": 198 }, { "coverage_state": "clean", "end": null, - "start": 51 + "start": 199 } ], - "line_coverage": 100.0, + "line_coverage": 99.24, "name": "media.__init__.py" }, { - "branch_coverage": 97.61999999999999, - "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/metadata.py", + "branch_coverage": 96.43, + "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/common.py", + "fragments": [ + { + "coverage_state": "covered", + "end": 1, + "start": 1 + }, + { + "coverage_state": "clean", + "end": 2, + "start": 2 + }, + { + "coverage_state": "covered", + "end": 5, + "start": 3 + }, + { + "coverage_state": "clean", + "end": 6, + "start": 6 + }, + { + "coverage_state": "covered", + "end": 9, + "start": 7 + }, + { + "coverage_state": "clean", + "end": 11, + "start": 10 + }, + { + "coverage_state": "covered", + "end": 19, + "start": 12 + }, + { + "coverage_state": "clean", + "end": null, + "start": 20 + } + ], + "line_coverage": 100.0, + "name": "media.common.py" + }, + { + "branch_coverage": 96.43, + "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/convert.py", "fragments": [ { "coverage_state": "covered", @@ -123,48 +461,121 @@ }, { "coverage_state": "covered", - "end": 9, + "end": 12, "start": 8 }, { "coverage_state": "clean", - "end": 10, + "end": 13, + "start": 13 + }, + { + "coverage_state": "covered", + "end": 18, + "start": 14 + }, + { + "coverage_state": "partially-covered", + "end": 19, + "start": 19 + }, + { + "coverage_state": "covered", + "end": 20, + "start": 20 + }, + { + "coverage_state": "clean", + "end": 21, + "start": 21 + }, + { + "coverage_state": "uncovered", + "end": 22, + "start": 22 + }, + { + "coverage_state": "covered", + "end": 24, + "start": 23 + }, + { + "coverage_state": "uncovered", + "end": 27, + "start": 25 + }, + { + "coverage_state": "covered", + "end": 33, + "start": 28 + }, + { + "coverage_state": "clean", + "end": 34, + "start": 34 + }, + { + "coverage_state": "covered", + "end": 35, + "start": 35 + }, + { + "coverage_state": "clean", + "end": null, + "start": 36 + } + ], + "line_coverage": 86.67, + "name": "media.convert.py" + }, + { + "branch_coverage": 96.43, + "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/metadata.py", + "fragments": [ + { + "coverage_state": "covered", + "end": 6, + "start": 1 + }, + { + "coverage_state": "clean", + "end": 8, + "start": 7 + }, + { + "coverage_state": "covered", + "end": 9, + "start": 9 + }, + { + "coverage_state": "clean", + "end": 11, "start": 10 }, { "coverage_state": "covered", "end": 13, - "start": 11 + "start": 12 }, { "coverage_state": "clean", - "end": 14, + "end": 15, "start": 14 }, { "coverage_state": "covered", - "end": 17, - "start": 15 + "end": 32, + "start": 16 }, { "coverage_state": "clean", - "end": 18, - "start": 18 - }, - { - "coverage_state": "covered", - "end": 41, - "start": 19 - }, - { - "coverage_state": "clean", - "end": 42, - "start": 42 + "end": 34, + "start": 33 }, { "coverage_state": "covered", "end": 44, - "start": 43 + "start": 35 }, { "coverage_state": "clean", @@ -173,291 +584,267 @@ }, { "coverage_state": "covered", - "end": 54, + "end": 48, "start": 47 }, { "coverage_state": "clean", - "end": 56, - "start": 55 + "end": 50, + "start": 49 }, { "coverage_state": "covered", - "end": 73, - "start": 57 + "end": 52, + "start": 51 }, { "coverage_state": "clean", - "end": 75, + "end": 53, + "start": 53 + }, + { + "coverage_state": "covered", + "end": 57, + "start": 54 + }, + { + "coverage_state": "clean", + "end": 58, + "start": 58 + }, + { + "coverage_state": "covered", + "end": 61, + "start": 59 + }, + { + "coverage_state": "clean", + "end": 62, + "start": 62 + }, + { + "coverage_state": "covered", + "end": 64, + "start": 63 + }, + { + "coverage_state": "clean", + "end": 65, + "start": 65 + }, + { + "coverage_state": "covered", + "end": 67, + "start": 66 + }, + { + "coverage_state": "clean", + "end": 68, + "start": 68 + }, + { + "coverage_state": "covered", + "end": 71, + "start": 69 + }, + { + "coverage_state": "clean", + "end": 73, + "start": 72 + }, + { + "coverage_state": "covered", + "end": 76, "start": 74 }, + { + "coverage_state": "clean", + "end": 77, + "start": 77 + }, + { + "coverage_state": "covered", + "end": 79, + "start": 78 + }, + { + "coverage_state": "clean", + "end": 80, + "start": 80 + }, { "coverage_state": "covered", "end": 85, - "start": 76 + "start": 81 }, { - "coverage_state": "clean", - "end": 87, + "coverage_state": "uncovered", + "end": 88, "start": 86 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 89, - "start": 88 + "start": 89 }, { - "coverage_state": "clean", - "end": 91, + "coverage_state": "covered", + "end": 95, "start": 90 }, - { - "coverage_state": "covered", - "end": 93, - "start": 92 - }, { "coverage_state": "clean", - "end": 94, - "start": 94 + "end": 96, + "start": 96 }, { "coverage_state": "covered", - "end": 98, - "start": 95 - }, - { - "coverage_state": "clean", - "end": 99, - "start": 99 - }, - { - "coverage_state": "covered", - "end": 102, - "start": 100 - }, - { - "coverage_state": "clean", "end": 103, - "start": 103 + "start": 97 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 105, "start": 104 }, { - "coverage_state": "clean", - "end": 106, + "coverage_state": "covered", + "end": 112, "start": 106 }, - { - "coverage_state": "covered", - "end": 108, - "start": 107 - }, { "coverage_state": "clean", - "end": 109, - "start": 109 - }, - { - "coverage_state": "covered", - "end": 112, - "start": 110 - }, - { - "coverage_state": "clean", - "end": 114, + "end": 113, "start": 113 }, { "coverage_state": "covered", - "end": 117, + "end": 114, + "start": 114 + }, + { + "coverage_state": "clean", + "end": 115, "start": 115 }, + { + "coverage_state": "covered", + "end": 135, + "start": 116 + }, { "coverage_state": "clean", - "end": 118, - "start": 118 + "end": 138, + "start": 136 }, { "coverage_state": "covered", - "end": 120, - "start": 119 + "end": 141, + "start": 139 }, { "coverage_state": "clean", - "end": 121, - "start": 121 - }, - { - "coverage_state": "covered", - "end": 126, - "start": 122 - }, - { - "coverage_state": "uncovered", - "end": 129, - "start": 127 - }, - { - "coverage_state": "clean", - "end": 130, - "start": 130 - }, - { - "coverage_state": "covered", - "end": 136, - "start": 131 - }, - { - "coverage_state": "clean", - "end": 137, - "start": 137 - }, - { - "coverage_state": "covered", - "end": 144, - "start": 138 - }, - { - "coverage_state": "clean", - "end": 146, - "start": 145 + "end": 143, + "start": 142 }, { "coverage_state": "covered", "end": 153, - "start": 147 + "start": 144 }, { "coverage_state": "clean", - "end": 154, + "end": 155, "start": 154 }, { "coverage_state": "covered", - "end": 155, - "start": 155 - }, - { - "coverage_state": "clean", - "end": 156, + "end": 157, "start": 156 }, - { - "coverage_state": "covered", - "end": 176, - "start": 157 - }, { "coverage_state": "clean", - "end": 179, - "start": 177 + "end": 169, + "start": 158 }, { "coverage_state": "covered", - "end": 182, - "start": 180 + "end": 171, + "start": 170 }, { "coverage_state": "clean", - "end": 184, - "start": 183 + "end": 187, + "start": 172 }, { "coverage_state": "covered", - "end": 194, - "start": 185 - }, - { - "coverage_state": "clean", "end": 196, - "start": 195 + "start": 188 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 198, "start": 197 }, { - "coverage_state": "clean", - "end": 210, + "coverage_state": "covered", + "end": 201, "start": 199 }, - { - "coverage_state": "covered", - "end": 212, - "start": 211 - }, { "coverage_state": "clean", - "end": 228, - "start": 213 + "end": 203, + "start": 202 }, { "coverage_state": "covered", - "end": 237, - "start": 229 - }, - { - "coverage_state": "clean", - "end": 239, - "start": 238 - }, - { - "coverage_state": "covered", - "end": 242, - "start": 240 - }, - { - "coverage_state": "clean", - "end": 244, - "start": 243 - }, - { - "coverage_state": "covered", - "end": 255, - "start": 245 + "end": 214, + "start": 204 }, { "coverage_state": "partially-covered", - "end": 256, - "start": 256 + "end": 215, + "start": 215 }, { "coverage_state": "covered", - "end": 259, - "start": 257 + "end": 218, + "start": 216 }, { "coverage_state": "clean", - "end": 261, - "start": 260 + "end": 220, + "start": 219 }, { "coverage_state": "covered", - "end": 265, - "start": 262 + "end": 224, + "start": 221 }, { "coverage_state": "clean", "end": null, - "start": 266 + "start": 225 } ], - "line_coverage": 98.45, + "line_coverage": 98.08, "name": "media.metadata.py" } ], - "line_coverage": 98.57000000000001, + "line_coverage": 97.59, "name": "media" } ], "lost_souls": { "item_list": [], - "testcase_list": [] + "testcase_list": [ + "Initialisation", + "Join", + "Resize", + "Rotate", + "Save" + ] }, "specification": { "comment": "Comment", @@ -503,7 +890,7 @@ "Name": "media", "State": "Released", "Supported Interpreters": "python3", - "Version": "4111f284029e0f53b0411b6897f59d2b" + "Version": "d4bf62e70e70b47431f7471f25637ecf" }, "testrun_list": [ { @@ -515,8 +902,8 @@ "name": "Default Testsession name", "number_of_failed_tests": 0, "number_of_possibly_failed_tests": 0, - "number_of_successfull_tests": 1, - "number_of_tests": 1, + "number_of_successfull_tests": 6, + "number_of_tests": 6, "testcase_execution_level": 90, "testcase_names": { "0": "Single Test", @@ -525,27 +912,3399 @@ "90": "Full Test (all defined tests)" }, "testcases": { - "_XzMFcHYZEem_kd-7nxt1sg": { + "Initialisation": { "args": null, - "asctime": "2020-01-31 08:10:17,049", - "created": 1580454617.0494206, + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.5836282, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "testrun", "levelname": "INFO", "levelno": 20, - "lineno": 20, + "lineno": 30, + "message": "Initialisation", + "module": "__init__", + "moduleLogger": [], + "msecs": 583.6281776428223, + "msg": "Initialisation", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 571.4917182922363, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "", + "" + ], + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.5838015, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.5837142, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance): ()", + "module": "test", + "msecs": 583.7142467498779, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 571.577787399292, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.583761, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance): result = ()", + "module": "test", + "msecs": 583.7609767913818, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 571.6245174407959, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 583.8015079498291, + "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 571.6650485992432, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.0531158447265625e-05 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.584616, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.5844684, + "exc_info": null, + "exc_text": null, + "filename": "convert.py", + "funcName": "get_pil_image", + "levelname": "WARNING", + "levelno": 30, + "lineno": 35, + "message": "Instance type is not supported: ", + "module": "convert", + "msecs": 584.4683647155762, + "msg": "Instance type is not supported: ", + "name": "MEDIA", + "pathname": "src/media/convert.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.3319053649902, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.5845308, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance): ()", + "module": "test", + "msecs": 584.5308303833008, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.3943710327148, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.5845745, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance): result = ()", + "module": "test", + "msecs": 584.5744609832764, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.4380016326904, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 584.61594581604, + "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.4794864654541, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.1484832763671875e-05 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.5848744, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.5847173, + "exc_info": null, + "exc_text": null, + "filename": "convert.py", + "funcName": "get_pil_image", + "levelname": "WARNING", + "levelno": 30, + "lineno": 31, + "message": "Filetype is not supported (/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt)", + "module": "convert", + "msecs": 584.7172737121582, + "msg": "Filetype is not supported (%s)", + "name": "MEDIA", + "pathname": "src/media/convert.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.5808143615723, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.5847898, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance): ()", + "module": "test", + "msecs": 584.7897529602051, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.6532936096191, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,584", + "created": 1580584170.584838, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance): result = ()", + "module": "test", + "msecs": 584.8379135131836, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.7014541625977, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 584.8743915557861, + "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 572.7379322052002, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 3.647804260253906e-05 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-01 20:09:30,694", + "created": 1580584170.6949663, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,694", + "created": 1580584170.6947854, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance): ()", + "module": "test", + "msecs": 694.7853565216064, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 682.6488971710205, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,694", + "created": 1580584170.694898, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance): result = ()", + "module": "test", + "msecs": 694.8978900909424, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 682.7614307403564, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 694.9663162231445, + "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 682.8298568725586, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 6.842613220214844e-05 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-01 20:09:30,980", + "created": 1580584170.9809246, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,980", + "created": 1580584170.9806376, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance): ()", + "module": "test", + "msecs": 980.6375503540039, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 968.501091003418, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance", + "", + "" + ], + "asctime": "2020-02-01 20:09:30,980", + "created": 1580584170.9808495, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance): result = ()", + "module": "test", + "msecs": 980.8495044708252, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 968.7130451202393, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 980.9246063232422, + "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 968.7881469726562, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 7.510185241699219e-05 + } + ], + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 0.3972964286804199, + "time_finished": "2020-02-01 20:09:30,980", + "time_start": "2020-02-01 20:09:30,583" + }, + "Join": { + "args": null, + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.061742, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 34, + "message": "Join", + "module": "__init__", + "moduleLogger": [], + "msecs": 61.74206733703613, + "msg": "Join", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.60560798645, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.061956, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of join method without loading an image is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.0618377, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "WARNING", + "levelno": 30, + "lineno": 161, + "message": "No image available, joining not possible", + "module": "__init__", + "msecs": 61.83767318725586, + "msg": "No image available, joining not possible", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.70121383667, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method without loading an image", + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.0618815, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of join method without loading an image): False ()", + "module": "test", + "msecs": 61.88154220581055, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.7450828552246, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method without loading an image", + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.0619197, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of join method without loading an image): result = False ()", + "module": "test", + "msecs": 61.9196891784668, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.783229827881, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 61.955928802490234, + "msg": "Returnvalue of join method without loading an image is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.8194694519043, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 3.62396240234375e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,361", + "created": 1580584172.3616211, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of join method with invalid join position is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 17 + ], + "asctime": "2020-02-01 20:09:32,361", + "created": 1580584172.3613942, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "WARNING", + "levelno": 30, + "lineno": 192, + "message": "Join position value 17 is not supported", + "module": "__init__", + "msecs": 361.39416694641113, + "msg": "Join position value %s is not supported", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2349.257707595825, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with invalid join position", + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,361", + "created": 1580584172.361534, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of join method with invalid join position): False ()", + "module": "test", + "msecs": 361.53411865234375, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2349.397659301758, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with invalid join position", + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,361", + "created": 1580584172.3615794, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of join method with invalid join position): result = False ()", + "module": "test", + "msecs": 361.57941818237305, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2349.442958831787, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 361.6211414337158, + "msg": "Returnvalue of join method with invalid join position is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2349.48468208313, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.172325134277344e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,452", + "created": 1580584172.4528487, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of join method with unknown join file is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-01 20:09:32,452", + "created": 1580584172.4526198, + "exc_info": null, + "exc_text": null, + "filename": "convert.py", + "funcName": "get_pil_image", + "levelname": "WARNING", + "levelno": 30, + "lineno": 35, + "message": "Instance type is not supported: ", + "module": "convert", + "msecs": 452.6197910308838, + "msg": "Instance type is not supported: ", + "name": "MEDIA", + "pathname": "src/media/convert.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2440.483331680298, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "None" + ], + "asctime": "2020-02-01 20:09:32,452", + "created": 1580584172.4527113, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "WARNING", + "levelno": 30, + "lineno": 167, + "message": "Image to be joined is not supported None", + "module": "__init__", + "msecs": 452.7113437652588, + "msg": "Image to be joined is not supported %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2440.574884414673, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with unknown join file", + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,452", + "created": 1580584172.4527707, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of join method with unknown join file): False ()", + "module": "test", + "msecs": 452.7707099914551, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2440.634250640869, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with unknown join file", + "False", + "" + ], + "asctime": "2020-02-01 20:09:32,452", + "created": 1580584172.45281, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of join method with unknown join file): result = False ()", + "module": "test", + "msecs": 452.81004905700684, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2440.673589706421, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 452.8486728668213, + "msg": "Returnvalue of join method with unknown join file is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2440.7122135162354, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 3.8623809814453125e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:32,793", + "created": 1580584172.793418, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 3 + ], + "asctime": "2020-02-01 20:09:32,452", + "created": 1580584172.4529128, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 98, + "message": "Join with position 3", + "module": "test_image", + "msecs": 452.9128074645996, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2440.7763481140137, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-01 20:09:32,644", + "created": 1580584172.6443245, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 127, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 644.324541091919, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2632.188081741333, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-01 20:09:32,675", + "created": 1580584172.6753554, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 195, + "message": "Joining two images", + "module": "__init__", + "msecs": 675.3554344177246, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2663.2189750671387, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_3.jpg'" + ], + "asctime": "2020-02-01 20:09:32,725", + "created": 1580584172.7258537, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_3.jpg'", + "module": "__init__", + "msecs": 725.853681564331, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2713.717222213745, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:32,793", + "created": 1580584172.7932827, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 793.2827472686768, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2781.146287918091, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:32,793", + "created": 1580584172.7933729, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 793.3728694915771, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2781.236410140991, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 793.4179306030273, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2781.2814712524414, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.506111145019531e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,142", + "created": 1580584173.142833, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 4 + ], + "asctime": "2020-02-01 20:09:32,793", + "created": 1580584172.793484, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 98, + "message": "Join with position 4", + "module": "test_image", + "msecs": 793.4839725494385, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2781.3475131988525, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-01 20:09:32,993", + "created": 1580584172.9933403, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 127, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 993.340253829956, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2981.20379447937, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-01 20:09:33,024", + "created": 1580584173.0246189, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 195, + "message": "Joining two images", + "module": "__init__", + "msecs": 24.618864059448242, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3012.4824047088623, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_4.jpg'" + ], + "asctime": "2020-02-01 20:09:33,075", + "created": 1580584173.0753677, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_4.jpg'", + "module": "__init__", + "msecs": 75.36768913269043, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3063.2312297821045, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,142", + "created": 1580584173.1427, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 142.6999568939209, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3130.563497543335, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,142", + "created": 1580584173.142788, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 142.78793334960938, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3130.6514739990234, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 142.83299446105957, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3130.6965351104736, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.506111145019531e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,488", + "created": 1580584173.4889648, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 5 + ], + "asctime": "2020-02-01 20:09:33,142", + "created": 1580584173.1428988, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 98, + "message": "Join with position 5", + "module": "test_image", + "msecs": 142.8987979888916, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3130.7623386383057, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-01 20:09:33,338", + "created": 1580584173.3383312, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 127, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 338.3312225341797, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3326.1947631835938, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-01 20:09:33,369", + "created": 1580584173.3696501, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 195, + "message": "Joining two images", + "module": "__init__", + "msecs": 369.65012550354004, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3357.513666152954, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_5.jpg'" + ], + "asctime": "2020-02-01 20:09:33,420", + "created": 1580584173.4202309, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_5.jpg'", + "module": "__init__", + "msecs": 420.2308654785156, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3408.0944061279297, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,488", + "created": 1580584173.4888318, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 488.8317584991455, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3476.6952991485596, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,488", + "created": 1580584173.4889195, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 488.9194965362549, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3476.783037185669, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 488.9647960662842, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3476.8283367156982, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.5299530029296875e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,837", + "created": 1580584173.8376875, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 1 + ], + "asctime": "2020-02-01 20:09:33,489", + "created": 1580584173.4890332, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 98, + "message": "Join with position 1", + "module": "test_image", + "msecs": 489.0332221984863, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3476.8967628479004, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-01 20:09:33,685", + "created": 1580584173.6854477, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 127, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 685.4476928710938, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3673.311233520508, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-01 20:09:33,716", + "created": 1580584173.7166605, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 195, + "message": "Joining two images", + "module": "__init__", + "msecs": 716.6604995727539, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3704.524040222168, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_1.jpg'" + ], + "asctime": "2020-02-01 20:09:33,767", + "created": 1580584173.7675517, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_1.jpg'", + "module": "__init__", + "msecs": 767.5516605377197, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3755.415201187134, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,837", + "created": 1580584173.8375463, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 837.5463485717773, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3825.4098892211914, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:33,837", + "created": 1580584173.8376412, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 837.6412391662598, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3825.504779815674, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 837.6874923706055, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3825.5510330200195, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.6253204345703125e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:34,202", + "created": 1580584174.202088, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 2 + ], + "asctime": "2020-02-01 20:09:33,837", + "created": 1580584173.8377557, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 98, + "message": "Join with position 2", + "module": "test_image", + "msecs": 837.7556800842285, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 3825.6192207336426, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-01 20:09:34,039", + "created": 1580584174.0395095, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 127, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 39.50953483581543, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 4027.3730754852295, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-01 20:09:34,077", + "created": 1580584174.0770307, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 195, + "message": "Joining two images", + "module": "__init__", + "msecs": 77.03065872192383, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 4064.894199371338, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_2.jpg'" + ], + "asctime": "2020-02-01 20:09:34,134", + "created": 1580584174.1344082, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_2.jpg'", + "module": "__init__", + "msecs": 134.40823554992676, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 4122.271776199341, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:34,201", + "created": 1580584174.2019513, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 201.951265335083, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 4189.814805984497, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:34,202", + "created": 1580584174.202042, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 202.0421028137207, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 4189.905643463135, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 202.0881175994873, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 4189.951658248901, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.601478576660156e-05 + } + ], + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 2.140346050262451, + "time_finished": "2020-02-01 20:09:34,202", + "time_start": "2020-02-01 20:09:32,061" + }, + "Resize": { + "args": null, + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.2757187, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 32, + "message": "Resize", + "module": "__init__", + "moduleLogger": [], + "msecs": 275.71868896484375, + "msg": "Resize", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.5822296142578, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,382", + "created": 1580584171.3824558, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of successful resize method is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 300 + ], + "asctime": "2020-02-01 20:09:31,379", + "created": 1580584171.3791893, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 127, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 379.18925285339355, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1367.0527935028076, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of successful resize method", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,382", + "created": 1580584171.3823195, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of successful resize method): True ()", + "module": "test", + "msecs": 382.31945037841797, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1370.182991027832, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of successful resize method", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,382", + "created": 1580584171.382399, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of successful resize method): result = True ()", + "module": "test", + "msecs": 382.3990821838379, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1370.262622833252, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 382.45582580566406, + "msg": "Returnvalue of successful resize method is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1370.3193664550781, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 5.6743621826171875e-05 + }, + { + "args": [ + "300", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3834875, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Resulution of resized image is correct (Content 300 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/resized_image.jpg'" + ], + "asctime": "2020-02-01 20:09:31,382", + "created": 1580584171.3825338, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/resized_image.jpg'", + "module": "__init__", + "msecs": 382.5337886810303, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1370.3973293304443, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Resulution of resized image", + "300", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3833785, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Resulution of resized image): 300 ()", + "module": "test", + "msecs": 383.3785057067871, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.2420463562012, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Resulution of resized image", + "300", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3834407, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Resulution of resized image): result = 300 ()", + "module": "test", + "msecs": 383.4407329559326, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.3042736053467, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 383.4874629974365, + "msg": "Resulution of resized image is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.3510036468506, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.673004150390625e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3837013, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of failed resize method is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3835638, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "WARNING", + "levelno": 30, + "lineno": 124, + "message": "No image available to be resized", + "module": "__init__", + "msecs": 383.563756942749, + "msg": "No image available to be resized", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.427297592163, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of failed resize method", + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.383608, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of failed resize method): False ()", + "module": "test", + "msecs": 383.6081027984619, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.471643447876, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of failed resize method", + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3836484, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of failed resize method): result = False ()", + "module": "test", + "msecs": 383.6483955383301, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.5119361877441, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 383.7013244628906, + "msg": "Returnvalue of failed resize method is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.5648651123047, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 5.2928924560546875e-05 + } + ], + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 0.10798263549804688, + "time_finished": "2020-02-01 20:09:31,383", + "time_start": "2020-02-01 20:09:31,275" + }, + "Rotate": { + "args": null, + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3838365, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 33, + "message": "Rotate", + "module": "__init__", + "moduleLogger": [], + "msecs": 383.8365077972412, + "msg": "Rotate", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.7000484466553, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,384", + "created": 1580584171.3840265, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of rotate method without loading an image is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3839104, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "WARNING", + "levelno": 30, + "lineno": 135, + "message": "No image available, rotation not possible", + "module": "__init__", + "msecs": 383.9104175567627, + "msg": "No image available, rotation not possible", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.7739582061768, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of rotate method without loading an image", + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.383953, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of rotate method without loading an image): False ()", + "module": "test", + "msecs": 383.9530944824219, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.816635131836, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of rotate method without loading an image", + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,383", + "created": 1580584171.3839903, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of rotate method without loading an image): result = False ()", + "module": "test", + "msecs": 383.9902877807617, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.8538284301758, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 384.02652740478516, + "msg": "Returnvalue of rotate method without loading an image is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1371.8900680541992, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 3.62396240234375e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,491", + "created": 1580584171.4913478, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of rotate method with invalid orientation is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "17" + ], + "asctime": "2020-02-01 20:09:31,491", + "created": 1580584171.491096, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "WARNING", + "levelno": 30, + "lineno": 145, + "message": "Orientation 17 unknown for rotation", + "module": "__init__", + "msecs": 491.09601974487305, + "msg": "Orientation %s unknown for rotation", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1478.959560394287, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of rotate method with invalid orientation", + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,491", + "created": 1580584171.4912276, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of rotate method with invalid orientation): False ()", + "module": "test", + "msecs": 491.2276268005371, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1479.0911674499512, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of rotate method with invalid orientation", + "False", + "" + ], + "asctime": "2020-02-01 20:09:31,491", + "created": 1580584171.4912934, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of rotate method with invalid orientation): result = False ()", + "module": "test", + "msecs": 491.29343032836914, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1479.1569709777832, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 491.3477897644043, + "msg": "Returnvalue of rotate method with invalid orientation is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1479.2113304138184, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 5.435943603515625e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,679", + "created": 1580584171.679181, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 6 + ], + "asctime": "2020-02-01 20:09:31,491", + "created": 1580584171.4914298, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 74, + "message": "Rotate with orientation 6", + "module": "test_image", + "msecs": 491.42980575561523, + "msg": "Rotate with orientation %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1479.2933464050293, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 270 + ], + "asctime": "2020-02-01 20:09:31,590", + "created": 1580584171.5903833, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 147, + "message": "Rotating picture by 270\u00b0", + "module": "__init__", + "msecs": 590.3832912445068, + "msg": "Rotating picture by %d\u00b0", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1578.246831893921, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_6.jpg'" + ], + "asctime": "2020-02-01 20:09:31,606", + "created": 1580584171.60636, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_6.jpg'", + "module": "__init__", + "msecs": 606.3599586486816, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1594.2234992980957, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,679", + "created": 1580584171.6790442, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 679.044246673584, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1666.907787322998, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,679", + "created": 1580584171.6791317, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 679.1317462921143, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1666.9952869415283, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 679.1810989379883, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1667.0446395874023, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.935264587402344e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,878", + "created": 1580584171.878498, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 8 + ], + "asctime": "2020-02-01 20:09:31,679", + "created": 1580584171.6792483, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 74, + "message": "Rotate with orientation 8", + "module": "test_image", + "msecs": 679.2483329772949, + "msg": "Rotate with orientation %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1667.111873626709, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 90 + ], + "asctime": "2020-02-01 20:09:31,787", + "created": 1580584171.7878458, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 147, + "message": "Rotating picture by 90\u00b0", + "module": "__init__", + "msecs": 787.8458499908447, + "msg": "Rotating picture by %d\u00b0", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1775.7093906402588, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_8.jpg'" + ], + "asctime": "2020-02-01 20:09:31,804", + "created": 1580584171.8045137, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_8.jpg'", + "module": "__init__", + "msecs": 804.513692855835, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1792.377233505249, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,878", + "created": 1580584171.8783646, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 878.3645629882812, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1866.2281036376953, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,878", + "created": 1580584171.8784525, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 878.4525394439697, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1866.3160800933838, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 878.4980773925781, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1866.3616180419922, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.553794860839844e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.061612, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 3 + ], + "asctime": "2020-02-01 20:09:31,878", + "created": 1580584171.8785644, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 74, + "message": "Rotate with orientation 3", + "module": "test_image", + "msecs": 878.5643577575684, + "msg": "Rotate with orientation %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1866.4278984069824, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + 180 + ], + "asctime": "2020-02-01 20:09:31,985", + "created": 1580584171.985017, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 147, + "message": "Rotating picture by 180\u00b0", + "module": "__init__", + "msecs": 985.0170612335205, + "msg": "Rotating picture by %d\u00b0", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1972.8806018829346, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_3.jpg'" + ], + "asctime": "2020-02-01 20:09:31,995", + "created": 1580584171.995571, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_3.jpg'", + "module": "__init__", + "msecs": 995.5708980560303, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1983.4344387054443, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.0614767, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare): True ()", + "module": "test", + "msecs": 61.476707458496094, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.34024810791, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare", + "True", + "" + ], + "asctime": "2020-02-01 20:09:32,061", + "created": 1580584172.0615652, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare): result = True ()", + "module": "test", + "msecs": 61.56516075134277, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.428701400757, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 61.61189079284668, + "msg": "Filecompare is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 2049.4754314422607, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.673004150390625e-05 + } + ], + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 0.6777753829956055, + "time_finished": "2020-02-01 20:09:32,061", + "time_start": "2020-02-01 20:09:31,383" + }, + "Save": { + "args": null, + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.9811358, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 31, + "message": "Save", + "module": "__init__", + "moduleLogger": [], + "msecs": 981.1358451843262, + "msg": "Save", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 968.9993858337402, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.981393, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of failed save method is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg'" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.9812298, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "WARNING", + "levelno": 30, + "lineno": 113, + "message": "No image available to be saved ('/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg')", + "module": "__init__", + "msecs": 981.2297821044922, + "msg": "No image available to be saved (%s)", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.0933227539062, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of failed save method", + "False", + "" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.9813104, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of failed save method): False ()", + "module": "test", + "msecs": 981.3103675842285, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.1739082336426, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of failed save method", + "False", + "" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.9813523, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of failed save method): result = False ()", + "module": "test", + "msecs": 981.3523292541504, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.2158699035645, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 981.3930988311768, + "msg": "Returnvalue of failed save method is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.2566394805908, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.076957702636719e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.981556, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Existance of saved file is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Existance of saved file", + "False", + "" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.9814758, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Existance of saved file): False ()", + "module": "test", + "msecs": 981.475830078125, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.3393707275391, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Existance of saved file", + "False", + "" + ], + "asctime": "2020-02-01 20:09:30,981", + "created": 1580584170.981516, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Existance of saved file): result = False ()", + "module": "test", + "msecs": 981.5158843994141, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.3794250488281, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 981.5559387207031, + "msg": "Existance of saved file is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 969.4194793701172, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 4.00543212890625e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.2753813, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of successful save method is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg'" + ], + "asctime": "2020-02-01 20:09:31,260", + "created": 1580584171.2609422, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg'", + "module": "__init__", + "msecs": 260.9422206878662, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1248.8057613372803, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of successful save method", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.2751992, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of successful save method): True ()", + "module": "test", + "msecs": 275.19917488098145, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.0627155303955, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of successful save method", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.275312, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of successful save method): result = True ()", + "module": "test", + "msecs": 275.3119468688965, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.1754875183105, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 275.38132667541504, + "msg": "Returnvalue of successful save method is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.244867324829, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 6.937980651855469e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.2755928, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Existance of saved file is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Existance of saved file", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.2755146, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Existance of saved file): True ()", + "module": "test", + "msecs": 275.5146026611328, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.3781433105469, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + }, + { + "args": [ + "Existance of saved file", + "True", + "" + ], + "asctime": "2020-02-01 20:09:31,275", + "created": 1580584171.275556, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Existance of saved file): result = True ()", + "module": "test", + "msecs": 275.5560874938965, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.4196281433105, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread" + } + ], + "msecs": 275.5928039550781, + "msg": "Existance of saved file is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 16493, + "processName": "MainProcess", + "relativeCreated": 1263.4563446044922, + "stack_info": null, + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 3.6716461181640625e-05 + } + ], + "thread": 140094293296960, + "threadName": "MainThread", + "time_consumption": 0.29445695877075195, + "time_finished": "2020-02-01 20:09:31,275", + "time_start": "2020-02-01 20:09:30,981" + }, + "_XzMFcHYZEem_kd-7nxt1sg": { + "args": null, + "asctime": "2020-02-01 20:09:30,073", + "created": 1580584170.0731459, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 26, "message": "_XzMFcHYZEem_kd-7nxt1sg", "module": "__init__", "moduleLogger": [], - "msecs": 49.42059516906738, + "msecs": 73.14586639404297, "msg": "_XzMFcHYZEem_kd-7nxt1sg", "name": "__tLogger__", "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 57.75260925292969, + "relativeCreated": 61.00940704345703, "stack_info": null, "testcaseLogger": [ { @@ -553,8 +4312,8 @@ "None", "" ], - "asctime": "2020-01-31 08:10:17,049", - "created": 1580454617.0499136, + "asctime": "2020-02-01 20:09:30,074", + "created": 1580584170.0742931, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -569,26 +4328,26 @@ "args": [ "/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt" ], - "asctime": "2020-01-31 08:10:17,049", - "created": 1580454617.0495975, + "asctime": "2020-02-01 20:09:30,073", + "created": 1580584170.0739384, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "get_media_data", "levelname": "WARNING", "levelno": 30, - "lineno": 50, + "lineno": 79, "message": "Filetype not known: /user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt", "module": "__init__", - "msecs": 49.59750175476074, + "msecs": 73.93836975097656, "msg": "Filetype not known: %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 57.92951583862305, + "relativeCreated": 61.801910400390625, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -597,8 +4356,8 @@ "None", "" ], - "asctime": "2020-01-31 08:10:17,049", - "created": 1580454617.0498288, + "asctime": "2020-02-01 20:09:30,074", + "created": 1580584170.0742016, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -608,15 +4367,15 @@ "lineno": 22, "message": "Result (Media data for unknown.txt): None ()", "module": "test", - "msecs": 49.82876777648926, + "msecs": 74.20158386230469, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 58.16078186035156, + "relativeCreated": 62.06512451171875, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -625,8 +4384,8 @@ "None", "" ], - "asctime": "2020-01-31 08:10:17,049", - "created": 1580454617.0498722, + "asctime": "2020-02-01 20:09:30,074", + "created": 1580584170.0742497, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -636,37 +4395,37 @@ "lineno": 26, "message": "Expectation (Media data for unknown.txt): result = None ()", "module": "test", - "msecs": 49.87215995788574, + "msecs": 74.2497444152832, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 58.20417404174805, + "relativeCreated": 62.113285064697266, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 49.913644790649414, + "msecs": 74.29313659667969, "msg": "Media data for unknown.txt is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 58.24565887451172, + "relativeCreated": 62.15667724609375, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 4.1484832763671875e-05 + "time_consumption": 4.3392181396484375e-05 }, { "args": [ "{'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'size': 8580366, 'time': 1451606398, 'tm_is_subst': True}", "" ], - "asctime": "2020-01-31 08:10:17,124", - "created": 1580454617.124815, + "asctime": "2020-02-01 20:09:30,135", + "created": 1580584170.135747, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -683,8 +4442,8 @@ "{ 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'size': 8580366, 'time': 1451606398, 'tm_is_subst': True }", "" ], - "asctime": "2020-01-31 08:10:17,124", - "created": 1580454617.1244764, + "asctime": "2020-02-01 20:09:30,135", + "created": 1580584170.135381, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -694,15 +4453,15 @@ "lineno": 22, "message": "Result (Media data for audio.mp3): { 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'size': 8580366, 'time': 1451606398, 'tm_is_subst': True } ()", "module": "test", - "msecs": 124.47643280029297, + "msecs": 135.38098335266113, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 132.80844688415527, + "relativeCreated": 123.2445240020752, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -711,8 +4470,8 @@ "{ 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'time': 1451606398, 'tm_is_subst': True, 'size': 8580366 }", "" ], - "asctime": "2020-01-31 08:10:17,124", - "created": 1580454617.124694, + "asctime": "2020-02-01 20:09:30,135", + "created": 1580584170.135619, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -722,37 +4481,37 @@ "lineno": 26, "message": "Expectation (Media data for audio.mp3): result = { 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'time': 1451606398, 'tm_is_subst': True, 'size': 8580366 } ()", "module": "test", - "msecs": 124.6941089630127, + "msecs": 135.6189250946045, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 133.026123046875, + "relativeCreated": 123.48246574401855, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 124.81498718261719, + "msecs": 135.74695587158203, "msg": "Media data for audio.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 133.1470012664795, + "relativeCreated": 123.6104965209961, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.00012087821960449219 + "time_consumption": 0.00012803077697753906 }, { "args": [ "{'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True}", "" ], - "asctime": "2020-01-31 08:10:17,195", - "created": 1580454617.1954708, + "asctime": "2020-02-01 20:09:30,197", + "created": 1580584170.1979814, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -769,26 +4528,26 @@ "bitrate", "bitrate" ], - "asctime": "2020-01-31 08:10:17,194", - "created": 1580454617.1948514, + "asctime": "2020-02-01 20:09:30,197", + "created": 1580584170.1973727, "exc_info": null, "exc_text": null, "filename": "metadata.py", "funcName": "__get_xxprobe_data__", "levelname": "WARNING", "levelno": 30, - "lineno": 143, + "lineno": 102, "message": "Can't convert 'N/A' (bitrate) for bitrate", "module": "metadata", - "msecs": 194.85139846801758, + "msecs": 197.3726749420166, "msg": "Can't convert %s (%s) for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 203.18341255187988, + "relativeCreated": 185.23621559143066, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -797,8 +4556,8 @@ "{ 'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True }", "" ], - "asctime": "2020-01-31 08:10:17,195", - "created": 1580454617.1952865, + "asctime": "2020-02-01 20:09:30,197", + "created": 1580584170.1977887, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -808,15 +4567,15 @@ "lineno": 22, "message": "Result (Media data for audio_fail_conv.mp3): { 'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True } ()", "module": "test", - "msecs": 195.28651237487793, + "msecs": 197.78871536254883, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 203.61852645874023, + "relativeCreated": 185.6522560119629, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -825,8 +4584,8 @@ "{ 'duration': 281.991837, 'bitrate': 228298, 'artist': 'Lana Del Rey', 'title': 'Video Games (Album Version Remastered)', 'album': 'Born To Die', 'track': 4, 'genre': 'Pop', 'year': 2012, 'time': 1325375995, 'tm_is_subst': True, 'size': 8047290 }", "" ], - "asctime": "2020-01-31 08:10:17,195", - "created": 1580454617.1953719, + "asctime": "2020-02-01 20:09:30,197", + "created": 1580584170.1978834, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -836,37 +4595,37 @@ "lineno": 26, "message": "Expectation (Media data for audio_fail_conv.mp3): result = { 'duration': 281.991837, 'bitrate': 228298, 'artist': 'Lana Del Rey', 'title': 'Video Games (Album Version Remastered)', 'album': 'Born To Die', 'track': 4, 'genre': 'Pop', 'year': 2012, 'time': 1325375995, 'tm_is_subst': True, 'size': 8047290 } ()", "module": "test", - "msecs": 195.3718662261963, + "msecs": 197.88336753845215, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 203.7038803100586, + "relativeCreated": 185.7469081878662, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 195.47080993652344, + "msecs": 197.9813575744629, "msg": "Media data for audio_fail_conv.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 203.80282402038574, + "relativeCreated": 185.84489822387695, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 9.894371032714844e-05 + "time_consumption": 9.799003601074219e-05 }, { "args": [ "{'duration': 120.476735, 'bitrate': 240202, 'title': 'Was bringt der Dezember', 'artist': 'Rolf und seine Freunde', 'album': 'Wir warten auf Weihnachten', 'year': 0, 'track': 9, 'genre': 'Other', 'size': 3617354}", "" ], - "asctime": "2020-01-31 08:10:17,248", - "created": 1580454617.248586, + "asctime": "2020-02-01 20:09:30,250", + "created": 1580584170.250763, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -883,8 +4642,8 @@ "{ 'duration': 120.476735, 'bitrate': 240202, 'title': 'Was bringt der Dezember', 'artist': 'Rolf und seine Freunde', 'album': 'Wir warten auf Weihnachten', 'year': 0, 'track': 9, 'genre': 'Other', 'size': 3617354 }", "" ], - "asctime": "2020-01-31 08:10:17,248", - "created": 1580454617.2483046, + "asctime": "2020-02-01 20:09:30,250", + "created": 1580584170.2504418, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -894,15 +4653,15 @@ "lineno": 22, "message": "Result (Media data for audio_year_0.mp3): { 'duration': 120.476735, 'bitrate': 240202, 'title': 'Was bringt der Dezember', 'artist': 'Rolf und seine Freunde', 'album': 'Wir warten auf Weihnachten', 'year': 0, 'track': 9, 'genre': 'Other', 'size': 3617354 } ()", "module": "test", - "msecs": 248.3046054840088, + "msecs": 250.4417896270752, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 256.6366195678711, + "relativeCreated": 238.30533027648926, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -911,8 +4670,8 @@ "{ 'duration': 120.476735, 'bitrate': 240202, 'artist': 'Rolf und seine Freunde', 'title': 'Was bringt der Dezember', 'album': 'Wir warten auf Weihnachten', 'track': 9, 'genre': 'Other', 'year': 0, 'size': 3617354 }", "" ], - "asctime": "2020-01-31 08:10:17,248", - "created": 1580454617.24848, + "asctime": "2020-02-01 20:09:30,250", + "created": 1580584170.2506452, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -922,37 +4681,37 @@ "lineno": 26, "message": "Expectation (Media data for audio_year_0.mp3): result = { 'duration': 120.476735, 'bitrate': 240202, 'artist': 'Rolf und seine Freunde', 'title': 'Was bringt der Dezember', 'album': 'Wir warten auf Weihnachten', 'track': 9, 'genre': 'Other', 'year': 0, 'size': 3617354 } ()", "module": "test", - "msecs": 248.48008155822754, + "msecs": 250.64516067504883, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 256.81209564208984, + "relativeCreated": 238.5087013244629, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 248.58593940734863, + "msecs": 250.762939453125, "msg": "Media data for audio_year_0.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 256.91795349121094, + "relativeCreated": 238.62648010253906, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.00010585784912109375 + "time_consumption": 0.00011777877807617188 }, { "args": [ "{'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': {'lon': 12.140646934444444, 'lat': 53.68635940527778}, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09'}", "" ], - "asctime": "2020-01-31 08:10:17,266", - "created": 1580454617.266195, + "asctime": "2020-02-01 20:09:30,268", + "created": 1580584170.2684343, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -969,8 +4728,8 @@ "{ 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09' }", "" ], - "asctime": "2020-01-31 08:10:17,265", - "created": 1580454617.2659605, + "asctime": "2020-02-01 20:09:30,268", + "created": 1580584170.2682295, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -980,15 +4739,15 @@ "lineno": 22, "message": "Result (Media data for image_exif_gps.jpg): { 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09' } ()", "module": "test", - "msecs": 265.9604549407959, + "msecs": 268.22948455810547, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 274.2924690246582, + "relativeCreated": 256.09302520751953, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -997,8 +4756,8 @@ "{ 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'camera': 'HUAWEI: EVA-L09', 'size': 4342955 }", "" ], - "asctime": "2020-01-31 08:10:17,266", - "created": 1580454617.2660656, + "asctime": "2020-02-01 20:09:30,268", + "created": 1580584170.2683337, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1008,37 +4767,37 @@ "lineno": 26, "message": "Expectation (Media data for image_exif_gps.jpg): result = { 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'camera': 'HUAWEI: EVA-L09', 'size': 4342955 } ()", "module": "test", - "msecs": 266.0655975341797, + "msecs": 268.33367347717285, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 274.397611618042, + "relativeCreated": 256.1972141265869, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 266.19505882263184, + "msecs": 268.4342861175537, "msg": "Media data for image_exif_gps.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 274.52707290649414, + "relativeCreated": 256.2978267669678, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.00012946128845214844 + "time_consumption": 0.00010061264038085938 }, { "args": [ "{'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'size': 2837285, 'camera': 'HUAWEI: EVA-L09'}", "" ], - "asctime": "2020-01-31 08:10:17,269", - "created": 1580454617.26988, + "asctime": "2020-02-01 20:09:30,272", + "created": 1580584170.2721064, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1055,8 +4814,8 @@ "{ 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'size': 2837285, 'camera': 'HUAWEI: EVA-L09' }", "" ], - "asctime": "2020-01-31 08:10:17,269", - "created": 1580454617.2697332, + "asctime": "2020-02-01 20:09:30,271", + "created": 1580584170.2719312, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1066,15 +4825,15 @@ "lineno": 22, "message": "Result (Media data for image_exif_no_gps.jpg): { 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'size': 2837285, 'camera': 'HUAWEI: EVA-L09' } ()", "module": "test", - "msecs": 269.733190536499, + "msecs": 271.9311714172363, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.0652046203613, + "relativeCreated": 259.7947120666504, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1083,8 +4842,8 @@ "{ 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'camera': 'HUAWEI: EVA-L09', 'size': 2837285 }", "" ], - "asctime": "2020-01-31 08:10:17,269", - "created": 1580454617.269806, + "asctime": "2020-02-01 20:09:30,272", + "created": 1580584170.272007, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1094,37 +4853,37 @@ "lineno": 26, "message": "Expectation (Media data for image_exif_no_gps.jpg): result = { 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'camera': 'HUAWEI: EVA-L09', 'size': 2837285 } ()", "module": "test", - "msecs": 269.805908203125, + "msecs": 272.0069885253906, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.1379222869873, + "relativeCreated": 259.8705291748047, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 269.8800563812256, + "msecs": 272.106409072876, "msg": "Media data for image_exif_no_gps.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.2120704650879, + "relativeCreated": 259.96994972229004, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 7.414817810058594e-05 + "time_consumption": 9.942054748535156e-05 }, { "args": [ "{'size': 1139092, 'time': 1449870515, 'tm_is_subst': True}", "" ], - "asctime": "2020-01-31 08:10:17,270", - "created": 1580454617.2703028, + "asctime": "2020-02-01 20:09:30,272", + "created": 1580584170.2725182, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1139,26 +4898,26 @@ "args": [ "/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg" ], - "asctime": "2020-01-31 08:10:17,270", - "created": 1580454617.2700617, + "asctime": "2020-02-01 20:09:30,272", + "created": 1580584170.272316, "exc_info": null, "exc_text": null, "filename": "metadata.py", "funcName": "__get_exif_data__", "levelname": "DEBUG", "levelno": 10, - "lineno": 153, + "lineno": 112, "message": "/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg does not have any exif information", "module": "metadata", - "msecs": 270.061731338501, + "msecs": 272.31597900390625, "msg": "%s does not have any exif information", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.3937454223633, + "relativeCreated": 260.1795196533203, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1167,8 +4926,8 @@ "{ 'size': 1139092, 'time': 1449870515, 'tm_is_subst': True }", "" ], - "asctime": "2020-01-31 08:10:17,270", - "created": 1580454617.2701979, + "asctime": "2020-02-01 20:09:30,272", + "created": 1580584170.272417, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1178,15 +4937,15 @@ "lineno": 22, "message": "Result (Media data for image_non_exif.jpg): { 'size': 1139092, 'time': 1449870515, 'tm_is_subst': True } ()", "module": "test", - "msecs": 270.19786834716797, + "msecs": 272.4170684814453, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.5298824310303, + "relativeCreated": 260.2806091308594, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1195,8 +4954,8 @@ "{ 'time': 1449870515, 'tm_is_subst': True, 'size': 1139092 }", "" ], - "asctime": "2020-01-31 08:10:17,270", - "created": 1580454617.2702498, + "asctime": "2020-02-01 20:09:30,272", + "created": 1580584170.272466, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1206,37 +4965,37 @@ "lineno": 26, "message": "Expectation (Media data for image_non_exif.jpg): result = { 'time': 1449870515, 'tm_is_subst': True, 'size': 1139092 } ()", "module": "test", - "msecs": 270.2498435974121, + "msecs": 272.46594429016113, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.5818576812744, + "relativeCreated": 260.3294849395752, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 270.30277252197266, + "msecs": 272.5181579589844, "msg": "Media data for image_non_exif.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 278.63478660583496, + "relativeCreated": 260.38169860839844, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 5.2928924560546875e-05 + "time_consumption": 5.221366882324219e-05 }, { "args": [ "{'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'size': 1301272, 'camera': 'Canon: Canon EOS 40D'}", "" ], - "asctime": "2020-01-31 08:10:17,274", - "created": 1580454617.2744613, + "asctime": "2020-02-01 20:09:30,277", + "created": 1580584170.2774484, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1251,26 +5010,26 @@ "args": [ "{0: b'\\x02\\x02\\x00\\x00'}" ], - "asctime": "2020-01-31 08:10:17,274", - "created": 1580454617.2741964, + "asctime": "2020-02-01 20:09:30,277", + "created": 1580584170.2771828, "exc_info": null, "exc_text": null, "filename": "metadata.py", "funcName": "__gps_conv__", "levelname": "WARNING", "levelno": 30, - "lineno": 259, + "lineno": 218, "message": "GPS data extraction failed for {0: b'\\x02\\x02\\x00\\x00'}", "module": "metadata", - "msecs": 274.1963863372803, + "msecs": 277.18281745910645, "msg": "GPS data extraction failed for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 282.5284004211426, + "relativeCreated": 265.0463581085205, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1279,8 +5038,8 @@ "{ 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'size': 1301272, 'camera': 'Canon: Canon EOS 40D' }", "" ], - "asctime": "2020-01-31 08:10:17,274", - "created": 1580454617.2743208, + "asctime": "2020-02-01 20:09:30,277", + "created": 1580584170.2773113, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1290,15 +5049,15 @@ "lineno": 22, "message": "Result (Media data for image_extraction_failed.jpg): { 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'size': 1301272, 'camera': 'Canon: Canon EOS 40D' } ()", "module": "test", - "msecs": 274.3208408355713, + "msecs": 277.3113250732422, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 282.6528549194336, + "relativeCreated": 265.17486572265625, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1307,8 +5066,8 @@ "{ 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'camera': 'Canon: Canon EOS 40D', 'size': 1301272 }", "" ], - "asctime": "2020-01-31 08:10:17,274", - "created": 1580454617.2743845, + "asctime": "2020-02-01 20:09:30,277", + "created": 1580584170.277376, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1318,37 +5077,37 @@ "lineno": 26, "message": "Expectation (Media data for image_extraction_failed.jpg): result = { 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'camera': 'Canon: Canon EOS 40D', 'size': 1301272 } ()", "module": "test", - "msecs": 274.3844985961914, + "msecs": 277.3759365081787, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 282.7165126800537, + "relativeCreated": 265.2394771575928, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 274.4612693786621, + "msecs": 277.4484157562256, "msg": "Media data for image_extraction_failed.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 282.7932834625244, + "relativeCreated": 265.31195640563965, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 7.677078247070312e-05 + "time_consumption": 7.2479248046875e-05 }, { "args": [ "{'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345}", "" ], - "asctime": "2020-01-31 08:10:17,331", - "created": 1580454617.3313096, + "asctime": "2020-02-01 20:09:30,332", + "created": 1580584170.332206, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1365,8 +5124,8 @@ "{ 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 }", "" ], - "asctime": "2020-01-31 08:10:17,330", - "created": 1580454617.3309891, + "asctime": "2020-02-01 20:09:30,331", + "created": 1580584170.331899, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1376,15 +5135,15 @@ "lineno": 22, "message": "Result (Media data for video.3gp): { 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 } ()", "module": "test", - "msecs": 330.98912239074707, + "msecs": 331.89892768859863, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 339.3211364746094, + "relativeCreated": 319.7624683380127, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1393,8 +5152,8 @@ "{ 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 }", "" ], - "asctime": "2020-01-31 08:10:17,331", - "created": 1580454617.3312073, + "asctime": "2020-02-01 20:09:30,332", + "created": 1580584170.3320694, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1404,37 +5163,37 @@ "lineno": 26, "message": "Expectation (Media data for video.3gp): result = { 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 } ()", "module": "test", - "msecs": 331.207275390625, + "msecs": 332.06939697265625, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 339.5392894744873, + "relativeCreated": 319.9329376220703, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 331.30955696105957, + "msecs": 332.20601081848145, "msg": "Media data for video.3gp is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 339.6415710449219, + "relativeCreated": 320.0695514678955, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.00010228157043457031 + "time_consumption": 0.0001366138458251953 }, { "args": [ "{'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508}", "" ], - "asctime": "2020-01-31 08:10:17,523", - "created": 1580454617.5236886, + "asctime": "2020-02-01 20:09:30,470", + "created": 1580584170.4703205, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1451,8 +5210,8 @@ "{ 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 }", "" ], - "asctime": "2020-01-31 08:10:17,523", - "created": 1580454617.5233953, + "asctime": "2020-02-01 20:09:30,470", + "created": 1580584170.4700418, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1462,15 +5221,15 @@ "lineno": 22, "message": "Result (Media data for video.mp4): { 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 } ()", "module": "test", - "msecs": 523.395299911499, + "msecs": 470.04175186157227, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 531.7273139953613, + "relativeCreated": 457.9052925109863, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1479,8 +5238,8 @@ "{ 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 }", "" ], - "asctime": "2020-01-31 08:10:17,523", - "created": 1580454617.5235822, + "asctime": "2020-02-01 20:09:30,470", + "created": 1580584170.4702196, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1490,37 +5249,37 @@ "lineno": 26, "message": "Expectation (Media data for video.mp4): result = { 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 } ()", "module": "test", - "msecs": 523.5822200775146, + "msecs": 470.21961212158203, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 531.914234161377, + "relativeCreated": 458.0831527709961, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 523.688554763794, + "msecs": 470.320463180542, "msg": "Media data for video.mp4 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 532.0205688476562, + "relativeCreated": 458.18400382995605, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.00010633468627929688 + "time_consumption": 0.00010085105895996094 }, { "args": [ "{'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622}", "" ], - "asctime": "2020-01-31 08:10:17,577", - "created": 1580454617.5771666, + "asctime": "2020-02-01 20:09:30,527", + "created": 1580584170.527415, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1537,26 +5296,26 @@ "duration", "duration" ], - "asctime": "2020-01-31 08:10:17,576", - "created": 1580454617.5764694, + "asctime": "2020-02-01 20:09:30,526", + "created": 1580584170.5266123, "exc_info": null, "exc_text": null, "filename": "metadata.py", "funcName": "__get_xxprobe_data__", "levelname": "WARNING", "levelno": 30, - "lineno": 143, + "lineno": 102, "message": "Can't convert 'N/A' (duration) for duration", "module": "metadata", - "msecs": 576.4694213867188, + "msecs": 526.6122817993164, "msg": "Can't convert %s (%s) for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 584.801435470581, + "relativeCreated": 514.4758224487305, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1565,8 +5324,8 @@ "{ 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 }", "" ], - "asctime": "2020-01-31 08:10:17,576", - "created": 1580454617.5769684, + "asctime": "2020-02-01 20:09:30,527", + "created": 1580584170.5271964, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1576,15 +5335,15 @@ "lineno": 22, "message": "Result (Media data for video_special_time.avi): { 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 } ()", "module": "test", - "msecs": 576.9684314727783, + "msecs": 527.1964073181152, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 585.3004455566406, + "relativeCreated": 515.0599479675293, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1593,8 +5352,8 @@ "{ 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 }", "" ], - "asctime": "2020-01-31 08:10:17,577", - "created": 1580454617.5770667, + "asctime": "2020-02-01 20:09:30,527", + "created": 1580584170.5273075, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1604,37 +5363,37 @@ "lineno": 26, "message": "Expectation (Media data for video_special_time.avi): result = { 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 } ()", "module": "test", - "msecs": 577.0666599273682, + "msecs": 527.3075103759766, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 585.3986740112305, + "relativeCreated": 515.1710510253906, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 577.1665573120117, + "msecs": 527.4150371551514, "msg": "Media data for video_special_time.avi is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 585.498571395874, + "relativeCreated": 515.2785778045654, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 9.989738464355469e-05 + "time_consumption": 0.00010752677917480469 }, { "args": [ "{'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True}", "" ], - "asctime": "2020-01-31 08:10:17,666", - "created": 1580454617.6665187, + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.5833867, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1651,8 +5410,8 @@ "{ 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True }", "" ], - "asctime": "2020-01-31 08:10:17,666", - "created": 1580454617.666085, + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.5830886, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1662,15 +5421,15 @@ "lineno": 22, "message": "Result (Media data for video_no_date.avi): { 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True } ()", "module": "test", - "msecs": 666.0850048065186, + "msecs": 583.0886363983154, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 674.4170188903809, + "relativeCreated": 570.9521770477295, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" }, { @@ -1679,8 +5438,8 @@ "{ 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'time': 1158528375, 'tm_is_subst': True, 'size': 2965248 }", "" ], - "asctime": "2020-01-31 08:10:17,666", - "created": 1580454617.6663933, + "asctime": "2020-02-01 20:09:30,583", + "created": 1580584170.5832844, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1690,46 +5449,51 @@ "lineno": 26, "message": "Expectation (Media data for video_no_date.avi): result = { 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'time': 1158528375, 'tm_is_subst': True, 'size': 2965248 } ()", "module": "test", - "msecs": 666.3932800292969, + "msecs": 583.2843780517578, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 674.7252941131592, + "relativeCreated": 571.1479187011719, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread" } ], - "msecs": 666.5186882019043, + "msecs": 583.3866596221924, "msg": "Media data for video_no_date.avi is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 21438, + "process": 16493, "processName": "MainProcess", - "relativeCreated": 674.8507022857666, + "relativeCreated": 571.2502002716064, "stack_info": null, - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.00012540817260742188 + "time_consumption": 0.00010228157043457031 } ], - "thread": 140584323143488, + "thread": 140094293296960, "threadName": "MainThread", - "time_consumption": 0.6170980930328369, - "time_finished": "2020-01-31 08:10:17,666", - "time_start": "2020-01-31 08:10:17,049" + "time_consumption": 0.5102407932281494, + "time_finished": "2020-02-01 20:09:30,583", + "time_start": "2020-02-01 20:09:30,073" } }, "testrun_id": "p3", - "time_consumption": 0.6170980930328369, + "time_consumption": 4.128098249435425, "uid_list_sorted": [ - "_XzMFcHYZEem_kd-7nxt1sg" + "_XzMFcHYZEem_kd-7nxt1sg", + "Initialisation", + "Save", + "Resize", + "Rotate", + "Join" ] } ], "unittest_information": { - "Version": "4fc2a0b784677a9bebb642985ef6a243" + "Version": "1bd602a73ceaead82d56c196c3e6a973" } } \ No newline at end of file diff --git a/_testresults_/unittest.pdf b/_testresults_/unittest.pdf index 2ffdbfebb29b2dda12b41b38a46c79104f433844..89ce2ff6705cdf2ef86d6383696fd9238990fce2 100644 GIT binary patch delta 137952 zcmZs?V{j%>+cg^7P9~n%wrx&q+vc52Y}>YN+fL?=?M&?CoA-TAojUcMr>d)~tAFgO zuHJiH>so7FFZ=L!4~VGbN@5c9%na;su}60NqZ0&U>qz-w{X;ekhli8K_-;Y zXMvFz*mX}2X_qq^%>izOeI+Yef?wrsf3M`1g&iF`@`7&O<3zbY2TS_}J0eFKNs!4x zE1XfF4QVCtU+@sQ1J?)iuNV&ap4+t2QmgT5GkY>0NbHm7cAV>>f@D`1uQokQ-Uq-? zGCC`{Ow5iD8-=J>mu+|0U5m7S0j6C#+cJYP3C|3*trC`KB}R3h??-vC6y^BXx8cm} zObk(~O&=V5Y!$^q(%lg{@=Xu&MGbeg3 z{4d*LqKt$4mGVSF{IY6fQM^}E$Mev4E`=E`_7Rm~^y}J2IE^6DXLe599FEl%fEK1O zI3VG?){IY))J3iC$b6Py%;J|%@Xyf!EglqN0o~muu=0rWmNddHhWJ~o_ zp*RJzU|>HWRN*8GJ#aijQ22-h-LzP<3L8{Ju6pu(M7k}g^-D_jzo@*J2s#2 zdrMRu18}6D``{RV>kI}++TV6Jt{ri1%g}!H3M!l^0C5}yLz^dLpZ*O!UwS`csie6sLd;hG1ejgDO|4xxtm^!lUO3`lLoB}ewW~94r?S0T36w*2q{4id!^z$HwoW- zl#!OTa>PR69p`t1M;#)=sENQ5;oT0&EICpddB(`7tLx}Npz}y|43#!GQfdT?n&I*P zN)L8k@9=(H+muhQ0T?gXwaN*F1m#vi7!m4?sBd?CTKP04>eFXX33~@pRF`09uPwqe z{E6596%zRhaf24Z5K1AD5G=x`!z!-vj4AZ|Uf9yIB_(h+oQq$0l#zfTLabHZ>fwi8 zh0l)Cv-Hqlzcgl0cgEX^(Xi*&{qGWvlc8o2+0HT*ES!l0L_z^MnJ5*o@ra*l-GbUZ z-5qpZI47YiEgPK=00;0>CP@jAZjCei!S z&$8~@QJ?T2{9)*l8ehRe0?3GT_$A(F{Bm^V!gEy=kC46iN>V})3THmDe3B8h{*(?zNoOy zshr;TQr7Jdh?E%;Ycq$m_X#at88cXi#71|Q1>GP|SUDCj1IBDhwT2l0U^TGyYXxf( zC&|DT9_dxhNj-NKD-_9>fCODSF-JocP`9dP!Jhf*ZYMa4m5n4q?GBpsm@g-G;Y;MK zU%o4+RnC|SXQq=ozrXjQ!H znD#f{3WWl@i)QxvtITH?d{3d1Yo$4HT*20o!12<^C8F?U9hCWHnkXx3x9)22MmSr7LB{!pF zSy{Ggsr+*;_-o=}_F#Mgoof-DXu!m#-&r|f^J%gqU_p5f96Rz5l;^@=@KW-A;_)5( zeNWal35A&(g^P&`j#19c-on+An3;>2D+zUx3ecjZ?C^sV&3~;fee7_L%2^6YnwW~X zY+MgnBfs3Gza^IFmsb`Hww2#vC-(E&4kzs-56-M}q@BrtbcsM-d#j;ty%MG;{TOgSC z8$b+|->-Ds^O`C$2ck6nXJ-Nzn+U1GfE4OOX|O|KS@HtJB!`MzKm>*ADCcRmY&wkU z0Bgjr%uC5ksv5gL=tC#d%V^ybGw{LTmAGRqnVoVh z84MwVF<$O3E2w0DV}0@EV!yz@=~{u)A_4f?iJkW8_(J_PeSbXWCE^YgffF%+RjFfoJ{sWq=3hgUqJFv+F%kg{LbNWyhP)2DP-tu{v;DN~ZtSS=azR9OHmnO_{+$(5U5>Vn60R@D` zVIxu^9I(=oNBE+0F4V)-J_l(Il*_aUawkh)c^ffGlJW0(LTF2U3`L2WXhK`-XDWp z#h#p;Hg7kL??P*BTVd|<+u_s?*CRJmj~@qJX_USiRCPeX%$W~A(J>~qB0!K9r^bWJ zeO}g4sTTW%y^kwhU*1@pJZG5L{g}@VD;Lx2yuR|<;(KY)Pozq#7s25XU!biAM2(Ji zbC!Hlk3A~+#dFwtoCvZH{t0K*im%JN-R91H*K>5gmiyG}*ima70iLmTOHp6jlo6B~ z_q0#fM-#3o+7pFcS(SCTG@zQ|hUYu2iZ4OC8X2lnNofGJ< zH5iq>YWjq!{M-);$SH3EkI6N>DG+{PQMQ1FL&Q*%KlH5Litu)?*SO+LDJsm_stHhY zY01umaB;6U_lCbmDy#NSCH4W>)jB|X?fc|nU0H`fgWG*twAxI!0)ANIU*pzU+wxoc z6;OwiC5%gMfdxZ==Kc zJLwS{q1Q-HuR}mOz%|z)yY!dtNm&JM;-+^IxB97rA^WG*62oi*5+l>a&CdLT-F-z7 zZ&=*YzhcC5Saq5{yLy2|$oRIYKw@RxX5(TvRg2i#THC6tV*peFY68z0e*p^K;8zT) zzleUCYR-b_4HZ|SmU7#*6@0P#Ml{?s7}Xf7jU*;b)Y`Ip;mNLeaB;{ZIwmb>G#zU&Bk{sB9(a*N$TEmY zFfgP5ZK^@uC)9?C;WCKMG`2WtDLLCl%N~OK7_3=P-c@RW7u-TJ37a=ktZ+IwqhEKW z*{PvpWM+&pz!oZVdErMaZd`7X7@{1M;-X?T0lwD7`KNCV+My_1ZN#zf9eM0amjB!cj>jewwk_KCJoz)Eh zU^tG%-2^q>^Kij~7CHa%n|a*UPC<(;9E)=7_{HJjTQ2{Qw{coDMceyl8m`VPafta` zV=qB$X>lFL#QK09j!A|C@jeO&dgVH}%91eaP z-Pcc`P+C1UWZx$&9x-TY`7nIDXDAF1XYd#cGVdor2>$ugo)Z*aXQ?~bQd&wV;mw?+ z?)BxsSg)v+!x#Ct`iBak`p2Jr7~jhMxX(DlF4DfRddBaRw1*hX?;&hrYCn?^#+JKO zZ7&bB%`@IP28xxIB1^qCEJChFbH_+bK`p&xJVU z^5P_~*A3Rop~Mz8p#)?YJVh0y^6~f-KX*@t59If~bg=)zp19Z(P|?BI*ppBesR2Ej z@-9FQl%97D$5L$T(%*kS6LhkMtrpvpMx7a@kuYGjY{@1uCq}=X^$ba5ovFqY_;PO3 ziDBu8+;@8Q!p+lgXY_NF3I}1nhCFvS>Xwows8ut5D!AmxpWv<~Qq8cMkTsBIsc(dR z6jpT2wryF`1&^OxpmM&NKl}p>X8_Imw)O~&1%d#YMvbo;w$bWtnnPa6#bI(+v@|K1 zFTQO|2g|T@PD}{7idFN3gvlt?Oxe#d7qMdbuTD_8-$z+$3o92;36L()TqT9vaPAll zs}#JZ>x=h=73YO| zd}Vb9ixqmjI$s?Fj^4p8`rh|Q~iZu@AnppoM63yA=XF1Yo6F__fVsDYSQZRBC zZ;ETDfnnZr=lMiW4wSZdV&}btQJWYz-~Dw?bBAxT^okL?CV#@Ifg^|m>W34i+XXl1 zv_!uegVXq=LAF&IbIZPX-ksRgalEbck|q5UGV6!cdNwV6G~xK2=+ z5|ulv7t)H~B01}%P*q2-^1xR$ILv&TV__E}3}z#CBMCm(KnSs&iC=-pO#JZz{l0}U z-e_+y8d9FB3w&c@QIY zEVAWfw!X|4S+!%ZCl)u3j(Ayvcn;eb5o6Q4Dd!e)0!0yv*h?ob>8c8C(Y;aE)gU|U z^{6!kaC$nQZZGL2^Nw(*iEIg%_AkTwF9F2!2KdN?K>#R-elgjCkQkWe;p1S)v7iQU z&zs){QStq$+!=~*s}7+kc%&h-?MFgHuc9afOo_5gkc(C51Nmz76fbq#zPW}IpFWF} zm^s660H3T@@Epj8^{@~=vlt_7uqzRU=QU_$>8&A1TlCkGiUO~f^M&Sp74-WY=Vo3Q z+ZbkKnoK4>WS97%@wy2GC0l&7lvd zCP#inc~{#EU~SLiG2uHIdFJhvv>0->+9;448ZgcC)-sQAyyy8VRQL?&zCCs?BX$QU zkh-z~t~MPZRxWjy-_AqTSMquy#Z^fLF7UeCh+6grqU_Q&)TIiBn}nMo&C*_4;ZYt4 zovSqVbU&F@o63GWP%)>f#+3B}aU9+Y^a=(Jtht6?)2aM--p3|~oAtf2)dyc24fKpY zrIrVfFlg;>tQHDx*y3cE-um;@2%l7=_OaNACb2Em|Hz*<3DHti@SP9kDY`p-Ah!?l z_WT!2=l&;)p@XwCasBIsX#w&MKqiELkba8RFOW|1C@j5(G!)`x?mSlcJ@wj6p17J;U;U=@XdoJd} zx1fmh_i6TZgYy-i*c1&XX!QX>DOAppSom4jlST)9uFT%BK+i>FE!yv7^{Rryce6YG zvxp7Aw5^VMvhkSLHq36akdN&!8OnXd#7hAt^LXrqnpN zep$U>EKOH0h@!_12AAR~kc|2?w`k%eqZjY+G)_?#zgZw?B;bMTEhYL3!oehz{##^| zDH!D&-YF{JPaayB1Au~u#$n<|mxCpQpB=h}onG4v+uMBus(vo@?&C{L_wVaMu)qO> zD1$V;28Pc4LNI2K8GS%3Uf?U9-~hbcD@&C-j}S)O>V9UC1Z^y-JJ$|(%dzS^fyTle zwzabE)Bo%Z)c;E}<>qKYMFa&0H0x=C3PKbLJ``Ob21Kqp^LLb=tnZ=ACs21BqBBtH zlBp*4?e2x_&vmGZGJD73+Spf4t%f7$<8v5)%x*dD_cQi_1xp~n2?gnn*( zigY4;DpR?UJKEL17FOS$`cr6$Y_yQ&x}v54%w1IM$~EErK&YF!g%Ss8u-fr7}6xSon(tpl!5r7};Whpi_Te7pTl zqYX%}w|$!yc~9^@I1BQC=0J{(9i=#3q9HeZqRw+u@U7&mDesBnwn+P>Mx|RedP8k2 znsvQYHklsYg-v1*ojMKhdl0fscN^aht(0cOvGuvxED;(ACRd~Rxjlt0BpEVAg@;+z12$qJfas-#zOrTWc|7c zW}0j5VkmRl_QyFjO-qX9Dj^`U@i2ld?1g@Zo!ZrvwVxNJ*jInvo|gw`+?wntI_l@b zKx{Ub`@~I(HM(!{-|oHspx}&mSE1o)#`O^SYVh{Klgk*l`53~Mc_u6FL6P$}&5Ef? zSO`@?GyMt_Yfh2`+)8i!#`MdZIkwZb&J1l=)yT3Y<^Xlnp5%C_g*Had4D>)0z%#8c zsqx1c)?HnCM5(j{=}mnuhy-9%S~BsZ6FiJXt0)FzqH1dnsAUO{X2H;Un21=%@eM`) zVv^e?UyX}^mA)r*WgB4y=%qZ`_ERSs#8p4zDA04^GWT2nTsw6?5hmN=POHM#5q$dqa;039GCGM+Xq?L(v zr4kU`mlCe>!ym;3HK}~%F#c01y@7gepizzrIbb1*ePOMprxF~i!|0bCTPwhbZRY)9 z#x5IbpmEa%P&6eb{5_$#$j1m{0(qq+ucWZXctIn=c({UlS zvw~h@7-FXZU2Cjy0L`2v`HN3g$qExtI?%SFsaJ$wJI%C;EZj*4h-4~D&uY4)Rt9l) zOl(>zb=&w>li4S)V~$CpanDO^#|HanL(SVg=_!jbvr?f$i)!`& z9J8{r29?Kq5|8Jxd{$v+0mFjmtR0PiOZTy#nJ8sc`Pbu2VfJ=DJuc_qrrJ_^`|q|C zf}lr;)>a8H-UL9j1P7R6Uu%||@h&%Zm77I*>+5TXmP57~k@ZOE zTjxP(hvG_>V!+Ttn?2h2xq(!Jq>TNQF$`%r_v-1jTko^4yYJ6>=)%lYwl5jZz%XUGZAbz@pW{}(1Y+f+|1gvg^>MJcs^@`AIPTv;(kj@Y`Z`rPHRMwE9 z0KQcnk;x~=&-?n`%UJ#@$cV^5 zh{tovOLb$61@BRRg_+E0IZFfsvJ`Zza8TuZDWgb+!JKJzC?L8S)g$+)Q5YTq7P(Kt zPKD06GLh$n>waFf+gHB5nfJtKPDlKin{$<;K~S%@Ph}2TC}q+!TBKor;x^N@!GkC< zrhe@I8(DkQ^~NI4fU7j{)>>G?XI+z$I*{IK9og-m)`}eS{Wh}!TVM2Yy|S}!)XSjn zCmS5PXv~tl?mIi=2?O9mU;MfOq_9yRM*;Z{d^5Tna%O(KpzO z2;Pc~f@9LlQDaR*N1)M+bQHa~rt_1&5#&V`(2at3b#q5f35n=E>$*?lTXahI_538J zX%9;&37dcMRL2^0EHwMcCKWea>*5_Y$ucW@fg4}PSQ}=AzuvSt8_bx9p zETRVb8_t(qL@-;2Wu$l{Way1elkwg;BGDl1Vo6xUEto+LoCv%0FtjDf`$4i-wd(LT z5GE43nv5?0APmHSEj`yUX2@FOe zV?}-AvVxE7tRlaq6zoa?vhpn><~Z++5OagF8t0Top~o zW>1rtMGZn;QVFm`GqTLUGWT!<3Qj{3{K~|FB8V*o!ig=xj7M7mvS{A_{2n!zFcz*i zj@>=og&Z{>TcrXpWYmD-%|)r|MIO&EC9Ad{J!x(p+s*!`?RXUFza+V9DO7d&ciZ1^ z1n!;O=1#ujs=k3^D}P$N)p^@intu7B@PjR9;K7R5LFc&}+L9IBs81v#6>Lqowyygh zb)4{?icL%YCD0`W9P8~ocsF%UbL}V27kiz-%2&10(I=b&rk8NdZ@aX%KUI?h*8+OiM;o)p9C7TXwyw3lAfFJTl6 z2KjG+iouN|vxfoN{*pG<6;V>8Y*=^)>UJtAYzd7RJ$*CQNs;U~e~`;(ESqX>mMKzb zZv1R&-xou*iz-~VbgiK`R#o}f76L) zpd>98#fL5d_>w|ZdGkuA zYtDWEDd{}XehdG&$_js^p{~x{l{~lk7ccdEvx=Q!#;+6V&@dF3}Zf2V?5L# zC0$jt52$ErWFOyT+wI7IL7IR6SPn<<{{QzFEKD3pf_Opz`MCe+MW^Pt;q8YA++f z-(KBJ&&FMy-W77kA(Z*HJ~^OPMldWkEsp7SRhM>O$MddwTkct4sP`A|i0dEiUVWbj z=j4?UfLdj+WMfKY8v~6QhHC8xzS)?$d`|>MqrcCzNC+Rpo}dzNB_y=-utCY$-TqWl zopu)Xvn--$psau&8qa|fUSftD(FyhimZu@CqT=>gGRF`y z0DP=VBsH)j_aVaX&vt50q6@Z_=AI{9G1$-iuZ!P)wAF;z$sW8=8fC05% zMjJMKeWr=bMPhMlQSoaCZXvpShT{hZ#Bql{<3%Zy<6&tqua$-<`I}d%R(p3 z4r4%^wK@!X{1}@eL%K`AdZq-%O5PE00OKShU6+sNbtNX^=r>t0rDU%dn!p>4jmvAS z?t56%Xm7NeRk)&)S#bA}Ytt;4{3?y45Gy$V=ZAqp-fa?wX zl4%235ZQ;7?7CtH^mGMVDF_Nql6o_+G1~=V@c!v0JyZ4}0tTl)pJdtUqp)Fb48-yCPB$(nA8OmFYs!G*G%lW+Z+>v~^*K9%Mf>2n0 zT8%I994%*>as{{ijk*S4ZeBN!DeqoC)31(ec8>-Ujb)R-cc;nmdJpE40PTms5^~n( z4FO-v0}1P1l98nI7bQlau!#~-hAsVFe37hQexM^1IF-6W6~`#D2y+P+73y1u7j zdYm!D_?_2+J3k^uihan};~7x!G`#X5}~7p zS8R5TP;#j>{^LNM9a>u8q^EWaPV5Db&9!jAL1p&QQ4Enwf}hr*8^_#at3@wo0`bpa zR@5MX9hg;3kX?9mH)LAWD<1(f+FG3cL5sl*qaD8%<7BTHOK+PfArMH@Z6rl{VBj|l z1{e-bvjWxI=SOa>=0h%3@z!tCkk@8YBfcx7`mN{2gIIUZqM0tA)3iBM zx2yP;q;vl~F@Y^BWWk{HOBGXE7EYn??BnnpJ=Xm1bu$ih6Z&_N{ zlTV*btEY##5CiRxmr)r48zJgqtA-F7r%c+8Ig1l6@)njgh{!}i?mc>AJ&whsQ^z|bMkVUeD3 zM~Q^P58_Z!s-);gM9EycT&q-l1V*bACh>qzih5dz(oX3TTYtl2hdhAsJuhiB!t)yH%*v3Bq-2HBUJzIfrq{MKSCd2MH1WZ#R2sVc2 zf67Kx?TE4H!0V%=;~Z^7&Hck;p9j{^kJSIIX~E6HU`LmI5@E(yq;P z=UE@ZX;}C`@~K3z**b;gv3^smhR>$HkP;chjtltSGBd=Qciwqf4R4vzRslia7!HL2 zP}xD)XL4bw*21R}KPNv3!bDQr@4Hz=Qk%faEm~c%EG0EpU7OAdvXBr^v%9e{iKMkK zDf5Fd=k4Yk&)LIM)Od^`9uTDmwrKN2@AyE`Ww^K0xBVTst>f~!LqfJ|6U=&tXb-zo zhK1AP9AB2Y^@!4fHVSH^@Q&bhha1Q?-ze?(=5@h?kBv-1O zC|OZ7LqHV`b^PGDhTs9yhS1bu6Xi^lxcq6l_51@ulh$iM9}iQr)j- zl1Nh92iBzIsA|3CBY;&yK>S366Ez$qPj6FNRMIpnjM8;vu2*0WSf%&{Q6$adw@E|N zA`|%`XD#rh_1Vh|@`5@FJ-dsx%yLjHjZCxThqQ=Nr(fVfnHjV<74OTM)pJ*M9D&~QJADUo;CGMq>uRFC*; zhbu9EaD#_Y>I^Lm<8SRWhGTnOoth6*JX7!GOYVs{N6qo`*XY&Vn$Up&S+s)?*w0O^N^Fv!&*857>|#P};V>cH zvQ$ma*!zT%(Y=xP8BFn+4#o76J4AkfhtGxQxrfgse^Yj{C>Zl=4|Uj-@z2AFbM<&5 zY0S8xv{;f$Ms)2L#}^`^xhJ3hQm|M!{@I-1Y-~*bn-=>26st0&f5mERqf8mYGU#7K zEM`SD5uA2`Sx3fMnnw8Tf_F-frdUiXRScZ_#aMaj=yKZk{zZZ7Wq9uEU$o;l#A zl(U~_PDX;u#8c{inMLQY0?6)p=Wh3YMo71X?Q#1>Pcv#K={ZPFF87xTRFsSgFn(n& zFjraWF&!&Die}ZSy>%$gVZcbV2+Qe|!JQ7ar?2mY+yJNz;}YL$u}gX7wmqw?iogOQ-jmk+wy*oLF0T9B z*v7I>dx-m}F28FS*Fr}yb|qAxWD?0FlKR7GwkmenH8bOKZpNB5H%iJZOosULltDL`W+?gApzW%_J5 z8u&)jX`8H7m%&SS{V8C=QDB=OW!Nurk&<3$^m~+2XHE@M(fq{ ztMpVJt7jHsK}VRs%a^gKk+P{sB$V+*H9;RRDFy!c7I*vw>qV@BV3VMsux9MEw=p=o zFimA-9zfqCO;S}rpG2SRrc$V@=z)65wBg1m;yi6Q7tm=IX=lHzM`2d>XC@SSip9HAj4Gvs(s<`TUbt8r8N(iD+*!2w-@=Upcu`%@N5v_t{F$}u> zMtfIt6{3e`&K)3UzMKyI5~$)lI+xXMmiO|*J}*fNW?#`LLbE}!H*#8X&ZM70xKLkG z!UmS|i$NHs!N6$1jzEfmv=f8nCPCMm@bzEb2ON;eSwe5v#{zO|{>*$V#LZ?Se2&J*%H!9PZ zWRna!zkl$v#g)#e{_U`$(o%lBrzl=hy@Sf44Y44fca+#iNRcy2aEcMhgS?x$8a_B} zvOK&0)3A#D<_o~`OAR|?)s&`NOlN*!#ffc-`w)I%HB3pGj2+0!p;CIATK`(RhQB>Sp<`1yg0Q&{*y^?^&Z z8uFykko3aZhE)~dNdYz!GpNW6hZw)S1Y&fs*p_Bqvjezy8ek86EPdjQa_bz|$otH3 zJrdLbJ7J*hbGQcZB0zv*zd?X{xWkJ4q{VNOMd_aZ#Og(7rCexlfEm<^jtwzTWG-*m z7{bwnduSO_X@@}4>})X;y{r#w@`SGd9=vw~6L?X*G@ptYB*Rtm+-G7ZcP^C$+U7-< zuP%wtuK}FlosR^@gu%VUZ+AhDIJ3|Zkk5;tXCu#yz2AEV%S=&OD_o4$>BeFUvr%}s z6f?kwsi|zQ?QGbv6FG@MC63ATh>4<^xVzNS*94_#X4674eA8UJQ9iYWPt<#7RUmAW z&G`ZNF{F0bt20E+kmtsVH=xthL?P{gT_Gl|PbCMo&Xe%FF8HU7<^Z`-?U+-b7j}Ej zfN?~NGak~fPm@7P(l?%7|W{ zP}+b65w`g=1T|79OmPJmtvPpr+4{)H1a(q8`X*nuk2WMZAivo^BGQOmcn0w<;Klx7fJZ@qvq0VF-{AYL z>uXnxQbWc-dP{K;IO5R~cFg`0K5yo_r93YnxmssFd;Z2WYFXj<7bh0Q#^0qEcuW^L znkThi;YFmUV&dNyG}b+3b_O5%BBEw)ZMBn6G}3b8fETn3P0|B!yx6R5?(yys2)j(& zf-|pcM|x%W>2;G;G+rcjeqC~hro_=mtG6{4qr`Tb(QbB%uxoa51SJjLC?9#9&oG}W zuezj@9!)YcOZ!qbVnuu#P+gAuzc7!7@_ubU&!kb%d&&$d=nb%FXnnJURq zDdUk-YmPUPSILAmH}#bhY?1IoZ-CdVyh`r3>*L8piD8Zp=FeHlR(IE)_DT1dQ+@t+}ABrw{(z5 z*VNVRV_>$v`AYM&h8q&_+1MuxX?WnFCgnE2NX))REWO-*=@mbWg}TXG56h^tcV^IV zfofNJUa?vbLsMpGPX5b99T0r9OX!bfCpZ`Bnvh_W1tU*Ib(vy=@NZRbeWLB@6+3-# z{v!CPLvZWV(K9t|wGBFk;DZZ$xH;x`x;JJXj|ilwptS`X&cY0^0Xq=iwp@j#%JY!^ z)Y@Iu*okAPzW1iO+SxC+P&p+yh`=NB;^e2`rI8I}!G#5c)!pz2fRp*dfGUH;VqijZ zz^(7Y*2WHW^5ekvk_NnS1wJ+Gz$AgqsJ8~f``RQTLrAD69+ z1u@x-BL*Ia$l!Mt3m4Ph&*E^e6Nf2MLTPQWux_3<(heOjq8J-5OufRa^!A2bp_&{) zqQ7{e(anehu1Er?fR`9$Tg6#Vp@4#5p0&-d5t1*QPah;5oWYjY_8}zbk$8mx!HU19 zU1_@@&*aRGAmeSsuqQuinSCd1UAOjnF4nr#`jFT*>5X_gSIh+F&bu(P6ZdJTQ{8X^ zOnj*X;14D`CnwuZMU(zAGVUm<9|=-kXaXn%ENmI>jazDm0EpWog+7lmvjqlVVQAk> z>O5(N^#w}_vuF$oW-OBtXe{ZMZsU&I95@)v^M6?&@M3Gz%y3-k0{q=Ia zbeu_kw&TLU2P`BPtNxiCe9GoexGfGLlQtQ6KTpFnOB3E`D40G4SU*YKlnf^x^=AK77B@56IR}x8GB|iMcz7njL7UW4 z_V0opyesUR;o5#^XR4M!O&A{LrnAmR3NNK6g>g?~gyi*i3y~ zLalu(4hfp=5s-CD53|M`txKKS!0MP&)j5o>Y0WU6Jy&X&&79NK!PjR5_X@jYke#~D z_1iu_E}HFSN^rB}?67T`5Kqfb8`91k0d{*|6m^SwhX`LwesAk-G1q&i_&J}6K%#v$ z03hK}chugsqFJ^JOm_S1aK4Pf<0#u-JOz*)b_lmdVUggJoc1j-UO-M4W;T_?keZz( z5f^=KEjj#wF~HOnN|a*WK}ROjIE)~I!ad7xBDlqYzb4U4hN!%s zU@WMh8Fmm5=+G!Au3GL(V*X@c#sL9z;4mZAOfb&)F)-zR{i};kQ-0yj7aZ}UMT89b ztSa8{kKGd%xB|iMJYFdbjWh^OoO8^yAyb@$Imsz=TU@t1IuO-^XugC~hRj(;fP8PE zp>+-@RVcPE8|~t~r?idkJs0fjT>`122m=UkNw40GSnJ;DCUqI`DkzrC7ah}jT`%ng zaPwbejTwmjRp6b5s4OH7t2*wmU2c`S7WpgAf{nR42&>TcAy37H&S$oQADr~PU9^o(|tohMo5n5H-mQKWL*Joz#G=o7O?b# z4?o$Rb|lxI6D!j1#icwZ=5f%Yu|S_qC-M=Dafhu1j4@xmSZxa<{A$&syaXu(tj@Op zM(*03bB6Z~h&{zp>4?c5y4WycR_^rW-oZ2PJ=N2nc4OragmdnjAzT-)tNifq$2Q>M z{n|OL5F`PaDJPM+L#IRq`2Mh~@x=??&X5)$l=DcO>YZ-j-N7fh%gauMBDDh~;`N^( zOEbJLjt-&CeH}VaZ#pqqdpTU3e8|67LdS)oL8l;%G2za`v10eRJy!XPq@?Q;;!Zlv%!xyr=m zZ2wV}q@^AjlD1K|v9A}PM{aDnmo52N8g!01;*oKG;W+iD4-cF|E%klQ*YJAre$J3O zz+I+Gi0I~9APx;M1g*E%5cu7XaJ=~FW_Xq|dj}-V*&aOi{9AC$&%{_FWBI<_H1N%J zk-70SLf1=y4^Z71-Gb{F_-ZF(3u282mz*YPpayx&`}0H0zgRJc%>S&I@EOeMJFN!! z{g0ZHG!+(>rF`Ze=oL62eHK{vU2i74A@eVAZcs9Vf8-49|C$wMVQ2nF&d|YGnExXI z9ck&2NW-N)(is$bNfA6kKmwxwHcz~h= z2&tfvaNG0$bZO{XcNxfan0p1moB4_7=O+>2O8-Fw{L_5_E}~IP(cCp_;G@re4QyA^!xIYl)5oTy{D~X<)w4UWkiZu!pAM zLOSeV2;85}3UPJ1%;)ywcT;qR+Iw4e#+i)Ll2w2VKss&B>e`%Rn9?i3E^=1pW;IHy z{ZDOaL4$OY8eV4IJx15kwMZ1;;;OMq`M3>JAR-l%NXfFZGFwZ=JI|c6%G5dNXHH5^ z*$?=oQIt;mySmYIyXcuEwQaWr;QnzeG{*+xjFm34uMny3N138un`mz~UE)mXZF5tE z$G(O=Yp_yd0`V%-HOE#u?jW_8VR$1-suyZ0v*ol&`^rVYyWS3uzlba#=S1&hJHZ1C zBtQc41syzKG0`!8pgAh8?X39kEe{CXAtKl7CsThtGCWN+jzDghXgUGY1C(k2tl(#0 zKa@BQsf zs$;ykHFF$bYk!Jkcs;(oaf*oZ>)^OUD7_zG{lrUFq68b>E20d;uu5F#=*1KuOhcHk{s2HW}U6e|i?B?ZQ zRi`)iWTJ7=@uAJ}O4xW>k5FEXmum+ij6P`ure@bLPJ4i^vTOk^NJh#jl3-fK)};?4 z?Fd)1LlY*Px*%EQpLOlDY!OMnr*9Y4@?-H<2Y>&>ME*dTog3D?*elTeR~ty6 zHGa`(jAEkrT+x205^s2d2(eT~Y(f;qT+JUOx)_=gM~%4N(~Sx!?7bu&Itl={vV@Zr zWJ-Pu2Y)1}xGPZ2;@%`v&Deg?)?ZZ?OpdrR!M3Ruvz&K`V}>c(ZxM}x37`NMmGvab z@%Z(C1>Yz@lYSgGXpLySNUXOl=vddxY-(6oUSo%I`EqJ*^vrLMm-P5cagB%u!yN@V= z&isAip4Yw2h}Wgpy1%jSpTOBrBZvrZB)Ba{Awy=u^7ls_dr4Qc9Jol-(}Oc}AH}C0 zqT#$TL?(XOY2}p6U6V zKvCh2bp%uwY69T2*O4QBgdIBHYeo&>a;u1mPgi+B=r8Tfk%3PzABs1W?FcYY&o1U_ zxp?S4zzRCVHD1KtVKk!LW(vg?tPDy>tbgm8KZo`8AtHwO_J?H5amV$DKym%TBVwgrBMfD0+`S@1pdd+O^*=Zr zX6GOsR*DKRDmK0>LWKg#Zmk0_J~=t6G$_Fnrk_I)? zRANDpMA`5|m8JT|XSv5Cf{4sXfv%F(=c3WWWxBJS68^0y4$d~>NgaZ}jO}5PP+-}$ zqpd4P-CLD9LQtypWbh!S9Wugo-;BHguTo=ETqLdCag53OgKa%W%BcxhAgwNxD!ylh z-cd+$tbr;gVU0YjluMGlvP79Lma4BxBgb+fxwWjng8z>8jqD~c7+{i^Bg_kA0OoBN zIC~4JW9c`Z0CgnRYt$ABSzxIr^>DsJh?$!i29@UJ$6}b@x5wU6 zk-S7Ij%(n|tU*kP{viN#@B8w$_0if}J^$4Vw8BmEg|aWeV8oYZ_=|a8aT*F~D0yS^ zQ$QI?(I3y3?+&H}L47K7`6g#PcA^o%5+gHNMm>~aoQ|BM9RaKKYkzg!k1!Ael0RNC z-I4naeX3$dl5*-yJGB~V)f?6+Q0g2>cq>Z6WL+4KGgYmj$rlyizoEwDj$8FxZ~Q(W zZPsl|&}s^^?JqYJ$gpt#<$3*WWKay&vaq;Gy_5i`Or-Hz5{-&T`LRg5R3j1`9Y-ik zA<5!W;{qJEd>eTeJx60p}(~1GP%}CQ9an7Amzqp}%`Defl*#ln`Ir%09e4OvN z@9W~zhu;jn5EA1#0>~!L62>pMmzIUQ$z3SLZpNtPPYe;{x9I<(vaqrLCyzHtbDBfp zP(p^5L4z5f4nn(W$$Ia-1WxFuK@NO^md)-Zfo2mW;6j0NGI9OCa?G0jhB%tvi$=Xd zVSpv;2TC#U0wFYRvrtyKf|Vg9id|C!m0IzBvDiOce2W z)OP?Adfv>t>Tnd`JAD3PPevTu4_qi233KS_k8J7LYO6I~2enS8utzbNuOl+uOyTj> zhK2-#xCCI8{8oavAik7ZIhxQ)lC^`k@n};rge(e5B6`v?L9|Sw*A}m~ib{T+|&lLf)bk zGtct@2?g zYv9iaV^c~%B*ctSvO%z&hJ(JH5^+CNh~(h)XmfzOR8h*YW`sFvXQen_zczKr(ZuD$ z*-0`+xE5ctB_@i$@CL-nZlBj>il$6;%x@0WGV_*dR02ck9;CliJ`UVv9ELj>Sh4 zgK!&}$pZBaw-|V2`Y@8?M}s?tG1Mb``lkMpQU}}FgP#nM8VaGmtPbX?{)tXbpf8k|NWz+q@Mt;%teF69m!I#&Ur>oVGN7Q^Z5miZT(yaBbhX%w! zbMhpZ*%5*pNExr1jzCk{*i~z&iNj2^R1G*GmV+E)QM70kfG^2LO3(};X;y3K+Fvs` zeN2*I!UCHBCcjbIdZ#k>4JY6;kLgT=zZ*&sn8+!{D7(4Mdp^@U`3|#3i+arOi~$+V z?eL;xbw&5p!#2F&VGswl=SSTvZ*JQJ0deF#V+^R?b&-CK4|5+0t8 z5+4;d;~v&9v-ou9-Xa#4rtw!OMS$akn)kwfavf9GX(}9;Vlh2duF`8Kuf$^t`b+Fo z3HI~rIGB!Z{1bL0t{ZON`aq=~rP#LcvFYSjex)Wl;q~O#9MS1Nv^$B`IE$P3Xe$s0 ze7`f<{P+UE%7hHC6j9bUe8QlD%CJD7N%?0Mh_8}7eG`tC*5bhlxG|BleE@$sSmp1D zJ&(*|bvLT#y|C}?y@Ey$XsQH83p^24DHatI&`%2PyvDw`z?APftG&OFjqUtI`}%&V z`tWiw3TCJh8~ZR@WRk$Zv}K*(LCoH3*6Z-!{PmXd>K-~+vzn7jJ7|Itr!nuoRR~&; zZn}pdv`Cuk*sM({1Jh}EO9spx3c-XFPG5noWoe~WkM*#-l`;;9-zZz8daJg1E4Rt@ z)}PEDAvD9t1UAP*qNK_?lV-Go8jWMh#-GO`v|@#)8#n7I#`eqv|7qy4t?N&_TIovX zB5)tp@_ORm9Lu_BzV3p%Hd;-0eT{i4gS1sonnKIXsr!%@dxCO%IW7$L`%fm;klg zME@0BOqAH9MHuYMl{bqn#=JE!YIUsUK8h>TA)5cuDGUL!3FTGSl+HJ-F6tJ_7~v{A z&Npd{HkYLAnlj8NlnodUr+tneejYO(f(nW338obf34pfGUQ&uFE`a2zB7rfE3VDc5 zI}>YEK-qAzB)@gcpn&yp=fHoDbG@_TH2CD#4dX})yEZF+XP-Wv9PrRI&ud&$3;WG5 zeEmTFNx-AoBEV`i!c*usKxHhub1@`MXwV%wbwZEWv+A)tGH-Zs9;ROMRQI_h!X$N9*%hOHg1hz8+)Eah5?UHy1_m2kB^ zITP4eNMwrmo1?=*Ey}k{L$!nrY3WH)685XLST#^H=jA!O$LB0yqa4LHWy7v;iH9x7 z4;g~soWo?;{)ac|?)t^{#pgv`F@C)sJ0DNwn|NGsSn3yI_kDgN+pQtf50FkamF9m* zxa^$&(>lTN|JfQF|MDo3--?E99xd>a^-UTf+Z?)6JRzmFj-PaJK&quq1#Jb|5$V_a zj6UT&nw=i;I(0ncL!<7@b#4ZiMJltn@Ke8!*>TF*MX&8M=a~(SMTEtx>W2crPpij>)tR0YQxO`(ox@h?pwhng zQf!xPRc?dOuz`EbMB7Q7PThMAK-(THh%ylyr!?UhjYejExAkZ}R4tt{w!BZ5GP&fm z@@aH%aJUI_|JxYm0!4>rFmYz_%@~gH-|z(hS?b-u!m2$>KlI_0y(3oc!8fyHaFv&8 z=7ATG0jKPl(E}yN0C`}_&tR+k_L1fB8qP@?Pp; zp3t|fc)h$48tOdo+x3mu~dGPNv8Ak?b!+gI$~ zRb7)jMmxAJRq@@n+sUaOQOiRu1;L4t#|`ggrzqlRr zXInwzQ$qTP@MIX6NFc72T@P%S_<}S*w#G`65e@ts`S^z#^IQ_FNcdbYHbqF!yc@E+ zJCA9&3$#i7k6*%Oi9g-YOM@~RtGyPE^f1&4H%a`*+iOwY&}beLga&2o=@SVWaHQaGAg>;*M|QT`>d zw}Kv@!h;xlhs;P+M7j(x$uaI$+Zu+>4RJ#I+$YLdLvs3z^6a%jK+D^CDb46Rk#$@geQ>}ejlyB?UAdY`ToWJzz;^q394?^Om0W3J^ zY(nX8gnsDi^<@ma7s~wVAaHOremIR>kT9|{9$2X_MKLF?oY=g|LZl&pasEJxDw7wqat#CV;q4k)g+P_U1w|(LJndM_O9{9g zHa<1*I53ihX7Lv8W*tg1+Qza7op$XH9z8v@#F+-#>V7Wve%;n6j!^ z(cuclYy13xcMEBa@K3BQ=~x@2!FJVU)9!F1)%_uB6o!nYLI+qjl)o~0ps73&4u6J=neSxt~2Xql7aR*OT3qOB(Vk_n4pOEY%}I^65R!N;M3o#6FD? z0vX?5J~$qh9Oeb}JDQ1z(@-Y6y?if(1z_=?X6^IpraXcu^HR3kzO3z;LKgimzh8Tq z>|W~RP~wS00;fb&(iz>>pvTu>BN)}P9_!P8fChw{(f;p9{|}~>7B>z;fymDC|94g} zv9huJPyMu{y53x_C0R*a%dNEawNXT7TpngKD6TVATjdaxZt-mDh1pGF;? ziB=PqN_RL%4UbOA1cIzBhSW<6W@QNrQY1jpRSkF#?XB6Ddd6S+e0p7+Ytw{}wkhF` zPf~g!49Lj0aM3=-;Bq9sF%6Wm9t%N_bAg`H60x^Lj>ZNteJ##YlH}*pEcaqR9l28Ht7I0c3JwG= zMGinxsW(-eg~$ZwgA-=)KAQN(52-uXgeyfxgi9bLf^mTn2Jg-Y3V@@(MaT%t3`V0s zxEm7eVr`zu5*pP78=+9+BrH*;aUFwNxeYJKVHI(wOBPMiZwCU*U~QIZkP!bG4Qe`x zW8ojyXYL3i&V`UP_&o>Y)a{s0mHvyy6AU0EEyfM6fQ^ZjKh3ErVkLwY2UWn!L`KOxQq1(6 z8G>@`6>MKl?>gYiSRNJy_InIW1Z8pmA9H|(0rAnEFru;LSQxV&-bCbW8SH5Fa{%DV z$&Ed70_Zgex!ZH@_=7uQp;1R)_F=F?|ARduQT4zP^{{y8a%=nP^=anoE8Q+-G5G3w z_s*Qn9{Jm=Fq4D@N+lA!q<|dR4PtfB(G_jP!syfL$@kX?#a?(+mBx4QwS&gwE2Z)w z!C){XsQ>dQMcb+`zvFLxZ6wN4T^_*O;nxFE3?<3!e7fTC1bR$MQru;n0&*;Ts3AGJ5EW%BCC5jeo*K%r^{gRKx7YIP+fO*YAAB`oYuT+3g6 z+X30M530V@V{lCmIzgT(5Lml;kC25RS zOo<)UYi0(Z2frT(c05?mG^{}@c9YNiJ9w5bl`qqg*R>-czUf)@k8QxjrgVSJp|1nK zr1=}+HXFeT`PJyqMe6myI9gLe1Ec{@hIu6E`kAQ@FShNg>%{jNQUUdo zfmcL=_<0HiLB5958MnaZfL&L(v@9q3li^Z)Tk=P}F{RMi!0$i?B?9)9(;ZTGBbA)x zF?`xR%DHLoxP*RxUrkwkk8Ou^Nlzo)W+Z{{kVeOmMN@;v51q zys%%bE9y(j)*?HtNdDjOr7$JRCnK2{suO-%bWXA9&1owaUi)&CEndUTRe3Q@OZ^bL zQQ~Cpcrnd|@2*`It@Z;J>kJ2p$u>KQNm{KV#$FampZA$vf0Pmzo0VppLWITjly}5Y z?lzfuY@1_#+YuRM!p~l+AZ`Ybtp=!OTytd2op*oKwm0`y?MHyotA`_%vn=j+e> z>45X^r(^wHf>mYFi~l>wGjsgwghm5l<@jH!Sf-A{20Lch%@<8`)w-a_gD>SDkc~OC z)8Vj^Z8Z(F-*gn#c9Tg*#anedqrtZ0N~jx*i?*wwbdiOWcVxXUL{xi+)cxaG_~HZC z{Q{RB#b3PV@UxMUaLkDlrmS-R8QaOE{5Q5UZkgD1^V2X^MXjS2%rc@0(1t5NPYVVh z7PSq!h-0t71W^(>qIxXxW*t^cFL|BFtzV;`6@RB_NIl%{%iTPczi7;E15=P9!&p_K z3_~S`ksf%>mb#E2r_vJPGSMe7%anHS^!jzyy9qbbsHD-yGYx2*5$hZQPNJ&%Gx7_2 zr$(3lOnnNeylyHB1|6RbP@*Fodrj#HKB67v6h>j?5^|u z07dk~yR**me}eL{DUEivpx$CZjM5yyI#>PU#>E*-(>BbdLso1yjy*L0MA8GNm6@U_>7-%- z6=Oc>lgdzOfhWccDnESztIwxeXlH*YdTFch;VX-`ockfVy~Pu_1nWd`Sq=d-=QnuW zf15N%Mp^5l=-tHhId|QEEfhQC{cqA)3+j^)9eMDHnnpl=fg10&01PI?N<`7brLLUJ}>sMB|UIa4k zzUT-xDXcw`dV#~2_GZ7dH)uC$clMPmHGPvi

+GP`|MgEhq*6ZU8n5^aR@Nk(aZS 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 z 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

MwqD)(p*L*%E9h#-AstQ2{uxlTJby6b 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 Qj5y!8+=qoe)!r?<)!&R8^D(V&q32;Z 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 VpN5wiJl9c5S{5oIqM@$|{Vzpjq6`24 diff --git a/common.py b/common.py new file mode 100644 index 0000000..75feda4 --- /dev/null +++ b/common.py @@ -0,0 +1,19 @@ +import os + +FILETYPE_AUDIO = 'audio' +FILETYPE_IMAGE = 'image' +FILETYPE_VIDEO = 'video' + +EXTENTIONS_AUDIO = ['.mp3', ] +EXTENTIONS_IMAGE = ['.jpg', '.jpeg', '.jpe', '.png', '.tif', '.tiff', '.gif', ] +EXTENTIONS_VIDEO = ['.avi', '.mpg', '.mpeg', '.mpe', '.mov', '.qt', '.mp4', '.webm', '.ogv', '.flv', '.3gp', ] + + +def get_filetype(full_path): + ext = os.path.splitext(full_path.lower())[1] + if ext in EXTENTIONS_AUDIO: + return FILETYPE_AUDIO + elif ext in EXTENTIONS_IMAGE: + return FILETYPE_IMAGE + elif ext in EXTENTIONS_VIDEO: + return FILETYPE_VIDEO diff --git a/convert.py b/convert.py new file mode 100644 index 0000000..b64183a --- /dev/null +++ b/convert.py @@ -0,0 +1,35 @@ +import io +from media import common, logger +from PIL import Image +import subprocess +import platform + + +def get_pil_image(media_instance): + try: + media_instance = media_instance._im + except AttributeError: + pass + # + if type(media_instance) == str: + ft = common.get_filetype(media_instance) + if ft == common.FILETYPE_IMAGE: + return Image.open(media_instance).copy() + elif ft == common.FILETYPE_VIDEO: + if platform.system() == 'Linux': + cmd = 'ffmpeg -ss 0.5 -i "' + media_instance + '" -vframes 1 -f image2pipe pipe:1 2> /dev/null' + else: + cmd = 'ffmpeg -ss 0.5 -i "' + media_instance + '" -vframes 1 -f image2pipe pipe:1 2> NULL' + try: + data = subprocess.check_output(cmd, shell=True) + except subprocess.CalledProcessError: + logger.warning('ffmpeg seems to be not installed') + return None + ffmpeg_handle = io.BytesIO(data) + im = Image.open(ffmpeg_handle) + return im.copy() + logger.warning('Filetype is not supported (%s)', media_instance) + elif type(media_instance) == Image.Image: + return media_instance.copy() + else: + logger.warning('Instance type is not supported: %s' % type(media_instance)) diff --git a/metadata.py b/metadata.py index bf6560d..5f10115 100644 --- a/metadata.py +++ b/metadata.py @@ -1,87 +1,46 @@ import logging import os from PIL import Image +import media import subprocess import time -logger_name = 'MEDIA' -logger = logging.getLogger(logger_name) +logger = media.logger -FILETYPE_AUDIO = 'audio' -FILETYPE_IMAGE = 'image' -FILETYPE_VIDEO = 'video' - -EXTENTIONS_AUDIO = ['.mp3', ] -EXTENTIONS_IMAGE = ['.jpg', '.jpeg', '.jpe', '.png', '.tif', '.tiff', '.gif', ] -EXTENTIONS_VIDEO = ['.avi', '.mpg', '.mpeg', '.mpe', '.mov', '.qt', '.mp4', '.webm', '.ogv', '.flv', '.3gp', ] - -KEY_ALBUM = 'album' -KEY_APERTURE = 'aperture' -KEY_ARTIST = 'artist' -KEY_BITRATE = 'bitrate' -KEY_CAMERA = 'camera' -KEY_DURATION = 'duration' -KEY_EXPOSURE_PROGRAM = 'exposure_program' -KEY_EXPOSURE_TIME = 'exposure_time' -KEY_FLASH = 'flash' -KEY_FOCAL_LENGTH = 'focal_length' -KEY_GENRE = 'genre' -KEY_GPS = 'gps' -KEY_HEIGHT = 'height' -KEY_ISO = 'iso' -KEY_ORIENTATION = 'orientation' -KEY_RATIO = 'ratio' -KEY_SIZE = 'size' -KEY_TIME = 'time' # USE time.localtime(value) or datetime.fromtimestamp(value) to convert the timestamp -KEY_TIME_IS_SUBSTITUTION = 'tm_is_subst' -KEY_TITLE = 'title' -KEY_TRACK = 'track' -KEY_WIDTH = 'width' -KEY_YEAR = 'year' __KEY_CAMERA_VENDOR__ = 'camera_vendor' __KEY_CAMERA_MODEL__ = 'camera_model' -def get_filetype(full_path): - ext = os.path.splitext(full_path.lower())[1] - if ext in EXTENTIONS_AUDIO: - return FILETYPE_AUDIO - elif ext in EXTENTIONS_IMAGE: - return FILETYPE_IMAGE - elif ext in EXTENTIONS_VIDEO: - return FILETYPE_VIDEO - - def get_audio_data(full_path): conv_key_dict = {} - conv_key_dict['album'] = (str, KEY_ALBUM) - conv_key_dict['TAG:album'] = (str, KEY_ALBUM) - conv_key_dict['TAG:artist'] = (str, KEY_ARTIST) - conv_key_dict['artist'] = (str, KEY_ARTIST) - conv_key_dict['bit_rate'] = (__int_conv__, KEY_BITRATE) - conv_key_dict['duration'] = (float, KEY_DURATION) - conv_key_dict['TAG:genre'] = (str, KEY_GENRE) - conv_key_dict['genre'] = (str, KEY_GENRE) - conv_key_dict['TAG:title'] = (str, KEY_TITLE) - conv_key_dict['title'] = (str, KEY_TITLE) - conv_key_dict['TAG:track'] = (__int_conv__, KEY_TRACK) - conv_key_dict['track'] = (__int_conv__, KEY_TRACK) - conv_key_dict['TAG:date'] = (__int_conv__, KEY_YEAR) - conv_key_dict['date'] = (__int_conv__, KEY_YEAR) + conv_key_dict['album'] = (str, media.KEY_ALBUM) + conv_key_dict['TAG:album'] = (str, media.KEY_ALBUM) + conv_key_dict['TAG:artist'] = (str, media.KEY_ARTIST) + conv_key_dict['artist'] = (str, media.KEY_ARTIST) + conv_key_dict['bit_rate'] = (__int_conv__, media.KEY_BITRATE) + conv_key_dict['duration'] = (float, media.KEY_DURATION) + conv_key_dict['TAG:genre'] = (str, media.KEY_GENRE) + conv_key_dict['genre'] = (str, media.KEY_GENRE) + conv_key_dict['TAG:title'] = (str, media.KEY_TITLE) + conv_key_dict['title'] = (str, media.KEY_TITLE) + conv_key_dict['TAG:track'] = (__int_conv__, media.KEY_TRACK) + conv_key_dict['track'] = (__int_conv__, media.KEY_TRACK) + conv_key_dict['TAG:date'] = (__int_conv__, media.KEY_YEAR) + conv_key_dict['date'] = (__int_conv__, media.KEY_YEAR) return __adapt__data__(__get_xxprobe_data__(full_path, conv_key_dict), full_path) def get_video_data(full_path): conv_key_dict = {} - conv_key_dict['creation_time'] = (__vid_datetime_conv__, KEY_TIME) - conv_key_dict['TAG:creation_time'] = (__vid_datetime_conv__, KEY_TIME) - conv_key_dict['bit_rate'] = (__int_conv__, KEY_BITRATE) - conv_key_dict['duration'] = (float, KEY_DURATION) - conv_key_dict['height'] = (__int_conv__, KEY_HEIGHT) - conv_key_dict['width'] = (__int_conv__, KEY_WIDTH) - conv_key_dict['display_aspect_ratio'] = (__ratio_conv__, KEY_RATIO) + conv_key_dict['creation_time'] = (__vid_datetime_conv__, media.KEY_TIME) + conv_key_dict['TAG:creation_time'] = (__vid_datetime_conv__, media.KEY_TIME) + conv_key_dict['bit_rate'] = (__int_conv__, media.KEY_BITRATE) + conv_key_dict['duration'] = (float, media.KEY_DURATION) + conv_key_dict['height'] = (__int_conv__, media.KEY_HEIGHT) + conv_key_dict['width'] = (__int_conv__, media.KEY_WIDTH) + conv_key_dict['display_aspect_ratio'] = (__ratio_conv__, media.KEY_RATIO) return __adapt__data__(__get_xxprobe_data__(full_path, conv_key_dict), full_path) @@ -90,25 +49,25 @@ def get_image_data(full_path): def __adapt__data__(data, full_path): - data[KEY_SIZE] = os.path.getsize(full_path) + data[media.KEY_SIZE] = os.path.getsize(full_path) # Join Camera Vendor and Camera Model if __KEY_CAMERA_MODEL__ in data and __KEY_CAMERA_VENDOR__ in data: model = data.pop(__KEY_CAMERA_MODEL__) vendor = data.pop(__KEY_CAMERA_VENDOR__) - data[KEY_CAMERA] = '%s: %s' % (vendor, model) + data[media.KEY_CAMERA] = '%s: %s' % (vendor, model) # Add time if not exists - if KEY_TIME not in data: - if KEY_YEAR in data and KEY_TRACK in data: - if data[KEY_YEAR] != 0: # ignore year 0 - must be wrong + if media.KEY_TIME not in data: + if media.KEY_YEAR in data and media.KEY_TRACK in data: + if data[media.KEY_YEAR] != 0: # ignore year 0 - must be wrong # Use a date where track 1 is the newest in the given year - minute = int(data[KEY_TRACK] / 60) - second = (data[KEY_TRACK] - 60 * minute) % 60 + minute = int(data[media.KEY_TRACK] / 60) + second = (data[media.KEY_TRACK] - 60 * minute) % 60 # - data[KEY_TIME] = int(time.mktime((data[KEY_YEAR], 1, 1, 0, 59 - minute, 59 - second, 0, 0, 0))) - data[KEY_TIME_IS_SUBSTITUTION] = True + data[media.KEY_TIME] = int(time.mktime((data[media.KEY_YEAR], 1, 1, 0, 59 - minute, 59 - second, 0, 0, 0))) + data[media.KEY_TIME_IS_SUBSTITUTION] = True else: - data[KEY_TIME] = int(os.path.getmtime(full_path)) - data[KEY_TIME_IS_SUBSTITUTION] = True + data[media.KEY_TIME] = int(os.path.getmtime(full_path)) + data[media.KEY_TIME_IS_SUBSTITUTION] = True return data @@ -154,19 +113,19 @@ def __get_exif_data__(full_path): else: conv_key_dict = {} # IMAGE - conv_key_dict[0x9003] = (__datetime_conv__, KEY_TIME) - conv_key_dict[0x8822] = (__exposure_program_conv__, KEY_EXPOSURE_PROGRAM) - conv_key_dict[0x829A] = (__num_denum_conv__, KEY_EXPOSURE_TIME) - conv_key_dict[0x9209] = (__flash_conv__, KEY_FLASH) - conv_key_dict[0x829D] = (__num_denum_conv__, KEY_APERTURE) - conv_key_dict[0x920A] = (__num_denum_conv__, KEY_FOCAL_LENGTH) - conv_key_dict[0x8825] = (__gps_conv__, KEY_GPS) - conv_key_dict[0xA003] = (__int_conv__, KEY_HEIGHT) - conv_key_dict[0x8827] = (__int_conv__, KEY_ISO) + conv_key_dict[0x9003] = (__datetime_conv__, media.KEY_TIME) + conv_key_dict[0x8822] = (__exposure_program_conv__, media.KEY_EXPOSURE_PROGRAM) + conv_key_dict[0x829A] = (__num_denum_conv__, media.KEY_EXPOSURE_TIME) + conv_key_dict[0x9209] = (__flash_conv__, media.KEY_FLASH) + conv_key_dict[0x829D] = (__num_denum_conv__, media.KEY_APERTURE) + conv_key_dict[0x920A] = (__num_denum_conv__, media.KEY_FOCAL_LENGTH) + conv_key_dict[0x8825] = (__gps_conv__, media.KEY_GPS) + conv_key_dict[0xA003] = (__int_conv__, media.KEY_HEIGHT) + conv_key_dict[0x8827] = (__int_conv__, media.KEY_ISO) conv_key_dict[0x010F] = (str, __KEY_CAMERA_VENDOR__) conv_key_dict[0x0110] = (str, __KEY_CAMERA_MODEL__) - conv_key_dict[0x0112] = (__int_conv__, KEY_ORIENTATION) - conv_key_dict[0xA002] = (__int_conv__, KEY_WIDTH) + conv_key_dict[0x0112] = (__int_conv__, media.KEY_ORIENTATION) + conv_key_dict[0xA002] = (__int_conv__, media.KEY_WIDTH) for key in conv_key_dict: if key in exif: tp, name = conv_key_dict[key]