Expose Py_Py3kWarningFlag as sys.py3kwarning as discussed in #1504
Also added a warning.warnpy3k() as convenient method for Python 3.x related deprecation warnings.
diff --git a/Lib/new.py b/Lib/new.py
index a3298b6..1a5c11f 100644
--- a/Lib/new.py
+++ b/Lib/new.py
@@ -3,9 +3,9 @@
 This module is no longer required except for backward compatibility.
 Objects of most types can now be created by calling the type object.
 """
-from warnings import warn as _warn
-_warn("The 'new' module is not supported in 3.x, use the 'types' module "
-    "instead.", DeprecationWarning, 2)
+from warnings import warnpy3k as _warnpy3k
+_warnpy3k("The 'new' module is not supported in 3.x, use the 'types' module "
+    "instead.", stacklevel=2)
 
 from types import ClassType as classobj
 from types import FunctionType as function
diff --git a/Lib/warnings.py b/Lib/warnings.py
index b7fac69..970d0ff 100644
--- a/Lib/warnings.py
+++ b/Lib/warnings.py
@@ -125,6 +125,16 @@
     # Print message and context
     showwarning(message, category, filename, lineno)
 
+def warnpy3k(message, category=None, stacklevel=1):
+    """Issue a deprecation warning for Python 3.x related changes.
+
+    Warnings are omitted unless Python is started with the -3 option.
+    """
+    if sys.py3kwarning:
+        if category is None:
+            category = DeprecationWarning
+        warn(message, category, stacklevel+1)
+
 def showwarning(message, category, filename, lineno, file=None):
     """Hook to write a warning to a file; replace if you like."""
     if file is None: