Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for unicode identifiers in ?, ?? #12208

Merged
merged 1 commit into from Mar 28, 2020
Merged

support for unicode identifiers in ?, ?? #12208

merged 1 commit into from Mar 28, 2020

Conversation

mwageringel
Copy link
Contributor

@mwageringel mwageringel commented Mar 27, 2020

This rewrites some of the regular expressions that are used to match Python identifiers, so that they are unicode compatible. In Python 3, identifiers can contain unicode characters as long as the first character is not numeric.

Examples for the changes:

• inputtransformer:

In [1]: π = 3.14
In [2]: π.is_integer?
Object `is_integer` not found.

• namespace:

π.is_integ*?

or

In [1]: %psearch π.is_integ
Python identifiers can only contain ascii characters.

• prefilter:

%autocall 1
φ = float
get_ipython().prefilter("φ 3")  # should be 'φ(3)', but returns 'φ 3'

• completerlib:

If there is a file e.g. named π.py in the current directory, then

import IPython
IPython.core.completerlib.module_list('.')  # should contain module 'π'

This rewrites some of the regular expressions that are used to match
Python identifiers, so that they are unicode compatible. In Python 3,
identifiers can contain unicode characters as long as the first
character is not numeric.

Examples for the changes:

• inputtransformer:

```
In [1]: π = 3.14
In [2]: π.is_integer?
Object `is_integer` not found.
```

----------
• namespace:

```
π.is_integ*?
```
or
```
In [1]: %psearch π.is_integ
Python identifiers can only contain ascii characters.
```

----------
• prefilter:

```
%autocall 1
φ = float
get_ipython().prefilter("φ 3")  # should be 'φ(3)', but returns 'φ 3'
```

----------
• completerlib:

If there is a file e.g. named `π.py` in the current directory, then

```
import IPython
IPython.core.completerlib.module_list('.')  # should contain module 'π'
```
@Carreau Carreau added this to the 7.14 milestone Mar 28, 2020
@Carreau
Copy link
Member

Carreau commented Mar 28, 2020

Oh ! Nice catch ! Thanks !

@Carreau Carreau merged commit 4b3670e into ipython:master Mar 28, 2020
2 checks passed
meeseeksmachine pushed a commit to meeseeksmachine/ipython that referenced this issue Mar 28, 2020
Carreau added a commit that referenced this issue Mar 29, 2020
…208-on-7.x

Backport PR #12208 on branch 7.x (support for unicode identifiers)
@Carreau Carreau changed the title support for unicode identifiers support for unicode identifiers in ?, ?? Apr 19, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants