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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

umlmodel-3.5.0.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

umlmodel-3.5.0-py3-none-any.whl (30.6 kB view details)

Uploaded Python 3

File details

Details for the file umlmodel-3.5.0.tar.gz.

File metadata

  • Download URL: umlmodel-3.5.0.tar.gz
  • Upload date:
  • Size: 24.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for umlmodel-3.5.0.tar.gz
Algorithm Hash digest
SHA256 8db3b3c6a5e76964e825a216de09f6009179fb0380c73a83cb4e48d7b9462614
MD5 c8048afb6961c9d6b0ab24bdc4692fd8
BLAKE2b-256 a7f87c7ef3f22d0053cbbf5a4d2fac9e0fccbe5ba9c306c6675c214082f7fb79

See more details on using hashes here.

Provenance

The following attestation bundles were made for umlmodel-3.5.0.tar.gz:

Publisher: python-publish.yml on hasii2011/umlmodel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file umlmodel-3.5.0-py3-none-any.whl.

File metadata

  • Download URL: umlmodel-3.5.0-py3-none-any.whl
  • Upload date:
  • Size: 30.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for umlmodel-3.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d51b9876aa1b3bb5b437914b63d1cdd25639e5bef675560309914b98cb90226b
MD5 bbdb7cdaa0a4fdeca59fcedfb91d2f2d
BLAKE2b-256 ecd8b0af0a2360ff50cef78de15355de87e56b4416c4369ced40a012504b5875

See more details on using hashes here.

Provenance

The following attestation bundles were made for umlmodel-3.5.0-py3-none-any.whl:

Publisher: python-publish.yml on hasii2011/umlmodel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

3.5.0 This release

2 files

3.4.3

2 files

3.4.1

2 files

3.4.0

2 files

3.3.0

2 files

3.1.1

2 files

3.0.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page