Christian Heimes wrote: > Fellow Python developers! > > In the light of our recent discussion about implementation specific > information and user site directory I like to start a new PEP. Much to > my regret I wasn't able to contribute to Python core development over > the past months. I hope I can find some free time over the next weeks. > > Before I start with the PEP I like to reach consensus over the goal. > Alternative implementations of our beloved programming languages are > becoming more important every day. Although IronPython, Jython and PyPy > are trying hard to get as compatible to CPython as possible there are > numerous reasons for conditional code. General Python unit tests vs. > CPython specific unit tests are one reasons, implementation specific > module search paths are another. At the moment Python has no easy way to > inspect the implementation besides some code in the platform module. > > I'm proposing two new attributes in the sys module: sys.implementation > and sys.userdirsuffix. > Why not just sys.implementation as a string? Everything else can trivially be deduced from that anyway. What is the use-case for the extra information? Michael > sys.implementation > ------------------ > > (Proposed by Nick, MAL and others.) > > sys.implementation is a PyStructSequence that contains various > information about the current implementation. Some fields are required > to be present on every implementation. Implementations may choose to add > additional fields as they see fit. Some fields like compiler are useful > for introspection and are already part of sys.version. I like to include > them for the sake of completeness. > > id (required): > lower case identifier, for example "cpython", "ironpython", "jython", > "pypy" > > name (required): > mixed case name of the implementation, for example "CPython", > "IronPython", "Jython", "PyPy" > > platform (required): > platform or language of the implementation, for example "C", ".NET", > "Java" > > runtime (required): > lower case runtime library of the implementation, for example "libc", > "msvcrt90", "java6", ".net" > > compiler (required): > verbose name of the compiler, for example "GCC 4.3.3", "Java > HotSpot(TM) Client VM (Apple Inc.)", "Mono JIT compiler version 2.0.1" > > ... > > > sys.userdirsuffix > ----------------- > > sys.userdirsuffix is an implementation and platform specific string that > is used to construct the path for the user site directory as explained > in PEP 370. The string contains the implementation name as well as the > version number of Python. > > Examples: > python2.6 (CPython, Unix) > Python26 (CPython, Windows) > ironpython2.6 (IronPython, Unix) > IronPython26 (IronPython, Windows) > ... > > > Comments? > > Christian > > _______________________________________________ > Python-Dev mailing list > Python-Dev at python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk > -- http://www.ironpythoninaction.com/ http://www.voidspace.org.uk/blog
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4