Mercurial > cpython-lru_cache-weakref
annotate Lib/base64.py @ 4566:6403c94de50d legacy-trunk
Added safeguard against failure in __del__.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 27 Nov 1996 19:39:58 +0000 |
| parents | 43f8db23ef15 |
| children | 4f251b8e328f |
| rev | line source |
|---|---|
| 2742 | 1 # Conversions to/from base64 transport encoding as per RFC-MIME (Dec 1991 |
| 2 # version). | |
| 3 | |
| 4 # Parameters set by RFX-XXXX. | |
|
3145
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
5 # |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
6 # Modified 04-Oct-95 by Jack to use binascii module |
| 2742 | 7 |
|
3145
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
8 import binascii |
| 2742 | 9 |
|
3145
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
10 MAXLINESIZE = 76 # Excluding the CRLF |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
11 MAXBINSIZE = (MAXLINESIZE/4)*3 |
| 2742 | 12 |
| 13 # Encode a file. | |
| 14 def encode(input, output): | |
| 15 while 1: | |
|
3145
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
16 s = input.read(MAXBINSIZE) |
| 2742 | 17 if not s: break |
|
3145
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
18 while len(s) < MAXBINSIZE: |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
19 ns = input.read(MAXBINSIZE-len(s)) |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
20 if not ns: break |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
21 s = s + ns |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
22 line = binascii.b2a_base64(s) |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
23 output.write(line) |
| 2742 | 24 |
| 25 # Decode a file. | |
| 26 def decode(input, output): | |
| 27 while 1: | |
| 28 line = input.readline() | |
| 29 if not line: break | |
|
3145
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
30 s = binascii.a2b_base64(line) |
|
43f8db23ef15
Use binascii module (resulting in a 60-fold speedup:-)
Jack Jansen <jack.jansen@cwi.nl>
parents:
3104
diff
changeset
|
31 output.write(s) |
| 2742 | 32 |
| 33 def encodestring(s): | |
| 34 import StringIO | |
| 35 f = StringIO.StringIO(s) | |
| 36 g = StringIO.StringIO() | |
| 37 encode(f, g) | |
| 38 return g.getvalue() | |
| 39 | |
| 40 def decodestring(s): | |
| 41 import StringIO | |
| 42 f = StringIO.StringIO(s) | |
| 43 g = StringIO.StringIO() | |
| 44 decode(f, g) | |
| 45 return g.getvalue() | |
| 46 | |
|
3104
56dba037b8d6
improved test/main program
Guido van Rossum <guido@python.org>
parents:
2950
diff
changeset
|
47 # Small test program |
| 2742 | 48 def test(): |
|
2950
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
49 import sys, getopt |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
50 try: |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
51 opts, args = getopt.getopt(sys.argv[1:], 'deut') |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
52 except getopt.error, msg: |
|
3104
56dba037b8d6
improved test/main program
Guido van Rossum <guido@python.org>
parents:
2950
diff
changeset
|
53 sys.stdout = sys.stderr |
|
2950
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
54 print msg |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
55 print """usage: basd64 [-d] [-e] [-u] [-t] [file|-] |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
56 -d, -u: decode |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
57 -e: encode (default) |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
58 -t: decode string 'Aladdin:open sesame'""" |
|
3104
56dba037b8d6
improved test/main program
Guido van Rossum <guido@python.org>
parents:
2950
diff
changeset
|
59 sys.exit(2) |
|
2950
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
60 func = encode |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
61 for o, a in opts: |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
62 if o == '-e': func = encode |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
63 if o == '-d': func = decode |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
64 if o == '-u': func = decode |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
65 if o == '-t': test1(); return |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
66 if args and args[0] != '-': |
|
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
67 func(open(args[0]), sys.stdout) |
| 2742 | 68 else: |
|
2950
a1a9b7364bc3
upgdaded the test program
Guido van Rossum <guido@python.org>
parents:
2742
diff
changeset
|
69 func(sys.stdin, sys.stdout) |
| 2742 | 70 |
| 71 def test1(): | |
| 72 s0 = "Aladdin:open sesame" | |
| 73 s1 = encodestring(s0) | |
| 74 s2 = decodestring(s1) | |
| 75 print s0, `s1`, s2 | |
| 76 | |
| 77 if __name__ == '__main__': | |
| 78 test() |
