Change command line options for log levels
This commit is contained in:
		
							parent
							
								
									b7435c4eac
								
							
						
					
					
						commit
						836792429f
					
				| @ -12,11 +12,26 @@ from ordigi.geolocation import GeoLocation | |||||||
| from ordigi import utils | from ordigi import utils | ||||||
| 
 | 
 | ||||||
| _logger_options = [ | _logger_options = [ | ||||||
|  |     click.option( | ||||||
|  |         '--quiet', | ||||||
|  |         '-q', | ||||||
|  |         default=False, | ||||||
|  |         is_flag=True, | ||||||
|  |         help='Log level set to ERROR', | ||||||
|  |     ), | ||||||
|     click.option( |     click.option( | ||||||
|         '--verbose', |         '--verbose', | ||||||
|         '-v', |         '-v', | ||||||
|         default='WARNING', |         default=False, | ||||||
|         help='Log level [WARNING,INFO,DEBUG,NOTSET]', |         is_flag=True, | ||||||
|  |         help='Log level set to INFO', | ||||||
|  |     ), | ||||||
|  |     click.option( | ||||||
|  |         '--debug', | ||||||
|  |         '-d', | ||||||
|  |         default=False, | ||||||
|  |         is_flag=True, | ||||||
|  |         help='Log level set to DEBUG', | ||||||
|     ), |     ), | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| @ -168,7 +183,7 @@ def _check(**kwargs): | |||||||
|     """ |     """ | ||||||
|     root = Path(kwargs['path']).expanduser().absolute() |     root = Path(kwargs['path']).expanduser().absolute() | ||||||
| 
 | 
 | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     collection = Collection(root) |     collection = Collection(root) | ||||||
| @ -191,7 +206,7 @@ def _check(**kwargs): | |||||||
| @add_options(_filter_options) | @add_options(_filter_options) | ||||||
| @click.option( | @click.option( | ||||||
|     '--dedup-regex', |     '--dedup-regex', | ||||||
|     '-d', |     '-D', | ||||||
|     default=None, |     default=None, | ||||||
|     multiple=True, |     multiple=True, | ||||||
|     help='Regex to match duplicate strings parts', |     help='Regex to match duplicate strings parts', | ||||||
| @ -218,7 +233,7 @@ def _clean(**kwargs): | |||||||
|     """Clean media collection""" |     """Clean media collection""" | ||||||
| 
 | 
 | ||||||
|     folders = kwargs['folders'] |     folders = kwargs['folders'] | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     subdirs = kwargs['subdirs'] |     subdirs = kwargs['subdirs'] | ||||||
| @ -268,7 +283,7 @@ def _clean(**kwargs): | |||||||
| def _clone(**kwargs): | def _clone(**kwargs): | ||||||
|     """Clone media collection to another location""" |     """Clone media collection to another location""" | ||||||
| 
 | 
 | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     src_path = Path(kwargs['src']).expanduser().absolute() |     src_path = Path(kwargs['src']).expanduser().absolute() | ||||||
| @ -321,7 +336,7 @@ def _compare(**kwargs): | |||||||
|     subdirs = kwargs['subdirs'] |     subdirs = kwargs['subdirs'] | ||||||
|     root = kwargs['collection'] |     root = kwargs['collection'] | ||||||
| 
 | 
 | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
|     paths, root = _get_paths(subdirs, root) |     paths, root = _get_paths(subdirs, root) | ||||||
| 
 | 
 | ||||||
| @ -370,7 +385,7 @@ def _compare(**kwargs): | |||||||
| def _edit(**kwargs): | def _edit(**kwargs): | ||||||
|     """Edit EXIF metadata in files or directories""" |     """Edit EXIF metadata in files or directories""" | ||||||
| 
 | 
 | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     paths, root = _get_paths(kwargs['subdirs'], kwargs['path']) |     paths, root = _get_paths(kwargs['subdirs'], kwargs['path']) | ||||||
| @ -454,7 +469,7 @@ def _init(**kwargs): | |||||||
|     Init media collection database. |     Init media collection database. | ||||||
|     """ |     """ | ||||||
|     root = Path(kwargs['path']).expanduser().absolute() |     root = Path(kwargs['path']).expanduser().absolute() | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     collection = Collection(root) |     collection = Collection(root) | ||||||
| @ -491,7 +506,7 @@ def _import(**kwargs): | |||||||
|     """Sort files or directories by reading their EXIF and organizing them |     """Sort files or directories by reading their EXIF and organizing them | ||||||
|     according to ordigi.conf preferences. |     according to ordigi.conf preferences. | ||||||
|     """ |     """ | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     src_paths, root = _get_paths(kwargs['src'], kwargs['dest']) |     src_paths, root = _get_paths(kwargs['src'], kwargs['dest']) | ||||||
| @ -547,7 +562,7 @@ def _sort(**kwargs): | |||||||
|     """Sort files or directories by reading their EXIF and organizing them |     """Sort files or directories by reading their EXIF and organizing them | ||||||
|     according to ordigi.conf preferences. |     according to ordigi.conf preferences. | ||||||
|     """ |     """ | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     paths, root = _get_paths(kwargs['subdirs'], kwargs['dest']) |     paths, root = _get_paths(kwargs['subdirs'], kwargs['dest']) | ||||||
| @ -598,7 +613,7 @@ def _update(**kwargs): | |||||||
|     Update media collection database. |     Update media collection database. | ||||||
|     """ |     """ | ||||||
|     root = Path(kwargs['path']).expanduser().absolute() |     root = Path(kwargs['path']).expanduser().absolute() | ||||||
|     log_level = log.get_level(kwargs['verbose']) |     log_level = log.get_level(kwargs['quiet'], kwargs['verbose'], kwargs['debug']) | ||||||
|     log.console(LOG, level=log_level) |     log.console(LOG, level=log_level) | ||||||
| 
 | 
 | ||||||
|     collection = Collection(root) |     collection = Collection(root) | ||||||
|  | |||||||
| @ -46,9 +46,16 @@ def file_logger(logger, file, level=30): | |||||||
|     logger.addHandler(handler) |     logger.addHandler(handler) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_level(verbose): | def get_level(quiet=False, verbose=False, debug=False, num=None): | ||||||
|     """Return int logging level from string""" |     """Return int logging level from command line args""" | ||||||
|     if verbose.isnumeric(): |     if num and num.isnumeric(): | ||||||
|         return int(verbose) |         return int(verbose) | ||||||
| 
 | 
 | ||||||
|     return int(logging.getLevelName(verbose)) |     if debug: | ||||||
|  |         return int(logging.getLevelName('DEBUG')) | ||||||
|  |     if verbose: | ||||||
|  |         return int(logging.getLevelName('INFO')) | ||||||
|  |     if quiet: | ||||||
|  |         return int(logging.getLevelName('ERROR')) | ||||||
|  | 
 | ||||||
|  |     return int(logging.getLevelName('WARNING')) | ||||||
|  | |||||||
| @ -27,7 +27,7 @@ class TestOrdigi: | |||||||
|     def setup_class(cls, sample_files_paths): |     def setup_class(cls, sample_files_paths): | ||||||
|         cls.runner = CliRunner() |         cls.runner = CliRunner() | ||||||
|         cls.src_path, cls.file_paths = sample_files_paths |         cls.src_path, cls.file_paths = sample_files_paths | ||||||
|         cls.logger_options = (('--verbose', 'DEBUG'),) |         cls.logger_options = ('--debug',) | ||||||
|         cls.filter_options = ( |         cls.filter_options = ( | ||||||
|             ('--ignore-tags', 'CreateDate'), |             ('--ignore-tags', 'CreateDate'), | ||||||
|             ('--ext', 'jpg'), |             ('--ext', 'jpg'), | ||||||
| @ -82,10 +82,11 @@ class TestOrdigi: | |||||||
| 
 | 
 | ||||||
|     def test_edit(self, monkeypatch): |     def test_edit(self, monkeypatch): | ||||||
| 
 | 
 | ||||||
|         bool_options = () |         bool_options = ( | ||||||
|  |             *self.logger_options, | ||||||
|  |         ) | ||||||
| 
 | 
 | ||||||
|         arg_options = ( |         arg_options = ( | ||||||
|             *self.logger_options, |  | ||||||
|             *self.filter_options, |             *self.filter_options, | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
| @ -109,6 +110,7 @@ class TestOrdigi: | |||||||
| 
 | 
 | ||||||
|     def test_sort(self): |     def test_sort(self): | ||||||
|         bool_options = ( |         bool_options = ( | ||||||
|  |             *self.logger_options, | ||||||
|             # '--interactive', |             # '--interactive', | ||||||
|             '--dry-run', |             '--dry-run', | ||||||
|             '--album-from-folder', |             '--album-from-folder', | ||||||
| @ -119,7 +121,6 @@ class TestOrdigi: | |||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         arg_options = ( |         arg_options = ( | ||||||
|             *self.logger_options, |  | ||||||
|             *self.filter_options, |             *self.filter_options, | ||||||
|             ('--path-format', '{%Y}/{folder}/{name}.{ext}'), |             ('--path-format', '{%Y}/{folder}/{name}.{ext}'), | ||||||
| 
 | 
 | ||||||
| @ -134,36 +135,29 @@ class TestOrdigi: | |||||||
| 
 | 
 | ||||||
|     def test_clone(self, tmp_path): |     def test_clone(self, tmp_path): | ||||||
| 
 | 
 | ||||||
|         arg_options = ( |  | ||||||
|             *self.logger_options, |  | ||||||
| 
 |  | ||||||
|         ) |  | ||||||
| 
 |  | ||||||
|         paths = (str(self.src_path), str(tmp_path)) |         paths = (str(self.src_path), str(tmp_path)) | ||||||
| 
 | 
 | ||||||
|         self.assert_cli(cli._init, [str(self.src_path)]) |         self.assert_cli(cli._init, [str(self.src_path)]) | ||||||
|         self.assert_cli(cli._clone, ['--dry-run', '--verbose', 'DEBUG', *paths]) |         self.assert_cli(cli._clone, ['--dry-run', *self.logger_options, *paths]) | ||||||
|         self.assert_cli(cli._clone, paths) |         self.assert_cli(cli._clone, paths) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|     def assert_init(self): |     def assert_init(self): | ||||||
|         for opt, arg in self.logger_options: |         self.assert_cli(cli._init, [*self.logger_options, str(self.src_path)]) | ||||||
|             self.assert_cli(cli._init, [opt, arg, str(self.src_path)]) |  | ||||||
| 
 | 
 | ||||||
|     def assert_update(self): |     def assert_update(self): | ||||||
|         file_path = Path(ORDIGI_PATH, 'samples/test_exif/photo.cr2') |         file_path = Path(ORDIGI_PATH, 'samples/test_exif/photo.cr2') | ||||||
|         dest_path = self.src_path / 'photo_moved.cr2' |         dest_path = self.src_path / 'photo_moved.cr2' | ||||||
|         shutil.copyfile(file_path, dest_path) |         shutil.copyfile(file_path, dest_path) | ||||||
|         for opt, arg in self.logger_options: |         self.assert_cli(cli._update, [*self.logger_options, str(self.src_path)]) | ||||||
|             self.assert_cli(cli._update, [opt, arg, str(self.src_path)]) |  | ||||||
|         self.assert_cli(cli._update, ['--checksum', str(self.src_path)]) |         self.assert_cli(cli._update, ['--checksum', str(self.src_path)]) | ||||||
| 
 | 
 | ||||||
|     def assert_check(self): |     def assert_check(self): | ||||||
|         for opt, arg in self.logger_options: |         self.assert_cli(cli._check, [*self.logger_options, str(self.src_path)]) | ||||||
|             self.assert_cli(cli._check, [opt, arg, str(self.src_path)]) |  | ||||||
| 
 | 
 | ||||||
|     def assert_clean(self): |     def assert_clean(self): | ||||||
|         bool_options = ( |         bool_options = ( | ||||||
|  |             *self.logger_options, | ||||||
|             # '--interactive', |             # '--interactive', | ||||||
|             '--dry-run', |             '--dry-run', | ||||||
|             '--delete-excluded', |             '--delete-excluded', | ||||||
| @ -173,7 +167,6 @@ class TestOrdigi: | |||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         arg_options = ( |         arg_options = ( | ||||||
|             *self.logger_options, |  | ||||||
|             *self.filter_options, |             *self.filter_options, | ||||||
|             ('--dedup-regex', r'\d{4}-\d{2}'), |             ('--dedup-regex', r'\d{4}-\d{2}'), | ||||||
|         ) |         ) | ||||||
| @ -194,6 +187,7 @@ class TestOrdigi: | |||||||
| 
 | 
 | ||||||
|     def test_import(self, tmp_path): |     def test_import(self, tmp_path): | ||||||
|         bool_options = ( |         bool_options = ( | ||||||
|  |             *self.logger_options, | ||||||
|             # '--interactive', |             # '--interactive', | ||||||
|             '--dry-run', |             '--dry-run', | ||||||
|             '--album-from-folder', |             '--album-from-folder', | ||||||
| @ -204,7 +198,6 @@ class TestOrdigi: | |||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         arg_options = ( |         arg_options = ( | ||||||
|             *self.logger_options, |  | ||||||
|             ('--exclude', '.DS_Store'), |             ('--exclude', '.DS_Store'), | ||||||
|             *self.filter_options, |             *self.filter_options, | ||||||
|             ('--path-format', '{%Y}/{folder}/{stem}.{ext}'), |             ('--path-format', '{%Y}/{folder}/{stem}.{ext}'), | ||||||
| @ -220,6 +213,7 @@ class TestOrdigi: | |||||||
| 
 | 
 | ||||||
|     def test_compare(self): |     def test_compare(self): | ||||||
|         bool_options = ( |         bool_options = ( | ||||||
|  |             *self.logger_options, | ||||||
|             # '--interactive', |             # '--interactive', | ||||||
|             '--dry-run', |             '--dry-run', | ||||||
|             '--find-duplicates', |             '--find-duplicates', | ||||||
| @ -227,7 +221,6 @@ class TestOrdigi: | |||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
|         arg_options = ( |         arg_options = ( | ||||||
|             *self.logger_options, |  | ||||||
|             *self.filter_options, |             *self.filter_options, | ||||||
|             # ('--similar-to', ''), |             # ('--similar-to', ''), | ||||||
|             ('--similarity', '65'), |             ('--similarity', '65'), | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user