Draw UML diagrams in various formats
Project description
The documentation is here.
Sample PDF Generation Snippets
Create a basic class
diagram: PdfDiagram = PdfDiagram(fileName='basicClass.pdf', dpi=75)
classDef: ClassDefinition = ClassDefinition(name='BasicClass', size=Size(width=100, height=100))
diagram.drawClass(classDef)
diagram.write()
Create a class with a method
diagram: PdfDiagram = PdfDiagram(fileName=f'Test-BasicMethod.pdf', dpi=75)
position: Position = Position(107, 30)
size: Size = Size(width=266, height=100)
car: ClassDefinition = ClassDefinition(name='Car', position=position, size=size)
initMethodDef: MethodDefinition = MethodDefinition(name='__init__', visibility=DefinitionType.Public)
initParam: ParameterDefinition = ParameterDefinition(name='make', parameterType='str', defaultValue='')
initMethodDef.parameters = [initParam]
car.methods = [initMethodDef]
diagram.drawClass(car)
diagram.write()
Create a class with some fields
fileName: str = f'Test-BasicFields.pdf'
diagram: PdfDiagram = PdfDiagram(fileName=fileName, dpi=75)
fieldsTestClass: ClassDefinition = ClassDefinition(name='FieldsTestClass', position=Position(226, 102), size=Size(height=156, width=230))
fieldsTestClass.fields = self._buildFields()
initMethodDef: MethodDefinition = MethodDefinition(name='__init__', visibility=DefinitionType.Public)
fieldsTestClass.methods = [initMethodDef]
diagram.drawClass(classDefinition=fieldsTestClass)
diagram.write()
Create inheritance diagram
diagram: PdfDiagram = PdfDiagram(fileName='MinimalInheritance.pdf', dpi=75)
cat: ClassDefinition = ClassDefinition(name='Gato', position=Position(536, 19), size=Size(height=74, width=113))
opie: ClassDefinition = ClassDefinition(name='Opie', position=Position(495, 208), size=Size(width=216, height=87))
diagram.drawClass(classDefinition=cat)
diagram.drawClass(classDefinition=opie)
linePositions: LinePositions = [Position(600, 208), Position(600, 93)]
opieToCat: UmlLineDefinition = UmlLineDefinition(lineType=LineType.Inheritance, linePositions=linePositions)
diagram.drawUmlLine(lineDefinition=opieToCat)
diagram.write()
Sample Image Snippets
Create a basic .png class
diagram: ImageDiagram = ImageDiagram(fileName='BasicClass.png')
classDef: ClassDefinition = ClassDefinition(name=TestDiagramParent.BASE_TEST_CLASS_NAME,
size=Size(width=266, height=100),
position=Position(x=107, y=30)
)
diagram.drawClass(classDef)
diagram.write()
Create a basic .png class with fields
fileName: str = 'Test-WithFields.png'
diagram: ImageDiagram = ImageDiagram(fileName=fileName)
fieldsTestClass: ClassDefinition = ClassDefinition(name='FieldsTestClass',
position=Position(226, 102),
size=Size(height=156, width=230))
fieldsTestClass.fields = self._buildFields()
initMethodDef: MethodDefinition = MethodDefinition(name='__init__', visibility=DefinitionType.Public)
fieldsTestClass.methods = [initMethodDef]
diagram.drawClass(classDefinition=fieldsTestClass)
diagram.write()
I am concerned about GitHub's Copilot project
I urge you to read about the Give up GitHub campaign from the Software Freedom Conservancy.
While I do not advocate for all the issues listed there I do not like that a company like Microsoft may profit from open source projects.
I continue to use GitHub because it offers the services I need for free. But, I continue to monitor their terms of service.
Any use of this project's code by GitHub Copilot, past or present, is done without my permission. I do not consent to GitHub's use of this project's code in Copilot.
A repository owner may opt out of Copilot by changing Settings --> GitHub Copilot.
I have done so.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyumldiagrams-2.30.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e997fa8a5d5f1a9eaca10ae562f4c484d87a065b6ea0adf9a603b98d9992a15b |
|
MD5 | 03cfc94f1daaadfe5b897126f5674cb8 |
|
BLAKE2b-256 | 933144c83a2504a46ef7dcd8c68c0e9ece4734ef79c9486eebc15273ea770178 |