signwriting 0.1.1__tar.gz → 0.1.2__tar.gz

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.
Files changed (73) hide show
  1. {signwriting-0.1.1/signwriting.egg-info → signwriting-0.1.2}/PKG-INFO +4 -4
  2. {signwriting-0.1.1 → signwriting-0.1.2}/README.md +3 -3
  3. {signwriting-0.1.1 → signwriting-0.1.2}/pyproject.toml +1 -1
  4. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/mouthing/mouthing.py +15 -3
  5. signwriting-0.1.2/signwriting/mouthing/server.py +22 -0
  6. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/visualize.py +4 -4
  7. {signwriting-0.1.1 → signwriting-0.1.2/signwriting.egg-info}/PKG-INFO +4 -4
  8. signwriting-0.1.1/signwriting/mouthing/server.py +0 -17
  9. {signwriting-0.1.1 → signwriting-0.1.2}/LICENSE +0 -0
  10. {signwriting-0.1.1 → signwriting-0.1.2}/setup.cfg +0 -0
  11. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/__init__.py +0 -0
  12. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/__init__.py +0 -0
  13. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/da-dk-dsl-dts.txt +0 -0
  14. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/de-ch-sgg-dsgs.txt +0 -0
  15. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/de-de-gsg-dgs.txt +0 -0
  16. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/en-gb-bfi-bsl.txt +0 -0
  17. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/en-ie-isg-isl.txt +0 -0
  18. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/en-us-ase-asl.txt +0 -0
  19. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/es-es-ssp-lse.txt +0 -0
  20. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/es-hn-hds-lesho.txt +0 -0
  21. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/es-mx-mfs-lsm.txt +0 -0
  22. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/es-ni-ncs-isn.txt +0 -0
  23. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/fr-be-sfb-lsfb.txt +0 -0
  24. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/fr-fr-fsl-lsf.txt +0 -0
  25. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/he-il-isr-isl.txt +0 -0
  26. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/it-it-ise-lis.txt +0 -0
  27. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/ja-jp-jsl-jsl.txt +0 -0
  28. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/ko-kr-ko-ksl.txt +0 -0
  29. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/nl-be-vgt-vgt.txt +0 -0
  30. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/no-no-nsl-nsl.txt +0 -0
  31. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/pt-br-bzs-libras.txt +0 -0
  32. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/pt-pt-psr-lsp.txt +0 -0
  33. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/sv-se-swl-ssl.txt +0 -0
  34. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/th-th-tsq-thsl.txt +0 -0
  35. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/data/zh-cn-csl-csl.txt +0 -0
  36. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/fingerspelling.py +0 -0
  37. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/server.py +0 -0
  38. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/test_fingerspelling.py +0 -0
  39. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/fingerspelling/visualize_fingerspelling.py +0 -0
  40. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/__init__.py +0 -0
  41. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/fsw_to_sign.py +0 -0
  42. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/fsw_to_swu.py +0 -0
  43. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/sign_to_fsw.py +0 -0
  44. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/swu.py +0 -0
  45. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/swu_to_fsw.py +0 -0
  46. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/test_fsw_to_sign.py +0 -0
  47. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/test_swu.py +0 -0
  48. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/formats/test_swu_to_fsw.py +0 -0
  49. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/hamnosys/parallel.json +0 -0
  50. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/mouthing/__init__.py +0 -0
  51. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/mouthing/mouthing.json +0 -0
  52. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/mouthing/visualize_mouthing.py +0 -0
  53. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/server.py +0 -0
  54. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/tokenizer/__init__.py +0 -0
  55. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/tokenizer/base_tokenizer.py +0 -0
  56. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/tokenizer/signwriting_normalizer.py +0 -0
  57. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/tokenizer/signwriting_tokenizer.py +0 -0
  58. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/tokenizer/test_signwriting_normalizer.py +0 -0
  59. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/tokenizer/test_signwriting_tokenizer.py +0 -0
  60. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/types.py +0 -0
  61. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/utils/__init__.py +0 -0
  62. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/utils/join_signs.py +0 -0
  63. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/utils/test_join_signs.py +0 -0
  64. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/SuttonSignWritingFill.ttf +0 -0
  65. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/SuttonSignWritingLine.ttf +0 -0
  66. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/SuttonSignWritingOneD.ttf +0 -0
  67. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/__init__.py +0 -0
  68. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/server.py +0 -0
  69. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting/visualizer/test_visualize.py +0 -0
  70. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting.egg-info/SOURCES.txt +0 -0
  71. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting.egg-info/dependency_links.txt +0 -0
  72. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting.egg-info/requires.txt +0 -0
  73. {signwriting-0.1.1 → signwriting-0.1.2}/signwriting.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signwriting
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Python utilities for SignWriting.
5
5
  Author-email: Amit Moryossef <amitmoryossef@gmail.com>
6
6
  Description-Content-Type: text/markdown
@@ -116,7 +116,7 @@ signwriting_to_image(fsw)
116
116
  ![AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S20544510x500S10019476x475](signwriting/visualizer/test_assets/AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S20544510x500S10019476x475.png)
117
117
 
118
118
  To use the visualizer with the server, you can hit:
119
- https://signwriting-sxie2r74ua-uc.a.run.app//visualizer?fsw=M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475
119
+ https://signwriting-sxie2r74ua-uc.a.run.app/visualizer?fsw=M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475
120
120
 
121
121
  ### `signwriting.utils`
122
122
 
@@ -149,7 +149,7 @@ spell(word, language)
149
149
  ```
150
150
 
151
151
  To use the fingerspelling with the server, you can hit:
152
- https://signwriting-sxie2r74ua-uc.a.run.app//fingerspelling?text=hello&signed_language=ase
152
+ https://signwriting-sxie2r74ua-uc.a.run.app/fingerspelling?text=hello&signed_language=ase
153
153
 
154
154
  ### `signwriting.mouthing`
155
155
 
@@ -168,7 +168,7 @@ Note: Installing English support for `epitran` requires extra steps,
168
168
  see "Install flite" at [mouthing/README.md](signwriting/mouthing/README.md).
169
169
 
170
170
  To use the mouthing with the server, you can hit:
171
- https://signwriting-sxie2r74ua-uc.a.run.app//mouthing?text=hello&spoken_language=eng-Latn
171
+ https://signwriting-sxie2r74ua-uc.a.run.app/mouthing?text=hello&spoken_language=eng-Latn
172
172
 
173
173
 
174
174
  ## Cite
@@ -94,7 +94,7 @@ signwriting_to_image(fsw)
94
94
  ![AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S20544510x500S10019476x475](signwriting/visualizer/test_assets/AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S20544510x500S10019476x475.png)
95
95
 
96
96
  To use the visualizer with the server, you can hit:
97
- https://signwriting-sxie2r74ua-uc.a.run.app//visualizer?fsw=M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475
97
+ https://signwriting-sxie2r74ua-uc.a.run.app/visualizer?fsw=M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475
98
98
 
99
99
  ### `signwriting.utils`
100
100
 
@@ -127,7 +127,7 @@ spell(word, language)
127
127
  ```
128
128
 
129
129
  To use the fingerspelling with the server, you can hit:
130
- https://signwriting-sxie2r74ua-uc.a.run.app//fingerspelling?text=hello&signed_language=ase
130
+ https://signwriting-sxie2r74ua-uc.a.run.app/fingerspelling?text=hello&signed_language=ase
131
131
 
132
132
  ### `signwriting.mouthing`
133
133
 
@@ -146,7 +146,7 @@ Note: Installing English support for `epitran` requires extra steps,
146
146
  see "Install flite" at [mouthing/README.md](signwriting/mouthing/README.md).
147
147
 
148
148
  To use the mouthing with the server, you can hit:
149
- https://signwriting-sxie2r74ua-uc.a.run.app//mouthing?text=hello&spoken_language=eng-Latn
149
+ https://signwriting-sxie2r74ua-uc.a.run.app/mouthing?text=hello&spoken_language=eng-Latn
150
150
 
151
151
 
152
152
  ## Cite
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "signwriting"
3
3
  description = "Python utilities for SignWriting."
4
- version = "v0.1.1"
4
+ version = "v0.1.2"
5
5
  authors = [
6
6
  { name = "Amit Moryossef", email = "amitmoryossef@gmail.com" }
7
7
  ]
@@ -2,18 +2,27 @@ import copy
2
2
  import functools
3
3
  import json
4
4
  import re
5
+ from dataclasses import dataclass
5
6
  from pathlib import Path
6
- from typing import Union
7
+ from typing import Union, Optional
7
8
 
8
9
  from epitran import Epitran
9
10
 
10
11
  from signwriting.formats.fsw_to_sign import fsw_to_sign
11
12
  from signwriting.formats.sign_to_fsw import sign_to_fsw
13
+ from signwriting.formats.fsw_to_swu import fsw2swu
12
14
  from signwriting.utils.join_signs import join_signs_horizontal, sign_from_symbols
13
15
 
14
16
  MOUTHING_INDEX = Path(__file__).parent / "mouthing.json"
15
17
 
16
18
 
19
+ @dataclass
20
+ class MouthingResult:
21
+ ipa: str
22
+ fsw: Optional[str]
23
+ swu: Optional[str]
24
+
25
+
17
26
  @functools.lru_cache()
18
27
  def get_mouthings():
19
28
  with open(MOUTHING_INDEX, "r", encoding="utf-8") as f:
@@ -74,14 +83,17 @@ def mouth_ipa(characters: str, aspiration=False) -> Union[str, None]:
74
83
  return join_signs_horizontal(*words, spacing=10)
75
84
 
76
85
 
77
- def mouth(word: str, language: str, aspiration=False):
86
+ def mouth(word: str, language: str, aspiration=False) -> MouthingResult:
78
87
  epi = Epitran(language, ligatures=True)
79
88
  ipa = epi.transliterate(word)
80
89
 
81
90
  mouthing_fsw = mouth_ipa(ipa, aspiration=aspiration)
82
91
  if mouthing_fsw is None:
83
92
  print(f"Failed to mouth {word}, IPA: {ipa}")
84
- return mouthing_fsw
93
+
94
+ mouthing_swu = fsw2swu(mouthing_fsw) if mouthing_fsw else None
95
+
96
+ return MouthingResult(ipa=ipa, fsw=mouthing_fsw, swu=mouthing_swu)
85
97
 
86
98
 
87
99
  if __name__ == "__main__":
@@ -0,0 +1,22 @@
1
+ from flask import make_response, jsonify
2
+ from flask_restful import Resource, reqparse
3
+
4
+ from signwriting.mouthing.mouthing import mouth
5
+
6
+ parser = reqparse.RequestParser()
7
+ parser.add_argument('text', type=str, required=True, location='args', help='Text to mouth')
8
+ parser.add_argument('spoken_language', type=str, required=True, location='args',
9
+ help='Spoken Language code. See "Language Support" at https://pypi.org/project/epitran/')
10
+
11
+
12
+ class Mouthing(Resource):
13
+ def get(self):
14
+ args = parser.parse_args()
15
+
16
+ result = mouth(args["text"], language=args["spoken_language"])
17
+
18
+ return make_response(jsonify({
19
+ "ipa": result.ipa,
20
+ "fsw": result.fsw,
21
+ "swu": result.swu
22
+ }), 200)
@@ -87,14 +87,14 @@ def layout_signwriting(images: List[Image.Image], direction: str) -> Image.Image
87
87
  max_height = max(img.height for img in images)
88
88
  total_width = sum(img.width for img in images) + GAP * (len(images) - 1)
89
89
  size = (total_width, max_height)
90
- paste_position = lambda offset, img: (offset, (max_height - img.height) // 2)
91
- offset_increment = lambda img: img.width + GAP
90
+ paste_position = lambda offset, img: (offset, (max_height - img.height) // 2) # noqa: E731
91
+ offset_increment = lambda img: img.width + GAP # noqa: E731
92
92
  else:
93
93
  max_width = max(img.width for img in images)
94
94
  total_height = sum(img.height for img in images) + GAP * (len(images) - 1)
95
95
  size = (max_width, total_height)
96
- paste_position = lambda offset, img: ((max_width - img.width) // 2, offset)
97
- offset_increment = lambda img: img.height + GAP
96
+ paste_position = lambda offset, img: ((max_width - img.width) // 2, offset) # noqa: E731
97
+ offset_increment = lambda img: img.height + GAP # noqa: E731
98
98
 
99
99
  layout_image = Image.new("RGBA", size, (255, 255, 255, 0))
100
100
  offset = 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: signwriting
3
- Version: 0.1.1
3
+ Version: 0.1.2
4
4
  Summary: Python utilities for SignWriting.
5
5
  Author-email: Amit Moryossef <amitmoryossef@gmail.com>
6
6
  Description-Content-Type: text/markdown
@@ -116,7 +116,7 @@ signwriting_to_image(fsw)
116
116
  ![AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S20544510x500S10019476x475](signwriting/visualizer/test_assets/AS10011S10019S2e704S2e748M525x535S2e748483x510S10011501x466S20544510x500S10019476x475.png)
117
117
 
118
118
  To use the visualizer with the server, you can hit:
119
- https://signwriting-sxie2r74ua-uc.a.run.app//visualizer?fsw=M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475
119
+ https://signwriting-sxie2r74ua-uc.a.run.app/visualizer?fsw=M525x535S2e748483x510S10011501x466S2e704510x500S10019476x475
120
120
 
121
121
  ### `signwriting.utils`
122
122
 
@@ -149,7 +149,7 @@ spell(word, language)
149
149
  ```
150
150
 
151
151
  To use the fingerspelling with the server, you can hit:
152
- https://signwriting-sxie2r74ua-uc.a.run.app//fingerspelling?text=hello&signed_language=ase
152
+ https://signwriting-sxie2r74ua-uc.a.run.app/fingerspelling?text=hello&signed_language=ase
153
153
 
154
154
  ### `signwriting.mouthing`
155
155
 
@@ -168,7 +168,7 @@ Note: Installing English support for `epitran` requires extra steps,
168
168
  see "Install flite" at [mouthing/README.md](signwriting/mouthing/README.md).
169
169
 
170
170
  To use the mouthing with the server, you can hit:
171
- https://signwriting-sxie2r74ua-uc.a.run.app//mouthing?text=hello&spoken_language=eng-Latn
171
+ https://signwriting-sxie2r74ua-uc.a.run.app/mouthing?text=hello&spoken_language=eng-Latn
172
172
 
173
173
 
174
174
  ## Cite
@@ -1,17 +0,0 @@
1
- from flask import make_response, jsonify
2
- from flask_restful import Resource, reqparse
3
-
4
- from signwriting.mouthing.mouthing import mouth
5
-
6
- parser = reqparse.RequestParser()
7
- parser.add_argument('text', type=str, required=True, help='Text to mouth')
8
- parser.add_argument('spoken_language', type=str, required=True,
9
- help='Spoken Language code. See "Language Support" at https://pypi.org/project/epitran/')
10
-
11
-
12
- class Mouthing(Resource):
13
- def get(self):
14
- args = parser.parse_args()
15
-
16
- fsw = mouth(args["text"], language=args["spoken_language"])
17
- return make_response(jsonify({"fsw": fsw}), 200)
File without changes
File without changes