Skip to content

Mermaid printer renders double underscores as bold formatting instead of literal underscores #10402

@Julfried

Description

@Julfried

The Mermaid printer in pyreverse incorrectly renders Python dunder methods and attributes. Double underscores (__) are output directly to Mermaid, which interprets them as Markdown bold formatting (**text**) instead of literal underscores.

This can be observed in the functional test files

The file contains entries like:

class P { name : str __init__(name: str) } class SpecialAttr { __x__ __init__() } 

When viewed in a Mermaid renderer, __init__ and __x__ display as bold text instead of showing the literal underscores.

Command used:

pyreverse -o mmd --filter-mode=ALL tests/pyreverse/functional/class_diagrams/aggregation_filtering/all.py

Pylint output:
The generated .mmd file contains unescaped double underscores that render incorrectly in Mermaid viewers.

Expected behavior:
Double underscores in method and attribute names should render as literal underscores in Mermaid diagrams, not as bold formatting.

Pylint version:

pylint 4.0.0-dev0 astroid 4.0.0a0 Python 3.13.2 (main, Feb 12 2025, 14:49:53) [MSC v.1942 64 bit (AMD64)] 

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions