On Fri, Feb 7, 2014 at 1:45 PM, Doug Blank <doug.bl...@gmail.com> wrote: > I'm trying to figure out if the missing os.getuid() is a bug in IronPython. > > On the one hand, this is to be defined for Unix, where os.name == "posix" > (when running IronPython on Unix). On the other hand, what should it return > when sys.platform == "cli" and os.name == "nt"?
On CPython getuid simply doesn't exist if os.name == 'nt'. Seems like the proper way to go. Arguably the POSIX stuff should not be in 'os', but that ship has long sailed. :) > > It seems that many programs in the wild will check to see if os.name is > "posix", and if it is, then it assumes all functions valid for Unix will be > available. > > What is IronPython's strategy for situations like this? Cry :( Right now IronPython doesn't have a posix module, it just has an nt module, and renames 'nt' to 'posix' when running on Mono. This is fine for 90% of the APIs. The proper fix would be to create a class containing all of the common stuff implemented using the core .NET APIs (or, more accurately, the PAL that wraps those APIs), and then separate 'posix' and 'nt' modules that implement the OS-specific parts using Mono.Posix or P/Invoke. It's not a huge amount of work but it's enough that it hasn't been done yet. - Jeff _______________________________________________ Ironpython-users mailing list Ironpython-users@python.org https://mail.python.org/mailman/listinfo/ironpython-users