SYMBOL INDEX (381 symbols across 28 files) FILE: docs/conf.py function _get_versions (line 59) | def _get_versions(): FILE: newest-version.py function existing_tags (line 9) | def existing_tags(git): function main (line 17) | def main(): FILE: src/wormhole_mailbox_server/_version.py function get_keywords (line 22) | def get_keywords() -> dict[str, str]: class VersioneerConfig (line 35) | class VersioneerConfig: function get_config (line 46) | def get_config() -> VersioneerConfig: class NotThisMethod (line 60) | class NotThisMethod(Exception): function register_vcs_handler (line 68) | def register_vcs_handler(vcs: str, method: str) -> Callable: # decorator function run_command (line 79) | def run_command( function versions_from_parentdir (line 127) | def versions_from_parentdir( function git_get_keywords (line 156) | def git_get_keywords(versionfile_abs: str) -> dict[str, str]: function git_versions_from_keywords (line 184) | def git_versions_from_keywords( function git_pieces_from_vcs (line 252) | def git_pieces_from_vcs( function plus_or_dot (line 388) | def plus_or_dot(pieces: dict[str, Any]) -> str: function render_pep440 (line 395) | def render_pep440(pieces: dict[str, Any]) -> str: function render_pep440_branch (line 420) | def render_pep440_branch(pieces: dict[str, Any]) -> str: function pep440_split_post (line 450) | def pep440_split_post(ver: str) -> tuple[str, Optional[int]]: function render_pep440_pre (line 460) | def render_pep440_pre(pieces: dict[str, Any]) -> str: function render_pep440_post (line 484) | def render_pep440_post(pieces: dict[str, Any]) -> str: function render_pep440_post_branch (line 511) | def render_pep440_post_branch(pieces: dict[str, Any]) -> str: function render_pep440_old (line 540) | def render_pep440_old(pieces: dict[str, Any]) -> str: function render_git_describe (line 562) | def render_git_describe(pieces: dict[str, Any]) -> str: function render_git_describe_long (line 582) | def render_git_describe_long(pieces: dict[str, Any]) -> str: function render (line 602) | def render(pieces: dict[str, Any], style: str) -> dict[str, Any]: function get_versions (line 638) | def get_versions() -> dict[str, Any]: FILE: src/wormhole_mailbox_server/database.py class DBError (line 8) | class DBError(Exception): function get_schema (line 11) | def get_schema(name, version): function get_upgrader (line 16) | def get_upgrader(name, new_version): function dict_factory (line 28) | def dict_factory(cursor, row): function _initialize_db_schema (line 34) | def _initialize_db_schema(db, name, target_version): function _initialize_db_connection (line 44) | def _initialize_db_connection(db): function _open_db_connection (line 54) | def _open_db_connection(dbfile): function _get_temporary_dbfile (line 66) | def _get_temporary_dbfile(dbfile): function _atomic_create_and_initialize_db (line 76) | def _atomic_create_and_initialize_db(dbfile, name, target_version): function _get_db (line 89) | def _get_db(dbfile, name, target_version): function create_or_upgrade_channel_db (line 126) | def create_or_upgrade_channel_db(dbfile): function create_or_upgrade_usage_db (line 129) | def create_or_upgrade_usage_db(dbfile): class DBDoesntExist (line 134) | class DBDoesntExist(Exception): function open_existing_db (line 137) | def open_existing_db(dbfile): class DBAlreadyExists (line 143) | class DBAlreadyExists(Exception): function create_channel_db (line 146) | def create_channel_db(dbfile): function create_usage_db (line 161) | def create_usage_db(dbfile): function dump_db (line 172) | def dump_db(db): FILE: src/wormhole_mailbox_server/db-schemas/channel-v1.sql type `version` (line 5) | CREATE TABLE `version` type `nameplates` (line 14) | CREATE TABLE `nameplates` type `nameplates_idx` (line 22) | CREATE INDEX `nameplates_idx` ON `nameplates` (`app_id`, `name`) type `nameplates_mailbox_idx` (line 23) | CREATE INDEX `nameplates_mailbox_idx` ON `nameplates` (`app_id`, `mailbo... type `nameplates_request_idx` (line 24) | CREATE INDEX `nameplates_request_idx` ON `nameplates` (`app_id`, `reques... type `nameplate_sides` (line 26) | CREATE TABLE `nameplate_sides` type `mailboxes` (line 38) | CREATE TABLE `mailboxes` type `mailboxes_idx` (line 45) | CREATE INDEX `mailboxes_idx` ON `mailboxes` (`app_id`, `id`) type `mailbox_sides` (line 47) | CREATE TABLE `mailbox_sides` type `messages` (line 56) | CREATE TABLE `messages` type `messages_idx` (line 66) | CREATE INDEX `messages_idx` ON `messages` (`app_id`, `mailbox_id`) FILE: src/wormhole_mailbox_server/db-schemas/upgrade-usage-to-v2.sql type `client_versions` (line 1) | CREATE TABLE `client_versions` type `client_versions_time_idx` (line 11) | CREATE INDEX `client_versions_time_idx` on `client_versions` (`connect_t... type `client_versions_appid_time_idx` (line 12) | CREATE INDEX `client_versions_appid_time_idx` on `client_versions` (`app... FILE: src/wormhole_mailbox_server/db-schemas/usage-v1.sql type `version` (line 1) | CREATE TABLE `version` type `current` (line 6) | CREATE TABLE `current` type `nameplates` (line 15) | CREATE TABLE `nameplates` type `nameplates_idx` (line 28) | CREATE INDEX `nameplates_idx` ON `nameplates` (`app_id`, `started`) type `mailboxes` (line 31) | CREATE TABLE `mailboxes` type `mailboxes_idx` (line 47) | CREATE INDEX `mailboxes_idx` ON `mailboxes` (`app_id`, `started`) type `mailboxes_result_idx` (line 48) | CREATE INDEX `mailboxes_result_idx` ON `mailboxes` (`result`) FILE: src/wormhole_mailbox_server/db-schemas/usage-v2.sql type `version` (line 1) | CREATE TABLE `version` type `current` (line 6) | CREATE TABLE `current` type `nameplates` (line 15) | CREATE TABLE `nameplates` type `nameplates_idx` (line 28) | CREATE INDEX `nameplates_idx` ON `nameplates` (`app_id`, `started`) type `mailboxes` (line 31) | CREATE TABLE `mailboxes` type `mailboxes_idx` (line 47) | CREATE INDEX `mailboxes_idx` ON `mailboxes` (`app_id`, `started`) type `mailboxes_result_idx` (line 48) | CREATE INDEX `mailboxes_result_idx` ON `mailboxes` (`result`) type `client_versions` (line 50) | CREATE TABLE `client_versions` type `client_versions_time_idx` (line 60) | CREATE INDEX `client_versions_time_idx` on `client_versions` (`connect_t... type `client_versions_appid_time_idx` (line 61) | CREATE INDEX `client_versions_appid_time_idx` on `client_versions` (`app... FILE: src/wormhole_mailbox_server/increase_rlimits.py function increase_rlimits (line 8) | def increase_rlimits(): FILE: src/wormhole_mailbox_server/server.py function generate_mailbox_id (line 6) | def generate_mailbox_id(): function check_valid_nameplate (line 11) | def check_valid_nameplate(n): class CrowdedError (line 19) | class CrowdedError(Exception): class ReclaimedError (line 21) | class ReclaimedError(Exception): class Mailbox (line 32) | class Mailbox: method __init__ (line 33) | def __init__(self, app, db, usage_db, app_id, mailbox_id): method open (line 43) | def open(self, side, when): method _touch (line 73) | def _touch(self, when): method get_messages (line 77) | def get_messages(self): method add_listener (line 90) | def add_listener(self, handle, send_f, stop_f): method remove_listener (line 96) | def remove_listener(self, handle): method has_listeners (line 101) | def has_listeners(self): method count_listeners (line 104) | def count_listeners(self): method broadcast_message (line 107) | def broadcast_message(self, sm): method _add_message (line 111) | def _add_message(self, sm): method add_message (line 121) | def add_message(self, sm): method close (line 126) | def close(self, side, mood, when): method _shutdown (line 180) | def _shutdown(self): class AppNamespace (line 187) | class AppNamespace: method __init__ (line 189) | def __init__(self, db, usage_db, blur_usage, log_requests, app_id, method log_client_version (line 199) | def log_client_version(self, server_rx, side, client_version): method get_nameplate_ids (line 213) | def get_nameplate_ids(self): method _get_nameplate_ids (line 218) | def _get_nameplate_ids(self): method _find_available_nameplate_id (line 225) | def _find_available_nameplate_id(self): method allocate_nameplate (line 243) | def allocate_nameplate(self, side, when): method claim_nameplate (line 249) | def claim_nameplate(self, name, side, when): method release_nameplate (line 299) | def release_nameplate(self, name, side, when): method _summarize_nameplate_and_store (line 341) | def _summarize_nameplate_and_store(self, side_rows, delete_time, pruned): method _summarize_nameplate_usage (line 351) | def _summarize_nameplate_usage(self, side_rows, delete_time, pruned): method _add_mailbox (line 370) | def _add_mailbox(self, mailbox_id, for_nameplate, side, when): method open_mailbox (line 384) | def open_mailbox(self, mailbox_id, side, when): method free_mailbox (line 407) | def free_mailbox(self, mailbox_id): method _summarize_mailbox_and_store (line 417) | def _summarize_mailbox_and_store(self, for_nameplate, side_rows, method _summarize_mailbox (line 428) | def _summarize_mailbox(self, side_rows, delete_time, pruned): method prune (line 462) | def prune(self, now, old): method count_listeners (line 552) | def count_listeners(self): method _shutdown (line 556) | def _shutdown(self): class Server (line 561) | class Server(service.MultiService): method __init__ (line 562) | def __init__(self, db, allow_list, welcome, method get_welcome (line 574) | def get_welcome(self): method get_log_requests (line 576) | def get_log_requests(self): method get_app (line 579) | def get_app(self, app_id): method get_all_apps (line 594) | def get_all_apps(self): method prune_all_apps (line 607) | def prune_all_apps(self, now, old): method dump_stats (line 618) | def dump_stats(self, now, rebooted): method startService (line 664) | def startService(self): method stopService (line 675) | def stopService(self): function make_server (line 686) | def make_server(db, allow_list=True, FILE: src/wormhole_mailbox_server/server_tap.py class Options (line 17) | class Options(usage.Options): method __init__ (line 35) | def __init__(self): method opt_disallow_list (line 40) | def opt_disallow_list(self): method opt_log_fd (line 43) | def opt_log_fd(self, arg): method opt_blur_usage (line 46) | def opt_blur_usage(self, arg): method opt_websocket_protocol_option (line 51) | def opt_websocket_protocol_option(self, arg): function makeService (line 71) | def makeService(config, channel_db="relay.sqlite", reactor=reactor): FILE: src/wormhole_mailbox_server/server_websocket.py class Error (line 93) | class Error(Exception): method __init__ (line 94) | def __init__(self, explain): class WebSocketServer (line 97) | class WebSocketServer(websocket.WebSocketServerProtocol): method __init__ (line 98) | def __init__(self): method onConnect (line 113) | def onConnect(self, request): method get_your_address (line 153) | def get_your_address(self): method onOpen (line 162) | def onOpen(self): method onMessage (line 168) | def onMessage(self, payload, isBinary): method handle_ping (line 204) | def handle_ping(self, msg): method handle_bind (line 209) | def handle_bind(self, msg, server_rx): method handle_list (line 223) | def handle_list(self): method handle_allocate (line 230) | def handle_allocate(self, server_rx): method handle_claim (line 238) | def handle_claim(self, msg, server_rx): method handle_release (line 256) | def handle_release(self, msg, server_rx): method handle_open (line 276) | def handle_open(self, msg, server_rx): method handle_add (line 298) | def handle_add(self, msg, server_rx): method handle_close (line 311) | def handle_close(self, msg, server_rx): method send (line 337) | def send(self, mtype, **kwargs): method onClose (line 343) | def onClose(self, wasClean, code, reason): class WebSocketServerFactory (line 349) | class WebSocketServerFactory(websocket.WebSocketServerFactory): method __init__ (line 352) | def __init__(self, url, server): FILE: src/wormhole_mailbox_server/test/common.py class ServerBase (line 8) | class ServerBase: method setUp (line 12) | def setUp(self): method _setup_relay (line 22) | def _setup_relay(self, do_listen=False, web_log_requests=False, **kwar... method tearDown (line 34) | def tearDown(self): class _Util (line 38) | class _Util: method _nameplate (line 39) | def _nameplate(self, app, name): method _mailbox (line 51) | def _mailbox(self, app, mailbox_id): method _messages (line 62) | def _messages(self, app): FILE: src/wormhole_mailbox_server/test/test_config.py class Config (line 7) | class Config(unittest.TestCase): method test_defaults (line 8) | def test_defaults(self): method test_advertise_version (line 24) | def test_advertise_version(self): method test_blur (line 40) | def test_blur(self): method test_channel_db (line 56) | def test_channel_db(self): method test_disallow_list (line 72) | def test_disallow_list(self): method test_log_fd (line 88) | def test_log_fd(self): method test_port (line 104) | def test_port(self): method test_signal_error (line 135) | def test_signal_error(self): method test_usage_db (line 151) | def test_usage_db(self): method test_websocket_protocol_option_1 (line 167) | def test_websocket_protocol_option_1(self): method test_websocket_protocol_option_2 (line 183) | def test_websocket_protocol_option_2(self): method test_websocket_protocol_option_errors (line 203) | def test_websocket_protocol_option_errors(self): method test_string (line 214) | def test_string(self): FILE: src/wormhole_mailbox_server/test/test_database.py class Get (line 8) | class Get(unittest.TestCase): method test_create_default (line 9) | def test_create_default(self): method test_open_existing_file (line 16) | def test_open_existing_file(self): method test_open_bad_version (line 29) | def test_open_bad_version(self): method test_open_corrupt (line 41) | def test_open_corrupt(self): method test_failed_create_allows_subsequent_create (line 51) | def test_failed_create_allows_subsequent_create(self): method test_upgrade (line 58) | def test_upgrade(self): method test_upgrade_fails (line 93) | def test_upgrade_fails(self): class CreateChannel (line 111) | class CreateChannel(unittest.TestCase): method test_memory (line 112) | def test_memory(self): method test_preexisting (line 117) | def test_preexisting(self): method test_create (line 126) | def test_create(self): method test_create_or_upgrade (line 134) | def test_create_or_upgrade(self): class CreateUsage (line 142) | class CreateUsage(unittest.TestCase): method test_memory (line 143) | def test_memory(self): method test_preexisting (line 148) | def test_preexisting(self): method test_create (line 157) | def test_create(self): method test_create_or_upgrade (line 165) | def test_create_or_upgrade(self): method test_create_or_upgrade_disabled (line 173) | def test_create_or_upgrade_disabled(self): class OpenChannel (line 177) | class OpenChannel(unittest.TestCase): method test_open (line 178) | def test_open(self): method test_doesnt_exist (line 188) | def test_doesnt_exist(self): class OpenUsage (line 195) | class OpenUsage(unittest.TestCase): method test_open (line 196) | def test_open(self): method test_doesnt_exist (line 206) | def test_doesnt_exist(self): FILE: src/wormhole_mailbox_server/test/test_rlimits.py class RLimits (line 5) | class RLimits(unittest.TestCase): method test_rlimit (line 6) | def test_rlimit(self): FILE: src/wormhole_mailbox_server/test/test_server.py class Server (line 11) | class Server(_Util, ServerBase, unittest.TestCase): method test_apps (line 12) | def test_apps(self): method test_nameplate_allocation (line 18) | def test_nameplate_allocation(self): method test_nameplate_allocation_failure (line 44) | def test_nameplate_allocation_failure(self): method test_nameplate (line 55) | def test_nameplate(self): method test_mailbox (line 146) | def test_mailbox(self): method test_messages (line 216) | def test_messages(self): method test_early_close (line 272) | def test_early_close(self): class Prune (line 284) | class Prune(unittest.TestCase): method _get_mailbox_updated (line 286) | def _get_mailbox_updated(self, app, mbox_id): method test_update (line 292) | def test_update(self): method test_apps (line 306) | def test_apps(self): method test_nameplates (line 314) | def test_nameplates(self): method test_mailboxes (line 356) | def test_mailboxes(self): method test_lots (line 387) | def test_lots(self): method test_one (line 394) | def test_one(self): method one (line 398) | def one(self, nameplate, mailbox, has_listeners): class Summary (line 452) | class Summary(unittest.TestCase): method test_mailbox (line 453) | def test_mailbox(self): method test_nameplate (line 496) | def test_nameplate(self): method test_nameplate_disallowed (line 513) | def test_nameplate_disallowed(self): method test_nameplate_allowed (line 519) | def test_nameplate_allowed(self): method test_blur (line 525) | def test_blur(self): method test_no_blur (line 543) | def test_no_blur(self): class Startup (line 583) | class Startup(unittest.TestCase): method test_empty (line 585) | def test_empty(self, fake_log): method test_allow_list (line 596) | def test_allow_list(self, fake_log): method test_blur_usage (line 607) | def test_blur_usage(self, fake_log): class MakeServer (line 618) | class MakeServer(unittest.TestCase): method test_welcome_empty (line 619) | def test_welcome_empty(self): method test_welcome_error (line 624) | def test_welcome_error(self): method test_welcome_advertise_version (line 634) | def test_welcome_advertise_version(self): method test_welcome_message_of_the_day (line 644) | def test_welcome_message_of_the_day(self): FILE: src/wormhole_mailbox_server/test/test_service.py class Service (line 6) | class Service(unittest.TestCase): method test_defaults (line 7) | def test_defaults(self): method test_log_fd (line 32) | def test_log_fd(self): FILE: src/wormhole_mailbox_server/test/test_stats.py class _Make (line 8) | class _Make: method make (line 9) | def make(self, blur_usage=None, with_usage_db=True): class Current (line 16) | class Current(_Make, unittest.TestCase): method test_current_no_mailboxes (line 17) | def test_current_no_mailboxes(self): method test_current_no_listeners (line 25) | def test_current_no_listeners(self): method test_current_one_listener (line 34) | def test_current_one_listener(self): class ClientVersion (line 44) | class ClientVersion(_Make, unittest.TestCase): method test_add_version (line 45) | def test_add_version(self): method test_add_version_extra_fields (line 52) | def test_add_version_extra_fields(self): method test_blur (line 59) | def test_blur(self): method test_no_usage_db (line 66) | def test_no_usage_db(self): class Nameplate (line 70) | class Nameplate(_Make, unittest.TestCase): method test_nameplate_happy (line 71) | def test_nameplate_happy(self): method test_nameplate_lonely (line 83) | def test_nameplate_lonely(self): method test_nameplate_pruney (line 91) | def test_nameplate_pruney(self): method test_nameplate_crowded (line 99) | def test_nameplate_crowded(self): method test_nameplate_crowded_pruned (line 123) | def test_nameplate_crowded_pruned(self): method test_no_db (line 136) | def test_no_db(self): method test_nameplate_happy_blur_usage (line 142) | def test_nameplate_happy_blur_usage(self): class Mailbox (line 154) | class Mailbox(_Make, unittest.TestCase): method test_mailbox_prune_quiet (line 155) | def test_mailbox_prune_quiet(self): method test_mailbox_lonely (line 164) | def test_mailbox_lonely(self): method test_mailbox_happy (line 174) | def test_mailbox_happy(self): method test_mailbox_happy_blur_usage (line 186) | def test_mailbox_happy_blur_usage(self): method test_mailbox_lonely_connected (line 198) | def test_mailbox_lonely_connected(self): method test_mailbox_scary (line 213) | def test_mailbox_scary(self): method test_mailbox_errory (line 225) | def test_mailbox_errory(self): method test_mailbox_errory_scary (line 237) | def test_mailbox_errory_scary(self): method test_mailbox_crowded (line 249) | def test_mailbox_crowded(self): FILE: src/wormhole_mailbox_server/test/test_util.py class Utils (line 5) | class Utils(unittest.TestCase): method test_to_bytes (line 6) | def test_to_bytes(self): method test_bytes_to_hexstr (line 16) | def test_bytes_to_hexstr(self): method test_hexstr_to_bytes (line 22) | def test_hexstr_to_bytes(self): method test_dict_to_bytes (line 29) | def test_dict_to_bytes(self): method test_bytes_to_dict (line 35) | def test_bytes_to_dict(self): FILE: src/wormhole_mailbox_server/test/test_web.py class WebSocketProtocolOptions (line 16) | class WebSocketProtocolOptions(unittest.TestCase): method test_set (line 18) | def test_set(self, fake_factory): class LogRequests (line 27) | class LogRequests(ServerBase, unittest.TestCase): method setUp (line 28) | def setUp(self): method tearDown (line 31) | def tearDown(self): method make_client (line 37) | def make_client(self): method test_log_http (line 46) | def test_log_http(self): method test_log_websocket (line 57) | def test_log_websocket(self): method test_no_log_http (line 69) | def test_no_log_http(self): method test_no_log_websocket (line 80) | def test_no_log_websocket(self): class WebSocketAPI (line 90) | class WebSocketAPI(_Util, ServerBase, unittest.TestCase): method setUp (line 92) | def setUp(self): method tearDown (line 100) | def tearDown(self): method make_client (line 106) | def make_client(self): method check_welcome (line 114) | def check_welcome(self, data): method test_welcome (line 119) | def test_welcome(self): method test_bind (line 126) | def test_bind(self): method test_bind_with_client_version (line 165) | def test_bind_with_client_version(self): method test_bind_without_client_version (line 180) | def test_bind_without_client_version(self): method test_bind_with_client_version_extra_junk (line 194) | def test_bind_with_client_version_extra_junk(self): method test_list (line 209) | def test_list(self): method test_allocate (line 239) | def test_allocate(self): method test_claim (line 272) | def test_claim(self): method test_claim_crowded (line 308) | def test_claim_crowded(self): method test_release (line 324) | def test_release(self): method test_release_named (line 356) | def test_release_named(self): method test_release_named_ignored (line 369) | def test_release_named_ignored(self): method test_release_named_mismatch (line 379) | def test_release_named_mismatch(self): method test_open (line 394) | def test_open(self): method test_open_crowded (line 433) | def test_open_crowded(self): method test_add (line 449) | def test_add(self): method test_close (line 484) | def test_close(self): method test_close_named (line 511) | def test_close_named(self): method test_close_named_ignored (line 524) | def test_close_named_ignored(self): method test_close_named_mismatch (line 534) | def test_close_named_mismatch(self): method test_close_crowded (line 548) | def test_close_crowded(self): method test_disconnect (line 565) | def test_disconnect(self): method test_interrupted_client_nameplate (line 586) | def test_interrupted_client_nameplate(self): method test_interrupted_client_nameplate_reclaimed (line 646) | def test_interrupted_client_nameplate_reclaimed(self): method test_interrupted_client_mailbox (line 686) | def test_interrupted_client_mailbox(self): FILE: src/wormhole_mailbox_server/test/test_websocket.py class FakeServer (line 10) | class FakeServer: method get_welcome (line 16) | def get_welcome(self): method get_log_requests (line 21) | def get_log_requests(self): class WebSocket (line 25) | class WebSocket(unittest.TestCase): method setUp (line 30) | def setUp(self): method tearDown (line 35) | def tearDown(self): method create_server_protocol (line 38) | def create_server_protocol(self): method test_server_version_string (line 52) | def test_server_version_string(self): method test_reflected_address (line 75) | def test_reflected_address(self): method test_reflected_caddy (line 105) | def test_reflected_caddy(self): method test_reflected_caddyv6 (line 145) | def test_reflected_caddyv6(self): FILE: src/wormhole_mailbox_server/test/test_ws_client.py class WSClientSync (line 6) | class WSClientSync(unittest.TestCase): method test_sync (line 10) | def test_sync(self): FILE: src/wormhole_mailbox_server/test/ws_client.py class WSClient (line 6) | class WSClient(websocket.WebSocketClientProtocol): method __init__ (line 7) | def __init__(self): method onOpen (line 13) | def onOpen(self): method onMessage (line 15) | def onMessage(self, payload, isBinary): method close (line 27) | def close(self): method onClose (line 31) | def onClose(self, wasClean, code, reason): method next_event (line 35) | def next_event(self): method next_non_ack (line 44) | def next_non_ack(self): method strip_acks (line 53) | def strip_acks(self): method send (line 56) | def send(self, mtype, **kwargs): method send_notype (line 61) | def send_notype(self, **kwargs): method sync (line 66) | def sync(self): class WSFactory (line 78) | class WSFactory(websocket.WebSocketClientFactory): FILE: src/wormhole_mailbox_server/util.py function to_bytes (line 5) | def to_bytes(u): function bytes_to_hexstr (line 7) | def bytes_to_hexstr(b): function hexstr_to_bytes (line 12) | def hexstr_to_bytes(hexstr): function dict_to_bytes (line 17) | def dict_to_bytes(d): function bytes_to_dict (line 22) | def bytes_to_dict(b): FILE: src/wormhole_mailbox_server/web.py class Root (line 6) | class Root(Resource): method __init__ (line 8) | def __init__(self): class PrivacyEnhancedSite (line 12) | class PrivacyEnhancedSite(server.Site): method log (line 14) | def log(self, request): function make_web_server (line 19) | def make_web_server(server, log_requests, websocket_protocol_options=()): FILE: update-version.py function existing_tags (line 30) | def existing_tags(git): function create_new_version (line 38) | def create_new_version(git, only_patch): function main (line 48) | async def main(reactor): FILE: versioneer.py class VersioneerConfig (line 332) | class VersioneerConfig: function get_root (line 344) | def get_root() -> str: function get_config_from_root (line 393) | def get_config_from_root(root: str) -> VersioneerConfig: class NotThisMethod (line 441) | class NotThisMethod(Exception): function register_vcs_handler (line 450) | def register_vcs_handler(vcs: str, method: str) -> Callable: # decorator function run_command (line 459) | def run_command( function git_get_keywords (line 1194) | def git_get_keywords(versionfile_abs: str) -> dict[str, str]: function git_versions_from_keywords (line 1222) | def git_versions_from_keywords( function git_pieces_from_vcs (line 1290) | def git_pieces_from_vcs( function do_vcs_install (line 1427) | def do_vcs_install(versionfile_source: str, ipy: Optional[str]) -> None: function versions_from_parentdir (line 1465) | def versions_from_parentdir( function versions_from_file (line 1511) | def versions_from_file(filename: str) -> dict[str, Any]: function write_to_version_file (line 1528) | def write_to_version_file(filename: str, versions: dict[str, Any]) -> None: function plus_or_dot (line 1538) | def plus_or_dot(pieces: dict[str, Any]) -> str: function render_pep440 (line 1545) | def render_pep440(pieces: dict[str, Any]) -> str: function render_pep440_branch (line 1570) | def render_pep440_branch(pieces: dict[str, Any]) -> str: function pep440_split_post (line 1600) | def pep440_split_post(ver: str) -> tuple[str, Optional[int]]: function render_pep440_pre (line 1610) | def render_pep440_pre(pieces: dict[str, Any]) -> str: function render_pep440_post (line 1634) | def render_pep440_post(pieces: dict[str, Any]) -> str: function render_pep440_post_branch (line 1661) | def render_pep440_post_branch(pieces: dict[str, Any]) -> str: function render_pep440_old (line 1690) | def render_pep440_old(pieces: dict[str, Any]) -> str: function render_git_describe (line 1712) | def render_git_describe(pieces: dict[str, Any]) -> str: function render_git_describe_long (line 1732) | def render_git_describe_long(pieces: dict[str, Any]) -> str: function render (line 1752) | def render(pieces: dict[str, Any], style: str) -> dict[str, Any]: class VersioneerBadRootError (line 1788) | class VersioneerBadRootError(Exception): function get_versions (line 1792) | def get_versions(verbose: bool = False) -> dict[str, Any]: function get_version (line 1868) | def get_version() -> str: function get_cmdclass (line 1873) | def get_cmdclass(cmdclass: Optional[dict[str, Any]] = None): function do_setup (line 2172) | def do_setup() -> int: function scan_setup_py (line 2229) | def scan_setup_py() -> int: function setup_command (line 2266) | def setup_command() -> NoReturn: