Issue #15166: Re-implement imp.get_tag() using sys.implementation.
Also eliminates some C code in Python/import.c as well.

Patch by Eric Snow with verification by comparing against another
patch from Jeff Knupp.
diff --git a/Lib/imp.py b/Lib/imp.py
index 8c89237..fcfd3d3 100644
--- a/Lib/imp.py
+++ b/Lib/imp.py
@@ -11,7 +11,7 @@
                   init_builtin, init_frozen, is_builtin, is_frozen,
                   _fix_co_filename, extension_suffixes)
 # Could move out of _imp, but not worth the code
-from _imp import get_magic, get_tag
+from _imp import get_magic
 
 from importlib._bootstrap import new_module
 from importlib._bootstrap import cache_from_source
@@ -37,6 +37,11 @@
 IMP_HOOK = 9
 
 
+def get_tag():
+    """Return the magic tag for .pyc or .pyo files."""
+    return sys.implementation.cache_tag
+
+
 def get_suffixes():
     warnings.warn('imp.get_suffixes() is deprecated; use the constants '
                   'defined on importlib.machinery instead',
diff --git a/Lib/importlib/_bootstrap.py b/Lib/importlib/_bootstrap.py
index 36c0e88..21af7ac 100644
--- a/Lib/importlib/_bootstrap.py
+++ b/Lib/importlib/_bootstrap.py
@@ -1452,7 +1452,7 @@
     # Constants
     setattr(self_module, '_relax_case', _make_relax_case())
     setattr(self_module, '_MAGIC_NUMBER', _imp_module.get_magic())
-    setattr(self_module, '_TAG', _imp.get_tag())
+    setattr(self_module, '_TAG', sys.implementation.cache_tag)
     if builtin_os == 'nt':
         SOURCE_SUFFIXES.append('.pyw')