Introduction
This project provides a Python data model for creating and manipulating UML diagrams. It is the foundational data model for the UML Shapes module.
Installation
It is recommended to use a virtual environment for installing Python packages.
# Create and activate a virtual environment
python -m venv venv
source venv/bin/activate
# Install the package
pip install umlmodel
Usage
Programmatic Usage
The umlmodel library allows you to create UML elements like classes, interfaces, and use cases programmatically. Here are some examples:
Creating a Class
To create a simple class, instantiate the Class object:
from umlmodel.Class import Class
modelClass: Class = Class(name='MyClass')
print(modelClass.name)
Adding Fields to a Class
You can add fields (attributes) to a class. Fields have a name, type, visibility, and an optional default value.
from umlmodel.Class import Class
from umlmodel.Field import Field
from umlmodel.FieldType import FieldType
from umlmodel.enumerations.Visibility import Visibility
# Create a class
modelClass: Class = Class(name='MyClass')
# Create fields
field1: Field = Field(name='my_string',
type=FieldType('str'),
visibility=Visibility.PUBLIC,
defaultValue='"hello"')
field2: Field = Field(name='_my_private_int',
type=FieldType('int'),
visibility=Visibility.PRIVATE)
# Add fields to the class
modelClass.fields.append(field1)
modelClass.fields.append(field2)
# The string representation of a field is useful
print(field1)
print(field2)
Adding Methods to a Class
Methods can be added to a class, including parameters and return types.
from umlmodel.Class import Class
from umlmodel.Method import Method
from umlmodel.Parameter import Parameter
from umlmodel.ParameterType import ParameterType
from umlmodel.ReturnType import ReturnType
from umlmodel.enumerations.Visibility import Visibility
# Create a class
modelClass: Class = Class(name='MyClass')
# Create a method
method: Method = Method(name='my_method', visibility=Visibility.PUBLIC)
# Add a parameter
parameter: Parameter = Parameter(name='value', type=ParameterType('int'), defaultValue='0')
method.addParameter(parameter)
# Set a return type
method.returnType = ReturnType('bool')
# Add the method to the class
modelClass.methods.append(method)
# Print the method signature
print(method.methodWithParameters())
Written by Humberto A. Sanchez II (C) 2026
Note
For all kinds of problems, requests, enhancements, bug reports, etc., please drop me an e-mail.
Metadata
Release files for umlmodel 3.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| umlmodel-3.5.0.tar.gz | 24.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| umlmodel-3.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 55.5 kB
Release files / umlmodel-3.5.0.tar.gz
| Download URL | umlmodel-3.5.0.tar.gz |
|---|---|
| Size | 24.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8db3b3c6a5e76964e825a216de09f6009179fb0380c73a83cb4e48d7b9462614
|
|
BLAKE2b-256 checksum How to use checksums |
a7f87c7ef3f22d0053cbbf5a4d2fac9e0fccbe5ba9c306c6675c214082f7fb79
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency logRelease files / umlmodel-3.5.0-py3-none-any.whl
| Download URL | umlmodel-3.5.0-py3-none-any.whl |
|---|---|
| Size | 30.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d51b9876aa1b3bb5b437914b63d1cdd25639e5bef675560309914b98cb90226b
|
|
BLAKE2b-256 checksum How to use checksums |
ecd8b0af0a2360ff50cef78de15355de87e56b4416c4369ced40a012504b5875
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.
Transparency log