Patches item #1368955, was opened at 2005-11-29 08:58 Message generated for change (Comment added) made by tmick You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1368955&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Library (Lib) Group: Python 2.5 Status: Open Resolution: None Priority: 5 Submitted By: Ka-Ping Yee (ping) Assigned to: Nobody/Anonymous (nobody) Summary: UUID module for Python Initial Comment: I recently tossed off a module to generate UUIDs because i needed one. Fredrik Lundh suggested i submit it here for inclusion in the standard library. See http://zesty.ca/python/uuid.html for a pydoc page. The module provides a UUID class for representing UUIDs and can generate version 1, 3, 4, or 5 UUIDs. One drawback of the implementation is that it currently runs external programs ("ipconfig" or "ifconfig") to obtain the Ethernet hardware address used in a version 1 UUID. The version 1 UUID implementation also does not use persistent storage to determine the clock sequence number. ---------------------------------------------------------------------- >Comment By: Trent Mick (tmick) Date: 2006-03-07 18:57 Message: Logged In: YES user_id=34892 Would require a C extension but perhaps this could be used to get the MAC address on Windows instead of running and grepping (unreliable for different locales as Thomas pointed out) ipconfig.exe: http://support.microsoft.com/default.aspx?scid=kb;en-us;118623 How To Get the MAC Address for an Ethernet Adapter ---------------------------------------------------------------------- Comment By: Trent Mick (tmick) Date: 2006-03-07 18:28 Message: Logged In: YES user_id=34892 > use something like webbrowser._iscommand I have a Python implementation of `which`: http://trentm.com/projects/which/ http://trentm.com/projects/which/which.py though that is likely overkill for this case. ---------------------------------------------------------------------- Comment By: Trent Mick (tmick) Date: 2006-03-07 18:20 Message: Logged In: YES user_id=34892 > On Win 2k, "C:\WINNT" is used instead of XP-like > "C:\windows". Perhaps uuid.py could use the "windir" environment variable. It is defined on (at least) WinXP, Win2k, WinMe that I could check and points to C:\WINDOWS (on WinXP and WinMe) and C:\WINNT (on Win2k). It would first be good to verify if it is defined on WinNT and Win9x. ---------------------------------------------------------------------- Comment By: Georg Brandl (gbrandl) Date: 2006-03-07 17:58 Message: Logged In: YES user_id=849994 Instead of hardcoding directories for ipconfig, why not try spawnp directly on UNIX or use something like webbrowser._iscommand? Minor nit: a,b,c = [1,2,3] is better a,b,c=1,2,3 ---------------------------------------------------------------------- Comment By: George Yoshida (quiver) Date: 2006-03-07 16:27 Message: Logged In: YES user_id=671362 One more thing about getaddr function. On Win 2k, "C:\WINNT" is used instead of XP- like "C:\windows". (If I remember correctly, Win 2k is still supportted. Am I right?) ---------------------------------------------------------------------- Comment By: Tim Peters (tim_one) Date: 2006-03-07 15:45 Message: Logged In: YES user_id=31435 On c.l.py, Thomas Heller noted: """ I haven't used this module, but: The wingetaddr() function doesn't work on a german version of windows (there is no line in the output that starts with 'physical address'). In getaddr(), what if windows is installed on the D: drive? """ ---------------------------------------------------------------------- Comment By: Ian Bicking (ianbicking) Date: 2006-03-07 08:06 Message: Logged In: YES user_id=210337 We had some minor problems backporting this to Python 2.3; this fixed it: - uuid = UUID(randrange(1<<32L), randrange(1<<16), randrange(1<<16), - randrange(1<<8), randrange(1<<8), randrange(1<<48L)) + uuid = UUID(randrange(1<<32), randrange(1<<16), randrange(1<<16), + randrange(1<<8), randrange(1<<8), randrange(1<<48)) I'm not sure what the most current version looks like, so this might not be a problem anymore (e.g. if the values get precalculated) ---------------------------------------------------------------------- Comment By: Michael Ströder (stroeder) Date: 2005-12-07 23:47 Message: Logged In: YES user_id=64920 I'd like to see some constants pre-calculated for gaining performance, e.g. during mass data handling. E.g. the MAC address should only determined once after startup. Or at least as key-word argument so that the caller can decide to cache the MAC address. def uuid1(node=None): [..] node = node or getaddr() ---------------------------------------------------------------------- Comment By: Ka-Ping Yee (ping) Date: 2005-11-30 11:54 Message: Logged In: YES user_id=45338 This update fixes the order of the bytes in a hash-generated UUID. With this fix, the interpretation of RFC 4122 is that "octet 0" refers to the MOST significant octet, i.e. the one printed on the left. ---------------------------------------------------------------------- Comment By: Ka-Ping Yee (ping) Date: 2005-11-29 09:14 Message: Logged In: YES user_id=45338 This update fixes __repr__ to return a proper expression and adds the use of os.urandom (if available) to generate randomness for version 4 UUIDs. ---------------------------------------------------------------------- Comment By: Ka-Ping Yee (ping) Date: 2005-11-29 09:14 Message: Logged In: YES user_id=45338 This update fixes __repr__ to return a proper expression and adds the use of os.urandom (if available) to generate randomness for version 4 UUIDs. ---------------------------------------------------------------------- Comment By: Ka-Ping Yee (ping) Date: 2005-11-29 09:14 Message: Logged In: YES user_id=45338 This update fixes __repr__ to return a proper expression and adds the use of os.urandom (if available) to generate randomness for version 4 UUIDs. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=305470&aid=1368955&group_id=5470 _______________________________________________ Patches mailing list [email protected] http://mail.python.org/mailman/listinfo/patches
