phoonnx 0.0.2a2__py3-none-any.whl → 0.1.0a3__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.
@@ -0,0 +1,66 @@
1
+ # -*- coding: UTF8 -*-
2
+ """
3
+ This script translates Buckwalter-transcribed Modern Standard Arabic to IPA.
4
+
5
+ This relies on Mantoq tokenization that uses separate tokens for vowel length and consonant gemination.
6
+
7
+ by Casimiro Ferreira with help of Gemini July 2025.
8
+ """
9
+
10
+ import re
11
+
12
+ # This dictionary maps a single Buckwalter character to its most common IPA equivalent.
13
+ char_dict = {
14
+ 'a': 'a', 'A': 'aː', 'b': 'b', 'c': 'x', 'd': 'd', 'D': 'dˤ', 'e': 'e', 'E': 'ʕ',
15
+ 'f': 'f', 'g': 'ɣ', 'h': 'h', 'H': 'ħ', 'i': 'i', 'I': 'iː', 'j': 'ʒ', 'k': 'k',
16
+ 'l': 'l', 'm': 'm', 'n': 'n', 'p': 'p', 'q': 'q', 'r': 'r', 'R': 'r', 's': 's',
17
+ 'S': 'sˤ', 't': 't', 'T': 'tˤ', 'u': 'u', 'U': 'uː', 'v': 'v', 'w': 'w', 'x': 'x',
18
+ 'y': 'j', 'z': 'z', 'Z': 'ðˤ', '\'': 'ʔ', '<': 'ʔ', 'o': 'o', '-': ' ',
19
+ '*': 'ð', '$': 'ʃ'
20
+ }
21
+ _vowels = {'a', 'i', 'u', 'aː', 'iː', 'uː'}
22
+
23
+
24
+ def translate(buckwalter_text: str) -> str:
25
+ """
26
+ Translates a Buckwalter-transcribed string into an IPA string.
27
+
28
+ Args:
29
+ buckwalter_text (str): The Buckwalter string to translate.
30
+
31
+ Returns:
32
+ str: The translated IPA string.
33
+ """
34
+ ipa_list = []
35
+ i = 0
36
+ while i < len(buckwalter_text):
37
+ # Check for the longest token first. The new Mantoq tokenization
38
+ # seems to use a 5-character token.
39
+ token = buckwalter_text[i:i + 5]
40
+
41
+ # If the previous character was a vowel, we assume it's a long vowel
42
+ # marker (ː). Otherwise, we assume it's a geminated consonant.
43
+ if token == '_dbl_':
44
+ if ipa_list and ipa_list[-1] in _vowels:
45
+ ipa_list.append('ː') # Add length marker for long vowels
46
+ elif ipa_list:
47
+ ipa_list.append(ipa_list[-1]) # Duplicate the consonant
48
+ i += 5
49
+ continue
50
+
51
+ # Check for multi-character mappings from char_dict
52
+ two_char_token = buckwalter_text[i:i + 2]
53
+ if two_char_token in char_dict:
54
+ ipa_list.append(char_dict[two_char_token])
55
+ i += 2
56
+ continue
57
+
58
+ # Handle single characters
59
+ single_char = buckwalter_text[i]
60
+ if single_char in char_dict:
61
+ ipa_list.append(char_dict[single_char])
62
+ else:
63
+ ipa_list.append(single_char)
64
+ i += 1
65
+
66
+ return ''.join(ipa_list)
@@ -1,3 +1,4 @@
1
+ # taken from https://github.com/stannam/hangul_to_ipa
1
2
  import csv
2
3
  import math
3
4
  import os.path
@@ -3,14 +3,6 @@ from phoonnx.thirdparty.mantoq.buck.tokenization import (arabic_to_phonemes, pho
3
3
  phonemes_to_tokens, simplify_phonemes)
4
4
  from phoonnx.thirdparty.mantoq.buck.tokenization import tokens_to_ids as _tokens_to_id
5
5
  from phoonnx.thirdparty.mantoq.num2words import num2words
6
- import warnings
7
- from phoonnx.thirdparty.tashkeel import TashkeelDiacritizer
8
- try:
9
- import onnxruntime
10
-
11
- _TASHKEEL_AVAILABLE = True
12
- except ImportError:
13
- _TASHKEEL_AVAILABLE = False
14
6
 
15
7
  _DIACRITIZER_INST = None
16
8
 
@@ -29,29 +21,12 @@ QUOTES_TABLE = str.maketrans(QUOTES, '"' * len(QUOTES))
29
21
  BRACKETS_TABLE = str.maketrans("[]{}", "()()")
30
22
 
31
23
 
32
-
33
-
34
- def tashkeel(text: str) -> str:
35
- global _DIACRITIZER_INST
36
- if not _TASHKEEL_AVAILABLE:
37
- warnings.warn(
38
- "Warning: The Tashkeel feature will not be available. Please re-install with the `libtashkeel` extra.",
39
- UserWarning,
40
- )
41
- return text
42
- if _DIACRITIZER_INST is None:
43
- _DIACRITIZER_INST = TashkeelDiacritizer()
44
- return _DIACRITIZER_INST.diacritize(text)
45
-
46
24
  def g2p(
47
25
  text: str,
48
- add_tashkeel: bool = True,
49
26
  process_numbers: bool = True,
50
27
  append_eos: bool = False,
51
- ) -> list[str]:
28
+ ) -> tuple[str, list[str]]:
52
29
  text = text.translate(AR_SPECIAL_PUNCS_TABLE).translate(QUOTES_TABLE).translate(BRACKETS_TABLE)
53
- if add_tashkeel:
54
- text = tashkeel(text)
55
30
  if process_numbers:
56
31
  text = num2words(text)
57
32
  normalized_text = text
@@ -0,0 +1,24 @@
1
+ import os
2
+ import requests
3
+
4
+
5
+ class PhonikudDiacritizer:
6
+ dl_url = "https://huggingface.co/thewh1teagle/phonikud-onnx/resolve/main/phonikud-1.0.int8.onnx"
7
+
8
+ def __init__(self):
9
+
10
+ base_path = os.path.expanduser("~/.local/share/phonikud")
11
+ fname = self.dl_url.split("/")[-1]
12
+ model = f"{base_path}/{fname}"
13
+ if not os.path.isfile(model):
14
+ os.makedirs(base_path, exist_ok=True)
15
+ # TODO - streaming download
16
+ data = requests.get(self.dl_url).content
17
+ with open(model, "wb") as f:
18
+ f.write(data)
19
+
20
+ from phonikud_onnx import Phonikud
21
+ self.phonikud = Phonikud(model)
22
+
23
+ def diacritize(self, text: str) -> str:
24
+ return self.phonikud.add_diacritics(text)
phoonnx/version.py CHANGED
@@ -1,6 +1,10 @@
1
1
  # START_VERSION_BLOCK
2
2
  VERSION_MAJOR = 0
3
- VERSION_MINOR = 0
4
- VERSION_BUILD = 2
5
- VERSION_ALPHA = 2
3
+ VERSION_MINOR = 1
4
+ VERSION_BUILD = 0
5
+ VERSION_ALPHA = 3
6
6
  # END_VERSION_BLOCK
7
+
8
+ VERSION_STR = f"{VERSION_MAJOR}.{VERSION_MINOR}.{VERSION_BUILD}"
9
+ if VERSION_ALPHA:
10
+ VERSION_STR += f"a{VERSION_ALPHA}"
phoonnx/voice.py CHANGED
@@ -14,7 +14,6 @@ from phoonnx.config import PhonemeType, VoiceConfig, SynthesisConfig, get_phonem
14
14
  from phoonnx.phoneme_ids import phonemes_to_ids, BlankBetween
15
15
  from phoonnx.phonemizers import Phonemizer
16
16
  from phoonnx.phonemizers.base import PhonemizedChunks
17
- from phoonnx.thirdparty.tashkeel import TashkeelDiacritizer
18
17
 
19
18
  _PHONEME_BLOCK_PATTERN = re.compile(r"(\[\[.*?\]\])")
20
19
 
@@ -113,11 +112,6 @@ class TTSVoice:
113
112
 
114
113
  phonemizer: Optional[Phonemizer] = None
115
114
 
116
- # For Arabic text only
117
- use_tashkeel: bool = True
118
- tashkeel_diacritizier: Optional[TashkeelDiacritizer] = None # For Arabic text only
119
- taskeen_threshold: Optional[float] = 0.8
120
-
121
115
  def __post_init__(self):
122
116
  try:
123
117
  self.phonetic_spellings = PhoneticSpellings.from_lang(self.config.lang_code)
@@ -128,10 +122,6 @@ class TTSVoice:
128
122
  self.config.alphabet,
129
123
  self.config.phonemizer_model)
130
124
 
131
- # compat with piper arabic models - TODO move to espeak phonemizer
132
- if self.config.lang_code.split("-")[0] == "ar" and self.use_tashkeel and self.tashkeel_diacritizier is None:
133
- self.tashkeel_diacritizier = TashkeelDiacritizer()
134
-
135
125
  @staticmethod
136
126
  def load(
137
127
  model_path: Union[str, Path],
@@ -209,12 +199,6 @@ class TTSVoice:
209
199
 
210
200
  continue
211
201
 
212
- # Arabic diacritization
213
- if self.config.lang_code.split("-")[0] == "ar" and self.use_tashkeel:
214
- text_part = self.tashkeel_diacritizier(
215
- text_part, taskeen_threshold=self.taskeen_threshold
216
- )
217
-
218
202
  # Phonemization
219
203
  phonemes = self.phonemizer.phonemize(
220
204
  text_part, self.config.lang_code
@@ -267,6 +251,10 @@ class TTSVoice:
267
251
  if self.phonetic_spellings and syn_config.enable_phonetic_spellings:
268
252
  text = self.phonetic_spellings.apply(text)
269
253
 
254
+ if syn_config.add_diacritics:
255
+ text = self.phonemizer.add_diacritics(text, self.config.lang_code)
256
+ LOG.debug("text+diacritics=%s", text)
257
+
270
258
  # All phonemization goes through the unified self.phonemize method
271
259
  sentence_phonemes = self.phonemize(text)
272
260
  LOG.debug("phonemes=%s", sentence_phonemes)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phoonnx
3
- Version: 0.0.2a2
3
+ Version: 0.1.0a3
4
4
  Home-page: https://github.com/TigreGotico/phoonnx
5
5
  Author: JarbasAi
6
6
  Author-email: jarbasai@mailfence.com
@@ -220,6 +220,7 @@ Requires-Dist: librosa<1,>=0.9.2; extra == "train"
220
220
  Requires-Dist: numpy<2,>=1.19.0; extra == "train"
221
221
  Requires-Dist: pytorch-lightning<2.0; extra == "train"
222
222
  Requires-Dist: torch<2,>=1.11.0; extra == "train"
223
+ Requires-Dist: click; extra == "train"
223
224
  Provides-Extra: uew
224
225
  Requires-Dist: epitran; extra == "uew"
225
226
  Provides-Extra: ug
@@ -1,28 +1,29 @@
1
1
  phoonnx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
- phoonnx/config.py,sha256=81H34oPG2BaiOA6UM1KapoT341n068LqRprKb5ER6mY,19451
2
+ phoonnx/config.py,sha256=IYhC-kYjLgYmBroId6YeOE2Vp7SMNGtiGqIIe_09NJk,19531
3
3
  phoonnx/phoneme_ids.py,sha256=FiNgZwV6naEsBh6XwFLh3_FyOgPiCsK9qo7S0v-CmI4,13667
4
4
  phoonnx/util.py,sha256=XSjFEoqSFcujFTHxednacgC9GrSYyF-Il5L6Utmxmu4,25909
5
- phoonnx/version.py,sha256=E5lPoALEg4bqb4bmnVYnseCgozkzjZGnhpUom_OlcQI,114
6
- phoonnx/voice.py,sha256=FR_LafK1vSi_anPERJjZBuH3Bb9vUIof0MAW6TnALlA,20024
5
+ phoonnx/version.py,sha256=WnY5J2wtSTore9QbKwfk04gQhBsYq4HVmV5CBjEhGnk,236
6
+ phoonnx/voice.py,sha256=JXjmbrhJd4mmTiLgz4O_Pa5_rKGUC9xzuBfqxYDw3Mg,19420
7
7
  phoonnx/locale/ca/phonetic_spellings.txt,sha256=igv3t7jxLSRE5GHsdn57HOpxiWNcEmECPql6m02wbO0,47
8
8
  phoonnx/locale/en/phonetic_spellings.txt,sha256=xGQlWOABLzbttpQvopl9CU-NnwEJRqKx8iuylsdUoQA,27
9
9
  phoonnx/locale/gl/phonetic_spellings.txt,sha256=igv3t7jxLSRE5GHsdn57HOpxiWNcEmECPql6m02wbO0,47
10
10
  phoonnx/locale/pt/phonetic_spellings.txt,sha256=KntS8QMynEJ5A3Clvcjq4qlmL-ThSbhfD6v0nKSrlqs,49
11
11
  phoonnx/phonemizers/__init__.py,sha256=QGBZk0QUgJdg2MwUWY9Kpk6ucwrEJYtHb07YcNvXCV4,1647
12
- phoonnx/phonemizers/ar.py,sha256=rPAMGPlyXOlKY99IoHe_vWcLllepiG0YFUbOBia075E,1260
13
- phoonnx/phonemizers/base.py,sha256=yPg6-dvscYpl3rR3JEULG1PRF-i8DWC_C3HAZGLbxOo,7648
12
+ phoonnx/phonemizers/ar.py,sha256=xxILq5iyH0kcI-NqFfRK4abGtpdUbykBjt_dZmPuO2w,3216
13
+ phoonnx/phonemizers/base.py,sha256=FHvAsvSjAl_oSa1GoeEi96CQ_JO_xkKXWq0ukuMxiuo,8660
14
14
  phoonnx/phonemizers/en.py,sha256=N2SVoVhplQao7Ej5TXbxJU-YkAgkY0Fr9iYBFnsjFSE,9271
15
15
  phoonnx/phonemizers/fa.py,sha256=d_DZM2wqomf4gcRH_rFcNA3VkQWKHru8vwBwaNG8Ll8,1452
16
16
  phoonnx/phonemizers/gl.py,sha256=jEFKJJViHufZtB7lGNwWQCdWGiNKDCVZ_GRYXTaw_2c,6614
17
- phoonnx/phonemizers/he.py,sha256=KbRI3XRZa8UtJdNWmn_fd-t5lmFSIp4Mw8UgcO5l-Po,2211
17
+ phoonnx/phonemizers/he.py,sha256=49OFS34wSFvvR9B3z2bGSzSLmlIvnn2HtkHBOkHS9Ns,1383
18
18
  phoonnx/phonemizers/ja.py,sha256=Xojsrt715ihnIiEk9K6giYqDo9Iykw-SHfIidrHtHSU,3834
19
19
  phoonnx/phonemizers/ko.py,sha256=kwWoOFqanCB8kv2JRx17A0hP78P1wbXlX6e8VBn1ezQ,2989
20
- phoonnx/phonemizers/mul.py,sha256=37G_G58aGnVpdEm9vZEAOdGEHJ9TLBE17bU1HFvQ2rU,27291
20
+ phoonnx/phonemizers/mul.py,sha256=-h6uN_laUD-unNRGThzjyiOZpN6pSl4uinCndg5-0TA,94184
21
21
  phoonnx/phonemizers/vi.py,sha256=_XJc-Xeawr1Lxr7o8mE_hJao1aGcj4g01XYAOxC_Scg,1311
22
22
  phoonnx/phonemizers/zh.py,sha256=88Ywq8h9LDanlyz8RHjRSCY_PRK_Dq808tBADyrgaP8,9657
23
23
  phoonnx/thirdparty/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  phoonnx/thirdparty/arpa2ipa.py,sha256=Uj1G5NgP5oBBfSm26LGB8QoumdT-NqCLQTZHT165-_o,5850
25
- phoonnx/thirdparty/hangul2ipa.py,sha256=e2c0WOy5lFMcf6GS7pNqIbauMKBX07S84lCczZAZJGA,27518
25
+ phoonnx/thirdparty/bw2ipa.py,sha256=5FiWC4AP4KXkqtbclbinoXEsUnSYEjk4VWAPasMMcbg,2328
26
+ phoonnx/thirdparty/hangul2ipa.py,sha256=Pj06lL-GkOH4ZkLuakwQAT045fEVsijGhwoY_EEEVKc,27572
26
27
  phoonnx/thirdparty/zh_num.py,sha256=SESA6gvSJW3LZ0FLoybXn2SpbxqhQTi9Tg_U2IZ5JYY,7147
27
28
  phoonnx/thirdparty/cotovia/cotovia_aarch64,sha256=BsAWZN452Lm9kDU4i6rQGHFSlmxP3GfHRKhbJMUQrfA,6764592
28
29
  phoonnx/thirdparty/cotovia/cotovia_x86_64,sha256=-6BNx_cd49nnDreOAsGtVtePs_X76esrqcNAfmksN1o,1379832
@@ -36,7 +37,7 @@ phoonnx/thirdparty/ko_tables/tensification.csv,sha256=V4Xf3A1G1iMBzwZevBKQuk_lPa
36
37
  phoonnx/thirdparty/ko_tables/yale.csv,sha256=UhtDbPXRAAyAKoQMXmwhVBwJ5pfZQ_Duk28qBtRUdsU,297
37
38
  phoonnx/thirdparty/kog2p/__init__.py,sha256=yLizadg7RXM-3dQyftD4XSk8r2jb0QOlHQ6as9uUa4U,10267
38
39
  phoonnx/thirdparty/kog2p/rulebook.txt,sha256=FQE3nej8wojl6ilVUBYo7f8bIk0Hjci-B7HPXhM-xNc,9303
39
- phoonnx/thirdparty/mantoq/__init__.py,sha256=4kZuZ3RA5ZhQwTOQGkHF9jQYSvetNTn9uWi5Dsx101k,2106
40
+ phoonnx/thirdparty/mantoq/__init__.py,sha256=02FftO4Onmp_S-XdukbBQ3aRVvqEQyo1frCLWgcF9cY,1428
40
41
  phoonnx/thirdparty/mantoq/num2words.py,sha256=9-ncMtxV1FusD9rNur1lu7l2DWhwUwI1mFiqiPSMH_Q,1264
41
42
  phoonnx/thirdparty/mantoq/unicode_symbol2label.py,sha256=CeZNv7qWeQS4Ejvz-sKgK--5eNYdVVv04WHPaOeK4gk,259409
42
43
  phoonnx/thirdparty/mantoq/buck/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,6 +53,7 @@ phoonnx/thirdparty/mantoq/pyarabic/number.py,sha256=NjFZPWRu-9dZDLgxfv9oDjmh-kWY
52
53
  phoonnx/thirdparty/mantoq/pyarabic/number_const.py,sha256=vAvRVENxTrl9gWPllSXF-yqK9fAW6htuA2d041btC_A,42361
53
54
  phoonnx/thirdparty/mantoq/pyarabic/stack.py,sha256=aJeSzQxVNdomDTWXuxIXWXVOc2BW_3iRWnwmBLkB8jM,1022
54
55
  phoonnx/thirdparty/mantoq/pyarabic/trans.py,sha256=cusyHk9Y01iuvMLJXxgCnIiGyAORzEdSosDKX4cAhPc,13713
56
+ phoonnx/thirdparty/phonikud/__init__.py,sha256=g1dCelCZbwlKT0Ibaky6Ckp59wMw5g_1DDyDXauqFTg,760
55
57
  phoonnx/thirdparty/tashkeel/LICENSE,sha256=mQjTJ6MGAXzmYkO7x4O2VuEeSwCMx7lncbc26TnrVjw,1067
56
58
  phoonnx/thirdparty/tashkeel/SOURCE,sha256=SmnRz-Am5EXv-n2-RokJVEhnn8zeF1QZJVvMQDA_Qds,38
57
59
  phoonnx/thirdparty/tashkeel/__init__.py,sha256=FRdGNCTQaai9X077vlNh4tFOvWgm1U2lIUgnQKO5q0s,7119
@@ -60,8 +62,8 @@ phoonnx/thirdparty/tashkeel/input_id_map.json,sha256=cnpJqjx-k53AbzKyfC4GxMS771l
60
62
  phoonnx/thirdparty/tashkeel/model.onnx,sha256=UsQNQsoJT_n_B6CR0KHq_XuqXPI4jmCpzIm6zY5elV8,4788213
61
63
  phoonnx/thirdparty/tashkeel/target_id_map.json,sha256=baNAJL_UwP9U91mLt01aAEBRRNdGr-csFB_O6roh7TA,181
62
64
  phoonnx_train/__main__.py,sha256=FUAIsbQ-w2i_hoNiBuriQFk4uoryhL4ydyVY-hVjw1U,5086
63
- phoonnx_train/export_onnx.py,sha256=dcFJRZl4YvBk_Dj3j0aNAQVEqKfBHTzV22pzvQwSETQ,2909
64
- phoonnx_train/preprocess.py,sha256=0kto9Holywby6lnoQucBXq2wYEKDItRvdkvYbQnLJeo,14447
65
+ phoonnx_train/export_onnx.py,sha256=CPfgNEm0hnXPSlgme0R9jr-6jZ5fKFpG5DZJFMkC-h4,12820
66
+ phoonnx_train/preprocess.py,sha256=8_Opy5QVNjVmSVmh1_IF23bcNebVIEXuK2KcollIy28,15793
65
67
  phoonnx_train/norm_audio/__init__.py,sha256=Al_YwqMnENXRWp0c79cDZqbdd7pFYARXKxCfBaedr1c,3030
66
68
  phoonnx_train/norm_audio/trim.py,sha256=_ZsE3SYhahQSdEdBLeSwyFJGcvEbt-5E_lnWwTT4tcY,1698
67
69
  phoonnx_train/norm_audio/vad.py,sha256=DXHfRD0qqFJ52FjPvrL5LlN6keJWuc9Nf6TNhxpwC_4,1600
@@ -69,7 +71,7 @@ phoonnx_train/vits/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
69
71
  phoonnx_train/vits/attentions.py,sha256=yc_ViF8zR8z68DzphmVVVn27f9xK_5wi8S4ITLXVQL0,15134
70
72
  phoonnx_train/vits/commons.py,sha256=JsD8CdZ3ZcYYubYhw8So5hICBziFlCrKLrv1lMDRCDM,4645
71
73
  phoonnx_train/vits/config.py,sha256=oSuUIhw9Am7BQ5JwDgtCO-P1zRyN7nPgR-U1XuncJls,10789
72
- phoonnx_train/vits/dataset.py,sha256=DLLGSCkn3GF9uktoTprH1ERblZ18GO6-QsClQKWa98o,6804
74
+ phoonnx_train/vits/dataset.py,sha256=1V1tVh5dSLjFMBsuzrAsoGtYWSBT4iU64Jdqi8oG-y0,7016
73
75
  phoonnx_train/vits/lightning.py,sha256=ZBuSIiJ7EUU1Za2V8Uh6-_HGGRW_qwpXLLs1cEDirHA,12301
74
76
  phoonnx_train/vits/losses.py,sha256=j-uINhBcYxVXFvFutiewQpTuw-qF-J6M6hdJVeOKqNE,1401
75
77
  phoonnx_train/vits/mel_processing.py,sha256=huIjbQgewSmM39hdzRZvZUCI7fTNSMmLcAv3f8zYb8k,3956
@@ -80,7 +82,7 @@ phoonnx_train/vits/utils.py,sha256=exiyrtPHbnnGvcHWSbaH9-gR6srH5ZPHlKiqV2IHUrQ,4
80
82
  phoonnx_train/vits/wavfile.py,sha256=oQZiTIrdw0oLTbcVwKfGXye1WtKte6qK_52qVwiMvfc,26396
81
83
  phoonnx_train/vits/monotonic_align/__init__.py,sha256=5IdAOD1Z7UloMb6d_9NRFsXoNIjEQ3h9mvOSh_AtO3k,636
82
84
  phoonnx_train/vits/monotonic_align/setup.py,sha256=0K5iJJ2mKIklx6ncEfCQS34skm5hHPiz9vRlQEvevvY,266
83
- phoonnx-0.0.2a2.dist-info/METADATA,sha256=-uMrs5iV1A4gqenGg1r8ZyhZN1DhBd9HCsezIy4UxPE,8145
84
- phoonnx-0.0.2a2.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
85
- phoonnx-0.0.2a2.dist-info/top_level.txt,sha256=ZrnHXe-4HqbOSX6fbdY-JiP7YEu2Bok9T0ji351MrmM,22
86
- phoonnx-0.0.2a2.dist-info/RECORD,,
85
+ phoonnx-0.1.0a3.dist-info/METADATA,sha256=3U1Ea0g2HxtWPsIs7NCxzPdo7ZTr4s_lRs9gIOC6MWY,8184
86
+ phoonnx-0.1.0a3.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
87
+ phoonnx-0.1.0a3.dist-info/top_level.txt,sha256=ZrnHXe-4HqbOSX6fbdY-JiP7YEu2Bok9T0ji351MrmM,22
88
+ phoonnx-0.1.0a3.dist-info/RECORD,,