An option for inspect.signature to hide "internal use" arguments?

In the PEP 8, the _single_leading_underscore mentioned as a weak “internal use” indicator. Despite the fact it is only a naming convention there is some support for that in the language/stdlib, e.g. in star imports.

I think this could be extended to function/method signatures, e.g. with a “private” option for the inspect.signature: for private=False - underscore-prefixed keyword arguments (with defaults) will be excluded from the returned signature.

Here is an example where “internal use” option from the stdlib was completely misused: Improve support for unnormalized Fractions

Maybe instead add a match parameter that takes in a regex (or str of a regex). That way if someone wants to fully customize which params come back, they can do that.

For example: maybe if a param name is changing, they can drop the old name from the signature call.

To just hide private, one could then pass "^_.*"