Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
e07745ec
Commit
e07745ec
authored
Mar 26, 1998
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
A few lines were indented using spaces instead of tabs -- fix them.
parent
3e415c72
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
282 additions
and
265 deletions
+282
-265
Lib/binhex.py
Lib/binhex.py
+7
-7
Lib/bisect.py
Lib/bisect.py
+2
-2
Lib/copy.py
Lib/copy.py
+14
-14
Lib/ftplib.py
Lib/ftplib.py
+137
-132
Lib/gopherlib.py
Lib/gopherlib.py
+12
-10
Lib/mailbox.py
Lib/mailbox.py
+43
-37
Lib/multifile.py
Lib/multifile.py
+9
-9
Lib/nntplib.py
Lib/nntplib.py
+9
-8
Lib/profile.py
Lib/profile.py
+11
-10
Lib/quopri.py
Lib/quopri.py
+28
-28
Lib/string.py
Lib/string.py
+5
-4
Lib/stringold.py
Lib/stringold.py
+5
-4
No files found.
Lib/binhex.py
View file @
e07745ec
...
...
@@ -89,9 +89,9 @@ else:
fp
=
open
(
name
)
data
=
open
(
name
).
read
(
256
)
for
c
in
data
:
if
not
c
in
string
.
whitespace
\
and
(
c
<
' '
or
ord
(
c
)
>
0177
):
break
if
not
c
in
string
.
whitespace
\
and
(
c
<
' '
or
ord
(
c
)
>
0177
):
break
else
:
finfo
.
Type
=
'TEXT'
fp
.
seek
(
0
,
2
)
...
...
@@ -214,10 +214,10 @@ class BinHex:
self
.
ofp
.
write
(
data
)
def
_writecrc
(
self
):
# XXXX Should this be here??
# self.crc = binascii.crc_hqx('\0\0', self.crc)
self
.
ofp
.
write
(
struct
.
pack
(
'>h'
,
self
.
crc
))
self
.
crc
=
0
# XXXX Should this be here??
# self.crc = binascii.crc_hqx('\0\0', self.crc)
self
.
ofp
.
write
(
struct
.
pack
(
'>h'
,
self
.
crc
))
self
.
crc
=
0
def
write
(
self
,
data
):
if
self
.
state
!=
_DID_HEADER
:
...
...
Lib/bisect.py
View file @
e07745ec
...
...
@@ -6,7 +6,7 @@
def
insort
(
a
,
x
,
lo
=
0
,
hi
=
None
):
if
hi
is
None
:
hi
=
len
(
a
)
while
lo
<
hi
:
while
lo
<
hi
:
mid
=
(
lo
+
hi
)
/
2
if
x
<
a
[
mid
]:
hi
=
mid
else
:
lo
=
mid
+
1
...
...
@@ -18,7 +18,7 @@ def insort(a, x, lo=0, hi=None):
def
bisect
(
a
,
x
,
lo
=
0
,
hi
=
None
):
if
hi
is
None
:
hi
=
len
(
a
)
while
lo
<
hi
:
while
lo
<
hi
:
mid
=
(
lo
+
hi
)
/
2
if
x
<
a
[
mid
]:
hi
=
mid
else
:
lo
=
mid
+
1
...
...
Lib/copy.py
View file @
e07745ec
...
...
@@ -198,20 +198,20 @@ def _deepcopy_dict(x, memo):
d
[
types
.
DictionaryType
]
=
_deepcopy_dict
def
_keep_alive
(
x
,
memo
):
"""Keeps a reference to the object x in the memo.
Because we remember objects by their id, we have
to assure that possibly temporary objects are kept
alive by referencing them.
We store a reference at the id of the memo, which should
normally not be used unless someone tries to deepcopy
the memo itself...
"""
try
:
memo
[
id
(
memo
)].
append
(
x
)
except
KeyError
:
# aha, this is the first one :-)
memo
[
id
(
memo
)]
=
[
x
]
"""Keeps a reference to the object x in the memo.
Because we remember objects by their id, we have
to assure that possibly temporary objects are kept
alive by referencing them.
We store a reference at the id of the memo, which should
normally not be used unless someone tries to deepcopy
the memo itself...
"""
try
:
memo
[
id
(
memo
)].
append
(
x
)
except
KeyError
:
# aha, this is the first one :-)
memo
[
id
(
memo
)]
=
[
x
]
def
_deepcopy_inst
(
x
,
memo
):
if
hasattr
(
x
,
'__deepcopy__'
):
...
...
Lib/ftplib.py
View file @
e07745ec
...
...
@@ -40,9 +40,9 @@ import string
# Import SOCKS module if it exists, else standard socket module socket
try
:
import
SOCKS
;
socket
=
SOCKS
import
SOCKS
;
socket
=
SOCKS
except
ImportError
:
import
socket
import
socket
# Magic number from <socket.h>
...
...
@@ -293,14 +293,14 @@ class FTP:
thishost
=
socket
.
gethostname
()
# Make sure it is fully qualified
if
not
'.'
in
thishost
:
thisaddr
=
socket
.
gethostbyname
(
thishost
)
firstname
,
names
,
unused
=
\
socket
.
gethostbyaddr
(
thisaddr
)
names
.
insert
(
0
,
firstname
)
for
name
in
names
:
if
'.'
in
name
:
thishost
=
name
break
thisaddr
=
socket
.
gethostbyname
(
thishost
)
firstname
,
names
,
unused
=
\
socket
.
gethostbyaddr
(
thisaddr
)
names
.
insert
(
0
,
firstname
)
for
name
in
names
:
if
'.'
in
name
:
thishost
=
name
break
try
:
if
os
.
environ
.
has_key
(
'LOGNAME'
):
realuser
=
os
.
environ
[
'LOGNAME'
]
...
...
@@ -419,15 +419,15 @@ class FTP:
raise
error_reply
,
resp
return
self
.
voidcmd
(
'RNTO '
+
toname
)
def
delete
(
self
,
filename
):
def
delete
(
self
,
filename
):
'''Delete a file.'''
resp
=
self
.
sendcmd
(
'DELE '
+
filename
)
if
resp
[:
3
]
==
'250'
:
return
resp
elif
resp
[:
1
]
==
'5'
:
raise
error_perm
,
resp
else
:
raise
error_reply
,
resp
resp
=
self
.
sendcmd
(
'DELE '
+
filename
)
if
resp
[:
3
]
==
'250'
:
return
resp
elif
resp
[:
1
]
==
'5'
:
raise
error_perm
,
resp
else
:
raise
error_reply
,
resp
def
cwd
(
self
,
dirname
):
'''Change to a directory.'''
...
...
@@ -477,20 +477,21 @@ class FTP:
_150_re
=
None
def
parse150
(
resp
):
'''Parse the '150' response for a RETR request.
Returns the expected transfer size or None; size is not guaranteed to
be present in the 150 message.
'''
if
resp
[:
3
]
!=
'150'
:
raise
error_reply
,
resp
global
_150_re
if
_150_re
is
None
:
import
re
_150_re
=
re
.
compile
(
"150 .*
\
(([
0
-9][0-9]*) bytes
\
)
"
, re.IGNORECASE)
m = _150_re.match(resp)
if m:
return string.atoi(m.group(1))
return None
'''Parse the '150' response for a RETR request.
Returns the expected transfer size or None; size is not guaranteed to
be present in the 150 message.
'''
if
resp
[:
3
]
!=
'150'
:
raise
error_reply
,
resp
global
_150_re
if
_150_re
is
None
:
import
re
_150_re
=
re
.
compile
(
"150 .*
\
(([
0
-9][0-9]*) bytes
\
)
"
,
re.IGNORECASE)
m = _150_re.match(resp)
if m:
return string.atoi(m.group(1))
return None
def parse227(resp):
...
...
@@ -561,104 +562,107 @@ def ftpcp(source, sourcename, target, targetname = '', type = 'I'):
class Netrc:
"""Class to parse & provide access to '
netrc
' format files.
See the netrc(4) man page for information on the file format.
"""
__defuser = None
__defpasswd = None
__defacct = None
def __init__(self, filename=None):
if not filename:
if os.environ.has_key("HOME"):
filename = os.path.join(os.environ["HOME"], ".netrc")
else:
raise IOError, "specify file to load or set $HOME"
self.__hosts = {}
self.__macros = {}
fp = open(filename, "r")
in_macro = 0
while 1:
line = fp.readline()
if not line: break
if in_macro and string.strip(line):
macro_lines.append(line)
continue
elif in_macro:
self.__macros[macro_name] = tuple(macro_lines)
"""Class to parse & provide access to '
netrc
' format files.
See the netrc(4) man page for information on the file format.
"""
__defuser = None
__defpasswd = None
__defacct = None
def __init__(self, filename=None):
if not filename:
if os.environ.has_key("HOME"):
filename = os.path.join(os.environ["HOME"],
".netrc")
else:
raise IOError,
\
"specify file to load or set $HOME"
self.__hosts = {}
self.__macros = {}
fp = open(filename, "r")
in_macro = 0
words = string.split(line)
host = user = passwd = acct = None
default = 0
i = 0
while i < len(words):
w1 = words[i]
if i+1 < len(words):
w2 = words[i + 1]
else:
w2 = None
if w1 == '
default
':
default = 1
elif w1 == '
machine
' and w2:
host = string.lower(w2)
i = i + 1
elif w1 == '
login
' and w2:
user = w2
i = i + 1
elif w1 == '
password
' and w2:
passwd = w2
i = i + 1
elif w1 == '
account
' and w2:
acct = w2
i = i + 1
elif w1 == '
macdef
' and w2:
macro_name = w2
macro_lines = []
in_macro = 1
break
i = i + 1
if default:
self.__defuser = user or self.__defuser
self.__defpasswd = passwd or self.__defpasswd
self.__defacct = acct or self.__defacct
if host:
if self.__hosts.has_key(host):
ouser, opasswd, oacct = self.__hosts[host]
user = user or ouser
passwd = passwd or opasswd
acct = acct or oacct
self.__hosts[host] = user, passwd, acct
fp.close()
while 1:
line = fp.readline()
if not line: break
if in_macro and string.strip(line):
macro_lines.append(line)
continue
elif in_macro:
self.__macros[macro_name] = tuple(macro_lines)
in_macro = 0
words = string.split(line)
host = user = passwd = acct = None
default = 0
i = 0
while i < len(words):
w1 = words[i]
if i+1 < len(words):
w2 = words[i + 1]
else:
w2 = None
if w1 == '
default
':
default = 1
elif w1 == '
machine
' and w2:
host = string.lower(w2)
i = i + 1
elif w1 == '
login
' and w2:
user = w2
i = i + 1
elif w1 == '
password
' and w2:
passwd = w2
i = i + 1
elif w1 == '
account
' and w2:
acct = w2
i = i + 1
elif w1 == '
macdef
' and w2:
macro_name = w2
macro_lines = []
in_macro = 1
break
i = i + 1
if default:
self.__defuser = user or self.__defuser
self.__defpasswd = passwd or self.__defpasswd
self.__defacct = acct or self.__defacct
if host:
if self.__hosts.has_key(host):
ouser, opasswd, oacct =
\
self.__hosts[host]
user = user or ouser
passwd = passwd or opasswd
acct = acct or oacct
self.__hosts[host] = user, passwd, acct
fp.close()
def get_hosts(self):
"""Return a list of hosts mentioned in the .netrc file."""
return self.__hosts.keys()
def get_hosts(self):
"""Return a list of hosts mentioned in the .netrc file."""
return self.__hosts.keys()
def get_account(self, host):
"""Returns login information for the named host.
def get_account(self, host):
"""Returns login information for the named host.
The return value is a triple containing userid, password, and the
accounting field.
The return value is a triple containing userid,
password, and the
accounting field.
"""
host = string.lower(host)
user = passwd = acct = None
if self.__hosts.has_key(host):
user, passwd, acct = self.__hosts[host]
user = user or self.__defuser
passwd = passwd or self.__defpasswd
acct = acct or self.__defacct
return user, passwd, acct
"""
host = string.lower(host)
user = passwd = acct = None
if self.__hosts.has_key(host):
user, passwd, acct = self.__hosts[host]
user = user or self.__defuser
passwd = passwd or self.__defpasswd
acct = acct or self.__defacct
return user, passwd, acct
def get_macros(self):
"""Return a list of all defined macro names."""
return self.__macros.keys()
def get_macros(self):
"""Return a list of all defined macro names."""
return self.__macros.keys()
def get_macro(self, macro):
"""Return a sequence of lines which define a named macro."""
return self.__macros[macro]
def get_macro(self, macro):
"""Return a sequence of lines which define a named macro."""
return self.__macros[macro]
...
...
@@ -680,17 +684,18 @@ def test():
ftp.set_debuglevel(debugging)
userid = passwd = acct = ''
try:
netrc = Netrc(rcfile)
netrc = Netrc(rcfile)
except IOError:
if rcfile is not None:
sys.stderr.write("Could not open account file"
" -- using anonymous login.")
if rcfile is not None:
sys.stderr.write("Could not open account file"
" -- using anonymous login.")
else:
try:
userid, passwd, acct = netrc.get_account(host)
except KeyError:
# no account for host
sys.stderr.write("No account -- using anonymous login.")
try:
userid, passwd, acct = netrc.get_account(host)
except KeyError:
# no account for host
sys.stderr.write(
"No account -- using anonymous login.")
ftp.login(userid, passwd, acct)
for file in sys.argv[2:]:
if file[:2] == '
-
l
':
...
...
Lib/gopherlib.py
View file @
e07745ec
...
...
@@ -77,19 +77,20 @@ def send_query(selector, query, host, port = 0):
# Takes a path as returned by urlparse and returns the appropriate selector
def
path_to_selector
(
path
):
if
path
==
"/"
:
return
"/"
else
:
return
path
[
2
:]
# Cuts initial slash and data type identifier
if
path
==
"/"
:
return
"/"
else
:
return
path
[
2
:]
# Cuts initial slash and data type identifier
# Takes a path as returned by urlparse and maps it to a string
# See section 3.4 of RFC 1738 for details
def
path_to_datatype_name
(
path
):
if
path
==
"/"
:
return
"TYPE='unknown'"
# No way to tell, although "INDEX" is probable
else
:
return
type_to_name
(
path
[
1
])
if
path
==
"/"
:
# No way to tell, although "INDEX" is likely
return
"TYPE='unknown'"
else
:
return
type_to_name
(
path
[
1
])
# The following functions interpret the data returned by the gopher
# server according to the expected type, e.g. textfile or directory
...
...
@@ -118,7 +119,8 @@ def get_directory(f):
continue
if
len
(
parts
)
>
4
:
if
parts
[
4
:]
!=
[
'+'
]:
print
'(Extra info from server:'
,
parts
[
4
:],
')'
print
'(Extra info from server:'
,
print
parts
[
4
:],
')'
else
:
parts
.
append
(
''
)
parts
.
insert
(
0
,
gtype
)
...
...
Lib/mailbox.py
View file @
e07745ec
...
...
@@ -7,6 +7,7 @@ import rfc822
import
os
class
_Mailbox
:
def
__init__
(
self
,
fp
):
self
.
fp
=
fp
self
.
seekp
=
0
...
...
@@ -35,6 +36,7 @@ class _Mailbox:
return
rfc822
.
Message
(
_Subfile
(
self
.
fp
,
start
,
stop
))
class
_Subfile
:
def
__init__
(
self
,
fp
,
start
,
stop
):
self
.
fp
=
fp
self
.
start
=
start
...
...
@@ -66,17 +68,18 @@ class _Subfile:
return
self
.
pos
-
self
.
start
def
seek
(
self
,
pos
,
whence
=
0
):
if
whence
==
0
:
self
.
pos
=
self
.
start
+
pos
if
whence
==
0
:
self
.
pos
=
self
.
start
+
pos
elif
whence
==
1
:
self
.
pos
=
self
.
pos
+
pos
self
.
pos
=
self
.
pos
+
pos
elif
whence
==
2
:
self
.
pos
=
self
.
stop
+
pos
self
.
pos
=
self
.
stop
+
pos
def
close
(
self
):
pass
class
UnixMailbox
(
_Mailbox
):
def
_search_start
(
self
):
while
1
:
line
=
self
.
fp
.
readline
()
...
...
@@ -96,6 +99,7 @@ class UnixMailbox(_Mailbox):
return
class
MmdfMailbox
(
_Mailbox
):
def
_search_start
(
self
):
while
1
:
line
=
self
.
fp
.
readline
()
...
...
@@ -115,43 +119,45 @@ class MmdfMailbox(_Mailbox):
return
class
MHMailbox
:
def
__init__
(
self
,
dirname
):
import
re
pat
=
re
.
compile
(
'^[0-9][0-9]*$'
)
self
.
dirname
=
dirname
files
=
os
.
listdir
(
self
.
dirname
)
self
.
boxes
=
[]
for
f
in
files
:
if
pat
.
match
(
f
):
self
.
boxes
.
append
(
f
)
def
next
(
self
):
if
not
self
.
boxes
:
return
None
fn
=
self
.
boxes
[
0
]
del
self
.
boxes
[
0
]
fp
=
open
(
os
.
path
.
join
(
self
.
dirname
,
fn
))
return
rfc822
.
Message
(
fp
)
def
__init__
(
self
,
dirname
):
import
re
pat
=
re
.
compile
(
'^[0-9][0-9]*$'
)
self
.
dirname
=
dirname
files
=
os
.
listdir
(
self
.
dirname
)
self
.
boxes
=
[]
for
f
in
files
:
if
pat
.
match
(
f
):
self
.
boxes
.
append
(
f
)
def
next
(
self
):
if
not
self
.
boxes
:
return
None
fn
=
self
.
boxes
[
0
]
del
self
.
boxes
[
0
]
fp
=
open
(
os
.
path
.
join
(
self
.
dirname
,
fn
))
return
rfc822
.
Message
(
fp
)
class
BabylMailbox
(
_Mailbox
):
def
_search_start
(
self
):
while
1
:
line
=
self
.
fp
.
readline
()
if
not
line
:
raise
EOFError
if
line
==
'*** EOOH ***
\
n
'
:
return
def
_search_end
(
self
):
while
1
:
pos
=
self
.
fp
.
tell
()
line
=
self
.
fp
.
readline
()
if
not
line
:
return
if
line
==
'
\
037
\
014
\
n
'
:
self
.
fp
.
seek
(
pos
)
return
def
_search_start
(
self
):
while
1
:
line
=
self
.
fp
.
readline
()
if
not
line
:
raise
EOFError
if
line
==
'*** EOOH ***
\
n
'
:
return
def
_search_end
(
self
):
while
1
:
pos
=
self
.
fp
.
tell
()
line
=
self
.
fp
.
readline
()
if
not
line
:
return
if
line
==
'
\
037
\
014
\
n
'
:
self
.
fp
.
seek
(
pos
)
return
def
_test
():
...
...
Lib/multifile.py
View file @
e07745ec
...
...
@@ -45,15 +45,15 @@ class MultiFile:
return
self
.
fp
.
tell
()
-
self
.
start
#
def
seek
(
self
,
pos
,
whence
=
0
):
here
=
self
.
tell
()
if
whence
:
if
whence
==
1
:
pos
=
pos
+
here
elif
whence
==
2
:
if
self
.
level
>
0
:
pos
=
pos
+
self
.
lastpos
else
:
raise
Error
,
"can't use whence=2 yet"
here
=
self
.
tell
()
if
whence
:
if
whence
==
1
:
pos
=
pos
+
here
elif
whence
==
2
:
if
self
.
level
>
0
:
pos
=
pos
+
self
.
lastpos
else
:
raise
Error
,
"can't use whence=2 yet"
if
not
0
<=
pos
<=
here
or
\
self
.
level
>
0
and
pos
>
self
.
lastpos
:
raise
Error
,
'bad MultiFile.seek() call'
...
...
Lib/nntplib.py
View file @
e07745ec
...
...
@@ -72,14 +72,15 @@ class NNTP:
self
.
debugging
=
0
self
.
welcome
=
self
.
getresp
()
if
user
:
resp
=
self
.
shortcmd
(
'authinfo user '
+
user
)
if
resp
[:
3
]
==
'381'
:
if
not
password
:
raise
error_reply
,
resp
else
:
resp
=
self
.
shortcmd
(
'authinfo pass '
+
password
)
if
resp
[:
3
]
!=
'281'
:
raise
error_perm
,
resp
resp
=
self
.
shortcmd
(
'authinfo user '
+
user
)
if
resp
[:
3
]
==
'381'
:
if
not
password
:
raise
error_reply
,
resp
else
:
resp
=
self
.
shortcmd
(
'authinfo pass '
+
password
)
if
resp
[:
3
]
!=
'281'
:
raise
error_perm
,
resp
# Get the welcome message from the server
# (this is read and squirreled away by __init__()).
...
...
Lib/profile.py
View file @
e07745ec
...
...
@@ -438,7 +438,7 @@ class Profile:
sys
.
setprofile
(
None
)
#******************************************************************
#******************************************************************
# The following calculates the overhead for using a profiler. The
# problem is that it takes a fair amount of time for the profiler
# to stop the stopwatch (from the time it recieves an event).
...
...
@@ -481,35 +481,36 @@ class Profile:
# profiler very much, and the accuracy goes way up.
#**************************************************************
def
calibrate
(
self
,
m
):
def
calibrate
(
self
,
m
):
# Modified by Tim Peters
n
=
m
s
=
self
.
timer
()
s
=
self
.
get_time
()
while
n
:
self
.
simple
()
n
=
n
-
1
f
=
self
.
timer
()
my_simple
=
f
[
0
]
+
f
[
1
]
-
s
[
0
]
-
s
[
1
]
f
=
self
.
get_time
()
my_simple
=
f
-
s
#print "Simple =", my_simple,
n
=
m
s
=
self
.
timer
()
s
=
self
.
get_time
()
while
n
:
self
.
instrumented
()
n
=
n
-
1
f
=
self
.
timer
()
my_inst
=
f
[
0
]
+
f
[
1
]
-
s
[
0
]
-
s
[
1
]
f
=
self
.
get_time
()
my_inst
=
f
-
s
# print "Instrumented =", my_inst
avg_cost
=
(
my_inst
-
my_simple
)
/
m
#print "Delta/call =", avg_cost, "(profiler fixup constant)"
return
avg_cost
# simulate a program with no profiler activity
def
simple
(
self
):
def
simple
(
self
):
a
=
1
pass
# simulate a program with call/return event processing
def
instrumented
(
self
):
def
instrumented
(
self
):
a
=
1
self
.
profiler_simulation
(
a
,
a
,
a
)
...
...
Lib/quopri.py
View file @
e07745ec
...
...
@@ -93,43 +93,43 @@ def test():
import
sys
import
getopt
try
:
opts
,
args
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
'td'
)
opts
,
args
=
getopt
.
getopt
(
sys
.
argv
[
1
:],
'td'
)
except
getopt
.
error
,
msg
:
sys
.
stdout
=
sys
.
stderr
print
msg
print
"usage: quopri [-t | -d] [file] ..."
print
"-t: quote tabs"
print
"-d: decode; default encode"
sys
.
exit
(
2
)
sys
.
stdout
=
sys
.
stderr
print
msg
print
"usage: quopri [-t | -d] [file] ..."
print
"-t: quote tabs"
print
"-d: decode; default encode"
sys
.
exit
(
2
)
deco
=
0
tabs
=
0
for
o
,
a
in
opts
:
if
o
==
'-t'
:
tabs
=
1
if
o
==
'-d'
:
deco
=
1
if
o
==
'-t'
:
tabs
=
1
if
o
==
'-d'
:
deco
=
1
if
tabs
and
deco
:
sys
.
stdout
=
sys
.
stderr
print
"-t and -d are mutually exclusive"
sys
.
exit
(
2
)
sys
.
stdout
=
sys
.
stderr
print
"-t and -d are mutually exclusive"
sys
.
exit
(
2
)
if
not
args
:
args
=
[
'-'
]
sts
=
0
for
file
in
args
:
if
file
==
'-'
:
fp
=
sys
.
stdin
else
:
try
:
fp
=
open
(
file
)
except
IOError
,
msg
:
sys
.
stderr
.
write
(
"%s: can't open (%s)
\
n
"
%
(
file
,
msg
))
sts
=
1
continue
if
deco
:
decode
(
fp
,
sys
.
stdout
)
else
:
encode
(
fp
,
sys
.
stdout
,
tabs
)
if
fp
is
not
sys
.
stdin
:
fp
.
close
()
if
file
==
'-'
:
fp
=
sys
.
stdin
else
:
try
:
fp
=
open
(
file
)
except
IOError
,
msg
:
sys
.
stderr
.
write
(
"%s: can't open (%s)
\
n
"
%
(
file
,
msg
))
sts
=
1
continue
if
deco
:
decode
(
fp
,
sys
.
stdout
)
else
:
encode
(
fp
,
sys
.
stdout
,
tabs
)
if
fp
is
not
sys
.
stdin
:
fp
.
close
()
if
sts
:
sys
.
exit
(
sts
)
sys
.
exit
(
sts
)
if
__name__
==
'__main__'
:
test
()
Lib/string.py
View file @
e07745ec
...
...
@@ -203,7 +203,7 @@ def joinfields(words, sep = ' '):
(joinfields and join are synonymous)
"""
"""
res
=
''
for
w
in
words
:
res
=
res
+
(
sep
+
w
)
...
...
@@ -430,7 +430,7 @@ def ljust(s, width):
# Right-justify a string
def
rjust
(
s
,
width
):
"""rjust(s, width) -> string
"""rjust(s, width) -> string
Return a right-justified version of s, in a field of the
specified width, padded with spaces as needed. The string is
...
...
@@ -443,7 +443,7 @@ def rjust(s, width):
# Center a string
def
center
(
s
,
width
):
"""center(s, width) -> string
"""center(s, width) -> string
Return a center version of s, in a field of the specified
width. padded with spaces as needed. The string is never
...
...
@@ -508,7 +508,8 @@ def translate(s, table, deletions=""):
"""
if
type
(
table
)
!=
type
(
''
)
or
len
(
table
)
!=
256
:
raise
TypeError
,
"translation table must be 256 characters long"
raise
TypeError
,
\
"translation table must be 256 characters long"
res
=
""
for
c
in
s
:
if
c
not
in
deletions
:
...
...
Lib/stringold.py
View file @
e07745ec
...
...
@@ -203,7 +203,7 @@ def joinfields(words, sep = ' '):
(joinfields and join are synonymous)
"""
"""
res
=
''
for
w
in
words
:
res
=
res
+
(
sep
+
w
)
...
...
@@ -430,7 +430,7 @@ def ljust(s, width):
# Right-justify a string
def
rjust
(
s
,
width
):
"""rjust(s, width) -> string
"""rjust(s, width) -> string
Return a right-justified version of s, in a field of the
specified width, padded with spaces as needed. The string is
...
...
@@ -443,7 +443,7 @@ def rjust(s, width):
# Center a string
def
center
(
s
,
width
):
"""center(s, width) -> string
"""center(s, width) -> string
Return a center version of s, in a field of the specified
width. padded with spaces as needed. The string is never
...
...
@@ -508,7 +508,8 @@ def translate(s, table, deletions=""):
"""
if
type
(
table
)
!=
type
(
''
)
or
len
(
table
)
!=
256
:
raise
TypeError
,
"translation table must be 256 characters long"
raise
TypeError
,
\
"translation table must be 256 characters long"
res
=
""
for
c
in
s
:
if
c
not
in
deletions
:
...
...
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