[Python-Dev] a new type for sys.implementation (original) (raw)
Mark Shannon mark at hotpy.org
Fri Jun 1 15:17:09 CEST 2012
- Previous message: [Python-Dev] a new type for sys.implementation
- Next message: [Python-Dev] a new type for sys.implementation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Nick Coghlan wrote:
On Fri, Jun 1, 2012 at 9:49 PM, Mark Shannon <mark at hotpy.org> wrote:
What is wrong with something like the following (for CPython)?
class SysImplemention: "Define repr(), etc here " ... sys.implementation = SysImplemention() sys.implementation.name = 'cpython' sys.implementation.version = (3, 3, 0, 'alpha', 4) sys.implementation.hexversion = 0x30300a4 sys.implementation.cachetag = 'cpython-33' Because now you're double keying data in a completely unnecessary fashion. The sys module initialisation code already has access to the info needed to fill out sys.implementation correctly, moving that code somewhere else purely for the sake of getting to write it in Python instead of C would be foolish. Some things are best written in Python, some make sense to write in the underlying implementation language. This is one of the latter because it's all about implementation details.
Previously you said that "it needs to handled in the implementation language, and explicitly not in Python". I asked why that was.
Now you seem to be suggesting that Python code would break the DRY rule, but the C code would not. If the C code can avoid duplication, then so can the Python code, as follows:
class SysImplementation: "Define repr(), etc here " ...
import imp tag = imp.get_tag()
sys.implementation = SysImplementation() sys.implementation.name = tag[:tag.index('-')] sys.implementation.version = sys.version_info sys.implementation.hexversion = sys.hexversion sys.implementation.cache_tag = tag
Cheers, Mark.
- Previous message: [Python-Dev] a new type for sys.implementation
- Next message: [Python-Dev] a new type for sys.implementation
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]