Get (filtered, unfiltered) TarInfos from *member* *member* might be a string. Return (None, None) if not found.
(self, member, filter_function, path)
| 2479 | self._extract_one(tarinfo, path, set_attrs, numeric_owner) |
| 2480 | |
| 2481 | def _get_extract_tarinfo(self, member, filter_function, path): |
| 2482 | """Get (filtered, unfiltered) TarInfos from *member* |
| 2483 | |
| 2484 | *member* might be a string. |
| 2485 | |
| 2486 | Return (None, None) if not found. |
| 2487 | """ |
| 2488 | |
| 2489 | if isinstance(member, str): |
| 2490 | unfiltered = self.getmember(member) |
| 2491 | else: |
| 2492 | unfiltered = member |
| 2493 | |
| 2494 | filtered = None |
| 2495 | try: |
| 2496 | filtered = filter_function(unfiltered, path) |
| 2497 | except (OSError, UnicodeEncodeError, FilterError) as e: |
| 2498 | self._handle_fatal_error(e) |
| 2499 | except ExtractError as e: |
| 2500 | self._handle_nonfatal_error(e) |
| 2501 | if filtered is None: |
| 2502 | self._dbg(2, "tarfile: Excluded %r" % unfiltered.name) |
| 2503 | return None, None |
| 2504 | |
| 2505 | # Prepare the link target for makelink(). |
| 2506 | if filtered.islnk(): |
| 2507 | filtered = copy.copy(filtered) |
| 2508 | filtered._link_target = os.path.join(path, filtered.linkname) |
| 2509 | return filtered, unfiltered |
| 2510 | |
| 2511 | def _extract_one(self, tarinfo, path, set_attrs, numeric_owner, |
| 2512 | filter_function=None): |
no test coverage detected