Return the module name for a given file, or None.
(path)
| 868 | type(object).__name__)) |
| 869 | |
| 870 | def getmodulename(path): |
| 871 | """Return the module name for a given file, or None.""" |
| 872 | fname = os.path.basename(path) |
| 873 | # Check for paths that look like an actual module file |
| 874 | suffixes = [(-len(suffix), suffix) |
| 875 | for suffix in importlib.machinery.all_suffixes()] |
| 876 | suffixes.sort() # try longest suffixes first, in case they overlap |
| 877 | for neglen, suffix in suffixes: |
| 878 | if fname.endswith(suffix): |
| 879 | return fname[:neglen] |
| 880 | return None |
| 881 | |
| 882 | def getsourcefile(object): |
| 883 | """Return the filename that can be used to locate an object's source. |