XMWAI 0.2.3__py3-none-any.whl → 0.2.6__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.

Potentially problematic release.


This version of XMWAI might be problematic. Click here for more details.

XMWAI/__init__.py CHANGED
@@ -1,6 +1,7 @@
1
- from .core import story, photo, reply, poem, get_access_token, crack # 从子模块导入函数到顶层
1
+ from .core import story, photo, reply, poem, crack # 从子模块导入函数到顶层
2
2
  from .magic_core import birthday # 从子模块导入函数到顶层
3
3
  from .bomb_core import bomb # 从子模块导入函数到顶层
4
- from .idiom_core import idiom,searchIdiom,get_json_path # 从子模块导入函数到顶层
4
+ from .idiom_core import idiom, searchIdiom, get_json_path # 从子模块导入函数到顶层
5
5
 
6
- __all__ = ["story", "photo", "reply", "poem", "get_access_token", 'birthday', 'bomb', "idiom", "searchIdiom","get_json_path", "crack"] # 可选:明确导出的内容
6
+ __all__ = ["story", "photo", "reply", "poem", 'birthday', 'bomb',
7
+ "idiom", "searchIdiom", "get_json_path", "crack"] # 可选:明确导出的内容
XMWAI/bomb_core.py CHANGED
@@ -3,6 +3,8 @@ import time
3
3
  from importlib.resources import files
4
4
  from pathlib import Path
5
5
 
6
+
7
+ # U1-09 精准打击----------------------------------
6
8
  def bomb(screen, t):
7
9
  """显示炸弹爆炸动画(包含坐标检查和自动预加载)"""
8
10
  x = t.xcor()
@@ -58,3 +60,4 @@ def bomb(screen, t):
58
60
  b.clear()
59
61
  screen.update()
60
62
  screen.tracer(True)
63
+ # -------------------------------------------
XMWAI/cookbook_core.py ADDED
@@ -0,0 +1,148 @@
1
+ import requests
2
+ import json
3
+ import webbrowser
4
+ import re
5
+
6
+
7
+ def cookbook(m, t, s, key):
8
+ if key != "CaJQ":
9
+ return "密钥错误,无法生成食谱。"
10
+
11
+ messagesList = [
12
+ {
13
+ "role": "system",
14
+ "content": "天马行空的创意菜厨师"
15
+ },
16
+ {
17
+ "role": "user",
18
+ "content": f"请以{m}为主菜,{s}为配菜,{t}为烹饪方式写一个创意食谱,结果中不要*"
19
+ }
20
+ ]
21
+
22
+ url = "https://qianfan.baidubce.com/v2/chat/completions"
23
+ payload = json.dumps({
24
+ "model": "ernie-4.5-turbo-32k",
25
+ "messages": messagesList
26
+ }, ensure_ascii=False)
27
+
28
+ headers = {
29
+ 'Content-Type': 'application/json',
30
+ 'appid': '',
31
+ 'Authorization': 'Bearer bce-v3/ALTAK-cGbxpVA5AbSz6h8nbLaFh/b539762075d55c76d93dc78bcf0a91beeaf0490a'
32
+ }
33
+
34
+ try:
35
+ response = requests.post(url, headers=headers, data=payload.encode("utf-8"))
36
+ response_data = json.loads(response.text)
37
+ content = response_data["choices"][0]["message"]["content"]
38
+ except Exception as e:
39
+ return f"接口调用失败:{e}"
40
+
41
+ # 提取标题和正文(防止 IndexError)
42
+ lines = content.strip().split("\n")
43
+ title = lines[0] if len(lines) >= 1 else "创意菜谱"
44
+ content_body = "\n".join(lines[1:]) if len(lines) >= 2 else "(无正文内容)"
45
+
46
+ # 构造 HTML
47
+ html = f"""
48
+ <!DOCTYPE html>
49
+ <html lang="zh">
50
+ <head>
51
+ <meta charset="UTF-8">
52
+ <title>{title}</title>
53
+ <style>
54
+ body {{
55
+ margin: 0;
56
+ padding: 0;
57
+ font-family: "微软雅黑", sans-serif;
58
+ background: #2c2c2c url('bg.jpeg') no-repeat center center fixed;
59
+ background-size: cover;
60
+ color: #eee;
61
+ }}
62
+
63
+ .container {{
64
+ max-width: 800px;
65
+ margin: 40px auto;
66
+ background: rgba(255, 255, 255, 0.95);
67
+ border-radius: 15px;
68
+ padding: 40px 40px 30px 40px;
69
+ box-shadow: 0 0 25px rgba(0, 0, 0, 0.3);
70
+ color: #333;
71
+ }}
72
+
73
+ .banner {{
74
+ position: relative;
75
+ width: 100%;
76
+ height: 250px;
77
+ background-image: url('bg.jpeg');
78
+ background-size: cover;
79
+ background-position: center;
80
+ border-radius: 15px 15px 0 0;
81
+ display: flex;
82
+ align-items: center;
83
+ justify-content: center;
84
+ }}
85
+
86
+ .banner::after {{
87
+ content: "";
88
+ position: absolute;
89
+ top: 0; left: 0; right: 0; bottom: 0;
90
+ background: rgba(0, 0, 0, 0.4);
91
+ border-radius: 15px 15px 0 0;
92
+ }}
93
+
94
+ .banner h1 {{
95
+ position: relative;
96
+ color: #fff;
97
+ font-size: 28px;
98
+ text-shadow: 1px 1px 4px #000;
99
+ z-index: 1;
100
+ }}
101
+
102
+ h2 {{
103
+ color: #555;
104
+ border-bottom: 1px solid #ddd;
105
+ padding-bottom: 5px;
106
+ margin-top: 20px;
107
+ }}
108
+
109
+ p {{
110
+ font-size: 18px;
111
+ margin: 10px 0;
112
+ }}
113
+
114
+ pre {{
115
+ background: #f8f8f8;
116
+ padding: 15px;
117
+ border-radius: 8px;
118
+ overflow-x: auto;
119
+ font-family: "Courier New", monospace;
120
+ font-size: 16px;
121
+ }}
122
+ </style>
123
+ </head>
124
+ <body>
125
+ <div class="container">
126
+ <div class="banner">
127
+ <h1>🍽 {title}</h1>
128
+ </div>
129
+ <p><strong>主菜:</strong>{m}</p>
130
+ <p><strong>配菜:</strong>{s}</p>
131
+ <p><strong>做法:</strong>{t}</p>
132
+ <h2>生成的食谱:</h2>
133
+ <pre>{content_body}</pre>
134
+ </div>
135
+ </body>
136
+ </html>
137
+ """
138
+
139
+ # 保存为 HTML 文件
140
+ filename = title.strip().replace(" ", "_").replace(":", "").replace(":", "") + ".html"
141
+ filename = re.sub(r'[\/\\\:\*\?\"\<\>\|]', '', f"{title}.html")
142
+ with open(filename, "w", encoding="utf-8") as f:
143
+ f.write(html)
144
+
145
+ # 自动打开网页
146
+ webbrowser.open(filename)
147
+
148
+ return content + "\n"
XMWAI/core.py CHANGED
@@ -5,26 +5,30 @@ import os
5
5
  import zipfile
6
6
 
7
7
 
8
+ # AI绘图大师函数
9
+
10
+
11
+ # U1-02 Story GPT----------------------------------
8
12
  def story(role, time, address, event, key=""):
9
13
  content = role+time+address+event
10
14
  url = "https://spark-api-open.xf-yun.com/v1/chat/completions"
11
15
  data = {
12
- "max_tokens": 1000, # 回复长度限制
13
- "top_k": 4, # 灵活度
14
- "temperature": 0.5, # 随机性
15
- "messages": [
16
- {
17
- # 设置对话背景或赋予模型角色,该设定会贯穿整轮对话,对全局的模型生成结果产生影响。对应作为'role'为'system'时,'content'的值
18
- "role": "system",
19
- "content": "我是一个非常会写童话的儿童写作作家,根据我写出的关键词,帮我生成一篇童话故事。"
20
- },
21
- {
22
- # 对大模型发出的具体指令,用于描述需要大模型完成的目标任务和需求说明。会与角色设定中的内容拼接,共同作为'role'为'system'时,'content'的值
23
- "role": "user",
24
- "content": content
25
- }
26
- ],
27
- "model": "4.0Ultra"
16
+ "max_tokens": 1000, # 回复长度限制
17
+ "top_k": 4, # 灵活度
18
+ "temperature": 0.5, # 随机性
19
+ "messages": [
20
+ {
21
+ # 设置对话背景或赋予模型角色,该设定会贯穿整轮对话,对全局的模型生成结果产生影响。对应作为'role'为'system'时,'content'的值
22
+ "role": "system",
23
+ "content": "我是一个非常会写童话的儿童写作作家,根据我写出的关键词,帮我生成一篇童话故事。"
24
+ },
25
+ {
26
+ # 对大模型发出的具体指令,用于描述需要大模型完成的目标任务和需求说明。会与角色设定中的内容拼接,共同作为'role'为'system'时,'content'的值
27
+ "role": "user",
28
+ "content": content
29
+ }
30
+ ],
31
+ "model": "4.0Ultra"
28
32
  }
29
33
  data["stream"] = True
30
34
  if key == "":
@@ -34,7 +38,7 @@ def story(role, time, address, event, key=""):
34
38
  print("秘钥错误!请重新输入!")
35
39
  return "秘钥错误!请重新输入!"
36
40
  header = {
37
- "Authorization": "Bearer paNyL"+key+"OpyOBmflKZp:yhBhAlSFMwaqlVKAtDbv"
41
+ "Authorization": "Bearer paNyL"+key+"OpyOBmflKZp:yhBhAlSFMwaqlVKAtDbv"
38
42
  }
39
43
  response = requests.post(url, headers=header, json=data, stream=True)
40
44
 
@@ -43,7 +47,7 @@ def story(role, time, address, event, key=""):
43
47
  contents = ""
44
48
  result = response.iter_lines(decode_unicode="utf-8")
45
49
  result = str(list(result))
46
-
50
+
47
51
  # 正则表达式模式
48
52
  pattern = r'"content":"(.*?)"'
49
53
 
@@ -55,8 +59,10 @@ def story(role, time, address, event, key=""):
55
59
  s = s.replace('\\', "")
56
60
  s = s.replace("n", "")
57
61
  return s
62
+ # -------------------------------------------------
58
63
 
59
64
 
65
+ # U1-06 我说你画-----------------------------------
60
66
  def photo(content, style, size, key=""):
61
67
  # 图像生成的 API URL
62
68
  if key == "":
@@ -72,18 +78,18 @@ def photo(content, style, size, key=""):
72
78
  headers = {
73
79
  "Content-Type": "application/json"
74
80
  }
75
- resolution = {"1024*1024":3, "1280*720":4, "720*1280":5}
81
+ resolution = {"1024*1024": 3, "1280*720": 4, "720*1280": 5}
76
82
  if content == "":
77
83
  return
78
84
  if style == "":
79
- style="默认"
85
+ style = "默认"
80
86
  if size == "":
81
- size="1024*1024"
82
-
87
+ size = "1024*1024"
88
+
83
89
  # 请求的主体内容
84
90
  data = {
85
91
  'prompt': content, # 你想要生成的图像描述
86
- 'imgStyle': style,
92
+ 'imgStyle': style,
87
93
  'imgSize': resolution[size] # 图像的尺寸
88
94
  }
89
95
 
@@ -99,27 +105,29 @@ def photo(content, style, size, key=""):
99
105
  skin = requests.get(photo_url).content
100
106
  with open("{}.png".format(content), 'wb') as s:
101
107
  s.write(skin)
108
+ # ------------------------------------------------
102
109
 
103
110
 
111
+ # U1-11 百变助手----------------------------------
104
112
  def reply(role, content, key=""):
105
113
  url = "https://spark-api-open.xf-yun.com/v1/chat/completions"
106
114
  data = {
107
- "max_tokens": 60, # 回复长度限制
108
- "top_k": 5, # 灵活度
109
- "temperature": 0.6, # 随机性
110
- "messages": [
111
- {
112
- # 设置对话背景或赋予模型角色,该设定会贯穿整轮对话,对全局的模型生成结果产生影响。对应作为'role'为'system'时,'content'的值
113
- "role": "system",
114
- "content": "你是一位非常优秀的" + role + ",请根据我的提问,非常科学、有趣和严谨的回答我。"
115
- },
116
- {
117
- # 对大模型发出的具体指令,用于描述需要大模型完成的目标任务和需求说明。会与角色设定中的内容拼接,共同作为'role'为'system'时,'content'的值
118
- "role": "user",
119
- "content": content + "(一定要80个字左右,语句必须完整,语句必须完整,不准出现断句。)"
120
- }
121
- ],
122
- "model": "4.0Ultra"
115
+ "max_tokens": 60, # 回复长度限制
116
+ "top_k": 5, # 灵活度
117
+ "temperature": 0.6, # 随机性
118
+ "messages": [
119
+ {
120
+ # 设置对话背景或赋予模型角色,该设定会贯穿整轮对话,对全局的模型生成结果产生影响。对应作为'role'为'system'时,'content'的值
121
+ "role": "system",
122
+ "content": "你是一位非常优秀的" + role + ",请根据我的提问,非常科学、有趣和严谨的回答我。"
123
+ },
124
+ {
125
+ # 对大模型发出的具体指令,用于描述需要大模型完成的目标任务和需求说明。会与角色设定中的内容拼接,共同作为'role'为'system'时,'content'的值
126
+ "role": "user",
127
+ "content": content + "(一定要80个字左右,语句必须完整,语句必须完整,不准出现断句。)"
128
+ }
129
+ ],
130
+ "model": "4.0Ultra"
123
131
  }
124
132
  data["stream"] = True
125
133
  if key == "":
@@ -129,7 +137,7 @@ def reply(role, content, key=""):
129
137
  print("秘钥错误!请重新输入!")
130
138
  return "秘钥错误!请重新输入!"
131
139
  header = {
132
- "Authorization": "Bearer paNyL"+key+"OpyOBmflKZp:yhBhAlSFMwaqlVKAtDbv"
140
+ "Authorization": "Bearer paNyL"+key+"OpyOBmflKZp:yhBhAlSFMwaqlVKAtDbv"
133
141
  }
134
142
  response = requests.post(url, headers=header, json=data, stream=True)
135
143
 
@@ -138,7 +146,7 @@ def reply(role, content, key=""):
138
146
  contents = ""
139
147
  result = response.iter_lines(decode_unicode="utf-8")
140
148
  result = str(list(result))
141
-
149
+
142
150
  # 正则表达式模式
143
151
  pattern = r'"content":"(.*?)"'
144
152
 
@@ -152,32 +160,13 @@ def reply(role, content, key=""):
152
160
  if '*' in s:
153
161
  s = s.replace('*', "")
154
162
  sum_ = """"""
155
- for i in range(0,len(s),17):
163
+ for i in range(0, len(s), 17):
156
164
  sum_ = sum_ + s[i:i+17] + "\n"
157
165
  return sum_
166
+ # ------------------------------------------------
158
167
 
159
168
 
160
- def get_access_token(key):
161
- """
162
- 使用 AK,SK 生成鉴权签名(Access Token)
163
- :return: access_token,或是None(如果错误)
164
- """
165
- API_KEY = "Ox1CTF00wD50XmXF1hiPSqdh"
166
- SECRET_KEY = "4ZQt4Zj"+ key +"zuT2XtBtRojdRZ3HgZOtrP"
167
- url = "https://aip.baidubce.com/oauth/2.0/token"
168
- params = {
169
- "grant_type": "client_credentials",
170
- "client_id": API_KEY,
171
- "client_secret": SECRET_KEY
172
- }
173
- response = requests.post(url, params=params)
174
- if response.status_code == 200:
175
- return response.json().get("access_token")
176
- else:
177
- print("Error getting access token:", response.text)
178
- return None
179
-
180
-
169
+ # U2-05 码字成诗----------------------------------
181
170
  def poem(title, key=""):
182
171
  if key == "":
183
172
  print("没有秘钥!请提供秘钥!")
@@ -186,18 +175,18 @@ def poem(title, key=""):
186
175
  print("秘钥错误!请重新输入!")
187
176
  return "秘钥错误!请重新输入!"
188
177
  messagesList = [
189
- {
190
- "role": "system",
191
- "content": "唐代诗人"
192
- },
193
- {
194
- "role": "user",
195
- "content": f"请以《{title}》为题,创作一首七言绝句,每句7个字,一共4句,符合古诗韵律规范,内容积极乐观向上,适合中小学生阅读,不要解析,不要题目,不要标点符号,所有文字放在一行"
196
- }
197
- ]
198
-
178
+ {
179
+ "role": "system",
180
+ "content": "唐代诗人"
181
+ },
182
+ {
183
+ "role": "user",
184
+ "content": f"请以《{title}》为题,创作一首七言绝句,每句7个字,一共4句,符合古诗韵律规范,内容积极乐观向上,适合中小学生阅读,不要解析,不要题目,不要标点符号,所有文字放在一行"
185
+ }
186
+ ]
187
+
199
188
  url = "https://qianfan.baidubce.com/v2/chat/completions"
200
-
189
+
201
190
  payload = json.dumps({
202
191
  "model": "ernie-4.5-turbo-32k",
203
192
  "messages": messagesList
@@ -207,22 +196,26 @@ def poem(title, key=""):
207
196
  'appid': '',
208
197
  'Authorization': 'Bearer bce-v3/ALTAK-cGbxpVA5AbSz6h8nbLaFh/b539762075d55c76d93dc78bcf0a91beeaf0490a'
209
198
  }
210
-
211
- response = requests.request("POST", url, headers=headers, data=payload.encode("utf-8"))
212
-
199
+
200
+ response = requests.request(
201
+ "POST", url, headers=headers, data=payload.encode("utf-8"))
202
+
213
203
  response_data = json.loads(response.text)
214
204
  content = response_data["choices"][0]["message"]["content"]
215
205
  content = content.replace("\n", "")
216
206
  while " " in content:
217
207
  content = content.replace(" ", "")
218
208
  return content
209
+ # ------------------------------------------------
219
210
 
220
211
 
212
+ # U2-06 凯撒加密----------------------------------
221
213
  def crack(name, pwd):
222
214
  try:
223
- zFile=zipfile.ZipFile(name + ".zip")
215
+ zFile = zipfile.ZipFile(name + ".zip")
224
216
  zFile.extractall(pwd=str(pwd).encode())
225
217
  print("已成功破解密码")
226
218
  os.system("Treasuremap.png")
227
219
  except:
228
220
  print("密码错误")
221
+ # ------------------------------------------------
XMWAI/file/__init__.py ADDED
File without changes
XMWAI/idiom_core.py CHANGED
@@ -4,9 +4,10 @@ from importlib.resources import files
4
4
  from pathlib import Path
5
5
 
6
6
 
7
+ # U2-04 成语接龙----------------------------------
7
8
  def get_json_path():
8
9
  """获取 idiom.json 的正确路径(兼容 PyPI 安装后的包内资源)"""
9
- return Path(files("XMWAI").joinpath("idiom.json"))
10
+ return Path(files("XMWAI/file").joinpath("idiom.json"))
10
11
 
11
12
 
12
13
  def idiom(word, mode=0):
@@ -52,3 +53,4 @@ def searchIdiom(text, num=1):
52
53
  except:
53
54
  pass
54
55
  return random.choice(wordList) if wordList else False
56
+ # -------------------------------------------------
XMWAI/magic_core.py CHANGED
@@ -1,26 +1,28 @@
1
1
  from datetime import date
2
2
 
3
+
4
+ # U1-07 生日猜猜猜----------------------------------
3
5
  def birthday():
4
6
  while True:
5
7
  try:
6
8
  # 获取并验证生日计算结果
7
9
  code = int(input("\n从上方选出你的生日日期\n将生日的月份乘以4,加上9,再乘以25,最后加上日期后的结果:"))
8
- secret_number = code - 225
10
+ secret_number = code - 225
9
11
  # 解析月份和日期
10
12
  month = secret_number // 100
11
13
  day = secret_number % 100
12
-
14
+
13
15
  # 基础验证
14
16
  if not (1 <= month <= 12 and 1 <= day <= 31):
15
17
  raise ValueError("神秘数字解析失败,请确认计算正确!✨")
16
-
18
+
17
19
  # 创建日期对象
18
20
  today = date.today()
19
21
  try:
20
22
  current_year_bday = date(today.year, month, day)
21
23
  except ValueError as e:
22
24
  raise ValueError(f"🔮 魔法日历显示:{str(e)},请检查你的生日日期!")
23
-
25
+
24
26
  # 计算时间差
25
27
  if current_year_bday < today:
26
28
  next_bday = date(today.year + 1, month, day)
@@ -35,7 +37,7 @@ def birthday():
35
37
  days_left = (current_year_bday - today).days
36
38
  print(f"\n🎂 你的生日是 {month}月{day}日")
37
39
  print(f"⏳ 距离生日还有 {days_left} 天")
38
-
40
+
39
41
  # 添加节日彩蛋
40
42
  if (month, day) == (12, 25):
41
43
  print("🎁 圣诞奇迹儿!你的到来就是最棒的圣诞礼物!")
@@ -56,7 +58,8 @@ def birthday():
56
58
  print("🪅 双倍快乐王!全世界的孩子都在为你庆生!")
57
59
  print("🎠 愿你的生活永远像游乐场,每天都有新发现!")
58
60
  break # 退出循环
59
-
61
+
60
62
  except ValueError as e:
61
63
  print(f"\n⚠️ 魔法出错啦:{e}")
62
64
  print("请重新输入正确的神秘数字!")
65
+ # -------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: XMWAI
3
- Version: 0.2.3
3
+ Version: 0.2.6
4
4
  Summary: Small code King AI related library
5
5
  Home-page: https://github.com/Tonykai88/XMWAI.git
6
6
  Author: pydevelopment
@@ -1,9 +1,10 @@
1
- XMWAI/__init__.py,sha256=A0lYc0BhFCbuZC-F4Qkd2tutd-yc-zA_kQ_Rhv-VjjI,510
2
- XMWAI/bomb_core.py,sha256=eEC-PjN77CMKEVYEd1_WOsaFIHe9QD_28ti6UEuP9Ek,1714
3
- XMWAI/core.py,sha256=Z20Q0v2wvE8-70Ulxxc_vpXI-Z86PwNMw9fW1J3zkQo,8049
4
- XMWAI/idiom.json,sha256=HUtPRUzhxBbWoasjadbmbA_5ngQ5AXLu9weQSZ4hzhk,10319857
5
- XMWAI/idiom_core.py,sha256=0Uu9GxVwEvFAhjj0M2Orw-E9FjKT05jKQDbUvg0wAXE,1577
6
- XMWAI/magic_core.py,sha256=XU7K4Ta7EAvwBLk20_Hlu18E6Kz8B0HxUBq0YsawikE,3441
1
+ XMWAI/__init__.py,sha256=91jaQmcGqp_B4i68bNfn_0m6JTFzz-itTiCmt__vIR8,487
2
+ XMWAI/bomb_core.py,sha256=h2ZPH3SuoG2L_XOf1dcK8p3lhw5QzhneWl2yMLj1RiU,1819
3
+ XMWAI/cookbook_core.py,sha256=mo3IYgh_bYD_3vH2Stkjwo9okFOb4abooZeJ-Djx6VU,3675
4
+ XMWAI/core.py,sha256=H4EpXmXXakVNleUKyUMVnl3AmR8XjjVLsVfGvsLRUqg,7933
5
+ XMWAI/idiom_core.py,sha256=z501-oOOSB90Ezdk6uNasZRoBCkoo6kbKUSQC3jiwZs,1689
6
+ XMWAI/magic_core.py,sha256=Ms4b12PJ8rjsmceg1VUqWCWx2ebvdhLp4sIF6K_Vaok,3491
7
+ XMWAI/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
8
  XMWAI/gif/0.gif,sha256=LGpAReVTyZEb1J-bWYTpxxHbIxmLJ-3wA0lw4cBqdsY,303
8
9
  XMWAI/gif/1.gif,sha256=nsysRjMkNBQJy91SOY284gnnD_DlhLrgyIOgcJ_ZOHI,3554
9
10
  XMWAI/gif/10.gif,sha256=iH0sln6muMp8Hdnx5X_Icz2s1TUZJoozsjAR4cH7IHA,11179
@@ -91,8 +92,8 @@ XMWAI/gif/84.gif,sha256=6Ip_uQmvrr2fagLXu1YqWyI_DL2PVVtKCPtmNtzt3P4,38767
91
92
  XMWAI/gif/85.gif,sha256=6Ip_uQmvrr2fagLXu1YqWyI_DL2PVVtKCPtmNtzt3P4,38767
92
93
  XMWAI/gif/9.gif,sha256=cPouth-xwc3QPcg2m6HMP2OD1ZCeRBD_-RPImvvKAA0,9485
93
94
  XMWAI/gif/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
- xmwai-0.2.3.dist-info/licenses/LICENSE.txt,sha256=bcaIQMrIhdQ3O-PoZlexjmW6h-wLGvHxh5Oksl4ohtc,1066
95
- xmwai-0.2.3.dist-info/METADATA,sha256=iZN1DcwEqo-1R2q3V9rKXj8J6TWDRhOd5mTrO1bH_Hw,1033
96
- xmwai-0.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
97
- xmwai-0.2.3.dist-info/top_level.txt,sha256=yvGcDI-sggK5jqd9wz0saipZvk3oIE3hNGHlqUjxf0c,6
98
- xmwai-0.2.3.dist-info/RECORD,,
95
+ xmwai-0.2.6.dist-info/licenses/LICENSE.txt,sha256=bcaIQMrIhdQ3O-PoZlexjmW6h-wLGvHxh5Oksl4ohtc,1066
96
+ xmwai-0.2.6.dist-info/METADATA,sha256=nX62SeebAhZxlIq9J04g2-RmUJHmc6DjE_vLaDG8-WU,1033
97
+ xmwai-0.2.6.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
98
+ xmwai-0.2.6.dist-info/top_level.txt,sha256=yvGcDI-sggK5jqd9wz0saipZvk3oIE3hNGHlqUjxf0c,6
99
+ xmwai-0.2.6.dist-info/RECORD,,