Backport from Py3k branch:
Patch #1591665: implement the __dir__() special function lookup in PyObject_Dir.
Had to change a few bits of the patch because classobjs and __methods__ are still
in Py2.6.
diff --git a/Misc/NEWS b/Misc/NEWS
index e34964e..2ac04c9 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -12,6 +12,10 @@
Core and builtins
-----------------
+- The dir() function has been extended to call the __dir__() method on
+ its argument, if it exists. If not, it will work like before. This allows
+ customizing the output of dir() in the presence of a __getattr__().
+
- Patch #1675981: remove unreachable code from ``type.__new__()`` method.
- Patch #1491866: change the complex() constructor to allow parthensized