pymud 0.19.3.post1__py3-none-any.whl → 0.19.4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pymud/objects.py +5 -5
- pymud/pymud.py +8 -4
- pymud/session.py +22 -4
- pymud/settings.py +2 -2
- {pymud-0.19.3.post1.dist-info → pymud-0.19.4.dist-info}/METADATA +11 -1
- pymud-0.19.4.dist-info/RECORD +16 -0
- pymud-0.19.3.post1.dist-info/RECORD +0 -16
- {pymud-0.19.3.post1.dist-info → pymud-0.19.4.dist-info}/LICENSE.txt +0 -0
- {pymud-0.19.3.post1.dist-info → pymud-0.19.4.dist-info}/WHEEL +0 -0
- {pymud-0.19.3.post1.dist-info → pymud-0.19.4.dist-info}/entry_points.txt +0 -0
- {pymud-0.19.3.post1.dist-info → pymud-0.19.4.dist-info}/top_level.txt +0 -0
pymud/objects.py
CHANGED
@@ -120,27 +120,27 @@ class CodeLine:
|
|
120
120
|
else:
|
121
121
|
item_val = "None"
|
122
122
|
new_code.append(item_val)
|
123
|
-
new_code_str = new_code_str.replace(item, item_val, 1)
|
123
|
+
new_code_str = new_code_str.replace(item, f"{item_val}", 1)
|
124
124
|
|
125
125
|
# 系统变量,%开头
|
126
126
|
elif item == "%line":
|
127
127
|
new_code.append(line)
|
128
|
-
new_code_str = new_code_str.replace(item, line, 1)
|
128
|
+
new_code_str = new_code_str.replace(item, f"{line}", 1)
|
129
129
|
|
130
130
|
elif item == "%raw":
|
131
131
|
new_code.append(raw)
|
132
|
-
new_code_str = new_code_str.replace(item, raw, 1)
|
132
|
+
new_code_str = new_code_str.replace(item, f"{raw}", 1)
|
133
133
|
|
134
134
|
elif item[0] == "%":
|
135
135
|
item_val = session.getVariable(item, "")
|
136
136
|
new_code.append(item_val)
|
137
|
-
new_code_str = new_code_str.replace(item, item_val, 1)
|
137
|
+
new_code_str = new_code_str.replace(item, f"{item_val}", 1)
|
138
138
|
|
139
139
|
# 非系统变量,@开头,在变量明前加@引用
|
140
140
|
elif item[0] == "@":
|
141
141
|
item_val = session.getVariable(item[1:], "")
|
142
142
|
new_code.append(item_val)
|
143
|
-
new_code_str = new_code_str.replace(item, item_val, 1)
|
143
|
+
new_code_str = new_code_str.replace(item, f"{item_val}", 1)
|
144
144
|
|
145
145
|
else:
|
146
146
|
new_code.append(item)
|
pymud/pymud.py
CHANGED
@@ -462,8 +462,12 @@ class PyMudApp:
|
|
462
462
|
"""
|
463
463
|
b = self.consoleView.buffer
|
464
464
|
if b.selection_state:
|
465
|
-
|
466
|
-
|
465
|
+
cur1, cur2 = b.selection_state.original_cursor_position, b.document.cursor_position
|
466
|
+
start, end = min(cur1, cur2), max(cur1, cur2)
|
467
|
+
srow, scol = b.document.translate_index_to_position(start)
|
468
|
+
erow, ecol = b.document.translate_index_to_position(end)
|
469
|
+
# srow, scol = b.document.translate_index_to_position(b.selection_state.original_cursor_position)
|
470
|
+
# erow, ecol = b.document.translate_index_to_position(b.document.cursor_position)
|
467
471
|
|
468
472
|
if not raw:
|
469
473
|
# Control-C 复制纯文本
|
@@ -697,8 +701,8 @@ class PyMudApp:
|
|
697
701
|
if isinstance(plugin, Plugin):
|
698
702
|
plugin.onSessionDestroy(ss)
|
699
703
|
|
700
|
-
|
701
|
-
|
704
|
+
else:
|
705
|
+
return
|
702
706
|
|
703
707
|
self.app.exit()
|
704
708
|
|
pymud/session.py
CHANGED
@@ -1677,7 +1677,10 @@ class Session:
|
|
1677
1677
|
- #global
|
1678
1678
|
'''
|
1679
1679
|
|
1680
|
-
|
1680
|
+
new_cmd_text, new_code = code.expand(self, *args, **kwargs)
|
1681
|
+
args = new_code[2:]
|
1682
|
+
|
1683
|
+
#args = code.code[2:]
|
1681
1684
|
|
1682
1685
|
if len(args) == 0:
|
1683
1686
|
vars = self._variables
|
@@ -1735,7 +1738,13 @@ class Session:
|
|
1735
1738
|
self.warning(f"当前session中不存在名称为 {args[0]} 的变量")
|
1736
1739
|
|
1737
1740
|
elif len(args) == 2:
|
1738
|
-
|
1741
|
+
val = None
|
1742
|
+
try:
|
1743
|
+
val = eval(args[1])
|
1744
|
+
except:
|
1745
|
+
val = args[1]
|
1746
|
+
|
1747
|
+
self.setVariable(args[0], val)
|
1739
1748
|
|
1740
1749
|
def handle_global(self, code: CodeLine = None, *args, **kwargs):
|
1741
1750
|
'''
|
@@ -1756,7 +1765,9 @@ class Session:
|
|
1756
1765
|
- #variable
|
1757
1766
|
'''
|
1758
1767
|
|
1759
|
-
|
1768
|
+
new_cmd_text, new_code = code.expand(self, *args, **kwargs)
|
1769
|
+
args = new_code[2:]
|
1770
|
+
#args = code.code[2:]
|
1760
1771
|
|
1761
1772
|
if len(args) == 0:
|
1762
1773
|
vars = self.application.globals
|
@@ -1810,7 +1821,12 @@ class Session:
|
|
1810
1821
|
self.info("全局空间不存在名称为 {} 的变量".format(var), "全局变量")
|
1811
1822
|
|
1812
1823
|
elif len(args) == 2:
|
1813
|
-
|
1824
|
+
val = None
|
1825
|
+
try:
|
1826
|
+
val = eval(args[1])
|
1827
|
+
except:
|
1828
|
+
val = args[1]
|
1829
|
+
self.application.set_globals(args[0], val)
|
1814
1830
|
|
1815
1831
|
def _handle_objs(self, name: str, objs: dict, *args):
|
1816
1832
|
if len(args) == 0:
|
@@ -2775,6 +2791,8 @@ class Session:
|
|
2775
2791
|
self.error(new_text[6:])
|
2776
2792
|
|
2777
2793
|
def info2(self, msg, title = "PYMUD INFO", style = Settings.INFO_STYLE):
|
2794
|
+
msg = f"{msg}"
|
2795
|
+
|
2778
2796
|
if Settings.client["newline"] in msg:
|
2779
2797
|
new_lines = list()
|
2780
2798
|
msg_lines = msg.split(Settings.client["newline"])
|
pymud/settings.py
CHANGED
@@ -11,9 +11,9 @@ class Settings:
|
|
11
11
|
"APP 名称, 默认PYMUD"
|
12
12
|
__appdesc__ = "a MUD client written in Python"
|
13
13
|
"APP 简要描述"
|
14
|
-
__version__ = "0.19.
|
14
|
+
__version__ = "0.19.4"
|
15
15
|
"APP 当前版本"
|
16
|
-
__release__ = "2024-04-
|
16
|
+
__release__ = "2024-04-20"
|
17
17
|
"APP 当前版本发布日期"
|
18
18
|
__author__ = "本牛(newstart)@北侠"
|
19
19
|
"APP 作者"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pymud
|
3
|
-
Version: 0.19.
|
3
|
+
Version: 0.19.4
|
4
4
|
Summary: a MUD Client written in Python
|
5
5
|
Author-email: "newstart@pkuxkx" <crapex@crapex.cc>
|
6
6
|
Maintainer-email: "newstart@pkuxkx" <crapex@crapex.cc>
|
@@ -960,3 +960,13 @@ Requires-Dist: prompt-toolkit
|
|
960
960
|
+ 功能增加: 新增一个exec_async函数,是exec函数的异步形式。可以在其他会话中异步执行一段代码
|
961
961
|
+ 帮助完善: 帮助文档逻辑完善,已完成整个包的内置文档的编写和修改
|
962
962
|
+ 注: 由于我没弄太明白 readthedocs.io 网站对于读取github源代码的逻辑,目前只能通过新发布正式版本的形式来使 readthedocs.io 网站的文档中的类参考自动更新。
|
963
|
+
|
964
|
+
### 0.19.3post2 (2024-04-05)
|
965
|
+
+ 问题修复: 修复退出程序时的小bug
|
966
|
+
|
967
|
+
### 0.19.4 (2024-04-20)
|
968
|
+
+ 功能调整: info 现在 msg 恢复为可接受任何类型参数,不一定是 str
|
969
|
+
+ 功能调整: #var, #global 指令中,现在可以使用参数扩展了,例如 #var max_qi @qi
|
970
|
+
+ 功能调整: #var, #global 指令中,现在对字符串会先使用 eval 转换类型,转换失败时使用 str 类型。例如, #var myvar 1 时,myvar类型将为int
|
971
|
+
+ 功能调整: 变量替代时,会自动实现类型转化,当被替代变量值为非 str 类型时不会再报错
|
972
|
+
+ 问题修复: 修复之前从后向前选择时,无法复制的问题
|
@@ -0,0 +1,16 @@
|
|
1
|
+
pymud/__init__.py,sha256=5SteBKAKAizt98QOxDRuGxRHhoDAijdG8lC5U7az2SM,422
|
2
|
+
pymud/__main__.py,sha256=I6jFLnTErSuM0G828WUx5EIAmMNAzqYr2AT1zdtGmp0,4636
|
3
|
+
pymud/dialogs.py,sha256=SRNHOashupNi7128Bg_35J1rrI2TsZEakTbaMW5d9PU,5596
|
4
|
+
pymud/extras.py,sha256=p2fgnzKFtaAvcYqayMNSZhrC3BpvfkbF_la3SfGaWBA,42400
|
5
|
+
pymud/objects.py,sha256=hERTIctGF660CoHwZf00-5RZ1-bqCPK2QuwmTZ7NceU,38088
|
6
|
+
pymud/pkuxkx.py,sha256=vWXHU6GF0HQ0eWb3LmxFVRP0cKnigffCX7Z-LJvwVtw,11496
|
7
|
+
pymud/protocol.py,sha256=QfDXjlg2OcJXmVoXf_3mAemnYotRXDUlEZNQjhkfXdA,49106
|
8
|
+
pymud/pymud.py,sha256=HgmAXBXNMjo8xKAVQRS2XOshp-hieEy7bjvaXGq_0Y0,43230
|
9
|
+
pymud/session.py,sha256=18QIArVTPKEBETv4pTWSXssy12XbM4cFj0IhCyio49U,114503
|
10
|
+
pymud/settings.py,sha256=p1YPxDAh0isRsoRVGOgklawXYkzUE490irNiizWylB4,7092
|
11
|
+
pymud-0.19.4.dist-info/LICENSE.txt,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
|
12
|
+
pymud-0.19.4.dist-info/METADATA,sha256=ApUZTZZRwQvR0vXUAd1gMTlcfLjT3NWYz2mKtmuHJmo,67839
|
13
|
+
pymud-0.19.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
14
|
+
pymud-0.19.4.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
|
15
|
+
pymud-0.19.4.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
|
16
|
+
pymud-0.19.4.dist-info/RECORD,,
|
@@ -1,16 +0,0 @@
|
|
1
|
-
pymud/__init__.py,sha256=5SteBKAKAizt98QOxDRuGxRHhoDAijdG8lC5U7az2SM,422
|
2
|
-
pymud/__main__.py,sha256=I6jFLnTErSuM0G828WUx5EIAmMNAzqYr2AT1zdtGmp0,4636
|
3
|
-
pymud/dialogs.py,sha256=SRNHOashupNi7128Bg_35J1rrI2TsZEakTbaMW5d9PU,5596
|
4
|
-
pymud/extras.py,sha256=p2fgnzKFtaAvcYqayMNSZhrC3BpvfkbF_la3SfGaWBA,42400
|
5
|
-
pymud/objects.py,sha256=1cEhGtJ0mPrPSEXUw9t_okj9br2jN3Yx7djT1ht1a-4,38063
|
6
|
-
pymud/pkuxkx.py,sha256=vWXHU6GF0HQ0eWb3LmxFVRP0cKnigffCX7Z-LJvwVtw,11496
|
7
|
-
pymud/protocol.py,sha256=QfDXjlg2OcJXmVoXf_3mAemnYotRXDUlEZNQjhkfXdA,49106
|
8
|
-
pymud/pymud.py,sha256=i_iSLbC_Im8ktRW1iTkTtd2jT-GwzX_1uKHLQIPsG8U,42936
|
9
|
-
pymud/session.py,sha256=d5MGyLO2-s2vhFuuFhU-URXN74KycdO_Xp0Zh4et2dY,114021
|
10
|
-
pymud/settings.py,sha256=LgyNNxKeC4_vnvysxtLP2o9TA4HqIfXZgovgL2LRApY,7092
|
11
|
-
pymud-0.19.3.post1.dist-info/LICENSE.txt,sha256=IwGE9guuL-ryRPEKi6wFPI_zOhg7zDZbTYuHbSt_SAk,35823
|
12
|
-
pymud-0.19.3.post1.dist-info/METADATA,sha256=15c75JkwFa8mdeRTrT1M4NLz5VoOmcvqgLzDJhQd_1I,67167
|
13
|
-
pymud-0.19.3.post1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
14
|
-
pymud-0.19.3.post1.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
|
15
|
-
pymud-0.19.3.post1.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
|
16
|
-
pymud-0.19.3.post1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|