diff options
-rwxr-xr-x | doc/python_stub.py | 15 | ||||
-rw-r--r-- | src/plugins/python/weechat.pyi | 80 |
2 files changed, 52 insertions, 43 deletions
diff --git a/doc/python_stub.py b/doc/python_stub.py index 7778d9753..ba5f730c4 100755 --- a/doc/python_stub.py +++ b/doc/python_stub.py @@ -28,6 +28,7 @@ from pathlib import Path import re DOC_DIR = Path(__file__).resolve().parent / "en" +SRC_DIR = Path(__file__).resolve().parent.parent / "src" STUB_HEADER = """\ # @@ -56,11 +57,19 @@ def print_stub_constants() -> None: "string": "str", } constant_pattern = re.compile(CONSTANT_RE) - with open(DOC_DIR / "weechat_scripting.en.adoc", - encoding="utf-8") as scripting_file: + with open( + DOC_DIR / "weechat_scripting.en.adoc", encoding="utf-8" + ) as scripting_file, open( + SRC_DIR / "plugins" / "weechat-plugin.h", encoding="utf-8" + ) as plugin_header_file: scripting = scripting_file.read() + plugin_header = plugin_header_file.read() for match in constant_pattern.finditer(scripting): - print(f'{match["constant"]}: {types[match["type"]]}') + value_re = rf'^#define {match["constant"]} +(?P<value>[\w"-]+)$' + value_match = re.search(value_re, plugin_header, re.MULTILINE) + value = f' = {value_match["value"]}' if value_match else "" + + print(f'{match["constant"]}: {types[match["type"]]}{value}') def print_stub_functions() -> None: diff --git a/src/plugins/python/weechat.pyi b/src/plugins/python/weechat.pyi index de277d548..8c20260c9 100644 --- a/src/plugins/python/weechat.pyi +++ b/src/plugins/python/weechat.pyi @@ -5,46 +5,46 @@ from typing import Dict -WEECHAT_RC_OK: int -WEECHAT_RC_OK_EAT: int -WEECHAT_RC_ERROR: int -WEECHAT_CONFIG_READ_OK: int -WEECHAT_CONFIG_READ_MEMORY_ERROR: int -WEECHAT_CONFIG_READ_FILE_NOT_FOUND: int -WEECHAT_CONFIG_WRITE_OK: int -WEECHAT_CONFIG_WRITE_ERROR: int -WEECHAT_CONFIG_WRITE_MEMORY_ERROR: int -WEECHAT_CONFIG_OPTION_SET_OK_CHANGED: int -WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE: int -WEECHAT_CONFIG_OPTION_SET_ERROR: int -WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND: int -WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET: int -WEECHAT_CONFIG_OPTION_UNSET_OK_RESET: int -WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED: int -WEECHAT_CONFIG_OPTION_UNSET_ERROR: int -WEECHAT_LIST_POS_SORT: str -WEECHAT_LIST_POS_BEGINNING: str -WEECHAT_LIST_POS_END: str -WEECHAT_HOTLIST_LOW: str -WEECHAT_HOTLIST_MESSAGE: str -WEECHAT_HOTLIST_PRIVATE: str -WEECHAT_HOTLIST_HIGHLIGHT: str -WEECHAT_HOOK_PROCESS_RUNNING: int -WEECHAT_HOOK_PROCESS_ERROR: int -WEECHAT_HOOK_CONNECT_OK: int -WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND: int -WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND: int -WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED: int -WEECHAT_HOOK_CONNECT_PROXY_ERROR: int -WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR: int -WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR: int -WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR: int -WEECHAT_HOOK_CONNECT_MEMORY_ERROR: int -WEECHAT_HOOK_CONNECT_TIMEOUT: int -WEECHAT_HOOK_CONNECT_SOCKET_ERROR: int -WEECHAT_HOOK_SIGNAL_STRING: str -WEECHAT_HOOK_SIGNAL_INT: str -WEECHAT_HOOK_SIGNAL_POINTER: str +WEECHAT_RC_OK: int = 0 +WEECHAT_RC_OK_EAT: int = 1 +WEECHAT_RC_ERROR: int = -1 +WEECHAT_CONFIG_READ_OK: int = 0 +WEECHAT_CONFIG_READ_MEMORY_ERROR: int = -1 +WEECHAT_CONFIG_READ_FILE_NOT_FOUND: int = -2 +WEECHAT_CONFIG_WRITE_OK: int = 0 +WEECHAT_CONFIG_WRITE_ERROR: int = -1 +WEECHAT_CONFIG_WRITE_MEMORY_ERROR: int = -2 +WEECHAT_CONFIG_OPTION_SET_OK_CHANGED: int = 2 +WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE: int = 1 +WEECHAT_CONFIG_OPTION_SET_ERROR: int = 0 +WEECHAT_CONFIG_OPTION_SET_OPTION_NOT_FOUND: int = -1 +WEECHAT_CONFIG_OPTION_UNSET_OK_NO_RESET: int = 0 +WEECHAT_CONFIG_OPTION_UNSET_OK_RESET: int = 1 +WEECHAT_CONFIG_OPTION_UNSET_OK_REMOVED: int = 2 +WEECHAT_CONFIG_OPTION_UNSET_ERROR: int = -1 +WEECHAT_LIST_POS_SORT: str = "sort" +WEECHAT_LIST_POS_BEGINNING: str = "beginning" +WEECHAT_LIST_POS_END: str = "end" +WEECHAT_HOTLIST_LOW: str = "0" +WEECHAT_HOTLIST_MESSAGE: str = "1" +WEECHAT_HOTLIST_PRIVATE: str = "2" +WEECHAT_HOTLIST_HIGHLIGHT: str = "3" +WEECHAT_HOOK_PROCESS_RUNNING: int = -1 +WEECHAT_HOOK_PROCESS_ERROR: int = -2 +WEECHAT_HOOK_CONNECT_OK: int = 0 +WEECHAT_HOOK_CONNECT_ADDRESS_NOT_FOUND: int = 1 +WEECHAT_HOOK_CONNECT_IP_ADDRESS_NOT_FOUND: int = 2 +WEECHAT_HOOK_CONNECT_CONNECTION_REFUSED: int = 3 +WEECHAT_HOOK_CONNECT_PROXY_ERROR: int = 4 +WEECHAT_HOOK_CONNECT_LOCAL_HOSTNAME_ERROR: int = 5 +WEECHAT_HOOK_CONNECT_GNUTLS_INIT_ERROR: int = 6 +WEECHAT_HOOK_CONNECT_GNUTLS_HANDSHAKE_ERROR: int = 7 +WEECHAT_HOOK_CONNECT_MEMORY_ERROR: int = 8 +WEECHAT_HOOK_CONNECT_TIMEOUT: int = 9 +WEECHAT_HOOK_CONNECT_SOCKET_ERROR: int = 10 +WEECHAT_HOOK_SIGNAL_STRING: str = "string" +WEECHAT_HOOK_SIGNAL_INT: str = "int" +WEECHAT_HOOK_SIGNAL_POINTER: str = "pointer" def register(name: str, author: str, version: str, license: str, description: str, shutdown_function: str, charset: str) -> int: |