From 3d207d7076777cfe1aa0e01291b09570b80e1325 Mon Sep 17 00:00:00 2001 From: Jonathan Wren Date: Sat, 22 Oct 2022 15:28:42 -0700 Subject: [PATCH] add type hints --- jrnl/commands.py | 21 +++++++++++++++++---- jrnl/config.py | 8 +++++--- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/jrnl/commands.py b/jrnl/commands.py index 8032694b..b1fc81e0 100644 --- a/jrnl/commands.py +++ b/jrnl/commands.py @@ -14,6 +14,7 @@ run. Also, please note that all (non-builtin) imports should be scoped to each function to avoid any possible overhead for these standalone commands. """ +import argparse import platform import sys @@ -57,14 +58,16 @@ def preconfig_version(_): print(output) -def postconfig_list(args, config, **_): +def postconfig_list(args: argparse.Namespace, config: dict, **_) -> int: from jrnl.output import list_journals print(list_journals(config, args.export)) + return 0 + @cmd_requires_valid_journal_name -def postconfig_import(args, config, **_): +def postconfig_import(args: argparse.Namespace, config: dict, **_) -> int: from jrnl.Journal import open_journal from jrnl.plugins import get_importer @@ -74,9 +77,13 @@ def postconfig_import(args, config, **_): format = args.export if args.export else "jrnl" get_importer(format).import_(journal, args.filename) + return 0 + @cmd_requires_valid_journal_name -def postconfig_encrypt(args, config, original_config, **_): +def postconfig_encrypt( + args: argparse.Namespace, config: dict, original_config: dict +) -> int: """ Encrypt a journal in place, or optionally to a new file """ @@ -125,9 +132,13 @@ def postconfig_encrypt(args, config, original_config, **_): ) save_config(original_config) + return 0 + @cmd_requires_valid_journal_name -def postconfig_decrypt(args, config, original_config, **kwargs): +def postconfig_decrypt( + args: argparse.Namespace, config: dict, original_config: dict +) -> int: """Decrypts into new file. If filename is not set, we encrypt the journal file itself.""" from jrnl.config import update_config from jrnl.install import save_config @@ -153,3 +164,5 @@ def postconfig_decrypt(args, config, original_config, **kwargs): original_config, {"encrypt": False}, args.journal_name, force_local=True ) save_config(original_config) + + return 0 diff --git a/jrnl/config.py b/jrnl/config.py index 78339ccb..8e5c5a14 100644 --- a/jrnl/config.py +++ b/jrnl/config.py @@ -1,8 +1,10 @@ # Copyright © 2012-2022 jrnl contributors # License: https://www.gnu.org/licenses/gpl-3.0.html +import argparse import logging import os +from typing import Callable import colorama import xdg.BaseDirectory @@ -217,15 +219,15 @@ def get_journal_name(args, config): return args -def cmd_requires_valid_journal_name(func): - def wrapper(args, config, original_config): +def cmd_requires_valid_journal_name(func: Callable) -> Callable: + def wrapper(args: argparse.Namespace, config: dict, original_config: dict): validate_journal_name(args.journal_name, config) func(args=args, config=config, original_config=original_config) return wrapper -def validate_journal_name(journal_name, config): +def validate_journal_name(journal_name: str, config: dict) -> None: if journal_name not in config["journals"]: raise JrnlException( Message(