Hi Collin,

> -    # List of characters allowed in shell identifiers.
> -    shell_id_chars: ClassVar[str] = 
> 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'
> +    # Regular expression matching module names that can be used as shell ids.
> +    shell_id_pattern: ClassVar[re.Pattern] = re.compile(r'^\w*$')

But that's not the same thing: The previous code made sure that
module names with non-ASCII characters use the MD5 hash code.
The new code does not:

>>> re.match(re.compile(r'^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_]*$'),'abcäöü')

>>> re.match(re.compile(r'^\w*$'),'abcäöü')
<re.Match object; span=(0, 6), match='abcäöü'>

If someone ever uses module names with non-ASCII characters, we do
*not* want to pass these characters into shell variable names.

Bruno




Reply via email to