Skip to main content

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 (см. ссылки).

Установка

python -m venv .venv
.venv/bin/python -m pip install slice_to_py_dist

Пример

Для примера будет использоваться каталог tests/funnycat/data, который содержит:

  • подкаталог slice со Slice файлами,
  • конфигурационный файл config.toml.

Упаковка Slice файлов в sdist пакет:

datadir=tests/funnycat/data
.venv/bin/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

slice_to_py_dist-0.0.1.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

slice_to_py_dist-0.0.1-py3-none-any.whl (8.5 kB view details)

Uploaded Python 3

File details

Details for the file slice_to_py_dist-0.0.1.tar.gz.

File metadata

  • Download URL: slice_to_py_dist-0.0.1.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

Hashes for slice_to_py_dist-0.0.1.tar.gz
Algorithm Hash digest
SHA256 b0ae41a3c2d0b5d685cb9a0aba5c19fad50910208186264450b0d8e87a200418
MD5 1034679fd686ea24f0bceb0ba59f5de9
BLAKE2b-256 368a3fb6e140610914c3ce05323a2abd69f5e592776ced2e3dd0f6c3ce808b60

See more details on using hashes here.

File details

Details for the file slice_to_py_dist-0.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for slice_to_py_dist-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9f64eafe6c8344bb159b8c96b1fc9f67080942f825f07e0e08110ff9659fd160
MD5 39413f69e66ca47a338f503d39053a8b
BLAKE2b-256 c551279a386e971a737207f0445a1d084c1107b74280542ea0081d95b7fbabc8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page