From d14e74ccf60fcb6b6e854b84d5dcefbe6b27ec0f Mon Sep 17 00:00:00 2001 From: Trygve Aaberge Date: Thu, 24 Aug 2023 18:36:05 +0200 Subject: [PATCH] Add compatibility with Python < 3.10 in weechat.pyi The | syntax for unions is only supported in Python 3.10 and later. Since Python 3.8 and 3.9 are still supported upstream for a while and we had a user reporting on IRC that they couldn't use the stub file since they are using 3.8, change to the old syntax for unions to support this. There aren't really any drawbacks of this. It's just a bit more verbose, and a typing import is necessary, but neither of those really matters in a generated stub file. --- doc/en/weechat_plugin_api.en.adoc | 6 +++--- doc/fr/weechat_plugin_api.fr.adoc | 6 +++--- doc/it/weechat_plugin_api.it.adoc | 6 +++--- doc/ja/weechat_plugin_api.ja.adoc | 6 +++--- doc/python_stub.py | 2 +- doc/sr/weechat_plugin_api.sr.adoc | 6 +++--- src/plugins/python/weechat.pyi | 8 ++++---- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/doc/en/weechat_plugin_api.en.adoc b/doc/en/weechat_plugin_api.en.adoc index 9e4f8b8a3..fc933adc7 100644 --- a/doc/en/weechat_plugin_api.en.adoc +++ b/doc/en/weechat_plugin_api.en.adoc @@ -6796,7 +6796,7 @@ def config_new_section(config_file: str, name: str, callback_delete_option: str, callback_delete_option_data: str) -> str: ... # example -def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -6815,7 +6815,7 @@ def my_section_write_default_cb(data: str, config_file: str, section_name: str) # return weechat.WEECHAT_CONFIG_WRITE_ERROR # return weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR -def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -7057,7 +7057,7 @@ Script (Python): # prototype def config_new_option(config_file: str, section: str, name: str, type: str, description: str, string_values: str, min: int, max: int, - default_value: str | None, value: str | None, null_value_allowed: int, + default_value: Union[str, None], value: Union[str, None], null_value_allowed: int, callback_check_value: str, callback_check_value_data: str, callback_change: str, callback_change_data: str, callback_delete: str, callback_delete_data: str) -> str: ... diff --git a/doc/fr/weechat_plugin_api.fr.adoc b/doc/fr/weechat_plugin_api.fr.adoc index c0d52917a..8a309b934 100644 --- a/doc/fr/weechat_plugin_api.fr.adoc +++ b/doc/fr/weechat_plugin_api.fr.adoc @@ -6911,7 +6911,7 @@ def config_new_section(config_file: str, name: str, callback_delete_option: str, callback_delete_option_data: str) -> str: ... # exemple -def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -6930,7 +6930,7 @@ def my_section_write_default_cb(data: str, config_file: str, section_name: str) # return weechat.WEECHAT_CONFIG_WRITE_ERROR # return weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR -def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -7177,7 +7177,7 @@ Script (Python) : # prototype def config_new_option(config_file: str, section: str, name: str, type: str, description: str, string_values: str, min: int, max: int, - default_value: str | None, value: str | None, null_value_allowed: int, + default_value: Union[str, None], value: Union[str, None], null_value_allowed: int, callback_check_value: str, callback_check_value_data: str, callback_change: str, callback_change_data: str, callback_delete: str, callback_delete_data: str) -> str: ... diff --git a/doc/it/weechat_plugin_api.it.adoc b/doc/it/weechat_plugin_api.it.adoc index 4026f38c4..b0bf49ae2 100644 --- a/doc/it/weechat_plugin_api.it.adoc +++ b/doc/it/weechat_plugin_api.it.adoc @@ -7072,7 +7072,7 @@ def config_new_section(config_file: str, name: str, callback_delete_option: str, callback_delete_option_data: str) -> str: ... # esempio -def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -7091,7 +7091,7 @@ def my_section_write_default_cb(data: str, config_file: str, section_name: str) # return weechat.WEECHAT_CONFIG_WRITE_ERROR # return weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR -def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -7340,7 +7340,7 @@ Script (Python): # prototipo def config_new_option(config_file: str, section: str, name: str, type: str, description: str, string_values: str, min: int, max: int, - default_value: str | None, value: str | None, null_value_allowed: int, + default_value: Union[str, None], value: Union[str, None], null_value_allowed: int, callback_check_value: str, callback_check_value_data: str, callback_change: str, callback_change_data: str, callback_delete: str, callback_delete_data: str) -> str: ... diff --git a/doc/ja/weechat_plugin_api.ja.adoc b/doc/ja/weechat_plugin_api.ja.adoc index bdc9d1908..fb0f1436a 100644 --- a/doc/ja/weechat_plugin_api.ja.adoc +++ b/doc/ja/weechat_plugin_api.ja.adoc @@ -6876,7 +6876,7 @@ def config_new_section(config_file: str, name: str, callback_delete_option: str, callback_delete_option_data: str) -> str: ... # 例 -def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -6895,7 +6895,7 @@ def my_section_write_default_cb(data: str, config_file: str, section_name: str) # return weechat.WEECHAT_CONFIG_WRITE_ERROR # return weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR -def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -7140,7 +7140,7 @@ struct t_config_option *option_enum = # プロトタイプ def config_new_option(config_file: str, section: str, name: str, type: str, description: str, string_values: str, min: int, max: int, - default_value: str | None, value: str | None, null_value_allowed: int, + default_value: Union[str, None], value: Union[str, None], null_value_allowed: int, callback_check_value: str, callback_check_value_data: str, callback_change: str, callback_change_data: str, callback_delete: str, callback_delete_data: str) -> str: ... diff --git a/doc/python_stub.py b/doc/python_stub.py index f37eddbe8..848cd16ac 100755 --- a/doc/python_stub.py +++ b/doc/python_stub.py @@ -37,7 +37,7 @@ STUB_HEADER = """\ # DO NOT EDIT BY HAND! # -from typing import Dict +from typing import Dict, Union """ CONSTANT_RE = ( diff --git a/doc/sr/weechat_plugin_api.sr.adoc b/doc/sr/weechat_plugin_api.sr.adoc index fa26cfc82..0bdac9668 100644 --- a/doc/sr/weechat_plugin_api.sr.adoc +++ b/doc/sr/weechat_plugin_api.sr.adoc @@ -6601,7 +6601,7 @@ def config_new_section(config_file: str, name: str, callback_delete_option: str, callback_delete_option_data: str) -> str: ... # пример -def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -6620,7 +6620,7 @@ def my_section_write_default_cb(data: str, config_file: str, section_name: str) # return weechat.WEECHAT_CONFIG_WRITE_ERROR # return weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR -def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: +def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -6846,7 +6846,7 @@ struct t_config_option *option_enum = # прототип def config_new_option(config_file: str, section: str, name: str, type: str, description: str, string_values: str, min: int, max: int, - default_value: str | None, value: str | None, null_value_allowed: int, + default_value: Union[str, None], value: Union[str, None], null_value_allowed: int, callback_check_value: str, callback_check_value_data: str, callback_change: str, callback_change_data: str, callback_delete: str, callback_delete_data: str) -> str: ... diff --git a/src/plugins/python/weechat.pyi b/src/plugins/python/weechat.pyi index 6d743e4c2..49191fa60 100644 --- a/src/plugins/python/weechat.pyi +++ b/src/plugins/python/weechat.pyi @@ -3,7 +3,7 @@ # DO NOT EDIT BY HAND! # -from typing import Dict +from typing import Dict, Union WEECHAT_RC_OK: int = 0 WEECHAT_RC_OK_EAT: int = 1 @@ -539,7 +539,7 @@ def config_new_section(config_file: str, name: str, :: # example - def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: + def my_section_read_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -558,7 +558,7 @@ def config_new_section(config_file: str, name: str, # return weechat.WEECHAT_CONFIG_WRITE_ERROR # return weechat.WEECHAT_CONFIG_WRITE_MEMORY_ERROR - def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: str | None) -> int: + def my_section_create_option_cb(data: str, config_file: str, section: str, option_name: str, value: Union[str, None]) -> int: # ... return weechat.WEECHAT_CONFIG_OPTION_SET_OK_CHANGED # return weechat.WEECHAT_CONFIG_OPTION_SET_OK_SAME_VALUE @@ -594,7 +594,7 @@ def config_search_section(config_file: str, section_name: str) -> str: def config_new_option(config_file: str, section: str, name: str, type: str, description: str, string_values: str, min: int, max: int, - default_value: str | None, value: str | None, null_value_allowed: int, + default_value: Union[str, None], value: Union[str, None], null_value_allowed: int, callback_check_value: str, callback_check_value_data: str, callback_change: str, callback_change_data: str, callback_delete: str, callback_delete_data: str) -> str: