[Python-Dev] The "humor" section of the website is a bit outdated...
Ok, in advance, my apologies for probably sending this to the wrong mailing list... Anyway, the most holy page in the entire Python website, containing all sorts of deadly and wicked items, seems to have gathered a couple pounds of dust: https://www.python.org/doc/humor/ And by "pounds of dust", I mean that 2 of the links don't work anymore: http://quotations.amk.ca/python-quotes/ seems to have been down for at least 3 years; available from archive.org ( http://web.archive.org/web/2011175522/http://quotations.amk.ca/python-quotes/ ) The Python humor wiki page is also gone: https://wiki.python.org/PythonHumor Being that the primary purpose is for proposing additions to the humor list, I don't think archive.org would be of much help for this one. -- Ryan (ライアン) Yoko Shimomura > ryo (supercell/EGOIST) > Hiroyuki Sawano >> everyone else http://kirbyfan64.github.io/ ___ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
[Python-Dev] IRC logs via BotBot.me
Hi. IRC #python-dev channel is nice place to know what happens recently. But I can't log in always because I use only laptop PC. I found BotBot.me seems nice IRC log service and used by some major channels. https://botbot.me/ I wonder if #python-dev is logged by BotBot.me. I'm sorry if it had rejected already. ___ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] IRC logs via BotBot.me
On Wed, Jan 4, 2017 at 3:27 PM, INADA Naoki wrote: > I wonder if #python-dev is logged by BotBot.me. > > I'm sorry if it had rejected already. I don't think so, but channel ops could request it. Also, I found (https://www.irccloud.com) to be helpful to look at IRC logs when away. (You can also permanently stay connected for a paid service, afaict, they have put some interesting work into IRC over web). -- Senthil ___ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] IRC logs via BotBot.me
On Thu, Jan 5, 2017 at 2:27 AM, INADA Naoki wrote: > Hi. > > IRC #python-dev channel is nice place to know what happens recently. > But I can't log in always because I use only laptop PC. > > I found BotBot.me seems nice IRC log service and used by some major channels. > https://botbot.me/ > > I wonder if #python-dev is logged by BotBot.me. > > I'm sorry if it had rejected already. I'm using my personal VPS to stay online on Freenode. This looks like a tooling issue on your end and it can be solved without introducing a public logging service. --Berker ___ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] The "humor" section of the website is a bit outdated...
On Wed, Jan 4, 2017 at 10:59 PM, Ryan Gonzalez wrote: > Ok, in advance, my apologies for probably sending this to the wrong mailing > list... Hi, https://github.com/python/pythondotorg/issues is a better place to report content issues on python.org. --Berker ___ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
[Python-Dev] ctypes, memory mapped files and context manager
Hi,
first of all, sorry for being such a pest, but all former attempts to solve
this issue on other fora has been grinding to a halt.
In short: I try to combine a context manager with ctypes structures on memory
mapped files in order to manage huge binary files. (An approach, that performs
great, while easy to use and keeping the resource usage low).
FWIW, the code is targeted for Linux environments running Python3.
The smallest script demonstrating the issue (thanks to Peter Otten):
import ctypes
import mmap
from contextlib import contextmanager
class T(ctypes.Structure):
_fields = [("foo", ctypes.c_uint32)]
@contextmanager
def map_struct(m, n):
m.resize(n * mmap.PAGESIZE)
yield T.from_buffer(m)
SIZE = mmap.PAGESIZE * 2
f = open("tmp.dat", "w+b")
f.write(b"\0" * SIZE)
f.seek(0)
m = mmap.mmap(f.fileno(), mmap.PAGESIZE)
with map_struct(m, 1) as a:
a.foo = 1
with map_struct(m, 2) as b:
b.foo = 2
resulting in:
$ python3 mmap_test.py
Traceback (most recent call last):
File "mmap_test.py", line 23, in
with map_struct(m, 2) as b:
File "/usr/lib64/python3.4/contextlib.py", line 59, in __enter__
return next(self.gen)
File "mmap_test.py", line 12, in map_struct
m.resize(n * mmap.PAGESIZE)
BufferError: mmap can't resize with extant buffers exported.
Python2 does not crash, but that's a different story. What happens here is:
the context manager variable "a" keeps a reference to a memory mapped area
alive, that results in a unresizable and not properly closable mmap.
Right now, this rather ugly and error prone workaround must be used, that
renders the purpose of the context manager ad absurdum:
with map_struct(m, 1) as a:
a.foo = 1
del a
with map_struct(m, 2) as b:
b.foo = 2
del b
In order to get this working properly, the ctypes mapping needs a method to
free the mapping actively. E.g.:
@contextmanager
def map_struct(m, n):
m.resize(n * mmap.PAGESIZE)
yield T.from_buffer(m)
T.unmap_buffer(m)
Other attempts with weakref and the like do not work due to the nature of the
ctypes types.
My own investigations in the _ctypes module were unsuccessful so far.
Hopefully, somebody in the audience cares enough for this module in order to
get this fixed up (or probably I'm missing something obvious..).
Any ideas are very much appreciated.
Pete
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] ctypes, memory mapped files and context manager
On 5 January 2017 at 10:28, Hans-Peter Jansen wrote:
> In order to get this working properly, the ctypes mapping needs a method to
> free the mapping actively. E.g.:
>
> @contextmanager
> def map_struct(m, n):
> m.resize(n * mmap.PAGESIZE)
> yield T.from_buffer(m)
> T.unmap_buffer(m)
>
> Other attempts with weakref and the like do not work due to the nature of the
> ctypes types.
I don't know ctypes well enough myself to comment on the idea of
offering fully deterministic cleanup, but the closest you could get to
that without requiring a change to ctypes is to have the context
manager introduce a layer of indirection:
class _T_data(ctypes.Structure):
_fields = [("foo", ctypes.c_uint32)]
class T:
def __init__(self, buffer):
self.data = _T_data.from_buffer(buffer)
def close(self):
self.data = None
@contextmanager
def map_struct(m, n):
m.resize(n * mmap.PAGESIZE)
mapped = T(m)
try:
yield mapped
finally:
mapped.close()
Client code would then need to consistently access the struct through
the data attribute:
with map_struct(m, 1) as a:
a.data.foo = 1
with map_struct(m, 2) as b:
b.data.foo = 2
Something like http://wrapt.readthedocs.io/en/latest/wrappers.html#object-proxy
would let you make the indirection to a contained object transparent,
but as far as I can tell, wrapt doesn't currently support "closing" a
proxy by replacing the reference to the internal object with a
reference to None (adding that might be possible, but I don't
personally know wrapt well enough to guess the feasibility of doing
so).
Cheers,
Nick.
--
Nick Coghlan | [email protected] | Brisbane, Australia
___
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
Re: [Python-Dev] SystemError: new style getargs format but argument is not a tuple
On 1/1/2017 6:40 PM, Serhiy Storchaka wrote: On 02.01.17 01:23, Terry Reedy wrote: There are several recent question on Stackoverflow about SystemError: new style getargs format but argument is not a tuple [snip] Resulting from using 3rd party packages. No one commenting has a clue. Is message from Victor's new calling code? Was it backported to 2.7? Could error be a result of running old 3rd party binary that needs to be recompiled? A system error "new style getargs format but argument is not a tuple" is not new. It means that PyArg_ParseTuple() is called with not a tuple as the first arguments. This is just a programmical error in third-party extension. Should the advice in the doc entry for SystemError be changed to include this case? "You should report this to the author or maintainer of your Python interpreter. Be sure to report the version of the Python interpreter (sys.version; it is also printed at the start of an interactive Python session), the exact error message (the exception’s associated value) and if possible the source of the program that triggered the error. " -- Terry Jan Reedy ___ Python-Dev mailing list [email protected] https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com
