forked from LBRYCommunity/lbry-sdk
pylint in progress in lbry/extras/daemon
This commit is contained in:
parent
867478697d
commit
88c7cfc745
5 changed files with 43 additions and 35 deletions
|
@ -146,7 +146,7 @@ class WalletComponent(Component):
|
|||
|
||||
async def start(self):
|
||||
log.info("Starting wallet")
|
||||
self.wallet_manager = await LbryWalletManager.from_lbrynet_config(self.conf)
|
||||
self.wallet_manager = await WalletManager.from_lbrynet_config(self.conf)
|
||||
await self.wallet_manager.start()
|
||||
|
||||
async def stop(self):
|
||||
|
@ -333,9 +333,8 @@ class PeerProtocolServerComponent(Component):
|
|||
|
||||
async def start(self):
|
||||
log.info("start blob server")
|
||||
upnp = self.component_manager.get_component(UPNP_COMPONENT)
|
||||
blob_manager: BlobManager = self.component_manager.get_component(BLOB_COMPONENT)
|
||||
wallet: LbryWalletManager = self.component_manager.get_component(WALLET_COMPONENT)
|
||||
wallet: WalletManager = self.component_manager.get_component(WALLET_COMPONENT)
|
||||
peer_port = self.conf.tcp_port
|
||||
address = await wallet.get_unused_address()
|
||||
self.blob_server = BlobServer(asyncio.get_event_loop(), blob_manager, address)
|
||||
|
@ -442,9 +441,9 @@ class UPnPComponent(Component):
|
|||
log.info("refreshed upnp redirect for peer port: %i", tcp_port)
|
||||
except (asyncio.TimeoutError, UPnPError, NotImplementedError):
|
||||
del self.upnp_redirects['TCP']
|
||||
if ('TCP' in self.upnp_redirects
|
||||
and PEER_PROTOCOL_SERVER_COMPONENT not in self.component_manager.skip_components) and (
|
||||
'UDP' in self.upnp_redirects and DHT_COMPONENT not in self.component_manager.skip_components):
|
||||
if ('TCP' in self.upnp_redirects and
|
||||
PEER_PROTOCOL_SERVER_COMPONENT not in self.component_manager.skip_components) and \
|
||||
('UDP' in self.upnp_redirects and DHT_COMPONENT not in self.component_manager.skip_components):
|
||||
if self.upnp_redirects:
|
||||
log.debug("upnp redirects are still active")
|
||||
|
||||
|
|
|
@ -6,20 +6,21 @@ import json
|
|||
import time
|
||||
import inspect
|
||||
import typing
|
||||
import base58
|
||||
import random
|
||||
import ecdsa
|
||||
import hashlib
|
||||
from urllib.parse import urlencode, quote
|
||||
from typing import Callable, Optional, List
|
||||
from binascii import hexlify, unhexlify
|
||||
from traceback import format_exc
|
||||
from aiohttp import web
|
||||
from functools import wraps, partial
|
||||
|
||||
import ecdsa
|
||||
import base58
|
||||
from aiohttp import web
|
||||
from google.protobuf.message import DecodeError
|
||||
from lbry.wallet import (
|
||||
Wallet, WalletManager, ENCRYPT_ON_DISK, SingleKey, HierarchicalDeterministic,
|
||||
Ledger, Transaction, Output, Input, Account
|
||||
Wallet, ENCRYPT_ON_DISK, SingleKey, HierarchicalDeterministic,
|
||||
Transaction, Output, Input, Account
|
||||
)
|
||||
from lbry.wallet.dewies import dewies_to_lbc, lbc_to_dewies, dict_values_to_lbc
|
||||
|
||||
|
@ -52,6 +53,7 @@ if typing.TYPE_CHECKING:
|
|||
from lbry.extras.daemon.exchange_rate_manager import ExchangeRateManager
|
||||
from lbry.extras.daemon.storage import SQLiteStorage
|
||||
from lbry.stream.stream_manager import StreamManager
|
||||
from lbry.wallet import WalletManager, Ledger
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
|
@ -67,8 +69,8 @@ def requires(*components, **conditions):
|
|||
raise SyntaxError("invalid conditions argument")
|
||||
condition_names = conditions.get("conditions", [])
|
||||
|
||||
def _wrap(fn):
|
||||
@wraps(fn)
|
||||
def _wrap(method):
|
||||
@wraps(method)
|
||||
def _inner(*args, **kwargs):
|
||||
component_manager = args[0].component_manager
|
||||
for condition_name in condition_names:
|
||||
|
@ -79,7 +81,7 @@ def requires(*components, **conditions):
|
|||
raise ComponentsNotStartedError(
|
||||
f"the following required components have not yet started: {json.dumps(components)}"
|
||||
)
|
||||
return fn(*args, **kwargs)
|
||||
return method(*args, **kwargs)
|
||||
|
||||
return _inner
|
||||
|
||||
|
@ -315,6 +317,9 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
streaming_app.router.add_get('/stream/{sd_hash}', self.handle_stream_range_request)
|
||||
self.streaming_runner = web.AppRunner(streaming_app)
|
||||
|
||||
self.callable_methods = {}
|
||||
self.deprecated_methods = {}
|
||||
|
||||
@property
|
||||
def dht_node(self) -> typing.Optional['Node']:
|
||||
return self.component_manager.get_component(DHT_COMPONENT)
|
||||
|
@ -511,7 +516,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
try:
|
||||
encoded_result = jsonrpc_dumps_pretty(
|
||||
result, ledger=ledger, include_protobuf=include_protobuf)
|
||||
except:
|
||||
except Exception:
|
||||
log.exception('Failed to encode JSON RPC result:')
|
||||
encoded_result = jsonrpc_dumps_pretty(JSONRPCError(
|
||||
JSONRPCError.CODE_APPLICATION_ERROR,
|
||||
|
@ -576,7 +581,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
)
|
||||
|
||||
try:
|
||||
fn = self._get_jsonrpc_method(function_name)
|
||||
method = self._get_jsonrpc_method(function_name)
|
||||
except UnknownAPIMethodError:
|
||||
return JSONRPCError(
|
||||
JSONRPCError.CODE_METHOD_NOT_FOUND,
|
||||
|
@ -603,7 +608,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
if is_transactional_function(function_name):
|
||||
log.info("%s %s %s", function_name, _args, _kwargs)
|
||||
|
||||
params_error, erroneous_params = self._check_params(fn, _args, _kwargs)
|
||||
params_error, erroneous_params = self._check_params(method, _args, _kwargs)
|
||||
if params_error is not None:
|
||||
params_error_message = '{} for {} command: {}'.format(
|
||||
params_error, function_name, ', '.join(erroneous_params)
|
||||
|
@ -615,7 +620,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
)
|
||||
|
||||
try:
|
||||
result = fn(self, *_args, **_kwargs)
|
||||
result = method(self, *_args, **_kwargs)
|
||||
if asyncio.iscoroutine(result):
|
||||
result = await result
|
||||
return result
|
||||
|
@ -660,7 +665,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
for required_param in argspec.args[len(args_tup) + 1:-num_optional_params]
|
||||
if required_param not in args_dict
|
||||
]
|
||||
if len(missing_required_params):
|
||||
if len(missing_required_params) > 0:
|
||||
return 'Missing required parameters', missing_required_params
|
||||
|
||||
extraneous_params = [] if argspec.varkw is not None else [
|
||||
|
@ -668,7 +673,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
for extra_param in args_dict
|
||||
if extra_param not in argspec.args[1:]
|
||||
]
|
||||
if len(extraneous_params):
|
||||
if len(extraneous_params) > 0:
|
||||
return 'Extraneous parameters', extraneous_params
|
||||
|
||||
return None, None
|
||||
|
@ -710,7 +715,8 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
# #
|
||||
############################################################################
|
||||
|
||||
def jsonrpc_stop(self):
|
||||
@staticmethod
|
||||
def jsonrpc_stop():
|
||||
"""
|
||||
Stop lbrynet API server.
|
||||
|
||||
|
@ -836,7 +842,8 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
response[component.component_name] = status
|
||||
return response
|
||||
|
||||
def jsonrpc_version(self):
|
||||
@staticmethod
|
||||
def jsonrpc_version():
|
||||
"""
|
||||
Get lbrynet API server version information
|
||||
|
||||
|
@ -859,7 +866,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
}
|
||||
"""
|
||||
platform_info = system_info.get_platform()
|
||||
log.info("Get version info: " + json.dumps(platform_info))
|
||||
log.info("Get version info: %s", json.dumps(platform_info))
|
||||
return platform_info
|
||||
|
||||
@requires(WALLET_COMPONENT)
|
||||
|
@ -938,12 +945,12 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
results = {}
|
||||
|
||||
valid_urls = set()
|
||||
for u in urls:
|
||||
for url in urls:
|
||||
try:
|
||||
URL.parse(u)
|
||||
valid_urls.add(u)
|
||||
URL.parse(url)
|
||||
valid_urls.add(url)
|
||||
except ValueError:
|
||||
results[u] = {"error": f"{u} is not a valid url"}
|
||||
results[url] = {"error": f"{url} is not a valid url"}
|
||||
|
||||
resolved = await self.resolve(wallet.accounts, list(valid_urls))
|
||||
|
||||
|
@ -2288,7 +2295,7 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
kwargs['signature_valid'] = 0
|
||||
page_num, page_size = abs(kwargs.pop('page', 1)), min(abs(kwargs.pop('page_size', DEFAULT_PAGE_SIZE)), 50)
|
||||
kwargs.update({'offset': page_size * (page_num - 1), 'limit': page_size})
|
||||
txos, offset, total = await self.ledger.claim_search(wallet.accounts, **kwargs)
|
||||
txos, _, total = await self.ledger.claim_search(wallet.accounts, **kwargs)
|
||||
result = {"items": txos, "page": page_num, "page_size": page_size}
|
||||
if not kwargs.pop('no_totals', False):
|
||||
result['total_pages'] = int((total + (page_size - 1)) / page_size)
|
||||
|
@ -4754,7 +4761,8 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
pass
|
||||
return results
|
||||
|
||||
def _old_get_temp_claim_info(self, tx, txo, address, claim_dict, name, bid):
|
||||
@staticmethod
|
||||
def _old_get_temp_claim_info(tx, txo, address, claim_dict, name, bid):
|
||||
return {
|
||||
"claim_id": txo.claim_id,
|
||||
"name": name,
|
||||
|
@ -4768,9 +4776,9 @@ class Daemon(metaclass=JSONRPCServerType):
|
|||
}
|
||||
|
||||
|
||||
def loggly_time_string(dt):
|
||||
formatted_dt = dt.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
milliseconds = str(round(dt.microsecond * (10.0 ** -5), 3))
|
||||
def loggly_time_string(date):
|
||||
formatted_dt = date.strftime("%Y-%m-%dT%H:%M:%S")
|
||||
milliseconds = str(round(date.microsecond * (10.0 ** -5), 3))
|
||||
return quote(formatted_dt + milliseconds + "Z")
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
import asyncio
|
||||
import collections
|
||||
import logging
|
||||
import aiohttp
|
||||
import typing
|
||||
import aiohttp
|
||||
from lbry import utils
|
||||
from lbry.conf import Config
|
||||
from lbry.extras import system_info
|
||||
|
|
|
@ -54,7 +54,7 @@ class MarketFeed:
|
|||
def is_online(self):
|
||||
return self.last_check+self.update_interval+self.request_timeout > time.time()
|
||||
|
||||
def get_rate_from_response(self, response):
|
||||
def get_rate_from_response(self, json_response):
|
||||
raise NotImplementedError()
|
||||
|
||||
async def get_response(self):
|
||||
|
|
|
@ -10,7 +10,7 @@ source =
|
|||
ignore_missing_imports = True
|
||||
|
||||
[pylint]
|
||||
ignore=words,server,rpc,schema,winpaths.py
|
||||
ignore=words,server,rpc,schema,winpaths.py,migrator
|
||||
max-parents=10
|
||||
max-args=10
|
||||
max-line-length=120
|
||||
|
@ -26,6 +26,7 @@ disable=
|
|||
expression-not-assigned,
|
||||
inconsistent-return-statements,
|
||||
too-few-public-methods,
|
||||
too-many-lines,
|
||||
too-many-locals,
|
||||
too-many-branches,
|
||||
too-many-arguments,
|
||||
|
|
Loading…
Reference in a new issue