Metadata-Version: 2.3
Name: umlars_translator
Version: 0.0.6
Summary: UML representation and analysis system - translation service
License: MIT
Keywords: UML,deserializer,serializer
Author: Filip Pawłowski
Author-email: filip.pawlowski001@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Documentation
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development
Requires-Dist: aio-pika (>=9.4.2,<10.0.0)
Requires-Dist: aiohttp (>=3.9.5,<4.0.0)
Requires-Dist: fastapi (>=0.111.1,<0.112.0)
Requires-Dist: kink (>=0.8.0,<0.9.0)
Requires-Dist: motor (>=3.5.1,<4.0.0)
Requires-Dist: pydantic (>=2.7.4,<3.0.0)
Requires-Dist: uvicorn[standard] (>=0.30.1,<0.31.0)
Requires-Dist: watchfiles (==0.21.0)
Project-URL: Backend, https://github.com/UMLI-Organization/umlars-backend
Project-URL: Issues, https://github.com/UMLI-Organization/umlars-translator/issues
Project-URL: Repository, https://github.com/UMLI-Organization/umlars-translator
Description-Content-Type: text/markdown

## About

The aim of UMLARS Translator project is to enable simple interaction with UML diagrams using Python code.
It allows manual translation between various XMI or JSON formats of UML model representation and modification using Python methods.

Reads XMI files data using built-in xml package and builds from them internal OOP representation of MOF-based objects.
Currently supports Enterprise Architect XMI 2.1, Eclipse Papyrus XMI 2.1 and StarUML MDJ. Compliant with OMG specification.

The main motivation behind this project is to provide a unification framework between various incosistent formats implemented by MDE tools vendors.
It offers a convinient way to modify UML Diagrams using scripts written in
high-level programming languages rather than manually interact with them using graphical editors.

## Requirements

Python 3.10+

## Usage
1. Install: **pip install umlars_translator**
2. Run: **python -m umlars_translator** \<name of local files to translate\>

## Dev Usage

- **make setup**: installs all dependencies
- **make test**: runs pytest tests
- **make tox-test**: runs tox tests
- **make docs**: serves documentation at localhost
- **make docs-build**: builds docs
- **make export**: exports dependencies to requirements.txt
- **make publish**: - publishes the package to PyPI
- **make publish-test**: - publishes the package to Test PyPI
- **make clean**: - cleans working directory

## Informations

Published as Python package to test PyPi.
Documented using mkdocs.
Tested on multiple Python versions using tox.


## Run from clone
1. Install poetry (e.g. run **pip install -r requirements.txt**)
1. Run **make setup**
4. Run **poetry run python3 -m umlars_translator** \<name of local files to translate\>


## Deployment as microservice

Setup:
1. Install docker

To start:
1. Run **docker compose build**
2. Run **docker compose up**

To restart:
1. Run **docker compose down --volumes**
2. Run **docker compose up**


## Running tests
1. Run **make tox-test**

## License
This project is licensed under the terms of the MIT license.


## Troubleshooting
1. Failed **make setup** with __PEP517 build of a dependency failed__:
    * pyenv install 3.11.9 # or higher
    * pyenv local 3.11.9
    * poetry env use 3.11
    * poetry lock --no-update
    * make setup

