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.2
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.2.tar.gz | 548.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| eelang-0.1.2-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.2.tar.gz
| Download URL | eelang-0.1.2.tar.gz |
|---|---|
| Size | 548.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b555192fd11e4060da87bca21a1444f7c325ac15a64398e240ae1ce4f621f3b9
|
|
BLAKE2b-256 checksum How to use checksums |
9b302fe6faed63a419d92aab6fabc569c134ee7ca6ce0b679f5533874b886a7d
|
| 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.2-cp315-cp315-manylinux2014_x86_64.whl
| Download URL | eelang-0.1.2-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 |
3d2dd8d3302c8b6463f250a3d8f9f58e3eca5e066bef395a4c983fa5c3f2961b
|
|
BLAKE2b-256 checksum How to use checksums |
c4197355973f3af156afe64c8e8758deb086d88d5da9a7210be1aab96b7f53ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.8
|