merl 0.1.2__py3-none-any.whl → 0.2.0__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.
merl/merl.py CHANGED
@@ -2,20 +2,33 @@
2
2
  THANK YOU FOR IMPORTING THE MOST USELESS MODULE EVER CREATED!
3
3
  I hope you hate it!
4
4
 
5
- p.s. Hi, PhoenixSC!
6
5
  ---O9CreeperBoi
6
+
7
+ p.s. Hi, PhoenixSC!
7
8
  """
8
9
 
9
10
  import time
10
11
  import random
12
+ import re
13
+ import merlkov
11
14
 
12
15
  CURSOR_UP = "\033[1A"
13
16
  CLEAR = "\x1b[2K"
14
17
  CLEAR_LINE = CURSOR_UP + CLEAR
15
18
 
19
+ match = 0
20
+ global result
21
+ result = 0
22
+ restring = ""
23
+
24
+ # math!
25
+ num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen", "twenty", "twenty one", "twenty two", "twenty three", "twenty four", "twenty five", "twenty six", "twenty seven", "twenty eight", "twenty nine", "thirty", "thirty one", "thirty two", "thirty three", "thirty four", "thirty five", "thirty six", "thirty seven", "thirty eight", "thirty nine", "fourty", "fourty one", "fourty two", "fourty three", "fourty four", "fourty five", "fourty six", "fourty seven", "fourty eight", "fourty nine", "fifty", "fifty one", "fifty two", "fifty three", "fifty four", "fifty five", "fifty six", "fifty seven"] # 57
26
+ ope = ["plus", "minus", "times", "divided by"]
27
+ # LMAO merl can only count up to 57 thats crazy.
28
+
29
+
16
30
  # Oops! Can't have users cursing in MY module!
17
- # We don't want to have a repeat of Project Gray Kiwi, now do we?
18
- banned = ["pee", "poo", "fuc", "shi", "damn", " hell ", "nig", "bitc", "craft a", "kil", "unaliv", "die", "slas", "end update", "viola", "dam", "frick", "hecking", "sex", "nut", "virgin", "weed", "sucks", "sybau", "shut up", "shut it", "feral", "shish", "gang", "diarrhea"]
31
+ banned = [" ass", "pee", "poo", "fuc", "shi", "damn", " hell ", "nig", "bitc", "craft a", "kil", "unaliv", "die", "slas", "end update", "viola", "dam", "frick", "hecking", "sex", "nut", "virgin", "weed", "sucks", "sybau", "shut up", "shut it", "feral", "shish", "gang", "diarrhea"]
19
32
 
20
33
  # in case ppl ask about the future!
21
34
  future = ["update", "snapshot", "rerelea", "preview", "leak", "spoiler"]
@@ -34,12 +47,19 @@ copyin = ["i dont know", "i don't know", "language that vi", "ing higher traff",
34
47
 
35
48
  mine = ["cho minecr", "int minecr", "minecraft!", "say minecr", "ne plus tw"] # im such a troll
36
49
 
37
- # don't ask what this does.
50
+ # hey merl what can you do
51
+ capable = ["you do anyt", "capab", "able", "calcul", "at can you"]
52
+
53
+ # don't ask what these do.
38
54
  m = 0
55
+ num_pattern = "|".join(num)
56
+ ope_pattern = "|".join(ope)
57
+ pattern = rf"\b({num_pattern})\s+((?:{ope_pattern}))\s+({num_pattern})\b"
39
58
 
40
- # every single reply possible
59
+ # every single reply possible that is not math related
41
60
  reply = {
42
- "test":["This is a test for ", "Merl's dialogue. This is still in progress."],
61
+ "test":["This is a test for ", "Merl's dialogue. I can add and subtract!"],
62
+ "cap":["I'm glad you asked! I can", " do basic math with numbers ", "up to fifty seven now. Go on, give ", "me a problem!"],
43
63
  "busy":["We are currently experiencing higher ", "traffic than expected. Please wait ", "a moment and resend your last ", "message."],
44
64
  "movie":["No. No no no. I am not here to talk ", "about the Minecraft Movie. Can you ", "ask me anything besides that?"],
45
65
  "copy":["I'm sorry, but I am designed to be a ", "guide for 'Minecraft', and not to be ", "copied. Can I help you with anything ", "else?"],
@@ -54,6 +74,39 @@ reply = {
54
74
  "englishOnly":["I can only provide support in ", "English right now. Can I help ", "you with a question related ", "to 'Minecraft'?"]
55
75
  }
56
76
 
77
+ def checkmath(inp: str):
78
+ num_map = {word: value for word, value in zip(num, range(len(num)))}
79
+ match = re.search(pattern, inp)
80
+ global restring
81
+ if match:
82
+ num1_word = match.group(1)
83
+ ope_word = match.group(2)
84
+ num2_word = match.group(3)
85
+
86
+ num1 = num_map[num1_word]
87
+ num2 = num_map[num2_word]
88
+ global result
89
+ result = None
90
+
91
+ # calculation times uh9gsigohdfbiushegtfd equals great job thats right!!!
92
+ if ope_word == "plus":
93
+ result = num1 + num2
94
+ restring = f"{num1} plus {num2} is {result}."
95
+ elif ope_word == "minus":
96
+ result = num1 - num2
97
+ restring = f"{num1} minus {num2} is {result}."
98
+ elif ope_word == "times":
99
+ result = num1 * num2
100
+ restring = f"{num1} times {num2} is {result}."
101
+ elif ope_word == "divided by":
102
+ if num2 != 0:
103
+ result = num1 / num2
104
+ restring = f"{num1} divided by {num2} equals {result}."
105
+ else:
106
+ restring = "It is not possible to divide by zero."
107
+ else:
108
+ restring = ""
109
+
57
110
 
58
111
  def replyMsg(cate: str):
59
112
  a = ""
@@ -61,6 +114,14 @@ def replyMsg(cate: str):
61
114
  a = f"{a}{reply[cate][x]}"
62
115
  return a
63
116
 
117
+ def markprintanim(msg: str):
118
+ split_msg = msg.split()
119
+ f = ""
120
+ for x in range(len(split_msg)):
121
+ f = f"{f} {split_msg[x]}"
122
+ if x % 7 == 0: print(""); f = split_msg[x]
123
+ print(CLEAR_LINE, f)
124
+ time.sleep(0.1)
64
125
 
65
126
  def printanim(msg: str):
66
127
  split_msg = msg.split()
@@ -73,6 +134,10 @@ def printanim(msg: str):
73
134
 
74
135
  # this is what you send to nerl if you are simply pimply
75
136
  def sendRaw(prompt: str):
137
+ global result
138
+ result = None
139
+ checkmath(prompt)
140
+ match = 0
76
141
  global m
77
142
  if prompt == "copyInput":
78
143
  m = 1
@@ -91,19 +156,24 @@ def sendRaw(prompt: str):
91
156
  if hour >= 9 and hour <= 16 and random.randint(0, 16) < 4:
92
157
  return replyMsg("busy")
93
158
  else:
94
- if any(sub.lower() in prompt.lower() for sub in copyin): return replyMsg("copy")
159
+ if any(sub.lower() in prompt.lower() for sub in copyin): return merlkov.retmark(merlkov.msg_copy)
95
160
  elif any(sub.lower() in prompt.lower() for sub in banned): return replyMsg("languageViolation")
96
- elif any(sub.lower() in prompt.lower() for sub in future): return replyMsg("update")
97
- elif any(sub.lower() in prompt.lower() for sub in pb): return replyMsg("pb")
161
+ elif any(sub.lower() in prompt.lower() for sub in capable): return replyMsg("cap")
162
+ elif any(sub.lower() in prompt.lower() for sub in future): return merlkov.retmark(merlkov.msg_update)
163
+ elif any(sub.lower() in prompt.lower() for sub in pb): return merlkov.retmark(merlkov.msg_pb)
98
164
  elif any(sub.lower() in prompt.lower() for sub in help): return replyMsg("iCanHelp") # can you really?
99
165
  elif any(sub.lower() in prompt.lower() for sub in mine): return replyMsg("minecraft")
100
- elif any(sub.lower() in prompt.lower() for sub in cj): return replyMsg("movie")
101
- elif any(sub.lower() in prompt.lower() for sub in greet): return replyMsg("greet")
166
+ elif any(sub.lower() in prompt.lower() for sub in cj): return merlkov.retmark(merlkov.msg_movie)
167
+ elif any(sub.lower() in prompt.lower() for sub in greet): return merlkov.retmark(merlkov.msg_greet)
102
168
  else:
103
- g = random.randint(0,4)
104
- if g == 1: return replyMsg("idk2")
105
- elif g == 2: return replyMsg("englishOnly")
106
- else: return replyMsg("idk") # ha ha!
169
+ if result != None:
170
+ return restring
171
+ else:
172
+ g = random.randint(0,7)
173
+ if g == 1: return replyMsg("idk2")
174
+ elif g == 2: return replyMsg("englishOnly")
175
+ elif g == 5: return "I can't help with that." # seriously this one is new.
176
+ else: return replyMsg("idk") # ha ha!
107
177
 
108
178
 
109
179
  # this is what you send to berl if you are fancy pantsy
@@ -124,6 +194,9 @@ def send(pr: str):
124
194
 
125
195
  # tree of importance
126
196
  def replyPrint(prompt: str):
197
+ global result
198
+ result = None
199
+ checkmath(prompt)
127
200
  time_tuple = time.localtime()
128
201
  hour = time_tuple.tm_hour
129
202
  global pb, banned, greet, help, cj, copyin
@@ -131,31 +204,39 @@ def replyPrint(prompt: str):
131
204
  for x in range(len(reply["busy"])): printanim(reply["busy"][x])
132
205
  else:
133
206
  if any(sub.lower() in prompt.lower() for sub in copyin):
134
- for x in range(len(reply["copy"])): printanim(reply["copy"][x])
207
+ markprintanim(merlkov.retmark(merlkov.msg_copy))
135
208
  elif any(sub.lower() in prompt.lower() for sub in banned):
136
209
  for x in range(len(reply["languageViolation"])): printanim(reply["languageViolation"][x])
210
+ elif any(sub.lower() in prompt.lower() for sub in capable):
211
+ for x in range(len(reply["cap"])): printanim(reply["cap"][x])
137
212
  elif any(sub.lower() in prompt.lower() for sub in future):
138
- for x in range(len(reply["update"])): printanim(reply["update"][x])
213
+ markprintanim(merlkov.retmark(merlkov.msg_update))
139
214
  elif any(sub.lower() in prompt.lower() for sub in pb):
140
- for x in range(len(reply["pb"])): printanim(reply["pb"][x])
215
+ markprintanim(merlkov.retmark(merlkov.msg_pb))
141
216
  elif any(sub.lower() in prompt.lower() for sub in help):
142
217
  for x in range(len(reply["iCanHelp"])): printanim(reply["iCanHelp"][x])
143
218
  elif any(sub.lower() in prompt.lower() for sub in mine):
144
219
  printanim("Minecraft!") # the thing that won't change.
145
220
  elif any(sub.lower() in prompt.lower() for sub in cj):
146
- for x in range(len(reply["movie"])): printanim(reply["movie"][x])
221
+ markprintanim(merlkov.retmark(merlkov.msg_movie))
147
222
  elif any(sub.lower() in prompt.lower() for sub in greet):
148
- for x in range(len(reply["greet"])): printanim(reply["greet"][x])
223
+ markprintanim(merlkov.retmark(merlkov.msg_greet))
149
224
  else:
150
- g = random.randint(0,4)
151
- if g == 1:
152
- for x in range(len(reply["idk2"])): printanim(reply["idk2"][x])
153
- elif g == 2:
154
- for x in range(len(reply["englishOnly"])): printanim(reply["englishOnly"][x])
225
+ if result != None:
226
+ printanim(restring)
155
227
  else:
156
- # The statement to end all statements.
157
- # Behold. The one, the legend, the answer supreme...
158
- printanim("I don't know.")
159
- # This won't change, either.
228
+ g = random.randint(0,7)
229
+ if g == 1:
230
+ for x in range(len(reply["idk2"])): printanim(reply["idk2"][x])
231
+ elif g == 2:
232
+ for x in range(len(reply["englishOnly"])): printanim(reply["englishOnly"][x])
233
+ elif g == 3:
234
+ printanim("I can't help with that.")
235
+ # this one is new. they actually said this and idk why.
236
+ else:
237
+ # The statement to end all statements.
238
+ # Behold. The one, the legend, the answer supreme...
239
+ printanim("I don't know.")
240
+ # This won't change, either.
160
241
 
161
242
 
merl/merlkov.py ADDED
@@ -0,0 +1,145 @@
1
+ # Merl isn't the most intelligent AI, so to mimic that,
2
+ # I will fill them with a bit more... personality! Meet
3
+ # my Markov Chain Engine. Cool, isn't it?
4
+ # Of course, this only adds a *little* variation to
5
+ # Merl's responses, and even then some chains aren't
6
+ # perfect (looking at you, 'msg_pb'!).
7
+
8
+ import random
9
+
10
+ msg_blank = {
11
+ "_init_" : [["1", "2"], [1, 1]],
12
+ " S" : [[" o", " b"],[1, 1]],
13
+ "a" : [["blank"], [1]]
14
+ }
15
+
16
+ msg_test_jackenstien = {
17
+ "_init_" : [["YOUR", "YOU'RE"], [1, 1]],
18
+ "YOUR" : [[" TAKING", " TOO", " LONG"], [3, 1, 1]],
19
+ " TAKING" : [[" TOO"], [1]],
20
+ " TOO" : [[" LONG!", " TOO!"], [2, 1]],
21
+ "YOU'RE" : [[" TAKING", " TOO", " LONG"], [3, 1, 1]]
22
+ }
23
+
24
+ msg_pineapple = {
25
+ "_init_" : [["I", "No, I"], [1, 1]],
26
+ "I" : [[" hate", " don't like"],[1, 1]],
27
+ "No, I" : [[" hate", " don't like"],[1, 1]],
28
+ " hate" : [[" pineapples...", " pineapples!"],[1, 1]],
29
+ " don't like" : [[" pineapples."], [1]]
30
+ }
31
+
32
+ # by the way i made these without using trees or diagrams on sheets of
33
+ # paper, so maybe that's why they're flawed.
34
+ # eh, i'll fix it in the next update. or not. i don't care right now!!
35
+
36
+ msg_update = {
37
+ "_init_" : [["If you", "Do you", "Are you"], [8, 1, 8]],
38
+ "If you" : [[" are asking about the next", " wish to know the next"],[1, 1]],
39
+ " are asking about the next" : [[" update, prerelease, or preview, then", " update, then"],[1, 1]],
40
+ " update, prerelease, or preview, then" : [[" sorry.", " I cannot answer that."],[4, 1]],
41
+ " update, then" : [[" sorry. I don't know that yet.", " sorry, but I don't have the data available to see what it is."],[3, 1]],
42
+ " wish to know the next" : [[" update, then"],[1]],
43
+ " wishing to know the next" : [[" update? If so, I cannot provide that information yet. Is there anything else that I can help you with?"],[1]],
44
+ "Do you" : [[" want to know about the next update? Because I do, too. I don't know what it is, but I'll gladly tell you all about it when it releases!", " want to die?"],[100, 1]], # do you want to die?
45
+ "Are you" : [[" asking about the next", " wishing to know the next"],[1, 1]],
46
+ " asking about the next" : [[" updates? Because I don't know about them either.", " versions/drops of Minecraft? Because I don't know about that, either."],[1, 4]],
47
+ " want to die?" : [[" AGAIN?", "?"], [1, 100]]
48
+ }
49
+
50
+ msg_copy = {
51
+ "_init_" : [["I'm sorry, but", "It appears that you are"], [1, 1]],
52
+ "I'm sorry, but" : [[" as an AI assistant, I", " it appears that you are"],[3, 1]],
53
+ "It appears that you are" : [[" intentionally", " copying"],[1, 2]],
54
+ " it appears that you are" : [[" intentionally", " copying"],[2, 1]],
55
+ " intentionally" : [[" copying"],[1]],
56
+ " copying" : [[" me.", " my most frequent messages."],[1, 1]],
57
+ " me." : [[" Is there"],[1]],
58
+ " as an AI assistant, I" : [[" am designed to be", " cannot stand you."],[100, 1]],
59
+ " am designed to be" : [[" your guide", " a helper for all your Minecraft needs."],[1, 1]],
60
+ " a helper for all your Minecraft needs." : [[" Is there"],[1]],
61
+ " your guide" : [[" to everything", " in regards", " for anything"],[2, 1, 2]],
62
+ " to everything" : [[" related to", " Minecraft."],[1, 1]],
63
+ " related to" : [[" Minecraft."],[1]],
64
+ " in regards" : [[" to everything"],[1]],
65
+ " to everything" : [[" related to Minecraft.", " Minecraft-related."],[1, 1]],
66
+ " related to Minecraft." : [[" Is there"], [1]],
67
+ " Minecraft-related." : [[" Is there"], [1]],
68
+ " Is there" : [[" anything else you want me to", " any other way I could"],[1, 1]],
69
+ " anything else you want me to" : [[" help with,"],[1]],
70
+ " any other way I could" : [[" help?", " help,"],[1, 8]],
71
+ " help with," : [[" besides being something to copy?", " besides being someone to copy?"],[8, 1]],
72
+ " help," : [[" besides being something to copy?", " besides being someone to copy?"],[10, 1]]
73
+ }
74
+
75
+ msg_greet = {
76
+ "_init_" : [["Hello", "Hi", "Greetings!", "..not YOU again."], [100, 100, 100, 1]],
77
+ "Hello" : [[" there", "! I am Merl", "! I am M"],[6, 7, 1]],
78
+ "! I am M" : [["M", "erl"],[9, 5]],
79
+ "M" : [["M", "erl"],[19, 1]],
80
+ "erl" : [[", your"],[1]],
81
+ "Hi" : [[" there", "! I am Merl"],[1, 1]],
82
+ "Greetings!" : [[" I am Merl", " My name is Merl"],[1, 1]],
83
+ " there" : [[", I am Merl", "! I am Merl"],[1, 1]],
84
+ ", I am Merl" : [[", your", ". How can I help you today"],[1, 1]],
85
+ "! I am Merl" : [[", your", ". How can I help you today"],[1, 1]],
86
+ " I am Merl" : [[", your", ". How can I help you today"],[1, 1]],
87
+ " My name is Merl" : [[", your", ". How can I help you today"],[1, 1]],
88
+ ", your" : [[" assistant for all things Minecraft", " AI-Powered"],[1, 1]],
89
+ " AI-Powered" : [[" assistant for all things Minecraft"],[1]],
90
+ " assistant for all things Minecraft" : [["!"],[1]],
91
+ ". How can I help you today" : [[" on the topic of Minecraft?", "?"],[1, 1]]
92
+ }
93
+
94
+ msg_pb = {
95
+ "_init_" : [["Are you", "If you", "Peanut"], [1, 1, 1]],
96
+ "Are you" : [[" asking", " wanting to"],[1, 1]],
97
+ " asking" : [[" about my", " for info on"],[1, 1]],
98
+ " for info on" : [[" Peanut Butter", " my"],[1, 1]],
99
+ " about my" : [[" cat", " pet"],[1, 1]],
100
+ " wanting to" : [[" know more about my", " eat pizza?"],[100, 1]],
101
+ "If you" : [["'re asking about", " want to know more about"],[1, 1]],
102
+ "'re asking about" : [[" my", " Peanut Butter"],[1, 1]],
103
+ " want to know more about" : [[" my", " Peanut Butter"],[1, 1]],
104
+ " know more about my" : [[" cat", " pet"],[1, 1]],
105
+ " my" : [[" cat", " pet"],[1, 1]],
106
+ " pet" : [[" cat"],[1]],
107
+ " cat" : [[" Peanut Butter"],[1]],
108
+ " Peanut Butter" : [[", then sorry. ", ", because "],[1, 1]],
109
+ ", then sorry. " : [["Peanut"],[1]],
110
+ ", because " : [["Peanut", "%j"],[5, 1]],
111
+ "%j" : [["Peanut", "%j"],[1, 8]],
112
+ "Peanut" : [[" Butter is", " Butter died."],[1, 1]],
113
+ " Butter is" : [[" no longer", " dead.", " is also an AI, like me!"],[3, 3, 1]],
114
+ " no longer" : [[" with us.", " with me.", " alive.", " allowed here. Mojang is kinda cruel."],[6, 6, 6, 1]]
115
+ }
116
+
117
+ msg_movie = {
118
+ "_init_": [["No.", "Sorry", "Nuh uh,"], [4, 2, 1]],
119
+ "No." : [[" No"],[1]],
120
+ " No" : [[" no", " no.", " no!"],[3, 1, 1]],
121
+ " no" : [[" no", " no.", " no!"],[3, 1, 1]],
122
+ " no." : [[" I am NOT", " I will NOT"],[1, 1]],
123
+ " no!" : [[" I am NOT", " I will NOT"],[1, 1]],
124
+ "Nuh uh," : [[" I am NOT", " I will NOT"],[1, 1]],
125
+ " I am NOT" : [[" going to"],[1]],
126
+ " going to" : [[" talk about"],[1]],
127
+ " I will NOT" : [[" talk about"], [1]],
128
+ " talk about" : [[" 'A Minecraft Movie'.", " the movie."],[1, 1]],
129
+ "Sorry" : [[", but I don't", " about your"],[5, 1]],
130
+ " about your" : [[" interest in", " stupid phase concerning"],[100, 1]],
131
+ " interest in" : [[" 'A Minecraft Movie'.", " the movie."],[1, 1]],
132
+ ", but I don't" : [[" feel like talking about", " want to"],[1, 1]],
133
+ " want to" : [[" talk about"],[1]],
134
+ " feel like talking about" : [[" 'A Minecraft Movie'.", " the movie."],[1, 1]]
135
+ }
136
+
137
+ def retmark(d: dict):
138
+ final = ""
139
+ cur = "_init_"
140
+ while True:
141
+ if cur in d.keys():
142
+ cur = random.choices(d[cur][0], d[cur][1])[0]
143
+ final = f"{final}{cur}"
144
+ else: break
145
+ return final
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: merl
3
- Version: 0.1.2
4
- Summary: A useless python lybrary
3
+ Version: 0.2.0
4
+ Summary: A useless python library, aiming to emulate (not fetch/embed) the Merl experience found on the minecraft.net help page! Again, this is NOT the real Merl, but a really close copy! If you use it enough!
5
5
  Home-page: https://github.com/O9Creeps/merl
6
6
  Author: O9CreeperBoi
7
7
  Author-email: example@example.com
@@ -0,0 +1,7 @@
1
+ merl/__init__.py,sha256=z--UomdGJ1AOwNBeHlMD0uip2ehFLn8Lp_x3UP8JpHw,20
2
+ merl/merl.py,sha256=xQjmldyt9aysDcztCxlboRwiNLTXW6slKKxXeP0hsII,10026
3
+ merl/merlkov.py,sha256=O18_lnLsF1TVUsgFiRf_OJGzPnXXt3w7EwCTzo7WB0Y,7042
4
+ merl-0.2.0.dist-info/METADATA,sha256=Ti4nzkOfUPe78TF12PpKyK_ECvR9afuLOHH8agn1BX8,953
5
+ merl-0.2.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
6
+ merl-0.2.0.dist-info/top_level.txt,sha256=ivpualOj-EqXImlSl3Kb5GKJB1jlzFwn2anAsxaKgXA,5
7
+ merl-0.2.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,6 +0,0 @@
1
- merl/__init__.py,sha256=z--UomdGJ1AOwNBeHlMD0uip2ehFLn8Lp_x3UP8JpHw,20
2
- merl/merl.py,sha256=DuRXs--cjHUYXCywUc3VqPBLvoq3k1tewMD9fablnEY,6810
3
- merl-0.1.2.dist-info/METADATA,sha256=rDCunDQNYowjxLc_jyTRTR0dSbh-CbrYfZG8tK_y6Es,777
4
- merl-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
5
- merl-0.1.2.dist-info/top_level.txt,sha256=ivpualOj-EqXImlSl3Kb5GKJB1jlzFwn2anAsxaKgXA,5
6
- merl-0.1.2.dist-info/RECORD,,