From c58e82dd6039cb122d62a18b11c835523b4f60cc Mon Sep 17 00:00:00 2001 From: Jonathan Wren Date: Sun, 30 Oct 2022 15:33:27 -0700 Subject: [PATCH] fix linting issues in current codebase --- jrnl/DayOneJournal.py | 32 ++++++++------------------------ jrnl/Journal.py | 5 +---- jrnl/install.py | 5 ++--- jrnl/jrnl.py | 3 ++- tests/unit/test_parse_args.py | 2 +- 5 files changed, 14 insertions(+), 33 deletions(-) diff --git a/jrnl/DayOneJournal.py b/jrnl/DayOneJournal.py index d7f06249..790016b4 100644 --- a/jrnl/DayOneJournal.py +++ b/jrnl/DayOneJournal.py @@ -1,6 +1,7 @@ # Copyright © 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html +import contextlib import datetime import fnmatch import os @@ -75,40 +76,23 @@ class DayOne(Journal.Journal): ] """Extended DayOne attributes""" - try: + # just ignore it if the keys don't exist + with contextlib.suppress(KeyError): entry.creator_device_agent = dict_entry["Creator"][ "Device Agent" ] - except: # noqa: E722 - pass - try: - entry.creator_generation_date = dict_entry["Creator"][ - "Generation Date" - ] - except: # noqa: E722 - entry.creator_generation_date = date - try: entry.creator_host_name = dict_entry["Creator"]["Host Name"] - except: # noqa: E722 - pass - try: entry.creator_os_agent = dict_entry["Creator"]["OS Agent"] - except: # noqa: E722 - pass - try: entry.creator_software_agent = dict_entry["Creator"][ "Software Agent" ] - except: # noqa: E722 - pass - try: entry.location = dict_entry["Location"] - except: # noqa: E722 - pass - try: entry.weather = dict_entry["Weather"] - except: # noqa: E722 - pass + + entry.creator_generation_date = dict_entry.get("Creator", {}).get( + "Generation Date", date + ) + self.entries.append(entry) self.sort() return self diff --git a/jrnl/Journal.py b/jrnl/Journal.py index 2fa1d465..3521fbaf 100644 --- a/jrnl/Journal.py +++ b/jrnl/Journal.py @@ -120,10 +120,7 @@ class Journal: def validate_parsing(self): """Confirms that the jrnl is still parsed correctly after being dumped to text.""" new_entries = self._parse(self._to_text()) - for i, entry in enumerate(self.entries): - if entry != new_entries[i]: - return False - return True + return all(entry == new_entries[i] for i, entry in enumerate(self.entries)) @staticmethod def create_file(filename): diff --git a/jrnl/install.py b/jrnl/install.py index b20685f0..dce21d82 100644 --- a/jrnl/install.py +++ b/jrnl/install.py @@ -1,6 +1,7 @@ # Copyright © 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html +import contextlib import glob import logging import os @@ -126,10 +127,8 @@ def install(): # If the folder doesn't exist, create it path = os.path.split(journal_path)[0] - try: + with contextlib.suppress(OSError): os.makedirs(path) - except OSError: - pass # Encrypt it? encrypt = yesno(Message(MsgText.EncryptJournalQuestion), default=False) diff --git a/jrnl/jrnl.py b/jrnl/jrnl.py index 5c9ae9ac..f3231e2d 100644 --- a/jrnl/jrnl.py +++ b/jrnl/jrnl.py @@ -236,7 +236,8 @@ def _get_editor_template(config, **kwargs): template_path = expand_path(config["template"]) try: - template = open(template_path).read() + with open(template_path) as f: + template = f.read() logging.debug("Write mode: template loaded: %s", template) except OSError: logging.error("Write mode: template not loaded") diff --git a/tests/unit/test_parse_args.py b/tests/unit/test_parse_args.py index 441f06e7..a420daa9 100644 --- a/tests/unit/test_parse_args.py +++ b/tests/unit/test_parse_args.py @@ -293,7 +293,7 @@ class TestDeserialization: runtime_config = make_yaml_valid_dict(input_str) assert runtime_config.__class__ == dict - assert input_str[0] in runtime_config.keys() + assert input_str[0] in runtime_config assert runtime_config[input_str[0]] == input_str[1] def test_deserialize_multiple_datatypes(self):