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
0ff89099
Commit
0ff89099
authored
Sep 09, 2015
by
Martin Panter
Browse files
Options
Browse Files
Download
Plain Diff
Issue #23738: Merge 3.4 into 3.5
parents
dfcfe133
bf19d169
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
75 additions
and
33 deletions
+75
-33
Doc/library/binascii.rst
Doc/library/binascii.rst
+1
-1
Doc/library/os.rst
Doc/library/os.rst
+16
-15
Doc/library/zlib.rst
Doc/library/zlib.rst
+4
-4
Lib/test/test_binascii.py
Lib/test/test_binascii.py
+3
-0
Lib/test/test_os.py
Lib/test/test_os.py
+22
-1
Lib/test/test_popen.py
Lib/test/test_popen.py
+4
-0
Lib/test/test_posix.py
Lib/test/test_posix.py
+8
-0
Lib/test/test_zlib.py
Lib/test/test_zlib.py
+6
-2
Modules/clinic/posixmodule.c.h
Modules/clinic/posixmodule.c.h
+3
-3
Modules/posixmodule.c
Modules/posixmodule.c
+8
-7
No files found.
Doc/library/binascii.rst
View file @
0ff89099
...
@@ -59,7 +59,7 @@ The :mod:`binascii` module defines the following functions:
...
@@ -59,7 +59,7 @@ The :mod:`binascii` module defines the following functions:
should be at most 57 to adhere to the base64 standard.
should be at most 57 to adhere to the base64 standard.
.. function:: a2b_qp(
string
, header=False)
.. function:: a2b_qp(
data
, header=False)
Convert a block of quoted-printable data back to binary and return the binary
Convert a block of quoted-printable data back to binary and return the binary
data. More than one line may be passed at a time. If the optional argument
data. More than one line may be passed at a time. If the optional argument
...
...
Doc/library/os.rst
View file @
0ff89099
...
@@ -857,9 +857,9 @@ as internal buffering of data.
...
@@ -857,9 +857,9 @@ as internal buffering of data.
:data:`os.SEEK_HOLE` or :data:`os.SEEK_DATA`.
:data:`os.SEEK_HOLE` or :data:`os.SEEK_DATA`.
.. function:: open(
file
, flags, mode=0o777, *, dir_fd=None)
.. function:: open(
path
, flags, mode=0o777, *, dir_fd=None)
Open the file *
file
* and set various flags according to *flags* and possibly
Open the file *
path
* and set various flags according to *flags* and possibly
its mode according to *mode*. When computing *mode*, the current umask value
its mode according to *mode*. When computing *mode*, the current umask value
is first masked out. Return the file descriptor for the newly opened file.
is first masked out. Return the file descriptor for the newly opened file.
The new file descriptor is :ref:`non-inheritable <fd_inheritance>`.
The new file descriptor is :ref:`non-inheritable <fd_inheritance>`.
...
@@ -1071,10 +1071,10 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
...
@@ -1071,10 +1071,10 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
:exc:`InterruptedError` exception (see :pep:`475` for the rationale).
:exc:`InterruptedError` exception (see :pep:`475` for the rationale).
.. function:: sendfile(out, in, offset,
nbytes
)
.. function:: sendfile(out, in, offset,
count
)
sendfile(out, in, offset,
nbytes
, headers=None, trailers=None, flags=0)
sendfile(out, in, offset,
count
, headers=None, trailers=None, flags=0)
Copy *
nbytes
* bytes from file descriptor *in* to file descriptor *out*
Copy *
count
* bytes from file descriptor *in* to file descriptor *out*
starting at *offset*.
starting at *offset*.
Return the number of bytes sent. When EOF is reached return 0.
Return the number of bytes sent. When EOF is reached return 0.
...
@@ -1088,7 +1088,7 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
...
@@ -1088,7 +1088,7 @@ or `the MSDN <http://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Window
*trailers* are arbitrary sequences of buffers that are written before and
*trailers* are arbitrary sequences of buffers that are written before and
after the data from *in* is written. It returns the same as the first case.
after the data from *in* is written. It returns the same as the first case.
On Mac OS X and FreeBSD, a value of 0 for *
nbytes
* specifies to send until
On Mac OS X and FreeBSD, a value of 0 for *
count
* specifies to send until
the end of *in* is reached.
the end of *in* is reached.
All platforms support sockets as *out* file descriptor, and some platforms
All platforms support sockets as *out* file descriptor, and some platforms
...
@@ -1690,10 +1690,10 @@ features:
...
@@ -1690,10 +1690,10 @@ features:
The *dir_fd* argument.
The *dir_fd* argument.
.. function:: mknod(
filename
, mode=0o600, device=0, *, dir_fd=None)
.. function:: mknod(
path
, mode=0o600, device=0, *, dir_fd=None)
Create a filesystem node (file, device special file or named pipe) named
Create a filesystem node (file, device special file or named pipe) named
*
filename
*. *mode* specifies both the permissions to use and the type of node
*
path
*. *mode* specifies both the permissions to use and the type of node
to be created, being combined (bitwise OR) with one of ``stat.S_IFREG``,
to be created, being combined (bitwise OR) with one of ``stat.S_IFREG``,
``stat.S_IFCHR``, ``stat.S_IFBLK``, and ``stat.S_IFIFO`` (those constants are
``stat.S_IFCHR``, ``stat.S_IFBLK``, and ``stat.S_IFIFO`` (those constants are
available in :mod:`stat`). For ``stat.S_IFCHR`` and ``stat.S_IFBLK``,
available in :mod:`stat`). For ``stat.S_IFCHR`` and ``stat.S_IFBLK``,
...
@@ -2389,9 +2389,9 @@ features:
...
@@ -2389,9 +2389,9 @@ features:
.. versionadded:: 3.3
.. versionadded:: 3.3
.. function:: symlink(s
ource, link_name
, target_is_directory=False, *, dir_fd=None)
.. function:: symlink(s
rc, dst
, target_is_directory=False, *, dir_fd=None)
Create a symbolic link pointing to *s
ource* named *link_name
*.
Create a symbolic link pointing to *s
rc* named *dst
*.
On Windows, a symlink represents either a file or a directory, and does not
On Windows, a symlink represents either a file or a directory, and does not
morph to the target dynamically. If the target is present, the type of the
morph to the target dynamically. If the target is present, the type of the
...
@@ -2461,20 +2461,20 @@ features:
...
@@ -2461,20 +2461,20 @@ features:
The *dir_fd* parameter.
The *dir_fd* parameter.
.. function:: utime(path, times=None, *
, ns=None
, dir_fd=None, follow_symlinks=True)
.. function:: utime(path, times=None, *
[, ns]
, dir_fd=None, follow_symlinks=True)
Set the access and modified times of the file specified by *path*.
Set the access and modified times of the file specified by *path*.
:func:`utime` takes two optional parameters, *times* and *ns*.
:func:`utime` takes two optional parameters, *times* and *ns*.
These specify the times set on *path* and are used as follows:
These specify the times set on *path* and are used as follows:
- If *ns* is
not ``None``
,
- If *ns* is
specified
,
it must be a 2-tuple of the form ``(atime_ns, mtime_ns)``
it must be a 2-tuple of the form ``(atime_ns, mtime_ns)``
where each member is an int expressing nanoseconds.
where each member is an int expressing nanoseconds.
- If *times* is not ``None``,
- If *times* is not ``None``,
it must be a 2-tuple of the form ``(atime, mtime)``
it must be a 2-tuple of the form ``(atime, mtime)``
where each member is an int or float expressing seconds.
where each member is an int or float expressing seconds.
- If *times*
and *ns* are both ``None``
,
- If *times*
is ``None`` and *ns* is unspecified
,
this is equivalent to specifying ``ns=(atime_ns, mtime_ns)``
this is equivalent to specifying ``ns=(atime_ns, mtime_ns)``
where both times are the current time.
where both times are the current time.
...
@@ -3023,9 +3023,10 @@ written in Python, such as a mail server's external command delivery program.
...
@@ -3023,9 +3023,10 @@ written in Python, such as a mail server's external command delivery program.
Availability: Unix.
Availability: Unix.
.. function:: popen(c
omman
d, mode='r', buffering=-1)
.. function:: popen(c
m
d, mode='r', buffering=-1)
Open a pipe to or from *command*. The return value is an open file object
Open a pipe to or from command *cmd*.
The return value is an open file object
connected to the pipe, which can be read or written depending on whether *mode*
connected to the pipe, which can be read or written depending on whether *mode*
is ``'r'`` (default) or ``'w'``. The *buffering* argument has the same meaning as
is ``'r'`` (default) or ``'w'``. The *buffering* argument has the same meaning as
the corresponding argument to the built-in :func:`open` function. The
the corresponding argument to the built-in :func:`open` function. The
...
...
Doc/library/zlib.rst
View file @
0ff89099
...
@@ -58,7 +58,7 @@ The available exception and functions in this module are:
...
@@ -58,7 +58,7 @@ The available exception and functions in this module are:
Raises the :exc:`error` exception if any error occurs.
Raises the :exc:`error` exception if any error occurs.
.. function:: compressobj(level=-1, method=DEFLATED, wbits=15, mem
l
evel=8, strategy=Z_DEFAULT_STRATEGY[, zdict])
.. function:: compressobj(level=-1, method=DEFLATED, wbits=15, mem
L
evel=8, strategy=Z_DEFAULT_STRATEGY[, zdict])
Returns a compression object, to be used for compressing data streams that won't
Returns a compression object, to be used for compressing data streams that won't
fit into memory at once.
fit into memory at once.
...
@@ -75,9 +75,9 @@ The available exception and functions in this module are:
...
@@ -75,9 +75,9 @@ The available exception and functions in this module are:
should be an integer from ``8`` to ``15``. Higher values give better
should be an integer from ``8`` to ``15``. Higher values give better
compression, but use more memory.
compression, but use more memory.
*memlevel* controls the amount of memory used for internal compression state.
The *memLevel* argument controls the amount of memory used for the
Valid values range from ``1`` to ``9``. Higher values using more memory,
internal compression state. Valid values range from ``1`` to ``9``.
but are faster and produce smaller output.
Higher values use more memory,
but are faster and produce smaller output.
*strategy* is used to tune the compression algorithm. Possible values are
*strategy* is used to tune the compression algorithm. Possible values are
``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, and ``Z_HUFFMAN_ONLY``.
``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, and ``Z_HUFFMAN_ONLY``.
...
...
Lib/test/test_binascii.py
View file @
0ff89099
...
@@ -178,6 +178,8 @@ class BinASCIITest(unittest.TestCase):
...
@@ -178,6 +178,8 @@ class BinASCIITest(unittest.TestCase):
self
.
assertEqual
(
binascii
.
unhexlify
(
self
.
type2test
(
t
)),
u
)
self
.
assertEqual
(
binascii
.
unhexlify
(
self
.
type2test
(
t
)),
u
)
def
test_qp
(
self
):
def
test_qp
(
self
):
binascii
.
a2b_qp
(
data
=
b""
,
header
=
False
)
# Keyword arguments allowed
# A test for SF bug 534347 (segfaults without the proper fix)
# A test for SF bug 534347 (segfaults without the proper fix)
try
:
try
:
binascii
.
a2b_qp
(
b""
,
**
{
1
:
1
})
binascii
.
a2b_qp
(
b""
,
**
{
1
:
1
})
...
@@ -185,6 +187,7 @@ class BinASCIITest(unittest.TestCase):
...
@@ -185,6 +187,7 @@ class BinASCIITest(unittest.TestCase):
pass
pass
else
:
else
:
self
.
fail
(
"binascii.a2b_qp(**{1:1}) didn't raise TypeError"
)
self
.
fail
(
"binascii.a2b_qp(**{1:1}) didn't raise TypeError"
)
self
.
assertEqual
(
binascii
.
a2b_qp
(
b"= "
),
b"= "
)
self
.
assertEqual
(
binascii
.
a2b_qp
(
b"= "
),
b"= "
)
self
.
assertEqual
(
binascii
.
a2b_qp
(
b"=="
),
b"="
)
self
.
assertEqual
(
binascii
.
a2b_qp
(
b"=="
),
b"="
)
self
.
assertEqual
(
binascii
.
a2b_qp
(
b"=AX"
),
b"=AX"
)
self
.
assertEqual
(
binascii
.
a2b_qp
(
b"=AX"
),
b"=AX"
)
...
...
Lib/test/test_os.py
View file @
0ff89099
...
@@ -85,7 +85,7 @@ HAVE_WHEEL_GROUP = sys.platform.startswith('freebsd') and os.getgid() == 0
...
@@ -85,7 +85,7 @@ HAVE_WHEEL_GROUP = sys.platform.startswith('freebsd') and os.getgid() == 0
# Tests creating TESTFN
# Tests creating TESTFN
class
FileTests
(
unittest
.
TestCase
):
class
FileTests
(
unittest
.
TestCase
):
def
setUp
(
self
):
def
setUp
(
self
):
if
os
.
path
.
exists
(
support
.
TESTFN
):
if
os
.
path
.
l
exists
(
support
.
TESTFN
):
os
.
unlink
(
support
.
TESTFN
)
os
.
unlink
(
support
.
TESTFN
)
tearDown
=
setUp
tearDown
=
setUp
...
@@ -209,6 +209,19 @@ class FileTests(unittest.TestCase):
...
@@ -209,6 +209,19 @@ class FileTests(unittest.TestCase):
with
open
(
TESTFN2
,
'r'
)
as
f
:
with
open
(
TESTFN2
,
'r'
)
as
f
:
self
.
assertEqual
(
f
.
read
(),
"1"
)
self
.
assertEqual
(
f
.
read
(),
"1"
)
def
test_open_keywords
(
self
):
f
=
os
.
open
(
path
=
__file__
,
flags
=
os
.
O_RDONLY
,
mode
=
0o777
,
dir_fd
=
None
)
os
.
close
(
f
)
def
test_symlink_keywords
(
self
):
symlink
=
support
.
get_attribute
(
os
,
"symlink"
)
try
:
symlink
(
src
=
'target'
,
dst
=
support
.
TESTFN
,
target_is_directory
=
False
,
dir_fd
=
None
)
except
(
NotImplementedError
,
OSError
):
pass
# No OS support or unprivileged user
# Test attributes on return values from os.*stat* family.
# Test attributes on return values from os.*stat* family.
class
StatAttributeTests
(
unittest
.
TestCase
):
class
StatAttributeTests
(
unittest
.
TestCase
):
...
@@ -2313,6 +2326,14 @@ class TestSendfile(unittest.TestCase):
...
@@ -2313,6 +2326,14 @@ class TestSendfile(unittest.TestCase):
os
.
sendfile
(
self
.
sockno
,
self
.
fileno
,
-
1
,
4096
)
os
.
sendfile
(
self
.
sockno
,
self
.
fileno
,
-
1
,
4096
)
self
.
assertEqual
(
cm
.
exception
.
errno
,
errno
.
EINVAL
)
self
.
assertEqual
(
cm
.
exception
.
errno
,
errno
.
EINVAL
)
def
test_keywords
(
self
):
# Keyword arguments should be supported
os
.
sendfile
(
out
=
self
.
sockno
,
offset
=
0
,
count
=
4096
,
**
{
'in'
:
self
.
fileno
})
if
self
.
SUPPORT_HEADERS_TRAILERS
:
os
.
sendfile
(
self
.
sockno
,
self
.
fileno
,
offset
=
0
,
count
=
4096
,
headers
=
None
,
trailers
=
None
,
flags
=
0
)
# --- headers / trailers tests
# --- headers / trailers tests
@
requires_headers_trailers
@
requires_headers_trailers
...
...
Lib/test/test_popen.py
View file @
0ff89099
...
@@ -57,5 +57,9 @@ class PopenTest(unittest.TestCase):
...
@@ -57,5 +57,9 @@ class PopenTest(unittest.TestCase):
with
os
.
popen
(
"echo hello"
)
as
f
:
with
os
.
popen
(
"echo hello"
)
as
f
:
self
.
assertEqual
(
list
(
f
),
[
"hello
\
n
"
])
self
.
assertEqual
(
list
(
f
),
[
"hello
\
n
"
])
def
test_keywords
(
self
):
with
os
.
popen
(
cmd
=
"exit 0"
,
mode
=
"w"
,
buffering
=-
1
):
pass
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
unittest
.
main
()
unittest
.
main
()
Lib/test/test_posix.py
View file @
0ff89099
...
@@ -442,6 +442,14 @@ class PosixTester(unittest.TestCase):
...
@@ -442,6 +442,14 @@ class PosixTester(unittest.TestCase):
else
:
else
:
self
.
assertTrue
(
stat
.
S_ISFIFO
(
posix
.
stat
(
support
.
TESTFN
).
st_mode
))
self
.
assertTrue
(
stat
.
S_ISFIFO
(
posix
.
stat
(
support
.
TESTFN
).
st_mode
))
# Keyword arguments are also supported
support
.
unlink
(
support
.
TESTFN
)
try
:
posix
.
mknod
(
path
=
support
.
TESTFN
,
mode
=
mode
,
device
=
0
,
dir_fd
=
None
)
except
OSError
as
e
:
self
.
assertIn
(
e
.
errno
,
(
errno
.
EPERM
,
errno
.
EINVAL
))
@
unittest
.
skipUnless
(
hasattr
(
posix
,
'stat'
),
'test needs posix.stat()'
)
@
unittest
.
skipUnless
(
hasattr
(
posix
,
'stat'
),
'test needs posix.stat()'
)
@
unittest
.
skipUnless
(
hasattr
(
posix
,
'makedev'
),
'test needs posix.makedev()'
)
@
unittest
.
skipUnless
(
hasattr
(
posix
,
'makedev'
),
'test needs posix.makedev()'
)
def
test_makedev
(
self
):
def
test_makedev
(
self
):
...
...
Lib/test/test_zlib.py
View file @
0ff89099
...
@@ -222,9 +222,9 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
...
@@ -222,9 +222,9 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
level
=
2
level
=
2
method
=
zlib
.
DEFLATED
method
=
zlib
.
DEFLATED
wbits
=
-
12
wbits
=
-
12
mem
l
evel
=
9
mem
L
evel
=
9
strategy
=
zlib
.
Z_FILTERED
strategy
=
zlib
.
Z_FILTERED
co
=
zlib
.
compressobj
(
level
,
method
,
wbits
,
mem
l
evel
,
strategy
)
co
=
zlib
.
compressobj
(
level
,
method
,
wbits
,
mem
L
evel
,
strategy
)
x1
=
co
.
compress
(
HAMLET_SCENE
)
x1
=
co
.
compress
(
HAMLET_SCENE
)
x2
=
co
.
flush
()
x2
=
co
.
flush
()
dco
=
zlib
.
decompressobj
(
wbits
)
dco
=
zlib
.
decompressobj
(
wbits
)
...
@@ -232,6 +232,10 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
...
@@ -232,6 +232,10 @@ class CompressObjectTestCase(BaseCompressTestCase, unittest.TestCase):
y2
=
dco
.
flush
()
y2
=
dco
.
flush
()
self
.
assertEqual
(
HAMLET_SCENE
,
y1
+
y2
)
self
.
assertEqual
(
HAMLET_SCENE
,
y1
+
y2
)
# keyword arguments should also be supported
zlib
.
compressobj
(
level
=
level
,
method
=
method
,
wbits
=
wbits
,
memLevel
=
memLevel
,
strategy
=
strategy
,
zdict
=
b""
)
def
test_compressincremental
(
self
):
def
test_compressincremental
(
self
):
# compress object in steps, decompress object as one-shot
# compress object in steps, decompress object as one-shot
data
=
HAMLET_SCENE
*
128
data
=
HAMLET_SCENE
*
128
...
...
Modules/clinic/posixmodule.c.h
View file @
0ff89099
...
@@ -1487,10 +1487,10 @@ PyDoc_STRVAR(os_utime__doc__,
...
@@ -1487,10 +1487,10 @@ PyDoc_STRVAR(os_utime__doc__,
"
\n
"
"
\n
"
"If times is not None, it must be a tuple (atime, mtime);
\n
"
"If times is not None, it must be a tuple (atime, mtime);
\n
"
" atime and mtime should be expressed as float seconds since the epoch.
\n
"
" atime and mtime should be expressed as float seconds since the epoch.
\n
"
"If ns is
not None
, it must be a tuple (atime_ns, mtime_ns);
\n
"
"If ns is
specified
, it must be a tuple (atime_ns, mtime_ns);
\n
"
" atime_ns and mtime_ns should be expressed as integer nanoseconds
\n
"
" atime_ns and mtime_ns should be expressed as integer nanoseconds
\n
"
" since the epoch.
\n
"
" since the epoch.
\n
"
"If
both times and ns are None
, utime uses the current time.
\n
"
"If
times is None and ns is unspecified
, utime uses the current time.
\n
"
"Specifying tuples for both times and ns is an error.
\n
"
"Specifying tuples for both times and ns is an error.
\n
"
"
\n
"
"
\n
"
"If dir_fd is not None, it should be a file descriptor open to a directory,
\n
"
"If dir_fd is not None, it should be a file descriptor open to a directory,
\n
"
...
@@ -5788,4 +5788,4 @@ exit:
...
@@ -5788,4 +5788,4 @@ exit:
#ifndef OS_SET_HANDLE_INHERITABLE_METHODDEF
#ifndef OS_SET_HANDLE_INHERITABLE_METHODDEF
#define OS_SET_HANDLE_INHERITABLE_METHODDEF
#define OS_SET_HANDLE_INHERITABLE_METHODDEF
#endif
/* !defined(OS_SET_HANDLE_INHERITABLE_METHODDEF) */
#endif
/* !defined(OS_SET_HANDLE_INHERITABLE_METHODDEF) */
/*[clinic end generated code: output=
f3f92b2d2e2c3fe3
input=a9049054013a1b77]*/
/*[clinic end generated code: output=
95824c52fd034654
input=a9049054013a1b77]*/
Modules/posixmodule.c
View file @
0ff89099
...
@@ -4679,7 +4679,7 @@ os.utime
...
@@ -4679,7 +4679,7 @@ os.utime
dir_fd: dir_fd(requires='futimensat') = None
dir_fd: dir_fd(requires='futimensat') = None
follow_symlinks: bool=True
follow_symlinks: bool=True
# "utime(path, times=None, *
, ns=None
, dir_fd=None, follow_symlinks=True)\n\
# "utime(path, times=None, *
[, ns]
, dir_fd=None, follow_symlinks=True)\n\
Set the access and modified time of path.
Set the access and modified time of path.
...
@@ -4689,10 +4689,10 @@ On some platforms, path may also be specified as an open file descriptor.
...
@@ -4689,10 +4689,10 @@ On some platforms, path may also be specified as an open file descriptor.
If times is not None, it must be a tuple (atime, mtime);
If times is not None, it must be a tuple (atime, mtime);
atime and mtime should be expressed as float seconds since the epoch.
atime and mtime should be expressed as float seconds since the epoch.
If ns is
not None
, it must be a tuple (atime_ns, mtime_ns);
If ns is
specified
, it must be a tuple (atime_ns, mtime_ns);
atime_ns and mtime_ns should be expressed as integer nanoseconds
atime_ns and mtime_ns should be expressed as integer nanoseconds
since the epoch.
since the epoch.
If
both times and ns are None
, utime uses the current time.
If
times is None and ns is unspecified
, utime uses the current time.
Specifying tuples for both times and ns is an error.
Specifying tuples for both times and ns is an error.
If dir_fd is not None, it should be a file descriptor open to a directory,
If dir_fd is not None, it should be a file descriptor open to a directory,
...
@@ -4710,7 +4710,7 @@ dir_fd and follow_symlinks may not be available on your platform.
...
@@ -4710,7 +4710,7 @@ dir_fd and follow_symlinks may not be available on your platform.
static
PyObject
*
static
PyObject
*
os_utime_impl
(
PyModuleDef
*
module
,
path_t
*
path
,
PyObject
*
times
,
os_utime_impl
(
PyModuleDef
*
module
,
path_t
*
path
,
PyObject
*
times
,
PyObject
*
ns
,
int
dir_fd
,
int
follow_symlinks
)
PyObject
*
ns
,
int
dir_fd
,
int
follow_symlinks
)
/*[clinic end generated code: output=31f3434e560ba2f0 input=
1f18c17d5941aa82
]*/
/*[clinic end generated code: output=31f3434e560ba2f0 input=
081cdc54ca685385
]*/
{
{
#ifdef MS_WINDOWS
#ifdef MS_WINDOWS
HANDLE
hFile
;
HANDLE
hFile
;
...
@@ -8235,10 +8235,10 @@ os_write_impl(PyModuleDef *module, int fd, Py_buffer *data)
...
@@ -8235,10 +8235,10 @@ os_write_impl(PyModuleDef *module, int fd, Py_buffer *data)
#ifdef HAVE_SENDFILE
#ifdef HAVE_SENDFILE
PyDoc_STRVAR
(
posix_sendfile__doc__
,
PyDoc_STRVAR
(
posix_sendfile__doc__
,
"sendfile(out, in, offset,
nbytes
) -> byteswritten
\n
\
"sendfile(out, in, offset,
count
) -> byteswritten
\n
\
sendfile(out, in, offset,
nbytes
, headers=None, trailers=None, flags=0)
\n
\
sendfile(out, in, offset,
count
, headers=None, trailers=None, flags=0)
\n
\
-> byteswritten
\n
\
-> byteswritten
\n
\
Copy
nbytes
bytes from file descriptor in to file descriptor out."
);
Copy
count
bytes from file descriptor in to file descriptor out."
);
/* AC 3.5: don't bother converting, has optional group*/
/* AC 3.5: don't bother converting, has optional group*/
static
PyObject
*
static
PyObject
*
...
@@ -8258,6 +8258,7 @@ posix_sendfile(PyObject *self, PyObject *args, PyObject *kwdict)
...
@@ -8258,6 +8258,7 @@ posix_sendfile(PyObject *self, PyObject *args, PyObject *kwdict)
off_t
sbytes
;
off_t
sbytes
;
struct
sf_hdtr
sf
;
struct
sf_hdtr
sf
;
int
flags
=
0
;
int
flags
=
0
;
/* Beware that "in" clashes with Python's own "in" operator keyword */
static
char
*
keywords
[]
=
{
"out"
,
"in"
,
static
char
*
keywords
[]
=
{
"out"
,
"in"
,
"offset"
,
"count"
,
"offset"
,
"count"
,
"headers"
,
"trailers"
,
"flags"
,
NULL
};
"headers"
,
"trailers"
,
"flags"
,
NULL
};
...
...
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