mirror of
https://github.com/explosion/spaCy.git
synced 2024-12-25 17:36:30 +03:00
657af5f91f
* 🚨 Ignore all existing Mypy errors * 🏗 Add Mypy check to CI * Add types-mock and types-requests as dev requirements * Add additional type ignore directives * Add types packages to dev-only list in reqs test * Add types-dataclasses for python 3.6 * Add ignore to pretrain * 🏷 Improve type annotation on `run_command` helper The `run_command` helper previously declared that it returned an `Optional[subprocess.CompletedProcess]`, but it isn't actually possible for the function to return `None`. These changes modify the type annotation of the `run_command` helper and remove all now-unnecessary `# type: ignore` directives. * 🔧 Allow variable type redefinition in limited contexts These changes modify how Mypy is configured to allow variables to have their type automatically redefined under certain conditions. The Mypy documentation contains the following example: ```python def process(items: List[str]) -> None: # 'items' has type List[str] items = [item.split() for item in items] # 'items' now has type List[List[str]] ... ``` This configuration change is especially helpful in reducing the number of `# type: ignore` directives needed to handle the common pattern of: * Accepting a filepath as a string * Overwriting the variable using `filepath = ensure_path(filepath)` These changes enable redefinition and remove all `# type: ignore` directives rendered redundant by this change. * 🏷 Add type annotation to converters mapping * 🚨 Fix Mypy error in convert CLI argument verification * 🏷 Improve type annotation on `resolve_dot_names` helper * 🏷 Add type annotations for `Vocab` attributes `strings` and `vectors` * 🏷 Add type annotations for more `Vocab` attributes * 🏷 Add loose type annotation for gold data compilation * 🏷 Improve `_format_labels` type annotation * 🏷 Fix `get_lang_class` type annotation * 🏷 Loosen return type of `Language.evaluate` * 🏷 Don't accept `Scorer` in `handle_scores_per_type` * 🏷 Add `string_to_list` overloads * 🏷 Fix non-Optional command-line options * 🙈 Ignore redefinition of `wandb_logger` in `loggers.py` * ➕ Install `typing_extensions` in Python 3.8+ The `typing_extensions` package states that it should be used when "writing code that must be compatible with multiple Python versions". Since SpaCy needs to support multiple Python versions, it should be used when newer `typing` module members are required. One example of this is `Literal`, which is available starting with Python 3.8. Previously SpaCy tried to import `Literal` from `typing`, falling back to `typing_extensions` if the import failed. However, Mypy doesn't seem to be able to understand what `Literal` means when the initial import means. Therefore, these changes modify how `compat` imports `Literal` by always importing it from `typing_extensions`. These changes also modify how `typing_extensions` is installed, so that it is a requirement for all Python versions, including those greater than or equal to 3.8. * 🏷 Improve type annotation for `Language.pipe` These changes add a missing overload variant to the type signature of `Language.pipe`. Additionally, the type signature is enhanced to allow type checkers to differentiate between the two overload variants based on the `as_tuple` parameter. Fixes #8772 * ➖ Don't install `typing-extensions` in Python 3.8+ After more detailed analysis of how to implement Python version-specific type annotations using SpaCy, it has been determined that by branching on a comparison against `sys.version_info` can be statically analyzed by Mypy well enough to enable us to conditionally use `typing_extensions.Literal`. This means that we no longer need to install `typing_extensions` for Python versions greater than or equal to 3.8! 🎉 These changes revert previous changes installing `typing-extensions` regardless of Python version and modify how we import the `Literal` type to ensure that Mypy treats it properly. * resolve mypy errors for Strict pydantic types * refactor code to avoid missing return statement * fix types of convert CLI command * avoid list-set confustion in debug_data * fix typo and formatting * small fixes to avoid type ignores * fix types in profile CLI command and make it more efficient * type fixes in projects CLI * put one ignore back * type fixes for render * fix render types - the sequel * fix BaseDefault in language definitions * fix type of noun_chunks iterator - yields tuple instead of span * fix types in language-specific modules * 🏷 Expand accepted inputs of `get_string_id` `get_string_id` accepts either a string (in which case it returns its ID) or an ID (in which case it immediately returns the ID). These changes extend the type annotation of `get_string_id` to indicate that it can accept either strings or IDs. * 🏷 Handle override types in `combine_score_weights` The `combine_score_weights` function allows users to pass an `overrides` mapping to override data extracted from the `weights` argument. Since it allows `Optional` dictionary values, the return value may also include `Optional` dictionary values. These changes update the type annotations for `combine_score_weights` to reflect this fact. * 🏷 Fix tokenizer serialization method signatures in `DummyTokenizer` * 🏷 Fix redefinition of `wandb_logger` These changes fix the redefinition of `wandb_logger` by giving a separate name to each `WandbLogger` version. For backwards-compatibility, `spacy.train` still exports `wandb_logger_v3` as `wandb_logger` for now. * more fixes for typing in language * type fixes in model definitions * 🏷 Annotate `_RandomWords.probs` as `NDArray` * 🏷 Annotate `tok2vec` layers to help Mypy * 🐛 Fix `_RandomWords.probs` type annotations for Python 3.6 Also remove an import that I forgot to move to the top of the module 😅 * more fixes for matchers and other pipeline components * quick fix for entity linker * fixing types for spancat, textcat, etc * bugfix for tok2vec * type annotations for scorer * add runtime_checkable for Protocol * type and import fixes in tests * mypy fixes for training utilities * few fixes in util * fix import * 🐵 Remove unused `# type: ignore` directives * 🏷 Annotate `Language._components` * 🏷 Annotate `spacy.pipeline.Pipe` * add doc as property to span.pyi * small fixes and cleanup * explicit type annotations instead of via comment Co-authored-by: Adriane Boyd <adrianeboyd@gmail.com> Co-authored-by: svlandeg <sofie.vanlandeghem@gmail.com> Co-authored-by: svlandeg <svlandeg@github.com>
652 lines
14 KiB
Python
652 lines
14 KiB
Python
verb_roots = """
|
||
#هست
|
||
آخت#آهنج
|
||
آراست#آرا
|
||
آراماند#آرامان
|
||
آرامید#آرام
|
||
آرمید#آرام
|
||
آزرد#آزار
|
||
آزمود#آزما
|
||
آسود#آسا
|
||
آشامید#آشام
|
||
آشفت#آشوب
|
||
آشوبید#آشوب
|
||
آغازید#آغاز
|
||
آغشت#آمیز
|
||
آفرید#آفرین
|
||
آلود#آلا
|
||
آمد#آ
|
||
آمرزید#آمرز
|
||
آموخت#آموز
|
||
آموزاند#آموزان
|
||
آمیخت#آمیز
|
||
آورد#آر
|
||
آورد#آور
|
||
آویخت#آویز
|
||
آکند#آکن
|
||
آگاهانید#آگاهان
|
||
ارزید#ارز
|
||
افتاد#افت
|
||
افراخت#افراز
|
||
افراشت#افراز
|
||
افروخت#افروز
|
||
افروزید#افروز
|
||
افزود#افزا
|
||
افسرد#افسر
|
||
افشاند#افشان
|
||
افکند#افکن
|
||
افگند#افگن
|
||
انباشت#انبار
|
||
انجامید#انجام
|
||
انداخت#انداز
|
||
اندوخت#اندوز
|
||
اندود#اندا
|
||
اندیشید#اندیش
|
||
انگاشت#انگار
|
||
انگیخت#انگیز
|
||
انگیزاند#انگیزان
|
||
ایستاد#ایست
|
||
ایستاند#ایستان
|
||
باخت#باز
|
||
باراند#باران
|
||
بارگذاشت#بارگذار
|
||
بارید#بار
|
||
باز#بازخواه
|
||
بازآفرید#بازآفرین
|
||
بازآمد#بازآ
|
||
بازآموخت#بازآموز
|
||
بازآورد#بازآور
|
||
بازایستاد#بازایست
|
||
بازتابید#بازتاب
|
||
بازجست#بازجو
|
||
بازخواند#بازخوان
|
||
بازخوراند#بازخوران
|
||
بازداد#بازده
|
||
بازداشت#بازدار
|
||
بازرساند#بازرسان
|
||
بازرسانید#بازرسان
|
||
باززد#باززن
|
||
بازستاند#بازستان
|
||
بازشمارد#بازشمار
|
||
بازشمرد#بازشمار
|
||
بازشمرد#بازشمر
|
||
بازشناخت#بازشناس
|
||
بازشناساند#بازشناسان
|
||
بازفرستاد#بازفرست
|
||
بازماند#بازمان
|
||
بازنشست#بازنشین
|
||
بازنمایاند#بازنمایان
|
||
بازنهاد#بازنه
|
||
بازنگریست#بازنگر
|
||
بازپرسید#بازپرس
|
||
بازگذارد#بازگذار
|
||
بازگذاشت#بازگذار
|
||
بازگرداند#بازگردان
|
||
بازگردانید#بازگردان
|
||
بازگردید#بازگرد
|
||
بازگرفت#بازگیر
|
||
بازگشت#بازگرد
|
||
بازگشود#بازگشا
|
||
بازگفت#بازگو
|
||
بازیافت#بازیاب
|
||
بافت#باف
|
||
بالید#بال
|
||
باوراند#باوران
|
||
بایست#باید
|
||
بخشود#بخش
|
||
بخشود#بخشا
|
||
بخشید#بخش
|
||
بر#برخواه
|
||
برآشفت#برآشوب
|
||
برآمد#برآ
|
||
برآورد#برآور
|
||
برازید#براز
|
||
برافتاد#برافت
|
||
برافراخت#برافراز
|
||
برافراشت#برافراز
|
||
برافروخت#برافروز
|
||
برافشاند#برافشان
|
||
برافکند#برافکن
|
||
براند#بران
|
||
برانداخت#برانداز
|
||
برانگیخت#برانگیز
|
||
بربست#بربند
|
||
برتاباند#برتابان
|
||
برتابید#برتاب
|
||
برتافت#برتاب
|
||
برتنید#برتن
|
||
برجهید#برجه
|
||
برخاست#برخیز
|
||
برخورد#برخور
|
||
برد#بر
|
||
برداشت#بردار
|
||
بردمید#بردم
|
||
برزد#برزن
|
||
برشد#برشو
|
||
برشمارد#برشمار
|
||
برشمرد#برشمار
|
||
برشمرد#برشمر
|
||
برنشاند#برنشان
|
||
برنشانید#برنشان
|
||
برنشست#برنشین
|
||
برنهاد#برنه
|
||
برچید#برچین
|
||
برکرد#برکن
|
||
برکشید#برکش
|
||
برکند#برکن
|
||
برگذشت#برگذر
|
||
برگرداند#برگردان
|
||
برگردانید#برگردان
|
||
برگردید#برگرد
|
||
برگرفت#برگیر
|
||
برگزید#برگزین
|
||
برگشت#برگرد
|
||
برگشود#برگشا
|
||
برگمارد#برگمار
|
||
برگمارید#برگمار
|
||
برگماشت#برگمار
|
||
برید#بر
|
||
بست#بند
|
||
بلعید#بلع
|
||
بود#باش
|
||
بوسید#بوس
|
||
بویید#بو
|
||
بیخت#بیز
|
||
بیخت#بوز
|
||
تاباند#تابان
|
||
تابید#تاب
|
||
تاخت#تاز
|
||
تاراند#تاران
|
||
تازاند#تازان
|
||
تازید#تاز
|
||
تافت#تاب
|
||
ترادیسید#ترادیس
|
||
تراشاند#تراشان
|
||
تراشید#تراش
|
||
تراوید#تراو
|
||
ترساند#ترسان
|
||
ترسید#ترس
|
||
ترشاند#ترشان
|
||
ترشید#ترش
|
||
ترکاند#ترکان
|
||
ترکید#ترک
|
||
تفتید#تفت
|
||
تمرگید#تمرگ
|
||
تنید#تن
|
||
توانست#توان
|
||
توفید#توف
|
||
تپاند#تپان
|
||
تپید#تپ
|
||
تکاند#تکان
|
||
تکانید#تکان
|
||
جست#جه
|
||
جست#جو
|
||
جنباند#جنبان
|
||
جنبید#جنب
|
||
جنگید#جنگ
|
||
جهاند#جهان
|
||
جهید#جه
|
||
جوشاند#جوشان
|
||
جوشانید#جوشان
|
||
جوشید#جوش
|
||
جويد#جو
|
||
جوید#جو
|
||
خاراند#خاران
|
||
خارید#خار
|
||
خاست#خیز
|
||
خایید#خا
|
||
خراشاند#خراشان
|
||
خراشید#خراش
|
||
خرامید#خرام
|
||
خروشید#خروش
|
||
خرید#خر
|
||
خزید#خز
|
||
خسبید#خسب
|
||
خشکاند#خشکان
|
||
خشکید#خشک
|
||
خفت#خواب
|
||
خلید#خل
|
||
خماند#خمان
|
||
خمید#خم
|
||
خنداند#خندان
|
||
خندانید#خندان
|
||
خندید#خند
|
||
خواباند#خوابان
|
||
خوابانید#خوابان
|
||
خوابید#خواب
|
||
خواست#خواه
|
||
خواست#خیز
|
||
خواند#خوان
|
||
خوراند#خوران
|
||
خورد#خور
|
||
خیزاند#خیزان
|
||
خیساند#خیسان
|
||
داد#ده
|
||
داشت#دار
|
||
دانست#دان
|
||
در#درخواه
|
||
درآمد#درآ
|
||
درآمیخت#درآمیز
|
||
درآورد#درآور
|
||
درآویخت#درآویز
|
||
درافتاد#درافت
|
||
درافکند#درافکن
|
||
درانداخت#درانداز
|
||
درانید#دران
|
||
دربرد#دربر
|
||
دربرگرفت#دربرگیر
|
||
درخشاند#درخشان
|
||
درخشانید#درخشان
|
||
درخشید#درخش
|
||
درداد#درده
|
||
دررفت#دررو
|
||
درماند#درمان
|
||
درنمود#درنما
|
||
درنوردید#درنورد
|
||
درود#درو
|
||
دروید#درو
|
||
درکرد#درکن
|
||
درکشید#درکش
|
||
درگذشت#درگذر
|
||
درگرفت#درگیر
|
||
دریافت#دریاب
|
||
درید#در
|
||
دزدید#دزد
|
||
دمید#دم
|
||
دواند#دوان
|
||
دوخت#دوز
|
||
دوشید#دوش
|
||
دوید#دو
|
||
دید#بین
|
||
راند#ران
|
||
ربود#ربا
|
||
ربود#روب
|
||
رخشید#رخش
|
||
رساند#رسان
|
||
رسانید#رسان
|
||
رست#ره
|
||
رست#رو
|
||
رسید#رس
|
||
رشت#ریس
|
||
رفت#رو
|
||
رفت#روب
|
||
رقصاند#رقصان
|
||
رقصید#رقص
|
||
رماند#رمان
|
||
رمانید#رمان
|
||
رمید#رم
|
||
رنجاند#رنجان
|
||
رنجانید#رنجان
|
||
رنجید#رنج
|
||
رندید#رند
|
||
رهاند#رهان
|
||
رهانید#رهان
|
||
رهید#ره
|
||
روبید#روب
|
||
روفت#روب
|
||
رویاند#رویان
|
||
رویانید#رویان
|
||
رویید#رو
|
||
رویید#روی
|
||
ریخت#ریز
|
||
رید#رین
|
||
ریدن#رین
|
||
ریسید#ریس
|
||
زاد#زا
|
||
زارید#زار
|
||
زایاند#زایان
|
||
زایید#زا
|
||
زد#زن
|
||
زدود#زدا
|
||
زیست#زی
|
||
ساباند#سابان
|
||
سابید#ساب
|
||
ساخت#ساز
|
||
سایید#سا
|
||
ستاد#ستان
|
||
ستاند#ستان
|
||
سترد#ستر
|
||
ستود#ستا
|
||
ستیزید#ستیز
|
||
سراند#سران
|
||
سرایید#سرا
|
||
سرشت#سرش
|
||
سرود#سرا
|
||
سرکشید#سرکش
|
||
سرگرفت#سرگیر
|
||
سرید#سر
|
||
سزید#سز
|
||
سفت#سنب
|
||
سنجید#سنج
|
||
سوخت#سوز
|
||
سود#سا
|
||
سوزاند#سوزان
|
||
سپارد#سپار
|
||
سپرد#سپار
|
||
سپرد#سپر
|
||
سپوخت#سپوز
|
||
سگالید#سگال
|
||
شاشید#شاش
|
||
شایست#
|
||
شایست#شاید
|
||
شتاباند#شتابان
|
||
شتابید#شتاب
|
||
شتافت#شتاب
|
||
شد#شو
|
||
شست#شو
|
||
شست#شوی
|
||
شلید#شل
|
||
شمار#شمر
|
||
شمارد#شمار
|
||
شمرد#شمار
|
||
شمرد#شمر
|
||
شناخت#شناس
|
||
شناساند#شناسان
|
||
شنفت#شنو
|
||
شنید#شنو
|
||
شوتید#شوت
|
||
شوراند#شوران
|
||
شورید#شور
|
||
شکافت#شکاف
|
||
شکاند#شکان
|
||
شکاند#شکن
|
||
شکست#شکن
|
||
شکفت#شکف
|
||
طلبید#طلب
|
||
طپید#طپ
|
||
غراند#غران
|
||
غرید#غر
|
||
غلتاند#غلتان
|
||
غلتانید#غلتان
|
||
غلتید#غلت
|
||
غلطاند#غلطان
|
||
غلطانید#غلطان
|
||
غلطید#غلط
|
||
فرا#فراخواه
|
||
فراخواند#فراخوان
|
||
فراداشت#فرادار
|
||
فرارسید#فرارس
|
||
فرانمود#فرانما
|
||
فراگرفت#فراگیر
|
||
فرستاد#فرست
|
||
فرسود#فرسا
|
||
فرمود#فرما
|
||
فرهیخت#فرهیز
|
||
فرو#فروخواه
|
||
فروآمد#فروآ
|
||
فروآورد#فروآور
|
||
فروافتاد#فروافت
|
||
فروافکند#فروافکن
|
||
فروبرد#فروبر
|
||
فروبست#فروبند
|
||
فروخت#فروش
|
||
فروخفت#فروخواب
|
||
فروخورد#فروخور
|
||
فروداد#فروده
|
||
فرودوخت#فرودوز
|
||
فرورفت#فرورو
|
||
فروریخت#فروریز
|
||
فروشکست#فروشکن
|
||
فروفرستاد#فروفرست
|
||
فروماند#فرومان
|
||
فرونشاند#فرونشان
|
||
فرونشانید#فرونشان
|
||
فرونشست#فرونشین
|
||
فرونمود#فرونما
|
||
فرونهاد#فرونه
|
||
فروپاشاند#فروپاشان
|
||
فروپاشید#فروپاش
|
||
فروچکید#فروچک
|
||
فروکرد#فروکن
|
||
فروکشید#فروکش
|
||
فروکوبید#فروکوب
|
||
فروکوفت#فروکوب
|
||
فروگذارد#فروگذار
|
||
فروگذاشت#فروگذار
|
||
فروگرفت#فروگیر
|
||
فریفت#فریب
|
||
فشاند#فشان
|
||
فشرد#فشار
|
||
فشرد#فشر
|
||
فلسفید#فلسف
|
||
فهماند#فهمان
|
||
فهمید#فهم
|
||
قاپید#قاپ
|
||
قبولاند#قبول
|
||
قبولاند#قبولان
|
||
لاسید#لاس
|
||
لرزاند#لرزان
|
||
لرزید#لرز
|
||
لغزاند#لغزان
|
||
لغزید#لغز
|
||
لمباند#لمبان
|
||
لمید#لم
|
||
لنگید#لنگ
|
||
لولید#لول
|
||
لیسید#لیس
|
||
ماسید#ماس
|
||
مالاند#مالان
|
||
مالید#مال
|
||
ماند#مان
|
||
مانست#مان
|
||
مرد#میر
|
||
مویید#مو
|
||
مکید#مک
|
||
نازید#ناز
|
||
نالاند#نالان
|
||
نالید#نال
|
||
نامید#نام
|
||
نشاند#نشان
|
||
نشست#نشین
|
||
نمایاند#نما
|
||
نمایاند#نمایان
|
||
نمود#نما
|
||
نهاد#نه
|
||
نهفت#نهنب
|
||
نواخت#نواز
|
||
نوازید#نواز
|
||
نوردید#نورد
|
||
نوشاند#نوشان
|
||
نوشانید#نوشان
|
||
نوشت#نویس
|
||
نوشید#نوش
|
||
نکوهید#نکوه
|
||
نگاشت#نگار
|
||
نگرید#
|
||
نگریست#نگر
|
||
هراساند#هراسان
|
||
هراسانید#هراسان
|
||
هراسید#هراس
|
||
هشت#هل
|
||
وا#واخواه
|
||
واداشت#وادار
|
||
وارفت#وارو
|
||
وارهاند#وارهان
|
||
واماند#وامان
|
||
وانهاد#وانه
|
||
واکرد#واکن
|
||
واگذارد#واگذار
|
||
واگذاشت#واگذار
|
||
ور#ورخواه
|
||
ورآمد#ورآ
|
||
ورافتاد#ورافت
|
||
وررفت#وررو
|
||
ورزید#ورز
|
||
وزاند#وزان
|
||
وزید#وز
|
||
ویراست#ویرا
|
||
پاشاند#پاشان
|
||
پاشید#پاش
|
||
پالود#پالا
|
||
پایید#پا
|
||
پخت#پز
|
||
پذیراند#پذیران
|
||
پذیرفت#پذیر
|
||
پراند#پران
|
||
پراکند#پراکن
|
||
پرداخت#پرداز
|
||
پرستید#پرست
|
||
پرسید#پرس
|
||
پرهیخت#پرهیز
|
||
پرهیزید#پرهیز
|
||
پروراند#پروران
|
||
پرورد#پرور
|
||
پرید#پر
|
||
پسندید#پسند
|
||
پلاساند#پلاسان
|
||
پلاسید#پلاس
|
||
پلکید#پلک
|
||
پناهاند#پناهان
|
||
پناهید#پناه
|
||
پنداشت#پندار
|
||
پوساند#پوسان
|
||
پوسید#پوس
|
||
پوشاند#پوشان
|
||
پوشید#پوش
|
||
پویید#پو
|
||
پژمرد#پژمر
|
||
پژوهید#پژوه
|
||
پکید#پک
|
||
پیراست#پیرا
|
||
پیمود#پیما
|
||
پیوست#پیوند
|
||
پیچاند#پیچان
|
||
پیچانید#پیچان
|
||
پیچید#پیچ
|
||
چاپید#چاپ
|
||
چایید#چا
|
||
چراند#چران
|
||
چرانید#چران
|
||
چرباند#چربان
|
||
چربید#چرب
|
||
چرخاند#چرخان
|
||
چرخانید#چرخان
|
||
چرخید#چرخ
|
||
چروکید#چروک
|
||
چرید#چر
|
||
چزاند#چزان
|
||
چسباند#چسبان
|
||
چسبید#چسب
|
||
چسید#چس
|
||
چشاند#چشان
|
||
چشید#چش
|
||
چلاند#چلان
|
||
چلانید#چلان
|
||
چپاند#چپان
|
||
چپید#چپ
|
||
چکاند#چکان
|
||
چکید#چک
|
||
چید#چین
|
||
کاست#کاه
|
||
کاشت#کار
|
||
کاوید#کاو
|
||
کرد#کن
|
||
کشاند#کشان
|
||
کشانید#کشان
|
||
کشت#کار
|
||
کشت#کش
|
||
کشید#کش
|
||
کند#کن
|
||
کوباند#کوبان
|
||
کوبید#کوب
|
||
کوشید#کوش
|
||
کوفت#کوب
|
||
کوچانید#کوچان
|
||
کوچید#کوچ
|
||
گایید#گا
|
||
گداخت#گداز
|
||
گذارد#گذار
|
||
گذاشت#گذار
|
||
گذراند#گذران
|
||
گذشت#گذر
|
||
گرازید#گراز
|
||
گرانید#گران
|
||
گرایید#گرا
|
||
گرداند#گردان
|
||
گردانید#گردان
|
||
گردید#گرد
|
||
گرفت#گیر
|
||
گروید#گرو
|
||
گریاند#گریان
|
||
گریخت#گریز
|
||
گریزاند#گریزان
|
||
گریست#گر
|
||
گریست#گری
|
||
گزارد#گزار
|
||
گزاشت#گزار
|
||
گزید#گزین
|
||
گسارد#گسار
|
||
گستراند#گستران
|
||
گسترانید#گستران
|
||
گسترد#گستر
|
||
گسست#گسل
|
||
گسلاند#گسل
|
||
گسیخت#گسل
|
||
گشاد#گشا
|
||
گشت#گرد
|
||
گشود#گشا
|
||
گفت#گو
|
||
گمارد#گمار
|
||
گماشت#گمار
|
||
گنجاند#گنجان
|
||
گنجانید#گنجان
|
||
گنجید#گنج
|
||
گنداند#گندان
|
||
گندید#گند
|
||
گوارید#گوار
|
||
گوزید#گوز
|
||
گیراند#گیران
|
||
یازید#یاز
|
||
یافت#یاب
|
||
یونید#یون
|
||
""".strip().split()
|
||
|
||
|
||
# Below code is a modified version of HAZM package's verb conjugator,
|
||
# with soem extra verbs (Anything in hazm and not in here? compare needed!)
|
||
VERBS_EXC = {}
|
||
with_nots = lambda items: items + ["ن" + item for item in items]
|
||
simple_ends = ["م", "ی", "", "یم", "ید", "ند"]
|
||
narrative_ends = ["هام", "های", "ه", "هایم", "هاید", "هاند"]
|
||
present_ends = ["م", "ی", "د", "یم", "ید", "ند"]
|
||
|
||
# special case of '#هست':
|
||
VERBS_EXC.update({conj: "هست" for conj in ["هست" + end for end in simple_ends]})
|
||
VERBS_EXC.update({conj: "هست" for conj in ["نیست" + end for end in simple_ends]})
|
||
|
||
for verb_root in verb_roots:
|
||
conjugations = []
|
||
if "#" not in verb_root:
|
||
continue
|
||
past, present = verb_root.split("#")
|
||
|
||
if past:
|
||
past_simples = [past + end for end in simple_ends]
|
||
past_imperfects = ["می" + item for item in past_simples]
|
||
past_narratives = [past + end for end in narrative_ends]
|
||
conjugations = with_nots(past_simples + past_imperfects + past_narratives)
|
||
if present:
|
||
imperatives = ["ب" + present, "ن" + present]
|
||
if present.endswith("ا") or present in ("آ", "گو"):
|
||
present = present + "ی"
|
||
present_simples = [present + end for end in present_ends]
|
||
present_imperfects = ["می" + present + end for end in present_ends]
|
||
present_subjunctives = ["ب" + present + end for end in present_ends]
|
||
conjugations += (
|
||
with_nots(present_simples + present_imperfects)
|
||
+ present_subjunctives
|
||
+ imperatives
|
||
)
|
||
|
||
if past.startswith("آ"):
|
||
conjugations = list(
|
||
set(
|
||
map(
|
||
lambda item: item.replace("بآ", "بیا").replace("نآ", "نیا"),
|
||
conjugations,
|
||
)
|
||
)
|
||
)
|
||
|
||
VERBS_EXC.update({conj: (past,) if past else present for conj in conjugations})
|