Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
news
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Sartika Aritonang
news
Commits
b73c5cd4
Commit
b73c5cd4
authored
May 29, 2020
by
Sartika Aritonang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Upload New File
parent
1cbe804f
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
118 additions
and
0 deletions
+118
-0
codec.py
stbi/Lib/site-packages/pip/_vendor/idna/codec.py
+118
-0
No files found.
stbi/Lib/site-packages/pip/_vendor/idna/codec.py
0 → 100644
View file @
b73c5cd4
from
.core
import
encode
,
decode
,
alabel
,
ulabel
,
IDNAError
import
codecs
import
re
_unicode_dots_re
=
re
.
compile
(
u'[
\u002e\u3002\uff0e\uff61
]'
)
class
Codec
(
codecs
.
Codec
):
def
encode
(
self
,
data
,
errors
=
'strict'
):
if
errors
!=
'strict'
:
raise
IDNAError
(
"Unsupported error handling
\"
{0}
\"
"
.
format
(
errors
))
if
not
data
:
return
""
,
0
return
encode
(
data
),
len
(
data
)
def
decode
(
self
,
data
,
errors
=
'strict'
):
if
errors
!=
'strict'
:
raise
IDNAError
(
"Unsupported error handling
\"
{0}
\"
"
.
format
(
errors
))
if
not
data
:
return
u""
,
0
return
decode
(
data
),
len
(
data
)
class
IncrementalEncoder
(
codecs
.
BufferedIncrementalEncoder
):
def
_buffer_encode
(
self
,
data
,
errors
,
final
):
if
errors
!=
'strict'
:
raise
IDNAError
(
"Unsupported error handling
\"
{0}
\"
"
.
format
(
errors
))
if
not
data
:
return
(
""
,
0
)
labels
=
_unicode_dots_re
.
split
(
data
)
trailing_dot
=
u''
if
labels
:
if
not
labels
[
-
1
]:
trailing_dot
=
'.'
del
labels
[
-
1
]
elif
not
final
:
# Keep potentially unfinished label until the next call
del
labels
[
-
1
]
if
labels
:
trailing_dot
=
'.'
result
=
[]
size
=
0
for
label
in
labels
:
result
.
append
(
alabel
(
label
))
if
size
:
size
+=
1
size
+=
len
(
label
)
# Join with U+002E
result
=
"."
.
join
(
result
)
+
trailing_dot
size
+=
len
(
trailing_dot
)
return
(
result
,
size
)
class
IncrementalDecoder
(
codecs
.
BufferedIncrementalDecoder
):
def
_buffer_decode
(
self
,
data
,
errors
,
final
):
if
errors
!=
'strict'
:
raise
IDNAError
(
"Unsupported error handling
\"
{0}
\"
"
.
format
(
errors
))
if
not
data
:
return
(
u""
,
0
)
# IDNA allows decoding to operate on Unicode strings, too.
if
isinstance
(
data
,
unicode
):
labels
=
_unicode_dots_re
.
split
(
data
)
else
:
# Must be ASCII string
data
=
str
(
data
)
unicode
(
data
,
"ascii"
)
labels
=
data
.
split
(
"."
)
trailing_dot
=
u''
if
labels
:
if
not
labels
[
-
1
]:
trailing_dot
=
u'.'
del
labels
[
-
1
]
elif
not
final
:
# Keep potentially unfinished label until the next call
del
labels
[
-
1
]
if
labels
:
trailing_dot
=
u'.'
result
=
[]
size
=
0
for
label
in
labels
:
result
.
append
(
ulabel
(
label
))
if
size
:
size
+=
1
size
+=
len
(
label
)
result
=
u"."
.
join
(
result
)
+
trailing_dot
size
+=
len
(
trailing_dot
)
return
(
result
,
size
)
class
StreamWriter
(
Codec
,
codecs
.
StreamWriter
):
pass
class
StreamReader
(
Codec
,
codecs
.
StreamReader
):
pass
def
getregentry
():
return
codecs
.
CodecInfo
(
name
=
'idna'
,
encode
=
Codec
()
.
encode
,
decode
=
Codec
()
.
decode
,
incrementalencoder
=
IncrementalEncoder
,
incrementaldecoder
=
IncrementalDecoder
,
streamwriter
=
StreamWriter
,
streamreader
=
StreamReader
,
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment