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)
| File | Size | Uploaded | |
|---|---|---|---|
| eelang-0.1.5.tar.gz | 551.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|