Skip to main content

CircleCI PyPI version Maintenance

forthebadge made-with-python

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.


Copilot Statement.

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)

Source distribution for umlmodel 3.5.0
File Size Uploaded
umlmodel-3.5.0.tar.gz 24.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for umlmodel 3.5.0
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

3.5.0 This release

2 release files

3.4.3

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.1.1

2 release files

3.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page