Browse Source

De-duplicate and change dict_factory

master
Kristaps Kaupe 2 years ago
parent
commit
2978b18245
No known key found for this signature in database
GPG Key ID: 33E472FE870C7E5D
  1. 2
      src/jmbase/__init__.py
  2. 5
      src/jmbase/support.py
  3. 9
      src/jmclient/wallet_utils.py
  4. 9
      src/jmdaemon/orderbookwatch.py

2
src/jmbase/__init__.py

@ -8,7 +8,7 @@ from .support import (get_log, chunks, debug_silence, jmprint,
EXIT_SUCCESS, hexbin, dictchanger, listchanger, EXIT_SUCCESS, hexbin, dictchanger, listchanger,
JM_WALLET_NAME_PREFIX, JM_APP_NAME, JM_WALLET_NAME_PREFIX, JM_APP_NAME,
IndentedHelpFormatterWithNL, wrapped_urlparse, IndentedHelpFormatterWithNL, wrapped_urlparse,
bdict_sdict_convert, random_insert) bdict_sdict_convert, random_insert, dict_factory)
from .proof_of_work import get_pow, verify_pow from .proof_of_work import get_pow, verify_pow
from .twisted_utils import (stop_reactor, is_hs_uri, get_tor_agent, from .twisted_utils import (stop_reactor, is_hs_uri, get_tor_agent,
get_nontor_agent, JMHiddenService, get_nontor_agent, JMHiddenService,

5
src/jmbase/support.py

@ -7,6 +7,7 @@ from getpass import getpass
from os import path, environ from os import path, environ
from functools import wraps from functools import wraps
from optparse import IndentedHelpFormatter from optparse import IndentedHelpFormatter
from sqlite3 import Cursor, Row
from typing import List from typing import List
import urllib.parse as urlparse import urllib.parse as urlparse
@ -356,3 +357,7 @@ def get_free_tcp_ports(num_ports: int) -> List[int]:
for s in sockets: for s in sockets:
s.close() s.close()
return ports return ports
def dict_factory(cursor: Cursor, row: Row) -> dict:
fields = [column[0] for column in cursor.description]
return {key: value for key, value in zip(fields, row)}

9
src/jmclient/wallet_utils.py

@ -20,7 +20,7 @@ from jmclient.blockchaininterface import (BitcoinCoreInterface,
from jmclient.wallet_service import WalletService from jmclient.wallet_service import WalletService
from jmbase.support import (get_password, jmprint, EXIT_FAILURE, from jmbase.support import (get_password, jmprint, EXIT_FAILURE,
EXIT_ARGERROR, utxo_to_utxostr, hextobin, bintohex, EXIT_ARGERROR, utxo_to_utxostr, hextobin, bintohex,
IndentedHelpFormatterWithNL) IndentedHelpFormatterWithNL, dict_factory)
from .cryptoengine import TYPE_P2PKH, TYPE_P2SH_P2WPKH, TYPE_P2WPKH, \ from .cryptoengine import TYPE_P2PKH, TYPE_P2SH_P2WPKH, TYPE_P2WPKH, \
TYPE_SEGWIT_WALLET_FIDELITY_BONDS TYPE_SEGWIT_WALLET_FIDELITY_BONDS
@ -815,13 +815,6 @@ def wallet_change_passphrase(walletservice,
return True return True
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
def wallet_fetch_history(wallet, options): def wallet_fetch_history(wallet, options):
# sort txes in a db because python can be really bad with large lists # sort txes in a db because python can be really bad with large lists
con = sqlite3.connect(":memory:") con = sqlite3.connect(":memory:")

9
src/jmdaemon/orderbookwatch.py

@ -8,17 +8,10 @@ from numbers import Integral
from jmdaemon.protocol import JM_VERSION from jmdaemon.protocol import JM_VERSION
from jmdaemon import fidelity_bond_sanity_check from jmdaemon import fidelity_bond_sanity_check
from jmbase.support import get_log, joinmarket_alert from jmbase.support import dict_factory, get_log, joinmarket_alert
log = get_log() log = get_log()
def dict_factory(cursor, row):
d = {}
for idx, col in enumerate(cursor.description):
d[col[0]] = row[idx]
return d
class JMTakerError(Exception): class JMTakerError(Exception):
pass pass

Loading…
Cancel
Save