Get (filtered, unfiltered) TarInfos from *member* *member* might be a string. Return (None, None) if not found.
(self, member, filter_function, path)
| 2498 | self._extract_one(tarinfo, path, set_attrs, numeric_owner) |
| 2499 | |
| 2500 | def _get_extract_tarinfo(self, member, filter_function, path): |
| 2501 | """Get (filtered, unfiltered) TarInfos from *member* |
| 2502 | |
| 2503 | *member* might be a string. |
| 2504 | |
| 2505 | Return (None, None) if not found. |
| 2506 | """ |
| 2507 | |
| 2508 | if isinstance(member, str): |
| 2509 | unfiltered = self.getmember(member) |
| 2510 | else: |
| 2511 | unfiltered = member |
| 2512 | |
| 2513 | filtered = None |
| 2514 | try: |
| 2515 | filtered = filter_function(unfiltered, path) |
| 2516 | except (OSError, UnicodeEncodeError, FilterError) as e: |
| 2517 | self._handle_fatal_error(e) |
| 2518 | except ExtractError as e: |
| 2519 | self._handle_nonfatal_error(e) |
| 2520 | if filtered is None: |
| 2521 | self._dbg(2, "tarfile: Excluded %r" % unfiltered.name) |
| 2522 | return None, None |
| 2523 | |
| 2524 | # Prepare the link target for makelink(). |
| 2525 | if filtered.islnk(): |
| 2526 | filtered = copy.copy(filtered) |
| 2527 | filtered._link_target = os.path.join(path, filtered.linkname) |
| 2528 | return filtered, unfiltered |
| 2529 | |
| 2530 | def _extract_one(self, tarinfo, path, set_attrs, numeric_owner, |
| 2531 | filter_function=None): |
no test coverage detected