Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue12983>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue12729>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun :
TemporaryDirectory.cleanup follows symbolic links to directories and tries to
clean them as well. Try this (on Linux):
import os, tempfile
with tempfile.TemporaryDirectory() as d:
os.symlink("/proc", d + "/test")
--
comp
New submission from Evgeny Kapun :
This code crashes Python:
import gc
gc.get_referents(object.__dict__)[0].clear()
gc.get_referents(type.__dict__)[0].clear()
type("A", (), {})()
--
components: Interpreter Core
messages: 139572
nosy: abacabadabacaba
priority: normal
severi
New submission from Evgeny Kapun :
This code crashes Python:
import io, mmap
io.BytesIO(b' ').readinto(memoryview(mmap.mmap(-1, 1, prot=mmap.PROT_READ)))
--
components: Interpreter Core
messages: 121446
nosy: abacabadabacaba
priority: normal
severity: normal
status:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue1508475>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
If I run this code:
import asyncio as a
@a.coroutine
def coro1():
yield from a.ensure_future(coro2())
print("Still here")
yield from a.sleep(1)
print("Still here 2")
@a.coroutine
def co
Evgeny Kapun added the comment:
The problem is that the task doesn't catch CancelledError, yet it disappears.
--
___
Python tracker
<http://bugs.python.org/is
New submission from Evgeny Kapun:
Code:
import asyncio as a
import socket as s
@a.coroutine
def coro():
s1, s2 = s.socketpair()
s1.setblocking(False)
s2.setblocking(False)
try:
yield from a.wait_for(loop.sock_recv(s2, 1), 1
New submission from Evgeny Kapun:
According to the documentation, PyIter_Next should raise TypeError if passed an
object which is not an iterator as an argument. Instead, it calls a function
through a null pointer, which leads to a crash.
--
components: Interpreter Core
messages
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue7434>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue22524>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue9334>
___
___
Python-bugs-list mailing list
Unsubscribe:
Evgeny Kapun added the comment:
The way how argparse currently parses option arguments is broken. If a long
option requires an argument and it's value isn't specified together with the
option (using --option=value syntax), then the following argument should be
interpreted as that
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue11406>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
When called with a file descriptor as an argument, os.listdir() duplicates it
to pass to fdopendir(3). If this call fails, the new file descriptor is not
closed, which leads to file descriptor leak.
--
components: Library (Lib)
messages: 188322
nosy
Evgeny Kapun added the comment:
To make fdopendir fail, just pass any valid FD which points to a non-directory,
such as a file or a pipe.
--
___
Python tracker
<http://bugs.python.org/issue17
Evgeny Kapun added the comment:
Simple test:
while True:
try:
listdir(0)
except NotADirectoryError:
pass
--
___
Python tracker
<http://bugs.python.org/issue17
New submission from Evgeny Kapun:
>>> import collections
>>> collections.Counter(self=1)
Traceback (most recent call last):
File "", line 1, in
TypeError: __init__() got multiple values for argument 'self'
>>> collections.OrderedDict(self=&q
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue24129>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
Currently, operator.methodcaller behaves like this:
def methodcaller(name, *args, **kwargs):
def caller(obj):
return getattr(obj, name)(*args, **kwargs)
return caller
That is, it is possible to supply arguments when the object
New submission from Evgeny Kapun:
Implementations of repr for some of the types in the standard library doesn't
check for self-referential structures. As a result, when calling repr() on such
objects, Python crashes due to infinite recursion.
Example:
>>> import f
Evgeny Kapun added the comment:
There are methods that accept a single argument and behave like a binary
operation or a predicate. It would be useful to be able to turn them into
binary functions for use with higher-order functions like map and reduce:
reduce(methodcaller("combine&qu
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue18531>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue2142>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
I tried to use ssl module to create a server with a certificate that uses an
ECC key. However, this didn't work. Here is how to reproduce this:
First, generate a key and a certificate:
$ openssl req -newkey ec -pkeyopt ec_paramgen_curve:prime256v1
Evgeny Kapun added the comment:
So, it looks like OpenSSL doesn't support keys using arbitrary curves at all.
Then why don't I get an exception when trying to load such a key? Instead it
just quietly disables all authenticated ciphersuites (anonymous ciphersuites
still work) and th
New submission from Evgeny Kapun:
Many functions in os module support dir_fd and follow_symlinks keyword
arguments. I think that os.listdir and os.scandir should do likewise.
See also: issue25996.
--
components: Library (Lib)
messages: 266091
nosy: abacabadabacaba
priority: normal
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue25996>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
Currently, os.listdir returns a list of strings, unless called with a bytes
argument, in which case a list of byte strings is returned. I think that there
should be a keyword argument to override this selection.
--
components: Library (Lib)
messages
New submission from Evgeny Kapun:
Currently, when given a file descriptor, os.listdir will duplicate it so that
the original file descriptor is not closed. In many cases, a file descriptor is
not needed anymore after directory is listed, so this is not necessary. I
propose adding a keyword
Evgeny Kapun added the comment:
1. Yes, it's possible to emulate dir_fd this way, so this is just for
convenience.
2. If follow_symlinks is False, O_NOFOLLOW is passed to the underlying open(2)
syscall. Of course, this doesn't make sense if a file descriptor is passe
Evgeny Kapun added the comment:
Not a problem, just two unnecessary syscalls. Also, I think that many of those
who pass a file descriptor to os.listdir don't need it afterwards, because
after you fstat() a file descriptor (to discover that it points to a directory)
and read the dire
Evgeny Kapun added the comment:
Mostly for consistency with other functions. Also, this provides an easy way to
walk a directory tree recursively: just call listdir on every member, and if it
doesn't raise OSError, that member must be a directory. With
follow_symlinks=False, this m
Evgeny Kapun added the comment:
Unfortunately, this doesn't work if I pass a file descriptor.
--
resolution: rejected ->
status: closed -> open
___
Python tracker
<http://bugs.python.
Evgeny Kapun added the comment:
Unfortunately, on Linux, handling names as Unicode can cause some problems. For
example, merely print()-ing such a name can cause UnicodeEncodeError.
--
___
Python tracker
<http://bugs.python.org/issue27
New submission from Evgeny Kapun:
In Modules/sre_lib.h on line 882 [1], a block of memory is allocated. If
SRE(match) function later terminates abruptly, either because of a signal or
because subsequent memory allocation fails, this block is never released.
[1] https://hg.python.org/cpython
New submission from Evgeny Kapun:
Looks like function in re module (match, fullmatch and so on) don't release
GIL, even though these operations can take much time. As a result, other
threads can't run while a pattern is being matched, and thread switching
doesn't
New submission from Evgeny Kapun:
Iterator returned by re.finditer includes a SRE_STATE value, which is not
designed to be used concurrently. However, it is possible to call __next__ on
such iterator while another such call is in progress, e.g. from a signal
handler. This may result in
Evgeny Kapun added the comment:
Memory leak only happens if match operation terminates abruptly, e.g. because
of SIGINT. In this case, DO_JUMP doesn't come back.
--
___
Python tracker
<http://bugs.python.org/is
Evgeny Kapun added the comment:
Aren't Python strings immutable?
Also, match functions still permit execution of signal handlers, which can
execute any Python code.
If GIL is needed during matching, can it be released temporarily to permit
thread swit
Evgeny Kapun added the comment:
Tracemalloc code:
import re
import signal
import tracemalloc
class AlarmError(Exception):
pass
def handle_alarm(signal, frame):
raise AlarmError
signal.signal(signal.SIGALRM, handle_alarm)
s1
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue433030>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue9134>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
This pattern matches:
re.match('(?:()|(?(1)()|z)){2}(?(2)a|z)', 'a')
But this doesn't:
re.match('(?:()|(?(1)()|z)){0,2}(?(2)a|z)', 'a')
The difference is that {2} is replaced by {0,2}. This shouldn't
Evgeny Kapun added the comment:
This patch doesn't fix the issue. The problem is that the list starting with
state->repeat doesn't necessarily contains all repeat contexts that are
allocated. Indeed, here [1] and here [2] repeat contexts are temporarily
removed from the list.
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue2636>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue22672>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
In the documentation, it is said:
Indentation is rejected as inconsistent if a source file mixes tabs and
spaces in a way that makes the meaning dependent on the worth of a tab in
spaces; a TabError is raised in that case.
But that's not true
New submission from Evgeny Kapun:
Currently, Python always changes handling of certain signals on startup:
SIGPIPE is ignored, and SIGINT is handled by a function that raises
KeyboardInterrupt exception. As a result, if the user presses Ctrl-C, a
backtrace is printed to stderr.
Some program
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue14228>
___
___
Python-bugs-list mailing list
Unsubscribe:
Evgeny Kapun added the comment:
Prohibiting tabs after spaces is not enough. For example, Python rejects this
code:
if 1:
if 1:
pass
because its indentation is invalid if tab width is 1. However, it accepts this
code:
if 1:
if 1:
<10 spaces>pass
despi
New submission from Evgeny Kapun:
GzipFile's underlying stream can be a raw stream (such as FileIO), and such
streams can return short reads and writes at any time (e.g. due to signals).
The correct behavior in case of short read or write is to retry the call to
read or write the rema
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue15994>
___
___
Python-bugs-list mailing list
Unsubscribe:
Changes by Evgeny Kapun :
--
nosy: +abacabadabacaba
___
Python tracker
<http://bugs.python.org/issue13322>
___
___
Python-bugs-list mailing list
Unsubscribe:
New submission from Evgeny Kapun:
>From the documentation for GzipFile.peek():
At most one single read on the compressed stream is done to satisfy the
call.
If "compressed stream" means the underlying file object, then this is not true.
The method tries to return at l
56 matches
Mail list logo