python-negar 1.2.13__tar.gz → 1.2.15__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.
@@ -1,3 +1,9 @@
1
+ 1.2.15 - 2024-12-31
2
+ -- Fixed issue #24 and added several new immutable words.
3
+
4
+ 1.2.14 - 2024-12-30
5
+ -- Fixed issue with prefix spacing in cases like "mi + space + ZWNJ + <word>".
6
+
1
7
  1.2.13 - 2024-12-26
2
8
  -- Fixed issue with quotes after a dot where no space was allowed in between.
3
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-negar
3
- Version: 1.2.13
3
+ Version: 1.2.15
4
4
  Summary: Negar is a spell corrector and Persian text editor
5
5
  Home-page: http://github.com/shahinism/python-negar
6
6
  Author: Shahin Azad
@@ -1,7 +1,7 @@
1
1
  import platform
2
2
  from pathlib import Path
3
3
 
4
- __version__ = "1.2.13"
4
+ __version__ = "1.2.15"
5
5
 
6
6
  DATAFILE = Path(__file__).parent.absolute() / "data/immutable.words"
7
7
  APPDATA = "AppData/Roaming/" if platform.system() == "Windows" else "."
@@ -97,10 +97,12 @@
97
97
  المان
98
98
  الها
99
99
  ام‌ابیها
100
+ ام‌ابیها
100
101
  امفی‌تآتر
101
102
  امنیتتان
102
103
  امها
103
104
  انتها
105
+ انتهایی
104
106
  انرژی‌درمان
105
107
  انسان‌دوستان
106
108
  انسان‌دوستان
@@ -196,8 +198,11 @@
196
198
  بنگستان
197
199
  بنها
198
200
  بها
201
+ بهائیت
199
202
  بهارستان
200
203
  بهارستان
204
+ بهایی
205
+ بهاییت
201
206
  بهبها
202
207
  بهتان
203
208
  بهتان
@@ -205,6 +210,7 @@
205
210
  بهتری
206
211
  بهترین
207
212
  بهترین
213
+ به‌تنهایی
208
214
  بهمان
209
215
  بوتان
210
216
  بودنتان
@@ -254,6 +260,7 @@
254
260
  بیازمایید
255
261
  بیاسایند
256
262
  بی‌اشتها
263
+ بی‌اشتهایی
257
264
  بیافتد
258
265
  بیافرید
259
266
  بیافریند
@@ -327,6 +334,7 @@
327
334
  بیبسکو
328
335
  بیبل
329
336
  بی‌بها
337
+ بی‌بهایی
330
338
  بیت
331
339
  بیت‌التکمه‌ها
332
340
  بیت‌الحکمه
@@ -379,6 +387,7 @@
379
387
  بیدارتر
380
388
  بیدارترین
381
389
  بیدار‌دل
390
+ بیداردل
382
391
  بیدارشان
383
392
  بیدارشدگی
384
393
  بیدارگری
@@ -464,11 +473,14 @@
464
473
  بیست‌میلیونی
465
474
  بیستمین
466
475
  بیست‌و‌پنجم
476
+ بیست‌وپنجم
467
477
  بیست‌و‌چهار‌ساعته
478
+ بیست‌وچهارساعته
468
479
  بیست‌ودوم
469
480
  بیست‌وسوم
470
481
  بیستون
471
482
  بیست‌و‌هفتم
483
+ بیست‌وهفتم
472
484
  بیست‌ویکم
473
485
  بیسرنامه
474
486
  بیسکای
@@ -540,6 +552,7 @@
540
552
  بیکار
541
553
  بیکاران
542
554
  بیکار‌شده
555
+ بیکارشده
543
556
  بیکارگی
544
557
  بیکارند
545
558
  بیکاره
@@ -659,6 +672,7 @@
659
672
  بین
660
673
  بینا
661
674
  بینا‌بینی
675
+ بینابینی
662
676
  بینات
663
677
  بیناتری
664
678
  بینارداغ
@@ -852,7 +866,9 @@
852
866
  تفتان
853
867
  تکلیفتان
854
868
  تک‌و‌تنها
869
+ تک‌وتنها
855
870
  تک‌و‌تنهایی
871
+ تک‌وتنهایی
856
872
  تلاشتان
857
873
  تلویزیون‌تان
858
874
  تماستان
@@ -864,6 +880,7 @@
864
880
  تنها
865
881
  تنهای
866
882
  تنهایی
883
+ تنهایی
867
884
  تنوره‌کشان
868
885
  تهیدستان
869
886
  توتستان
@@ -1039,6 +1056,7 @@
1039
1056
  سینمادوستان
1040
1057
  سینما‌دوستان
1041
1058
  شاعر‌صفتان
1059
+ شاعرصفتان
1042
1060
  شانگها
1043
1061
  شبستان
1044
1062
  شبستر
@@ -1055,6 +1073,7 @@
1055
1073
  شورستان
1056
1074
  شوشتر
1057
1075
  شوشتری
1076
+ شیخ‌بهایی
1058
1077
  شیربها
1059
1078
  صربستان
1060
1079
  صفرکیلومتر
@@ -1154,6 +1173,7 @@
1154
1173
  گالوانومتر
1155
1174
  گانگستر
1156
1175
  گران‌بها
1176
+ گران‌بهایی
1157
1177
  گرجستان
1158
1178
  گردافشان
1159
1179
  گرده‌افشان
@@ -1333,7 +1353,7 @@
1333
1353
  میخی
1334
1354
  مید
1335
1355
  میداس
1336
- مید‌استار
1356
+ میداستار
1337
1357
  میدان
1338
1358
  میدانا
1339
1359
  میدان‌چای
@@ -1383,7 +1403,7 @@
1383
1403
  میرباقری
1384
1404
  میرپنج
1385
1405
  میرجاوه
1386
- میر‌جلیل
1406
+ میرجلیل
1387
1407
  میرحاجی
1388
1408
  میرحسین
1389
1409
  میرحسینی
@@ -1397,14 +1417,15 @@
1397
1417
  میرر
1398
1418
  میرزا
1399
1419
  میرزاآقابیک
1400
- میرزا‌ابوطالبی
1420
+ میرزاابوطالبی
1401
1421
  میرزابی
1402
1422
  میرزابیگی
1403
- میرزا‌ده
1423
+ میرزاده
1404
1424
  میرزا‌سالاری‌ها
1425
+ میرزاسالاری‌ها
1405
1426
  میرزاغفور
1406
1427
  میرزاغوثی
1407
- میرزا‌نظری
1428
+ میرزانظری
1408
1429
  میرزای
1409
1430
  میرزایی
1410
1431
  میرزمانی
@@ -1626,6 +1647,7 @@
1626
1647
  میلیارددلاری
1627
1648
  میلیاردر
1628
1649
  میلیارد‌ریالی
1650
+ میلیاردریالی
1629
1651
  میلیاردم
1630
1652
  میلیاردمین
1631
1653
  میلیاردها
@@ -1757,6 +1779,7 @@
1757
1779
  میهنه
1758
1780
  میهنی
1759
1781
  میهو‌ی
1782
+ میهوی
1760
1783
  میوت
1761
1784
  میور
1762
1785
  میوسن
@@ -1809,9 +1832,10 @@
1809
1832
  نهاد
1810
1833
  نهالستان
1811
1834
  نهایت
1835
+ نهایی
1812
1836
  نه‌تنها
1813
1837
  نوبها
1814
- نو‌دولتان
1838
+ نودولتان
1815
1839
  نورافشان
1816
1840
  نوع‌دوستان
1817
1841
  نونها
@@ -1822,6 +1846,7 @@
1822
1846
  نیشتر
1823
1847
  نیم‌بها
1824
1848
  نیمه‌نها
1849
+ نیمه‌نهایی
1825
1850
  هزاردستان
1826
1851
  هستان
1827
1852
  هشتر
@@ -178,9 +178,9 @@ class PersianEditor:
178
178
 
179
179
  def fix_prefix_spacing(self):
180
180
  """Put ZWNJ between a word and its prefix (mi* nemi* bi* na*)."""
181
- self.text = re.sub(r"\b(بی|نا)‌*(\s+)(?!(می)\b)", r"\1‌", self.text)
181
+ self.text = re.sub(r"\b(بی|نا)([\s|‌]+)(?!(می)\b)", r"\1‌", self.text)
182
182
  # the following case is for the mi(n.) and nemi(n.)
183
- self.text = re.sub(rf"\b(ن?می)‌*(\s+)(?!(.|{self._prepositions})\b)", r"\1‌", self.text)
183
+ self.text = re.sub(rf"\b(ن?می)([\s|‌]+)(?!(.|{self._prepositions})\b)", r"\1‌", self.text)
184
184
 
185
185
  def fix_prefix_separate(self):
186
186
  """Put ZWNJ between a word and its prefix (mi* nemi* bi*)."""
@@ -196,8 +196,10 @@ class PersianEditor:
196
196
 
197
197
  # Replace backslashes with a temporary placeholder
198
198
  text = self.text.replace("\\", "PN__BACKSLASH__PN")
199
- wlist = text.split(" ")
199
+ wlist = text.split()
200
200
  for word in wlist:
201
+ if word.strip() in ImmutableWords.get():
202
+ continue
201
203
  regx_iter = regx.finditer(word)
202
204
  for p in regx_iter:
203
205
  # Checks that the prefix (mi* nemi* bi*) is part a a word or not, like میلاد.
@@ -258,8 +260,10 @@ class PersianEditor:
258
260
  )
259
261
  # Replace backslashes with a temporary placeholder
260
262
  text = self.text.replace("\\", "PN__BACKSLASH__PN")
261
- wlist = text.split(" ")
263
+ wlist = text.split()
262
264
  for word in wlist:
265
+ if word.strip() in ImmutableWords.get():
266
+ continue
263
267
  regx_iter = regx.finditer(word)
264
268
  for p in regx_iter:
265
269
  # Checks that the suffix (tar* haye*) is part of a word or not, like بهتر.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python-negar
3
- Version: 1.2.13
3
+ Version: 1.2.15
4
4
  Summary: Negar is a spell corrector and Persian text editor
5
5
  Home-page: http://github.com/shahinism/python-negar
6
6
  Author: Shahin Azad
@@ -93,6 +93,16 @@ class Test(unittest.TestCase):
93
93
  self.input_ = r"در پیشوند کلمات با نیم‌فاصله نظیر ' می شود '، ' میشود '، ' بی شک '، ' بیشک ' , ' خانه اش '، ' وظیفه شناس ' ، ' کمک تان ' و یا ' نمیرود '"
94
94
  self.output_ = "در پیشوند کلمات با نیم‌فاصله نظیر «می‌شود»، «می‌شود»، «بی‌شک»، «بی‌شک»، «خانه‌اش»، «وظیفه‌شناس»، «کمک‌تان» و یا «نمی‌رود»"
95
95
 
96
+ @_assertEqual("Fix Prefix ZWNJ II")
97
+ def test_fix_prefix_ZWNJ_ii(self):
98
+ self.input_ = r"می‌ شود"
99
+ self.output_ = "می‌شود"
100
+
101
+ @_assertEqual("Fix Prefix ZWNJ III")
102
+ def test_fix_prefix_ZWNJ_iii(self):
103
+ self.input_ = r"می ‌شود"
104
+ self.output_ = "می‌شود"
105
+
96
106
  @_assertEqual("Fix Suffix ZWNJ I")
97
107
  def test_fix_suffix_ZWNJ_I(self):
98
108
  self.input_ = r"در پسوند کلمات با نیم‌فاصله نظیر کتابها، خوشترین -- و البته امکان عدم تنظیم (در صورت انتخاب کاربر)"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes