MCPcopy Index your code
hub / github.com/RustPython/RustPython / _getmember

Method _getmember

Lib/tarfile.py:2884–2922  ·  view source on GitHub ↗

Find an archive member by name from bottom to top. If tarinfo is given, it is used as the starting point.

(self, name, tarinfo=None, normalize=False)

Source from the content-addressed store, hash-verified

2882 # Little helper methods:
2883
2884 def _getmember(self, name, tarinfo=None, normalize=False):
2885 """Find an archive member by name from bottom to top.
2886 If tarinfo is given, it is used as the starting point.
2887 """
2888 # Ensure that all members have been loaded.
2889 members = self.getmembers()
2890
2891 # Limit the member search list up to tarinfo.
2892 skipping = False
2893 if tarinfo is not None:
2894 try:
2895 index = members.index(tarinfo)
2896 except ValueError:
2897 # The given starting point might be a (modified) copy.
2898 # We'll later skip members until we find an equivalent.
2899 skipping = True
2900 else:
2901 # Happy fast path
2902 members = members[:index]
2903
2904 if normalize:
2905 name = os.path.normpath(name)
2906
2907 for member in reversed(members):
2908 if skipping:
2909 if tarinfo.offset == member.offset:
2910 skipping = False
2911 continue
2912 if normalize:
2913 member_name = os.path.normpath(member.name)
2914 else:
2915 member_name = member.name
2916
2917 if name == member_name:
2918 return member
2919
2920 if skipping:
2921 # Starting point was not found
2922 raise ValueError(tarinfo)
2923
2924 def _load(self):
2925 """Read through the entire archive file and look for readable

Callers 2

getmemberMethod · 0.95
_find_link_targetMethod · 0.95

Calls 3

getmembersMethod · 0.95
reversedFunction · 0.85
indexMethod · 0.45

Tested by

no test coverage detected