|
10 | 10 | # |
11 | 11 |
|
12 | 12 | import json |
| 13 | +import os |
13 | 14 | from typing import List |
14 | 15 |
|
15 | 16 | import click |
16 | 17 | from packaging.requirements import Requirement |
17 | 18 | from tinynetrc import Netrc |
18 | 19 |
|
19 | 20 | from _packagedcode.models import DependentPackage |
| 21 | +from _packagedcode.pypi import PipRequirementsFileHandler |
20 | 22 | from _packagedcode.pypi import can_process_dependent_package |
21 | 23 | from python_inspector import dependencies |
22 | 24 | from python_inspector import utils |
@@ -183,15 +185,44 @@ def resolve_dependencies( |
183 | 185 | if verbose: |
184 | 186 | click.secho(f"Resolving dependencies...") |
185 | 187 |
|
186 | | - netrc = None |
187 | 188 | if netrc_file: |
| 189 | + if not os.path.exists(netrc_file): |
| 190 | + raise Exception(f"Missing netrc file {netrc_file}") |
| 191 | + |
| 192 | + if not netrc_file: |
| 193 | + netrc_file = os.path.join(os.path.expanduser("~"), ".netrc") |
| 194 | + if not os.path.exists(netrc_file): |
| 195 | + netrc_file = os.path.join(os.path.expanduser("~"), "_netrc") |
| 196 | + if not os.path.exists(netrc_file): |
| 197 | + netrc_file = None |
| 198 | + |
| 199 | + if netrc_file: |
| 200 | + if verbose: |
| 201 | + click.secho(f"Using netrc file {netrc_file}") |
188 | 202 | netrc = Netrc(file=netrc_file) |
| 203 | + else: |
| 204 | + netrc = None |
| 205 | + |
189 | 206 | # TODO: deduplicate me |
190 | 207 | direct_dependencies = [] |
191 | 208 |
|
192 | 209 | if PYPI_SIMPLE_URL not in index_urls: |
193 | 210 | index_urls = tuple([PYPI_SIMPLE_URL]) + tuple(index_urls) |
194 | 211 |
|
| 212 | + invalid_requirement_files = [] |
| 213 | + |
| 214 | + for req_file in requirement_files: |
| 215 | + if not PipRequirementsFileHandler.is_datafile(location=req_file): |
| 216 | + invalid_requirement_files.append(req_file) |
| 217 | + |
| 218 | + if invalid_requirement_files: |
| 219 | + click.secho( |
| 220 | + f"""The following requirement files are not valid pip |
| 221 | + requirement file names: {invalid_requirement_files}""", |
| 222 | + err=True, |
| 223 | + ) |
| 224 | + ctx.exit(1) |
| 225 | + |
195 | 226 | for req_file in requirement_files: |
196 | 227 | deps = dependencies.get_dependencies_from_requirements(requirements_file=req_file) |
197 | 228 | for extra_data in dependencies.get_extra_data_from_requirements(requirements_file=req_file): |
|
0 commit comments