Put a set of ZeroC/ICE slice files (.ice) into python distribution package.
Project description
slice_to_py_dist: упаковка Slice файлов (ZeroC/ICE) в распространяемый python-пакет
Описание
Slice является языком описания интерфейсов сетевого взаимодействия для фреймворка ZeroC/ICE
(далее ICE). Для того, чтобы приложения могли взаимодействовать между собой посредством
ICE, Slice файлы (.ice
) должны быть скомпилированы в исходные файлы, обеспечивающие реализацию
описанных интерфейсов на одном из языков программирования, поддерживаемых ICE (например, в .py
файлы для языка Python).
Данный проект slice_to_py_dist
предназначен для упаковки набора Slice файлов в распространяемый
python-пакет (sdist), который может быть, например, загружен на pypi, или распространяться другим
способом. Впоследствии, на этапе установки sdist-пакета в целевом python-окружении эти .ice
файлы
будут скомпилированы в .py
файлы (реализации интерфейсов).
Компиляция выполняется с помощью компилятора slice2py
(из состава pypi-пакета zeroc-ice
).
При этом будут созданы импортируемые python-пакеты (такие, которые можно указывать в команде import),
соответствующие модулям верхнего уровня в Slice описаниях. Эти импортируемые python-пакеты и будут
установлены в целевом python-окружении.
Запуск компиляции Slice файлов на этапе установки sdist-пакета производится из специализированного бэкенда сборки (build-backend), который добавляется в sdist-пакет при его формировании. Бэкенд сборки использует технологию in-tree backend (см. ссылки).
Пример
Для примера будет использоваться каталог tests/funnycat/data
, который содержит:
- подкаталог
slice
со Slice файлами, - конфигурационный файл
config.toml
.
Установка slice_to_py_dist
и запуск для упаковки Slice файлов в sdist пакет:
$ python3 -m venv .venv
$ source .venv/bin/activate
(.venv) $ pip install slice_to_py_dist
(.venv) $ datadir=tests/funnycat/data
(.venv) $ python -m slice_to_py_dist -c $datadir/config.toml --slice-source-dir $datadir/slice
(Опции, указанные в конфигурационном файле, могут быть указаны и в командной строке. И наоборот,
опция --slice-source-dir
также может быть указана в конфигурационном файле. Для разбора опций
используется pypi-пакет configargparse).
После выполнения команды в текущем каталоге должен появиться sdist пакет, например
funnycat-0.0.2.tar.gz
.
При установке sdist пакета в целевом python-окружении выполняется компиляция Slice файлов и появляются следующие импортируемые python-пакеты:
FunnyCat
FunnyCatSupport
funnycat_gen
funnycat_slice
Пакеты FunnyCat
и FunnyCatSupport
соответствуют Slice модулям верхнего уровня (см. Slice файлы).
Эти пакеты используются в приложениях для организации между ними сетевого взаимодействия в
соответствии с разработанными Slice интерфейсами:
from FunnyCat.Main import CatPrx
...
Внутри эти пакеты для своей работы используют пакет funnycat_gen
.
Пакет funnycat_gen
содержит фактические реализации Slice интерфейсов, сгенерированные компилятором
slice2py
. Имя пакета формируется в соответствии с директивами python:pkgdir
(см. Slice файлы).
Этот пакет не должен напрямую использоваться приложениями.
Пакет funnycat_slice
является вспомогательным, справочным. Он содержит исходные Slice файлы на тот
случай, если в целевом python-окружении возникнет необходимость в их просмотре/анализе. Имя пакета
формируется в соответствии с опцией slice-storage-package
(см. файл config.toml
).
Разработка
poetry run black ./slice_to_py_dist/ ./tests/
poetry run pylint ./slice_to_py_dist/ ./tests/
poetry run pytest ./tests/
poetry version ...
poetry build
poetry publish
Ссылки
ICE и Slice:
Сборка распространяемых python-пакетов:
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file slice_to_py_dist-0.0.3.tar.gz
.
File metadata
- Download URL: slice_to_py_dist-0.0.3.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.11.2 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2bda73e0c42a8f20170a62349818cd59c8a774c4a750b07a08c96d73fdd0666d |
|
MD5 | 6459dd2cd86d284a4e58caf4eaa7d73d |
|
BLAKE2b-256 | 48fc4a185ab294eaa1d1a2f6ed758210b5e3684231ec1eb72f5c856235699c0b |
File details
Details for the file slice_to_py_dist-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: slice_to_py_dist-0.0.3-py3-none-any.whl
- Upload date:
- Size: 8.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.4.0 CPython/3.11.2 Windows/10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f0a0e199bd4e09dc002aecc7207e4b85aa070f63e6fe5784adb2f55bac8a07b |
|
MD5 | 0fdea27a2204a5463914a83349423935 |
|
BLAKE2b-256 | b642dd59e4014ea0861a5db7abdc4cf90cf98ca103b8d74787b630dbbf0b8033 |