SYMBOL INDEX (4019 symbols across 212 files) FILE: docker/set_build.py function _check_and_set (line 12) | def _check_and_set(d: dict, key: str, value: str): function main (line 20) | def main(): FILE: lbry/blob/blob_file.py function is_valid_blobhash (line 29) | def is_valid_blobhash(blobhash: str) -> bool: function encrypt_blob_bytes (line 40) | def encrypt_blob_bytes(key: bytes, iv: bytes, unencrypted: bytes) -> typ... function decrypt_blob_bytes (line 50) | def decrypt_blob_bytes(data: bytes, length: int, key: bytes, iv: bytes) ... class AbstractBlob (line 59) | class AbstractBlob: method __init__ (line 79) | def __init__( method __del__ (line 99) | def __del__(self): method _reader_context (line 105) | def _reader_context(self) -> typing.ContextManager[typing.BinaryIO]: method reader_context (line 109) | def reader_context(self) -> typing.ContextManager[typing.BinaryIO]: method _write_blob (line 120) | def _write_blob(self, blob_bytes: bytes) -> asyncio.Task: method set_length (line 123) | def set_length(self, length) -> None: method get_length (line 131) | def get_length(self) -> typing.Optional[int]: method get_is_verified (line 134) | def get_is_verified(self) -> bool: method is_readable (line 137) | def is_readable(self) -> bool: method is_writeable (line 140) | def is_writeable(self) -> bool: method write_blob (line 143) | def write_blob(self, blob_bytes: bytes): method close (line 152) | def close(self): method delete (line 162) | def delete(self): method sendfile (line 167) | async def sendfile(self, writer: asyncio.StreamWriter) -> int: method decrypt (line 180) | def decrypt(self, key: bytes, iv: bytes) -> bytes: method create_from_unencrypted (line 189) | async def create_from_unencrypted( method save_verified_blob (line 206) | def save_verified_blob(self, verified_bytes: bytes): method get_blob_writer (line 221) | def get_blob_writer(self, peer_address: typing.Optional[str] = None, class BlobBuffer (line 255) | class BlobBuffer(AbstractBlob): method __init__ (line 259) | def __init__( method _reader_context (line 268) | def _reader_context(self) -> typing.ContextManager[typing.BinaryIO]: method _write_blob (line 279) | def _write_blob(self, blob_bytes: bytes): method delete (line 286) | def delete(self): method __del__ (line 292) | def __del__(self): class BlobFile (line 298) | class BlobFile(AbstractBlob): method __init__ (line 302) | def __init__( method file_exists (line 321) | def file_exists(self): method is_writeable (line 324) | def is_writeable(self) -> bool: method get_blob_writer (line 327) | def get_blob_writer(self, peer_address: typing.Optional[str] = None, method _reader_context (line 334) | def _reader_context(self) -> typing.ContextManager[typing.BinaryIO]: method _write_blob (line 341) | def _write_blob(self, blob_bytes: bytes): method delete (line 351) | def delete(self): method create_from_unencrypted (line 357) | async def create_from_unencrypted( FILE: lbry/blob/blob_info.py class BlobInfo (line 4) | class BlobInfo: method __init__ (line 14) | def __init__( method as_dict (line 24) | def as_dict(self) -> typing.Dict: FILE: lbry/blob/blob_manager.py class BlobManager (line 18) | class BlobManager: method __init__ (line 19) | def __init__(self, loop: asyncio.AbstractEventLoop, blob_dir: str, sto... method _get_blob (line 39) | def _get_blob(self, blob_hash: str, length: typing.Optional[int] = Non... method get_blob (line 49) | def get_blob(self, blob_hash, length: typing.Optional[int] = None, is_... method is_blob_verified (line 65) | def is_blob_verified(self, blob_hash: str, length: typing.Optional[int... method setup (line 74) | async def setup(self) -> bool: method stop (line 92) | def stop(self): method get_stream_descriptor (line 99) | def get_stream_descriptor(self, sd_hash): method blob_completed (line 102) | def blob_completed(self, blob: AbstractBlob) -> asyncio.Task: method ensure_completed_blobs_status (line 118) | async def ensure_completed_blobs_status(self, blob_hashes: typing.Iter... method delete_blob (line 131) | def delete_blob(self, blob_hash: str): method delete_blobs (line 143) | async def delete_blobs(self, blob_hashes: typing.List[str], delete_fro... FILE: lbry/blob/disk_space_manager.py class DiskSpaceManager (line 7) | class DiskSpaceManager: method __init__ (line 9) | def __init__(self, config, db, blob_manager, cleaning_interval=30 * 60... method get_free_space_mb (line 19) | async def get_free_space_mb(self, is_network_blob=False): method get_space_used_bytes (line 25) | async def get_space_used_bytes(self): method get_space_used_mb (line 29) | async def get_space_used_mb(self, cached=True): method clean (line 34) | async def clean(self): method _clean (line 38) | async def _clean(self, is_network_blob=False): method cleaning_loop (line 64) | async def cleaning_loop(self): method start (line 69) | async def start(self): method stop (line 74) | async def stop(self): FILE: lbry/blob/writer.py class HashBlobWriter (line 11) | class HashBlobWriter: method __init__ (line 12) | def __init__(self, expected_blob_hash: str, get_length: typing.Callabl... method __del__ (line 22) | def __del__(self): method calculate_blob_hash (line 27) | def calculate_blob_hash(self) -> str: method closed (line 30) | def closed(self): method write (line 33) | def write(self, data: bytes): method close_handle (line 63) | def close_handle(self): FILE: lbry/blob_exchange/client.py class BlobExchangeClientProtocol (line 18) | class BlobExchangeClientProtocol(asyncio.Protocol): method __init__ (line 19) | def __init__(self, loop: asyncio.AbstractEventLoop, peer_timeout: typi... method data_received (line 37) | def data_received(self, data: bytes): method _write (line 82) | def _write(self, data: bytes): method _download_blob (line 98) | async def _download_blob(self) -> typing.Tuple[int, Optional['BlobExch... method close (line 168) | def close(self): method download_blob (line 182) | async def download_blob(self, blob: 'AbstractBlob') -> typing.Tuple[in... method connection_made (line 210) | def connection_made(self, transport: asyncio.Transport): method connection_lost (line 218) | def connection_lost(self, exc): function request_blob (line 227) | async def request_blob(loop: asyncio.AbstractEventLoop, blob: Optional['... FILE: lbry/blob_exchange/downloader.py class BlobDownloader (line 18) | class BlobDownloader: method __init__ (line 21) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method should_race_continue (line 35) | def should_race_continue(self, blob: 'AbstractBlob'): method request_blob_from_peer (line 41) | async def request_blob_from_peer(self, blob: 'AbstractBlob', peer: 'Ka... method new_peer_or_finished (line 66) | async def new_peer_or_finished(self): method cleanup_active (line 70) | def cleanup_active(self): method clearbanned (line 77) | def clearbanned(self): method download_blob (line 85) | async def download_blob(self, blob_hash: str, length: typing.Optional[... method close (line 118) | def close(self): function download_blob (line 127) | async def download_blob(loop, config: 'Config', blob_manager: 'BlobManag... FILE: lbry/blob_exchange/serialization.py class BlobMessage (line 8) | class BlobMessage: method to_dict (line 11) | def to_dict(self) -> typing.Dict: class BlobPriceRequest (line 15) | class BlobPriceRequest(BlobMessage): method __init__ (line 18) | def __init__(self, blob_data_payment_rate: float, **kwargs) -> None: method to_dict (line 21) | def to_dict(self) -> typing.Dict: class BlobPriceResponse (line 27) | class BlobPriceResponse(BlobMessage): method __init__ (line 33) | def __init__(self, blob_data_payment_rate: str, **kwargs) -> None: method to_dict (line 38) | def to_dict(self) -> typing.Dict: class BlobAvailabilityRequest (line 44) | class BlobAvailabilityRequest(BlobMessage): method __init__ (line 47) | def __init__(self, requested_blobs: typing.List[str], lbrycrd_address:... method to_dict (line 53) | def to_dict(self) -> typing.Dict: class BlobAvailabilityResponse (line 60) | class BlobAvailabilityResponse(BlobMessage): method __init__ (line 63) | def __init__(self, available_blobs: typing.List[str], lbrycrd_address:... method to_dict (line 68) | def to_dict(self) -> typing.Dict: class BlobDownloadRequest (line 77) | class BlobDownloadRequest(BlobMessage): method __init__ (line 80) | def __init__(self, requested_blob: str, **kwargs) -> None: method to_dict (line 83) | def to_dict(self) -> typing.Dict: class BlobDownloadResponse (line 89) | class BlobDownloadResponse(BlobMessage): method __init__ (line 92) | def __init__(self, **response: typing.Dict) -> None: method to_dict (line 103) | def to_dict(self) -> typing.Dict: class BlobPaymentAddressRequest (line 109) | class BlobPaymentAddressRequest(BlobMessage): method __init__ (line 112) | def __init__(self, lbrycrd_address: str, **kwargs) -> None: method to_dict (line 115) | def to_dict(self) -> typing.Dict: class BlobPaymentAddressResponse (line 121) | class BlobPaymentAddressResponse(BlobPaymentAddressRequest): class BlobErrorResponse (line 125) | class BlobErrorResponse(BlobMessage): method __init__ (line 128) | def __init__(self, error: str, **kwargs) -> None: method to_dict (line 131) | def to_dict(self) -> typing.Dict: function _parse_blob_response (line 143) | def _parse_blob_response(response_msg: bytes) -> typing.Tuple[typing.Opt... class BlobRequest (line 171) | class BlobRequest: method __init__ (line 172) | def __init__(self, requests: typing.List[blob_request_types]) -> None: method to_dict (line 175) | def to_dict(self): method _get_request (line 181) | def _get_request(self, request_type: blob_request_types): method get_availability_request (line 186) | def get_availability_request(self) -> typing.Optional[BlobAvailability... method get_price_request (line 191) | def get_price_request(self) -> typing.Optional[BlobPriceRequest]: method get_blob_request (line 196) | def get_blob_request(self) -> typing.Optional[BlobDownloadRequest]: method get_address_request (line 201) | def get_address_request(self) -> typing.Optional[BlobPaymentAddressReq... method serialize (line 206) | def serialize(self) -> bytes: method deserialize (line 210) | def deserialize(cls, data: bytes) -> 'BlobRequest': method make_request_for_blob_hash (line 220) | def make_request_for_blob_hash(cls, blob_hash: str) -> 'BlobRequest': class BlobResponse (line 226) | class BlobResponse: method __init__ (line 227) | def __init__(self, responses: typing.List[blob_response_types], blob_d... method to_dict (line 231) | def to_dict(self): method _get_response (line 237) | def _get_response(self, response_type: blob_response_types): method get_error_response (line 242) | def get_error_response(self) -> typing.Optional[BlobErrorResponse]: method get_availability_response (line 248) | def get_availability_response(self) -> typing.Optional[BlobAvailabilit... method get_price_response (line 253) | def get_price_response(self) -> typing.Optional[BlobPriceResponse]: method get_blob_response (line 258) | def get_blob_response(self) -> typing.Optional[BlobDownloadResponse]: method get_address_response (line 263) | def get_address_response(self) -> typing.Optional[BlobPaymentAddressRe... method serialize (line 268) | def serialize(self) -> bytes: method deserialize (line 272) | def deserialize(cls, data: bytes) -> 'BlobResponse': FILE: lbry/blob_exchange/server.py class BlobServerProtocol (line 20) | class BlobServerProtocol(asyncio.Protocol): method __init__ (line 21) | def __init__(self, loop: asyncio.AbstractEventLoop, blob_manager: 'Blo... method close_on_idle (line 37) | async def close_on_idle(self): method close (line 48) | def close(self): method connection_made (line 52) | def connection_made(self, transport): method connection_lost (line 59) | def connection_lost(self, exc: typing.Optional[Exception]) -> None: method send_response (line 67) | def send_response(self, responses: typing.List[blob_response_types]): method handle_request (line 75) | async def handle_request(self, request: BlobRequest): method data_received (line 126) | def data_received(self, data): class BlobServer (line 154) | class BlobServer: method __init__ (line 155) | def __init__(self, loop: asyncio.AbstractEventLoop, blob_manager: 'Blo... method start_server (line 166) | def start_server(self, port: int, interface: typing.Optional[str] = '0... method stop_server (line 190) | def stop_server(self): FILE: lbry/conf.py class Setting (line 27) | class Setting(Generic[T]): method __init__ (line 29) | def __init__(self, doc: str, default: Optional[T] = None, method __set_name__ (line 37) | def __set_name__(self, owner, name): method cli_name (line 41) | def cli_name(self): method no_cli_name (line 45) | def no_cli_name(self): method __get__ (line 48) | def __get__(self, obj: Optional['BaseConfig'], owner) -> T: method __set__ (line 56) | def __set__(self, obj: 'BaseConfig', val: Union[T, NOT_SET]): method is_set (line 66) | def is_set(self, obj: 'BaseConfig') -> bool: method is_set_to_default (line 72) | def is_set_to_default(self, obj: 'BaseConfig') -> bool: method validate (line 78) | def validate(self, value): method deserialize (line 81) | def deserialize(self, value): # pylint: disable=no-self-use method serialize (line 84) | def serialize(self, value): # pylint: disable=no-self-use method contribute_to_argparse (line 87) | def contribute_to_argparse(self, parser: ArgumentParser): class String (line 96) | class String(Setting[str]): method validate (line 97) | def validate(self, value): method __get__ (line 102) | def __get__(self, obj: Optional['BaseConfig'], owner) -> str: # pylin... class Integer (line 106) | class Integer(Setting[int]): method validate (line 107) | def validate(self, value): method deserialize (line 111) | def deserialize(self, value): class Float (line 115) | class Float(Setting[float]): method validate (line 116) | def validate(self, value): method deserialize (line 120) | def deserialize(self, value): class Toggle (line 124) | class Toggle(Setting[bool]): method validate (line 125) | def validate(self, value): method contribute_to_argparse (line 129) | def contribute_to_argparse(self, parser: ArgumentParser): class Path (line 145) | class Path(String): method __init__ (line 146) | def __init__(self, doc: str, *args, default: str = '', **kwargs): method __get__ (line 149) | def __get__(self, obj, owner) -> str: class MaxKeyFee (line 156) | class MaxKeyFee(Setting[dict]): method validate (line 158) | def validate(self, value): method _parse_list (line 166) | def _parse_list(l): method deserialize (line 182) | def deserialize(self, value): method contribute_to_argparse (line 196) | def contribute_to_argparse(self, parser: ArgumentParser): class StringChoice (line 214) | class StringChoice(String): method __init__ (line 215) | def __init__(self, doc: str, valid_values: List[str], default: str, *a... method validate (line 223) | def validate(self, value): class ListSetting (line 229) | class ListSetting(Setting[list]): method validate (line 231) | def validate(self, value): method contribute_to_argparse (line 235) | def contribute_to_argparse(self, parser: ArgumentParser): class Servers (line 243) | class Servers(ListSetting): method validate (line 245) | def validate(self, value): method deserialize (line 259) | def deserialize(self, value): method serialize (line 271) | def serialize(self, value): class Strings (line 277) | class Strings(ListSetting): method validate (line 279) | def validate(self, value): class KnownHubsList (line 288) | class KnownHubsList: method __init__ (line 290) | def __init__(self, config: 'Config' = None, file_name: str = 'known_hu... method exists (line 298) | def exists(self): method serialized (line 302) | def serialized(self) -> Dict[str, Dict]: method filter (line 305) | def filter(self, match_none=False, **kwargs): method load (line 317) | def load(self): method save (line 324) | def save(self): method set (line 329) | def set(self, hub: str, details: Dict): method add_hubs (line 337) | def add_hubs(self, hubs: List[str]): method items (line 344) | def items(self): method __bool__ (line 347) | def __bool__(self): method __len__ (line 350) | def __len__(self): method __iter__ (line 353) | def __iter__(self): class EnvironmentAccess (line 357) | class EnvironmentAccess: method __init__ (line 360) | def __init__(self, config: 'BaseConfig', environ: dict): method load (line 366) | def load(self, environ): method __contains__ (line 372) | def __contains__(self, item: str): method __getitem__ (line 375) | def __getitem__(self, item: str): class ArgumentAccess (line 379) | class ArgumentAccess: method __init__ (line 381) | def __init__(self, config: 'BaseConfig', args: dict): method load (line 387) | def load(self, args): method __contains__ (line 393) | def __contains__(self, item: str): method __getitem__ (line 396) | def __getitem__(self, item: str): class ConfigFileAccess (line 400) | class ConfigFileAccess: method __init__ (line 402) | def __init__(self, config: 'BaseConfig', path: str): method exists (line 410) | def exists(self): method load (line 413) | def load(self): method save (line 428) | def save(self): method upgrade (line 437) | def upgrade(self) -> bool: method __contains__ (line 448) | def __contains__(self, item: str): method __getitem__ (line 451) | def __getitem__(self, item: str): method __setitem__ (line 454) | def __setitem__(self, key, value): method __delitem__ (line 457) | def __delitem__(self, key): class BaseConfig (line 464) | class BaseConfig: method __init__ (line 468) | def __init__(self, **kwargs): method update_config (line 478) | def update_config(self): method modify_order (line 486) | def modify_order(self): method search_order (line 493) | def search_order(self): method get_settings (line 502) | def get_settings(cls): method settings (line 509) | def settings(self): method settings_dict (line 513) | def settings_dict(self): method create_from_arguments (line 519) | def create_from_arguments(cls, args) -> TBC: method contribute_to_argparse (line 527) | def contribute_to_argparse(cls, parser: ArgumentParser): method set_arguments (line 531) | def set_arguments(self, args): method set_environment (line 534) | def set_environment(self, environ=None): method set_persisted (line 537) | def set_persisted(self, config_file_path=None): class TranscodeConfig (line 554) | class TranscodeConfig(BaseConfig): class CLIConfig (line 574) | class CLIConfig(TranscodeConfig): method api_connection_url (line 579) | def api_connection_url(self) -> str: method api_host (line 583) | def api_host(self): method api_port (line 587) | def api_port(self): class Config (line 591) | class Config(CLIConfig): method streaming_host (line 755) | def streaming_host(self): method streaming_port (line 759) | def streaming_port(self): method __init__ (line 762) | def __init__(self, **kwargs): method set_default_paths (line 767) | def set_default_paths(self): method log_file_path (line 783) | def log_file_path(self): function get_windows_directories (line 787) | def get_windows_directories() -> Tuple[str, str, str]: function get_darwin_directories (line 809) | def get_darwin_directories() -> Tuple[str, str, str]: function get_linux_directories (line 816) | def get_linux_directories() -> Tuple[str, str, str]: FILE: lbry/connection_manager.py class ConnectionManager (line 15) | class ConnectionManager: method __init__ (line 16) | def __init__(self, loop: asyncio.AbstractEventLoop): method status (line 29) | def status(self): method sent_data (line 32) | def sent_data(self, host_and_port: str, size: int): method received_data (line 36) | def received_data(self, host_and_port: str, size: int): method connection_made (line 40) | def connection_made(self, host_and_port: str): method connection_received (line 44) | def connection_received(self, host_and_port: str): method outgoing_connection_lost (line 48) | def outgoing_connection_lost(self, host_and_port: str): method incoming_connection_lost (line 52) | def incoming_connection_lost(self, host_and_port: str): method _update (line 56) | async def _update(self): method stop (line 91) | def stop(self): method start (line 102) | def start(self): FILE: lbry/crypto/base58.py class Base58Error (line 5) | class Base58Error(Exception): class Base58 (line 9) | class Base58: method char_value (line 17) | def char_value(cls, c): method decode (line 24) | def decode(cls, txt): method encode (line 56) | def encode(cls, be_bytes): method decode_check (line 73) | def decode_check(cls, txt, hash_fn=double_sha256): method encode_check (line 82) | def encode_check(cls, payload, hash_fn=double_sha256): FILE: lbry/crypto/crypt.py function aes_encrypt (line 14) | def aes_encrypt(secret: str, value: str, init_vector: bytes = None) -> str: function aes_decrypt (line 27) | def aes_decrypt(secret: str, value: str) -> typing.Tuple[str, bytes]: function better_aes_encrypt (line 44) | def better_aes_encrypt(secret: str, value: bytes) -> bytes: function better_aes_decrypt (line 54) | def better_aes_decrypt(secret: str, value: bytes) -> bytes: function scrypt (line 69) | def scrypt(passphrase, salt, scrypt_n=1<<13, scrypt_r=16, scrypt_p=1): FILE: lbry/crypto/hash.py function sha256 (line 6) | def sha256(x): function sha512 (line 11) | def sha512(x): function ripemd160 (line 16) | def ripemd160(x): function double_sha256 (line 23) | def double_sha256(x): function hmac_sha512 (line 28) | def hmac_sha512(key, msg): function hash160 (line 33) | def hash160(x): function hash_to_hex_str (line 39) | def hash_to_hex_str(x): function hex_str_to_hash (line 45) | def hex_str_to_hash(x): FILE: lbry/crypto/util.py function bytes_to_int (line 4) | def bytes_to_int(be_bytes): function int_to_bytes (line 9) | def int_to_bytes(value): FILE: lbry/dht/blob_announcer.py class BlobAnnouncer (line 14) | class BlobAnnouncer: method __init__ (line 24) | def __init__(self, loop: asyncio.AbstractEventLoop, node: 'Node', stor... method _run_consumer (line 33) | async def _run_consumer(self): method _announce (line 47) | async def _announce(self, batch_size: typing.Optional[int] = 10): method start (line 69) | def start(self, batch_size: typing.Optional[int] = 10): method stop (line 73) | def stop(self): method wait (line 77) | def wait(self): FILE: lbry/dht/constants.py function digest (line 26) | def digest(data: bytes) -> bytes: function generate_id (line 32) | def generate_id(num=None) -> bytes: function generate_rpc_id (line 39) | def generate_rpc_id(num=None) -> bytes: FILE: lbry/dht/error.py class BaseKademliaException (line 1) | class BaseKademliaException(Exception): class DecodeError (line 5) | class DecodeError(BaseKademliaException): class BucketFull (line 12) | class BucketFull(BaseKademliaException): class RemoteException (line 18) | class RemoteException(BaseKademliaException): class TransportNotConnected (line 22) | class TransportNotConnected(BaseKademliaException): FILE: lbry/dht/node.py class Node (line 22) | class Node: method __init__ (line 31) | def __init__(self, loop: asyncio.AbstractEventLoop, peer_manager: 'Pee... method stored_blob_hashes (line 46) | def stored_blob_hashes(self): method refresh_node (line 49) | async def refresh_node(self, force_once=False): method announce_blob (line 100) | async def announce_blob(self, blob_hash: str) -> typing.List[bytes]: method stop (line 123) | def stop(self) -> None: method start_listening (line 139) | async def start_listening(self, interface: str = '0.0.0.0') -> None: method join_network (line 149) | async def join_network(self, interface: str = '0.0.0.0', method start (line 194) | def start(self, interface: str, known_node_urls: typing.Optional[typin... method get_iterative_node_finder (line 197) | def get_iterative_node_finder(self, key: bytes, shortlist: typing.Opti... method get_iterative_value_finder (line 202) | def get_iterative_value_finder(self, key: bytes, shortlist: typing.Opt... method peer_search (line 207) | async def peer_search(self, node_id: bytes, count=constants.K, max_res... method _accumulate_peers_for_value (line 219) | async def _accumulate_peers_for_value(self, search_queue: asyncio.Queu... method _peers_for_value_producer (line 229) | async def _peers_for_value_producer(self, blob_hash: str, result_queue... method accumulate_peers (line 271) | def accumulate_peers(self, search_queue: asyncio.Queue, function get_kademlia_peers_from_hosts (line 278) | async def get_kademlia_peers_from_hosts(peer_list: typing.List[typing.Tu... FILE: lbry/dht/peer.py function make_kademlia_peer (line 19) | def make_kademlia_peer(node_id: typing.Optional[bytes], address: typing.... function is_valid_public_ipv4 (line 26) | def is_valid_public_ipv4(address, allow_localhost: bool = False): class PeerManager (line 31) | class PeerManager: method __init__ (line 36) | def __init__(self, loop: asyncio.AbstractEventLoop): method count_cache_keys (line 48) | def count_cache_keys(self): method reset (line 53) | def reset(self): method report_failure (line 57) | def report_failure(self, address: str, udp_port: int): method report_last_sent (line 62) | def report_last_sent(self, address: str, udp_port: int): method report_last_replied (line 66) | def report_last_replied(self, address: str, udp_port: int): method report_last_requested (line 70) | def report_last_requested(self, address: str, udp_port: int): method clear_token (line 74) | def clear_token(self, node_id: bytes): method update_token (line 77) | def update_token(self, node_id: bytes, token: bytes): method get_node_token (line 81) | def get_node_token(self, node_id: bytes) -> typing.Optional[bytes]: method get_last_replied (line 86) | def get_last_replied(self, address: str, udp_port: int) -> typing.Opti... method update_contact_triple (line 89) | def update_contact_triple(self, node_id: bytes, address: str, udp_port... method get_node_id_for_endpoint (line 103) | def get_node_id_for_endpoint(self, address, port): method prune (line 106) | def prune(self): # TODO: periodically call this method contact_triple_is_good (line 121) | def contact_triple_is_good(self, node_id: bytes, address: str, udp_por... method peer_is_good (line 153) | def peer_is_good(self, peer: 'KademliaPeer'): function decode_tcp_peer_from_compact_address (line 157) | def decode_tcp_peer_from_compact_address(compact_address: bytes) -> 'Kad... class KademliaPeer (line 163) | class KademliaPeer: method __post_init__ (line 171) | def __post_init__(self): method update_tcp_port (line 182) | def update_tcp_port(self, tcp_port: int): method node_id (line 186) | def node_id(self) -> bytes: method compact_address_udp (line 189) | def compact_address_udp(self) -> bytearray: method compact_address_tcp (line 192) | def compact_address_tcp(self) -> bytearray: method compact_ip (line 195) | def compact_ip(self): method __str__ (line 198) | def __str__(self): FILE: lbry/dht/protocol/data_store.py class DictDataStore (line 9) | class DictDataStore: method __init__ (line 10) | def __init__(self, loop: asyncio.AbstractEventLoop, peer_manager: 'Pee... method keys (line 19) | def keys(self): method __len__ (line 22) | def __len__(self): method removed_expired_peers (line 25) | def removed_expired_peers(self): method filter_bad_and_expired_peers (line 38) | def filter_bad_and_expired_peers(self, key: bytes) -> typing.Iterator[... method filter_expired_peers (line 46) | def filter_expired_peers(self, key: bytes) -> typing.Iterator['Kademli... method has_peers_for_blob (line 55) | def has_peers_for_blob(self, key: bytes) -> bool: method add_peer_to_blob (line 58) | def add_peer_to_blob(self, contact: 'KademliaPeer', key: bytes) -> None: method get_peers_for_blob (line 69) | def get_peers_for_blob(self, key: bytes) -> typing.List['KademliaPeer']: method get_storing_contacts (line 72) | def get_storing_contacts(self) -> typing.List['KademliaPeer']: FILE: lbry/dht/protocol/distance.py class Distance (line 4) | class Distance: method __init__ (line 11) | def __init__(self, key: bytes): method __call__ (line 17) | def __call__(self, key_two: bytes) -> int: method is_closer (line 23) | def is_closer(self, key_a: bytes, key_b: bytes) -> bool: FILE: lbry/dht/protocol/iterative_find.py class FindResponse (line 21) | class FindResponse: method found (line 23) | def found(self) -> bool: method get_close_triples (line 26) | def get_close_triples(self) -> typing.List[typing.Tuple[bytes, str, in... method get_close_kademlia_peers (line 29) | def get_close_kademlia_peers(self, peer_info) -> typing.Generator[typi... class FindNodeResponse (line 39) | class FindNodeResponse(FindResponse): method __init__ (line 40) | def __init__(self, key: bytes, close_triples: typing.List[typing.Tuple... method found (line 45) | def found(self) -> bool: method get_close_triples (line 48) | def get_close_triples(self) -> typing.List[typing.Tuple[bytes, str, in... class FindValueResponse (line 52) | class FindValueResponse(FindResponse): method __init__ (line 53) | def __init__(self, key: bytes, result_dict: typing.Dict): method found (line 61) | def found(self) -> bool: method get_close_triples (line 64) | def get_close_triples(self) -> typing.List[typing.Tuple[bytes, str, in... class IterativeFinder (line 68) | class IterativeFinder(AsyncIterator): method __init__ (line 69) | def __init__(self, loop: asyncio.AbstractEventLoop, method send_probe (line 99) | async def send_probe(self, peer: 'KademliaPeer') -> FindResponse: method search_exhausted (line 105) | def search_exhausted(self): method check_result_ready (line 112) | def check_result_ready(self, response: FindResponse): method get_initial_result (line 119) | def get_initial_result(self) -> typing.List['KademliaPeer']: #pylint:... method _add_active (line 126) | def _add_active(self, peer, force=False): method _handle_probe_result (line 135) | async def _handle_probe_result(self, peer: 'KademliaPeer', response: F... method _reset_closest (line 142) | def _reset_closest(self, peer): method _send_probe (line 146) | async def _send_probe(self, peer: 'KademliaPeer'): method _search_round (line 168) | def _search_round(self): method _schedule_probe (line 201) | def _schedule_probe(self, peer: 'KademliaPeer'): method _log_state (line 214) | def _log_state(self, reason="?"): method __aiter__ (line 220) | def __aiter__(self): method __anext__ (line 227) | async def __anext__(self) -> typing.List['KademliaPeer']: method _aclose (line 244) | async def _aclose(self, reason="?"): method aclose (line 256) | async def aclose(self): class IterativeNodeFinder (line 262) | class IterativeNodeFinder(IterativeFinder): method __init__ (line 263) | def __init__(self, loop: asyncio.AbstractEventLoop, method send_probe (line 270) | async def send_probe(self, peer: 'KademliaPeer') -> FindNodeResponse: method search_exhausted (line 276) | def search_exhausted(self): method put_result (line 279) | def put_result(self, from_iter: typing.Iterable['KademliaPeer'], finis... method check_result_ready (line 294) | def check_result_ready(self, response: FindNodeResponse): class IterativeValueFinder (line 302) | class IterativeValueFinder(IterativeFinder): method __init__ (line 303) | def __init__(self, loop: asyncio.AbstractEventLoop, method send_probe (line 314) | async def send_probe(self, peer: 'KademliaPeer') -> FindValueResponse: method check_result_ready (line 346) | def check_result_ready(self, response: FindValueResponse): method get_initial_result (line 358) | def get_initial_result(self) -> typing.List['KademliaPeer']: FILE: lbry/dht/protocol/protocol.py class KademliaRPC (line 35) | class KademliaRPC: method __init__ (line 41) | def __init__(self, protocol: 'KademliaProtocol', loop: asyncio.Abstrac... method compact_address (line 48) | def compact_address(self): method ping (line 55) | def ping(): method store (line 58) | def store(self, rpc_contact: 'KademliaPeer', blob_hash: bytes, token: ... method find_node (line 75) | def find_node(self, rpc_contact: 'KademliaPeer', key: bytes) -> typing... method find_value (line 85) | def find_value(self, rpc_contact: 'KademliaPeer', key: bytes, page: in... method refresh_token (line 120) | def refresh_token(self): # TODO: this needs to be called periodically method make_token (line 124) | def make_token(self, compact_ip): method verify_token (line 129) | def verify_token(self, token, compact_ip): class RemoteKademliaRPC (line 140) | class RemoteKademliaRPC: method __init__ (line 145) | def __init__(self, loop: asyncio.AbstractEventLoop, peer_tracker: 'Pee... method ping (line 152) | async def ping(self) -> bytes: method store (line 161) | async def store(self, blob_hash: bytes) -> bytes: method find_node (line 179) | async def find_node(self, key: bytes) -> typing.List[typing.Tuple[byte... method find_value (line 190) | async def find_value(self, key: bytes, page: int = 0) -> typing.Union[... class PingQueue (line 207) | class PingQueue: method __init__ (line 208) | def __init__(self, loop: asyncio.AbstractEventLoop, protocol: 'Kademli... method running (line 218) | def running(self): method busy (line 222) | def busy(self): method enqueue_maybe_ping (line 225) | def enqueue_maybe_ping(self, *peers: 'KademliaPeer', delay: typing.Opt... method maybe_ping (line 232) | def maybe_ping(self, peer: 'KademliaPeer'): method _process (line 247) | async def _process(self): # send up to 1 ping per second method start (line 258) | def start(self): method stop (line 264) | def stop(self): class KademliaProtocol (line 274) | class KademliaProtocol(DatagramProtocol): method __init__ (line 299) | def __init__(self, loop: asyncio.AbstractEventLoop, peer_manager: 'Pee... method get_rpc_peer (line 329) | def get_rpc_peer(self, peer: 'KademliaPeer') -> RemoteKademliaRPC: method start (line 332) | def start(self): method stop (line 335) | def stop(self): method disconnect (line 341) | def disconnect(self): method connection_made (line 344) | def connection_made(self, transport: DatagramTransport): method connection_lost (line 347) | def connection_lost(self, exc): method _migrate_incoming_rpc_args (line 351) | def _migrate_incoming_rpc_args(peer: 'KademliaPeer', method: bytes, *a... method _add_peer (line 363) | async def _add_peer(self, peer: 'KademliaPeer'): method add_peer (line 369) | def add_peer(self, peer: 'KademliaPeer'): method remove_peer (line 375) | def remove_peer(self, peer: 'KademliaPeer'): method routing_table_task (line 379) | async def routing_table_task(self): method _handle_rpc (line 391) | def _handle_rpc(self, sender_contact: 'KademliaPeer', message: Request... method handle_request_datagram (line 423) | def handle_request_datagram(self, address: typing.Tuple[str, int], req... method handle_response_datagram (line 463) | def handle_response_datagram(self, address: typing.Tuple[str, int], re... method handle_error_datagram (line 494) | def handle_error_datagram(self, address, error_datagram: ErrorDatagram): method datagram_received (line 533) | def datagram_received(self, datagram: bytes, address: typing.Tuple[str... method send_request (line 549) | async def send_request(self, peer: 'KademliaPeer', request: RequestDat... method send_response (line 571) | def send_response(self, peer: 'KademliaPeer', response: ResponseDatagr... method send_error (line 574) | def send_error(self, peer: 'KademliaPeer', error: ErrorDatagram): method _send (line 577) | def _send(self, peer: 'KademliaPeer', message: typing.Union[RequestDat... method change_token (line 622) | def change_token(self): method make_token (line 626) | def make_token(self, compact_ip): method verify_token (line 629) | def verify_token(self, token, compact_ip): method store_to_peer (line 639) | async def store_to_peer(self, hash_value: bytes, peer: 'KademliaPeer',... FILE: lbry/dht/protocol/routing_table.py class KBucket (line 19) | class KBucket: method __init__ (line 32) | def __init__(self, peer_manager: 'PeerManager', range_min: int, range_... method add_peer (line 48) | def add_peer(self, peer: 'KademliaPeer') -> bool: method get_peer (line 82) | def get_peer(self, node_id: bytes) -> 'KademliaPeer': method get_peers (line 87) | def get_peers(self, count=-1, exclude_contact=None, sort_distance_to=N... method get_bad_or_unknown_peers (line 133) | def get_bad_or_unknown_peers(self) -> typing.List['KademliaPeer']: method remove_peer (line 140) | def remove_peer(self, peer: 'KademliaPeer') -> None: method key_in_range (line 146) | def key_in_range(self, key: bytes) -> bool: method __len__ (line 161) | def __len__(self) -> int: method __contains__ (line 164) | def __contains__(self, item) -> bool: class TreeRoutingTable (line 168) | class TreeRoutingTable: method __init__ (line 195) | def __init__(self, loop: asyncio.AbstractEventLoop, peer_manager: 'Pee... method get_peers (line 208) | def get_peers(self) -> typing.List['KademliaPeer']: method _should_split (line 211) | def _should_split(self, bucket_index: int, to_add: bytes) -> bool: method find_close_peers (line 221) | def find_close_peers(self, key: bytes, count: typing.Optional[int] = N... method get_peer (line 235) | def get_peer(self, contact_id: bytes) -> 'KademliaPeer': method get_refresh_list (line 238) | def get_refresh_list(self, start_index: int = 0, force: bool = False) ... method remove_peer (line 251) | def remove_peer(self, peer: 'KademliaPeer') -> None: method _kbucket_index (line 261) | def _kbucket_index(self, key: bytes) -> int: method _random_id_in_bucket_range (line 270) | def _random_id_in_bucket_range(self, bucket_index: int) -> bytes: method _midpoint_id_in_bucket_range (line 276) | def _midpoint_id_in_bucket_range(self, bucket_index: int) -> bytes: method _split_bucket (line 282) | def _split_bucket(self, old_bucket_index: int) -> None: method _join_buckets (line 307) | def _join_buckets(self): method buckets_with_contacts (line 332) | def buckets_with_contacts(self) -> int: method add_peer (line 339) | async def add_peer(self, peer: 'KademliaPeer', probe: typing.Callable[... FILE: lbry/dht/serialization/bencoding.py function _bencode (line 5) | def _bencode(data: typing.Union[int, bytes, bytearray, str, list, tuple,... function _bdecode (line 28) | def _bdecode(data: bytes, start_index: int = 0) -> typing.Tuple[typing.U... function bencode (line 58) | def bencode(data: typing.Dict) -> bytes: function bdecode (line 64) | def bdecode(data: bytes, allow_non_dict_return: typing.Optional[bool] = ... FILE: lbry/dht/serialization/datagram.py class KademliaDatagramBase (line 18) | class KademliaDatagramBase: method __init__ (line 33) | def __init__(self, packet_type: int, rpc_id: bytes, node_id: bytes): method bencode (line 44) | def bencode(self) -> bytes: class RequestDatagram (line 55) | class RequestDatagram(KademliaDatagramBase): method __init__ (line 66) | def __init__(self, packet_type: int, rpc_id: bytes, node_id: bytes, me... method make_ping (line 79) | def make_ping(cls, from_node_id: bytes, rpc_id: typing.Optional[bytes]... method make_store (line 84) | def make_store(cls, from_node_id: bytes, blob_hash: bytes, token: byte... method make_find_node (line 97) | def make_find_node(cls, from_node_id: bytes, key: bytes, method make_find_value (line 105) | def make_find_value(cls, from_node_id: bytes, key: bytes, class ResponseDatagram (line 115) | class ResponseDatagram(KademliaDatagramBase): method __init__ (line 125) | def __init__(self, packet_type: int, rpc_id: bytes, node_id: bytes, re... class ErrorDatagram (line 130) | class ErrorDatagram(KademliaDatagramBase): method __init__ (line 141) | def __init__(self, packet_type: int, rpc_id: bytes, node_id: bytes, ex... function _decode_datagram (line 147) | def _decode_datagram(datagram: bytes): function decode_datagram (line 176) | def decode_datagram(datagram: bytes) -> typing.Union[RequestDatagram, Re... function make_compact_ip (line 181) | def make_compact_ip(address: str) -> bytearray: function make_compact_address (line 188) | def make_compact_address(node_id: bytes, address: str, port: int) -> byt... function decode_compact_address (line 197) | def decode_compact_address(compact_address: bytes) -> typing.Tuple[bytes... FILE: lbry/error/__init__.py class UserInputError (line 4) | class UserInputError(BaseError): class CommandError (line 10) | class CommandError(UserInputError): class CommandDoesNotExistError (line 16) | class CommandDoesNotExistError(CommandError): method __init__ (line 18) | def __init__(self, command): class CommandDeprecatedError (line 23) | class CommandDeprecatedError(CommandError): method __init__ (line 25) | def __init__(self, command): class CommandInvalidArgumentError (line 30) | class CommandInvalidArgumentError(CommandError): method __init__ (line 32) | def __init__(self, argument, command): class CommandTemporarilyUnavailableError (line 38) | class CommandTemporarilyUnavailableError(CommandError): method __init__ (line 43) | def __init__(self, command): class CommandPermanentlyUnavailableError (line 48) | class CommandPermanentlyUnavailableError(CommandError): method __init__ (line 53) | def __init__(self, command): class InputValueError (line 58) | class InputValueError(UserInputError, ValueError): class GenericInputValueError (line 64) | class GenericInputValueError(InputValueError): method __init__ (line 66) | def __init__(self, value, argument): class InputValueIsNoneError (line 72) | class InputValueIsNoneError(InputValueError): method __init__ (line 74) | def __init__(self, argument): class ConflictingInputValueError (line 79) | class ConflictingInputValueError(InputValueError): method __init__ (line 81) | def __init__(self, first_argument, second_argument): class InputStringIsBlankError (line 87) | class InputStringIsBlankError(InputValueError): method __init__ (line 89) | def __init__(self, argument): class EmptyPublishedFileError (line 94) | class EmptyPublishedFileError(InputValueError): method __init__ (line 96) | def __init__(self, file_path): class MissingPublishedFileError (line 101) | class MissingPublishedFileError(InputValueError): method __init__ (line 103) | def __init__(self, file_path): class InvalidStreamURLError (line 108) | class InvalidStreamURLError(InputValueError): method __init__ (line 113) | def __init__(self, url): class ConfigurationError (line 118) | class ConfigurationError(BaseError): class ConfigWriteError (line 124) | class ConfigWriteError(ConfigurationError): method __init__ (line 129) | def __init__(self, path): class ConfigReadError (line 134) | class ConfigReadError(ConfigurationError): method __init__ (line 139) | def __init__(self, path): class ConfigParseError (line 144) | class ConfigParseError(ConfigurationError): method __init__ (line 149) | def __init__(self, path): class ConfigMissingError (line 154) | class ConfigMissingError(ConfigurationError): method __init__ (line 156) | def __init__(self, path): class ConfigInvalidError (line 161) | class ConfigInvalidError(ConfigurationError): method __init__ (line 163) | def __init__(self, path): class NetworkError (line 168) | class NetworkError(BaseError): class NoInternetError (line 174) | class NoInternetError(NetworkError): method __init__ (line 176) | def __init__(self): class NoUPnPSupportError (line 180) | class NoUPnPSupportError(NetworkError): method __init__ (line 182) | def __init__(self): class WalletError (line 186) | class WalletError(BaseError): class TransactionRejectedError (line 192) | class TransactionRejectedError(WalletError): method __init__ (line 194) | def __init__(self): class TransactionFeeTooLowError (line 198) | class TransactionFeeTooLowError(WalletError): method __init__ (line 200) | def __init__(self): class TransactionInvalidSignatureError (line 204) | class TransactionInvalidSignatureError(WalletError): method __init__ (line 206) | def __init__(self): class InsufficientFundsError (line 210) | class InsufficientFundsError(WalletError): method __init__ (line 216) | def __init__(self): class ChannelKeyNotFoundError (line 220) | class ChannelKeyNotFoundError(WalletError): method __init__ (line 222) | def __init__(self): class ChannelKeyInvalidError (line 226) | class ChannelKeyInvalidError(WalletError): method __init__ (line 231) | def __init__(self): class DataDownloadError (line 235) | class DataDownloadError(WalletError): method __init__ (line 237) | def __init__(self): class PrivateKeyNotFoundError (line 241) | class PrivateKeyNotFoundError(WalletError): method __init__ (line 243) | def __init__(self, key, value): class ResolveError (line 249) | class ResolveError(WalletError): method __init__ (line 251) | def __init__(self, url): class ResolveTimeoutError (line 256) | class ResolveTimeoutError(WalletError): method __init__ (line 258) | def __init__(self, url): class ResolveCensoredError (line 263) | class ResolveCensoredError(WalletError): method __init__ (line 265) | def __init__(self, url, censor_id, censor_row): class KeyFeeAboveMaxAllowedError (line 272) | class KeyFeeAboveMaxAllowedError(WalletError): method __init__ (line 274) | def __init__(self, message): class InvalidPasswordError (line 279) | class InvalidPasswordError(WalletError): method __init__ (line 281) | def __init__(self): class IncompatibleWalletServerError (line 285) | class IncompatibleWalletServerError(WalletError): method __init__ (line 287) | def __init__(self, server, port): class TooManyClaimSearchParametersError (line 293) | class TooManyClaimSearchParametersError(WalletError): method __init__ (line 295) | def __init__(self, key, limit): class AlreadyPurchasedError (line 301) | class AlreadyPurchasedError(WalletError): method __init__ (line 306) | def __init__(self, claim_id_hex): class ServerPaymentInvalidAddressError (line 311) | class ServerPaymentInvalidAddressError(WalletError): method __init__ (line 313) | def __init__(self, address): class ServerPaymentWalletLockedError (line 318) | class ServerPaymentWalletLockedError(WalletError): method __init__ (line 320) | def __init__(self): class ServerPaymentFeeAboveMaxAllowedError (line 324) | class ServerPaymentFeeAboveMaxAllowedError(WalletError): method __init__ (line 326) | def __init__(self, daily_fee, max_fee): class WalletNotLoadedError (line 332) | class WalletNotLoadedError(WalletError): method __init__ (line 334) | def __init__(self, wallet_id): class WalletAlreadyLoadedError (line 339) | class WalletAlreadyLoadedError(WalletError): method __init__ (line 341) | def __init__(self, wallet_path): class WalletNotFoundError (line 346) | class WalletNotFoundError(WalletError): method __init__ (line 348) | def __init__(self, wallet_path): class WalletAlreadyExistsError (line 353) | class WalletAlreadyExistsError(WalletError): method __init__ (line 355) | def __init__(self, wallet_path): class BlobError (line 360) | class BlobError(BaseError): class BlobNotFoundError (line 366) | class BlobNotFoundError(BlobError): method __init__ (line 368) | def __init__(self): class BlobPermissionDeniedError (line 372) | class BlobPermissionDeniedError(BlobError): method __init__ (line 374) | def __init__(self): class BlobTooBigError (line 378) | class BlobTooBigError(BlobError): method __init__ (line 380) | def __init__(self): class BlobEmptyError (line 384) | class BlobEmptyError(BlobError): method __init__ (line 386) | def __init__(self): class BlobFailedDecryptionError (line 390) | class BlobFailedDecryptionError(BlobError): method __init__ (line 392) | def __init__(self): class CorruptBlobError (line 396) | class CorruptBlobError(BlobError): method __init__ (line 398) | def __init__(self): class BlobFailedEncryptionError (line 402) | class BlobFailedEncryptionError(BlobError): method __init__ (line 404) | def __init__(self): class DownloadCancelledError (line 408) | class DownloadCancelledError(BlobError): method __init__ (line 410) | def __init__(self): class DownloadSDTimeoutError (line 414) | class DownloadSDTimeoutError(BlobError): method __init__ (line 416) | def __init__(self, download): class DownloadDataTimeoutError (line 421) | class DownloadDataTimeoutError(BlobError): method __init__ (line 423) | def __init__(self, download): class InvalidStreamDescriptorError (line 428) | class InvalidStreamDescriptorError(BlobError): method __init__ (line 430) | def __init__(self, message): class InvalidDataError (line 435) | class InvalidDataError(BlobError): method __init__ (line 437) | def __init__(self, message): class InvalidBlobHashError (line 442) | class InvalidBlobHashError(BlobError): method __init__ (line 444) | def __init__(self, message): class ComponentError (line 449) | class ComponentError(BaseError): class ComponentStartConditionNotMetError (line 455) | class ComponentStartConditionNotMetError(ComponentError): method __init__ (line 457) | def __init__(self, components): class ComponentsNotStartedError (line 462) | class ComponentsNotStartedError(ComponentError): method __init__ (line 464) | def __init__(self, message): class CurrencyExchangeError (line 469) | class CurrencyExchangeError(BaseError): class InvalidExchangeRateResponseError (line 475) | class InvalidExchangeRateResponseError(CurrencyExchangeError): method __init__ (line 477) | def __init__(self, source, reason): class CurrencyConversionError (line 483) | class CurrencyConversionError(CurrencyExchangeError): method __init__ (line 485) | def __init__(self, message): class InvalidCurrencyError (line 490) | class InvalidCurrencyError(CurrencyExchangeError): method __init__ (line 492) | def __init__(self, currency): FILE: lbry/error/base.py function claim_id (line 4) | def claim_id(claim_hash): class BaseError (line 8) | class BaseError(Exception): FILE: lbry/error/generate.py class ErrorClass (line 23) | class ErrorClass: method __init__ (line 25) | def __init__(self, hierarchy, name, message): method is_leaf (line 42) | def is_leaf(self): method code (line 46) | def code(self): method parent_codes (line 50) | def parent_codes(self): method get_arguments (line 53) | def get_arguments(self): method get_fields (line 64) | def get_fields(args): method get_doc_string (line 70) | def get_doc_string(doc): method render (line 75) | def render(self, out, parent): function get_errors (line 95) | def get_errors(): function find_parent (line 110) | def find_parent(stack, child): function generate (line 117) | def generate(out): function analyze (line 127) | def analyze(): function main (line 156) | def main(): FILE: lbry/extras/cli.py function display (line 23) | def display(data): function execute_command (line 27) | async def execute_command(conf, method, params, callback=display): function normalize_value (line 44) | def normalize_value(x, key=None): function remove_brackets (line 58) | def remove_brackets(key): function set_kwargs (line 64) | def set_kwargs(parsed_args): function split_subparser_argument (line 78) | def split_subparser_argument(parent, original, name, condition): class ArgumentParser (line 94) | class ArgumentParser(argparse.ArgumentParser): method __init__ (line 95) | def __init__(self, *args, group_name=None, **kwargs): method format_help (line 112) | def format_help(self): method _granular_action_groups (line 130) | def _granular_action_groups(self): method error (line 143) | def error(self, message): class HelpFormatter (line 148) | class HelpFormatter(argparse.HelpFormatter): method add_usage (line 150) | def add_usage(self, usage, actions, groups, prefix='Usage: '): function add_command_parser (line 156) | def add_command_parser(parent, command): function get_argument_parser (line 169) | def get_argument_parser(): function ensure_directory_exists (line 226) | def ensure_directory_exists(path: str): function setup_logging (line 237) | def setup_logging(logger: logging.Logger, args: argparse.Namespace, conf... function run_daemon (line 261) | def run_daemon(args: argparse.Namespace, conf: Config): function main (line 291) | def main(argv=None): FILE: lbry/extras/daemon/analytics.py function _event_properties (line 36) | def _event_properties(installation_id: str, session_id: str, function _download_properties (line 46) | def _download_properties(conf: Config, external_ip: str, resolve_duratio... function _make_context (line 88) | def _make_context(platform): class AnalyticsManager (line 108) | class AnalyticsManager: method __init__ (line 109) | def __init__(self, conf: Config, installation_id: str, session_id: str): method enabled (line 122) | def enabled(self): method is_started (line 126) | def is_started(self): method start (line 129) | async def start(self): method run (line 133) | async def run(self): method stop (line 140) | def stop(self): method _post (line 144) | async def _post(self, data: typing.Dict): method track (line 159) | async def track(self, event: typing.Dict): method send_upnp_setup_success_fail (line 165) | async def send_upnp_setup_success_fail(self, success, status): method send_disk_space_used (line 173) | async def send_disk_space_used(self, storage_used, storage_limit, is_f... method send_server_startup (line 182) | async def send_server_startup(self): method send_server_startup_success (line 185) | async def send_server_startup_success(self): method send_server_startup_error (line 188) | async def send_server_startup_error(self, message): method send_time_to_first_bytes (line 191) | async def send_time_to_first_bytes(self, resolve_duration: typing.Opti... method send_download_finished (line 213) | async def send_download_finished(self, download_id, name, sd_hash): method send_claim_action (line 224) | async def send_claim_action(self, action): method send_new_channel (line 227) | async def send_new_channel(self): method send_credits_sent (line 230) | async def send_credits_sent(self): method _send_heartbeat (line 233) | async def _send_heartbeat(self): method _event (line 236) | def _event(self, event, properties: typing.Optional[typing.Dict] = None): FILE: lbry/extras/daemon/client.py function daemon_rpc (line 5) | def daemon_rpc(conf: Config, method: str, **kwargs): FILE: lbry/extras/daemon/component.py class ComponentType (line 9) | class ComponentType(type): method __new__ (line 10) | def __new__(mcs, name, bases, newattrs): class Component (line 17) | class Component(metaclass=ComponentType): method __init__ (line 28) | def __init__(self, component_manager): method __lt__ (line 33) | def __lt__(self, other): method running (line 37) | def running(self): method get_status (line 40) | async def get_status(self): # pylint: disable=no-self-use method start (line 43) | async def start(self): method stop (line 46) | async def stop(self): method component (line 50) | def component(self): method _setup (line 53) | async def _setup(self): method _stop (line 65) | async def _stop(self): FILE: lbry/extras/daemon/componentmanager.py class RegisteredConditions (line 10) | class RegisteredConditions: class RequiredConditionType (line 14) | class RequiredConditionType(type): method __new__ (line 15) | def __new__(mcs, name, bases, newattrs): class RequiredCondition (line 24) | class RequiredCondition(metaclass=RequiredConditionType): method evaluate (line 30) | def evaluate(component): class ComponentManager (line 34) | class ComponentManager: method __init__ (line 37) | def __init__(self, conf: Config, analytics_manager=None, skip_componen... method evaluate_condition (line 60) | def evaluate_condition(self, condition_name): method sort_components (line 72) | def sort_components(self, reverse=False): method start (line 114) | async def start(self): method stop (line 124) | async def stop(self): method all_components_running (line 136) | def all_components_running(self, *component_names): method get_components_status (line 150) | def get_components_status(self): method get_actual_component (line 161) | def get_actual_component(self, component_name): method get_component (line 167) | def get_component(self, component_name): method has_component (line 170) | def has_component(self, component_name): FILE: lbry/extras/daemon/components.py class DatabaseComponent (line 53) | class DatabaseComponent(Component): method __init__ (line 56) | def __init__(self, component_manager): method component (line 61) | def component(self): method get_current_db_revision (line 65) | def get_current_db_revision(): method revision_filename (line 69) | def revision_filename(self): method _write_db_revision_file (line 72) | def _write_db_revision_file(self, version_num): method start (line 76) | async def start(self): method stop (line 106) | async def stop(self): class WalletComponent (line 111) | class WalletComponent(Component): method __init__ (line 115) | def __init__(self, component_manager): method component (line 120) | def component(self): method get_status (line 123) | async def get_status(self): method start (line 168) | async def start(self): method stop (line 173) | async def stop(self): class WalletServerPaymentsComponent (line 178) | class WalletServerPaymentsComponent(Component): method __init__ (line 182) | def __init__(self, component_manager): method component (line 189) | def component(self) -> typing.Optional[WalletServerPayer]: method start (line 192) | async def start(self): method stop (line 196) | async def stop(self): method get_status (line 199) | async def get_status(self): class BlobComponent (line 206) | class BlobComponent(Component): method __init__ (line 210) | def __init__(self, component_manager): method component (line 215) | def component(self) -> typing.Optional[BlobManager]: method start (line 218) | async def start(self): method stop (line 231) | async def stop(self): method get_status (line 234) | async def get_status(self): class DHTComponent (line 244) | class DHTComponent(Component): method __init__ (line 248) | def __init__(self, component_manager): method component (line 255) | def component(self) -> typing.Optional[Node]: method get_status (line 258) | async def get_status(self): method get_node_id (line 264) | def get_node_id(self): method start (line 274) | async def start(self): method stop (line 302) | async def stop(self): class HashAnnouncerComponent (line 306) | class HashAnnouncerComponent(Component): method __init__ (line 310) | def __init__(self, component_manager): method component (line 315) | def component(self) -> typing.Optional[BlobAnnouncer]: method start (line 318) | async def start(self): method stop (line 325) | async def stop(self): method get_status (line 329) | async def get_status(self): class FileManagerComponent (line 335) | class FileManagerComponent(Component): method __init__ (line 339) | def __init__(self, component_manager): method component (line 344) | def component(self) -> typing.Optional[FileManager]: method get_status (line 347) | async def get_status(self): method start (line 354) | async def start(self): method stop (line 376) | async def stop(self): class BackgroundDownloaderComponent (line 380) | class BackgroundDownloaderComponent(Component): method __init__ (line 385) | def __init__(self, component_manager): method is_busy (line 397) | def is_busy(self): method component (line 401) | def component(self) -> 'BackgroundDownloaderComponent': method get_status (line 404) | async def get_status(self): method download_blobs_in_background (line 409) | async def download_blobs_in_background(self): method _download_next_close_blob_hash (line 416) | def _download_next_close_blob_hash(self): method start (line 425) | async def start(self): method stop (line 435) | async def stop(self): class DiskSpaceComponent (line 442) | class DiskSpaceComponent(Component): method __init__ (line 446) | def __init__(self, component_manager): method component (line 451) | def component(self) -> typing.Optional[DiskSpaceManager]: method get_status (line 454) | async def get_status(self): method start (line 466) | async def start(self): method stop (line 475) | async def stop(self): class TorrentComponent (line 479) | class TorrentComponent(Component): method __init__ (line 482) | def __init__(self, component_manager): method component (line 487) | def component(self) -> typing.Optional[TorrentSession]: method get_status (line 490) | async def get_status(self): method start (line 497) | async def start(self): method stop (line 501) | async def stop(self): class PeerProtocolServerComponent (line 506) | class PeerProtocolServerComponent(Component): method __init__ (line 510) | def __init__(self, component_manager): method component (line 515) | def component(self) -> typing.Optional[BlobServer]: method start (line 518) | async def start(self): method stop (line 528) | async def stop(self): class UPnPComponent (line 533) | class UPnPComponent(Component): method __init__ (line 536) | def __init__(self, component_manager): method component (line 547) | def component(self) -> 'UPnPComponent': method _repeatedly_maintain_redirects (line 550) | async def _repeatedly_maintain_redirects(self, now=True): method _maintain_redirects (line 556) | async def _maintain_redirects(self): method start (line 636) | async def start(self): method stop (line 669) | async def stop(self): method get_status (line 678) | async def get_status(self): class ExchangeRateManagerComponent (line 689) | class ExchangeRateManagerComponent(Component): method __init__ (line 692) | def __init__(self, component_manager): method component (line 697) | def component(self) -> ExchangeRateManager: method start (line 700) | async def start(self): method stop (line 703) | async def stop(self): class TrackerAnnouncerComponent (line 707) | class TrackerAnnouncerComponent(Component): method __init__ (line 711) | def __init__(self, component_manager): method component (line 718) | def component(self): method running (line 722) | def running(self): method announce_forever (line 725) | async def announce_forever(self): method start (line 736) | async def start(self): method stop (line 745) | async def stop(self): FILE: lbry/extras/daemon/daemon.py function is_transactional_function (line 94) | def is_transactional_function(name): function requires (line 100) | def requires(*components, **conditions): function deprecated (line 124) | def deprecated(new_command=None): function encode_pagination_doc (line 155) | def encode_pagination_doc(items): function paginate_rows (line 165) | async def paginate_rows(get_records: Callable, get_record_count: Optiona... function paginate_list (line 182) | def paginate_list(items: List, page: Optional[int], page_size: Optional[... class DHTHasContacts (line 201) | class DHTHasContacts(RequiredCondition): method evaluate (line 207) | def evaluate(component): class JSONRPCError (line 211) | class JSONRPCError: method __init__ (line 240) | def __init__(self, code: int, message: str, data: dict = None): method to_dict (line 248) | def to_dict(self): method filter_traceback (line 256) | def filter_traceback(traceback): method create_command_exception (line 268) | def create_command_exception(cls, command, args, kwargs, exception, tr... class UnknownAPIMethodError (line 282) | class UnknownAPIMethodError(Exception): function jsonrpc_dumps_pretty (line 286) | def jsonrpc_dumps_pretty(obj, **kwargs): function trap (line 294) | def trap(err, *to_trap): class JSONRPCServerType (line 298) | class JSONRPCServerType(type): method __new__ (line 299) | def __new__(mcs, name, bases, newattrs): class Daemon (line 319) | class Daemon(metaclass=JSONRPCServerType): method __init__ (line 348) | def __init__(self, conf: Config, component_manager: typing.Optional[Co... method dht_node (line 381) | def dht_node(self) -> typing.Optional['Node']: method wallet_manager (line 385) | def wallet_manager(self) -> typing.Optional['WalletManager']: method storage (line 389) | def storage(self) -> typing.Optional['SQLiteStorage']: method file_manager (line 393) | def file_manager(self) -> typing.Optional['FileManager']: method exchange_rate_manager (line 397) | def exchange_rate_manager(self) -> typing.Optional['ExchangeRateManage... method blob_manager (line 401) | def blob_manager(self) -> typing.Optional['BlobManager']: method disk_space_manager (line 405) | def disk_space_manager(self) -> typing.Optional['DiskSpaceManager']: method upnp (line 409) | def upnp(self) -> typing.Optional['UPnPComponent']: method get_api_definitions (line 413) | def get_api_definitions(cls): method db_revision_file_path (line 457) | def db_revision_file_path(self): method installation_id (line 461) | def installation_id(self): method ensure_data_dir (line 473) | def ensure_data_dir(self): method ensure_wallet_dir (line 480) | def ensure_wallet_dir(self): method ensure_download_dir (line 484) | def ensure_download_dir(self): method start (line 488) | async def start(self): method initialize (line 541) | async def initialize(self): method stop (line 550) | async def stop(self): method add_cors_headers (line 573) | async def add_cors_headers(self, request): method handle_old_jsonrpc (line 584) | async def handle_old_jsonrpc(self, request): method handle_metrics_get_request (line 618) | async def handle_metrics_get_request(request: web.Request): method handle_stream_get_request (line 628) | async def handle_stream_get_request(self, request: web.Request): method handle_stream_range_request (line 645) | async def handle_stream_range_request(self, request: web.Request): method _handle_stream_range_request (line 661) | async def _handle_stream_range_request(self, request: web.Request): method _process_rpc_call (line 669) | async def _process_rpc_call(self, data): method _verify_method_is_callable (line 743) | def _verify_method_is_callable(self, function_path): method _get_jsonrpc_method (line 747) | def _get_jsonrpc_method(self, function_path): method _check_params (line 757) | def _check_params(function, args_tup, args_dict): method ledger (line 789) | def ledger(self) -> Optional['Ledger']: method get_est_cost_from_uri (line 795) | async def get_est_cost_from_uri(self, uri: str) -> typing.Optional[flo... method jsonrpc_stop (line 825) | def jsonrpc_stop(self): # pylint: disable=no-self-use method jsonrpc_ffmpeg_find (line 846) | async def jsonrpc_ffmpeg_find(self): method jsonrpc_status (line 866) | async def jsonrpc_status(self): method jsonrpc_version (line 977) | def jsonrpc_version(self): # pylint: disable=no-self-use method jsonrpc_resolve (line 1002) | async def jsonrpc_resolve(self, urls: typing.Union[str, list], wallet_... method jsonrpc_get (line 1113) | async def jsonrpc_get( method jsonrpc_settings_get (line 1154) | def jsonrpc_settings_get(self): method jsonrpc_settings_set (line 1170) | def jsonrpc_settings_set(self, key, value): method jsonrpc_settings_clear (line 1191) | def jsonrpc_settings_clear(self, key): method jsonrpc_preference_get (line 1212) | def jsonrpc_preference_get(self, key=None, wallet_id=None): method jsonrpc_preference_set (line 1233) | def jsonrpc_preference_set(self, key, value, wallet_id=None): method jsonrpc_wallet_list (line 1260) | def jsonrpc_wallet_list(self, wallet_id=None, page=None, page_size=None): method jsonrpc_wallet_reconnect (line 1278) | def jsonrpc_wallet_reconnect(self): method jsonrpc_wallet_create (line 1292) | async def jsonrpc_wallet_create( method jsonrpc_wallet_export (line 1332) | async def jsonrpc_wallet_export(self, password=None, wallet_id=None): method jsonrpc_wallet_import (line 1355) | async def jsonrpc_wallet_import(self, data, password=None, wallet_id=N... method jsonrpc_wallet_add (line 1391) | async def jsonrpc_wallet_add(self, wallet_id): method jsonrpc_wallet_remove (line 1416) | async def jsonrpc_wallet_remove(self, wallet_id): method jsonrpc_wallet_balance (line 1435) | async def jsonrpc_wallet_balance(self, wallet_id=None, confirmations=0): method jsonrpc_wallet_status (line 1456) | def jsonrpc_wallet_status(self, wallet_id=None): method jsonrpc_wallet_unlock (line 1479) | def jsonrpc_wallet_unlock(self, password, wallet_id=None): method jsonrpc_wallet_lock (line 1496) | def jsonrpc_wallet_lock(self, wallet_id=None): method jsonrpc_wallet_decrypt (line 1512) | def jsonrpc_wallet_decrypt(self, wallet_id=None): method jsonrpc_wallet_encrypt (line 1528) | def jsonrpc_wallet_encrypt(self, new_password, wallet_id=None): method jsonrpc_wallet_send (line 1546) | async def jsonrpc_wallet_send( method jsonrpc_account_list (line 1610) | async def jsonrpc_account_list( method jsonrpc_account_balance (line 1646) | async def jsonrpc_account_balance(self, account_id=None, wallet_id=Non... method jsonrpc_account_add (line 1672) | async def jsonrpc_account_add( method jsonrpc_account_create (line 1712) | async def jsonrpc_account_create(self, account_name, single_key=False,... method jsonrpc_account_remove (line 1740) | def jsonrpc_account_remove(self, account_id, wallet_id=None): method jsonrpc_account_set (line 1760) | def jsonrpc_account_set( method jsonrpc_account_max_address_gap (line 1818) | def jsonrpc_account_max_address_gap(self, account_id, wallet_id=None): method jsonrpc_account_fund (line 1840) | def jsonrpc_account_fund(self, to_account=None, from_account=None, amo... method jsonrpc_account_deposit (line 1882) | async def jsonrpc_account_deposit( method jsonrpc_account_send (line 1924) | def jsonrpc_account_send(self, amount, addresses, account_id=None, wal... method jsonrpc_sync_hash (line 1951) | def jsonrpc_sync_hash(self, wallet_id=None): method jsonrpc_sync_apply (line 1968) | async def jsonrpc_sync_apply(self, password, data=None, wallet_id=None... method jsonrpc_address_is_mine (line 2022) | async def jsonrpc_address_is_mine(self, address, account_id=None, wall... method jsonrpc_address_list (line 2046) | def jsonrpc_address_list(self, address=None, account_id=None, wallet_i... method jsonrpc_address_unused (line 2080) | def jsonrpc_address_unused(self, account_id=None, wallet_id=None): method jsonrpc_file_list (line 2102) | async def jsonrpc_file_list(self, sort=None, reverse=False, comparison... method jsonrpc_file_set_status (line 2168) | async def jsonrpc_file_set_status(self, status, **kwargs): method jsonrpc_file_delete (line 2213) | async def jsonrpc_file_delete(self, delete_from_download_dir=False, de... method jsonrpc_file_save (line 2267) | async def jsonrpc_file_save(self, file_name=None, download_directory=N... method jsonrpc_purchase_list (line 2312) | def jsonrpc_purchase_list( method jsonrpc_purchase_create (line 2347) | async def jsonrpc_purchase_create( method jsonrpc_claim_list (line 2407) | def jsonrpc_claim_list(self, claim_type=None, **kwargs): method jsonrpc_support_sum (line 2444) | async def jsonrpc_support_sum(self, claim_id, new_sdk_server, include_... method jsonrpc_claim_search (line 2480) | async def jsonrpc_claim_search(self, **kwargs): method jsonrpc_channel_new (line 2663) | def jsonrpc_channel_new(self): method jsonrpc_channel_create (line 2667) | async def jsonrpc_channel_create( method jsonrpc_channel_update (line 2787) | async def jsonrpc_channel_update( method jsonrpc_channel_sign (line 2946) | async def jsonrpc_channel_sign( method jsonrpc_channel_abandon (line 2988) | async def jsonrpc_channel_abandon( method jsonrpc_channel_list (line 3049) | def jsonrpc_channel_list(self, *args, **kwargs): method jsonrpc_channel_export (line 3078) | async def jsonrpc_channel_export(self, channel_id=None, channel_name=N... method jsonrpc_channel_import (line 3114) | async def jsonrpc_channel_import(self, channel_data, wallet_id=None): method jsonrpc_publish (line 3177) | async def jsonrpc_publish(self, name, **kwargs): method jsonrpc_stream_repost (line 3302) | async def jsonrpc_stream_repost( method jsonrpc_stream_create (line 3382) | async def jsonrpc_stream_create( method jsonrpc_stream_update (line 3553) | async def jsonrpc_stream_update( method jsonrpc_stream_abandon (line 3790) | async def jsonrpc_stream_abandon( method jsonrpc_stream_list (line 3851) | def jsonrpc_stream_list(self, *args, **kwargs): method jsonrpc_stream_cost_estimate (line 3881) | def jsonrpc_stream_cost_estimate(self, uri): method jsonrpc_collection_create (line 3902) | async def jsonrpc_collection_create( method jsonrpc_collection_update (line 4023) | async def jsonrpc_collection_update( method jsonrpc_collection_abandon (line 4179) | async def jsonrpc_collection_abandon(self, *args, **kwargs): method jsonrpc_collection_list (line 4203) | def jsonrpc_collection_list( method jsonrpc_collection_resolve (line 4236) | async def jsonrpc_collection_resolve( method jsonrpc_support_create (line 4287) | async def jsonrpc_support_create( method jsonrpc_support_list (line 4356) | def jsonrpc_support_list(self, *args, received=False, sent=False, stak... method jsonrpc_support_abandon (line 4400) | async def jsonrpc_support_abandon( method jsonrpc_transaction_list (line 4479) | def jsonrpc_transaction_list(self, account_id=None, wallet_id=None, pa... method jsonrpc_transaction_show (line 4552) | def jsonrpc_transaction_show(self, txid): method _constrain_txo_from_kwargs (line 4571) | def _constrain_txo_from_kwargs( method jsonrpc_txo_list (line 4610) | def jsonrpc_txo_list( method jsonrpc_txo_spend (line 4687) | async def jsonrpc_txo_spend( method jsonrpc_txo_sum (line 4748) | def jsonrpc_txo_sum(self, account_id=None, wallet_id=None, **kwargs): method jsonrpc_txo_plot (line 4795) | async def jsonrpc_txo_plot( method jsonrpc_utxo_list (line 4862) | def jsonrpc_utxo_list(self, *args, **kwargs): method jsonrpc_utxo_release (line 4883) | async def jsonrpc_utxo_release(self, account_id=None, wallet_id=None): method jsonrpc_blob_get (line 4913) | async def jsonrpc_blob_get(self, blob_hash, timeout=None, read=False): method jsonrpc_blob_delete (line 4938) | async def jsonrpc_blob_delete(self, blob_hash): method jsonrpc_peer_list (line 4964) | async def jsonrpc_peer_list(self, blob_hash, page=None, page_size=None): method jsonrpc_blob_announce (line 5010) | async def jsonrpc_blob_announce(self, blob_hash=None, stream_hash=None... method jsonrpc_blob_list (line 5046) | async def jsonrpc_blob_list(self, uri=None, stream_hash=None, sd_hash=... method jsonrpc_blob_reflect (line 5096) | async def jsonrpc_blob_reflect(self, blob_hashes, reflector_server=None): method jsonrpc_blob_reflect_all (line 5113) | async def jsonrpc_blob_reflect_all(self): method jsonrpc_blob_clean (line 5130) | async def jsonrpc_blob_clean(self): method jsonrpc_file_reflect (line 5146) | async def jsonrpc_file_reflect(self, **kwargs): method jsonrpc_peer_ping (line 5183) | async def jsonrpc_peer_ping(self, node_id, address, port): method jsonrpc_routing_table_get (line 5208) | def jsonrpc_routing_table_get(self): method jsonrpc_tracemalloc_enable (line 5259) | def jsonrpc_tracemalloc_enable(self): # pylint: disable=no-self-use method jsonrpc_tracemalloc_disable (line 5275) | def jsonrpc_tracemalloc_disable(self): # pylint: disable=no-self-use method jsonrpc_tracemalloc_top (line 5291) | def jsonrpc_tracemalloc_top(self, items: int = 10): # pylint: disable... method broadcast_or_release (line 5335) | async def broadcast_or_release(self, tx, blocking=False): method valid_address_or_error (line 5338) | def valid_address_or_error(self, address, allow_script_address=False): method valid_stream_name_or_error (line 5348) | def valid_stream_name_or_error(name: str): method valid_collection_name_or_error (line 5366) | def valid_collection_name_or_error(name: str): method valid_channel_name_or_error (line 5385) | def valid_channel_name_or_error(name: str): method get_fee_address (line 5403) | def get_fee_address(self, kwargs: dict, claim_address: str) -> str: method get_receiving_address (line 5410) | async def get_receiving_address(self, address: str, account: Optional[... method get_channel_or_none (line 5416) | async def get_channel_or_none( method get_channel_or_error (line 5424) | async def get_channel_or_error( method get_dewies_or_error (line 5453) | def get_dewies_or_error(argument: str, lbc: str, positive_value=False): method resolve (line 5464) | async def resolve(self, accounts, urls, **kwargs): method _old_get_temp_claim_info (line 5477) | def _old_get_temp_claim_info(tx, txo, address, claim_dict, name): function loggly_time_string (line 5491) | def loggly_time_string(date): function get_loggly_query_string (line 5497) | def get_loggly_query_string(installation_id): FILE: lbry/extras/daemon/exchange_rate_manager.py class ExchangeRate (line 16) | class ExchangeRate: method __init__ (line 17) | def __init__(self, market, spot, ts): method __repr__ (line 26) | def __repr__(self): method as_dict (line 29) | def as_dict(self): class MarketFeed (line 33) | class MarketFeed: method __init__ (line 43) | def __init__(self): method has_rate (line 51) | def has_rate(self): method is_online (line 55) | def is_online(self): method get_rate_from_response (line 58) | def get_rate_from_response(self, json_response): method get_response (line 61) | async def get_response(self): method get_rate (line 74) | async def get_rate(self): method keep_updated (line 98) | async def keep_updated(self): method start (line 103) | def start(self): method stop (line 107) | def stop(self): class BaseBittrexFeed (line 114) | class BaseBittrexFeed(MarketFeed): method get_rate_from_response (line 120) | def get_rate_from_response(self, json_response): class BittrexBTCFeed (line 126) | class BittrexBTCFeed(BaseBittrexFeed): class BittrexUSDFeed (line 131) | class BittrexUSDFeed(BaseBittrexFeed): class BaseCoinExFeed (line 136) | class BaseCoinExFeed(MarketFeed): method get_rate_from_response (line 141) | def get_rate_from_response(self, json_response): class CoinExBTCFeed (line 149) | class CoinExBTCFeed(BaseCoinExFeed): class CoinExUSDFeed (line 154) | class CoinExUSDFeed(BaseCoinExFeed): class BaseHotbitFeed (line 159) | class BaseHotbitFeed(MarketFeed): method get_rate_from_response (line 164) | def get_rate_from_response(self, json_response): class HotbitBTCFeed (line 170) | class HotbitBTCFeed(BaseHotbitFeed): class HotbitUSDFeed (line 175) | class HotbitUSDFeed(BaseHotbitFeed): class UPbitBTCFeed (line 180) | class UPbitBTCFeed(MarketFeed): method get_rate_from_response (line 186) | def get_rate_from_response(self, json_response): class ExchangeRateManager (line 203) | class ExchangeRateManager: method __init__ (line 204) | def __init__(self, feeds=FEEDS): method wait (line 207) | def wait(self): method start (line 212) | def start(self): method stop (line 217) | def stop(self): method convert_currency (line 222) | def convert_currency(self, from_currency, to_currency, amount): method to_dewies (line 243) | def to_dewies(self, currency, amount) -> int: method fee_dict (line 247) | def fee_dict(self): FILE: lbry/extras/daemon/json_response_encoder.py function encode_txo_doc (line 21) | def encode_txo_doc(): function encode_tx_doc (line 49) | def encode_tx_doc(): function encode_account_doc (line 62) | def encode_account_doc(): function encode_wallet_doc (line 77) | def encode_wallet_doc(): function encode_file_doc (line 84) | def encode_file_doc(): class JSONResponseEncoder (line 119) | class JSONResponseEncoder(JSONEncoder): method __init__ (line 121) | def __init__(self, *args, ledger: Ledger, include_protobuf=False, **kw... method default (line 126) | def default(self, obj): # pylint: disable=method-hidden,arguments-ren... method encode_transaction (line 151) | def encode_transaction(self, tx): method encode_output (line 163) | def encode_output(self, txo, check_signature=True): method encode_claim_meta (line 248) | def encode_claim_meta(self, meta): method encode_input (line 257) | def encode_input(self, txi): method encode_account (line 263) | def encode_account(self, account): method encode_wallet (line 271) | def encode_wallet(wallet): method encode_file (line 277) | def encode_file(self, managed_stream): method encode_claim (line 355) | def encode_claim(self, claim): FILE: lbry/extras/daemon/migrator/dbmigrator.py function migrate_db (line 9) | def migrate_db(conf, start, end): function run_migration_script (line 65) | def run_migration_script(): FILE: lbry/extras/daemon/migrator/migrate10to11.py function do_migration (line 6) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate11to12.py function do_migration (line 6) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate12to13.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate13to14.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate14to15.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate15to16.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate1to2.py function do_migration (line 8) | def do_migration(conf): function migrate_blockchainname_db (line 14) | def migrate_blockchainname_db(db_dir): FILE: lbry/extras/daemon/migrator/migrate2to3.py function do_migration (line 8) | def do_migration(conf): function migrate_blockchainname_db (line 14) | def migrate_blockchainname_db(db_dir): FILE: lbry/extras/daemon/migrator/migrate3to4.py function do_migration (line 8) | def do_migration(conf): function migrate_blobs_db (line 14) | def migrate_blobs_db(db_dir): FILE: lbry/extras/daemon/migrator/migrate4to5.py function do_migration (line 8) | def do_migration(conf): function add_lbry_file_metadata (line 14) | def add_lbry_file_metadata(db_dir): FILE: lbry/extras/daemon/migrator/migrate5to6.py function run_operation (line 73) | def run_operation(db): function verify_sd_blob (line 88) | def verify_sd_blob(sd_hash, blob_dir): function do_migration (line 106) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate6to7.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate7to8.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/migrator/migrate8to9.py function do_migration (line 10) | def do_migration(conf): function delete_stream (line 37) | def delete_stream(transaction, stream_hash, sd_hash, blob_hashes, blob_d... FILE: lbry/extras/daemon/migrator/migrate9to10.py function do_migration (line 5) | def do_migration(conf): FILE: lbry/extras/daemon/security.py function ensure_request_allowed (line 7) | def ensure_request_allowed(request, conf): function is_request_allowed (line 25) | def is_request_allowed(request, conf) -> bool: FILE: lbry/extras/daemon/storage.py function calculate_effective_amount (line 24) | def calculate_effective_amount(amount: str, supports: typing.Optional[ty... class StoredContentClaim (line 30) | class StoredContentClaim: method __init__ (line 31) | def __init__(self, outpoint: Optional[str] = None, claim_id: Optional[... method txid (line 49) | def txid(self) -> typing.Optional[str]: method nout (line 53) | def nout(self) -> typing.Optional[int]: method as_dict (line 56) | def as_dict(self) -> typing.Dict: function _get_content_claims (line 72) | def _get_content_claims(transaction: sqlite3.Connection, query: str, function get_claims_from_stream_hashes (line 80) | def get_claims_from_stream_hashes(transaction: sqlite3.Connection, function get_claims_from_torrent_info_hashes (line 93) | def get_claims_from_torrent_info_hashes(transaction: sqlite3.Connection, function _batched_select (line 106) | def _batched_select(transaction, query, parameters, batch_size=900): function _get_lbry_file_stream_dict (line 113) | def _get_lbry_file_stream_dict(rowid, added_on, stream_hash, file_name, ... function get_all_lbry_files (line 137) | def get_all_lbry_files(transaction: sqlite3.Connection) -> typing.List[t... function store_stream (line 170) | def store_stream(transaction: sqlite3.Connection, sd_blob: 'BlobFile', d... function delete_stream (line 195) | def delete_stream(transaction: sqlite3.Connection, descriptor: 'StreamDe... function delete_torrent (line 205) | def delete_torrent(transaction: sqlite3.Connection, bt_infohash: str): function store_file (line 214) | def store_file(transaction: sqlite3.Connection, stream_hash: str, file_n... class SQLiteStorage (line 233) | class SQLiteStorage(SQLiteMixin): method __init__ (line 343) | def __init__(self, conf: Config, path, loop=None, time_getter: typing.... method run_and_return_one_or_none (line 350) | async def run_and_return_one_or_none(self, query, *args): method run_and_return_list (line 356) | async def run_and_return_list(self, query, *args): method add_blobs (line 362) | async def add_blobs(self, *blob_hashes_and_lengths: typing.Tuple[str, ... method get_blob_status (line 379) | def get_blob_status(self, blob_hash: str): method set_announce (line 384) | def set_announce(self, *blob_hashes): method update_last_announced_blobs (line 389) | def update_last_announced_blobs(self, blob_hashes: typing.List[str]): method should_single_announce_blobs (line 400) | def should_single_announce_blobs(self, blob_hashes, immediate=False): method get_blobs_to_announce (line 415) | def get_blobs_to_announce(self): method delete_blobs_from_db (line 436) | def delete_blobs_from_db(self, blob_hashes): method get_all_blob_hashes (line 443) | def get_all_blob_hashes(self): method get_stored_blobs (line 446) | async def get_stored_blobs(self, is_mine: bool, is_network_blob=False): method get_stored_blob_disk_usage (line 472) | async def get_stored_blob_disk_usage(self): method update_blob_ownership (line 494) | async def update_blob_ownership(self, sd_hash, is_mine: bool): method sync_missing_blobs (line 502) | def sync_missing_blobs(self, blob_files: typing.Set[str]) -> typing.Aw... method stream_exists (line 520) | async def stream_exists(self, sd_hash: str) -> bool: method file_exists (line 524) | async def file_exists(self, sd_hash: str) -> bool: method store_stream (line 530) | def store_stream(self, sd_blob: 'BlobFile', descriptor: 'StreamDescrip... method get_blobs_for_stream (line 533) | def get_blobs_for_stream(self, stream_hash, only_completed=False) -> t... method get_sd_blob_hash_for_stream (line 567) | def get_sd_blob_hash_for_stream(self, stream_hash): method get_stream_hash_for_sd_hash (line 572) | def get_stream_hash_for_sd_hash(self, sd_blob_hash): method delete_stream (line 577) | def delete_stream(self, descriptor: 'StreamDescriptor'): method delete_torrent (line 580) | async def delete_torrent(self, bt_infohash: str): method save_downloaded_file (line 585) | def save_downloaded_file(self, stream_hash: str, file_name: typing.Opt... method save_published_file (line 594) | def save_published_file(self, stream_hash: str, file_name: typing.Opti... method update_manually_removed_files_since_last_run (line 602) | async def update_manually_removed_files_since_last_run(self): method get_all_lbry_files (line 632) | def get_all_lbry_files(self) -> typing.Awaitable[typing.List[typing.Di... method change_file_status (line 635) | def change_file_status(self, stream_hash: str, new_status: str): method stop_all_files (line 639) | def stop_all_files(self): method change_file_download_dir_and_file_name (line 643) | async def change_file_download_dir_and_file_name(self, stream_hash: st... method save_content_fee (line 654) | async def save_content_fee(self, stream_hash: str, content_fee: Transa... method set_saved_file (line 659) | async def set_saved_file(self, stream_hash: str): method clear_saved_file (line 664) | async def clear_saved_file(self, stream_hash: str): method recover_streams (line 669) | async def recover_streams(self, descriptors_and_sds: typing.List[typin... method get_all_stream_hashes (line 695) | def get_all_stream_hashes(self): method save_supports (line 700) | def save_supports(self, claim_id_to_supports: dict): method get_supports (line 716) | def get_supports(self, *claim_ids): method save_claims (line 740) | async def save_claims(self, claim_infos): method save_claim_from_output (line 800) | def save_claim_from_output(self, ledger, *outputs: Output): method save_claims_for_resolve (line 813) | def save_claims_for_resolve(self, claim_infos): method _save_content_claim (line 826) | def _save_content_claim(transaction, claim_outpoint, stream_hash=None,... method save_content_claim (line 869) | async def save_content_claim(self, stream_hash, claim_outpoint): method save_torrent_content_claim (line 875) | async def save_torrent_content_claim(self, bt_infohash, claim_outpoint... method get_content_claim (line 888) | async def get_content_claim(self, stream_hash: str, include_supports: ... method get_content_claim_for_torrent (line 899) | async def get_content_claim_for_torrent(self, bt_infohash): method update_reflected_stream (line 905) | def update_reflected_stream(self, sd_hash, reflector_address, success=... method get_streams_to_re_reflect (line 916) | def get_streams_to_re_reflect(self): method get_persisted_kademlia_peers (line 925) | async def get_persisted_kademlia_peers(self) -> typing.List[typing.Tup... method save_kademlia_peers (line 929) | async def save_kademlia_peers(self, peers: typing.List['KademliaPeer']): FILE: lbry/extras/daemon/undecorated.py function undecorated (line 23) | def undecorated(o): function looks_like_a_decorator (line 61) | def looks_like_a_decorator(a): FILE: lbry/extras/system_info.py function get_platform (line 10) | def get_platform() -> dict: FILE: lbry/file/file_manager.py class FileManager (line 27) | class FileManager: method __init__ (line 28) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method streams (line 39) | def streams(self): method create_stream (line 42) | async def create_stream(self, file_path: str, key: Optional[bytes] = N... method start (line 47) | async def start(self): method stop (line 53) | async def stop(self): method download_from_uri (line 60) | async def download_from_uri(self, uri, exchange_rate_manager: 'Exchang... method stream_partial_content (line 291) | async def stream_partial_content(self, request: Request, sd_hash: str): method get_filtered (line 294) | def get_filtered(self, *args, **kwargs) -> typing.List[ManagedDownload... method delete (line 305) | async def delete(self, source: ManagedDownloadSource, delete_file=False): FILE: lbry/file/source.py class ManagedDownloadSource (line 19) | class ManagedDownloadSource: method __init__ (line 27) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method start (line 61) | async def start(self, timeout: Optional[float] = None, save_now: Optio... method stop (line 64) | async def stop(self, finished: bool = False): method save_file (line 67) | async def save_file(self, file_name: Optional[str] = None, download_di... method stop_tasks (line 70) | async def stop_tasks(self): method set_claim (line 73) | def set_claim(self, claim_info: typing.Dict, claim: 'Claim'): method file_name (line 87) | def file_name(self) -> Optional[str]: method added_on (line 91) | def added_on(self) -> Optional[int]: method status (line 95) | def status(self) -> str: method completed (line 99) | def completed(self): method finished (line 107) | def finished(self) -> bool: method running (line 111) | def running(self) -> bool: method claim_id (line 115) | def claim_id(self) -> Optional[str]: method txid (line 119) | def txid(self) -> Optional[str]: method nout (line 123) | def nout(self) -> Optional[int]: method outpoint (line 127) | def outpoint(self) -> Optional[str]: method claim_height (line 131) | def claim_height(self) -> Optional[int]: method channel_claim_id (line 135) | def channel_claim_id(self) -> Optional[str]: method channel_name (line 139) | def channel_name(self) -> Optional[str]: method claim_name (line 143) | def claim_name(self) -> Optional[str]: method metadata (line 147) | def metadata(self) -> Optional[typing.Dict]: method metadata_protobuf (line 151) | def metadata_protobuf(self) -> bytes: method full_path (line 156) | def full_path(self) -> Optional[str]: method output_file_exists (line 161) | def output_file_exists(self): FILE: lbry/file/source_manager.py class SourceManager (line 24) | class SourceManager: method __init__ (line 50) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method add (line 59) | def add(self, source: ManagedDownloadSource): method remove (line 62) | async def remove(self, source: ManagedDownloadSource): method initialize_from_database (line 68) | async def initialize_from_database(self): method start (line 71) | async def start(self): method stop (line 75) | async def stop(self): method create (line 81) | async def create(self, file_path: str, key: Optional[bytes] = None, method delete (line 85) | async def delete(self, source: ManagedDownloadSource, delete_file: Opt... method get_filtered (line 90) | def get_filtered(self, sort_by: Optional[str] = None, reverse: Optiona... FILE: lbry/file_analysis.py class VideoFileAnalyzer (line 19) | class VideoFileAnalyzer: method _replace_or_pop_env (line 21) | def _replace_or_pop_env(self, variable): method __init__ (line 27) | def __init__(self, conf: TranscodeConfig): method _execute (line 40) | def _execute(command, environment): method _execute_ffmpeg (line 55) | async def _execute_ffmpeg(self, arguments): method _execute_ffprobe (line 59) | async def _execute_ffprobe(self, arguments): method _verify_executables (line 63) | async def _verify_executables(self): method _which_ffmpeg_and_ffmprobe (line 78) | def _which_ffmpeg_and_ffmprobe(path): method _verify_ffmpeg_installed (line 81) | async def _verify_ffmpeg_installed(self): method status (line 104) | async def status(self, reset=False, recheck=False): method _verify_container (line 123) | def _verify_container(scan_data: json): method _verify_video_encoding (line 147) | def _verify_video_encoding(scan_data: json): method _verify_bitrate (line 163) | def _verify_bitrate(self, scan_data: json, file_path): method _verify_fast_start (line 181) | async def _verify_fast_start(self, scan_data: json, video_file): method _verify_audio_encoding (line 193) | def _verify_audio_encoding(scan_data: json): method _verify_audio_volume (line 207) | async def _verify_audio_volume(self, seconds, video_file): method _compute_crf (line 234) | def _compute_crf(scan_data): method _get_video_scaler (line 243) | def _get_video_scaler(self): method _get_video_encoder (line 246) | async def _get_video_encoder(self, scan_data): method _get_audio_encoder (line 277) | async def _get_audio_encoder(self, extension): method _get_best_container_extension (line 310) | def _get_best_container_extension(scan_data, video_encoder): method _get_scan_data (line 334) | async def _get_scan_data(self, validate, file_path): method _build_spec (line 354) | def _build_spec(scan_data): method verify_or_repair (line 375) | async def verify_or_repair(self, validate, repair, file_path, ignore_n... FILE: lbry/prometheus.py function get_loop_metrics (line 16) | def get_loop_metrics(delay=1): class PrometheusServer (line 34) | class PrometheusServer: method __init__ (line 35) | def __init__(self, logger=None): method start (line 40) | async def start(self, interface: str, port: int): method handle_metrics_get_request (line 54) | async def handle_metrics_get_request(self, request: web.Request): method stop (line 64) | async def stop(self): FILE: lbry/schema/attrs.py function calculate_sha384_file_hash (line 28) | def calculate_sha384_file_hash(file_path): function country_int_to_str (line 36) | def country_int_to_str(country: int) -> str: function country_str_to_int (line 41) | def country_str_to_int(country: str) -> int: class Dimmensional (line 47) | class Dimmensional(Metadata): method width (line 52) | def width(self) -> int: method width (line 56) | def width(self, width: int): method height (line 60) | def height(self) -> int: method height (line 64) | def height(self, height: int): method dimensions (line 68) | def dimensions(self) -> Tuple[int, int]: method dimensions (line 72) | def dimensions(self, dimensions: Tuple[int, int]): method _extract (line 75) | def _extract(self, file_metadata, field): method update (line 81) | def update(self, file_metadata=None, height=None, width=None): class Playable (line 93) | class Playable(Metadata): method duration (line 98) | def duration(self) -> int: method duration (line 102) | def duration(self, duration: int): method update (line 105) | def update(self, file_metadata=None, duration=None): class Image (line 115) | class Image(Dimmensional): class Audio (line 120) | class Audio(Playable): class Video (line 125) | class Video(Dimmensional, Playable): method update (line 129) | def update(self, file_metadata=None, height=None, width=None, duration... class Source (line 134) | class Source(Metadata): method update (line 138) | def update(self, file_path=None): method name (line 151) | def name(self) -> str: method name (line 155) | def name(self, name: str): method size (line 159) | def size(self) -> int: method size (line 163) | def size(self, size: int): method media_type (line 167) | def media_type(self) -> str: method media_type (line 171) | def media_type(self, media_type: str): method file_hash (line 175) | def file_hash(self) -> str: method file_hash (line 179) | def file_hash(self, file_hash: str): method file_hash_bytes (line 183) | def file_hash_bytes(self) -> bytes: method file_hash_bytes (line 187) | def file_hash_bytes(self, file_hash_bytes: bytes): method sd_hash (line 191) | def sd_hash(self) -> str: method sd_hash (line 195) | def sd_hash(self, sd_hash: str): method sd_hash_bytes (line 199) | def sd_hash_bytes(self) -> bytes: method sd_hash_bytes (line 203) | def sd_hash_bytes(self, sd_hash: bytes): method bt_infohash (line 207) | def bt_infohash(self) -> str: method bt_infohash (line 211) | def bt_infohash(self, bt_infohash: str): method bt_infohash_bytes (line 215) | def bt_infohash_bytes(self) -> bytes: method bt_infohash_bytes (line 219) | def bt_infohash_bytes(self, bt_infohash: bytes): method url (line 223) | def url(self) -> str: method url (line 227) | def url(self, url: str): class Fee (line 231) | class Fee(Metadata): method update (line 235) | def update(self, address: str = None, currency: str = None, amount=None): method currency (line 251) | def currency(self) -> str: method address (line 256) | def address(self) -> str: method address (line 261) | def address(self, address: str): method address_bytes (line 265) | def address_bytes(self) -> bytes: method address_bytes (line 269) | def address_bytes(self, address: bytes): method amount (line 273) | def amount(self) -> Decimal: method lbc (line 284) | def lbc(self) -> Decimal: method lbc (line 290) | def lbc(self, amount: Decimal): method dewies (line 294) | def dewies(self) -> int: method dewies (line 300) | def dewies(self, amount: int): method btc (line 307) | def btc(self) -> Decimal: method btc (line 313) | def btc(self, amount: Decimal): method satoshis (line 317) | def satoshis(self) -> int: method satoshis (line 323) | def satoshis(self, amount: int): method usd (line 331) | def usd(self) -> Decimal: method usd (line 337) | def usd(self, amount: Decimal): method pennies (line 341) | def pennies(self) -> int: method pennies (line 347) | def pennies(self, amount: int): class ClaimReference (line 352) | class ClaimReference(Metadata): method claim_id (line 357) | def claim_id(self) -> str: method claim_id (line 361) | def claim_id(self, claim_id: str): method claim_hash (line 365) | def claim_hash(self) -> bytes: method claim_hash (line 369) | def claim_hash(self, claim_hash: bytes): class ClaimList (line 373) | class ClaimList(BaseMessageList[ClaimReference]): method _message (line 379) | def _message(self): method append (line 382) | def append(self, value): method ids (line 386) | def ids(self) -> List[str]: class Language (line 390) | class Language(Metadata): method langtag (line 395) | def langtag(self) -> str: method langtag (line 406) | def langtag(self, langtag: str): method language (line 418) | def language(self) -> str: method language (line 423) | def language(self, language: str): method script (line 427) | def script(self) -> str: method script (line 432) | def script(self, script: str): method region (line 436) | def region(self) -> str: method region (line 441) | def region(self, region: str): class LanguageList (line 445) | class LanguageList(BaseMessageList[Language]): method append (line 449) | def append(self, value: str): class Location (line 453) | class Location(Metadata): method from_value (line 457) | def from_value(self, value): method to_dict (line 490) | def to_dict(self): method country (line 499) | def country(self) -> str: method country (line 504) | def country(self, country: str): method state (line 508) | def state(self) -> str: method state (line 512) | def state(self, state: str): method city (line 516) | def city(self) -> str: method city (line 520) | def city(self, city: str): method code (line 524) | def code(self) -> str: method code (line 528) | def code(self, code: str): method latitude (line 534) | def latitude(self) -> str: method latitude (line 539) | def latitude(self, latitude: str): method longitude (line 545) | def longitude(self) -> str: method longitude (line 550) | def longitude(self, longitude: str): class LocationList (line 556) | class LocationList(BaseMessageList[Location]): method append (line 560) | def append(self, value): class TagList (line 564) | class TagList(BaseMessageList[str]): method append (line 568) | def append(self, tag: str): FILE: lbry/schema/base.py class Signable (line 8) | class Signable: method __init__ (line 17) | def __init__(self, message=None): method clear_signature (line 25) | def clear_signature(self): method signing_channel_id (line 31) | def signing_channel_id(self): method signing_channel_id (line 35) | def signing_channel_id(self, channel_id: str): method is_signed (line 39) | def is_signed(self): method to_dict (line 42) | def to_dict(self): method to_message_bytes (line 45) | def to_message_bytes(self) -> bytes: method to_bytes (line 48) | def to_bytes(self) -> bytes: method from_bytes (line 60) | def from_bytes(cls, data: bytes): method __len__ (line 72) | def __len__(self): method __bytes__ (line 75) | def __bytes__(self): class Metadata (line 79) | class Metadata: method __init__ (line 83) | def __init__(self, message): class BaseMessageList (line 90) | class BaseMessageList(Metadata, Generic[I]): method _message (line 97) | def _message(self): method add (line 100) | def add(self) -> I: method extend (line 103) | def extend(self, values: List[str]): method append (line 107) | def append(self, value: str): method __len__ (line 110) | def __len__(self): method __iter__ (line 113) | def __iter__(self) -> Iterator[I]: method __getitem__ (line 117) | def __getitem__(self, item) -> I: method __delitem__ (line 120) | def __delitem__(self, key): method __eq__ (line 123) | def __eq__(self, other) -> bool: FILE: lbry/schema/claim.py class Claim (line 29) | class Claim(Signable): method claim_type (line 41) | def claim_type(self) -> str: method get_message (line 44) | def get_message(self, type_name): method is_stream (line 53) | def is_stream(self): method stream (line 57) | def stream(self) -> 'Stream': method is_channel (line 61) | def is_channel(self): method channel (line 65) | def channel(self) -> 'Channel': method is_repost (line 69) | def is_repost(self): method repost (line 73) | def repost(self) -> 'Repost': method is_collection (line 77) | def is_collection(self): method collection (line 81) | def collection(self) -> 'Collection': method from_bytes (line 85) | def from_bytes(cls, data: bytes) -> 'Claim': class BaseClaim (line 101) | class BaseClaim: method __init__ (line 109) | def __init__(self, claim: Claim = None): method to_dict (line 113) | def to_dict(self): method none_check (line 122) | def none_check(self, kwargs): method update (line 127) | def update(self, **kwargs): method title (line 154) | def title(self) -> str: method title (line 158) | def title(self, title: str): method description (line 162) | def description(self) -> str: method description (line 166) | def description(self, description: str): method thumbnail (line 170) | def thumbnail(self) -> Source: method tags (line 174) | def tags(self) -> List[str]: method languages (line 178) | def languages(self) -> LanguageList: method langtags (line 182) | def langtags(self) -> List[str]: method locations (line 186) | def locations(self) -> LocationList: class Stream (line 190) | class Stream(BaseClaim): method to_dict (line 198) | def to_dict(self): method update (line 216) | def update(self, file_path=None, height=None, width=None, duration=Non... method author (line 270) | def author(self) -> str: method author (line 274) | def author(self, author: str): method license (line 278) | def license(self) -> str: method license (line 282) | def license(self, license: str): method license_url (line 286) | def license_url(self) -> str: method license_url (line 290) | def license_url(self, license_url: str): method release_time (line 294) | def release_time(self) -> int: method release_time (line 298) | def release_time(self, release_time: int): method fee (line 302) | def fee(self) -> Fee: method has_fee (line 306) | def has_fee(self) -> bool: method has_source (line 310) | def has_source(self) -> bool: method source (line 314) | def source(self) -> Source: method stream_type (line 318) | def stream_type(self) -> str: method image (line 322) | def image(self) -> Image: method video (line 326) | def video(self) -> Video: method audio (line 330) | def audio(self) -> Audio: class Channel (line 334) | class Channel(BaseClaim): method to_dict (line 343) | def to_dict(self): method public_key (line 351) | def public_key(self) -> str: method public_key (line 355) | def public_key(self, sd_public_key: str): method public_key_bytes (line 359) | def public_key_bytes(self) -> bytes: method public_key_bytes (line 367) | def public_key_bytes(self, public_key: bytes): method email (line 371) | def email(self) -> str: method email (line 375) | def email(self, email: str): method website_url (line 379) | def website_url(self) -> str: method website_url (line 383) | def website_url(self, website_url: str): method cover (line 387) | def cover(self) -> Source: method featured (line 391) | def featured(self) -> ClaimList: class Repost (line 395) | class Repost(BaseClaim): method to_dict (line 401) | def to_dict(self): method reference (line 408) | def reference(self) -> ClaimReference: class Collection (line 412) | class Collection(BaseClaim): method to_dict (line 420) | def to_dict(self): method claims (line 427) | def claims(self) -> ClaimList: FILE: lbry/schema/compat.py function from_old_json_schema (line 11) | def from_old_json_schema(claim, payload: bytes): function from_types_v1 (line 54) | def from_types_v1(claim, payload: bytes): FILE: lbry/schema/mime_types.py function guess_media_type (line 182) | def guess_media_type(path): function guess_stream_type (line 210) | def guess_stream_type(media_type): FILE: lbry/schema/purchase.py class Purchase (line 7) | class Purchase(ClaimReference): method __init__ (line 13) | def __init__(self, claim_id=None): method to_dict (line 18) | def to_dict(self): method to_message_bytes (line 21) | def to_message_bytes(self) -> bytes: method to_bytes (line 24) | def to_bytes(self) -> bytes: method has_start_byte (line 31) | def has_start_byte(cls, data: bytes): method from_bytes (line 35) | def from_bytes(cls, data: bytes): method __len__ (line 43) | def __len__(self): method __bytes__ (line 46) | def __bytes__(self): FILE: lbry/schema/result.py function set_reference (line 15) | def set_reference(reference, claim_hash, rows): class ResolveResult (line 25) | class ResolveResult(NamedTuple): class Censor (line 50) | class Censor: method __init__ (line 58) | def __init__(self, censor_type): method is_censored (line 62) | def is_censored(self, row): method apply (line 65) | def apply(self, rows): method censor (line 68) | def censor(self, row) -> Optional[bytes]: method to_message (line 76) | def to_message(self, outputs: OutputsMessage, extra_txo_rows: dict): class Outputs (line 84) | class Outputs: method __init__ (line 88) | def __init__(self, txos: List, extra_txos: List, txs: set, method inflate (line 98) | def inflate(self, txs): method inflate_blocked (line 105) | def inflate_blocked(self, tx_map): method message_to_txo (line 114) | def message_to_txo(self, txo_message, tx_map): method from_base64 (line 162) | def from_base64(cls, data: str) -> 'Outputs': method from_bytes (line 166) | def from_bytes(cls, data: bytes) -> 'Outputs': method to_base64 (line 181) | def to_base64(cls, txo_rows, extra_txo_rows, offset=0, total=None, blo... method to_bytes (line 185) | def to_bytes(cls, txo_rows, extra_txo_rows, offset=0, total=None, bloc... method encode_txo (line 215) | def encode_txo(cls, txo_message, resolve_result: Union['ResolveResult'... FILE: lbry/schema/support.py class Support (line 5) | class Support(Signable): method emoji (line 10) | def emoji(self) -> str: method emoji (line 14) | def emoji(self, emoji: str): method comment (line 18) | def comment(self) -> str: method comment (line 22) | def comment(self, comment: str): FILE: lbry/schema/tags.py function normalize_tag (line 8) | def normalize_tag(tag: str): function clean_tags (line 12) | def clean_tags(tags: List[str]): FILE: lbry/schema/url.py function _create_url_regex (line 6) | def _create_url_regex(): function normalize_name (line 45) | def normalize_name(name): class PathSegment (line 49) | class PathSegment(NamedTuple): method normalized (line 55) | def normalized(self): method is_shortid (line 59) | def is_shortid(self): method is_fullid (line 63) | def is_fullid(self): method to_dict (line 66) | def to_dict(self): method __str__ (line 74) | def __str__(self): class URL (line 82) | class URL(NamedTuple): method has_channel (line 87) | def has_channel(self): method has_stream (line 91) | def has_stream(self): method has_stream_in_channel (line 95) | def has_stream_in_channel(self): method parts (line 99) | def parts(self) -> Tuple: method __str__ (line 106) | def __str__(self): method parse (line 110) | def parse(cls, url): FILE: lbry/stream/background_downloader.py class BackgroundDownloader (line 10) | class BackgroundDownloader: method __init__ (line 11) | def __init__(self, conf, storage, blob_manager, dht_node=None): method download_blobs (line 17) | async def download_blobs(self, sd_hash): FILE: lbry/stream/descriptor.py function format_sd_info (line 31) | def format_sd_info(stream_name: str, key: str, suggested_file_name: str,... function random_iv_generator (line 43) | def random_iv_generator() -> typing.Generator[bytes, None, None]: function read_bytes (line 48) | def read_bytes(file_path: str, offset: int, to_read: int): function file_reader (line 54) | async def file_reader(file_path: str): function sanitize_file_name (line 69) | def sanitize_file_name(dirty_name: str, default_file_name: str = 'lbry_d... class StreamDescriptor (line 83) | class StreamDescriptor: method __init__ (line 95) | def __init__(self, loop: asyncio.AbstractEventLoop, blob_dir: str, str... method length (line 108) | def length(self) -> int: method get_stream_hash (line 111) | def get_stream_hash(self) -> str: method calculate_sd_hash (line 118) | def calculate_sd_hash(self) -> str: method as_json (line 123) | def as_json(self) -> bytes: method old_sort_json (line 131) | def old_sort_json(self) -> bytes: method calculate_old_sort_sd_hash (line 151) | def calculate_old_sort_sd_hash(self) -> str: method make_sd_blob (line 156) | async def make_sd_blob( method _from_stream_descriptor_blob (line 180) | def _from_stream_descriptor_blob(cls, loop: asyncio.AbstractEventLoop,... method from_stream_descriptor_blob (line 213) | async def from_stream_descriptor_blob(cls, loop: asyncio.AbstractEvent... method get_blob_hashsum (line 220) | def get_blob_hashsum(blob_dict: typing.Dict): method calculate_stream_hash (line 237) | def calculate_stream_hash(hex_stream_name: bytes, key: bytes, hex_sugg... method create_stream (line 250) | async def create_stream( method lower_bound_decrypted_length (line 283) | def lower_bound_decrypted_length(self) -> int: method upper_bound_decrypted_length (line 287) | def upper_bound_decrypted_length(self) -> int: method recover (line 291) | async def recover(cls, blob_dir: str, sd_blob: 'AbstractBlob', stream_... FILE: lbry/stream/downloader.py class StreamDownloader (line 23) | class StreamDownloader: method __init__ (line 24) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method add_fixed_peers (line 52) | async def add_fixed_peers(self): method load_descriptor (line 67) | async def load_descriptor(self, connection_id: int = 0): method start (line 88) | async def start(self, node: typing.Optional['Node'] = None, connection... method download_stream_blob (line 109) | async def download_stream_blob(self, blob_info: 'BlobInfo', connection... method decrypt_blob (line 118) | def decrypt_blob(self, blob_info: 'BlobInfo', blob: 'AbstractBlob') ->... method read_blob (line 123) | async def read_blob(self, blob_info: 'BlobInfo', connection_id: int = ... method stop (line 133) | def stop(self): FILE: lbry/stream/managed_stream.py function _get_next_available_file_name (line 27) | def _get_next_available_file_name(download_directory: str, file_name: st... function get_next_available_file_name (line 37) | async def get_next_available_file_name(loop: asyncio.AbstractEventLoop, ... class ManagedStream (line 41) | class ManagedStream(ManagedDownloadSource): method __init__ (line 42) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method sd_hash (line 68) | def sd_hash(self) -> str: method is_fully_reflected (line 72) | def is_fully_reflected(self) -> bool: method descriptor (line 76) | def descriptor(self) -> StreamDescriptor: method stream_hash (line 80) | def stream_hash(self) -> str: method file_name (line 84) | def file_name(self) -> Optional[str]: method suggested_file_name (line 88) | def suggested_file_name(self) -> Optional[str]: method stream_name (line 94) | def stream_name(self) -> Optional[str]: method written_bytes (line 100) | def written_bytes(self) -> int: method completed (line 104) | def completed(self): method stream_url (line 108) | def stream_url(self): method update_status (line 111) | async def update_status(self, status: str): method blobs_completed (line 117) | def blobs_completed(self) -> int: method blobs_in_stream (line 122) | def blobs_in_stream(self) -> int: method blobs_remaining (line 126) | def blobs_remaining(self) -> int: method mime_type (line 130) | def mime_type(self): method download_path (line 134) | def download_path(self): method start (line 156) | async def start(self, timeout: Optional[float] = None, method stop (line 189) | async def stop(self, finished: bool = False): method _aiter_read_stream (line 198) | async def _aiter_read_stream(self, start_blob_num: Optional[int] = 0, ... method stream_file (line 210) | async def stream_file(self, request: Request) -> StreamResponse: method _write_decrypted_blob (line 254) | def _write_decrypted_blob(output_path: str, data: bytes): method _save_file (line 259) | async def _save_file(self, output_path: str): method save_file (line 302) | async def save_file(self, file_name: Optional[str] = None, download_di... method stop_tasks (line 330) | async def stop_tasks(self): method upload_to_reflector (line 342) | async def upload_to_reflector(self, host: str, port: int) -> typing.Li... method update_content_claim (line 388) | async def update_content_claim(self, claim_info: Optional[typing.Dict]... method _delayed_stop (line 393) | async def _delayed_stop(self): method _prepare_range_response_headers (line 407) | def _prepare_range_response_headers(self, get_range: str) -> typing.Tu... FILE: lbry/stream/reflector/client.py class StreamReflectorClient (line 18) | class StreamReflectorClient(asyncio.Protocol): method __init__ (line 19) | def __init__(self, blob_manager: 'BlobManager', descriptor: 'StreamDes... method connection_made (line 30) | def connection_made(self, transport): method connection_lost (line 35) | def connection_lost(self, exc: typing.Optional[Exception]): method data_received (line 43) | def data_received(self, data): method send_request (line 61) | async def send_request(self, request_dict: typing.Dict, timeout: int =... method send_handshake (line 76) | async def send_handshake(self) -> None: method send_descriptor (line 85) | async def send_descriptor(self) -> typing.Tuple[bool, typing.List[str]... method send_blob (line 119) | async def send_blob(self, blob_hash: str): FILE: lbry/stream/reflector/server.py class ReflectorServerProtocol (line 17) | class ReflectorServerProtocol(asyncio.Protocol): method __init__ (line 18) | def __init__(self, blob_manager: 'BlobManager', response_chunk_size: i... method wait_for_stop (line 39) | async def wait_for_stop(self): method connection_made (line 44) | def connection_made(self, transport): method connection_lost (line 48) | def connection_lost(self, exc): method data_received (line 53) | def data_received(self, data: bytes): method send_response (line 67) | def send_response(self, response: typing.Dict): method handle_request (line 78) | async def handle_request(self, request: typing.Dict): # pylint: disab... class ReflectorServer (line 158) | class ReflectorServer: method __init__ (line 159) | def __init__(self, blob_manager: 'BlobManager', response_chunk_size: i... method start_server (line 173) | def start_server(self, port: int, interface: typing.Optional[str] = '0... method stop_server (line 195) | def stop_server(self): FILE: lbry/stream/stream_manager.py function path_or_none (line 26) | def path_or_none(encoded_path) -> Optional[str]: class StreamManager (line 32) | class StreamManager(SourceManager): method __init__ (line 46) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method streams (line 60) | def streams(self): method add (line 63) | def add(self, source: ManagedStream): method _update_content_claim (line 67) | async def _update_content_claim(self, stream: ManagedStream): method recover_streams (line 71) | async def recover_streams(self, file_infos: typing.List[typing.Dict]): method _load_stream (line 104) | async def _load_stream(self, rowid: int, sd_hash: str, file_name: Opti... method initialize_from_database (line 122) | async def initialize_from_database(self): method reflect_streams (line 164) | async def reflect_streams(self): method _reflect_streams (line 170) | async def _reflect_streams(self): method start (line 195) | async def start(self): method stop (line 199) | async def stop(self): method reflect_stream (line 213) | def reflect_stream(self, stream: ManagedStream, server: Optional[str] ... method _retriable_reflect_stream (line 228) | async def _retriable_reflect_stream(stream, host, port): method create (line 235) | async def create(self, file_path: str, key: Optional[bytes] = None, method delete (line 258) | async def delete(self, source: ManagedDownloadSource, delete_file: Opt... method stream_partial_content (line 272) | async def stream_partial_content(self, request: Request, sd_hash: str): FILE: lbry/testcase.py class ColorHandler (line 42) | class ColorHandler(logging.StreamHandler): method emit (line 64) | def emit(self, record): class AsyncioTestCase (line 84) | class AsyncioTestCase(unittest.TestCase): method asyncSetUp (line 93) | async def asyncSetUp(self): # pylint: disable=C0103 method asyncTearDown (line 96) | async def asyncTearDown(self): # pylint: disable=C0103 method run (line 99) | def run(self, result=None): # pylint: disable=R0915 method doAsyncCleanups (line 189) | def doAsyncCleanups(self): # pylint: disable=C0103 method cancel (line 199) | def cancel(self): method add_timeout (line 205) | def add_timeout(self): method check_timeout (line 209) | def check_timeout(self, started): class AdvanceTimeTestCase (line 216) | class AdvanceTimeTestCase(AsyncioTestCase): method asyncSetUp (line 218) | async def asyncSetUp(self): method advance (line 223) | async def advance(self, seconds): class IntegrationTestCase (line 232) | class IntegrationTestCase(AsyncioTestCase): method __init__ (line 236) | def __init__(self, *args, **kwargs): method asyncSetUp (line 246) | async def asyncSetUp(self): method assertBalance (line 263) | async def assertBalance(self, account, expected_balance: str): # pyli... method broadcast (line 267) | def broadcast(self, tx): method broadcast_and_confirm (line 270) | async def broadcast_and_confirm(self, tx, ledger=None): method on_header (line 277) | async def on_header(self, height): method send_to_address_and_wait (line 284) | async def send_to_address_and_wait(self, address, amount, blocks_to_ge... method generate_and_wait (line 299) | async def generate_and_wait(self, blocks_to_generate, txids, ledger=No... method on_address_update (line 307) | def on_address_update(self, address): method on_transaction_address (line 312) | def on_transaction_address(self, tx, address): method generate (line 317) | async def generate(self, blocks): class FakeExchangeRateManager (line 334) | class FakeExchangeRateManager(ExchangeRateManager): method __init__ (line 336) | def __init__(self, market_feeds, rates): # pylint: disable=super-init... method start (line 342) | def start(self): method stop (line 345) | def stop(self): function get_fake_exchange_rate_manager (line 349) | def get_fake_exchange_rate_manager(rates=None): class ExchangeRateManagerComponent (line 356) | class ExchangeRateManagerComponent(Component): method __init__ (line 359) | def __init__(self, component_manager, rates=None): method component (line 364) | def component(self) -> ExchangeRateManager: method start (line 367) | async def start(self): method stop (line 370) | async def stop(self): class CommandTestCase (line 374) | class CommandTestCase(IntegrationTestCase): method __init__ (line 379) | def __init__(self, *args, **kwargs): method asyncSetUp (line 392) | async def asyncSetUp(self): method asyncTearDown (line 429) | async def asyncTearDown(self): method add_daemon (line 437) | async def add_daemon(self, wallet_node=None, seed=None): method confirm_tx (line 500) | async def confirm_tx(self, txid, ledger=None): method on_transaction_dict (line 512) | async def on_transaction_dict(self, tx): method get_all_addresses (line 516) | def get_all_addresses(tx): method blockchain_claim_name (line 524) | async def blockchain_claim_name(self, name: str, value: str, amount: s... method blockchain_update_name (line 530) | async def blockchain_update_name(self, txid: str, value: str, amount: ... method out (line 536) | async def out(self, awaitable): method sout (line 540) | def sout(self, value): method confirm_and_render (line 544) | async def confirm_and_render(self, awaitable, confirm, return_tx=False... method create_nondeterministic_channel (line 554) | async def create_nondeterministic_channel(self, name, price, pubkey_by... method create_upload_file (line 567) | def create_upload_file(self, data, prefix=None, suffix=None): method stream_create (line 574) | async def stream_create( method stream_update (line 583) | async def stream_update( method stream_repost (line 594) | async def stream_repost(self, claim_id, name='repost', bid='1.0', conf... method stream_abandon (line 599) | async def stream_abandon(self, *args, confirm=True, **kwargs): method purchase_create (line 606) | async def purchase_create(self, *args, confirm=True, **kwargs): method publish (line 611) | async def publish(self, name, *args, confirm=True, **kwargs): method channel_create (line 616) | async def channel_create(self, name='@arena', bid='1.0', confirm=True,... method channel_update (line 621) | async def channel_update(self, claim_id, confirm=True, **kwargs): method channel_abandon (line 626) | async def channel_abandon(self, *args, confirm=True, **kwargs): method collection_create (line 633) | async def collection_create( method collection_update (line 639) | async def collection_update( method collection_abandon (line 645) | async def collection_abandon(self, *args, confirm=True, **kwargs): method support_create (line 652) | async def support_create(self, claim_id, bid='1.0', confirm=True, **kw... method support_abandon (line 657) | async def support_abandon(self, *args, confirm=True, **kwargs): method account_send (line 664) | async def account_send(self, *args, confirm=True, **kwargs): method wallet_send (line 669) | async def wallet_send(self, *args, confirm=True, **kwargs): method txo_spend (line 674) | async def txo_spend(self, *args, confirm=True, **kwargs): method blob_clean (line 682) | async def blob_clean(self): method status (line 685) | async def status(self): method resolve (line 688) | async def resolve(self, uri, **kwargs): method claim_search (line 691) | async def claim_search(self, **kwargs): method get_claim_by_claim_id (line 694) | async def get_claim_by_claim_id(self, claim_id): method file_list (line 697) | async def file_list(self, *args, **kwargs): method txo_list (line 700) | async def txo_list(self, *args, **kwargs): method txo_sum (line 703) | async def txo_sum(self, *args, **kwargs): method txo_plot (line 706) | async def txo_plot(self, *args, **kwargs): method claim_list (line 709) | async def claim_list(self, *args, **kwargs): method stream_list (line 712) | async def stream_list(self, *args, **kwargs): method channel_list (line 715) | async def channel_list(self, *args, **kwargs): method transaction_list (line 718) | async def transaction_list(self, *args, **kwargs): method blob_list (line 721) | async def blob_list(self, *args, **kwargs): method get_claim_id (line 725) | def get_claim_id(tx): method assertItemCount (line 728) | def assertItemCount(self, result, count): # pylint: disable=invalid-name FILE: lbry/torrent/session.py class TorrentHandle (line 20) | class TorrentHandle: method __init__ (line 21) | def __init__(self, loop, executor, handle): method largest_file (line 37) | def largest_file(self) -> Optional[str]: method largest_file_index (line 44) | def largest_file_index(self): method stop_tasks (line 52) | def stop_tasks(self): method _show_status (line 56) | def _show_status(self): method status_loop (line 85) | async def status_loop(self): method pause (line 92) | async def pause(self): method resume (line 97) | async def resume(self): class TorrentSession (line 103) | class TorrentSession: method __init__ (line 104) | def __init__(self, loop, executor): method add_fake_torrent (line 112) | async def add_fake_torrent(self): method bind (line 122) | async def bind(self, interface: str = '0.0.0.0', port: int = 10889): method stop (line 133) | def stop(self): method _pop_alerts (line 144) | def _pop_alerts(self): method process_alerts (line 148) | async def process_alerts(self): method pause (line 155) | async def pause(self): method resume (line 163) | async def resume(self): method _add_torrent (line 168) | def _add_torrent(self, btih: str, download_directory: Optional[str]): method full_path (line 176) | def full_path(self, btih): method add_torrent (line 179) | async def add_torrent(self, btih, download_path): method remove_torrent (line 189) | def remove_torrent(self, btih, remove_files=False): method save_file (line 196) | async def save_file(self, btih, download_directory): method get_size (line 200) | def get_size(self, btih): method get_name (line 203) | def get_name(self, btih): method get_downloaded (line 206) | def get_downloaded(self, btih): method is_completed (line 209) | def is_completed(self, btih): function get_magnet_uri (line 213) | def get_magnet_uri(btih): function _create_fake_torrent (line 217) | def _create_fake_torrent(tmpdir): function main (line 231) | async def main(): FILE: lbry/torrent/torrent.py class TorrentInfo (line 9) | class TorrentInfo: method __init__ (line 12) | def __init__(self, dht_seeds: typing.Tuple[typing.Tuple[str, int]], method from_libtorrent_info (line 21) | def from_libtorrent_info(cls, torrent_info): class Torrent (line 35) | class Torrent: method __init__ (line 36) | def __init__(self, loop, handle): method _threaded_update_status (line 41) | def _threaded_update_status(self): method wait_for_finished (line 52) | async def wait_for_finished(self): method pause (line 63) | async def pause(self): method resume (line 69) | async def resume(self): FILE: lbry/torrent/torrent_manager.py function path_or_none (line 22) | def path_or_none(encoded_path) -> Optional[str]: class TorrentSource (line 28) | class TorrentSource(ManagedDownloadSource): method __init__ (line 35) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method full_path (line 47) | def full_path(self) -> Optional[str]: method start (line 52) | async def start(self, timeout: Optional[float] = None, save_now: Optio... method stop (line 55) | async def stop(self, finished: bool = False): method save_file (line 58) | async def save_file(self, file_name: Optional[str] = None, download_di... method torrent_length (line 62) | def torrent_length(self): method written_bytes (line 66) | def written_bytes(self): method torrent_name (line 70) | def torrent_name(self): method bt_infohash (line 74) | def bt_infohash(self): method stop_tasks (line 77) | async def stop_tasks(self): method completed (line 81) | def completed(self): class TorrentManager (line 85) | class TorrentManager(SourceManager): method __init__ (line 95) | def __init__(self, loop: asyncio.AbstractEventLoop, config: 'Config', ... method recover_streams (line 100) | async def recover_streams(self, file_infos: typing.List[typing.Dict]): method _load_stream (line 103) | async def _load_stream(self, rowid: int, bt_infohash: str, file_name: ... method initialize_from_database (line 115) | async def initialize_from_database(self): method start (line 118) | async def start(self): method stop (line 121) | async def stop(self): method delete (line 125) | async def delete(self, source: ManagedDownloadSource, delete_file: Opt... method create (line 129) | async def create(self, file_path: str, key: Optional[bytes] = None, method _delete (line 133) | async def _delete(self, source: ManagedDownloadSource, delete_file: Op... method stream_partial_content (line 139) | async def stream_partial_content(self, request: Request, sd_hash: str): FILE: lbry/torrent/tracker.py function decode (line 49) | def decode(cls, data, offset=0): function encode (line 62) | def encode(obj): function make_peer_id (line 72) | def make_peer_id(random_part: Optional[str] = None) -> bytes: class UDPTrackerClientProtocol (line 79) | class UDPTrackerClientProtocol(asyncio.DatagramProtocol): method __init__ (line 80) | def __init__(self, timeout: float = DEFAULT_TIMEOUT_SECONDS): method connection_made (line 86) | def connection_made(self, transport: asyncio.DatagramTransport) -> None: method request (line 89) | async def request(self, obj, tracker_ip, tracker_port): method connect (line 98) | async def connect(self, tracker_ip, tracker_port): method ensure_connection_id (line 105) | async def ensure_connection_id(self, peer_id, tracker_ip, tracker_port): method announce (line 109) | async def announce(self, info_hash, peer_id, port, tracker_ip, tracker... method scrape (line 118) | async def scrape(self, infohashes, tracker_ip, tracker_port, connectio... method datagram_received (line 125) | def datagram_received(self, data: bytes, addr: (str, int)) -> None: method connection_lost (line 136) | def connection_lost(self, exc: Exception = None) -> None: class TrackerClient (line 140) | class TrackerClient: method __init__ (line 143) | def __init__(self, node_id, announce_port, get_servers, timeout=10.0): method start (line 152) | async def start(self): method stop (line 158) | def stop(self): method on_hash (line 167) | def on_hash(self, info_hash, on_announcement=None): method announce_many (line 173) | async def announce_many(self, *info_hashes, stopped=False): method _announce_many (line 178) | async def _announce_many(self, server, info_hashes, stopped=False): method get_peer_list (line 192) | async def get_peer_list(self, info_hash, stopped=False, on_announcemen... method get_kademlia_peer_list (line 202) | async def get_kademlia_peer_list(self, info_hash): method _probe_server (line 206) | async def _probe_server(self, info_hash, tracker_host, tracker_port, s... function enqueue_tracker_search (line 230) | def enqueue_tracker_search(info_hash: bytes, peer_q: asyncio.Queue): function announcement_to_kademlia_peers (line 238) | def announcement_to_kademlia_peers(*announcements: AnnounceResponse): class UDPTrackerServerProtocol (line 246) | class UDPTrackerServerProtocol(asyncio.DatagramProtocol): # for testing... method __init__ (line 247) | def __init__(self): method connection_made (line 252) | def connection_made(self, transport: asyncio.DatagramTransport) -> None: method add_peer (line 255) | def add_peer(self, info_hash, ip_address: str, port: int): method datagram_received (line 259) | def datagram_received(self, data: bytes, addr: (str, int)) -> None: function encode_peer (line 283) | def encode_peer(ip_address: str, port: int): FILE: lbry/utils.py function now (line 31) | def now(): function utcnow (line 35) | def utcnow(): function isonow (line 39) | def isonow(): function today (line 44) | def today(): function timedelta (line 48) | def timedelta(**kwargs): function datetime_obj (line 52) | def datetime_obj(*args, **kwargs): function get_lbry_hash_obj (line 56) | def get_lbry_hash_obj(): function generate_id (line 60) | def generate_id(num=None): function version_is_greater_than (line 69) | def version_is_greater_than(version_a, version_b): function rot13 (line 74) | def rot13(some_str): function deobfuscate (line 78) | def deobfuscate(obfustacated): function obfuscate (line 82) | def obfuscate(plain): function check_connection (line 86) | def check_connection(server="lbry.com", port=80, timeout=5) -> bool: function random_string (line 107) | def random_string(length=10, chars=string.ascii_lowercase): function short_hash (line 111) | def short_hash(hash_str): function get_sd_hash (line 115) | def get_sd_hash(stream_info): function json_dumps_pretty (line 130) | def json_dumps_pretty(obj, **kwargs): function aclosing (line 138) | async def aclosing(thing): function async_timed_cache (line 144) | def async_timed_cache(duration: int): function cache_concurrent (line 163) | def cache_concurrent(async_fn): function resolve_host (line 182) | async def resolve_host(url: str, port: int, proto: str) -> str: class LRUCacheWithMetrics (line 201) | class LRUCacheWithMetrics: method __init__ (line 210) | def __init__(self, capacity: int, metric_name: typing.Optional[str] = ... method get (line 230) | def get(self, key, default=None): method set (line 242) | def set(self, key, value): method clear (line 250) | def clear(self): method pop (line 253) | def pop(self, key): method __setitem__ (line 256) | def __setitem__(self, key, value): method __getitem__ (line 259) | def __getitem__(self, item): method __contains__ (line 262) | def __contains__(self, item) -> bool: method __len__ (line 265) | def __len__(self): method __delitem__ (line 268) | def __delitem__(self, key): method __del__ (line 271) | def __del__(self): class LRUCache (line 275) | class LRUCache: method __init__ (line 281) | def __init__(self, capacity: int): method get (line 285) | def get(self, key, default=None): method set (line 293) | def set(self, key, value): method items (line 301) | def items(self): method clear (line 304) | def clear(self): method pop (line 307) | def pop(self, key, default=None): method __setitem__ (line 310) | def __setitem__(self, key, value): method __getitem__ (line 313) | def __getitem__(self, item): method __contains__ (line 316) | def __contains__(self, item) -> bool: method __len__ (line 319) | def __len__(self): method __delitem__ (line 322) | def __delitem__(self, key): method __del__ (line 325) | def __del__(self): function lru_cache_concurrent (line 329) | def lru_cache_concurrent(cache_size: typing.Optional[int] = None, function get_ssl_context (line 356) | def get_ssl_context() -> ssl.SSLContext: function aiohttp_request (line 363) | async def aiohttp_request(method, url, **kwargs) -> typing.AsyncContextM... function is_valid_public_ipv4 (line 374) | def is_valid_public_ipv4(address, allow_localhost: bool = False, allow_l... function fallback_get_external_ip (line 391) | async def fallback_get_external_ip(): # used if spv servers can't be us... function _get_external_ip (line 401) | async def _get_external_ip(default_servers) -> typing.Tuple[typing.Optio... function get_external_ip (line 440) | async def get_external_ip(default_servers) -> typing.Tuple[typing.Option... function is_running_from_bundle (line 447) | def is_running_from_bundle(): class LockWithMetrics (line 452) | class LockWithMetrics(asyncio.Lock): method __init__ (line 453) | def __init__(self, acquire_metric, held_time_metric): method acquire (line 459) | async def acquire(self): method release (line 467) | def release(self): function get_colliding_prefix_bits (line 474) | def get_colliding_prefix_bits(first_value: bytes, second_value: bytes): FILE: lbry/wallet/account.py function validate_claim_id (line 27) | def validate_claim_id(claim_id): class DeterministicChannelKeyManager (line 36) | class DeterministicChannelKeyManager: method __init__ (line 38) | def __init__(self, account: 'Account'): method private_key (line 45) | def private_key(self): method maybe_generate_deterministic_key_for_channel (line 51) | def maybe_generate_deterministic_key_for_channel(self, txo): method ensure_cache_primed (line 61) | async def ensure_cache_primed(self): method generate_next_key (line 65) | async def generate_next_key(self) -> PrivateKey: method get_private_key_from_pubkey_hash (line 75) | def get_private_key_from_pubkey_hash(self, pubkey_hash) -> PrivateKey: class AddressManager (line 79) | class AddressManager: method __init__ (line 85) | def __init__(self, account, public_key, chain_number): method from_dict (line 92) | def from_dict(cls, account: 'Account', d: dict) \ method to_dict (line 97) | def to_dict(cls, receiving: 'AddressManager', change: 'AddressManager'... method merge (line 107) | def merge(self, d: dict): method to_dict_instance (line 110) | def to_dict_instance(self) -> Optional[dict]: method _query_addresses (line 113) | def _query_addresses(self, **constraints): method get_private_key (line 121) | def get_private_key(self, index: int) -> PrivateKey: method get_public_key (line 124) | def get_public_key(self, index: int) -> PublicKey: method get_max_gap (line 127) | async def get_max_gap(self): method ensure_address_gap (line 130) | async def ensure_address_gap(self): method get_address_records (line 133) | def get_address_records(self, only_usable: bool = False, **constraints): method get_addresses (line 136) | async def get_addresses(self, only_usable: bool = False, **constraints... method get_or_create_usable_address (line 140) | async def get_or_create_usable_address(self) -> str: class HierarchicalDeterministic (line 149) | class HierarchicalDeterministic(AddressManager): method __init__ (line 156) | def __init__(self, account: 'Account', chain: int, gap: int, maximum_u... method from_dict (line 162) | def from_dict(cls, account: 'Account', d: dict) -> Tuple[AddressManage... method merge (line 168) | def merge(self, d: dict): method to_dict_instance (line 172) | def to_dict_instance(self): method get_private_key (line 175) | def get_private_key(self, index: int) -> PrivateKey: method get_public_key (line 178) | def get_public_key(self, index: int) -> PublicKey: method get_max_gap (line 181) | async def get_max_gap(self) -> int: method ensure_address_gap (line 193) | async def ensure_address_gap(self) -> List[str]: method _generate_keys (line 213) | async def _generate_keys(self, start: int, end: int) -> List[str]: method get_address_records (line 220) | def get_address_records(self, only_usable: bool = False, **constraints): class SingleKey (line 228) | class SingleKey(AddressManager): method from_dict (line 236) | def from_dict(cls, account: 'Account', d: dict) \ method to_dict_instance (line 241) | def to_dict_instance(self): method get_private_key (line 244) | def get_private_key(self, index: int) -> PrivateKey: method get_public_key (line 247) | def get_public_key(self, index: int) -> PublicKey: method get_max_gap (line 250) | async def get_max_gap(self) -> int: method ensure_address_gap (line 253) | async def ensure_address_gap(self) -> List[str]: method get_address_records (line 263) | def get_address_records(self, only_usable: bool = False, **constraints): class Account (line 267) | class Account: method __init__ (line 274) | def __init__(self, ledger: 'Ledger', wallet: 'Wallet', name: str, method get_init_vector (line 298) | def get_init_vector(self, key) -> Optional[bytes]: method generate (line 305) | def generate(cls, ledger: 'Ledger', wallet: 'Wallet', method get_private_key_from_seed (line 314) | def get_private_key_from_seed(cls, ledger: 'Ledger', seed: str, passwo... method keys_from_dict (line 320) | def keys_from_dict(cls, ledger: 'Ledger', d: dict) \ method from_dict (line 339) | def from_dict(cls, ledger: 'Ledger', wallet: 'Wallet', d: dict): method to_dict (line 358) | def to_dict(self, encrypt_password: str = None, include_channel_keys: ... method merge (line 383) | def merge(self, d: dict): method hash (line 395) | def hash(self) -> bytes: method get_details (line 402) | async def get_details(self, show_seed=False, **kwargs): method decrypt (line 419) | def decrypt(self, password: str) -> bool: method _decrypt_private_key_string (line 435) | def _decrypt_private_key_string(self, password: str) -> Optional[Priva... method _decrypt_seed (line 445) | def _decrypt_seed(self, password: str) -> str: method encrypt (line 459) | def encrypt(self, password: str) -> bool: method ensure_address_gap (line 471) | async def ensure_address_gap(self): method get_addresses (line 478) | async def get_addresses(self, read_only=False, **constraints) -> List[... method get_address_records (line 482) | def get_address_records(self, **constraints): method get_address_count (line 485) | def get_address_count(self, **constraints): method get_private_key (line 488) | def get_private_key(self, chain: int, index: int) -> PrivateKey: method get_public_key (line 492) | def get_public_key(self, chain: int, index: int) -> PublicKey: method get_balance (line 495) | def get_balance(self, confirmations=0, include_claims=False, read_only... method get_max_gap (line 503) | async def get_max_gap(self): method get_txos (line 511) | def get_txos(self, **constraints): method get_txo_count (line 514) | def get_txo_count(self, **constraints): method get_utxos (line 517) | def get_utxos(self, **constraints): method get_utxo_count (line 520) | def get_utxo_count(self, **constraints): method get_transactions (line 523) | def get_transactions(self, **constraints): method get_transaction_count (line 526) | def get_transaction_count(self, **constraints): method fund (line 529) | async def fund(self, to_account, amount=None, everything=False, method generate_channel_private_key (line 563) | async def generate_channel_private_key(self): method add_channel_private_key (line 566) | def add_channel_private_key(self, private_key: PrivateKey): method get_channel_private_key (line 569) | async def get_channel_private_key(self, public_key_bytes) -> PrivateKey: method maybe_migrate_certificates (line 576) | async def maybe_migrate_certificates(self): method save_max_gap (line 591) | async def save_max_gap(self): method get_detailed_balance (line 606) | async def get_detailed_balance(self, confirmations=0, read_only=False): method get_transaction_history (line 615) | def get_transaction_history(self, read_only=False, **constraints): method get_transaction_history_count (line 620) | def get_transaction_history_count(self, read_only=False, **constraints): method get_claims (line 625) | def get_claims(self, **constraints): method get_claim_count (line 628) | def get_claim_count(self, **constraints): method get_streams (line 631) | def get_streams(self, **constraints): method get_stream_count (line 634) | def get_stream_count(self, **constraints): method get_channels (line 637) | def get_channels(self, **constraints): method get_channel_count (line 640) | def get_channel_count(self, **constraints): method get_collections (line 643) | def get_collections(self, **constraints): method get_collection_count (line 646) | def get_collection_count(self, **constraints): method get_supports (line 649) | def get_supports(self, **constraints): method get_support_count (line 652) | def get_support_count(self, **constraints): method get_support_summary (line 655) | def get_support_summary(self): method release_all_outputs (line 658) | async def release_all_outputs(self): FILE: lbry/wallet/bcd_data_stream.py class BCDataStream (line 5) | class BCDataStream: method __init__ (line 7) | def __init__(self, data=None): method reset (line 10) | def reset(self): method get_bytes (line 13) | def get_bytes(self): method read (line 16) | def read(self, size): method write (line 19) | def write(self, data): method write_many (line 22) | def write_many(self, many): method read_string (line 25) | def read_string(self): method write_string (line 28) | def write_string(self, s): method read_compact_size (line 32) | def read_compact_size(self): method write_compact_size (line 43) | def write_compact_size(self, size): method read_boolean (line 56) | def read_boolean(self): method write_boolean (line 59) | def write_boolean(self, val): method _read_struct (line 71) | def _read_struct(self, fmt): method read_int8 (line 76) | def read_int8(self): method read_uint8 (line 79) | def read_uint8(self): method read_int16 (line 82) | def read_int16(self): method read_uint16 (line 85) | def read_uint16(self): method read_int32 (line 88) | def read_int32(self): method read_uint32 (line 91) | def read_uint32(self): method read_int64 (line 94) | def read_int64(self): method read_uint64 (line 97) | def read_uint64(self): method write_int8 (line 100) | def write_int8(self, val): method write_uint8 (line 103) | def write_uint8(self, val): method write_int16 (line 106) | def write_int16(self, val): method write_uint16 (line 109) | def write_uint16(self, val): method write_int32 (line 112) | def write_int32(self, val): method write_uint32 (line 115) | def write_uint32(self, val): method write_int64 (line 118) | def write_int64(self, val): method write_uint64 (line 121) | def write_uint64(self, val): FILE: lbry/wallet/bip32.py class KeyPath (line 13) | class KeyPath: class DerivationError (line 19) | class DerivationError(Exception): class _KeyBase (line 23) | class _KeyBase: method __init__ (line 26) | def __init__(self, ledger, chain_code, n, depth, parent): method _hmac_sha512 (line 44) | def _hmac_sha512(self, msg): method _extended_key (line 49) | def _extended_key(self, ver_bytes, raw_serkey): method identifier (line 66) | def identifier(self): method extended_key (line 69) | def extended_key(self): method fingerprint (line 72) | def fingerprint(self): method parent_fingerprint (line 76) | def parent_fingerprint(self): method extended_key_string (line 80) | def extended_key_string(self): class PublicKey (line 85) | class PublicKey(_KeyBase): method __init__ (line 88) | def __init__(self, ledger, pubkey, chain_code, n, depth, parent=None): method from_compressed (line 96) | def from_compressed(cls, public_key_bytes, ledger=None) -> 'PublicKey': method _verifying_key_from_pubkey (line 100) | def _verifying_key_from_pubkey(cls, pubkey): method pubkey_bytes (line 111) | def pubkey_bytes(self): method address (line 116) | def address(self): method ec_point (line 120) | def ec_point(self): method child (line 123) | def child(self, n: int) -> 'PublicKey': method identifier (line 133) | def identifier(self): method extended_key (line 137) | def extended_key(self): method verify (line 144) | def verify(self, signature, digest) -> bool: class PrivateKey (line 175) | class PrivateKey(_KeyBase): method __init__ (line 180) | def __init__(self, ledger, privkey, chain_code, n, depth, parent=None): method _signing_key_from_privkey (line 188) | def _signing_key_from_privkey(cls, private_key): method _private_key_secret_exponent (line 193) | def _private_key_secret_exponent(cls, private_key): method from_seed (line 202) | def from_seed(cls, ledger, seed) -> 'PrivateKey': method from_pem (line 209) | def from_pem(cls, ledger, pem) -> 'PrivateKey': method from_bytes (line 219) | def from_bytes(cls, ledger, key_bytes) -> 'PrivateKey': method private_key_bytes (line 223) | def private_key_bytes(self): method public_key (line 228) | def public_key(self) -> PublicKey: method ec_point (line 237) | def ec_point(self): method secret_exponent (line 240) | def secret_exponent(self): method wif (line 244) | def wif(self): method address (line 249) | def address(self): method child (line 253) | def child(self, n) -> 'PrivateKey': method sign (line 268) | def sign(self, data): method sign_compact (line 272) | def sign_compact(self, digest): method identifier (line 294) | def identifier(self): method extended_key (line 298) | def extended_key(self): method to_pem (line 305) | def to_pem(self): function _from_extended_key (line 309) | def _from_extended_key(ledger, ekey): function from_extended_key_string (line 334) | def from_extended_key_string(ledger, ekey_str): FILE: lbry/wallet/claim_proofs.py class InvalidProofError (line 6) | class InvalidProofError(Exception): function get_hash_for_outpoint (line 10) | def get_hash_for_outpoint(txhash, nout, height_of_last_takeover): function verify_proof (line 19) | def verify_proof(proof, root_hash, name): FILE: lbry/wallet/coinselection.py function strategy (line 11) | def strategy(method): class CoinSelector (line 16) | class CoinSelector: method __init__ (line 18) | def __init__(self, target: int, cost_of_change: int, seed: str = None)... method select (line 27) | def select( method prefer_confirmed (line 38) | def prefer_confirmed(self, txos: List[OutputEffectiveAmountEstimator], method only_confirmed (line 46) | def only_confirmed(self, txos: List[OutputEffectiveAmountEstimator], method standard (line 57) | def standard(self, txos: List[OutputEffectiveAmountEstimator], method branch_and_bound (line 66) | def branch_and_bound(self, txos: List[OutputEffectiveAmountEstimator], method closest_match (line 126) | def closest_match(self, txos: List[OutputEffectiveAmountEstimator], method random_draw (line 140) | def random_draw(self, txos: List[OutputEffectiveAmountEstimator], FILE: lbry/wallet/database.py class ReaderProcessState (line 37) | class ReaderProcessState: function initializer (line 44) | def initializer(path): function run_read_only_fetchall (line 52) | def run_read_only_fetchall(sql, params): function run_read_only_fetchone (line 61) | def run_read_only_fetchone(sql, params): class AIOSQLite (line 70) | class AIOSQLite: method __init__ (line 93) | def __init__(self): method connect (line 105) | async def connect(cls, path: Union[bytes, str], *args, **kwargs): method close (line 121) | async def close(self): method executemany (line 137) | def executemany(self, sql: str, params: Iterable): method executescript (line 142) | def executescript(self, script: str) -> Awaitable: method _execute_fetch (line 145) | async def _execute_fetch(self, sql: str, parameters: Iterable = None, method execute_fetchall (line 177) | async def execute_fetchall(self, sql: str, parameters: Iterable = None, method execute_fetchone (line 181) | async def execute_fetchone(self, sql: str, parameters: Iterable = None, method execute (line 185) | def execute(self, sql: str, parameters: Iterable = None) -> Awaitable[... method run (line 189) | async def run(self, fun, *args, **kwargs): method __run_transaction (line 219) | def __run_transaction(self, fun: Callable[[sqlite3.Connection, Any, An... method run_with_foreign_keys_disabled (line 232) | async def run_with_foreign_keys_disabled(self, fun, *args, **kwargs): method __run_transaction_with_foreign_keys_disabled (line 255) | def __run_transaction_with_foreign_keys_disabled(self, function constraints_to_sql (line 268) | def constraints_to_sql(constraints, joiner=' AND ', prepend_key=''): function query (line 341) | def query(select, **constraints) -> Tuple[str, Dict[str, Any]]: function interpolate (line 378) | def interpolate(sql, values): function constrain_single_or_list (line 391) | def constrain_single_or_list(constraints, column, value, convert=lambda ... class SQLiteMixin (line 421) | class SQLiteMixin: method __init__ (line 433) | def __init__(self, path): method open (line 438) | async def open(self): method close (line 461) | async def close(self): method _insert_sql (line 465) | def _insert_sql(table: str, data: dict, ignore_duplicate: bool = False, method _update_sql (line 482) | def _update_sql(table: str, data: dict, where: str, function dict_row_factory (line 495) | def dict_row_factory(cursor, row): function _get_spendable_utxos (line 505) | def _get_spendable_utxos(transaction: sqlite3.Connection, accounts: List... function get_and_reserve_spendable_utxos (line 563) | def get_and_reserve_spendable_utxos(transaction: sqlite3.Connection, acc... class Database (line 598) | class Database(SQLiteMixin): method open (line 688) | async def open(self): method txo_to_row (line 692) | def txo_to_row(self, tx, txo): method tx_to_row (line 728) | def tx_to_row(self, tx): method insert_transaction (line 743) | async def insert_transaction(self, tx): method update_transaction (line 746) | async def update_transaction(self, tx): method _transaction_io (line 751) | def _transaction_io(self, conn: sqlite3.Connection, tx: Transaction, a... method save_transaction_io (line 778) | def save_transaction_io(self, tx: Transaction, address, txhash, history): method save_transaction_io_batch (line 781) | def save_transaction_io_batch(self, txs: Iterable[Transaction], addres... method reserve_outputs (line 794) | async def reserve_outputs(self, txos, is_reserved=True): method release_outputs (line 798) | async def release_outputs(self, txos): method rewind_blockchain (line 801) | async def rewind_blockchain(self, above_height): # pylint: disable=no... method get_spendable_utxos (line 807) | async def get_spendable_utxos(self, ledger, reserve_amount, accounts: ... method select_transactions (line 821) | async def select_transactions(self, cols, accounts=None, read_only=Fal... method get_transactions (line 839) | async def get_transactions(self, wallet=None, **constraints): method get_transaction_count (line 907) | async def get_transaction_count(self, **constraints): method get_transaction (line 915) | async def get_transaction(self, **constraints): method select_txos (line 920) | async def select_txos( method get_txos (line 979) | async def get_txos( method _clean_txo_constraints_for_aggregation (line 1101) | def _clean_txo_constraints_for_aggregation(constraints): method get_txo_count (line 1112) | async def get_txo_count(self, **constraints): method get_txo_sum (line 1117) | async def get_txo_sum(self, **constraints): method get_txo_plot (line 1122) | async def get_txo_plot(self, start_day=None, days_back=0, end_day=None... method get_utxos (line 1143) | def get_utxos(self, read_only=False, **constraints): method get_utxo_count (line 1146) | def get_utxo_count(self, **constraints): method get_balance (line 1149) | async def get_balance(self, wallet=None, accounts=None, read_only=Fals... method get_detailed_balance (line 1158) | async def get_detailed_balance(self, accounts, read_only=False, **cons... method select_addresses (line 1193) | async def select_addresses(self, cols, read_only=False, **constraints): method get_addresses (line 1199) | async def get_addresses(self, cols=None, read_only=False, **constraints): method get_address_count (line 1213) | async def get_address_count(self, cols=None, read_only=False, **constr... method get_address (line 1218) | async def get_address(self, read_only=False, **constraints): method add_keys (line 1223) | async def add_keys(self, account, chain, pubkeys): method _set_address_history (line 1239) | async def _set_address_history(self, address, history): method set_address_history (line 1245) | async def set_address_history(self, address, history): method is_channel_key_used (line 1248) | async def is_channel_key_used(self, account, key: PublicKey): method constrain_purchases (line 1261) | def constrain_purchases(constraints): method get_purchases (line 1275) | async def get_purchases(self, **constraints): method get_purchase_count (line 1279) | def get_purchase_count(self, **constraints): method constrain_claims (line 1284) | def constrain_claims(constraints): method get_claims (line 1295) | async def get_claims(self, read_only=False, **constraints) -> List[Out... method get_claim_count (line 1299) | def get_claim_count(self, **constraints): method constrain_streams (line 1304) | def constrain_streams(constraints): method get_streams (line 1307) | def get_streams(self, read_only=False, **constraints): method get_stream_count (line 1311) | def get_stream_count(self, **constraints): method constrain_channels (line 1316) | def constrain_channels(constraints): method get_channels (line 1319) | def get_channels(self, **constraints): method get_channel_count (line 1323) | def get_channel_count(self, **constraints): method constrain_supports (line 1328) | def constrain_supports(constraints): method get_supports (line 1331) | def get_supports(self, **constraints): method get_support_count (line 1335) | def get_support_count(self, **constraints): method constrain_collections (line 1340) | def constrain_collections(constraints): method get_collections (line 1343) | def get_collections(self, **constraints): method get_collection_count (line 1347) | def get_collection_count(self, **constraints): method release_all_outputs (line 1351) | async def release_all_outputs(self, account=None): method get_supports_summary (line 1362) | def get_supports_summary(self, read_only=False, **constraints): FILE: lbry/wallet/dewies.py function lbc_to_dewies (line 5) | def lbc_to_dewies(lbc: str) -> int: function dewies_to_lbc (line 32) | def dewies_to_lbc(dewies) -> str: function dict_values_to_lbc (line 36) | def dict_values_to_lbc(d): FILE: lbry/wallet/hash.py class TXRef (line 5) | class TXRef: method __init__ (line 9) | def __init__(self): method id (line 14) | def id(self): method hash (line 18) | def hash(self): method height (line 22) | def height(self): method is_null (line 26) | def is_null(self): class TXRefImmutable (line 30) | class TXRefImmutable(TXRef): method __init__ (line 34) | def __init__(self): method from_hash (line 39) | def from_hash(cls, tx_hash: bytes, height: int) -> 'TXRefImmutable': method from_id (line 47) | def from_id(cls, tx_id: str, height: int) -> 'TXRefImmutable': method height (line 55) | def height(self): FILE: lbry/wallet/header.py class InvalidHeader (line 21) | class InvalidHeader(Exception): method __init__ (line 23) | def __init__(self, height, message): class Headers (line 29) | class Headers: method __init__ (line 43) | def __init__(self, path) -> None: method open (line 51) | async def open(self): method close (line 72) | async def close(self): method serialize (line 83) | def serialize(header): method deserialize (line 93) | def deserialize(height, header): method get_next_chunk_target (line 107) | def get_next_chunk_target(self, chunk: int) -> ArithUint256: method get_next_block_target (line 110) | def get_next_block_target(self, max_target: ArithUint256, previous: Op... method __len__ (line 126) | def __len__(self) -> int: method __bool__ (line 129) | def __bool__(self): method get (line 132) | async def get(self, height) -> dict: method estimated_timestamp (line 140) | def estimated_timestamp(self, height, try_real_headers=True): method estimated_julian_day (line 148) | def estimated_julian_day(self, height): method get_raw_header (line 151) | async def get_raw_header(self, height) -> bytes: method _read (line 158) | def _read(self, height, count=1): method chunk_hash (line 162) | def chunk_hash(self, start, count): method ensure_checkpointed_size (line 165) | async def ensure_checkpointed_size(self): method ensure_chunk_at (line 170) | async def ensure_chunk_at(self, height): method fetch_chunk (line 177) | async def fetch_chunk(self, height): method has_header (line 196) | def has_header(self, height): method get_all_missing_headers (line 205) | async def get_all_missing_headers(self): method height (line 215) | def height(self) -> int: method bytes_size (line 219) | def bytes_size(self): method hash (line 222) | async def hash(self, height=None) -> bytes: method hash_header (line 228) | def hash_header(header: bytes) -> bytes: method connect (line 233) | async def connect(self, start: int, headers: bytes) -> int: method _write (line 249) | def _write(self, height, verified_chunk): method validate_chunk (line 259) | async def validate_chunk(self, height, chunk): method validate_header (line 275) | def validate_header(self, height: int, current_hash: bytes, method repair (line 305) | async def repair(self, start_height=0): method get_proof_of_work (line 333) | def get_proof_of_work(cls, header_hash: bytes): method _iterate_chunks (line 336) | def _iterate_chunks(self, height: int, headers: bytes) -> Iterator[Tup... method _iterate_headers (line 345) | def _iterate_headers(self, height: int, headers: bytes) -> Iterator[Tu... method header_hash_to_pow_hash (line 353) | def header_hash_to_pow_hash(header_hash: bytes): class UnvalidatedHeaders (line 363) | class UnvalidatedHeaders(Headers): FILE: lbry/wallet/ledger.py class LedgerRegistry (line 37) | class LedgerRegistry(type): method __new__ (line 41) | def __new__(mcs, name, bases, attrs): method get_ledger_class (line 51) | def get_ledger_class(mcs, ledger_id: str) -> LedgerType: class TransactionEvent (line 55) | class TransactionEvent(NamedTuple): class AddressesGeneratedEvent (line 60) | class AddressesGeneratedEvent(NamedTuple): class BlockHeightEvent (line 65) | class BlockHeightEvent(NamedTuple): class TransactionCacheItem (line 70) | class TransactionCacheItem: method __init__ (line 73) | def __init__(self, tx: Optional[Transaction] = None, lock: Optional[as... method tx (line 80) | def tx(self) -> Optional[Transaction]: method tx (line 84) | def tx(self, tx: Transaction): class Ledger (line 90) | class Ledger(metaclass=LedgerRegistry): method __init__ (line 113) | def __init__(self, config=None): method get_id (line 173) | def get_id(cls): method hash160_to_address (line 177) | def hash160_to_address(cls, h160): method hash160_to_script_address (line 182) | def hash160_to_script_address(cls, h160): method address_to_hash160 (line 187) | def address_to_hash160(address): method is_pubkey_address (line 191) | def is_pubkey_address(cls, address): method is_script_address (line 196) | def is_script_address(cls, address): method public_key_to_address (line 201) | def public_key_to_address(cls, public_key): method private_key_to_wif (line 205) | def private_key_to_wif(private_key): method path (line 209) | def path(self): method add_account (line 212) | def add_account(self, account: Account): method _get_account_and_address_info_for_address (line 215) | async def _get_account_and_address_info_for_address(self, wallet, addr... method get_private_key_for_address (line 222) | async def get_private_key_for_address(self, wallet, address) -> Option... method get_public_key_for_address (line 229) | async def get_public_key_for_address(self, wallet, address) -> Optiona... method get_account_for_address (line 236) | async def get_account_for_address(self, wallet, address): method get_effective_amount_estimators (line 241) | async def get_effective_amount_estimators(self, funding_accounts: Iter... method get_addresses (line 249) | async def get_addresses(self, **constraints): method get_address_count (line 252) | def get_address_count(self, **constraints): method get_spendable_utxos (line 255) | async def get_spendable_utxos(self, amount: int, funding_accounts: Opt... method reserve_outputs (line 269) | def reserve_outputs(self, txos): method release_outputs (line 272) | def release_outputs(self, txos): method release_tx (line 275) | def release_tx(self, tx): method get_utxos (line 278) | def get_utxos(self, **constraints): method get_utxo_count (line 282) | def get_utxo_count(self, **constraints): method get_txos (line 286) | async def get_txos(self, resolve=False, **constraints) -> List[Output]: method get_txo_count (line 292) | def get_txo_count(self, **constraints): method get_txo_sum (line 295) | def get_txo_sum(self, **constraints): method get_txo_plot (line 298) | def get_txo_plot(self, **constraints): method get_transactions (line 301) | def get_transactions(self, **constraints): method get_transaction_count (line 304) | def get_transaction_count(self, **constraints): method get_local_status_and_history (line 307) | async def get_local_status_and_history(self, address, history=None): method get_root_of_merkle_tree (line 318) | def get_root_of_merkle_tree(branches, branch_positions, working_branch): method start (line 329) | async def start(self): method join_network (line 353) | async def join_network(self, *_): method stop (line 359) | async def stop(self): method tasks_are_done (line 368) | async def tasks_are_done(self): method local_height_including_downloaded_height (line 373) | def local_height_including_downloaded_height(self): method initial_headers_sync (line 376) | async def initial_headers_sync(self): method update_headers (line 387) | async def update_headers(self, height=None, headers=None, subscription... method receive_header (line 459) | async def receive_header(self, response): method subscribe_accounts (line 466) | async def subscribe_accounts(self): method subscribe_account (line 473) | async def subscribe_account(self, account: Account): method unsubscribe_account (line 479) | async def unsubscribe_account(self, account: Account): method announce_addresses (line 483) | async def announce_addresses(self, address_manager: AddressManager, ad... method subscribe_addresses (line 489) | async def subscribe_addresses(self, address_manager: AddressManager, a... method process_status_update (line 507) | def process_status_update(self, update): method update_history (line 511) | async def update_history(self, address, remote_status, address_manager... method maybe_verify_transaction (line 612) | async def maybe_verify_transaction(self, tx, remote_height, merkle=None): method maybe_has_channel_key (line 626) | def maybe_has_channel_key(self, tx): method request_transactions (line 632) | async def request_transactions(self, to_request: Tuple[Tuple[str, int]... method request_synced_transactions (line 662) | async def request_synced_transactions(self, to_request, remote_history... method _single_batch (line 668) | async def _single_batch(self, batch, remote_heights): method _sync_and_save_batch (line 680) | async def _sync_and_save_batch(self, address, remote_history, pending_... method _sync (line 688) | async def _sync(self, tx, remote_history, pending_txs): method get_address_manager_for_address (line 718) | async def get_address_manager_for_address(self, address) -> Optional[A... method broadcast_or_release (line 725) | async def broadcast_or_release(self, tx, blocking=False): method broadcast (line 734) | def broadcast(self, tx): method wait (line 738) | async def wait(self, tx: Transaction, height=-1, timeout=1): method _wait_round (line 757) | async def _wait_round(self, tx: Transaction, height: int, addresses: I... method _inflate_outputs (line 786) | async def _inflate_outputs( method resolve (line 870) | async def resolve(self, accounts, urls, **kwargs): method sum_supports (line 894) | async def sum_supports(self, new_sdk_server, **kwargs) -> List[Dict]: method claim_search (line 897) | async def claim_search( method get_claim_by_claim_id (line 911) | async def get_claim_by_claim_id(self, claim_id, accounts=None, include... method _report_state (line 924) | async def _report_state(self): method _reset_balance_cache (line 946) | async def _reset_balance_cache(self, e: TransactionEvent): method constraint_spending_utxos (line 955) | def constraint_spending_utxos(constraints): method get_purchases (line 958) | async def get_purchases(self, resolve=False, **constraints): method get_purchase_count (line 972) | def get_purchase_count(self, resolve=False, **constraints): method _resolve_for_local_results (line 975) | async def _resolve_for_local_results(self, accounts, txos): method _resolve_for_local_claim_results (line 980) | async def _resolve_for_local_claim_results(self, accounts, txos): method _resolve_for_local_support_results (line 996) | async def _resolve_for_local_support_results(self, accounts, txos): method get_claims (line 1013) | async def get_claims(self, resolve=False, **constraints): method get_claim_count (line 1019) | def get_claim_count(self, **constraints): method get_streams (line 1022) | async def get_streams(self, resolve=False, **constraints): method get_stream_count (line 1028) | def get_stream_count(self, **constraints): method get_channels (line 1031) | async def get_channels(self, resolve=False, **constraints): method get_channel_count (line 1037) | def get_channel_count(self, **constraints): method resolve_collection (line 1040) | async def resolve_collection(self, collection, offset=0, page_size=1): method get_collections (line 1059) | async def get_collections(self, resolve_claims=0, resolve=False, **con... method get_collection_count (line 1068) | def get_collection_count(self, resolve_claims=0, **constraints): method get_supports (line 1071) | def get_supports(self, **constraints): method get_support_count (line 1074) | def get_support_count(self, **constraints): method get_transaction_history (line 1077) | async def get_transaction_history(self, read_only=False, **constraints): method get_transaction_history_count (line 1190) | def get_transaction_history_count(self, read_only=False, **constraints): method get_detailed_balance (line 1193) | async def get_detailed_balance(self, accounts, confirmations=0): class TestNetLedger (line 1218) | class TestNetLedger(Ledger): class RegTestLedger (line 1227) | class RegTestLedger(Ledger): FILE: lbry/wallet/manager.py class WalletManager (line 29) | class WalletManager: method __init__ (line 31) | def __init__(self, wallets: MutableSequence[Wallet] = None, method from_config (line 39) | def from_config(cls, config: dict) -> 'WalletManager': method get_or_create_ledger (line 49) | def get_or_create_ledger(self, ledger_id, ledger_config=None): method import_wallet (line 57) | def import_wallet(self, path): method default_wallet (line 64) | def default_wallet(self): method default_account (line 69) | def default_account(self): method accounts (line 74) | def accounts(self): method start (line 78) | async def start(self): method stop (line 84) | async def stop(self): method get_wallet_or_default (line 90) | def get_wallet_or_default(self, wallet_id: Optional[str]) -> Wallet: method get_wallet_or_error (line 95) | def get_wallet_or_error(self, wallet_id: str) -> Wallet: method get_balance (line 102) | def get_balance(wallet): method ledger (line 109) | def ledger(self) -> Ledger: method db (line 113) | def db(self) -> Database: method check_locked (line 116) | def check_locked(self): method migrate_lbryum_to_torba (line 120) | def migrate_lbryum_to_torba(path): method from_lbrynet_config (line 176) | async def from_lbrynet_config(cls, config: Config): method reset (line 237) | async def reset(self): method _migrate_addresses (line 253) | async def _migrate_addresses(self, receiving_addresses: set, change_ad... method get_best_blockhash (line 271) | async def get_best_blockhash(self): method get_unused_address (line 276) | def get_unused_address(self): method get_transaction (line 279) | async def get_transaction(self, txid: str): method create_purchase_transaction (line 295) | async def create_purchase_transaction( method broadcast_or_release (line 319) | async def broadcast_or_release(self, tx, blocking=False): FILE: lbry/wallet/mnemonic.py function is_cjk (line 57) | def is_cjk(c): function normalize_text (line 65) | def normalize_text(seed): function load_words (line 80) | def load_words(language_name): class Mnemonic (line 99) | class Mnemonic: method __init__ (line 103) | def __init__(self, lang='en'): method mnemonic_to_seed (line 108) | def mnemonic_to_seed(mnemonic, passphrase=''): method mnemonic_encode (line 116) | def mnemonic_encode(self, i): method mnemonic_decode (line 125) | def mnemonic_decode(self, seed): method make_seed (line 135) | def make_seed(self, prefix=SEED_PREFIX, num_bits=132): function is_new_seed (line 156) | def is_new_seed(seed, prefix): FILE: lbry/wallet/network.py class ClientSession (line 22) | class ClientSession(BaseClientSession): method __init__ (line 23) | def __init__(self, *args, network: 'Network', server, timeout=30, conc... method concurrency (line 36) | def concurrency(self): method available (line 40) | def available(self): method server_address_and_port (line 44) | def server_address_and_port(self) -> Optional[Tuple[str, int]]: method send_timed_server_version_request (line 49) | async def send_timed_server_version_request(self, args=(), timeout=None): method send_request (line 62) | async def send_request(self, method, args=()): method ensure_server_version (line 101) | async def ensure_server_version(self, required=None, timeout=3): method keepalive_loop (line 110) | async def keepalive_loop(self, timeout=3, max_idle=60): method create_connection (line 129) | async def create_connection(self, timeout=6): method handle_request (line 135) | async def handle_request(self, request): method connection_lost (line 139) | def connection_lost(self, exc): class Network (line 150) | class Network: method __init__ (line 158) | def __init__(self, ledger): method config (line 190) | def config(self): method known_hubs (line 194) | def known_hubs(self): method jurisdiction (line 200) | def jurisdiction(self): method disconnect (line 203) | def disconnect(self): method start (line 208) | async def start(self): method resolve_spv_dns (line 226) | async def resolve_spv_dns(self): method get_n_fastest_spvs (line 250) | async def get_n_fastest_spvs(self, timeout=3.0) -> Dict[Tuple[str, int... method connect_to_fastest (line 296) | async def connect_to_fastest(self) -> Optional[ClientSession]: method network_loop (line 314) | async def network_loop(self): method stop (line 363) | async def stop(self): method is_connected (line 374) | def is_connected(self): method rpc (line 377) | def rpc(self, list_or_method, args, restricted=True, session: Optional... method retriable_call (line 385) | async def retriable_call(self, function, *args, **kwargs): method _update_remote_height (line 399) | def _update_remote_height(self, header_args): method _update_hubs (line 402) | async def _update_hubs(self, hubs): method get_transaction (line 410) | def get_transaction(self, tx_hash, known_height=None): method get_transaction_batch (line 415) | def get_transaction_batch(self, txids, restricted=True): method get_transaction_and_merkle (line 419) | def get_transaction_and_merkle(self, tx_hash, known_height=None): method get_transaction_height (line 424) | def get_transaction_height(self, tx_hash, known_height=None): method get_merkle (line 428) | def get_merkle(self, tx_hash, height): method get_headers (line 432) | def get_headers(self, height, count=10000, b64=False): method get_history (line 437) | def get_history(self, address): method broadcast (line 440) | def broadcast(self, raw_transaction): method subscribe_headers (line 443) | def subscribe_headers(self): method subscribe_address (line 446) | async def subscribe_address(self, address, *addresses): method unsubscribe_address (line 461) | def unsubscribe_address(self, address): method get_server_features (line 464) | def get_server_features(self): method get_claim_by_id (line 470) | def get_claim_by_id(self, claim_id): method resolve (line 473) | def resolve(self, urls, session_override=None): method claim_search (line 476) | def claim_search(self, session_override=None, **kwargs): method sum_supports (line 479) | async def sum_supports(self, server, **kwargs): FILE: lbry/wallet/orchstr8/cli.py function get_argument_parser (line 15) | def get_argument_parser(): function run_remote_command (line 36) | async def run_remote_command(command, **kwargs): function main (line 43) | def main(): FILE: lbry/wallet/orchstr8/node.py function get_lbcd_node_from_ledger (line 36) | def get_lbcd_node_from_ledger(ledger_module): function get_lbcwallet_node_from_ledger (line 44) | def get_lbcwallet_node_from_ledger(ledger_module): class Conductor (line 52) | class Conductor: method __init__ (line 54) | def __init__(self, seed=None): method start_lbcd (line 69) | async def start_lbcd(self): method stop_lbcd (line 74) | async def stop_lbcd(self, cleanup=True): method start_spv (line 79) | async def start_spv(self): method stop_spv (line 84) | async def stop_spv(self, cleanup=True): method start_wallet (line 89) | async def start_wallet(self): method stop_wallet (line 94) | async def stop_wallet(self, cleanup=True): method start_lbcwallet (line 99) | async def start_lbcwallet(self, clean=True): method stop_lbcwallet (line 110) | async def stop_lbcwallet(self, cleanup=True): method start (line 115) | async def start(self): method stop (line 121) | async def stop(self): method clear_mempool (line 134) | async def clear_mempool(self): class WalletNode (line 141) | class WalletNode: method __init__ (line 143) | def __init__(self, manager_class: Type[WalletManager], ledger_class: T... method start (line 158) | async def start(self, spv_node: 'SPVNode', seed=None, connect=True, co... method stop (line 195) | async def stop(self, cleanup=True): method cleanup (line 201) | def cleanup(self): class SPVNode (line 205) | class SPVNode: method __init__ (line 206) | def __init__(self, node_number=1): method start (line 222) | async def start(self, lbcwallet_node: 'LBCWalletNode', extraconf=None): method stop (line 270) | async def stop(self, cleanup=True): method cleanup (line 286) | def cleanup(self): class LBCDProcess (line 290) | class LBCDProcess(asyncio.SubprocessProtocol): method __init__ (line 299) | def __init__(self): method pipe_data_received (line 304) | def pipe_data_received(self, fd, data): method process_exited (line 316) | def process_exited(self): class WalletProcess (line 321) | class WalletProcess(asyncio.SubprocessProtocol): method __init__ (line 326) | def __init__(self): method pipe_data_received (line 332) | def pipe_data_received(self, fd, data): method process_exited (line 344) | def process_exited(self): class LBCDNode (line 349) | class LBCDNode: method __init__ (line 350) | def __init__(self, url, daemon, cli): method rpc_url (line 369) | def rpc_url(self): method exists (line 373) | def exists(self): method download (line 379) | def download(self): method ensure (line 415) | def ensure(self): method start (line 418) | async def start(self): method stop (line 450) | async def stop(self, cleanup=True): method cleanup (line 468) | def cleanup(self): class LBCWalletNode (line 473) | class LBCWalletNode: method __init__ (line 477) | def __init__(self, url, lbcwallet, cli): method rpc_url (line 498) | def rpc_url(self): method is_expected_block (line 503) | def is_expected_block(self, e: BlockHeightEvent): method exists (line 507) | def exists(self): method download (line 512) | def download(self): method ensure (line 547) | def ensure(self): method start (line 550) | async def start(self): method cleanup (line 580) | def cleanup(self): method stop (line 584) | async def stop(self, cleanup=True): method _cli_cmnd (line 601) | async def _cli_cmnd(self, *args): method generate (line 624) | def generate(self, blocks): method generate_to_address (line 628) | def generate_to_address(self, blocks, addr): method wallet_passphrase (line 632) | def wallet_passphrase(self, passphrase, timeout): method invalidate_block (line 635) | def invalidate_block(self, blockhash): method get_block_hash (line 638) | def get_block_hash(self, block): method sendrawtransaction (line 641) | def sendrawtransaction(self, tx): method get_block (line 644) | async def get_block(self, block_hash): method get_raw_change_address (line 647) | def get_raw_change_address(self): method get_new_address (line 650) | def get_new_address(self, address_type='legacy'): method get_balance (line 653) | async def get_balance(self): method send_to_address (line 656) | def send_to_address(self, address, amount): method send_raw_transaction (line 659) | def send_raw_transaction(self, tx): method create_raw_transaction (line 662) | def create_raw_transaction(self, inputs, outputs): method sign_raw_transaction_with_wallet (line 665) | async def sign_raw_transaction_with_wallet(self, tx): method decode_raw_transaction (line 671) | def decode_raw_transaction(self, tx): method get_raw_transaction (line 674) | def get_raw_transaction(self, txid): FILE: lbry/wallet/orchstr8/service.py class WebSocketLogHandler (line 13) | class WebSocketLogHandler(logging.Handler): method __init__ (line 15) | def __init__(self, send_message): method emit (line 19) | def emit(self, record): class ConductorService (line 30) | class ConductorService: method __init__ (line 32) | def __init__(self, stack: Conductor, loop: asyncio.AbstractEventLoop) ... method start (line 46) | async def start(self): method stop (line 52) | async def stop(self): method start_stack (line 60) | async def start_stack(self, _): method generate (line 76) | async def generate(self, request): method transfer (line 82) | async def transfer(self, request): method balance (line 104) | async def balance(self, _): method log (line 109) | async def log(self, request): method on_shutdown (line 126) | async def on_shutdown(app): method on_status (line 130) | async def on_status(self, _): method send_message (line 140) | def send_message(self, msg): FILE: lbry/wallet/rpc/framing.py class FramerBase (line 36) | class FramerBase: method frame (line 44) | def frame(self, message): method received_bytes (line 48) | def received_bytes(self, data): method receive_message (line 52) | async def receive_message(self): class NewlineFramer (line 57) | class NewlineFramer(FramerBase): method __init__ (line 63) | def __init__(self, max_size=250 * 4000): method frame (line 75) | def frame(self, message): method receive_message (line 78) | async def receive_message(self): class ByteQueue (line 107) | class ByteQueue: method __init__ (line 112) | def __init__(self): method receive (line 118) | async def receive(self, size): class BinaryFramer (line 129) | class BinaryFramer: method __init__ (line 132) | def __init__(self): method frame (line 137) | def frame(self, message): method receive_message (line 144) | async def receive_message(self): method _checksum (line 152) | def _checksum(self, payload): method _build_header (line 155) | def _build_header(self, command, payload): method _receive_header (line 158) | async def _receive_header(self): function sha256 (line 167) | def sha256(x): function double_sha256 (line 172) | def double_sha256(x): class BadChecksumError (line 177) | class BadChecksumError(Exception): class BadMagicError (line 181) | class BadMagicError(Exception): class OversizedPayloadError (line 185) | class OversizedPayloadError(Exception): class BitcoinFramer (line 189) | class BitcoinFramer(BinaryFramer): method __init__ (line 206) | def __init__(self, magic, max_block_size): method _checksum (line 219) | def _checksum(self, payload): method _build_header (line 222) | def _build_header(self, command, payload): method _receive_header (line 230) | async def _receive_header(self): FILE: lbry/wallet/rpc/jsonrpc.py class SingleRequest (line 45) | class SingleRequest: method __init__ (line 48) | def __init__(self, method, args): method __repr__ (line 58) | def __repr__(self): method __eq__ (line 61) | def __eq__(self, other): class Request (line 66) | class Request(SingleRequest): method send_result (line 67) | def send_result(self, response): class Notification (line 71) | class Notification(SingleRequest): class Batch (line 75) | class Batch: method __init__ (line 78) | def __init__(self, items): method __len__ (line 88) | def __len__(self): method __getitem__ (line 91) | def __getitem__(self, item): method __iter__ (line 94) | def __iter__(self): method __repr__ (line 97) | def __repr__(self): class Response (line 101) | class Response: method __init__ (line 104) | def __init__(self, result): class CodeMessageError (line 109) | class CodeMessageError(Exception): method code (line 112) | def code(self): method message (line 116) | def message(self): method __eq__ (line 119) | def __eq__(self, other): method __hash__ (line 123) | def __hash__(self): method invalid_args (line 129) | def invalid_args(cls, message): method invalid_request (line 133) | def invalid_request(cls, message): method empty_batch (line 137) | def empty_batch(cls): class RPCError (line 141) | class RPCError(CodeMessageError): class ProtocolError (line 145) | class ProtocolError(CodeMessageError): method __init__ (line 147) | def __init__(self, code, message): class JSONRPC (line 157) | class JSONRPC: method _message_id (line 175) | def _message_id(cls, message, require_id): method _validate_message (line 185) | def _validate_message(cls, message): method _request_args (line 191) | def _request_args(cls, request): method _process_request (line 197) | def _process_request(cls, payload): method _process_response (line 213) | def _process_response(cls, payload): method _message_to_payload (line 224) | def _message_to_payload(cls, message): method _error (line 235) | def _error(cls, code, message, send, msg_id): method message_to_item (line 248) | def message_to_item(cls, message): method request_message (line 285) | def request_message(cls, item, request_id): method notification_message (line 291) | def notification_message(cls, item): method response_message (line 297) | def response_message(cls, result, request_id): method batch_message (line 306) | def batch_message(cls, batch, request_ids): method batch_message_from_parts (line 320) | def batch_message_from_parts(cls, messages): method encode_payload (line 331) | def encode_payload(cls, payload): class JSONRPCv1 (line 340) | class JSONRPCv1(JSONRPC): method _message_id (line 346) | def _message_id(cls, message, require_id): method _request_args (line 354) | def _request_args(cls, request): method _best_effort_error (line 362) | def _best_effort_error(cls, error): method response_value (line 379) | def response_value(cls, payload): method request_payload (line 395) | def request_payload(cls, request, request_id): method response_payload (line 407) | def response_payload(cls, result, request_id): method error_payload (line 416) | def error_payload(cls, error, request_id): class JSONRPCv2 (line 424) | class JSONRPCv2(JSONRPC): method _message_id (line 428) | def _message_id(cls, message, require_id): method _validate_message (line 444) | def _validate_message(cls, message): method _request_args (line 449) | def _request_args(cls, request): method response_value (line 457) | def response_value(cls, payload): method request_payload (line 480) | def request_payload(cls, request, request_id): method response_payload (line 495) | def response_payload(cls, result, request_id): method error_payload (line 504) | def error_payload(cls, error, request_id): class JSONRPCLoose (line 512) | class JSONRPCLoose(JSONRPC): method response_value (line 526) | def response_value(cls, payload): class JSONRPCAutoDetect (line 542) | class JSONRPCAutoDetect(JSONRPCv2): method message_to_item (line 545) | def message_to_item(cls, message): method detect_protocol (line 549) | def detect_protocol(cls, message): class JSONRPCConnection (line 584) | class JSONRPCConnection: method __init__ (line 595) | def __init__(self, protocol): method _oversized_response_message (line 604) | def _oversized_response_message(self, request_id): method _receive_response (line 609) | def _receive_response(self, result, request_id): method _receive_request_batch (line 621) | def _receive_request_batch(self, payloads): method _receive_response_batch (line 655) | def _receive_response_batch(self, payloads): method _send_result (line 673) | def _send_result(self, request_id, result): method _event (line 679) | def _event(self, request, request_id): method send_request (line 687) | def send_request(self, request: Request) -> typing.Tuple[bytes, Event]: method send_notification (line 701) | def send_notification(self, notification): method send_batch (line 704) | def send_batch(self, batch): method receive_message (line 711) | def receive_message(self, message): method raise_pending_requests (line 746) | def raise_pending_requests(self, exception): method pending_requests (line 753) | def pending_requests(self): function handler_invocation (line 758) | def handler_invocation(handler, request): FILE: lbry/wallet/rpc/session.py class Connector (line 48) | class Connector: method __init__ (line 50) | def __init__(self, session_factory, host=None, port=None, proxy=None, method create_connection (line 59) | async def create_connection(self): method __aenter__ (line 65) | async def __aenter__(self): method __aexit__ (line 69) | async def __aexit__(self, exc_type, exc_value, traceback): class SessionBase (line 73) | class SessionBase(asyncio.Protocol): method __init__ (line 89) | def __init__(self, *, framer=None, loop=None): method _limited_wait (line 117) | async def _limited_wait(self, secs): method _send_message (line 124) | async def _send_message(self, message): method _bump_errors (line 136) | def _bump_errors(self): method _close (line 142) | def _close(self): method data_received (line 147) | def data_received(self, framed_message): method pause_writing (line 155) | def pause_writing(self): method resume_writing (line 161) | def resume_writing(self): method connection_made (line 167) | def connection_made(self, transport): method connection_lost (line 183) | def connection_lost(self, exc): method default_framer (line 196) | def default_framer(self): method peer_address (line 200) | def peer_address(self): method peer_address_str (line 209) | def peer_address_str(self, for_log=True): method is_closing (line 220) | def is_closing(self): method abort (line 224) | def abort(self): method close (line 230) | async def close(self, *, force_after=30): method synchronous_close (line 239) | def synchronous_close(self): class MessageSession (line 245) | class MessageSession(SessionBase): method _receive_messages (line 252) | async def _receive_messages(self): method _handle_message (line 282) | async def _handle_message(self, message): method default_framer (line 295) | def default_framer(self): method handle_message (line 299) | async def handle_message(self, message): method send_message (line 303) | async def send_message(self, message): class BatchError (line 308) | class BatchError(Exception): method __init__ (line 310) | def __init__(self, request): class BatchRequest (line 314) | class BatchRequest: method __init__ (line 347) | def __init__(self, session, raise_errors): method add_request (line 354) | def add_request(self, method, args=()): method add_notification (line 357) | def add_notification(self, method, args=()): method __len__ (line 360) | def __len__(self): method __aenter__ (line 363) | async def __aenter__(self): method __aexit__ (line 366) | async def __aexit__(self, exc_type, exc_value, traceback): class RPCSession (line 381) | class RPCSession(SessionBase): method __init__ (line 398) | def __init__(self, *, framer=None, connection=None): method _receive_messages (line 403) | async def _receive_messages(self): method _handle_request (line 430) | async def _handle_request(self, request): method connection_lost (line 458) | def connection_lost(self, exc): method default_connection (line 464) | def default_connection(self): method default_framer (line 468) | def default_framer(self): method handle_request (line 472) | async def handle_request(self, request): method send_request (line 475) | async def send_request(self, method, args=()): method send_notification (line 487) | async def send_notification(self, method, args=()) -> bool: method send_notifications (line 499) | async def send_notifications(self, notifications) -> bool: method send_batch (line 510) | def send_batch(self, raise_errors=False): class Server (line 527) | class Server: method __init__ (line 530) | def __init__(self, session_factory, host=None, port=None, *, method listen (line 539) | async def listen(self): method close (line 543) | async def close(self): FILE: lbry/wallet/rpc/socks.py class SOCKSError (line 44) | class SOCKSError(Exception): class SOCKSProtocolError (line 49) | class SOCKSProtocolError(SOCKSError): class SOCKSFailure (line 53) | class SOCKSFailure(SOCKSError): class NeedData (line 57) | class NeedData(Exception): class SOCKSBase (line 61) | class SOCKSBase: method name (line 64) | def name(cls): method __init__ (line 67) | def __init__(self): method _read (line 71) | def _read(self, size): method receive_data (line 78) | def receive_data(self, data): method next_message (line 81) | def next_message(self): class SOCKS4 (line 85) | class SOCKS4(SOCKSBase): method __init__ (line 98) | def __init__(self, dst_host, dst_port, auth): method _check_host (line 105) | def _check_host(cls, host): method _start (line 114) | def _start(self): method _first_response (line 135) | def _first_response(self): class SOCKS4a (line 151) | class SOCKS4a(SOCKS4): method _check_host (line 154) | def _check_host(cls, host): class SOCKS5 (line 161) | class SOCKS5(SOCKSBase): method __init__ (line 176) | def __init__(self, dst_host, dst_port, auth): method _destination_bytes (line 181) | def _destination_bytes(self, host, port): method _authentication (line 197) | def _authentication(self, auth): method _start (line 211) | def _start(self): method _first_response (line 216) | def _first_response(self): method _auth_response (line 230) | def _auth_response(self): method _request_connection (line 241) | def _request_connection(self): method _connect_response (line 246) | def _connect_response(self): method _connect_response_rest (line 264) | def _connect_response_rest(self, addr_len): class SOCKSProxy (line 269) | class SOCKSProxy: method __init__ (line 271) | def __init__(self, address, protocol, auth): method __str__ (line 285) | def __str__(self): method _handshake (line 289) | async def _handshake(self, client, sock, loop): method _connect_one (line 307) | async def _connect_one(self, host, port): method _connect (line 329) | async def _connect(self, addresses): method _detect_proxy (line 349) | async def _detect_proxy(self): method auto_detect_address (line 368) | async def auto_detect_address(cls, address, auth): method auto_detect_host (line 386) | async def auto_detect_host(cls, host, ports, auth): method create_connection (line 406) | async def create_connection(self, protocol_factory, host, port, *, FILE: lbry/wallet/rpc/util.py function signature_info (line 42) | def signature_info(func): class Concurrency (line 74) | class Concurrency: method __init__ (line 76) | def __init__(self, max_concurrent): method _require_non_negative (line 81) | def _require_non_negative(self, value): method max_concurrent (line 86) | def max_concurrent(self): method set_max_concurrent (line 89) | async def set_max_concurrent(self, value): FILE: lbry/wallet/script.py function is_push_data_opcode (line 57) | def is_push_data_opcode(opcode): function is_push_data_token (line 61) | def is_push_data_token(token): function push_data (line 65) | def push_data(data): function read_data (line 81) | def read_data(token, stream): function is_small_integer (line 96) | def is_small_integer(token): function push_small_integer (line 100) | def push_small_integer(num): function read_small_integer (line 105) | def read_small_integer(token): class Token (line 109) | class Token(namedtuple('Token', 'value')): method __repr__ (line 112) | def __repr__(self): class DataToken (line 121) | class DataToken(Token): method __repr__ (line 124) | def __repr__(self): class SmallIntegerToken (line 128) | class SmallIntegerToken(Token): method __repr__ (line 131) | def __repr__(self): function token_producer (line 135) | def token_producer(source): function tokenize (line 147) | def tokenize(source): class ScriptError (line 151) | class ScriptError(Exception): class ParseError (line 155) | class ParseError(ScriptError): class Parser (line 159) | class Parser: method __init__ (line 161) | def __init__(self, opcodes, tokens): method parse (line 168) | def parse(self): method consume_many_non_greedy (line 201) | def consume_many_non_greedy(self): method push_single (line 249) | def push_single(self, opcode, value): class Template (line 260) | class Template: method __init__ (line 264) | def __init__(self, name, opcodes): method parse (line 268) | def parse(self, tokens): method generate (line 271) | def generate(self, values): class Script (line 296) | class Script: method __init__ (line 304) | def __init__(self, source=None, template=None, values=None, template_h... method template (line 313) | def template(self): method values (line 319) | def values(self): method tokens (line 325) | def tokens(self): method from_source_with_template (line 329) | def from_source_with_template(cls, source, template): method parse (line 332) | def parse(self, template_hint=None): method generate (line 347) | def generate(self): class InputScript (line 351) | class InputScript(Script): method redeem_pubkey_hash (line 385) | def redeem_pubkey_hash(cls, signature, pubkey): method redeem_multi_sig_script_hash (line 392) | def redeem_multi_sig_script_hash(cls, signatures, pubkeys): method redeem_time_lock_script_hash (line 403) | def redeem_time_lock_script_hash(cls, signature, pubkey, height=None, ... method is_script_hash (line 421) | def is_script_hash(self): class OutputScript (line 425) | class OutputScript(Script): method pay_pubkey_hash (line 507) | def pay_pubkey_hash(cls, pubkey_hash): method pay_script_hash (line 513) | def pay_script_hash(cls, script_hash): method return_data (line 519) | def return_data(cls, data): method is_pay_pubkey (line 525) | def is_pay_pubkey(self): method pay_claim_name_pubkey_hash (line 529) | def pay_claim_name_pubkey_hash(cls, claim_name, claim, pubkey_hash): method pay_update_claim_pubkey_hash (line 537) | def pay_update_claim_pubkey_hash(cls, claim_name, claim_id, claim, pub... method pay_support_pubkey_hash (line 546) | def pay_support_pubkey_hash(cls, claim_name: bytes, claim_id: bytes, p... method pay_support_data_pubkey_hash (line 554) | def pay_support_data_pubkey_hash( method is_pay_pubkey_hash (line 564) | def is_pay_pubkey_hash(self): method is_pay_script_hash (line 568) | def is_pay_script_hash(self): method is_return_data (line 572) | def is_return_data(self): method is_claim_name (line 576) | def is_claim_name(self): method is_update_claim (line 580) | def is_update_claim(self): method is_support_claim (line 584) | def is_support_claim(self): method is_support_claim_data (line 588) | def is_support_claim_data(self): method is_claim_involved (line 592) | def is_claim_involved(self): FILE: lbry/wallet/stream.py class BroadcastSubscription (line 4) | class BroadcastSubscription: method __init__ (line 6) | def __init__(self, controller, on_data, on_error, on_done): method pause (line 16) | def pause(self): method resume (line 19) | def resume(self): method cancel (line 22) | def cancel(self): method can_fire (line 27) | def can_fire(self): method _add (line 30) | def _add(self, data): method _add_error (line 34) | def _add_error(self, exception): method _close (line 38) | def _close(self): class StreamController (line 46) | class StreamController: method __init__ (line 48) | def __init__(self, merge_repeated_events=False): method has_listener (line 56) | def has_listener(self): method _iterate_subscriptions (line 60) | def _iterate_subscriptions(self): method _notify_and_ensure_future (line 67) | def _notify_and_ensure_future(self, notify): method add (line 80) | def add(self, event): method add_error (line 87) | def add_error(self, exception): method close (line 92) | def close(self): method _cancel (line 96) | def _cancel(self, subscription): method _listen (line 109) | def _listen(self, on_data, on_error, on_done): class Stream (line 122) | class Stream: method __init__ (line 124) | def __init__(self, controller): method listen (line 127) | def listen(self, on_data, on_error=None, on_done=None): method where (line 130) | def where(self, condition) -> asyncio.Future: method first (line 145) | def first(self): method _cancel_and_callback (line 154) | def _cancel_and_callback(subscription: BroadcastSubscription, future: ... method _cancel_and_error (line 159) | def _cancel_and_error(subscription: BroadcastSubscription, future: asy... FILE: lbry/wallet/tasks.py class TaskGroup (line 4) | class TaskGroup: method __init__ (line 6) | def __init__(self, loop=None): method __len__ (line 12) | def __len__(self): method add (line 15) | def add(self, coro): method _remove (line 23) | def _remove(self, task): method cancel (line 29) | def cancel(self): FILE: lbry/wallet/transaction.py class TXRefMutable (line 31) | class TXRefMutable(TXRef): method __init__ (line 35) | def __init__(self, tx: 'Transaction') -> None: method id (line 40) | def id(self): method hash (line 46) | def hash(self): method height (line 52) | def height(self): method reset (line 55) | def reset(self): class TXORef (line 60) | class TXORef: method __init__ (line 64) | def __init__(self, tx_ref: TXRef, position: int) -> None: method id (line 69) | def id(self): method hash (line 73) | def hash(self): method is_null (line 77) | def is_null(self): method txo (line 81) | def txo(self) -> Optional['Output']: class TXORefResolvable (line 85) | class TXORefResolvable(TXORef): method __init__ (line 89) | def __init__(self, txo: 'Output') -> None: method txo (line 96) | def txo(self): class InputOutput (line 100) | class InputOutput: method __init__ (line 104) | def __init__(self, tx_ref: TXRef = None, position: int = None) -> None: method size (line 109) | def size(self) -> int: method get_fee (line 115) | def get_fee(self, ledger): method serialize_to (line 118) | def serialize_to(self, stream, alternate_script=None): class Input (line 122) | class Input(InputOutput): method __init__ (line 129) | def __init__(self, txo_ref: TXORef, script: InputScript, sequence: int... method is_coinbase (line 138) | def is_coinbase(self): method spend (line 142) | def spend(cls, txo: 'Output') -> 'Input': method spend_time_lock (line 149) | def spend_time_lock(cls, txo: 'Output', script_source: bytes) -> 'Input': method amount (line 157) | def amount(self) -> int: method is_my_input (line 164) | def is_my_input(self) -> Optional[bool]: method deserialize_from (line 171) | def deserialize_from(cls, stream): method serialize_to (line 182) | def serialize_to(self, stream, alternate_script=None): class OutputEffectiveAmountEstimator (line 195) | class OutputEffectiveAmountEstimator: method __init__ (line 199) | def __init__(self, ledger: 'Ledger', txo: 'Output') -> None: method __lt__ (line 205) | def __lt__(self, other): class Output (line 209) | class Output(InputOutput): method __init__ (line 218) | def __init__(self, amount: int, script: OutputScript, method update_annotations (line 247) | def update_annotations(self, annotated: 'Output'): method ref (line 268) | def ref(self): method id (line 272) | def id(self): method is_pubkey_hash (line 276) | def is_pubkey_hash(self): method pubkey_hash (line 280) | def pubkey_hash(self): method is_script_hash (line 284) | def is_script_hash(self): method script_hash (line 288) | def script_hash(self): method has_address (line 292) | def has_address(self): method get_address (line 295) | def get_address(self, ledger): method get_estimator (line 301) | def get_estimator(self, ledger): method pay_pubkey_hash (line 305) | def pay_pubkey_hash(cls, amount, pubkey_hash): method pay_script_hash (line 309) | def pay_script_hash(cls, amount, pubkey_hash): method deserialize_from (line 313) | def deserialize_from(cls, stream): method serialize_to (line 319) | def serialize_to(self, stream, alternate_script=None): method get_fee (line 323) | def get_fee(self, ledger): method is_claim (line 330) | def is_claim(self) -> bool: method is_support (line 334) | def is_support(self) -> bool: method is_support_data (line 338) | def is_support_data(self) -> bool: method claim_hash (line 342) | def claim_hash(self) -> bytes: method claim_id (line 351) | def claim_id(self) -> str: method claim_name (line 355) | def claim_name(self) -> str: method normalized_name (line 361) | def normalized_name(self) -> str: method claim (line 365) | def claim(self) -> Claim: method can_decode_claim (line 373) | def can_decode_claim(self): method support (line 380) | def support(self) -> Support: method can_decode_support (line 388) | def can_decode_support(self): method signable (line 395) | def signable(self) -> Signable: method permanent_url (line 404) | def permanent_url(self) -> str: method has_private_key (line 410) | def has_private_key(self): method get_signature_digest (line 413) | def get_signature_digest(self, ledger): method is_signature_valid (line 429) | def is_signature_valid(signature, digest, public_key_bytes): method is_signed_by (line 434) | def is_signed_by(self, channel: 'Output', ledger=None): method sign (line 441) | def sign(self, channel: 'Output', first_input_id=None): method sign_data (line 452) | def sign_data(self, data: bytes, timestamp: str) -> str: method clear_signature (line 458) | def clear_signature(self): method set_channel_private_key (line 462) | def set_channel_private_key(self, private_key: PrivateKey): method is_channel_private_key (line 468) | def is_channel_private_key(self, private_key: PrivateKey): method pay_claim_name_pubkey_hash (line 472) | def pay_claim_name_pubkey_hash( method pay_update_claim_pubkey_hash (line 479) | def pay_update_claim_pubkey_hash( method pay_support_pubkey_hash (line 487) | def pay_support_pubkey_hash(cls, amount: int, claim_name: str, claim_i... method pay_support_data_pubkey_hash (line 494) | def pay_support_data_pubkey_hash( method add_purchase_data (line 502) | def add_purchase_data(cls, purchase: Purchase) -> 'Output': method is_purchase_data (line 507) | def is_purchase_data(self) -> bool: method purchase_data (line 514) | def purchase_data(self) -> Purchase: method can_decode_purchase_data (line 522) | def can_decode_purchase_data(self): method purchased_claim_id (line 529) | def purchased_claim_id(self): method has_price (line 536) | def has_price(self): method price (line 545) | def price(self): class Transaction (line 549) | class Transaction: method __init__ (line 551) | def __init__(self, raw=None, version: int = 1, locktime: int = 0, is_v... method is_broadcast (line 576) | def is_broadcast(self): method is_mempool (line 580) | def is_mempool(self): method is_confirmed (line 584) | def is_confirmed(self): method id (line 588) | def id(self): method hash (line 592) | def hash(self): method get_julian_day (line 595) | def get_julian_day(self, ledger): method raw (line 601) | def raw(self): method raw_sans_segwit (line 607) | def raw_sans_segwit(self): method _reset (line 614) | def _reset(self): method inputs (line 621) | def inputs(self) -> ReadOnlyList[Input]: method outputs (line 625) | def outputs(self) -> ReadOnlyList[Output]: method _add (line 628) | def _add(self, existing_ios: List, new_ios: Iterable[InputOutput], res... method add_inputs (line 637) | def add_inputs(self, inputs: Iterable[Input]) -> 'Transaction': method add_outputs (line 640) | def add_outputs(self, outputs: Iterable[Output]) -> 'Transaction': method size (line 644) | def size(self) -> int: method base_size (line 649) | def base_size(self) -> int: method input_sum (line 658) | def input_sum(self): method output_sum (line 662) | def output_sum(self): method net_account_balance (line 666) | def net_account_balance(self) -> int: method fee (line 689) | def fee(self) -> int: method get_base_fee (line 692) | def get_base_fee(self, ledger) -> int: method get_effective_input_sum (line 696) | def get_effective_input_sum(self, ledger) -> int: method get_total_output_sum (line 700) | def get_total_output_sum(self, ledger) -> int: method _serialize (line 704) | def _serialize(self, with_inputs: bool = True, sans_segwit: bool = Fal... method _serialize_for_signature (line 715) | def _serialize_for_signature(self, signing_input: int) -> bytes: method _serialize_outputs (line 733) | def _serialize_outputs(self, stream): method _deserialize (line 741) | def _deserialize(self): method ensure_all_have_same_ledger_and_wallet (line 766) | def ensure_all_have_same_ledger_and_wallet( method create (line 794) | async def create(cls, inputs: Iterable[Input], outputs: Iterable[Output], method signature_hash_type (line 865) | def signature_hash_type(hash_type): method sign (line 868) | async def sign(self, funding_accounts: Iterable['Account'], extra_keys... method pay (line 892) | def pay(cls, amount: int, address: bytes, funding_accounts: List['Acco... method claim_create (line 898) | def claim_create( method claim_update (line 910) | def claim_update( method support (line 927) | def support(cls, claim_name: str, claim_id: str, amount: int, holding_... method purchase (line 947) | def purchase(cls, claim_id: str, amount: int, merchant_address: bytes, method spend_time_lock (line 955) | async def spend_time_lock(cls, time_locked_txo: Output, script: bytes,... method my_inputs (line 964) | def my_inputs(self): method _filter_my_outputs (line 969) | def _filter_my_outputs(self, f): method _filter_other_outputs (line 974) | def _filter_other_outputs(self, f): method _filter_any_outputs (line 979) | def _filter_any_outputs(self, f): method my_claim_outputs (line 985) | def my_claim_outputs(self): method my_update_outputs (line 989) | def my_update_outputs(self): method my_support_outputs (line 993) | def my_support_outputs(self): method any_purchase_outputs (line 997) | def any_purchase_outputs(self): method other_support_outputs (line 1001) | def other_support_outputs(self): method my_abandon_outputs (line 1005) | def my_abandon_outputs(self): FILE: lbry/wallet/udp.py class SPVPing (line 20) | class SPVPing(NamedTuple): method encode (line 25) | def encode(self): method make (line 29) | def make() -> bytes: method decode (line 33) | def decode(cls, packet: bytes): class SPVPong (line 43) | class SPVPong(NamedTuple): method encode (line 51) | def encode(self): method encode_address (line 55) | def encode_address(address: str): method make (line 59) | def make(cls, flags: int, height: int, tip: bytes, source_address: str... method make_sans_source_address (line 67) | def make_sans_source_address(cls, flags: int, height: int, tip: bytes,... method decode (line 72) | def decode(cls, packet: bytes): method available (line 76) | def available(self) -> bool: method ip_address (line 80) | def ip_address(self) -> str: method country_name (line 84) | def country_name(self): method __repr__ (line 87) | def __repr__(self) -> str: class SPVServerStatusProtocol (line 93) | class SPVServerStatusProtocol(asyncio.DatagramProtocol): method __init__ (line 95) | def __init__( method update_cached_response (line 115) | def update_cached_response(self): method set_unavailable (line 120) | def set_unavailable(self): method set_available (line 124) | def set_available(self): method set_height (line 128) | def set_height(self, height: int, tip: bytes): method should_throttle (line 132) | def should_throttle(self, host: str): method make_pong (line 144) | def make_pong(self, host): method datagram_received (line 147) | def datagram_received(self, data: bytes, addr: Tuple[str, int]): method connection_made (line 162) | def connection_made(self, transport) -> None: method connection_lost (line 166) | def connection_lost(self, exc: Optional[Exception]) -> None: method close (line 170) | async def close(self): class StatusServer (line 176) | class StatusServer: method __init__ (line 177) | def __init__(self): method start (line 180) | async def start(self, height: int, tip: bytes, country: str, interface... method stop (line 191) | async def stop(self): method is_running (line 197) | def is_running(self): method set_unavailable (line 200) | def set_unavailable(self): method set_available (line 204) | def set_available(self): method set_height (line 208) | def set_height(self, height: int, tip: bytes): class SPVStatusClientProtocol (line 213) | class SPVStatusClientProtocol(asyncio.DatagramProtocol): method __init__ (line 215) | def __init__(self, responses: asyncio.Queue): method datagram_received (line 221) | def datagram_received(self, data: bytes, addr: Tuple[str, int]): method connection_made (line 227) | def connection_made(self, transport) -> None: method connection_lost (line 230) | def connection_lost(self, exc: Optional[Exception]) -> None: method ping (line 234) | def ping(self, server: Tuple[str, int]): method close (line 237) | def close(self): FILE: lbry/wallet/usage_payment.py class WalletServerPayer (line 17) | class WalletServerPayer: method __init__ (line 18) | def __init__(self, payment_period=24 * 60 * 60, max_fee='1.0', analyti... method pay (line 30) | async def pay(self): method _pay (line 46) | async def _pay(self): method start (line 92) | async def start(self, ledger=None, wallet=None): method _done_callback (line 101) | def _done_callback(self, f): method stop (line 112) | async def stop(self): FILE: lbry/wallet/util.py function date_to_julian_day (line 6) | def date_to_julian_day(d): function coins_to_satoshis (line 10) | def coins_to_satoshis(coins): function satoshis_to_coins (line 20) | def satoshis_to_coins(satoshis): class ReadOnlyList (line 31) | class ReadOnlyList(Sequence[T]): method __init__ (line 33) | def __init__(self, lst): method __getitem__ (line 36) | def __getitem__(self, key): method __len__ (line 39) | def __len__(self) -> int: function subclass_tuple (line 43) | def subclass_tuple(name, base): class cachedproperty (line 47) | class cachedproperty: method __init__ (line 49) | def __init__(self, f): method __get__ (line 52) | def __get__(self, obj, objtype): class ArithUint256 (line 59) | class ArithUint256: method __init__ (line 64) | def __init__(self, value: int) -> None: method from_compact (line 69) | def from_compact(cls, compact) -> 'ArithUint256': method value (line 78) | def value(self) -> int: method compact (line 82) | def compact(self) -> int: method negative (line 88) | def negative(self) -> int: method bits (line 92) | def bits(self) -> int: method low64 (line 101) | def low64(self) -> int: method _calculate_compact (line 104) | def _calculate_compact(self, negative=False) -> int: method __mul__ (line 122) | def __mul__(self, x): method __truediv__ (line 126) | def __truediv__(self, x): method __gt__ (line 129) | def __gt__(self, other): method __lt__ (line 132) | def __lt__(self, other): FILE: lbry/wallet/wallet.py class TimestampedPreferences (line 26) | class TimestampedPreferences(UserDict): method __init__ (line 28) | def __init__(self, d: dict = None): method __getitem__ (line 33) | def __getitem__(self, key): method __setitem__ (line 36) | def __setitem__(self, key, value): method __repr__ (line 42) | def __repr__(self): method to_dict_without_ts (line 45) | def to_dict_without_ts(self): method hash (line 51) | def hash(self): method merge (line 54) | def merge(self, other: dict): class Wallet (line 61) | class Wallet: method __init__ (line 71) | def __init__(self, name: str = 'Wallet', accounts: MutableSequence['Ac... method get_id (line 80) | def get_id(self): method add_account (line 83) | def add_account(self, account: 'Account'): method generate_account (line 86) | def generate_account(self, ledger: 'Ledger') -> 'Account': method default_account (line 90) | def default_account(self) -> Optional['Account']: method get_account_or_default (line 95) | def get_account_or_default(self, account_id: str) -> Optional['Account']: method get_account_or_error (line 100) | def get_account_or_error(self, account_id: str) -> 'Account': method get_accounts_or_all (line 106) | def get_accounts_or_all(self, account_ids: List[str]) -> Sequence['Acc... method get_detailed_accounts (line 112) | async def get_detailed_accounts(self, **kwargs): method from_storage (line 121) | def from_storage(cls, storage: 'WalletStorage', manager: 'WalletManage... method to_dict (line 134) | def to_dict(self, encrypt_password: str = None): method to_json (line 142) | def to_json(self): method save (line 146) | def save(self): method hash (line 159) | def hash(self) -> bytes: method pack (line 170) | def pack(self, password): method unpack (line 176) | def unpack(cls, password, encrypted): method merge (line 190) | def merge(self, manager: 'WalletManager', method is_locked (line 217) | def is_locked(self) -> bool: method unlock (line 223) | async def unlock(self, password): method lock (line 232) | def lock(self): method is_encrypted (line 240) | def is_encrypted(self) -> bool: method decrypt (line 247) | def decrypt(self): method encrypt (line 253) | def encrypt(self, password): class WalletStorage (line 262) | class WalletStorage: method __init__ (line 266) | def __init__(self, path=None, default=None): method read (line 275) | def read(self): method upgrade (line 288) | def upgrade(self, json_dict): method write (line 297) | def write(self, json_dict): FILE: lbry/winpaths.py class GUID (line 9) | class GUID(ctypes.Structure): method __init__ (line 17) | def __init__(self, uuid_): class FOLDERID (line 25) | class FOLDERID: class UserHandle (line 124) | class UserHandle: class PathNotFoundException (line 143) | class PathNotFoundException(Exception): function get_path (line 147) | def get_path(folderid, user_handle=UserHandle.common): FILE: scripts/check_signature.py function check (line 7) | def check(db_path, claim_id): FILE: scripts/check_video.py function enable_logging (line 14) | def enable_logging(): function process_video (line 25) | async def process_video(analyzer, video_file): function main (line 42) | def main(): FILE: scripts/checkpoints.py function main (line 10) | async def main(): FILE: scripts/checktrie.py function hex_reverted (line 10) | def hex_reverted(value: bytes) -> str: function match (line 14) | def match(name, what, value, expected): function checkrecord (line 20) | def checkrecord(record, expected_winner, expected_claim): function checkcontrolling (line 42) | async def checkcontrolling(daemon: Daemon, db: SQLDB): FILE: scripts/dht_crawler.py class SDHashSamples (line 29) | class SDHashSamples: method __init__ (line 30) | def __init__(self, samples_file_path): method read_samples (line 36) | def read_samples(self, count=1): class PeerStorage (line 42) | class PeerStorage(SQLiteMixin): method open (line 69) | async def open(self): method all_peers (line 73) | async def all_peers(self): method save_peers (line 79) | async def save_peers(self, *peers): method save_connections (line 89) | async def save_connections(self, connections_map): class DHTPeer (line 101) | class DHTPeer: method from_kad_peer (line 116) | def from_kad_peer(cls, peer, peer_id): method to_kad_peer (line 122) | def to_kad_peer(self): function new_node (line 127) | def new_node(address="0.0.0.0", udp_port=0, node_id=None): class Crawler (line 133) | class Crawler: method __init__ (line 181) | def __init__(self, db_path: str, sd_hash_samples: SDHashSamples): method open (line 189) | async def open(self): method refresh_reachable_set (line 196) | def refresh_reachable_set(self): method probe_files (line 201) | async def probe_files(self): method refresh_limit (line 244) | def refresh_limit(self): method all_peers (line 248) | def all_peers(self): method active_peers_count (line 255) | def active_peers_count(self): method checked_peers_count (line 259) | def checked_peers_count(self): method unreachable_peers_count (line 263) | def unreachable_peers_count(self): method peers_with_errors_count (line 268) | def peers_with_errors_count(self): method get_peers_needing_check (line 271) | def get_peers_needing_check(self): method remove_expired_peers (line 275) | def remove_expired_peers(self): method add_peers (line 280) | def add_peers(self, *peers): method flush_to_db (line 290) | async def flush_to_db(self): method get_from_peer (line 297) | def get_from_peer(self, peer): method set_latency (line 300) | def set_latency(self, peer, latency=None): method inc_errors (line 316) | def inc_errors(self, peer): method associate_peers (line 320) | def associate_peers(self, peer, other_peers): method request_peers (line 324) | async def request_peers(self, host, port, node_id, key=None) -> typing... method crawl_routing_table (line 355) | async def crawl_routing_table(self, host, port, node_id=None): method process (line 426) | async def process(self): class SimpleMetrics (line 467) | class SimpleMetrics: method __init__ (line 468) | def __init__(self, port): method handle_metrics_get_request (line 471) | async def handle_metrics_get_request(self, _): method start (line 481) | async def start(self): function dict_row_factory (line 490) | def dict_row_factory(cursor, row): function test (line 500) | async def test(): FILE: scripts/dht_monitor.py function init_curses (line 11) | def init_curses(): function teardown_curses (line 18) | def teardown_curses(): function refresh (line 25) | def refresh(routing_table_info): function main (line 50) | async def main(): FILE: scripts/dht_node.py class SimpleMetrics (line 21) | class SimpleMetrics: method __init__ (line 22) | def __init__(self, port, node): method handle_metrics_get_request (line 26) | async def handle_metrics_get_request(self, _): method handle_peers_csv (line 36) | async def handle_peers_csv(self, _): method handle_blobs_csv (line 44) | async def handle_blobs_csv(self, _): method start (line 52) | async def start(self): function main (line 64) | async def main(host: str, port: int, db_file_path: str, bootstrap_node: ... FILE: scripts/download_blob_from_peer.py function main (line 34) | async def main(blob_hash: str, url: str): FILE: scripts/find_max_server_load.py class AgentSmith (line 8) | class AgentSmith(ClientSession): method do_nefarious_things (line 10) | async def do_nefarious_things(self): class AgentSmithProgram (line 42) | class AgentSmithProgram: method __init__ (line 44) | def __init__(self, host, port): method make_one_more_of_them (line 48) | async def make_one_more_of_them(self): method coordinate_nefarious_activity (line 53) | async def coordinate_nefarious_activity(self): method __len__ (line 61) | def __len__(self): method delete_one_smith (line 64) | async def delete_one_smith(self): method delete_program (line 68) | async def delete_program(self): function main (line 74) | async def main(host, port): FILE: scripts/generate_json_api.py class ExampleRecorder (line 33) | class ExampleRecorder: method __init__ (line 34) | def __init__(self, test): method __call__ (line 38) | async def __call__(self, title, *command): class Examples (line 65) | class Examples(CommandTestCase): method asyncSetUp (line 67) | async def asyncSetUp(self): method play (line 71) | async def play(self): function get_examples (line 422) | def get_examples(): function get_return_def (line 438) | def get_return_def(returns): function get_api (line 457) | def get_api(name, examples): function write_api (line 500) | def write_api(f): FILE: scripts/hook-libtorrent.py function get_binaries (line 12) | def get_binaries(): FILE: scripts/monitor_slow_queries.py function listen (line 4) | async def listen(slack_client, url): function main (line 36) | async def main(): FILE: scripts/publish_performance.py class Profiler (line 16) | class Profiler: method __init__ (line 31) | def __init__(self, graph=None): method start (line 35) | def start(self, name): method stop (line 49) | def stop(self, name): method draw (line 54) | def draw(self): class ThePublisherOfThings (line 59) | class ThePublisherOfThings: method __init__ (line 61) | def __init__(self, blocks=100, txns_per_block=100, seed=2015, start_bl... method start (line 71) | def start(self): method generate_publishes (line 87) | def generate_publishes(self): method stop (line 117) | def stop(self): function generate_publishes (line 122) | def generate_publishes(_): FILE: scripts/release.py function get_github (line 27) | def get_github(): function get_labels (line 41) | def get_labels(pr, prefix): function get_label (line 48) | def get_label(pr, prefix): function get_backwards_incompatible (line 58) | def get_backwards_incompatible(desc: str): function get_release_text (line 64) | def get_release_text(desc: str): class Version (line 76) | class Version: method __init__ (line 78) | def __init__(self, major=0, minor=0, micro=0): method from_string (line 84) | def from_string(cls, version_string): method from_content (line 91) | def from_content(cls, content): method increment (line 96) | def increment(self, action): method tag (line 109) | def tag(self): method __str__ (line 112) | def __str__(self): function release (line 116) | def release(args): class TestReleaseTool (line 223) | class TestReleaseTool(unittest.TestCase): method test_version_parsing (line 225) | def test_version_parsing(self): method test_version_increment (line 229) | def test_version_increment(self): function test (line 236) | def test(): function main (line 243) | def main(): FILE: scripts/repair_0_31_1_db.py function main (line 7) | def main(): FILE: scripts/sd_hash_sampler.py function sample_prefix (line 9) | async def sample_prefix(prefix: bytes): function save_sample (line 27) | def save_sample(name: str, samples: Iterable[str]): function main (line 35) | async def main(): FILE: scripts/standalone_blob_server.py function main (line 10) | async def main(address: str): FILE: scripts/test_claim_search.py function main (line 11) | async def main(): FILE: scripts/time_to_first_byte.py function report_to_slack (line 17) | async def report_to_slack(output, webhook): function confidence (line 25) | def confidence(times, z, plus_err=True): function variance (line 32) | def variance(times): function wait_for_done (line 37) | async def wait_for_done(conf, claim_name, timeout): function main (line 50) | async def main(cmd_args=None): FILE: scripts/troubleshoot_p2p_and_dht_webservice.py function check_p2p (line 17) | async def check_p2p(ip, port): function check_dht (line 31) | async def check_dht(ip, port): function endpoint_p2p (line 36) | async def endpoint_p2p(request): function endpoint_dht (line 45) | async def endpoint_dht(request): function endpoint_default (line 54) | async def endpoint_default(request): function as_json_response_wrapper (line 58) | def as_json_response_wrapper(endpoint): FILE: scripts/wallet_server_monitor.py function handle_slow_query (line 27) | async def handle_slow_query(cursor, server, command, queries): function handle_analytics_event (line 34) | async def handle_analytics_event(cursor, event, server): function boris_says (line 73) | async def boris_says(what_boris_says): function monitor (line 85) | async def monitor(db, server): function main (line 146) | async def main(dsn, servers): function ensure_database (line 158) | def ensure_database(dsn): function get_dsn (line 278) | def get_dsn(args): function get_servers (line 287) | def get_servers(args): function get_slack_client (line 298) | def get_slack_client(args): function get_args (line 303) | def get_args(): function shutdown (line 316) | async def shutdown(signal, loop): FILE: tests/dht_mocks.py function get_time_accelerator (line 11) | def get_time_accelerator(loop: asyncio.AbstractEventLoop, function mock_network_loop (line 41) | def mock_network_loop(loop: asyncio.AbstractEventLoop, FILE: tests/integration/blockchain/test_account_commands.py function extract (line 11) | def extract(d, keys): class AccountManagement (line 15) | class AccountManagement(CommandTestCase): method test_account_list_set_create_remove_add (line 16) | async def test_account_list_set_create_remove_add(self): method test_wallet_migration (line 68) | async def test_wallet_migration(self): method assertFindsClaims (line 94) | async def assertFindsClaims(self, claim_names, awaitable): method assertOutputAmount (line 97) | async def assertOutputAmount(self, amounts, awaitable): method test_commands_across_accounts (line 100) | async def test_commands_across_accounts(self): method test_address_validation (line 193) | async def test_address_validation(self): method test_hybrid_channel_keys (line 199) | async def test_hybrid_channel_keys(self): method test_deterministic_channel_keys (line 229) | async def test_deterministic_channel_keys(self): method test_time_locked_transactions (line 295) | async def test_time_locked_transactions(self): FILE: tests/integration/blockchain/test_blockchain_reorganization.py class BlockchainReorganizationTests (line 7) | class BlockchainReorganizationTests(CommandTestCase): method assertBlockHash (line 11) | async def assertBlockHash(self, height): method test_reorg (line 32) | async def test_reorg(self): method test_reorg_change_claim_height (line 81) | async def test_reorg_change_claim_height(self): method test_reorg_drop_claim (line 158) | async def test_reorg_drop_claim(self): FILE: tests/integration/blockchain/test_network.py class NetworkTests (line 19) | class NetworkTests(IntegrationTestCase): method test_remote_height_updated_automagically (line 21) | async def test_remote_height_updated_automagically(self): method test_server_features (line 27) | async def test_server_features(self): class ReconnectTests (line 81) | class ReconnectTests(IntegrationTestCase): method test_multiple_servers (line 83) | async def test_multiple_servers(self): method test_direct_sync (line 101) | async def test_direct_sync(self): method test_connection_drop_still_receives_events_after_reconnected (line 114) | async def test_connection_drop_still_receives_events_after_reconnected... method test_timeout_then_reconnect (line 145) | async def test_timeout_then_reconnect(self): method test_timeout_and_concurrency_propagated_from_config (line 154) | async def test_timeout_and_concurrency_propagated_from_config(self): class UDPServerFailDiscoveryTest (line 175) | class UDPServerFailDiscoveryTest(AsyncioTestCase): method test_wallet_connects_despite_lack_of_udp (line 176) | async def test_wallet_connects_despite_lack_of_udp(self): class ServerPickingTestCase (line 191) | class ServerPickingTestCase(AsyncioTestCase): method _make_udp_server (line 192) | async def _make_udp_server(self, port, latency) -> StatusServer: method _make_fake_server (line 206) | async def _make_fake_server(self, latency=1.0, port=1): method _make_bad_server (line 219) | async def _make_bad_server(self, port=42420): method test_pick_fastest (line 229) | async def test_pick_fastest(self): FILE: tests/integration/blockchain/test_purchase_command.py class PurchaseCommandTests (line 8) | class PurchaseCommandTests(CommandTestCase): method asyncSetUp (line 10) | async def asyncSetUp(self): method priced_stream (line 14) | async def priced_stream( method create_purchase (line 36) | async def create_purchase(self, name, price): method assertStreamPurchased (line 43) | async def assertStreamPurchased(self, stream: Transaction, operation): method test_purchasing (line 81) | async def test_purchasing(self): method test_purchase_and_transaction_list (line 133) | async def test_purchase_and_transaction_list(self): method test_seller_can_spend_received_purchase_funds (line 173) | async def test_seller_can_spend_received_purchase_funds(self): method test_owner_not_required_purchase_own_content (line 204) | async def test_owner_not_required_purchase_own_content(self): FILE: tests/integration/blockchain/test_sync.py class SyncTests (line 8) | class SyncTests(IntegrationTestCase): method __init__ (line 12) | def __init__(self, *args, **kwargs): method asyncTearDown (line 17) | async def asyncTearDown(self): method make_wallet_node (line 25) | async def make_wallet_node(self, seed=None): method test_nodes_with_same_account_stay_in_sync (line 32) | async def test_nodes_with_same_account_stay_in_sync(self): FILE: tests/integration/blockchain/test_wallet_commands.py class WalletCommands (line 13) | class WalletCommands(CommandTestCase): method test_wallet_create_and_add_subscribe (line 15) | async def test_wallet_create_and_add_subscribe(self): method test_wallet_syncing_status (line 25) | async def test_wallet_syncing_status(self): method test_wallet_reconnect (line 49) | async def test_wallet_reconnect(self): method test_sending_to_scripthash_address (line 64) | async def test_sending_to_scripthash_address(self): method test_balance_caching (line 76) | async def test_balance_caching(self): method test_granular_balances (line 125) | async def test_granular_balances(self): class WalletEncryptionAndSynchronization (line 230) | class WalletEncryptionAndSynchronization(CommandTestCase): method asyncSetUp (line 237) | async def asyncSetUp(self): method assertWalletEncrypted (line 246) | def assertWalletEncrypted(self, wallet_path, encrypted): method test_sync (line 251) | async def test_sync(self): method test_encryption_and_locking (line 317) | async def test_encryption_and_locking(self): method test_encryption_with_imported_channel (line 359) | async def test_encryption_with_imported_channel(self): method test_locking_unlocking_does_not_break_deterministic_channels (line 370) | async def test_locking_unlocking_does_not_break_deterministic_channels... method test_sync_with_encryption_and_password_change (line 377) | async def test_sync_with_encryption_and_password_change(self): method test_wallet_import_and_export (line 429) | async def test_wallet_import_and_export(self): FILE: tests/integration/blockchain/test_wallet_server_sessions.py class TestSessions (line 13) | class TestSessions(IntegrationTestCase): method test_session_bloat_from_socket_timeout (line 17) | async def test_session_bloat_from_socket_timeout(self): method test_proper_version (line 35) | async def test_proper_version(self): method test_client_errors (line 39) | async def test_client_errors(self): class TestUsagePayment (line 47) | class TestUsagePayment(CommandTestCase): method test_single_server_payment (line 48) | async def test_single_server_payment(self): class TestESSync (line 96) | class TestESSync(CommandTestCase): method test_es_sync_utility (line 97) | async def test_es_sync_utility(self): class TestHubDiscovery (line 169) | class TestHubDiscovery(CommandTestCase): method test_hub_discovery (line 171) | async def test_hub_discovery(self): class TestStressFlush (line 245) | class TestStressFlush(CommandTestCase): method test_thousands_claim_ids_on_search (line 254) | async def test_thousands_claim_ids_on_search(self): FILE: tests/integration/claims/test_claim_commands.py function verify (line 32) | def verify(channel, data, signature, channel_hash=None): class ClaimTestCase (line 45) | class ClaimTestCase(CommandTestCase): method setUp (line 57) | def setUp(self): class ClaimSearchCommand (line 67) | class ClaimSearchCommand(ClaimTestCase): method create_channel (line 69) | async def create_channel(self): method create_lots_of_streams (line 73) | async def create_lots_of_streams(self): method assertFindsClaim (line 90) | async def assertFindsClaim(self, claim, **kwargs): method assertFindsClaims (line 93) | async def assertFindsClaims(self, claims, **kwargs): method assertListsClaims (line 106) | async def assertListsClaims(self, claims, **kwargs): method test_disconnect_on_memory_error (line 118) | async def test_disconnect_on_memory_error(self): method test_basic_claim_search (line 137) | async def test_basic_claim_search(self): method test_source_filter (line 213) | async def test_source_filter(self): method test_pagination (line 228) | async def test_pagination(self): method test_tag_search (line 268) | async def test_tag_search(self): method test_order_by (line 304) | async def test_order_by(self): method test_search_by_fee (line 320) | async def test_search_by_fee(self): method test_search_by_language (line 336) | async def test_search_by_language(self): method test_search_by_channel (line 350) | async def test_search_by_channel(self): method test_no_source_and_valid_channel_signature_and_media_type (line 406) | async def test_no_source_and_valid_channel_signature_and_media_type(se... method test_limit_claims_per_channel (line 417) | async def test_limit_claims_per_channel(self): method test_no_duplicates (line 436) | async def test_no_duplicates(self): method test_limit_claims_per_channel_across_sorted_pages (line 462) | async def test_limit_claims_per_channel_across_sorted_pages(self): method test_claim_type_and_media_type_search (line 500) | async def test_claim_type_and_media_type_search(self): method test_search_by_text (line 542) | async def test_search_by_text(self): class TransactionCommands (line 590) | class TransactionCommands(ClaimTestCase): method test_transaction_list (line 592) | async def test_transaction_list(self): class TransactionOutputCommands (line 610) | class TransactionOutputCommands(ClaimTestCase): method test_support_with_comment (line 612) | async def test_support_with_comment(self): method test_txo_list_resolve_supports (line 627) | async def test_txo_list_resolve_supports(self): method test_txo_list_by_channel_filtering (line 638) | async def test_txo_list_by_channel_filtering(self): method test_txo_list_and_sum_filtering (line 668) | async def test_txo_list_and_sum_filtering(self): method test_txo_list_my_input_output_filtering (line 738) | async def test_txo_list_my_input_output_filtering(self): method test_txo_plot (line 819) | async def test_txo_plot(self): method test_txo_spend (line 879) | async def test_txo_spend(self): class ClaimCommands (line 900) | class ClaimCommands(ClaimTestCase): method test_claim_list_filtering (line 902) | async def test_claim_list_filtering(self): method test_claim_stream_channel_list_with_resolve (line 947) | async def test_claim_stream_channel_list_with_resolve(self): method assertClaimList (line 1021) | async def assertClaimList(self, claim_ids, **kwargs): method test_list_streams_in_channel_and_order_by (line 1024) | async def test_list_streams_in_channel_and_order_by(self): method test_claim_list_with_tips (line 1037) | async def test_claim_list_with_tips(self): method stream_update_and_wait (line 1075) | async def stream_update_and_wait(self, claim_id, **kwargs): method test_claim_list_pending_edits_ordering (line 1079) | async def test_claim_list_pending_edits_ordering(self): class ChannelCommands (line 1092) | class ChannelCommands(CommandTestCase): method test_create_channel_names (line 1094) | async def test_create_channel_names(self): method test_channel_bids (line 1117) | async def test_channel_bids(self): method test_setting_channel_fields (line 1147) | async def test_setting_channel_fields(self): method test_sign_hex_encoded_data (line 1233) | async def test_sign_hex_encoded_data(self): method test_channel_export_import_before_sending_channel (line 1252) | async def test_channel_export_import_before_sending_channel(self): method test_channel_update_across_accounts (line 1277) | async def test_channel_update_across_accounts(self): method test_tag_normalization (line 1293) | async def test_tag_normalization(self): class StreamCommands (line 1308) | class StreamCommands(ClaimTestCase): method test_create_stream_names (line 1310) | async def test_create_stream_names(self): method test_stream_bids (line 1334) | async def test_stream_bids(self): method test_stream_update_and_abandon_across_accounts (line 1364) | async def test_stream_update_and_abandon_across_accounts(self): method test_publishing_checks_all_accounts_for_channel (line 1380) | async def test_publishing_checks_all_accounts_for_channel(self): method test_preview_works_with_signed_streams (line 1445) | async def test_preview_works_with_signed_streams(self): method test_repost (line 1450) | async def test_repost(self): method test_filtering_channels_for_removing_content (line 1534) | async def test_filtering_channels_for_removing_content(self): method test_publish_updates_file_list (line 1671) | async def test_publish_updates_file_list(self): method test_setting_stream_fields (line 1696) | async def test_setting_stream_fields(self): method test_setting_fee_fields (line 1867) | async def test_setting_fee_fields(self): method test_automatic_type_and_metadata_detection_for_image (line 1947) | async def test_automatic_type_and_metadata_detection_for_image(self): method test_automatic_type_and_metadata_detection_for_video (line 1966) | async def test_automatic_type_and_metadata_detection_for_video(self): method test_overriding_automatic_metadata_detection (line 1986) | async def test_overriding_automatic_metadata_detection(self): method test_update_file_type (line 2011) | async def test_update_file_type(self): method test_replace_mode_preserves_source_and_type (line 2036) | async def test_replace_mode_preserves_source_and_type(self): method test_create_update_and_abandon_stream (line 2076) | async def test_create_update_and_abandon_stream(self): method test_abandoning_stream_at_loss (line 2117) | async def test_abandoning_stream_at_loss(self): method test_publish (line 2124) | async def test_publish(self): class SupportCommands (line 2208) | class SupportCommands(CommandTestCase): method test_regular_supports_and_tip_supports (line 2210) | async def test_regular_supports_and_tip_supports(self): method test_signed_supports_with_no_change_txo_regression (line 2294) | async def test_signed_supports_with_no_change_txo_regression(self): class CollectionCommands (line 2305) | class CollectionCommands(CommandTestCase): method test_collections (line 2307) | async def test_collections(self): FILE: tests/integration/datanetwork/test_dht.py class DHTIntegrationTest (line 13) | class DHTIntegrationTest(AsyncioTestCase): method asyncSetUp (line 15) | async def asyncSetUp(self): method create_node (line 24) | async def create_node(self, node_id, port, external_ip='127.0.0.1'): method setup_network (line 36) | async def setup_network(self, size: int, start_port=40000, seed_nodes=... method test_replace_bad_nodes (line 47) | async def test_replace_bad_nodes(self): method test_re_join (line 68) | async def test_re_join(self): method test_announce_no_peers (line 89) | async def test_announce_no_peers(self): method test_get_token_on_announce (line 96) | async def test_get_token_on_announce(self): method test_peer_search_removes_bad_peers (line 111) | async def test_peer_search_removes_bad_peers(self): method test_peer_persistance (line 133) | async def test_peer_persistance(self): FILE: tests/integration/datanetwork/test_file_commands.py class FileCommands (line 16) | class FileCommands(CommandTestCase): method __init__ (line 17) | def __init__(self, *a, **kw): method add_forever (line 21) | async def add_forever(self): method initialize_torrent (line 27) | async def initialize_torrent(self, tx_to_update=None): method test_download_torrent (line 55) | async def test_download_torrent(self): method create_streams_in_range (line 76) | async def create_streams_in_range(self, *args, **kwargs): method test_file_reflect (line 82) | async def test_file_reflect(self): method test_sd_blob_fields_fallback (line 92) | async def test_sd_blob_fields_fallback(self): method test_file_management (line 107) | async def test_file_management(self): method test_tracker_discovery (line 128) | async def test_tracker_discovery(self): method test_announces (line 154) | async def test_announces(self): method _purge_file (line 166) | async def _purge_file(self, claim_name, full_path): method test_publish_with_illegal_chars (line 173) | async def test_publish_with_illegal_chars(self): method test_file_list_fields (line 239) | async def test_file_list_fields(self): method test_get_doesnt_touch_user_written_files_between_calls (line 255) | async def test_get_doesnt_touch_user_written_files_between_calls(self): method test_file_list_updated_metadata_on_resolve (line 269) | async def test_file_list_updated_metadata_on_resolve(self): method test_sourceless_content (line 282) | async def test_sourceless_content(self): method test_file_list_paginated_output (line 296) | async def test_file_list_paginated_output(self): method test_download_different_timeouts (line 328) | async def test_download_different_timeouts(self): method wait_files_to_complete (line 345) | async def wait_files_to_complete(self): method test_filename_conflicts_management_on_resume_download (line 349) | async def test_filename_conflicts_management_on_resume_download(self): method test_incomplete_downloads_erases_output_file_on_stop (line 367) | async def test_incomplete_downloads_erases_output_file_on_stop(self): method test_incomplete_downloads_retry (line 388) | async def test_incomplete_downloads_retry(self): method test_paid_download (line 426) | async def test_paid_download(self): method test_null_max_key_fee (line 503) | async def test_null_max_key_fee(self): method test_null_fee (line 531) | async def test_null_fee(self): method __raw_value_update_no_fee_address (line 549) | async def __raw_value_update_no_fee_address(self, tx, claim_address, *... method __raw_value_update_no_fee_amount (line 558) | async def __raw_value_update_no_fee_amount(self, tx, claim_address): class DiskSpaceManagement (line 569) | class DiskSpaceManagement(CommandTestCase): method get_referenced_blobs (line 571) | async def get_referenced_blobs(self, tx): method test_file_management (line 578) | async def test_file_management(self): class TestBackgroundDownloaderComponent (line 635) | class TestBackgroundDownloaderComponent(CommandTestCase): method get_blobs_from_sd_blob (line 636) | async def get_blobs_from_sd_blob(self, sd_blob): method assertBlobs (line 642) | async def assertBlobs(self, *sd_hashes, no_files=True): method clear (line 656) | async def clear(self): method test_download (line 662) | async def test_download(self): FILE: tests/integration/datanetwork/test_streaming.py function get_random_bytes (line 14) | def get_random_bytes(n: int) -> bytes: class RangeRequests (line 24) | class RangeRequests(CommandTestCase): method _restart_stream_manager (line 25) | async def _restart_stream_manager(self): method _setup_stream (line 30) | async def _setup_stream(self, data: bytes, save_blobs: bool = True, sa... method _test_range_requests (line 47) | async def _test_range_requests(self): method test_range_requests_2_byte (line 59) | async def test_range_requests_2_byte(self): method test_range_requests_15_byte (line 67) | async def test_range_requests_15_byte(self): method test_range_requests_0_padded_bytes (line 76) | async def test_range_requests_0_padded_bytes(self, size: int = (MAX_BL... method test_range_requests_1_padded_bytes (line 86) | async def test_range_requests_1_padded_bytes(self): method test_range_requests_2_padded_bytes (line 91) | async def test_range_requests_2_padded_bytes(self): method test_range_requests_14_padded_bytes (line 96) | async def test_range_requests_14_padded_bytes(self): method test_range_requests_no_padding_size_from_claim (line 101) | async def test_range_requests_no_padding_size_from_claim(self): method test_range_requests_15_padded_bytes (line 106) | async def test_range_requests_15_padded_bytes(self): method test_forbidden (line 111) | async def test_forbidden(self): method test_range_requests_last_block_of_last_blob_padding (line 119) | async def test_range_requests_last_block_of_last_blob_padding(self): method test_streaming_only_with_blobs (line 127) | async def test_streaming_only_with_blobs(self): method test_streaming_only_without_blobs (line 172) | async def test_streaming_only_without_blobs(self): method test_stream_and_save_file_with_blobs (line 212) | async def test_stream_and_save_file_with_blobs(self): method test_stream_and_save_file_without_blobs (line 266) | async def test_stream_and_save_file_without_blobs(self): method test_switch_save_blobs_while_running (line 313) | async def test_switch_save_blobs_while_running(self): method test_file_save_streaming_only_save_blobs (line 334) | async def test_file_save_streaming_only_save_blobs(self): method test_file_save_stop_before_finished_streaming_only (line 347) | async def test_file_save_stop_before_finished_streaming_only(self, wai... method test_file_save_stop_before_finished_streaming_only_wait_for_start (line 374) | async def test_file_save_stop_before_finished_streaming_only_wait_for_... method test_file_save_streaming_only_dont_save_blobs (line 377) | async def test_file_save_streaming_only_dont_save_blobs(self): class RangeRequestsLRUCache (line 388) | class RangeRequestsLRUCache(CommandTestCase): method _request_stream (line 391) | async def _request_stream(self): method test_range_requests_with_blob_lru_cache (line 405) | async def test_range_requests_with_blob_lru_cache(self): FILE: tests/integration/other/test_chris45.py class EpicAdventuresOfChris45 (line 4) | class EpicAdventuresOfChris45(CommandTestCase): method test_no_this_is_not_a_test_its_an_adventure (line 6) | async def test_no_this_is_not_a_test_its_an_adventure(self): FILE: tests/integration/other/test_cli.py class CLIIntegrationTest (line 18) | class CLIIntegrationTest(AsyncioTestCase): method asyncSetUp (line 20) | async def asyncSetUp(self): method test_cli_status_command_with_auth (line 36) | def test_cli_status_command_with_auth(self): method test_when_download_dir_non_writable_on_start_then_daemon_dies_with_helpful_msg (line 43) | def test_when_download_dir_non_writable_on_start_then_daemon_dies_with... FILE: tests/integration/other/test_exchange_rate_manager.py class TestExchangeRateManager (line 9) | class TestExchangeRateManager(AsyncioTestCase): method test_it_handles_feed_being_offline (line 33) | async def test_it_handles_feed_being_offline(self): FILE: tests/integration/other/test_other_commands.py class AddressManagement (line 4) | class AddressManagement(CommandTestCase): method test_address_list (line 6) | async def test_address_list(self): class SettingsManagement (line 15) | class SettingsManagement(CommandTestCase): method test_settings (line 17) | async def test_settings(self): class TroubleshootingCommands (line 37) | class TroubleshootingCommands(CommandTestCase): method test_tracemalloc_commands (line 38) | async def test_tracemalloc_commands(self): FILE: tests/integration/other/test_transcoding.py class MeasureTime (line 12) | class MeasureTime: method __init__ (line 13) | def __init__(self, text): method __enter__ (line 16) | def __enter__(self): method __exit__ (line 19) | def __exit__(self, exc_type, exc_val, exc_tb): class TranscodeValidation (line 24) | class TranscodeValidation(ClaimTestCase): method make_name (line 26) | def make_name(self, name, extension=""): method asyncSetUp (line 30) | async def asyncSetUp(self): method test_should_work (line 54) | async def test_should_work(self): method test_volume (line 65) | async def test_volume(self): method test_container (line 70) | async def test_container(self): method test_video_codec (line 84) | async def test_video_codec(self): method test_max_bit_rate (line 100) | async def test_max_bit_rate(self): method test_video_format (line 105) | async def test_video_format(self): method test_audio_codec (line 120) | async def test_audio_codec(self): method test_extension_choice (line 134) | async def test_extension_choice(self): method test_no_ffmpeg (line 157) | async def test_no_ffmpeg(self): method test_dont_recheck_ffmpeg_installation (line 164) | async def test_dont_recheck_ffmpeg_installation(self): FILE: tests/integration/takeovers/test_resolve_command.py class ClaimStateValue (line 16) | class ClaimStateValue(NamedTuple): class BaseResolveTestCase (line 22) | class BaseResolveTestCase(CommandTestCase): method assertMatchESClaim (line 24) | def assertMatchESClaim(self, claim_from_es, claim_from_db): method assertMatchDBClaim (line 34) | def assertMatchDBClaim(self, expected, claim): method assertResolvesToClaimId (line 43) | async def assertResolvesToClaimId(self, name, claim_id): method assertNoClaimForName (line 56) | async def assertNoClaimForName(self, name: str): method assertNoClaim (line 68) | async def assertNoClaim(self, name: str, claim_id: str): method assertMatchWinningClaim (line 79) | async def assertMatchWinningClaim(self, name): method _assertMatchClaim (line 87) | async def _assertMatchClaim(self, expected, claim): method assertMatchClaim (line 97) | async def assertMatchClaim(self, name, claim_id, is_active_in_lbrycrd=... method assertMatchClaimIsWinning (line 121) | async def assertMatchClaimIsWinning(self, name, claim_id): method _check_supports (line 125) | def _check_supports(self, claim_id, lbrycrd_supports, es_support_amount): method assertMatchClaimsForName (line 150) | async def assertMatchClaimsForName(self, name): method assertNameState (line 170) | async def assertNameState(self, height: int, name: str, winning_claim_... class ResolveCommand (line 182) | class ResolveCommand(BaseResolveTestCase): method test_colliding_short_id (line 183) | async def test_colliding_short_id(self): method test_abandon_channel_and_claims_in_same_tx (line 233) | async def test_abandon_channel_and_claims_in_same_tx(self): method test_resolve_response (line 254) | async def test_resolve_response(self): method test_winning_by_effective_amount (line 322) | async def test_winning_by_effective_amount(self): method test_resolve_duplicate_name_in_channel (line 344) | async def test_resolve_duplicate_name_in_channel(self): method test_advanced_resolve (line 368) | async def test_advanced_resolve(self): method test_abandoned_channel_with_signed_claims (line 427) | async def test_abandoned_channel_with_signed_claims(self): method test_normalization_resolution (line 475) | async def test_normalization_resolution(self): method test_resolve_old_claim (line 512) | async def test_resolve_old_claim(self): method test_resolve_with_includes (line 542) | async def test_resolve_with_includes(self): class ResolveClaimTakeovers (line 610) | class ResolveClaimTakeovers(BaseResolveTestCase): method test_channel_invalidation (line 611) | async def test_channel_invalidation(self): method _test_activation_delay (line 681) | async def _test_activation_delay(self): method test_activation_delay (line 701) | async def test_activation_delay(self): method test_activation_delay_then_abandon_then_reclaim (line 704) | async def test_activation_delay_then_abandon_then_reclaim(self): method create_stream_claim (line 713) | async def create_stream_claim(self, amount: str, name='derp') -> str: method assertNameState (line 716) | async def assertNameState(self, height: int, name: str, winning_claim_... method test_delay_takeover_with_update (line 727) | async def test_delay_takeover_with_update(self): method test_delay_takeover_with_update_then_update_to_lower_before_takeover (line 789) | async def test_delay_takeover_with_update_then_update_to_lower_before_... method test_delay_takeover_with_update_then_update_to_lower_on_takeover (line 861) | async def test_delay_takeover_with_update_then_update_to_lower_on_take... method test_delay_takeover_with_update_then_update_to_lower_after_takeover (line 941) | async def test_delay_takeover_with_update_then_update_to_lower_after_t... method test_resolve_signed_claims_with_fees (line 1021) | async def test_resolve_signed_claims_with_fees(self): method test_spec_example (line 1059) | async def test_spec_example(self): method test_early_takeover (line 1135) | async def test_early_takeover(self): method test_early_takeover_zero_delay (line 1156) | async def test_early_takeover_zero_delay(self): method test_early_takeover_from_support_zero_delay (line 1177) | async def test_early_takeover_from_support_zero_delay(self): method test_early_takeover_from_support_and_claim_zero_delay (line 1198) | async def test_early_takeover_from_support_and_claim_zero_delay(self): method test_early_takeover_abandoned_controlling_support (line 1233) | async def test_early_takeover_abandoned_controlling_support(self): method test_block_takeover_with_delay_1_support (line 1259) | async def test_block_takeover_with_delay_1_support(self): method test_block_takeover_with_delay_0_support (line 1281) | async def test_block_takeover_with_delay_0_support(self): method _test_almost_prevent_takeover (line 1299) | async def _test_almost_prevent_takeover(self, name: str, blocks: int =... method test_almost_prevent_takeover_remove_support_same_block_supported (line 1317) | async def test_almost_prevent_takeover_remove_support_same_block_suppo... method test_almost_prevent_takeover_remove_support_one_block_after_supported (line 1324) | async def test_almost_prevent_takeover_remove_support_one_block_after_... method test_abandon_before_takeover (line 1332) | async def test_abandon_before_takeover(self): method test_abandon_before_takeover_no_delay_update (line 1354) | async def test_abandon_before_takeover_no_delay_update(self): # TODO:... method test_abandon_controlling_support_before_pending_takeover (line 1385) | async def test_abandon_controlling_support_before_pending_takeover(self): method test_remove_controlling_support (line 1412) | async def test_remove_controlling_support(self): method test_claim_expiration (line 1449) | async def test_claim_expiration(self): method _test_add_non_winning_already_claimed (line 1472) | async def _test_add_non_winning_already_claimed(self): method test_abandon_controlling_same_block_as_new_claim (line 1490) | async def test_abandon_controlling_same_block_as_new_claim(self): method test_trending (line 1501) | async def test_trending(self): class ResolveAfterReorg (line 1548) | class ResolveAfterReorg(BaseResolveTestCase): method reorg (line 1549) | async def reorg(self, start): method assertBlockHash (line 1558) | async def assertBlockHash(self, height): method test_reorg (line 1572) | async def test_reorg(self): method test_reorg_change_claim_height (line 1643) | async def test_reorg_change_claim_height(self): method test_reorg_drop_claim (line 1722) | async def test_reorg_drop_claim(self): function generate_signed_legacy (line 1802) | def generate_signed_legacy(address: bytes, output: Output): FILE: tests/integration/transactions/test_internal_transaction_api.py class BasicTransactionTest (line 11) | class BasicTransactionTest(IntegrationTestCase): method test_creating_updating_and_abandoning_claim_with_channel (line 15) | async def test_creating_updating_and_abandoning_claim_with_channel(self): FILE: tests/integration/transactions/test_transaction_commands.py class TransactionCommandsTestCase (line 7) | class TransactionCommandsTestCase(CommandTestCase): method test_txo_dust_prevention (line 9) | async def test_txo_dust_prevention(self): method test_transaction_show (line 20) | async def test_transaction_show(self): method test_utxo_release (line 69) | async def test_utxo_release(self): class TestSegwit (line 80) | class TestSegwit(CommandTestCase): method test_segwit (line 83) | async def test_segwit(self): FILE: tests/integration/transactions/test_transactions.py class BasicTransactionTests (line 11) | class BasicTransactionTests(IntegrationTestCase): method test_variety_of_transactions_and_longish_history (line 12) | async def test_variety_of_transactions_and_longish_history(self): method test_sending_and_receiving (line 82) | async def test_sending_and_receiving(self): method test_history_edge_cases (line 132) | async def test_history_edge_cases(self): method _test_transaction (line 172) | async def _test_transaction(self, send_amount, address, inputs, change): method assertSpendable (line 186) | async def assertSpendable(self, amounts): method test_sqlite_coin_chooser (line 193) | async def test_sqlite_coin_chooser(self): FILE: tests/test_utils.py function mk_db_and_blob_dir (line 14) | def mk_db_and_blob_dir(): function rm_db_and_blob_dir (line 20) | def rm_db_and_blob_dir(db_dir, blob_dir): function random_lbry_hash (line 25) | def random_lbry_hash(): function reset_time (line 29) | def reset_time(test_case, timestamp=DEFAULT_TIMESTAMP): function is_android (line 44) | def is_android(): FILE: tests/unit/analytics/test_track.py class TrackTest (line 8) | class TrackTest(unittest.TestCase): method test_empty_summarize_is_none (line 9) | def test_empty_summarize_is_none(self): method test_can_get_sum_of_metric (line 14) | def test_can_get_sum_of_metric(self): method test_summarize_resets_metric (line 22) | def test_summarize_resets_metric(self): FILE: tests/unit/blob/test_blob_file.py class TestBlob (line 13) | class TestBlob(AsyncioTestCase): method asyncSetUp (line 17) | async def asyncSetUp(self): method _get_blob (line 26) | def _get_blob(self, blob_class=AbstractBlob, blob_directory=None): method _test_create_blob (line 33) | async def _test_create_blob(self, blob_class=AbstractBlob, blob_direct... method _test_close_writers_on_finished (line 42) | async def _test_close_writers_on_finished(self, blob_class=AbstractBlo... method _test_ioerror_if_length_not_set (line 64) | def _test_ioerror_if_length_not_set(self, blob_class=AbstractBlob, blo... method _test_invalid_blob_bytes (line 74) | async def _test_invalid_blob_bytes(self, blob_class=AbstractBlob, blob... method test_add_blob_buffer_to_db (line 85) | async def test_add_blob_buffer_to_db(self): method test_add_blob_file_to_db (line 90) | async def test_add_blob_file_to_db(self): method test_invalid_blob_bytes (line 95) | async def test_invalid_blob_bytes(self): method test_ioerror_if_length_not_set (line 99) | def test_ioerror_if_length_not_set(self): method test_create_blob_file (line 105) | async def test_create_blob_file(self): method test_create_blob_buffer (line 116) | async def test_create_blob_buffer(self): method test_close_writers_on_finished (line 130) | async def test_close_writers_on_finished(self): method test_concurrency_and_premature_closes (line 136) | async def test_concurrency_and_premature_closes(self): method test_delete (line 152) | async def test_delete(self): method test_delete_corrupt (line 172) | async def test_delete_corrupt(self): method test_invalid_blob_hash (line 198) | def test_invalid_blob_hash(self): method _test_close_reader (line 203) | async def _test_close_reader(self, blob_class=AbstractBlob, blob_direc... method test_close_reader (line 221) | async def test_close_reader(self): FILE: tests/unit/blob/test_blob_manager.py class TestBlobManager (line 10) | class TestBlobManager(AsyncioTestCase): method setup_blob_manager (line 11) | async def setup_blob_manager(self, save_blobs=True): method test_memory_blobs_arent_verified_but_real_ones_are (line 19) | async def test_memory_blobs_arent_verified_but_real_ones_are(self): method test_sync_blob_file_manager_on_startup (line 32) | async def test_sync_blob_file_manager_on_startup(self): FILE: tests/unit/blob_exchange/test_transfer_blob.py function mock_config (line 25) | def mock_config(): class BlobExchangeTestBase (line 31) | class BlobExchangeTestBase(AsyncioTestCase): method asyncSetUp (line 32) | async def asyncSetUp(self): class TestBlobExchange (line 76) | class TestBlobExchange(BlobExchangeTestBase): method _add_blob_to_server (line 77) | async def _add_blob_to_server(self, blob_hash: str, blob_bytes: bytes): method _test_transfer_blob (line 87) | async def _test_transfer_blob(self, blob_hash: str): method test_transfer_sd_blob (line 100) | async def test_transfer_sd_blob(self): method test_transfer_blob (line 106) | async def test_transfer_blob(self): method test_host_same_blob_to_multiple_peers_at_once (line 112) | async def test_host_same_blob_to_multiple_peers_at_once(self): method test_blob_writers_concurrency (line 143) | async def test_blob_writers_concurrency(self): method test_host_different_blobs_to_multiple_peers_at_once (line 204) | async def test_host_different_blobs_to_multiple_peers_at_once(self): method test_server_chunked_request (line 239) | async def test_server_chunked_request(self): method test_idle_timeout (line 254) | async def test_idle_timeout(self): method test_max_request_size (line 293) | def test_max_request_size(self): method test_bad_json (line 302) | def test_bad_json(self): method test_no_request (line 309) | def test_no_request(self): method test_transfer_timeout (line 316) | async def test_transfer_timeout(self): method test_download_blob_using_jsonrpc_blob_get (line 335) | async def test_download_blob_using_jsonrpc_blob_get(self): FILE: tests/unit/components/test_component_manager.py class TestComponentManager (line 13) | class TestComponentManager(AsyncioTestCase): method setUp (line 15) | def setUp(self): method test_sort_components (line 42) | def test_sort_components(self): method test_sort_components_reverse (line 47) | def test_sort_components_reverse(self): method test_get_component_not_exists (line 53) | def test_get_component_not_exists(self): class TestComponentManagerOverrides (line 58) | class TestComponentManagerOverrides(AsyncioTestCase): method test_init_with_overrides (line 60) | def test_init_with_overrides(self): method test_init_with_wrong_overrides (line 78) | def test_init_with_wrong_overrides(self): class FakeComponent (line 87) | class FakeComponent: method __init__ (line 91) | def __init__(self, component_manager): method running (line 96) | def running(self): method start (line 99) | async def start(self): method stop (line 102) | async def stop(self): method component (line 106) | def component(self): method _setup (line 109) | async def _setup(self): method _stop (line 114) | async def _stop(self): method get_status (line 119) | async def get_status(self): method __lt__ (line 122) | def __lt__(self, other): class FakeDelayedWallet (line 126) | class FakeDelayedWallet(FakeComponent): method stop (line 132) | async def stop(self): class FakeDelayedBlobManager (line 136) | class FakeDelayedBlobManager(FakeComponent): method start (line 140) | async def start(self): method stop (line 143) | async def stop(self): class FakeDelayedFileManager (line 147) | class FakeDelayedFileManager(FakeComponent): method start (line 151) | async def start(self): method get_filtered (line 154) | def get_filtered(self): class TestComponentManagerProperStart (line 158) | class TestComponentManagerProperStart(AdvanceTimeTestCase): method setUp (line 160) | def setUp(self): method test_proper_starting_of_components (line 172) | async def test_proper_starting_of_components(self): method test_proper_stopping_of_components (line 190) | async def test_proper_stopping_of_components(self): FILE: tests/unit/core/test_utils.py class CompareVersionTest (line 7) | class CompareVersionTest(unittest.TestCase): method test_compare_versions_isnot_lexographic (line 8) | def test_compare_versions_isnot_lexographic(self): method test_same_versions_return_false (line 11) | def test_same_versions_return_false(self): method test_same_release_is_greater_then_beta (line 14) | def test_same_release_is_greater_then_beta(self): method test_version_can_have_four_parts (line 17) | def test_version_can_have_four_parts(self): method test_release_is_greater_than_rc (line 20) | def test_release_is_greater_than_rc(self): class ObfuscationTest (line 24) | class ObfuscationTest(unittest.TestCase): method test_deobfuscation_reverses_obfuscation (line 25) | def test_deobfuscation_reverses_obfuscation(self): method test_can_use_unicode (line 30) | def test_can_use_unicode(self): class SdHashTests (line 36) | class SdHashTests(unittest.TestCase): method test_none_in_none_out (line 38) | def test_none_in_none_out(self): method test_ordinary_dict (line 41) | def test_ordinary_dict(self): method test_old_shape_fails (line 55) | def test_old_shape_fails(self): class CacheConcurrentDecoratorTests (line 66) | class CacheConcurrentDecoratorTests(AsyncioTestCase): method setUp (line 67) | def setUp(self): method foo (line 73) | async def foo(self, arg1, arg2=None, delay=1): method test_gather_duplicates (line 80) | async def test_gather_duplicates(self): method test_one_cancelled_all_cancel (line 90) | async def test_one_cancelled_all_cancel(self): method test_error_after_success (line 102) | async def test_error_after_success(self): method test_break_it (line 130) | async def test_break_it(self): FILE: tests/unit/database/test_SQLiteStorage.py function blob_info_dict (line 19) | def blob_info_dict(blob_info): class StorageTest (line 71) | class StorageTest(AsyncioTestCase): method asyncSetUp (line 72) | async def asyncSetUp(self): method asyncTearDown (line 80) | async def asyncTearDown(self): method store_fake_blob (line 83) | async def store_fake_blob(self, blob_hash, length=100): method store_fake_stream (line 86) | async def store_fake_stream(self, stream_hash, blobs=None, file_name="... method make_and_store_fake_stream (line 95) | async def make_and_store_fake_stream(self, blob_count=2, stream_hash=N... class TestSQLiteStorage (line 104) | class TestSQLiteStorage(StorageTest): method test_setup (line 105) | async def test_setup(self): method test_store_blob (line 111) | async def test_store_blob(self): method test_delete_blob (line 117) | async def test_delete_blob(self): method test_supports_storage (line 126) | async def test_supports_storage(self): class StreamStorageTests (line 148) | class StreamStorageTests(StorageTest): method test_store_and_delete_stream (line 149) | async def test_store_and_delete_stream(self): class FileStorageTests (line 164) | class FileStorageTests(StorageTest): method test_store_file (line 165) | async def test_store_file(self): class ContentClaimStorageTests (line 194) | class ContentClaimStorageTests(StorageTest): method test_store_content_claim (line 195) | async def test_store_content_claim(self): class UpdatePeersTest (line 254) | class UpdatePeersTest(StorageTest): method test_update_get_peers (line 255) | async def test_update_get_peers(self): FILE: tests/unit/dht/protocol/test_data_store.py class DataStoreTests (line 7) | class DataStoreTests(TestCase): method setUp (line 8) | def setUp(self): method _test_add_peer_to_blob (line 14) | def _test_add_peer_to_blob(self, blob=b'2' * 48, node_id=b'1' * 48, ad... method test_refresh_peer_to_blob (line 23) | def test_refresh_peer_to_blob(self): method test_add_peer_to_blob (line 35) | def test_add_peer_to_blob(self, blob=b'f' * 48, peers=None): method test_get_storing_contacts (line 49) | def test_get_storing_contacts(self, peers=None, blob1=b'd' * 48, blob2... method test_remove_expired_peers (line 66) | def test_remove_expired_peers(self): FILE: tests/unit/dht/protocol/test_distance.py class DistanceTests (line 5) | class DistanceTests(unittest.TestCase): method test_invalid_key_length (line 6) | def test_invalid_key_length(self): FILE: tests/unit/dht/protocol/test_kbucket.py function address_generator (line 10) | def address_generator(address=(1, 2, 3, 4)): class TestKBucket (line 24) | class TestKBucket(AsyncioTestCase): method setUp (line 25) | def setUp(self): method test_add_peer (line 31) | def test_add_peer(self): method test_remove_peer (line 126) | def test_remove_peer(self): FILE: tests/unit/dht/protocol/test_protocol.py class TestProtocol (line 11) | class TestProtocol(AsyncioTestCase): method test_ping (line 12) | async def test_ping(self): method test_update_token (line 33) | async def test_update_token(self): method test_store_to_peer (line 55) | async def test_store_to_peer(self): method _make_protocol (line 100) | async def _make_protocol(self, other_peer, node_id, address, udp_port,... method test_add_peer_after_handle_request (line 108) | async def test_add_peer_after_handle_request(self): FILE: tests/unit/dht/protocol/test_routing_table.py class TestRouting (line 32) | class TestRouting(AsyncioTestCase): method test_fill_one_bucket (line 33) | async def test_fill_one_bucket(self): method test_cant_add_peer_without_a_node_id_gracefully (line 69) | async def test_cant_add_peer_without_a_node_id_gracefully(self): method test_split_buckets (line 79) | async def test_split_buckets(self): FILE: tests/unit/dht/serialization/test_bencoding.py class EncodeDecodeTest (line 5) | class EncodeDecodeTest(unittest.TestCase): method test_fail_with_not_dict (line 6) | def test_fail_with_not_dict(self): method test_fail_bad_type (line 20) | def test_fail_bad_type(self): method test_integer (line 24) | def test_integer(self): method test_bytes (line 28) | def test_bytes(self): method test_string (line 38) | def test_string(self): method test_list (line 43) | def test_list(self): method test_dict (line 47) | def test_dict(self): method test_mixed (line 51) | def test_mixed(self): method test_decode_error (line 62) | def test_decode_error(self): FILE: tests/unit/dht/serialization/test_datagram.py class TestDatagram (line 11) | class TestDatagram(unittest.TestCase): method test_ping_request_datagram (line 12) | def test_ping_request_datagram(self): method test_ping_response (line 24) | def test_ping_response(self): method test_find_node_request_datagram (line 35) | def test_find_node_request_datagram(self): method test_find_node_response (line 49) | def test_find_node_response(self): method test_find_value_request (line 60) | def test_find_value_request(self): method test_find_value_response_without_pages_field (line 85) | def test_find_value_response_without_pages_field(self): method test_find_value_response_with_pages_field (line 94) | def test_find_value_response_with_pages_field(self): method test_store_request (line 103) | def test_store_request(self): method test_error_datagram (line 117) | def test_error_datagram(self): method test_invalid_datagram_type (line 126) | def test_invalid_datagram_type(self): method test_optional_field_backwards_compatible (line 132) | def test_optional_field_backwards_compatible(self): method test_str_or_int_keys (line 144) | def test_str_or_int_keys(self): method test_mixed_str_or_int_keys (line 156) | def test_mixed_str_or_int_keys(self): class TestCompactAddress (line 177) | class TestCompactAddress(unittest.TestCase): method test_encode_decode (line 178) | def test_encode_decode(self, address='1.2.3.4', port=4444, node_id=b'1... method test_errors (line 182) | def test_errors(self): FILE: tests/unit/dht/test_blob_announcer.py class TestBlobAnnouncer (line 19) | class TestBlobAnnouncer(AsyncioTestCase): method setup_node (line 20) | async def setup_node(self, peer_addresses, address, node_id): method add_peer (line 42) | async def add_peer(self, node_id, address, add_to_routing_table=True): method add_peer_to_routing_table (line 50) | def add_peer_to_routing_table(self, adder, being_added): method _test_network_context (line 58) | async def _test_network_context(self, peer_count=200): method chain_peer (line 73) | async def chain_peer(self, node_id, address): method test_announce_blobs (line 86) | async def test_announce_blobs(self): method test_popular_blob (line 143) | async def test_popular_blob(self): FILE: tests/unit/dht/test_node.py class TestBootstrapNode (line 14) | class TestBootstrapNode(AsyncioTestCase): method test_bootstrap_node_adds_all_peers (line 17) | async def test_bootstrap_node_adds_all_peers(self): class TestNodePingQueueDiscover (line 43) | class TestNodePingQueueDiscover(AsyncioTestCase): method test_ping_queue_discover (line 44) | async def test_ping_queue_discover(self): class TestTemporarilyLosingConnection (line 123) | class TestTemporarilyLosingConnection(AsyncioTestCase): method test_losing_connection (line 125) | async def test_losing_connection(self): FILE: tests/unit/dht/test_peer.py class PeerTest (line 8) | class PeerTest(AsyncioTestCase): method setUp (line 9) | def setUp(self): method test_peer_is_good_unknown_peer (line 16) | def test_peer_is_good_unknown_peer(self): method test_make_contact_error_cases (line 26) | def test_make_contact_error_cases(self): method test_is_valid_ipv4 (line 61) | def test_is_valid_ipv4(self): method test_boolean (line 80) | def test_boolean(self): method test_compact_ip (line 86) | def test_compact_ip(self): class TestContactLastReplied (line 92) | class TestContactLastReplied(unittest.TestCase): method setUp (line 93) | def setUp(self): method test_stale_replied_to_us (line 100) | def test_stale_replied_to_us(self): method test_stale_requested_from_us (line 104) | def test_stale_requested_from_us(self): method test_stale_then_fail (line 108) | def test_stale_then_fail(self): method test_good_turned_stale (line 115) | def test_good_turned_stale(self): method test_good_then_fail (line 123) | def test_good_then_fail(self): method test_good_then_fail_then_good (line 137) | def test_good_then_fail_then_good(self): class TestContactLastRequested (line 163) | class TestContactLastRequested(unittest.TestCase): method setUp (line 164) | def setUp(self): method test_previous_replied_then_requested (line 173) | def test_previous_replied_then_requested(self): method test_previous_replied_then_requested_then_failed (line 184) | def test_previous_replied_then_requested_then_failed(self): FILE: tests/unit/lbrynet_daemon/test_Daemon.py function get_test_daemon (line 22) | def get_test_daemon(conf: Config, with_fee=False): class TestCostEst (line 73) | class TestCostEst(unittest.TestCase): method setUp (line 74) | def setUp(self): method test_fee_and_generous_data (line 77) | def test_fee_and_generous_data(self): method test_generous_data_and_no_fee (line 84) | def test_generous_data_and_no_fee(self): class TestJsonRpc (line 93) | class TestJsonRpc(unittest.TestCase): method setUp (line 94) | def setUp(self): method test_status (line 102) | def test_status(self): method test_help (line 106) | def test_help(self): class TestFileListSorting (line 115) | class TestFileListSorting(unittest.TestCase): method setUp (line 116) | def setUp(self): method test_sort_by_points_paid_no_direction_specified (line 134) | def test_sort_by_points_paid_no_direction_specified(self): method test_sort_by_points_paid_ascending (line 139) | def test_sort_by_points_paid_ascending(self): method test_sort_by_points_paid_descending (line 144) | def test_sort_by_points_paid_descending(self): method test_sort_by_file_name_no_direction_specified (line 149) | def test_sort_by_file_name_no_direction_specified(self): method test_sort_by_file_name_ascending (line 154) | def test_sort_by_file_name_ascending(self): method test_sort_by_file_name_descending (line 159) | def test_sort_by_file_name_descending(self): method test_sort_by_multiple_criteria (line 164) | def test_sort_by_multiple_criteria(self): method test_sort_by_nested_field (line 197) | def test_sort_by_nested_field(self): method test_invalid_sort_produces_meaningful_errors (line 213) | def test_invalid_sort_produces_meaningful_errors(self): method _get_fake_lbry_files (line 224) | def _get_fake_lbry_files(): FILE: tests/unit/lbrynet_daemon/test_allowed_origin.py class TestAllowedOrigin (line 19) | class TestAllowedOrigin(unittest.TestCase): method test_allowed_origin_default (line 21) | def test_allowed_origin_default(self): method test_allowed_origin_star (line 30) | def test_allowed_origin_star(self): method test_allowed_origin_specified (line 38) | def test_allowed_origin_specified(self): method test_ensure_default (line 46) | def test_ensure_default(self): method test_ensure_specific (line 54) | def test_ensure_specific(self): class TestAccessHeaders (line 64) | class TestAccessHeaders(AsyncioTestCase): method asyncSetUp (line 66) | async def asyncSetUp(self): method test_headers (line 82) | async def test_headers(self): FILE: tests/unit/lbrynet_daemon/test_exchange_rate_manager.py class ExchangeRateTests (line 14) | class ExchangeRateTests(AsyncioTestCase): method test_invalid_rates (line 16) | def test_invalid_rates(self): method test_fee_converts_to_lbc (line 22) | def test_fee_converts_to_lbc(self): method test_missing_feed (line 30) | def test_missing_feed(self): method test_bittrex_feed_response (line 38) | def test_bittrex_feed_response(self): class BadMarketFeed (line 56) | class BadMarketFeed(BittrexUSDFeed): method get_response (line 58) | def get_response(self): class ExchangeRateManagerTests (line 62) | class ExchangeRateManagerTests(AsyncioTestCase): method test_get_rate_failure_retrieved (line 64) | async def test_get_rate_failure_retrieved(self): method test_median_rate_used (line 73) | async def test_median_rate_used(self): FILE: tests/unit/lbrynet_daemon/test_mime_types.py class TestMimeTypes (line 5) | class TestMimeTypes(unittest.TestCase): method test_mp4_video (line 6) | def test_mp4_video(self): method test_x_ext_ (line 10) | def test_x_ext_(self): method test_octet_stream (line 14) | def test_octet_stream(self): FILE: tests/unit/schema/test_claim_from_bytes.py class TestOldJSONSchemaCompatibility (line 7) | class TestOldJSONSchemaCompatibility(TestCase): method test_old_json_schema_v1 (line 9) | def test_old_json_schema_v1(self): method test_old_json_schema_v2 (line 38) | def test_old_json_schema_v2(self): method test_old_json_schema_v3 (line 68) | def test_old_json_schema_v3(self): class TestTypesV1Compatibility (line 89) | class TestTypesV1Compatibility(TestCase): method test_signed_claim_made_by_ytsync (line 91) | def test_signed_claim_made_by_ytsync(self): method test_unsigned_with_fee (line 144) | def test_unsigned_with_fee(self): FILE: tests/unit/schema/test_mime_types.py class MediaTypeTests (line 7) | class MediaTypeTests(unittest.TestCase): method test_guess_media_type_from_path_only (line 8) | def test_guess_media_type_from_path_only(self): method test_defaults_for_no_extension (line 12) | def test_defaults_for_no_extension(self): method test_defaults_for_unknown_extension (line 16) | def test_defaults_for_unknown_extension(self): method test_spoofed_unknown (line 20) | def test_spoofed_unknown(self): method test_spoofed_known (line 31) | def test_spoofed_known(self): method test_spoofed_synonym (line 42) | def test_spoofed_synonym(self): FILE: tests/unit/schema/test_models.py class TestClaimContainerAwareness (line 8) | class TestClaimContainerAwareness(TestCase): method test_stream_claim (line 10) | def test_stream_claim(self): class TestFee (line 21) | class TestFee(TestCase): method test_amount_setters (line 23) | def test_amount_setters(self): class TestLanguages (line 53) | class TestLanguages(TestCase): method test_language_successful_parsing (line 55) | def test_language_successful_parsing(self): method test_language_error_parsing (line 89) | def test_language_error_parsing(self): class TestTags (line 101) | class TestTags(TestCase): method test_normalize_tags (line 103) | def test_normalize_tags(self): class TestCollection (line 122) | class TestCollection(TestCase): method test_collection (line 124) | def test_collection(self): class TestLocations (line 142) | class TestLocations(TestCase): method test_location_successful_parsing (line 144) | def test_location_successful_parsing(self): class TestStreamUpdating (line 201) | class TestStreamUpdating(TestCase): method test_stream_update (line 203) | def test_stream_update(self): FILE: tests/unit/schema/test_tags.py class TestTagNormalization (line 6) | class TestTagNormalization(unittest.TestCase): method assertNormalizedTag (line 8) | def assertNormalizedTag(self, clean, dirty): method test_normalize_tag (line 11) | def test_normalize_tag(self): method test_clean_tags (line 18) | def test_clean_tags(self): FILE: tests/unit/schema/test_url.py class TestURLParsing (line 9) | class TestURLParsing(unittest.TestCase): method _assert_url (line 14) | def _assert_url(self, url_string, strictly=True, **kwargs): method _fail_url (line 38) | def _fail_url(self, url): method test_parser_valid_urls (line 42) | def test_parser_valid_urls(self): method test_parser_invalid_urls (line 68) | def test_parser_invalid_urls(self): FILE: tests/unit/stream/test_managed_stream.py class TestManagedStream (line 18) | class TestManagedStream(BlobExchangeTestBase): method create_stream (line 19) | async def create_stream(self, blob_count: int = 10, file_name='test_fi... method setup_stream (line 34) | async def setup_stream(self, blob_count: int = 10): method test_client_sanitizes_file_name (line 40) | async def test_client_sanitizes_file_name(self): method test_empty_name_fallback (line 55) | async def test_empty_name_fallback(self): method test_status_file_completed (line 70) | async def test_status_file_completed(self): method _test_transfer_stream (line 79) | async def _test_transfer_stream(self, blob_count: int, mock_accumulate... method test_transfer_stream (line 103) | async def test_transfer_stream(self): method test_delayed_stop (line 108) | async def test_delayed_stop(self): method test_transfer_hundred_blob_stream (line 119) | async def test_transfer_hundred_blob_stream(self): method test_transfer_stream_bad_first_peer_good_second (line 122) | async def test_transfer_stream_bad_first_peer_good_second(self): method test_client_chunked_response (line 149) | async def test_client_chunked_response(self): method test_create_and_decrypt_one_blob_stream (line 165) | async def test_create_and_decrypt_one_blob_stream(self, blobs=1, corru... method test_create_and_decrypt_multi_blob_stream (line 204) | async def test_create_and_decrypt_multi_blob_stream(self): FILE: tests/unit/stream/test_reflector.py class TestReflector (line 13) | class TestReflector(AsyncioTestCase): method asyncSetUp (line 14) | async def asyncSetUp(self): method _test_reflect_stream (line 46) | async def _test_reflect_stream(self, response_chunk_size=50, partial_n... method test_reflect_stream (line 88) | async def test_reflect_stream(self): method test_reflect_stream_but_reflector_changes_its_mind (line 91) | async def test_reflect_stream_but_reflector_changes_its_mind(self): method test_reflect_stream_small_response_chunks (line 94) | async def test_reflect_stream_small_response_chunks(self): method test_announces (line 97) | async def test_announces(self): method test_result_from_disconnect_mid_sd_transfer (line 102) | async def test_result_from_disconnect_mid_sd_transfer(self): method test_result_from_disconnect_after_sd_transfer (line 120) | async def test_result_from_disconnect_after_sd_transfer(self): method test_result_from_disconnect_after_data_transfer (line 141) | async def test_result_from_disconnect_after_data_transfer(self): method test_result_from_disconnect_mid_data_transfer (line 165) | async def test_result_from_disconnect_mid_data_transfer(self): method test_delete_file_during_reflector_upload (line 189) | async def test_delete_file_during_reflector_upload(self): FILE: tests/unit/stream/test_stream_descriptor.py class TestStreamDescriptor (line 16) | class TestStreamDescriptor(AsyncioTestCase): method asyncSetUp (line 17) | async def asyncSetUp(self): method _write_sd (line 36) | def _write_sd(self): method _test_invalid_sd (line 40) | async def _test_invalid_sd(self): method test_load_sd_blob (line 45) | async def test_load_sd_blob(self): method test_missing_terminator (line 50) | async def test_missing_terminator(self): method test_terminator_not_at_end (line 54) | async def test_terminator_not_at_end(self): method test_terminator_has_blob_hash (line 59) | async def test_terminator_has_blob_hash(self): method test_blob_order (line 63) | async def test_blob_order(self): method test_skip_blobs (line 69) | async def test_skip_blobs(self): method test_invalid_stream_hash (line 73) | async def test_invalid_stream_hash(self): method test_zero_length_blob (line 77) | async def test_zero_length_blob(self): method test_sanitize_file_name (line 81) | def test_sanitize_file_name(self): class TestRecoverOldStreamDescriptors (line 91) | class TestRecoverOldStreamDescriptors(AsyncioTestCase): method test_old_key_sort_sd_blob (line 92) | async def test_old_key_sort_sd_blob(self): method test_decode_corrupt_blob_raises_proper_exception_and_deletes_corrupt_file (line 123) | async def test_decode_corrupt_blob_raises_proper_exception_and_deletes... FILE: tests/unit/stream/test_stream_manager.py function get_mock_node (line 28) | def get_mock_node(peer=None): function get_output (line 46) | def get_output(amount=CENT, pubkey_hash=NULL_HASH32): function get_input (line 52) | def get_input(): function get_transaction (line 56) | def get_transaction(txo=None): function get_claim_transaction (line 62) | def get_claim_transaction(claim_name, claim=b''): function get_mock_wallet (line 68) | async def get_mock_wallet(sd_hash, storage, wallet_dir, balance=10.0, fe... class TestStreamManager (line 129) | class TestStreamManager(BlobExchangeTestBase): method asyncSetUp (line 130) | async def asyncSetUp(self): method setup_stream_manager (line 134) | async def setup_stream_manager(self, balance=10.0, fee=None, old_sort=... method _test_time_to_first_bytes (line 160) | async def _test_time_to_first_bytes(self, check_post, error=None, afte... method test_time_to_first_bytes (line 180) | async def test_time_to_first_bytes(self): method test_fixed_peer_delay_dht_peers_found (line 193) | async def test_fixed_peer_delay_dht_peers_found(self): method test_tcp_connection_failure_analytics (line 219) | async def test_tcp_connection_failure_analytics(self): method test_override_fixed_peer_delay_dht_disabled (line 237) | async def test_override_fixed_peer_delay_dht_disabled(self): method test_no_peers_timeout (line 261) | async def test_no_peers_timeout(self): method test_download_stop_resume_delete (line 285) | async def test_download_stop_resume_delete(self): method _test_download_error_on_start (line 338) | async def _test_download_error_on_start(self, expected_error, timeout=... method _test_download_error_analytics_on_start (line 348) | async def _test_download_error_analytics_on_start(self, expected_error... method test_insufficient_funds (line 361) | async def test_insufficient_funds(self): method test_fee_above_max_allowed (line 371) | async def test_fee_above_max_allowed(self): method test_resolve_error (line 381) | async def test_resolve_error(self): method test_download_sd_timeout (line 386) | async def test_download_sd_timeout(self): method test_download_data_timeout (line 393) | async def test_download_data_timeout(self): method test_unexpected_error (line 402) | async def test_unexpected_error(self): method test_non_head_data_timeout (line 411) | async def test_non_head_data_timeout(self): method test_download_then_recover_stream_on_startup (line 435) | async def test_download_then_recover_stream_on_startup(self, old_sort=... method test_download_then_recover_old_sort_stream_on_startup (line 490) | def test_download_then_recover_old_sort_stream_on_startup(self): FILE: tests/unit/test_cli.py function get_logger (line 24) | async def get_logger(argv, **conf_options): class CLILoggingTest (line 59) | class CLILoggingTest(AsyncioTestCase): method test_verbose_logging (line 61) | async def test_verbose_logging(self): method test_quiet (line 81) | async def test_quiet(self): class CLITest (line 92) | class CLITest(AsyncioTestCase): method shell (line 95) | def shell(argv): method test_guess_type (line 105) | def test_guess_type(self): method test_help (line 137) | def test_help(self): method test_help_error_handling (line 154) | def test_help_error_handling(self): method test_version_command (line 162) | def test_version_command(self): method test_valid_command_daemon_not_started (line 167) | def test_valid_command_daemon_not_started(self): method test_deprecated_command_daemon_not_started (line 173) | def test_deprecated_command_daemon_not_started(self): method test_keyboard_interrupt_handling (line 184) | def test_keyboard_interrupt_handling(self, mock_daemon_start): class DaemonDocsTests (line 193) | class DaemonDocsTests(TestCase): method test_can_parse_api_method_docs (line 195) | def test_can_parse_api_method_docs(self): class EnsureDirectoryExistsTests (line 208) | class EnsureDirectoryExistsTests(TestCase): method setUp (line 210) | def setUp(self): method tearDown (line 213) | def tearDown(self): method test_when_parent_dir_does_not_exist_then_dir_is_created_with_parent (line 216) | def test_when_parent_dir_does_not_exist_then_dir_is_created_with_paren... method test_when_non_writable_dir_exists_then_raise (line 221) | def test_when_non_writable_dir_exists_then_raise(self): method test_when_dir_exists_and_writable_then_no_raise (line 227) | def test_when_dir_exists_and_writable_then_no_raise(self): method test_when_non_dir_file_exists_at_path_then_raise (line 235) | def test_when_non_dir_file_exists_at_path_then_raise(self): FILE: tests/unit/test_conf.py class TestConfig (line 12) | class TestConfig(BaseConfig): class ConfigurationTests (line 22) | class ConfigurationTests(unittest.TestCase): method test_mac_defaults (line 25) | def test_mac_defaults(self): method test_windows_defaults (line 35) | def test_windows_defaults(self): method test_linux_defaults (line 46) | def test_linux_defaults(self): method test_search_order (line 55) | def test_search_order(self): method test_is_set (line 71) | def test_is_set(self): method test_is_set_to_default (line 79) | def test_is_set_to_default(self): method test_arguments (line 91) | def test_arguments(self): method test_environment (line 132) | def test_environment(self): method test_persisted (line 143) | def test_persisted(self): method test_persisted_upgrade (line 192) | def test_persisted_upgrade(self): method test_validation (line 205) | def test_validation(self): method test_file_extension_validation (line 215) | def test_file_extension_validation(self): method test_serialize_deserialize (line 221) | def test_serialize_deserialize(self): method test_max_key_fee_from_yaml (line 237) | def test_max_key_fee_from_yaml(self): method test_max_key_fee_from_args (line 258) | def test_max_key_fee_from_args(self): method test_string_choice (line 281) | def test_string_choice(self): method test_known_hubs_list (line 300) | def test_known_hubs_list(self): FILE: tests/unit/test_utils.py class UtilsTestCase (line 5) | class UtilsTestCase(unittest.TestCase): method test_get_colliding_prefix_bits (line 7) | def test_get_colliding_prefix_bits(self): FILE: tests/unit/torrent/test_tracker.py class UDPTrackerClientTestCase (line 9) | class UDPTrackerClientTestCase(AsyncioTestCase): method asyncSetUp (line 10) | async def asyncSetUp(self): method add_server (line 18) | async def add_server(self, port=None, add_to_client=True): method test_announce (line 28) | async def test_announce(self): method test_announce_many_info_hashes_to_many_servers_with_bad_one_and_dns_error (line 35) | async def test_announce_many_info_hashes_to_many_servers_with_bad_one_... method test_announce_using_helper_function (line 47) | async def test_announce_using_helper_function(self): method test_error (line 54) | async def test_error(self): method test_multiple_servers (line 63) | async def test_multiple_servers(self): method test_multiple_servers_with_bad_one (line 70) | async def test_multiple_servers_with_bad_one(self): method test_multiple_servers_with_different_peers_across_helper_function (line 78) | async def test_multiple_servers_with_different_peers_across_helper_fun... FILE: tests/unit/wallet/test_account.py class TestAccount (line 11) | class TestAccount(AsyncioTestCase): method asyncSetUp (line 13) | async def asyncSetUp(self): method asyncTearDown (line 20) | async def asyncTearDown(self): method test_generate_account (line 23) | async def test_generate_account(self): method test_unused_address_on_account_creation_does_not_cause_a_race (line 45) | async def test_unused_address_on_account_creation_does_not_cause_a_rac... method test_generate_keys_over_batch_threshold_saves_it_properly (line 57) | async def test_generate_keys_over_batch_threshold_saves_it_properly(se... method test_ensure_address_gap (line 64) | async def test_ensure_address_gap(self): method test_get_or_create_usable_address (line 103) | async def test_get_or_create_usable_address(self): method test_generate_account_from_seed (line 115) | async def test_generate_account_from_seed(self): method test_load_and_save_account (line 149) | async def test_load_and_save_account(self): method test_save_max_gap (line 183) | async def test_save_max_gap(self): method test_merge_diff (line 200) | def test_merge_diff(self): class TestSingleKeyAccount (line 249) | class TestSingleKeyAccount(AsyncioTestCase): method asyncSetUp (line 251) | async def asyncSetUp(self): method asyncTearDown (line 259) | async def asyncTearDown(self): method test_generate_account (line 262) | async def test_generate_account(self): method test_ensure_address_gap (line 288) | async def test_ensure_address_gap(self): method test_get_or_create_usable_address (line 323) | async def test_get_or_create_usable_address(self): method test_generate_account_from_seed (line 342) | async def test_generate_account_from_seed(self): method test_load_and_save_account (line 383) | async def test_load_and_save_account(self): class AccountEncryptionTests (line 413) | class AccountEncryptionTests(AsyncioTestCase): method asyncSetUp (line 447) | async def asyncSetUp(self): method test_encrypt_wallet (line 453) | def test_encrypt_wallet(self): method test_decrypt_wallet (line 483) | def test_decrypt_wallet(self): method test_encrypt_decrypt_read_only_account (line 501) | def test_encrypt_decrypt_read_only_account(self): FILE: tests/unit/wallet/test_bcd_data_stream.py class TestBCDataStream (line 6) | class TestBCDataStream(unittest.TestCase): method test_write_read (line 8) | def test_write_read(self): FILE: tests/unit/wallet/test_bip32.py class BIP32Tests (line 10) | class BIP32Tests(AsyncioTestCase): method test_pubkey_validation (line 12) | def test_pubkey_validation(self): method test_private_key_validation (line 43) | async def test_private_key_validation(self): method test_private_key_derivation (line 68) | async def test_private_key_derivation(self): method test_from_extended_keys (line 86) | async def test_from_extended_keys(self): FILE: tests/unit/wallet/test_claim_proofs.py class ClaimProofsTestCase (line 8) | class ClaimProofsTestCase(unittest.TestCase): method test_verify_proof (line 9) | def test_verify_proof(self): FILE: tests/unit/wallet/test_coinselection.py function search (line 15) | def search(*args, **kwargs): class BaseSelectionTestCase (line 20) | class BaseSelectionTestCase(AsyncioTestCase): method asyncSetUp (line 22) | async def asyncSetUp(self): method asyncTearDown (line 29) | async def asyncTearDown(self): method estimates (line 32) | def estimates(self, *args): class TestCoinSelectionTests (line 37) | class TestCoinSelectionTests(BaseSelectionTestCase): method test_empty_coins (line 39) | def test_empty_coins(self): method test_skip_binary_search_if_total_not_enough (line 42) | def test_skip_binary_search_if_total_not_enough(self): method test_exact_match (line 53) | def test_exact_match(self): method test_random_draw (line 65) | def test_random_draw(self): method test_pick (line 76) | def test_pick(self): method test_confirmed_strategies (line 88) | def test_confirmed_strategies(self): class TestOfficialBitcoinCoinSelectionTests (line 107) | class TestOfficialBitcoinCoinSelectionTests(BaseSelectionTestCase): method make_hard_case (line 118) | def make_hard_case(self, utxos): method test_branch_and_bound_coin_selection (line 128) | def test_branch_and_bound_coin_selection(self): FILE: tests/unit/wallet/test_database.py class TestAIOSQLite (line 20) | class TestAIOSQLite(AsyncioTestCase): method asyncSetUp (line 21) | async def asyncSetUp(self): method delete_item (line 32) | def delete_item(transaction): method test_foreign_keys_integrity_error (line 35) | async def test_foreign_keys_integrity_error(self): method test_run_without_foreign_keys (line 47) | async def test_run_without_foreign_keys(self): method test_integrity_error_when_foreign_keys_disabled_and_skipped (line 52) | async def test_integrity_error_when_foreign_keys_disabled_and_skipped(... class TestQueryBuilder (line 60) | class TestQueryBuilder(unittest.TestCase): method test_dot (line 62) | def test_dot(self): method test_any (line 72) | def test_any(self): method test_in (line 86) | def test_in(self): method test_not_in (line 112) | def test_not_in(self): method test_in_invalid (line 138) | def test_in_invalid(self): method test_query (line 142) | def test_query(self): method test_query_order_by (line 160) | def test_query_order_by(self): method test_query_limit_offset (line 172) | def test_query_limit_offset(self): method test_query_interpolation (line 186) | def test_query_interpolation(self): class TestQueries (line 207) | class TestQueries(AsyncioTestCase): method asyncSetUp (line 209) | async def asyncSetUp(self): method asyncTearDown (line 218) | async def asyncTearDown(self): method create_account (line 221) | async def create_account(self, wallet=None): method create_tx_from_nothing (line 226) | async def create_tx_from_nothing(self, my_account, height): method create_tx_from_txo (line 236) | async def create_tx_from_txo(self, txo, to_account, height): method create_tx_to_nowhere (line 249) | async def create_tx_to_nowhere(self, txo, height): method txo (line 260) | def txo(self, amount, address): method txi (line 263) | def txi(self, txo): method test_large_tx_doesnt_hit_variable_limits (line 266) | async def test_large_tx_doesnt_hit_variable_limits(self): method test_queries (line 292) | async def test_queries(self): method test_empty_history (line 392) | async def test_empty_history(self): class TestUpgrade (line 396) | class TestUpgrade(AsyncioTestCase): method setUp (line 398) | def setUp(self) -> None: method tearDown (line 401) | def tearDown(self) -> None: method get_version (line 404) | def get_version(self): method get_tables (line 410) | def get_tables(self): method add_address (line 415) | def add_address(self, address): method get_addresses (line 422) | def get_addresses(self): method test_reset_on_version_change (line 427) | async def test_reset_on_version_change(self): class TestSQLiteRace (line 472) | class TestSQLiteRace(AsyncioTestCase): method setup_db (line 475) | def setup_db(self): method asyncSetUp (line 483) | async def asyncSetUp(self): method asyncTearDown (line 487) | async def asyncTearDown(self): method test_binding_param_0_error (line 491) | async def test_binding_param_0_error(self): method test_unhandled_sqlite_misuse (line 512) | async def test_unhandled_sqlite_misuse(self): method test_fetchall_prevents_sqlite_misuse (line 543) | async def test_fetchall_prevents_sqlite_misuse(self): FILE: tests/unit/wallet/test_dewies.py class TestDeweyConversion (line 6) | class TestDeweyConversion(unittest.TestCase): method test_good_output (line 8) | def test_good_output(self): method test_good_input (line 14) | def test_good_input(self): method test_bad_input (line 21) | def test_bad_input(self): FILE: tests/unit/wallet/test_hash.py class TestAESEncryptDecrypt (line 6) | class TestAESEncryptDecrypt(TestCase): method test_encrypt_iv_f (line 13) | def test_encrypt_iv_f(self, _): method test_encrypt_iv_d (line 21) | def test_encrypt_iv_d(self, _): method test_encrypt_decrypt (line 32) | def test_encrypt_decrypt(self): method test_decrypt_error (line 38) | def test_decrypt_error(self): method test_edge_case_invalid_password_valid_padding_invalid_unicode (line 42) | def test_edge_case_invalid_password_valid_padding_invalid_unicode(self): method test_better_encrypt_decrypt (line 50) | def test_better_encrypt_decrypt(self): method test_better_decrypt_error (line 58) | def test_better_decrypt_error(self, _): method test_edge_case_invalid_password_valid_everything (line 65) | def test_edge_case_invalid_password_valid_everything(self): FILE: tests/unit/wallet/test_headers.py class Headers (line 11) | class Headers(_Headers): function block_bytes (line 15) | def block_bytes(blocks): class TestHeaders (line 19) | class TestHeaders(AsyncioTestCase): method test_deserialize (line 21) | async def test_deserialize(self): method test_connect_from_genesis (line 47) | async def test_connect_from_genesis(self): method test_connect_from_middle (line 54) | async def test_connect_from_middle(self): method test_target_calculation (line 65) | def test_target_calculation(self): method test_get_proof_of_work_hash (line 104) | def test_get_proof_of_work_hash(self): method test_bounds (line 119) | async def test_bounds(self): method test_repair (line 131) | async def test_repair(self): method test_do_not_estimate_unconfirmed (line 155) | async def test_do_not_estimate_unconfirmed(self): method test_dont_estimate_whats_there (line 162) | async def test_dont_estimate_whats_there(self): method test_misalignment_triggers_repair_on_open (line 172) | async def test_misalignment_triggers_repair_on_open(self): method test_concurrency (line 198) | async def test_concurrency(self): FILE: tests/unit/wallet/test_ledger.py class MockNetwork (line 12) | class MockNetwork: method __init__ (line 14) | def __init__(self, history, transaction): method retriable_call (line 22) | def retriable_call(self, function, *args, **kwargs): method get_history (line 25) | async def get_history(self, address): method get_merkle (line 30) | async def get_merkle(self, txid, height): method get_transaction (line 33) | async def get_transaction(self, tx_hash, _=None): method get_transaction_and_merkle (line 37) | async def get_transaction_and_merkle(self, tx_hash, known_height=None): method get_transaction_batch (line 44) | async def get_transaction_batch(self, txids, restricted): class LedgerTestCase (line 51) | class LedgerTestCase(AsyncioTestCase): method asyncSetUp (line 53) | async def asyncSetUp(self): method asyncTearDown (line 63) | async def asyncTearDown(self): method make_header (line 66) | def make_header(self, **kwargs): method add_header (line 82) | def add_header(self, **kwargs): class TestUtils (line 89) | class TestUtils(TestCase): method test_valid_address (line 91) | def test_valid_address(self): class TestSynchronization (line 95) | class TestSynchronization(LedgerTestCase): method test_update_history (line 97) | async def test_update_history(self): class MocHeaderNetwork (line 158) | class MocHeaderNetwork(MockNetwork): method __init__ (line 159) | def __init__(self, responses): method get_headers (line 163) | async def get_headers(self, height, blocks): class BlockchainReorganizationTests (line 167) | class BlockchainReorganizationTests(LedgerTestCase): method test_1_block_reorganization (line 169) | async def test_1_block_reorganization(self): method test_3_block_reorganization (line 184) | async def test_3_block_reorganization(self): class BasicAccountingTests (line 204) | class BasicAccountingTests(LedgerTestCase): method test_empty_state (line 206) | async def test_empty_state(self): method test_balance (line 209) | async def test_balance(self): method test_get_utxo (line 230) | async def test_get_utxo(self): FILE: tests/unit/wallet/test_mnemonic.py class TestMnemonic (line 7) | class TestMnemonic(unittest.TestCase): method test_mnemonic_to_seed (line 9) | def test_mnemonic_to_seed(self): method test_make_seed_decode_encode (line 17) | def test_make_seed_decode_encode(self): FILE: tests/unit/wallet/test_schema_signing.py function get_output (line 12) | def get_output(amount=CENT, pubkey_hash=NULL_HASH32): function get_input (line 18) | def get_input(): function get_tx (line 22) | def get_tx(): function get_channel (line 26) | async def get_channel(claim_name='@foo'): function get_stream (line 36) | def get_stream(claim_name='foo'): class TestSigningAndValidatingClaim (line 42) | class TestSigningAndValidatingClaim(AsyncioTestCase): method test_successful_create_sign_and_validate (line 44) | async def test_successful_create_sign_and_validate(self): method test_fail_to_validate_on_wrong_channel (line 50) | async def test_fail_to_validate_on_wrong_channel(self): method test_fail_to_validate_altered_claim (line 55) | async def test_fail_to_validate_altered_claim(self): method test_valid_private_key_for_cert (line 63) | async def test_valid_private_key_for_cert(self): method test_fail_to_load_wrong_private_key_for_cert (line 67) | async def test_fail_to_load_wrong_private_key_for_cert(self): class TestValidatingOldSignatures (line 72) | class TestValidatingOldSignatures(AsyncioTestCase): method test_signed_claim_made_by_ytsync (line 74) | def test_signed_claim_made_by_ytsync(self): method test_another_signed_claim_made_by_ytsync (line 123) | def test_another_signed_claim_made_by_ytsync(self): method test_claim_signed_using_ecdsa_validates_with_coincurve (line 195) | def test_claim_signed_using_ecdsa_validates_with_coincurve(self): class TestValidateSignContent (line 227) | class TestValidateSignContent(AsyncioTestCase): method test_sign_some_content (line 229) | async def test_sign_some_content(self): FILE: tests/unit/wallet/test_script.py function parse (line 11) | def parse(opcodes, source): class TestScriptTemplates (line 25) | class TestScriptTemplates(unittest.TestCase): method test_push_data (line 27) | def test_push_data(self): method test_push_data_many (line 51) | def test_push_data_many(self): method test_push_data_mixed (line 74) | def test_push_data_mixed(self): method test_push_data_many_separated (line 86) | def test_push_data_many_separated(self): method test_push_data_many_not_separated (line 96) | def test_push_data_many_not_separated(self): class TestRedeemPubKeyHash (line 101) | class TestRedeemPubKeyHash(unittest.TestCase): method redeem_pubkey_hash (line 103) | def redeem_pubkey_hash(self, sig, pubkey): method test_redeem_pubkey_hash_1 (line 116) | def test_redeem_pubkey_hash_1(self): class TestRedeemScriptHash (line 129) | class TestRedeemScriptHash(unittest.TestCase): method redeem_script_hash (line 131) | def redeem_script_hash(self, sigs, pubkeys): method test_redeem_script_hash_1 (line 153) | def test_redeem_script_hash_1(self): class TestPayPubKeyHash (line 182) | class TestPayPubKeyHash(unittest.TestCase): method pay_pubkey_hash (line 184) | def pay_pubkey_hash(self, pubkey_hash): method test_pay_pubkey_hash_1 (line 195) | def test_pay_pubkey_hash_1(self): class TestPayScriptHash (line 202) | class TestPayScriptHash(unittest.TestCase): method pay_script_hash (line 204) | def pay_script_hash(self, script_hash): method test_pay_pubkey_hash_1 (line 215) | def test_pay_pubkey_hash_1(self): class TestPayClaimNamePubkeyHash (line 222) | class TestPayClaimNamePubkeyHash(unittest.TestCase): method pay_claim_name_pubkey_hash (line 224) | def pay_claim_name_pubkey_hash(self, name, claim, pubkey_hash): method test_pay_claim_name_pubkey_hash_1 (line 240) | def test_pay_claim_name_pubkey_hash_1(self): FILE: tests/unit/wallet/test_stream_controller.py class StreamControllerTestCase (line 6) | class StreamControllerTestCase(AsyncioTestCase): method test_non_unique_events (line 7) | def test_non_unique_events(self): method test_unique_events (line 15) | def test_unique_events(self): class TaskGroupTestCase (line 24) | class TaskGroupTestCase(AsyncioTestCase): method test_cancel_sets_it_done (line 26) | async def test_cancel_sets_it_done(self): FILE: tests/unit/wallet/test_transaction.py function get_output (line 18) | def get_output(amount=CENT, pubkey_hash=NULL_HASH32, height=-2): function get_input (line 24) | def get_input(amount=CENT, pubkey_hash=NULL_HASH): function get_transaction (line 28) | def get_transaction(txo=None): function get_claim_transaction (line 34) | def get_claim_transaction(claim_name, claim=b''): class TestSizeAndFeeEstimation (line 40) | class TestSizeAndFeeEstimation(AsyncioTestCase): method asyncSetUp (line 42) | async def asyncSetUp(self): method asyncTearDown (line 50) | async def asyncTearDown(self): method test_output_size_and_fee (line 53) | def test_output_size_and_fee(self): method test_input_size_and_fee (line 75) | def test_input_size_and_fee(self): method test_transaction_size_and_fee (line 80) | def test_transaction_size_and_fee(self): class TestAccountBalanceImpactFromTransaction (line 87) | class TestAccountBalanceImpactFromTransaction(unittest.TestCase): method test_is_my_output_not_set (line 89) | def test_is_my_output_not_set(self): method test_paying_from_my_account_to_other_account (line 100) | def test_paying_from_my_account_to_other_account(self): method test_paying_from_other_account_to_my_account (line 110) | def test_paying_from_other_account_to_my_account(self): method test_paying_from_my_account_to_my_account (line 120) | def test_paying_from_my_account_to_my_account(self): class TestTransactionSerialization (line 131) | class TestTransactionSerialization(unittest.TestCase): method test_genesis_transaction (line 133) | def test_genesis_transaction(self): method test_coinbase_transaction (line 166) | def test_coinbase_transaction(self): method test_claim_transaction (line 199) | def test_claim_transaction(self): method test_redeem_scripthash_transaction (line 266) | def test_redeem_scripthash_transaction(self): class TestTransactionSigning (line 307) | class TestTransactionSigning(AsyncioTestCase): method asyncSetUp (line 309) | async def asyncSetUp(self): method asyncTearDown (line 316) | async def asyncTearDown(self): method test_sign (line 319) | async def test_sign(self): class TransactionIOBalancing (line 346) | class TransactionIOBalancing(AsyncioTestCase): method asyncSetUp (line 348) | async def asyncSetUp(self): method asyncTearDown (line 367) | async def asyncTearDown(self): method txo (line 370) | def txo(self, amount, address=None): method txi (line 373) | def txi(self, txo): method tx (line 376) | def tx(self, inputs, outputs): method create_utxos (line 379) | async def create_utxos(self, amounts): method inputs (line 398) | def inputs(tx): method outputs (line 402) | def outputs(tx): method test_basic_use_cases (line 405) | async def test_basic_use_cases(self): method test_basic_use_cases_sqlite (line 469) | async def test_basic_use_cases_sqlite(self): FILE: tests/unit/wallet/test_utils.py class TestCoinValueParsing (line 7) | class TestCoinValueParsing(unittest.TestCase): method test_good_output (line 9) | def test_good_output(self): method test_good_input (line 15) | def test_good_input(self): method test_bad_input (line 22) | def test_bad_input(self): class TestArithUint256 (line 41) | class TestArithUint256(unittest.TestCase): method test_arithunit256 (line 43) | def test_arithunit256(self): FILE: tests/unit/wallet/test_wallet.py class TestWalletCreation (line 16) | class TestWalletCreation(AsyncioTestCase): method asyncSetUp (line 18) | async def asyncSetUp(self): method test_create_wallet_and_accounts (line 24) | def test_create_wallet_and_accounts(self): method test_load_and_save_wallet (line 35) | def test_load_and_save_wallet(self): method test_wallet_file_schema (line 81) | def test_wallet_file_schema(self): method test_no_password_but_encryption_preferred (line 137) | def test_no_password_but_encryption_preferred(self): method test_read_write (line 179) | def test_read_write(self): method test_merge (line 199) | def test_merge(self): class TestTimestampedPreferences (line 219) | class TestTimestampedPreferences(TestCase): method test_init (line 221) | def test_init(self): method test_hash (line 227) | def test_hash(self): method test_merge (line 238) | def test_merge(self):