pymud 0.21.2.post1__py3-none-any.whl → 0.21.3.post1__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/extras.py +8 -6
- pymud/objects.py +7 -5
- pymud/session.py +8 -2
- {pymud-0.21.2.post1.dist-info → pymud-0.21.3.post1.dist-info}/METADATA +52 -46
- {pymud-0.21.2.post1.dist-info → pymud-0.21.3.post1.dist-info}/RECORD +9 -9
- {pymud-0.21.2.post1.dist-info → pymud-0.21.3.post1.dist-info}/WHEEL +0 -0
- {pymud-0.21.2.post1.dist-info → pymud-0.21.3.post1.dist-info}/entry_points.txt +0 -0
- {pymud-0.21.2.post1.dist-info → pymud-0.21.3.post1.dist-info}/licenses/LICENSE.txt +0 -0
- {pymud-0.21.2.post1.dist-info → pymud-0.21.3.post1.dist-info}/top_level.txt +0 -0
pymud/extras.py
CHANGED
@@ -639,11 +639,13 @@ class SessionBuffer(BufferBase):
|
|
639
639
|
## limit buffered lines
|
640
640
|
if len(self._lines) > self.max_buffered_lines:
|
641
641
|
diff = len(self._lines) - self.max_buffered_lines
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
self.selection.
|
642
|
+
# 分屏状态下,暂时不动态调整数据
|
643
|
+
if self.start_lineno < 0:
|
644
|
+
del self._lines[:diff]
|
645
|
+
## adjust selection
|
646
|
+
if self.selection.start_row >= 0:
|
647
|
+
self.selection.start_row -= diff
|
648
|
+
self.selection.end_row -= diff
|
647
649
|
|
648
650
|
get_app().invalidate()
|
649
651
|
|
@@ -720,7 +722,7 @@ class PyMudBufferControl(UIControl):
|
|
720
722
|
# Default reset. (Doesn't have to be implemented.)
|
721
723
|
pass
|
722
724
|
|
723
|
-
def preferred_width(self, max_available_width: int) -> int
|
725
|
+
def preferred_width(self, max_available_width: int) -> Optional[int]:
|
724
726
|
return None
|
725
727
|
|
726
728
|
def is_focusable(self) -> bool:
|
pymud/objects.py
CHANGED
@@ -793,12 +793,14 @@ class Command(MatchObject):
|
|
793
793
|
"""
|
794
794
|
复位命令,并取消和清除所有本对象管理的任务。
|
795
795
|
"""
|
796
|
+
try:
|
797
|
+
super().reset()
|
796
798
|
|
797
|
-
|
798
|
-
|
799
|
-
|
800
|
-
|
801
|
-
|
799
|
+
for task in list(self._tasks):
|
800
|
+
if isinstance(task, asyncio.Task) and (not task.done()):
|
801
|
+
self.remove_task(task)
|
802
|
+
except:
|
803
|
+
pass
|
802
804
|
|
803
805
|
async def execute(self, cmd, *args, **kwargs) -> Any:
|
804
806
|
"""
|
pymud/session.py
CHANGED
@@ -736,8 +736,14 @@ class Session:
|
|
736
736
|
:param task: 由本会话管理的一个 asyncio.Task 对象
|
737
737
|
:param msg: 本意是用来反馈 task.cancel() 时的消息,但为了保持兼容低版本Python环境,该参数并未使用。
|
738
738
|
"""
|
739
|
-
|
740
|
-
|
739
|
+
|
740
|
+
result = True
|
741
|
+
try:
|
742
|
+
result = task.cancel()
|
743
|
+
self._tasks.discard(task)
|
744
|
+
|
745
|
+
except asyncio.CancelledError:
|
746
|
+
pass
|
741
747
|
|
742
748
|
return result
|
743
749
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: pymud
|
3
|
-
Version: 0.21.
|
3
|
+
Version: 0.21.3.post1
|
4
4
|
Summary: a MUD Client written in Python
|
5
5
|
Author-email: "newstart@pkuxkx" <crapex@hotmail.com>
|
6
6
|
Maintainer-email: "newstart@pkuxkx" <crapex@hotmail.com>
|
@@ -33,13 +33,13 @@ Dynamic: license-file
|
|
33
33
|
# PyMUD - Python原生MUD客户端
|
34
34
|
## 简介
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
+ 北侠WIKI: https://www.pkuxkx.net/wiki/tools/pymud
|
37
|
+
+ 源代码地址: https://github.com/crapex/pymud
|
38
|
+
+ 帮助文档地址: https://pymud.readthedocs.io
|
39
|
+
+ PyPi项目地址: https://pypi.org/project/pymud
|
40
|
+
+ 由deepwiki自动生成的项目理解文档地址: https://deepwiki.com/crapex/pymud
|
41
|
+
+ PyMUD用户shanghua写的入门教程文档:https://www.pkuxkx.net/forum/forum.php?mod=viewthread&tid=49999&forumuid=12067
|
42
|
+
+ 交流QQ群:554672580
|
43
43
|
|
44
44
|
|
45
45
|
### 北大侠客行Mud (www.pkuxkx.net),最好的中文Mud游戏!
|
@@ -55,7 +55,7 @@ Dynamic: license-file
|
|
55
55
|
+ 一次脚本开发,多平台运行。只要能在该平台上运行python,就可以运行PyMUD客户端
|
56
56
|
+ 脚本所有语法均采用Python原生语法,因此你只要会用Python,就可以自己写脚本,免去了再去学习lua、熟悉各类APP的使用的难处
|
57
57
|
+ Python拥有极为强大的文字处理能力,用于处理文本的MUD最为合适
|
58
|
-
+ Python拥有极为丰富的第三方库,能支持的第三方库,就能在
|
58
|
+
+ Python拥有极为丰富的第三方库,能支持的第三方库,就能在PyMUD中支持
|
59
59
|
+ 我自己还在玩,所以本客户端会持续进行更新:)
|
60
60
|
|
61
61
|
### 哪些人适合使用PyMUD
|
@@ -66,12 +66,17 @@ Dynamic: license-file
|
|
66
66
|
|
67
67
|
## 版本更新信息
|
68
68
|
|
69
|
+
### 0.21.3 (2025-06-02)
|
70
|
+
|
71
|
+
+ 问题修复: 修复了当缓存行数超过规定值时,由于代码错误导致清屏的问题。
|
72
|
+
+ 功能增强: 增加清除任务时的异常保护,此时产生asyncio.CancelledError异常为正常现象,因此捕获后禁止异常处理。
|
73
|
+
+ 功能增强: 对reset进行了异常提示保护,此时产生异常(大部分为asyncio.CancelledError)为正常现象,因此捕获后禁止异常处理。
|
74
|
+
|
69
75
|
### 0.21.2 (2025-06-01)
|
70
76
|
|
71
77
|
+ 问题修复: 修复了当自动重连启动时,即使会话关闭了,也会自动重连的问题。
|
72
|
-
+ 实现调整: 重写了专用的会话缓冲、记录缓冲与
|
78
|
+
+ 实现调整: 重写了专用的会话缓冲、记录缓冲与PyMUD缓冲显示控制器,在prompt_toolkit的原Buffer和BufferControl的基础仅提供了PyMUD所需的基础功能,以降低内存占用。
|
73
79
|
经测试,当前内存基本稳定,视会话数量和脚本情况差异,维持在几百兆左右(500M以下),且不会有大幅波动。重写后,低配置的VPS也可以稳定运行PyMUD。
|
74
|
-
+ post1: 问题修复: 修复了当缓存行数超过规定值时,由于代码错误导致清屏的问题。
|
75
80
|
|
76
81
|
### 0.21.0 (2025-05-20)
|
77
82
|
|
@@ -87,19 +92,19 @@ Dynamic: license-file
|
|
87
92
|
|
88
93
|
+ 功能新增: 新增了deleteGroup函数,用于删除指定的对象组。可同时指定组名、是否包含子组名、有效类型范围。函数定义和示例代码如下:
|
89
94
|
|
90
|
-
``` Python
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
```
|
95
|
+
``` Python
|
96
|
+
def deleteGroup(self, group: str, subgroup = True, types: Union[Type, Union[Tuple, List]] = (Alias, Trigger, Command, Timer, GMCPTrigger)):
|
97
|
+
pass
|
98
|
+
# 各参数含义:
|
99
|
+
# group: 要删除的组名,可以是完整的组名,也可以是部分组名。例如:"group1" 或 "group1.subgroup1" 等。
|
100
|
+
# subgroup: 是否包含子组。如果为True,则删除指定组及其所有子组的对象。如果为False,则仅删除指定组的对象,不包括子组。
|
101
|
+
# types: 要删除的对象类型范围。可以是单个类型,也可以是类型的元组或列表。例如:Trigger, Alias, Command, Timer, GMCPTrigger 等。
|
102
|
+
# 示例代码:
|
103
|
+
# 删除所有属于group1的Trigger和Alias对象,包括子组如 group1.subgroup1 和 group1.subgroup2 等
|
104
|
+
self.session.deleteGroup("group1", True, [Trigger, Alias])
|
105
|
+
# 删除所有属于group1的Trigger对象,但不包括子组
|
106
|
+
self.session.deleteGroup("group1", False, [Trigger])
|
107
|
+
```
|
103
108
|
|
104
109
|
+ 功能新增: 对 #trigger, #alias, #timer, #gmcp, #command, #t+, #t- 等命令新增了组处理选项,用于对整组对象进行处理。各命令的语法格式类似。
|
105
110
|
处理组时,组名应以大于号>或者等于号=开头,紧跟组名(无空格)。当使用>时,表示操作针对当前组及所有所属子组,当使用=时,表示操作仅针对当前组。
|
@@ -139,7 +144,7 @@ Dynamic: license-file
|
|
139
144
|
+ 功能新增: #load / #unload 现在支持当前会话对插件的临时启用和禁用,实现方式为调用插件里的PLUGIN_SESSION_CREATE和PLUGIN_SESSION_DESTROYE函数。群文件的moving.py插件写法可以支持。
|
140
145
|
+ 功能调整: 各会话变量保存的.mud文件,统一移到save子目录下。原来当前目录下的.mud文件,在对应会话重新加载时会自动移动,无需人工处理。
|
141
146
|
+ 功能新增: 增加了国际化(i18n)支持,原生开发语言为中文简体,目前使用AI翻译生成了英文。应用语言通过Settings中新增的language配置来控制,默认为"chs",可以在pymud.cfg中覆盖该配置。其值目前可以为"chs"、"eng"。自行翻译的语言可以在pymud/lang目录下下新增语言文件,文件名为i18n_加语言代码,例如"i18n_chs.py"表示可以使用"chs"语言,其中使用Python字典方式定义了所有需动态显示的文本内容。
|
142
|
-
+ 功能新增: 新增了使用元类型及装饰器来管理
|
147
|
+
+ 功能新增: 新增了使用元类型及装饰器来管理PyMUD对象,包括Alias, Trigger, Timer, GMCPTrigger四种可以使用对应的装饰器,@alias, @trigger, @timer, @gmcp来直接在标记函数上创建。可以参考本版本中的pkuxkx.py文件写法和注意事项。
|
143
148
|
+ 功能新增: 新增了两个装饰器,@exception和@async_exception,用于捕获异常并调用session.error进行显示。@exception用于捕获同步异常,@async_exception用于捕获异步异常。参考如下:
|
144
149
|
``` Python
|
145
150
|
from pymud import Command, Trigger, IConfig, exception, async_exception
|
@@ -175,7 +180,7 @@ Dynamic: license-file
|
|
175
180
|
+ 功能增强: 对几乎所有函数的参数进行了类型标注,增加了类型检查,提高了代码的可读性和可维护性,也便于自行编写脚本时的提示。
|
176
181
|
+ 功能增强: 为Session类型增加了commandHistory属性,用于查询发送到服务器的命令历史。保存的命令历史的数量由pymud.cfg中的client["history_records"]控制,默认为500。当该值为0时,不会保存命令历史。为-1时,会保存所有命令历史。
|
177
182
|
+ 功能调整: #help命令时,增加了上下两行分隔符显示,以便明显区分帮助输出和游戏输出。
|
178
|
-
+ 功能增强: 当前
|
183
|
+
+ 功能增强: 当前PyMUD界面中显示的版本号会自动从pyproject.toml中读取,以确保版本号的准确性和唯一性。
|
179
184
|
+ 问题修复: 修复了代码中的部分编码错误。新版Python中能容忍一些错误,但老版本不行。经修复,当前代码支持的Python版本已测试3.8确保可用。建议使用3.10或更高版本的Python。
|
180
185
|
+ 问题修复: 删除了extras.py中多余的MenuItem类型定义,该定义与prompt_toolkit中的MenuItem定义冲突。
|
181
186
|
+ 问题修复: 调整了众多代码中未检查对象是否为None即调用、使用的局部变量可能未经过初始化和赋值路径等的情况,保证程序运行的健壮性。
|
@@ -205,7 +210,7 @@ Dynamic: license-file
|
|
205
210
|
### 0.20.1 (2024-11-16)
|
206
211
|
+ 功能调整: 会话中触发器匹配实现进行部分调整,减少循环次数以提高响应速度
|
207
212
|
+ 功能调整: #test / #show 触发器测试功能调整,现在会对使能的和未使能的触发器均进行匹配测试。其中,#show 命令仅测试,而 #test 命令会导致触发器真正响应。
|
208
|
-
+ 功能新增:
|
213
|
+
+ 功能新增: PyMUD对象新增了一个持续运行的1s的周期定时任务。该任务中会刷新页面显示。可以使用 session.application.addTimerTickCallback 和 session.application.removeTimerTickCallback 来注册和解除定时器回调。
|
209
214
|
|
210
215
|
### 0.20.0 (2024-08-25)
|
211
216
|
+ 功能调整: 将模块主入口函数从__main__.py中移动到main.py中,以使可以在当前目录下,可直接使用pymud,也可使用python -m pymud启动
|
@@ -228,16 +233,16 @@ Dynamic: license-file
|
|
228
233
|
+ 问题修复: 修复部分正则表达式书写错误问题
|
229
234
|
+ 功能新增: Session类新增waitfor函数,用于执行一段代码后立即等待某个触发器的情况,简化原三行代码写法
|
230
235
|
|
231
|
-
``` Python
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
```
|
236
|
+
``` Python
|
237
|
+
# 原来为确保await triggered的任务在输入前等待,有时候需要这么写:
|
238
|
+
task = self.create_task(self.tri1.triggered())
|
239
|
+
await asyncio.sleep(0.05)
|
240
|
+
self.session.writeline('dazuo')
|
241
|
+
await task
|
242
|
+
|
243
|
+
# 现在可以一句话简写:
|
244
|
+
await self.session.waitfor('dazuo', self.create_task(self.tri1.triggered()))
|
245
|
+
```
|
241
246
|
|
242
247
|
+ 功能调整: Session类的addTriggers等方法接受的dict中,会将对象本身id作为会话处理id。当该id与key不一致时,会同时显示警告。
|
243
248
|
+ 功能新增: Session类新增addObject, addObjects, delObject, delObjects用于操作别名、定时器、触发器、GMCP触发器、命令等对象。
|
@@ -374,7 +379,7 @@ Dynamic: license-file
|
|
374
379
|
+ 功能修改:Timer实现进行修改,以确保一个定时器仅创建一个任务。
|
375
380
|
+ 功能调整:Timer对象在复位Session对象时,也同时复位。目的是确保reload时不重新创建定时器任务。
|
376
381
|
+ 功能调整:在会话连接时,不再复位Session有关对象信息。该复位活动仅在连接断开时和脚本重新加载时进行。
|
377
|
-
+ 功能调整:启动
|
382
|
+
+ 功能调整:启动PyMUD时,会将控制台标题设置为PyMUD+版本号。
|
378
383
|
+ 问题修复:修复会话特定脚本模块会被其他会话加载的bug。
|
379
384
|
+ 问题修复:修复定时器Timer中的bug。
|
380
385
|
|
@@ -382,7 +387,7 @@ Dynamic: license-file
|
|
382
387
|
本版对模块功能进行了整体调整,支持加载/卸载/重载/预加载多个模块,具体内容如下:
|
383
388
|
+ 当模块中存在名为Configuration类时,以主模块形式加载,即:自动创建该Configuration类的实例(与原脚本相同)
|
384
389
|
+ 当模块中不存在名为Configuration类时,以子模块形式加载,即:仅加载该模块,但不会创建Configuration的实例
|
385
|
-
+
|
390
|
+
+ \#load命令支持同时加载多个模块,模块名以半角逗号(,)隔开即可。此时按给定的名称顺序逐一加载。如:#load mod1,mod2
|
386
391
|
+ 增加#unload命令,卸载卸载名称模块,同时卸载多个模块时,模块名以半角逗号(,)隔开即可。卸载时,如果该模块有Configuration类,会自动调用其__del__方法
|
387
392
|
+ 修改reload命令功能,当不带参数时,重新加载所有已加载模块,带参数时,首先尝试重新加载指定名称模块,若模块中不存在该名称模块,则重新加载指定名称的插件。若存在同名模块和插件,则仅重新加载插件(建议不要让插件和模块同名)
|
388
393
|
+ 增加#modules(简写为#mods)命令,可以列出所有已经加载的模块清单
|
@@ -433,13 +438,14 @@ Dynamic: license-file
|
|
433
438
|
+ 功能增加:增加#py指令,可以直接在命令行中写代码并执行。执行的上下文环境为当前环境,即self代表当前session。例如,#py self.writeline("xixi")相当于直接在脚本会话中调用发送xixi指令
|
434
439
|
+ 功能新增:新增插件(Plugins)功能。将自动读取pymud模块目录的plugins子目录以及当前脚本目录的plugins子目录下的.py文件,若发现遵照插件规范脚本,将自动加载该模块到pymud。可以使用#plugins查看所有被加载的插件,可以直接带参数插件名(如#plugins myplugin)查看插件的详细信息(自动打印插件的__doc__属性,即写在文件最前面的字符串常量)插件文件中必须有以下定义:
|
435
440
|
|
436
|
-
|名称|类型|状态|含义|
|
437
|
-
|-|-|-|-|
|
438
|
-
|PLUGIN_NAME|str|必须有|插件唯一名称|
|
439
|
-
|PLUGIN_DESC|dict|必须有|插件描述信息的详情,必要关键字包含VERSION(版本)、AUTHOR(作者)、RELEASE_DATE(发布日期)、DESCRIPTION(简要描述)|
|
440
|
-
|PLUGIN_PYMUD_START|func(app)|函数定义必须有,函数体可以为空|
|
441
|
-
|PLUGIN_SESSION_CREATE|func(session)|函数定义必须有,函数体可以为空|在会话中加载插件时自动调用的函数, session为加载插件的会话。该函数在每一个会话创建时均被自动加载一次|
|
442
|
-
|PLUGIN_SESSION_DESTROY|func(session)|函数定义必须有,函数体可以为空|在会话中卸载插件时自动调用的函数, session为卸载插件的会话。卸载在每一个会话关闭时均被自动运行一次。|
|
441
|
+
|名称|类型|状态|含义|
|
442
|
+
|-|-|-|-|
|
443
|
+
|PLUGIN_NAME|str|必须有|插件唯一名称|
|
444
|
+
|PLUGIN_DESC|dict|必须有|插件描述信息的详情,必要关键字包含VERSION(版本)、AUTHOR(作者)、RELEASE_DATE(发布日期)、DESCRIPTION(简要描述)|
|
445
|
+
|PLUGIN_PYMUD_START|func(app)|函数定义必须有,函数体可以为空|PyMUD自动读取并加载插件时自动调用的函数, app为PyMudApp(PyMUD管理类)。该函数仅会在程序运行时,自动加载一次|
|
446
|
+
|PLUGIN_SESSION_CREATE|func(session)|函数定义必须有,函数体可以为空|在会话中加载插件时自动调用的函数, session为加载插件的会话。该函数在每一个会话创建时均被自动加载一次|
|
447
|
+
|PLUGIN_SESSION_DESTROY|func(session)|函数定义必须有,函数体可以为空|在会话中卸载插件时自动调用的函数, session为卸载插件的会话。卸载在每一个会话关闭时均被自动运行一次。|
|
448
|
+
|PLUGIN_PYMUD_DESTROY|func(app)|函数定义必须有,函数体可以为空|在PyMUD程序退出时自动调用的函数, app为PyMUD管理类。该函数仅会在程序运行时,自动卸载一次|
|
443
449
|
|
444
450
|
+ 功能修改:对session自动加载mud文件中变量失败时的异常进行管理,此时将不加载变量,自动继续进行
|
445
451
|
+ 功能修改:所有匹配类对象的匹配模式patterns支持动态修改,涉及Alias,Trigger,Command。修改方式为直接对其patterns属性赋值。如tri.patterns = aNewPattern
|
@@ -2,22 +2,22 @@ pymud/__init__.py,sha256=oeHz0NM7_DwChCY8f_vQ_fBq0e_HoTd0cahCFwaavWE,806
|
|
2
2
|
pymud/__main__.py,sha256=lIOBiJmi8X-EWXVIx_OoxSgUZ0FYKlZI8hXVnLUYTJQ,61
|
3
3
|
pymud/decorators.py,sha256=XaxcZqHw4s44lC2EAgB5kZmbNvJnHGmpZnoW75tUeNY,9844
|
4
4
|
pymud/dialogs.py,sha256=4kHycr47UgKQUHGX-KMZvERuWViPjT4hNrGhbe4j-NU,7056
|
5
|
-
pymud/extras.py,sha256=
|
5
|
+
pymud/extras.py,sha256=9jHJALSaydS-EMqDN4pHlkCcxii1uTz0Z3N1yuvcGlM,36778
|
6
6
|
pymud/i18n.py,sha256=qLgvrmYhVfkTHKpbBR-LfYMOrGgi0skHrelbsj7ItbE,3034
|
7
7
|
pymud/logger.py,sha256=WCsfXVkgl63qdq1RQEDJBnM7U0S6u8TeORFSMhcoydI,5840
|
8
8
|
pymud/main.py,sha256=zaSjNhpbX3FMulKg-UNFrdiIJO8sOmmrUQrkPOalB-4,10224
|
9
9
|
pymud/modules.py,sha256=DoCregng5iAj_Hq_yUvRPreRTv2Ehb6sV6_4jfdbsik,11912
|
10
|
-
pymud/objects.py,sha256=
|
10
|
+
pymud/objects.py,sha256=Z77KHbg06jIx9cIEiyHkWI5i3but4PFeZS_m2WHsFrs,38729
|
11
11
|
pymud/pkuxkx.py,sha256=qDVry-Vd6MNui0NKWZFT52IpmP1sKS5Dz74EDY4tVGQ,14740
|
12
12
|
pymud/protocol.py,sha256=KNKJYj9HFRoUy-jigNfhiQdDOM_kRSJE17QFpBarQTg,48335
|
13
13
|
pymud/pymud.py,sha256=40hn5XyMH9mtjimx_zG7N2M6fAGciee1izO08jsfFzQ,53486
|
14
|
-
pymud/session.py,sha256=
|
14
|
+
pymud/session.py,sha256=vzOIyc1F8PVP1XadcGt-n7XOoiawJzYsIEBe0FU5oKY,154716
|
15
15
|
pymud/settings.py,sha256=S2sBEM7YtaDOVu3UpGfHBaU7zSB3Zhs7w-Z7PtdS0WQ,7697
|
16
16
|
pymud/lang/i18n_chs.py,sha256=2cyaHHLwpYEBBwuQXyRTxa1opX53fTv1f8_QDQeGlC0,16836
|
17
17
|
pymud/lang/i18n_eng.py,sha256=jcPz6Y5UuxJBQLY_e8UnEF3GYTlnAD44C14Oj7sK-QI,45935
|
18
|
-
pymud-0.21.
|
19
|
-
pymud-0.21.
|
20
|
-
pymud-0.21.
|
21
|
-
pymud-0.21.
|
22
|
-
pymud-0.21.
|
23
|
-
pymud-0.21.
|
18
|
+
pymud-0.21.3.post1.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
19
|
+
pymud-0.21.3.post1.dist-info/METADATA,sha256=cfW1c3rEM8IdImBWtB6um8f_t4qUKcEPZJtYNl-woqY,45905
|
20
|
+
pymud-0.21.3.post1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
21
|
+
pymud-0.21.3.post1.dist-info/entry_points.txt,sha256=diPUOtTkhgC1hVny7Cdg4aRhaHSynMQoraE7ZhJxUcw,37
|
22
|
+
pymud-0.21.3.post1.dist-info/top_level.txt,sha256=8Gp1eXjxixXjqhhti6tLCspV_8s9sNV3z5Em2_KRhD4,6
|
23
|
+
pymud-0.21.3.post1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|