Skip to main content

eelang

Надмножество Python 3.15 (linux x86_64): паттерн-матчинг в присваиваниях и assert, match def, пайплайны. Распространяется обычным пакетом, код пишется в .eel-файлах.

Установка

pip install eelang

Требуется CPython 3.15 (linux x86_64).

Запуск

python -m eelang script.eel

Фичи

  • assert-паттерны — assert P = e связывает и проверяет форму; провал → MatchError.

    assert Point(x, y) = get_point()
    
  • match def — паттерн-матчинг аргументов функции:

    match def area(p) -> float:
        case Point(x, y) = p:
            x * y
        else:
            0
    
  • Пайплайны — ..f(...) (значение — последним аргументом), ..match:, ..assert::

    val =
        [1, 2, 3]
        ..map(lambda x: x * x)
    

MatchError импортируется явно:

from eelang import MatchError

Как устроен

Парсер — C-расширение (eelang._parser), собранное из PEG-парсера CPython 3.15 с eelang-грамматикой. Синтаксис десахарится в стандартные узлы AST; MatchError — обычный Python-класс (ValueError) в пакете.

Требования и ограничения

  • CPython 3.15, собранный с --enable-shared (расширение резолвит внутренние символы парсера из libpython), linux x86_64.
  • Расширение привязано к внутренним заголовкам CPython 3.15.0: при импорте пакет проверяет таблицу интернированных идентификаторов и отказывается работать (с внятной ошибкой), если хост-сборка не совпадает.
  • .eel-файлы запускаются только через python -m eelang script.eel; импорт .eel-модулей из обычного .py не поддерживается.
  • Рефьютабельные паттерн-проверки используют синтетическое имя .0, которое видно в locals() (известный трейдофф десахара).

Лицензия

Код пакета (Python-слой, обёртка _parser.c, тесты) — MIT (LICENSE). Вендоренный код парсера в csrc/ — производное от CPython и распространяется под PSF License 2.0 (csrc/LICENSE.PSF).

Metadata

Release files for eelang 0.1.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eelang 0.1.5
File Size Uploaded
eelang-0.1.5.tar.gz 551.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eelang 0.1.5
File Interpreter ABI Platform
eelang-0.1.5-cp315-cp315-manylinux2014_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.17+ x86-64 Details

Total release size: 2.0 MB

Release files / eelang-0.1.5.tar.gz

Download URL eelang-0.1.5.tar.gz
Size 551.9 kB
Tags Source
SHA-256 checksum
How to use checksums
7c0422cd377845a1472939f23eee5ddea5c0d069f7c0bcb65803042f6a3d4fcd
BLAKE2b-256 checksum
How to use checksums
27cd3303fc520951b631830916538916e97d3cd35cd0ce5bf9c64949e0ba77b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release files / eelang-0.1.5-cp315-cp315-manylinux2014_x86_64.whl

Download URL eelang-0.1.5-cp315-cp315-manylinux2014_x86_64.whl
Size 1.5 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
81c75aa2c669ef829e3e600c50a8068970adf9f4bf0b7443a057fb5ef16f00d4
BLAKE2b-256 checksum
How to use checksums
2309933eb863af959d5ba7f7a94be20b3cde8aa2ca2dab037b8abbf675f0b898
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.8

Release history Release notifications | RSS feed

0.1.6

2 release files

This release

0.1.5 This release

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page