mirror of https://github.com/python/cpython
The commands module has been removed. The getoutput() and getstatusoutput()
functions have been added to the subprocess module. The fixer for this still needs to be written and proper Py3K deprecation warnings for the functions that didn't make the transition need to be done in 2.6. This is all part of trying to close issue #2872.
This commit is contained in:
parent
35af8d4218
commit
a23810f86a
|
@ -4,7 +4,7 @@
|
||||||
from Tkinter import *
|
from Tkinter import *
|
||||||
from string import splitfields
|
from string import splitfields
|
||||||
from string import split
|
from string import split
|
||||||
import commands
|
import subprocess
|
||||||
import os
|
import os
|
||||||
|
|
||||||
class BarButton(Menubutton):
|
class BarButton(Menubutton):
|
||||||
|
@ -31,7 +31,7 @@ class Kill(Frame):
|
||||||
self.do_update()
|
self.do_update()
|
||||||
def do_update(self):
|
def do_update(self):
|
||||||
name, option, column = self.format_list[self.format.get()]
|
name, option, column = self.format_list[self.format.get()]
|
||||||
s = commands.getoutput('ps -w ' + option)
|
s = subprocess.getoutput('ps -w ' + option)
|
||||||
list = splitfields(s, '\n')
|
list = splitfields(s, '\n')
|
||||||
self.header.set(list[0])
|
self.header.set(list[0])
|
||||||
del list[0]
|
del list[0]
|
||||||
|
|
|
@ -9,7 +9,7 @@ if TkVersion < 4.0:
|
||||||
|
|
||||||
from string import splitfields
|
from string import splitfields
|
||||||
from string import split
|
from string import split
|
||||||
import commands
|
import subprocess
|
||||||
import os
|
import os
|
||||||
|
|
||||||
user = os.environ['LOGNAME']
|
user = os.environ['LOGNAME']
|
||||||
|
@ -46,7 +46,7 @@ class Kill(Frame):
|
||||||
def do_update(self):
|
def do_update(self):
|
||||||
format = self.format_list[self.format.get()][1]
|
format = self.format_list[self.format.get()][1]
|
||||||
view = self.view_list[self.view.get()][1]
|
view = self.view_list[self.view.get()][1]
|
||||||
s = commands.getoutput('ps %s %s' % (view, format))
|
s = subprocess.getoutput('ps %s %s' % (view, format))
|
||||||
list = splitfields(s, '\n')
|
list = splitfields(s, '\n')
|
||||||
self.header.set(list[0] + ' ')
|
self.header.set(list[0] + ' ')
|
||||||
del list[0]
|
del list[0]
|
||||||
|
|
|
@ -1,53 +0,0 @@
|
||||||
|
|
||||||
:mod:`commands` --- Utilities for running commands
|
|
||||||
==================================================
|
|
||||||
|
|
||||||
.. module:: commands
|
|
||||||
:platform: Unix
|
|
||||||
:synopsis: Utility functions for running external commands.
|
|
||||||
.. sectionauthor:: Sue Williams <sbw@provis.com>
|
|
||||||
|
|
||||||
|
|
||||||
The :mod:`commands` module contains wrapper functions for :func:`os.popen` which
|
|
||||||
take a system command as a string and return any output generated by the command
|
|
||||||
and, optionally, the exit status.
|
|
||||||
|
|
||||||
The :mod:`subprocess` module provides more powerful facilities for spawning new
|
|
||||||
processes and retrieving their results. Using the :mod:`subprocess` module is
|
|
||||||
preferable to using the :mod:`commands` module.
|
|
||||||
|
|
||||||
The :mod:`commands` module defines the following functions:
|
|
||||||
|
|
||||||
|
|
||||||
.. function:: getstatusoutput(cmd)
|
|
||||||
|
|
||||||
Execute the string *cmd* in a shell with :func:`os.popen` and return a 2-tuple
|
|
||||||
``(status, output)``. *cmd* is actually run as ``{ cmd ; } 2>&1``, so that the
|
|
||||||
returned output will contain output or error messages. A trailing newline is
|
|
||||||
stripped from the output. The exit status for the command can be interpreted
|
|
||||||
according to the rules for the C function :cfunc:`wait`.
|
|
||||||
|
|
||||||
|
|
||||||
.. function:: getoutput(cmd)
|
|
||||||
|
|
||||||
Like :func:`getstatusoutput`, except the exit status is ignored and the return
|
|
||||||
value is a string containing the command's output.
|
|
||||||
|
|
||||||
Example::
|
|
||||||
|
|
||||||
>>> import commands
|
|
||||||
>>> commands.getstatusoutput('ls /bin/ls')
|
|
||||||
(0, '/bin/ls')
|
|
||||||
>>> commands.getstatusoutput('cat /bin/junk')
|
|
||||||
(256, 'cat: /bin/junk: No such file or directory')
|
|
||||||
>>> commands.getstatusoutput('/bin/junk')
|
|
||||||
(256, 'sh: /bin/junk: not found')
|
|
||||||
>>> commands.getoutput('ls /bin/ls')
|
|
||||||
'/bin/ls'
|
|
||||||
|
|
||||||
|
|
||||||
.. seealso::
|
|
||||||
|
|
||||||
Module :mod:`subprocess`
|
|
||||||
Module for spawning and managing subprocesses.
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ replace several other, older modules and functions, such as::
|
||||||
|
|
||||||
os.system
|
os.system
|
||||||
os.spawn*
|
os.spawn*
|
||||||
commands.*
|
|
||||||
|
|
||||||
Information about how the :mod:`subprocess` module can be used to replace these
|
Information about how the :mod:`subprocess` module can be used to replace these
|
||||||
modules and functions can be found in the following sections.
|
modules and functions can be found in the following sections.
|
||||||
|
@ -113,7 +112,7 @@ This module defines one class called :class:`Popen`:
|
||||||
Convenience Functions
|
Convenience Functions
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
This module also defines two shortcut functions:
|
This module also defines four shortcut functions:
|
||||||
|
|
||||||
|
|
||||||
.. function:: call(*popenargs, **kwargs)
|
.. function:: call(*popenargs, **kwargs)
|
||||||
|
@ -138,6 +137,35 @@ This module also defines two shortcut functions:
|
||||||
check_call(["ls", "-l"])
|
check_call(["ls", "-l"])
|
||||||
|
|
||||||
|
|
||||||
|
.. function:: getstatusoutput(cmd)
|
||||||
|
Return ``(status, output)`` of executing *cmd* in a shell.
|
||||||
|
|
||||||
|
Execute the string *cmd* in a shell with :func:`os.popen` and return a 2-tuple
|
||||||
|
``(status, output)``. *cmd* is actually run as ``{ cmd ; } 2>&1``, so that the
|
||||||
|
returned output will contain output or error messages. A trailing newline is
|
||||||
|
stripped from the output. The exit status for the command can be interpreted
|
||||||
|
according to the rules for the C function :cfunc:`wait`. Example::
|
||||||
|
|
||||||
|
>>> import subprocess
|
||||||
|
>>> subprocess.getstatusoutput('ls /bin/ls')
|
||||||
|
(0, '/bin/ls')
|
||||||
|
>>> subprocess.getstatusoutput('cat /bin/junk')
|
||||||
|
(256, 'cat: /bin/junk: No such file or directory')
|
||||||
|
>>> subprocess.getstatusoutput('/bin/junk')
|
||||||
|
(256, 'sh: /bin/junk: not found')
|
||||||
|
|
||||||
|
|
||||||
|
.. function:: getoutput(cmd)
|
||||||
|
Return output ``(stdout or stderr)`` of executing *cmd* in a shell.
|
||||||
|
|
||||||
|
Like :func:`getstatusoutput`, except the exit status is ignored and the return
|
||||||
|
value is a string containing the command's output. Example::
|
||||||
|
|
||||||
|
>>> import subprocess
|
||||||
|
>>> subprocess.getoutput('ls /bin/ls')
|
||||||
|
'/bin/ls'
|
||||||
|
|
||||||
|
|
||||||
Exceptions
|
Exceptions
|
||||||
^^^^^^^^^^
|
^^^^^^^^^^
|
||||||
|
|
||||||
|
|
|
@ -25,4 +25,3 @@ of it. Here's an overview:
|
||||||
resource.rst
|
resource.rst
|
||||||
nis.rst
|
nis.rst
|
||||||
syslog.rst
|
syslog.rst
|
||||||
commands.rst
|
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
"""Execute shell commands via os.popen() and return status, output.
|
|
||||||
|
|
||||||
Interface summary:
|
|
||||||
|
|
||||||
import commands
|
|
||||||
|
|
||||||
outtext = commands.getoutput(cmd)
|
|
||||||
(exitstatus, outtext) = commands.getstatusoutput(cmd)
|
|
||||||
outtext = commands.getstatus(file) # returns output of "ls -ld file"
|
|
||||||
|
|
||||||
A trailing newline is removed from the output string.
|
|
||||||
|
|
||||||
Encapsulates the basic operation:
|
|
||||||
|
|
||||||
pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')
|
|
||||||
text = pipe.read()
|
|
||||||
sts = pipe.close()
|
|
||||||
|
|
||||||
[Note: it would be nice to add functions to interpret the exit status.]
|
|
||||||
"""
|
|
||||||
|
|
||||||
__all__ = ["getstatusoutput", "getoutput"]
|
|
||||||
|
|
||||||
# Module 'commands'
|
|
||||||
#
|
|
||||||
# Various tools for executing commands and looking at their output and status.
|
|
||||||
#
|
|
||||||
# NB This only works (and is only relevant) for UNIX.
|
|
||||||
|
|
||||||
|
|
||||||
# Get the output from a shell command into a string.
|
|
||||||
# The exit status is ignored; a trailing newline is stripped.
|
|
||||||
# Assume the command will work with '{ ... ; } 2>&1' around it..
|
|
||||||
#
|
|
||||||
def getoutput(cmd):
|
|
||||||
"""Return output (stdout or stderr) of executing cmd in a shell."""
|
|
||||||
return getstatusoutput(cmd)[1]
|
|
||||||
|
|
||||||
|
|
||||||
# Ditto but preserving the exit status.
|
|
||||||
# Returns a pair (sts, output)
|
|
||||||
#
|
|
||||||
def getstatusoutput(cmd):
|
|
||||||
"""Return (status, output) of executing cmd in a shell."""
|
|
||||||
import os
|
|
||||||
pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')
|
|
||||||
text = pipe.read()
|
|
||||||
sts = pipe.close()
|
|
||||||
if sts is None: sts = 0
|
|
||||||
if text[-1:] == '\n': text = text[:-1]
|
|
||||||
return sts, text
|
|
||||||
|
|
||||||
|
|
||||||
# Make command argument from directory and pathname (prefix space, add quotes).
|
|
||||||
#
|
|
||||||
def mk2arg(head, x):
|
|
||||||
import os
|
|
||||||
return mkarg(os.path.join(head, x))
|
|
||||||
|
|
||||||
|
|
||||||
# Make a shell command argument from a string.
|
|
||||||
# Return a string beginning with a space followed by a shell-quoted
|
|
||||||
# version of the argument.
|
|
||||||
# Two strategies: enclose in single quotes if it contains none;
|
|
||||||
# otherwise, enclose in double quotes and prefix quotable characters
|
|
||||||
# with backslash.
|
|
||||||
#
|
|
||||||
def mkarg(x):
|
|
||||||
if '\'' not in x:
|
|
||||||
return ' \'' + x + '\''
|
|
||||||
s = ' "'
|
|
||||||
for c in x:
|
|
||||||
if c in '\\$"`':
|
|
||||||
s = s + '\\'
|
|
||||||
s = s + c
|
|
||||||
s = s + '"'
|
|
||||||
return s
|
|
|
@ -17,7 +17,6 @@ intends to replace several other, older modules and functions, like:
|
||||||
|
|
||||||
os.system
|
os.system
|
||||||
os.spawn*
|
os.spawn*
|
||||||
commands.*
|
|
||||||
|
|
||||||
Information about how the subprocess module can be used to replace these
|
Information about how the subprocess module can be used to replace these
|
||||||
modules and functions can be found below.
|
modules and functions can be found below.
|
||||||
|
@ -105,7 +104,7 @@ appearance of the main window and priority for the new process.
|
||||||
(Windows only)
|
(Windows only)
|
||||||
|
|
||||||
|
|
||||||
This module also defines two shortcut functions:
|
This module also defines four shortcut functions:
|
||||||
|
|
||||||
call(*popenargs, **kwargs):
|
call(*popenargs, **kwargs):
|
||||||
Run command with arguments. Wait for command to complete, then
|
Run command with arguments. Wait for command to complete, then
|
||||||
|
@ -125,6 +124,34 @@ check_call(*popenargs, **kwargs):
|
||||||
|
|
||||||
check_call(["ls", "-l"])
|
check_call(["ls", "-l"])
|
||||||
|
|
||||||
|
getstatusoutput(cmd):
|
||||||
|
Return (status, output) of executing cmd in a shell.
|
||||||
|
|
||||||
|
Execute the string 'cmd' in a shell with os.popen() and return a 2-tuple
|
||||||
|
(status, output). cmd is actually run as '{ cmd ; } 2>&1', so that the
|
||||||
|
returned output will contain output or error messages. A trailing newline
|
||||||
|
is stripped from the output. The exit status for the command can be
|
||||||
|
interpreted according to the rules for the C function wait(). Example:
|
||||||
|
|
||||||
|
>>> import subprocess
|
||||||
|
>>> subprocess.getstatusoutput('ls /bin/ls')
|
||||||
|
(0, '/bin/ls')
|
||||||
|
>>> subprocess.getstatusoutput('cat /bin/junk')
|
||||||
|
(256, 'cat: /bin/junk: No such file or directory')
|
||||||
|
>>> subprocess.getstatusoutput('/bin/junk')
|
||||||
|
(256, 'sh: /bin/junk: not found')
|
||||||
|
|
||||||
|
getoutput(cmd):
|
||||||
|
Return output (stdout or stderr) of executing cmd in a shell.
|
||||||
|
|
||||||
|
Like getstatusoutput(), except the exit status is ignored and the return
|
||||||
|
value is a string containing the command's output. Example:
|
||||||
|
|
||||||
|
>>> import subprocess
|
||||||
|
>>> subprocess.getoutput('ls /bin/ls')
|
||||||
|
'/bin/ls'
|
||||||
|
|
||||||
|
|
||||||
Exceptions
|
Exceptions
|
||||||
----------
|
----------
|
||||||
Exceptions raised in the child process, before the new program has
|
Exceptions raised in the child process, before the new program has
|
||||||
|
@ -336,7 +363,8 @@ else:
|
||||||
import fcntl
|
import fcntl
|
||||||
import pickle
|
import pickle
|
||||||
|
|
||||||
__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "CalledProcessError"]
|
__all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput",
|
||||||
|
"getoutput", "CalledProcessError"]
|
||||||
|
|
||||||
try:
|
try:
|
||||||
MAXFD = os.sysconf("SC_OPEN_MAX")
|
MAXFD = os.sysconf("SC_OPEN_MAX")
|
||||||
|
@ -458,6 +486,48 @@ def list2cmdline(seq):
|
||||||
return ''.join(result)
|
return ''.join(result)
|
||||||
|
|
||||||
|
|
||||||
|
# Various tools for executing commands and looking at their output and status.
|
||||||
|
#
|
||||||
|
# NB This only works (and is only relevant) for UNIX.
|
||||||
|
|
||||||
|
def getstatusoutput(cmd):
|
||||||
|
"""Return (status, output) of executing cmd in a shell.
|
||||||
|
|
||||||
|
Execute the string 'cmd' in a shell with os.popen() and return a 2-tuple
|
||||||
|
(status, output). cmd is actually run as '{ cmd ; } 2>&1', so that the
|
||||||
|
returned output will contain output or error messages. A trailing newline
|
||||||
|
is stripped from the output. The exit status for the command can be
|
||||||
|
interpreted according to the rules for the C function wait(). Example:
|
||||||
|
|
||||||
|
>>> import subprocess
|
||||||
|
>>> subprocess.getstatusoutput('ls /bin/ls')
|
||||||
|
(0, '/bin/ls')
|
||||||
|
>>> subprocess.getstatusoutput('cat /bin/junk')
|
||||||
|
(256, 'cat: /bin/junk: No such file or directory')
|
||||||
|
>>> subprocess.getstatusoutput('/bin/junk')
|
||||||
|
(256, 'sh: /bin/junk: not found')
|
||||||
|
"""
|
||||||
|
pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')
|
||||||
|
text = pipe.read()
|
||||||
|
sts = pipe.close()
|
||||||
|
if sts is None: sts = 0
|
||||||
|
if text[-1:] == '\n': text = text[:-1]
|
||||||
|
return sts, text
|
||||||
|
|
||||||
|
|
||||||
|
def getoutput(cmd):
|
||||||
|
"""Return output (stdout or stderr) of executing cmd in a shell.
|
||||||
|
|
||||||
|
Like getstatusoutput(), except the exit status is ignored and the return
|
||||||
|
value is a string containing the command's output. Example:
|
||||||
|
|
||||||
|
>>> import subprocess
|
||||||
|
>>> subprocess.getoutput('ls /bin/ls')
|
||||||
|
'/bin/ls'
|
||||||
|
"""
|
||||||
|
return getstatusoutput(cmd)[1]
|
||||||
|
|
||||||
|
|
||||||
class Popen(object):
|
class Popen(object):
|
||||||
def __init__(self, args, bufsize=0, executable=None,
|
def __init__(self, args, bufsize=0, executable=None,
|
||||||
stdin=None, stdout=None, stderr=None,
|
stdin=None, stdout=None, stderr=None,
|
||||||
|
|
|
@ -868,7 +868,6 @@ _expectations = {
|
||||||
"""
|
"""
|
||||||
test__locale
|
test__locale
|
||||||
test_bsddb3
|
test_bsddb3
|
||||||
test_commands
|
|
||||||
test_crypt
|
test_crypt
|
||||||
test_curses
|
test_curses
|
||||||
test_dbm
|
test_dbm
|
||||||
|
@ -910,7 +909,6 @@ _expectations = {
|
||||||
test_bsddb
|
test_bsddb
|
||||||
test_bsddb3
|
test_bsddb3
|
||||||
test_bz2
|
test_bz2
|
||||||
test_commands
|
|
||||||
test_crypt
|
test_crypt
|
||||||
test_curses
|
test_curses
|
||||||
test_dbm
|
test_dbm
|
||||||
|
@ -1060,7 +1058,6 @@ _expectations = {
|
||||||
"""
|
"""
|
||||||
test_audioop
|
test_audioop
|
||||||
test_bsddb3
|
test_bsddb3
|
||||||
test_commands
|
|
||||||
test_curses
|
test_curses
|
||||||
test_dl
|
test_dl
|
||||||
test_epoll
|
test_epoll
|
||||||
|
|
|
@ -50,7 +50,6 @@ class AllTest(unittest.TestCase):
|
||||||
self.check_all("codecs")
|
self.check_all("codecs")
|
||||||
self.check_all("codeop")
|
self.check_all("codeop")
|
||||||
self.check_all("colorsys")
|
self.check_all("colorsys")
|
||||||
self.check_all("commands")
|
|
||||||
self.check_all("compileall")
|
self.check_all("compileall")
|
||||||
self.check_all("copy")
|
self.check_all("copy")
|
||||||
self.check_all("copyreg")
|
self.check_all("copyreg")
|
||||||
|
|
|
@ -1,47 +0,0 @@
|
||||||
'''
|
|
||||||
Tests for commands module
|
|
||||||
Nick Mathewson
|
|
||||||
'''
|
|
||||||
import unittest
|
|
||||||
import os, tempfile, re
|
|
||||||
|
|
||||||
from test.support import TestSkipped, run_unittest, reap_children
|
|
||||||
from commands import *
|
|
||||||
|
|
||||||
# The module says:
|
|
||||||
# "NB This only works (and is only relevant) for UNIX."
|
|
||||||
#
|
|
||||||
# Actually, getoutput should work on any platform with an os.popen, but
|
|
||||||
# I'll take the comment as given, and skip this suite.
|
|
||||||
|
|
||||||
if os.name != 'posix':
|
|
||||||
raise TestSkipped('Not posix; skipping test_commands')
|
|
||||||
|
|
||||||
|
|
||||||
class CommandTests(unittest.TestCase):
|
|
||||||
|
|
||||||
def test_getoutput(self):
|
|
||||||
self.assertEquals(getoutput('echo xyzzy'), 'xyzzy')
|
|
||||||
self.assertEquals(getstatusoutput('echo xyzzy'), (0, 'xyzzy'))
|
|
||||||
|
|
||||||
# we use mkdtemp in the next line to create an empty directory
|
|
||||||
# under our exclusive control; from that, we can invent a pathname
|
|
||||||
# that we _know_ won't exist. This is guaranteed to fail.
|
|
||||||
dir = None
|
|
||||||
try:
|
|
||||||
dir = tempfile.mkdtemp()
|
|
||||||
name = os.path.join(dir, "foo")
|
|
||||||
|
|
||||||
status, output = getstatusoutput('cat ' + name)
|
|
||||||
self.assertNotEquals(status, 0)
|
|
||||||
finally:
|
|
||||||
if dir is not None:
|
|
||||||
os.rmdir(dir)
|
|
||||||
|
|
||||||
|
|
||||||
def test_main():
|
|
||||||
run_unittest(CommandTests)
|
|
||||||
reap_children()
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
test_main()
|
|
|
@ -702,10 +702,36 @@ class ProcessTestCase(unittest.TestCase):
|
||||||
p.terminate()
|
p.terminate()
|
||||||
self.assertNotEqual(p.wait(), 0)
|
self.assertNotEqual(p.wait(), 0)
|
||||||
|
|
||||||
|
class CommandTests(unittest.TestCase):
|
||||||
|
# The module says:
|
||||||
|
# "NB This only works (and is only relevant) for UNIX."
|
||||||
|
#
|
||||||
|
# Actually, getoutput should work on any platform with an os.popen, but
|
||||||
|
# I'll take the comment as given, and skip this suite.
|
||||||
|
if os.name == 'posix':
|
||||||
|
|
||||||
|
def test_getoutput(self):
|
||||||
|
self.assertEquals(subprocess.getoutput('echo xyzzy'), 'xyzzy')
|
||||||
|
self.assertEquals(subprocess.getstatusoutput('echo xyzzy'),
|
||||||
|
(0, 'xyzzy'))
|
||||||
|
|
||||||
|
# we use mkdtemp in the next line to create an empty directory
|
||||||
|
# under our exclusive control; from that, we can invent a pathname
|
||||||
|
# that we _know_ won't exist. This is guaranteed to fail.
|
||||||
|
dir = None
|
||||||
|
try:
|
||||||
|
dir = tempfile.mkdtemp()
|
||||||
|
name = os.path.join(dir, "foo")
|
||||||
|
|
||||||
|
status, output = subprocess.getstatusoutput('cat ' + name)
|
||||||
|
self.assertNotEquals(status, 0)
|
||||||
|
finally:
|
||||||
|
if dir is not None:
|
||||||
|
os.rmdir(dir)
|
||||||
|
|
||||||
def test_main():
|
def test_main():
|
||||||
support.run_unittest(ProcessTestCase)
|
support.run_unittest(ProcessTestCase, CommandTests)
|
||||||
if hasattr(support, "reap_children"):
|
support.reap_children()
|
||||||
support.reap_children()
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main() # XXX test_main()
|
test_main()
|
||||||
|
|
|
@ -56,6 +56,9 @@ Extension Modules
|
||||||
Library
|
Library
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
- The ``commands`` module has been removed. Its getoutput() and
|
||||||
|
getstatusoutput() functions have been moved to the ``subprocess`` module.
|
||||||
|
|
||||||
- The ``http`` package was created; it contains the old ``httplib``
|
- The ``http`` package was created; it contains the old ``httplib``
|
||||||
as ``http.client``, ``Cookie`` as ``http.cookies``, ``cookielib``
|
as ``http.client``, ``Cookie`` as ``http.cookies``, ``cookielib``
|
||||||
as ``http.cookiejar``, and the content of the three ``HTTPServer``
|
as ``http.cookiejar``, and the content of the three ``HTTPServer``
|
||||||
|
|
|
@ -1811,7 +1811,6 @@ datetime Basic date and time types.
|
||||||
code Utilities needed to emulate Python's interactive interpreter
|
code Utilities needed to emulate Python's interactive interpreter
|
||||||
codecs Lookup existing Unicode encodings and register new ones.
|
codecs Lookup existing Unicode encodings and register new ones.
|
||||||
colorsys Conversion functions between RGB and other color systems.
|
colorsys Conversion functions between RGB and other color systems.
|
||||||
commands Tools for executing UNIX commands .
|
|
||||||
compileall Force "compilation" of all .py files in a directory.
|
compileall Force "compilation" of all .py files in a directory.
|
||||||
configparser Configuration file parser (much like windows .ini files)
|
configparser Configuration file parser (much like windows .ini files)
|
||||||
copy Generic shallow and deep copying operations.
|
copy Generic shallow and deep copying operations.
|
||||||
|
|
Loading…
Reference in New Issue