Normalize class string representation by escaping <class '...'> #557
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.



Hi.
This addresses issue #500.
This issue was opened in July, and I suspect the whitespace issue mentioned by the issue author has already been resolved. When I ran the test code, it was already returning a single space template for plotting (and the plots were plotted without errors).
Another point is the escaping of "<>".
I added an
_escapefunction that uses regex to remove<class 'str'>from strings, leaving onlystr.The result is this output (I marked the changes with
<---):classDiagram direction LR namespace Scope.REQUEST { class factory3["📥 Container"]{ } class factory4["🏭 User"]{ User() int Callable[[str], str] <--- } class factory5["🏭 Callable__str___str_"]{ <--- MyProvider.make_stringify() } class factory6["📥 int"]{ } }This line
Callable__str___str_is escaped using another [escape function](https://github.com/reagento/dishka/blob/develop/src/dishka/plotter/mermaid.py#L45C1-L46C47). If we hypothetically skip this function, it would be uniform likeCallable[[str], str].So I have these questions:
Why is it escaped this way specifically? (
Callable__str___str_- here it's unclear what is an argument and what is a return value)Based on the answer to the first question, can we get by with only the function proposed in this PR?