(
cls,
log, # type: Optional[PipLog]
download_targets, # type: Sequence[DownloadTarget]
)
| 186 | |
| 187 | @classmethod |
| 188 | def create( |
| 189 | cls, |
| 190 | log, # type: Optional[PipLog] |
| 191 | download_targets, # type: Sequence[DownloadTarget] |
| 192 | ): |
| 193 | # type: (...) -> PipLogManager |
| 194 | log_by_download_target = {} # type: Dict[DownloadTarget, str] |
| 195 | if log and len(download_targets) == 1: |
| 196 | log_by_download_target[download_targets[0]] = log.path |
| 197 | elif log: |
| 198 | log_dir = safe_mkdtemp(prefix="pex-pip-log.") |
| 199 | log_by_download_target.update( |
| 200 | ( |
| 201 | download_target, |
| 202 | os.path.join( |
| 203 | log_dir, |
| 204 | "pip.{target}.log".format(target=download_target.id(complete=True)), |
| 205 | ), |
| 206 | ) |
| 207 | for download_target in download_targets |
| 208 | ) |
| 209 | return cls(log=log, log_by_download_target=log_by_download_target) |
| 210 | |
| 211 | log = attr.ib() # type: Optional[PipLog] |
| 212 | _log_by_download_target = attr.ib() # type: Mapping[DownloadTarget, str] |
no test coverage detected