summaryrefslogtreecommitdiffstats
path: root/Lib/encodings/idna.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/encodings/idna.py')
-rw-r--r--Lib/encodings/idna.py19
1 files changed, 17 insertions, 2 deletions
diff --git a/Lib/encodings/idna.py b/Lib/encodings/idna.py
index 3d3ed23..8bdae32 100644
--- a/Lib/encodings/idna.py
+++ b/Lib/encodings/idna.py
@@ -194,6 +194,14 @@ class Codec(codecs.Codec):
return u".".join(result)+trailing_dot, len(input)
+class IncrementalEncoder(codecs.IncrementalEncoder):
+ def encode(self, input, final=False):
+ return Codec().encode(input, self.errors)[0]
+
+class IncrementalDecoder(codecs.IncrementalDecoder):
+ def decode(self, input, final=False):
+ return Codec().decode(input, self.errors)[0]
+
class StreamWriter(Codec,codecs.StreamWriter):
pass
@@ -203,5 +211,12 @@ class StreamReader(Codec,codecs.StreamReader):
### encodings module API
def getregentry():
-
- return (Codec().encode,Codec().decode,StreamReader,StreamWriter)
+ return codecs.CodecInfo(
+ name='idna',
+ encode=Codec().encode,
+ decode=Codec().decode,
+ incrementalencoder=IncrementalEncoder,
+ incrementaldecoder=IncrementalDecoder,
+ streamwriter=StreamWriter,
+ streamreader=StreamReader,
+ )