Return the module name for a given file, or None.
(path)
| 918 | type(object).__name__)) |
| 919 | |
| 920 | def getmodulename(path): |
| 921 | """Return the module name for a given file, or None.""" |
| 922 | fname = os.path.basename(path) |
| 923 | # Check for paths that look like an actual module file |
| 924 | suffixes = [(-len(suffix), suffix) |
| 925 | for suffix in importlib.machinery.all_suffixes()] |
| 926 | suffixes.sort() # try longest suffixes first, in case they overlap |
| 927 | for neglen, suffix in suffixes: |
| 928 | if fname.endswith(suffix): |
| 929 | return fname[:neglen] |
| 930 | return None |
| 931 | |
| 932 | def getsourcefile(object): |
| 933 | """Return the filename that can be used to locate an object's source. |