Metadata-Version: 2.5
Name: pyipxact-de
Version: 0.4.2
Summary: Accellera IP-XACT DE (Design Environment)
Author-email: Amal Khailtash <amal.khailtash@gmail.com>
License: MIT License
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Environment :: X11 Applications :: Qt
Classifier: Framework :: FastAPI
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering :: Electronic Design Automation (EDA)
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Utilities
Requires-Python: >=3.14
Requires-Dist: loguru>=0.7.3
Requires-Dist: mcp[cli]<2,>=1.28.0
Requires-Dist: objbrowser>=1.3.1
Requires-Dist: rich>=14.1.0
Requires-Dist: xmlschema>=4.2.0
Requires-Dist: xsdata-pydantic[cli,lxml,soap]>=24.5
Requires-Dist: xsdata[cli,lxml,soap]>=24.11
Provides-Extra: all
Requires-Dist: fastapi>=0.116.1; extra == 'all'
Requires-Dist: pydantic>=2.11.7; extra == 'all'
Requires-Dist: pyqt5>=5.15.11; extra == 'all'
Requires-Dist: qtawesome>=1.4.0; extra == 'all'
Requires-Dist: qtpy>=2.4.3; extra == 'all'
Provides-Extra: gui
Requires-Dist: pyqt5>=5.15.11; extra == 'gui'
Requires-Dist: qtawesome>=1.4.0; extra == 'gui'
Requires-Dist: qtpy>=2.4.3; extra == 'gui'
Provides-Extra: web
Requires-Dist: fastapi>=0.116.1; extra == 'web'
Requires-Dist: pydantic>=2.11.7; extra == 'web'
Description-Content-Type: text/markdown

# Accellera SPIRIT/IP-XACT DE (Design Environment) and Python Bindings

<p align="center">
   <img
      src="https://github.com/amal-khailtash/pyipxact-de/raw/refs/heads/main/docs/_static/logo-256x256.svg"
      alt="IP-XACT DE" width="256"/>
</p>

| Category  | Status                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| CI/CD     | [![01. PR title](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/pr-title.yml/badge.svg)](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/pr-title.yml) [![02. CI](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/ci.yml/badge.svg)](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/ci.yml) [![03. Release Please](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/release-please.yml/badge.svg)](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/release-please.yml) [![04. Publish](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/publish.yml/badge.svg)](https://github.com/amal-khailtash/pyipxact-de/actions/workflows/publish.yml) |
| Project   | [![GitHub](https://img.shields.io/badge/pyipxact--de-29b6f6?logo=github&labelColor=0277bd)](https://github.com/amal-khailtash/pyipxact-de) [![PyPI](https://img.shields.io/pypi/v/pyipxact-de?logo=pypi&logoColor=FBE072&cacheSeconds=300)](https://pypi.org/project/pyipxact-de/) [![GitHub tag](https://img.shields.io/github/v/tag/amal-khailtash/pyipxact-de?logo=github&label=version)](https://github.com/amal-khailtash/pyipxact-de/tags)                                                                                                                                                                                                                                                                                                            |
| Docs      | [![Read the Docs](https://readthedocs.org/projects/pyipxact-de/badge/?version=latest)](https://pyipxact-de.readthedocs.io/en/latest/)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Meta      | [![License](https://img.shields.io/github/license/amal-khailtash/pyipxact-de)](https://github.com/amal-khailtash/pyipxact-de/blob/main/LICENSE) [![Stars](https://img.shields.io/github/stars/amal-khailtash/pyipxact-de)](https://github.com/amal-khailtash/pyipxact-de/stargazers) [![Forks](https://img.shields.io/github/forks/amal-khailtash/pyipxact-de)](https://github.com/amal-khailtash/pyipxact-de/forks) [![Contributors](https://img.shields.io/github/contributors/amal-khailtash/pyipxact-de)](https://github.com/amal-khailtash/pyipxact-de/graphs/contributors)                                                                                                                                                                             |
| Standards | [![Python](https://img.shields.io/badge/python-3.14-blue?logo=python)](https://www.python.org/) [![SemVer](https://img.shields.io/badge/SemVer-2.0.0-333333?logo=semver)](https://semver.org/) [![Keep a Changelog](<https://img.shields.io/badge/Keep%20a%20Changelog-1.1.0-0c7fb0?logo=keepachangelog&logoColor=white>)](https://keepachangelog.com/en/1.1.0/) [![Release Please](<https://img.shields.io/badge/Release%20Please-v4-blue?logo=github&logoColor=white>)](https://github.com/googleapis/release-please-action/tree/v4)                                                                                                                                                                                                                       |

`pyipxact-de` is a Python-based Design Environment and bindings for Accellera SPIRIT/IP-XACT. It targets SPIRIT v1.x and
IP-XACT 1685-2009/2014/2022, enabling parsing, validation, transformation, and programmatic manipulation of IP-XACT
artifacts (components, buses, designs, memory maps).

This project began as my idea and was initially hand-coded. Later development adopted AI-assisted "vibe
coding" to complete features faster.

Key features:

- Generated, schema-accurate models via [xsData](https://github.com/tefra/xsdata) (initial version used
  [PyXB](https://pyxb.sourceforge.net/) ) under `org.accellera.*`
- High-level APIs, CLI tools, and TGI helpers for common workflows (identify, validate, convert, , ...).
- Modern Python 3.14 tooling and type-annotated, docstring-rich codebase.

See the [documentation](https://pyipxact-de.readthedocs.io/en/latest/) for detailed guides, examples,
and API references.

## TODO

- [ ] GUI and web front ends for interactive exploration.

## Installation

### Standard Installation

```bash
pip install pyipxact-de[cli,gui,web]
```

### MCP Server Installation

The package includes an MCP (Model Context Protocol) server for IP-XACT validation that can be used with VS Code and
other MCP-compatible clients.

#### Global Installation with uv

```bash
uv tool install pyipxact-de
```

**Note**: The package name on PyPI is `pyipxact-de`, but it provides the `ipxact-de-mcp` command.

#### Configuration for VS Code

Add the following to your VS Code MCP configuration (`~/.config/Code/User/mcp.json`):

```json
{
  "servers": {
    "ipxact-de": {
      "command": "ipxact-de-mcp",
      "args": [],
      "env": {
        "PYTHONUNBUFFERED": "1"
      },
      "restart": "on-failure",
      "timeoutMs": 30000
    }
  }
}
```

### Alternative MCP Installation

You can also install in your current environment:

```bash
# Using uv
uv add pyipxact-de

# Using pip
pip install pyipxact-de
```

Then reference the full path to the executable in your MCP configuration:

```json
{
  "servers": {
    "ipxact-de": {
      "command": "/path/to/your/venv/bin/ipxact-de-mcp",
      "args": [],
      "cwd": "/path/to/your/project",
      "env": {
        "PYTHONUNBUFFERED": "1"
      },
      "restart": "on-failure",
      "timeoutMs": 30000
    }
  }
}
```

### Available MCP Tools

The MCP server provides the following tools:

- `validate_xml`: Validate IP-XACT XML files against Accellera schemas

## Contributing

TODO

## Project Structure

Python bindings for Accellera Spirit and Accellera versions are generated under `org.accellera.*` namespace.

```text
src/
├── amal
│   ├── eda
│   │   └── ipxact_de
│   │       ├── cli
│   │       ├── gui
│   │       │   └── ui
│   │       │       └── icons
│   │       ├── tgi
│   │       │   └── ipxact
│   │       │       └── v1685_2022
│   │       └── web
│   └── utilities
└── org
    └── accellera
        ├── ipxact
        │   ├── v1685_2014
        │   └── v1685_2022
        │       ├── tgi
        │       └── ve
        ├── spirit
        │   ├── v1_0
        │   ├── v1_1
        │   ├── v1_2
        │   ├── v1_4
        │   │   └── tgi
        │   ├── v1_5
        │   │   └── tgi
        │   └── v1685_2009
        │       ├── tgi
        │       └── ve
        │           ├── ams
        │           ├── core
        │           ├── pdp
        │           └── power
        └── xsl
```
