pymud 0.18.1__py3-none-any.whl → 0.18.2__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 +23 -11
- pymud/session.py +3 -1
- pymud/settings.py +3 -3
- {pymud-0.18.1.dist-info → pymud-0.18.2.dist-info}/METADATA +6 -2
- {pymud-0.18.1.dist-info → pymud-0.18.2.dist-info}/RECORD +9 -9
- {pymud-0.18.1.dist-info → pymud-0.18.2.dist-info}/LICENSE.txt +0 -0
- {pymud-0.18.1.dist-info → pymud-0.18.2.dist-info}/WHEEL +0 -0
- {pymud-0.18.1.dist-info → pymud-0.18.2.dist-info}/entry_points.txt +0 -0
- {pymud-0.18.1.dist-info → pymud-0.18.2.dist-info}/top_level.txt +0 -0
pymud/objects.py
CHANGED
@@ -104,8 +104,8 @@ class CodeLine:
|
|
104
104
|
new_code_str = self.__code
|
105
105
|
new_code = []
|
106
106
|
|
107
|
-
line = kwargs.get("line", None)
|
108
|
-
raw = kwargs.get("raw", None)
|
107
|
+
line = kwargs.get("line", None) or session.getVariable("%line", "None")
|
108
|
+
raw = kwargs.get("raw", None) or session.getVariable("%raw", "None")
|
109
109
|
wildcards = kwargs.get("wildcards", None)
|
110
110
|
|
111
111
|
for item in self.code:
|
@@ -116,7 +116,7 @@ class CodeLine:
|
|
116
116
|
if idx <= len(wildcards):
|
117
117
|
item_val = wildcards[idx-1]
|
118
118
|
else:
|
119
|
-
item_val = None
|
119
|
+
item_val = "None"
|
120
120
|
new_code.append(item_val)
|
121
121
|
new_code_str = new_code_str.replace(item, item_val, 1)
|
122
122
|
|
@@ -726,6 +726,7 @@ class Timer(BaseObject):
|
|
726
726
|
|
727
727
|
def __init__(self, session, *args, **kwargs):
|
728
728
|
self._task = None
|
729
|
+
self._halt = False
|
729
730
|
super().__init__(session, *args, **kwargs)
|
730
731
|
|
731
732
|
def __del__(self):
|
@@ -733,24 +734,36 @@ class Timer(BaseObject):
|
|
733
734
|
|
734
735
|
def startTimer(self):
|
735
736
|
if not isinstance(self._task, asyncio.Task):
|
737
|
+
self._halt = False
|
736
738
|
self._task = asyncio.create_task(self.onTimerTask())
|
737
739
|
|
738
740
|
asyncio.ensure_future(self._task)
|
739
741
|
|
740
742
|
async def onTimerTask(self):
|
741
|
-
|
743
|
+
# 定时任务,修改为一直循环
|
744
|
+
while self._enabled:
|
742
745
|
await asyncio.sleep(self.timeout)
|
746
|
+
|
743
747
|
if callable(self._onSuccess):
|
744
748
|
self._onSuccess(self.id)
|
745
749
|
|
746
|
-
if self.oneShot:
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
+
if self.oneShot or self._halt:
|
751
|
+
break
|
752
|
+
|
753
|
+
# if self.enabled:
|
754
|
+
# await asyncio.sleep(self.timeout)
|
755
|
+
# if callable(self._onSuccess):
|
756
|
+
# self._onSuccess(self.id)
|
757
|
+
|
758
|
+
# if self.oneShot:
|
759
|
+
# self.enabled = False
|
760
|
+
# else:
|
761
|
+
# await asyncio.create_task(self.onTimerTask())
|
750
762
|
|
751
763
|
def reset(self):
|
752
764
|
"复位定时器,清除所创建的定时任务"
|
753
765
|
try:
|
766
|
+
self._halt = True
|
754
767
|
if isinstance(self._task, asyncio.Task) and (not self._task.done()):
|
755
768
|
self._task.cancel()
|
756
769
|
|
@@ -781,10 +794,9 @@ class SimpleTimer(Timer):
|
|
781
794
|
self._code = code
|
782
795
|
self._codeblock = CodeBlock(code)
|
783
796
|
super().__init__(session, *args, **kwargs)
|
784
|
-
self.sync = kwargs.get("sync", False) # 同步模式,默认异步
|
785
797
|
|
786
|
-
def onSuccess(self,
|
787
|
-
self._codeblock.execute(self.session,
|
798
|
+
def onSuccess(self, id):
|
799
|
+
self._codeblock.execute(self.session, id = id)
|
788
800
|
|
789
801
|
def __detailed__(self) -> str:
|
790
802
|
return f'<{self.__class__.__name__}> id = "{self.id}" group = "{self.group}" enabled = {self.enabled} timeout = {self.timeout} code = "{self._code}"'
|
pymud/session.py
CHANGED
@@ -1620,7 +1620,9 @@ class Session:
|
|
1620
1620
|
" 注意:在触发器中使用。多行触发器时,替代只替代最后一行"
|
1621
1621
|
"\x1b[1m相关\x1b[0m: gag\n"
|
1622
1622
|
|
1623
|
-
|
1623
|
+
new_text, new_code = code.expand(self, *args, **kwargs)
|
1624
|
+
self.replace(new_text[9:])
|
1625
|
+
#self.replace(code.commandText[9:])
|
1624
1626
|
#self.display_line = code.commandText[9:]
|
1625
1627
|
|
1626
1628
|
def handle_gag(self, code: CodeLine = None, *args, **kwargs):
|
pymud/settings.py
CHANGED
@@ -11,15 +11,15 @@ class Settings:
|
|
11
11
|
"APP 名称, 默认PYMUD"
|
12
12
|
__appdesc__ = "a MUD client written in Python"
|
13
13
|
"APP 简要描述"
|
14
|
-
__version__ = "0.18.
|
14
|
+
__version__ = "0.18.2"
|
15
15
|
"APP 当前版本"
|
16
|
-
__release__ = "2024-02-
|
16
|
+
__release__ = "2024-02-06"
|
17
17
|
"APP 当前版本发布日期"
|
18
18
|
__author__ = "本牛(newstart)@北侠"
|
19
19
|
"APP 作者"
|
20
20
|
__email__ = "crapex@crapex.cc"
|
21
21
|
"APP 作者邮箱"
|
22
|
-
__website__ = "https://
|
22
|
+
__website__ = "https://pypi.org/project/pymud"
|
23
23
|
"APP 发布网址"
|
24
24
|
|
25
25
|
server = {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: pymud
|
3
|
-
Version: 0.18.
|
3
|
+
Version: 0.18.2
|
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>
|
@@ -893,4 +893,8 @@ Requires-Dist: prompt-toolkit
|
|
893
893
|
+ 问题修复:统一处置了task.cancel的参数和create_task的name属性,以适应更低版本的python环境(低至3.7)
|
894
894
|
+ 实现调整:为解决同步/异步执行问题,在CodeLine和CodeBlock的实现中,会通过调用命令来判断是否使用同步模式(默认为异步)。#gag、#replace为强制同步,#wa为强制异步。当同时存在时,同步失效,异步执行。
|
895
895
|
+ 实现调整:将%line、%raw的访问传递到触发器内部的执行中,避免同步异步问题。
|
896
|
-
+ 新增文档:将帮助文档添加到本项目,帮助文档自动同步到 pymud.readthedocs.org
|
896
|
+
+ 新增文档:将帮助文档添加到本项目,帮助文档自动同步到 pymud.readthedocs.org (文档内容暂未更新)
|
897
|
+
|
898
|
+
### 0.18.2 (2024-02-06)
|
899
|
+
+ 问题修复:修改了定时器实现,以避免出现递归调用超限异常
|
900
|
+
+ 问题修复:修改了参数替代时的默认值,从None改为字符串"None",以避免替代时报None异常
|
@@ -2,15 +2,15 @@ pymud/__init__.py,sha256=G_k8deY6ulAJdtNkaYn6_zM0j2InJNddxMhnoSqZV30,417
|
|
2
2
|
pymud/__main__.py,sha256=uGbkGxwhNkpZVYn0mGnPpfTdqkxzfu8Jf8WAV_Uykuo,361
|
3
3
|
pymud/dialogs.py,sha256=_OE1vq_hbu7rUbjsvCH2mEEhEYMiwXEJE0TXIYZc0EI,5591
|
4
4
|
pymud/extras.py,sha256=uFMjoO2fgSQT0lx7BoejAExeGKJ5QTkS5Kwatblfvdg,41490
|
5
|
-
pymud/objects.py,sha256=
|
5
|
+
pymud/objects.py,sha256=2qnrNI_891y-Wo6Z0xjoPcbJSfrPLbyZOmUNXMsYAz0,28983
|
6
6
|
pymud/pkuxkx.py,sha256=_CR4ETm-ihl5ZqznB75-pT3NdZSfUiuOsvEh5MwSjHI,11417
|
7
7
|
pymud/protocol.py,sha256=F96Yq-1YO_5GN6QnJ4vMdNjCAzejVmDdsfrJguCjCeE,49120
|
8
8
|
pymud/pymud.py,sha256=Q0VB4aX-CV7Lyi88EuaKBb1Qai8f9hk5B-jG7CCs-70,38291
|
9
|
-
pymud/session.py,sha256=
|
10
|
-
pymud/settings.py,sha256=
|
11
|
-
pymud-0.18.
|
12
|
-
pymud-0.18.
|
13
|
-
pymud-0.18.
|
14
|
-
pymud-0.18.
|
15
|
-
pymud-0.18.
|
16
|
-
pymud-0.18.
|
9
|
+
pymud/session.py,sha256=pehDGkNJDxt99aZ-5M151BkgFFiAXXg6sWK7f31_nS8,70241
|
10
|
+
pymud/settings.py,sha256=eAMaavWTriI229pgPfYNHjOTNiv44QTu434fuLBqfWg,6483
|
11
|
+
pymud-0.18.2.dist-info/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
12
|
+
pymud-0.18.2.dist-info/METADATA,sha256=WjVXXZMkoN4tV6V-HozMjLx64Ik0MkBb4lJ5KLdfawI,61977
|
13
|
+
pymud-0.18.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
|
14
|
+
pymud-0.18.2.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
|
15
|
+
pymud-0.18.2.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
|
16
|
+
pymud-0.18.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|