Thank you. I started my patch http://bugs.python.org/issue27134 to allow Python code to set a flag causing the evil str(b'bytes') to raise an exception. I wasn't sure exactly which module to put it in, so it's in _string. Please let me know the best place to put the feature and what I should polish to get it in.
Thanks, Daniel Holth On Thu, May 19, 2016 at 6:34 AM Christian Heimes <christ...@python.org> wrote: > On 2016-05-19 04:30, Nick Coghlan wrote: > > On 18 May 2016 at 23:20, Daniel Holth <dho...@gmail.com> wrote: > >> I would like to take another stab at adding a threadlocal "str(bytes) > raises > >> an exception" to the Python interpreter, but I had a very hard time > >> understanding both how to add a threadlocal value to either the > interpreter > >> state or the threadlocal dict that is part of that state, and then how > to > >> access the same value from both Python and CPython code. The structs > were > >> there but it was just hard to understand. Can someone explain it to me? > > > > Christian covered the C aspects of the API, while the general purpose > > Python aspects live in the threading module. > > > > However, the Python level thread-local API doesn't provide direct > > access to the thread state dict. Instead, it provides access to > > subdicts stored under per-object keys in that dict, keyed as > > "thread.local.<id>": > > In case you wonder about subdicts, they are required to provide multiple > thread local objects. Each thread local instance has its own key in each > thread state dict. The approach enables thread local to have independent > storage objects. > > Christian >
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com