Skip to content

grongierisc/interoperability-embedded-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

822 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IoP (Interoperability On Python)

PyPI - Status PyPI PyPI - Downloads PyPI - License GitHub last commit

Welcome to Interoperability On Python (IoP), a production-stable Python-first toolkit for building on the IRIS Interoperability Framework.

Documentation can be found here. For prompt-driven workflows, see AI-assisted coding with IoP. For task-oriented examples, see the IoP cookbooks. For any application repository, install version-matched agent guidance, skills, and offline cookbooks with:

iop --install-agent-guidance

See IoP Agent Guidance And Skills for Codex, Claude Code, Gemini CLI, and direct Agent Skills installation.

Install only the portable IoP skills in the current project with the Skills CLI. The current Skills CLI requires Node.js 22.20.0 or newer:

node --version
npx skills add \
  https://github.com/grongierisc/interoperability-embedded-python/tree/master/src/iop/ai/skills \
  --skill build-iop-app \
  --skill validate-iop-app

Or make the skills available to supported agents across all your projects:

npx skills add \
  https://github.com/grongierisc/interoperability-embedded-python/tree/master/src/iop/ai/skills \
  --skill build-iop-app \
  --skill validate-iop-app \
  --global

Project-local installation is recommended when the skills must stay aligned with a project's IoP version. The global installation is convenient when you work across many IoP repositories.

Example

Here's a tiny Python-authored production:

from dataclasses import dataclass

from iop import BusinessOperation, Message, PollingBusinessService, Production, target


@dataclass
class HelloRequest(Message):
    text: str = "Hello World"


class HelloService(PollingBusinessService):
    Output = target()

    def on_poll(self):
        self.send_request_async(self.Output, HelloRequest())


class HelloOperation(BusinessOperation):
    def on_message(self, request: HelloRequest):
        self.log_info(request.text)
        return request


prod = Production("HelloWorld.Production", testing_enabled=True)
service = prod.service("HelloService", HelloService)
operation = prod.operation("HelloOperation", HelloOperation)
service.connect(HelloService.Output, operation)

PRODUCTIONS = [prod]

Installation

Install the production-stable package using pip:

pip install iris-pex-embedded-python

Getting Started

If you're new to this project, begin by reading the installation guide. Then, follow the first steps to create your first Python-authored production.

If you are using an AI coding assistant, start with AI-assisted coding with IoP. For concrete workflows, use the IoP cookbooks. For healthcare productions, also see Healthcare AI-assisted coding.

Happy coding!

Compatibility and support

IoP supports Python 3.10 through 3.14 and InterSystems IRIS 2021.2 or newer. Changes follow semantic versioning: backward-compatible features and deprecations ship in minor releases, while removals are reserved for major releases and are announced in the changelog. IRIS compatibility is continuously checked against the latest Community image; the preview image is tested nightly to identify upcoming incompatibilities.

Contributing

Create a Python 3.10 or newer virtual environment, then install and verify the development environment with:

python -m pip install -e ".[dev]"
tox

About

Hack of PEX Python but for Embedded Python

Topics

Resources

License

Code of conduct

Contributing

Stars

19 stars

Watchers

7 watching

Forks

Packages

 
 
 

Contributors