From fbc7ea14d3db8abe3b4e51f0b80757f99539d715 Mon Sep 17 00:00:00 2001 From: quadrismegistus Date: Thu, 10 Sep 2020 13:28:36 +0100 Subject: [PATCH] updates --- komrade/backend/keymaker.py | 13 +++++++++---- komrade/utils.py | 13 ++++++++++++- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/komrade/backend/keymaker.py b/komrade/backend/keymaker.py index 5ffb427..95d0126 100644 --- a/komrade/backend/keymaker.py +++ b/komrade/backend/keymaker.py @@ -327,11 +327,13 @@ Keymaker ({self}) is forging new keys for {name} fnfn = os.path.join(dir,name+ext) return fnfn - def print_qr(self,data=None): + @property + def qr(self,data=None): import qrcode qr=qrcode.QRCode() qr.add_data(self.uri_id if not data else data) - qr.print_ascii() + ascii = capture_stdout(qr.print_ascii()) + return ascii def save_uri_as_qrcode(self,uri_id=None,name=None): if not uri_id: uri_id = self.uri_id @@ -344,10 +346,13 @@ Keymaker ({self}) is forging new keys for {name} ofnfn = self.get_path_qrcode(name=name) qr.png(ofnfn,scale=5) + self._uri_id = uri_id self.log(f''' Saved URI(=pubkey_b64) as a QR code: {ofnfn} -''',do_pause=False) - self.print_qr(uri_id) + +{self.qr} + +''') def save_keychain(self,name,keychain,keys_to_save=None,uri_id=None): if not keys_to_save: keys_to_save = list(keychain.keys()) diff --git a/komrade/utils.py b/komrade/utils.py index 4c6df22..c6b5c26 100644 --- a/komrade/utils.py +++ b/komrade/utils.py @@ -164,4 +164,15 @@ def dict_merge(dct, merge_dct): and isinstance(merge_dct[k], collections.Mapping)): dict_merge(dct[k], merge_dct[k]) else: - dct[k] = merge_dct[k] \ No newline at end of file + dct[k] = merge_dct[k] + + + +def capture_stdout(func): + import io + from contextlib import redirect_stdout + f = io.StringIO() + with redirect_stdout(f): + func() + out = f.getvalue() + return out \ No newline at end of file