FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
cpython/Tools/scripts/find-uname.py at pythoncore_fix · ammaraskar/cpython · GitHub
ammaraskar
cpython
Repository navigation
Code
Pull requests
6
(6)
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
cpython
/
Tools
/
scripts
/
find-uname.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
executable file
·
40 lines (35 loc) · 1.18 KB
Breadcrumbs
cpython
/
Tools
/
scripts
/
find-uname.py
Copy path
File metadata and controls
executable file
·
40 lines (35 loc) · 1.18 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
"""
For each argument on the command line, look for it in the set of all Unicode
names. Arguments are treated as case-insensitive regular expressions, e.g.:
% find-uname 'small letter a$' 'horizontal line'
*** small letter a$ matches ***
LATIN SMALL LETTER A (97)
COMBINING LATIN SMALL LETTER A (867)
CYRILLIC SMALL LETTER A (1072)
PARENTHESIZED LATIN SMALL LETTER A (9372)
CIRCLED LATIN SMALL LETTER A (9424)
FULLWIDTH LATIN SMALL LETTER A (65345)
*** horizontal line matches ***
HORIZONTAL LINE EXTENSION (9135)
"""
import
unicodedata
import
sys
import
re
def
main
(
args
):
unicode_names
=
[]
for
ix
in
range
(
sys
.
maxunicode
+
1
):
try
:
unicode_names
.
append
((
ix
,
unicodedata
.
name
(
chr
(
ix
))))
except
ValueError
:
# no name for the character
pass
for
arg
in
args
:
pat
=
re
.
compile
(
arg
,
re
.
I
)
matches
=
[(
y
,
x
)
for
(
x
,
y
)
in
unicode_names
if
pat
.
search
(
y
)
is
not
None
]
if
matches
:
print
(
"***"
,
arg
,
"matches"
,
"***"
)
for
match
in
matches
:
print
(
"%s (%d)"
%
match
)
if
__name__
==
"__main__"
:
main
(
sys
.
argv
[
1
:])
Back
|
FazBrowse Home
|
New Git URL