Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
04a872c
Remove the thirdparty directory
chinyeungli Sep 22, 2022
07cd736
Update the azure-piprlines
chinyeungli Sep 22, 2022
509b032
Add missing os import in utils_requirements.py
JonoYang Oct 18, 2022
c6bba07
Reinstate Ubuntu 18 and drop Python 3.6 and 3.7
pombredanne Nov 25, 2022
bec5391
Merge pull request #68 from nexB/remove_thirdparty_and_update_ci
pombredanne Nov 25, 2022
1bd7a2f
Replace packaging with packvers
swastkk Jan 5, 2023
5be2690
Merge pull request #71 from swastkk/packvers-added
pombredanne Jan 12, 2023
6f21d2b
Ignore egginfo
pombredanne Jan 15, 2023
f841c2f
Drop Python 3.7 add Python 3.11
pombredanne Jan 15, 2023
bd2a464
Clean .cache and .eggs
pombredanne Jan 15, 2023
6270a88
Add COC to redistributed license-like files
pombredanne Jan 15, 2023
d3a19bd
Add new Makefile
pombredanne Jan 15, 2023
91f5613
Align scripts with latest ScanCode Toolkit
pombredanne Jan 15, 2023
1205bc0
Merge latest main branch
pombredanne Jan 15, 2023
37d6d74
Aligning project with Template skeleton
swastkk Jan 18, 2023
535fdf1
Align the project with latest skeleton.
swastkk Jan 19, 2023
98fe24c
Mock the actual setup provider defined in setup.py
bennati Jan 19, 2023
39692b2
Parse setup.py file with AST instead of using regex.
bennati Feb 14, 2023
f81111c
Add support for comments in netrc file
TG1999 Feb 14, 2023
f3bd5f0
Address review comments
TG1999 Feb 17, 2023
50fb768
Update test fixtures.
bennati Feb 20, 2023
636bb5a
Run make valid.
bennati Feb 23, 2023
9bdb540
Add CHANGELOG
TG1999 Feb 23, 2023
ed46103
Merge pull request #122 from nexB/ignore_comments_from_netrc
TG1999 Feb 23, 2023
919f930
Update tests with latest version 0.9.5
TG1999 Feb 23, 2023
c22ccf3
Merge pull request #126 from nexB/prepare_release_v0.9.5
TG1999 Feb 23, 2023
102ef9b
Merge pull request #120 from bennati/pr-116-2
pombredanne Mar 1, 2023
8f890fb
Update dependency resolvelib to 1.0.0
bennati Feb 7, 2023
6d46fbf
Fix tests
bennati Mar 17, 2023
8b07900
Merge pull request #123 from bennati/update-resolvelib-dependency
pombredanne Mar 17, 2023
efbf02d
Bump version to 0.9.6 and add CHANGELOG
TG1999 Mar 21, 2023
271921d
Merge pull request #130 from nexB/prep_release_0.9.6
TG1999 Mar 21, 2023
00fdf84
Ignore egginfo
pombredanne Jan 15, 2023
4160e3b
Drop Python 3.7 add Python 3.11
pombredanne Jan 15, 2023
c2bf00c
Add COC to redistributed license-like files
pombredanne Jan 15, 2023
81c3a01
Align scripts with latest ScanCode Toolkit
pombredanne Jan 15, 2023
f909a7a
Add missing os import in utils_requirements.py
JonoYang Oct 18, 2022
c06c5a6
Reinstate Ubuntu 18 and drop Python 3.6 and 3.7
pombredanne Nov 25, 2022
8cc02b4
Align the project with latest skeleton.
swastkk Jan 19, 2023
5b49b25
Merge branch 'main' of https://github.com/swastkk/python-inspector
swastkk Apr 11, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
*.py[cod]

# virtualenv and other misc bits
/src/*.egg-info
*.egg-info
/dist
/build
Expand Down
14 changes: 14 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@ Changelog
=========


v0.9.6
-------------

- Mock the actual setup provider defined in setup.py.
- Update dependency resolvelib to latest.

v0.9.5
-------------

- Update readme with test instructions.
- Fail gracefully at parsing setup.py with no deps.
- Support comments in netrc file #107.


v0.9.4
------

Expand Down
28 changes: 22 additions & 6 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,38 @@ jobs:
parameters:
job_name: ubuntu18_cpython
image_name: ubuntu-18.04
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
python_versions: ['3.7', '3.8', '3.9', '3.10']
test_suites:
all: venv/bin/pytest -n 2 -vvs --reruns 2

- template: etc/ci/azure-posix.yml
parameters:
job_name: ubuntu20_cpython
image_name: ubuntu-20.04
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
python_versions: ['3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv/bin/pytest -n 2 -vvs --reruns 2

- template: etc/ci/azure-posix.yml
parameters:
job_name: ubuntu22_cpython
image_name: ubuntu-22.04
python_versions: ['3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv/bin/pytest -n 2 -vvs

- template: etc/ci/azure-posix.yml
parameters:
job_name: macos12_cpython
image_name: macos-12
python_versions: ['3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv/bin/pytest -n 2 -vvs --reruns 2

- template: etc/ci/azure-posix.yml
parameters:
job_name: macos1015_cpython
image_name: macos-10.15
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv/bin/pytest -n 2 -vvs --reruns 2
Expand All @@ -35,9 +51,9 @@ jobs:
parameters:
job_name: macos11_cpython
image_name: macos-11
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
python_versions: ['3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv/bin/pytest -n 2 -vvs --reruns 2
all: venv/bin/pytest -n 2 -vvs

- template: etc/ci/azure-posix.yml
parameters:
Expand All @@ -51,14 +67,14 @@ jobs:
parameters:
job_name: win2019_cpython
image_name: windows-2019
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
python_versions: ['3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv\Scripts\pytest -n 2 -vvs --reruns 2

- template: etc/ci/azure-win.yml
parameters:
job_name: win2022_cpython
image_name: windows-2022
python_versions: ['3.7', '3.8', '3.9', '3.10', '3.11']
python_versions: ['3.8', '3.9', '3.10', '3.11']
test_suites:
all: venv\Scripts\pytest -n 2 -vvs --reruns 2
8 changes: 4 additions & 4 deletions etc/scripts/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Pre-requisites
virtualenv or in the the main configured development virtualenv.
These requireements need to be installed::

pip install --requirement etc/release/requirements.txt
pip install --requirement etc/scripts/requirements.txt

TODO: we need to pin the versions of these tools

Expand All @@ -34,7 +34,7 @@ Scripts
~~~~~~~

**gen_requirements.py**: create/update requirements files from currently
installed requirements.
installed requirements.

**gen_requirements_dev.py** does the same but can subtract the main requirements
to get extra requirements used in only development.
Expand All @@ -50,7 +50,7 @@ The sequence of commands to run are:

./configure --clean
./configure
python etc/release/gen_requirements.py --site-packages-dir <path to site-packages dir>
python etc/scripts/gen_requirements.py --site-packages-dir <path to site-packages dir>

* You can optionally install or update extra main requirements after the
./configure step such that these are included in the generated main requirements.
Expand All @@ -59,7 +59,7 @@ The sequence of commands to run are:

./configure --clean
./configure --dev
python etc/release/gen_requirements_dev.py --site-packages-dir <path to site-packages dir>
python etc/scripts/gen_requirements_dev.py --site-packages-dir <path to site-packages dir>

* You can optionally install or update extra dev requirements after the
./configure step such that these are included in the generated dev
Expand Down
87 changes: 64 additions & 23 deletions etc/scripts/fetch_thirdparty.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import itertools
import os
import sys
from collections import defaultdict

import click

Expand Down Expand Up @@ -110,6 +111,39 @@
is_flag=True,
help="Use on disk cached PyPI indexes list of packages and versions and do not refetch if present.",
)
@click.option(
"--sdist-only",
"sdist_only",
type=str,
metavar="SDIST",
default=tuple(),
show_default=False,
multiple=True,
help="Package name(s) that come only in sdist format (no wheels). "
"The command will not fail and exit if no wheel exists for these names",
)
@click.option(
"--wheel-only",
"wheel_only",
type=str,
metavar="WHEEL",
default=tuple(),
show_default=False,
multiple=True,
help="Package name(s) that come only in wheel format (no sdist). "
"The command will not fail and exit if no sdist exists for these names",
)
@click.option(
"--no-dist",
"no_dist",
type=str,
metavar="DIST",
default=tuple(),
show_default=False,
multiple=True,
help="Package name(s) that do not come either in wheel or sdist format. "
"The command will not fail and exit if no distribution exists for these names",
)
@click.help_option("-h", "--help")
def fetch_thirdparty(
requirements_files,
Expand All @@ -122,6 +156,9 @@ def fetch_thirdparty(
sdists,
index_urls,
use_cached_index,
sdist_only,
wheel_only,
no_dist,
):
"""
Download to --dest THIRDPARTY_DIR the PyPI wheels, source distributions,
Expand Down Expand Up @@ -204,58 +241,62 @@ def fetch_thirdparty(
)
repos.append(repo)

wheels_fetched = []
wheels_not_found = []

sdists_fetched = []
sdists_not_found = []
wheels_or_sdist_not_found = defaultdict(list)

for name, version in sorted(required_name_versions):
nv = name, version
print(f"Processing: {name} @ {version}")
if wheels:
for environment in environments:

if TRACE:
print(f" ==> Fetching wheel for envt: {environment}")
fwfns = utils_thirdparty.download_wheel(

fetched = utils_thirdparty.download_wheel(
name=name,
version=version,
environment=environment,
dest_dir=dest_dir,
repos=repos,
)
if fwfns:
wheels_fetched.extend(fwfns)
else:
wheels_not_found.append(f"{name}=={version} for: {environment}")
if not fetched:
wheels_or_sdist_not_found[f"{name}=={version}"].append(environment)
if TRACE:
print(f" NOT FOUND")

if sdists:
if (sdists or
(f"{name}=={version}" in wheels_or_sdist_not_found and name in sdist_only)
):
if TRACE:
print(f" ==> Fetching sdist: {name}=={version}")

fetched = utils_thirdparty.download_sdist(
name=name,
version=version,
dest_dir=dest_dir,
repos=repos,
)
if fetched:
sdists_fetched.append(fetched)
else:
sdists_not_found.append(f"{name}=={version}")
if not fetched:
wheels_or_sdist_not_found[f"{name}=={version}"].append("sdist")
if TRACE:
print(f" NOT FOUND")

if wheels and wheels_not_found:
print(f"==> MISSING WHEELS")
for wh in wheels_not_found:
print(f" {wh}")
mia = []
for nv, dists in wheels_or_sdist_not_found.items():
name, _, version = nv.partition("==")
if name in no_dist:
continue
sdist_missing = sdists and "sdist" in dists and not name in wheel_only
if sdist_missing:
mia.append(f"SDist missing: {nv} {dists}")
wheels_missing = wheels and any(d for d in dists if d != "sdist") and not name in sdist_only
if wheels_missing:
mia.append(f"Wheels missing: {nv} {dists}")

if sdists and sdists_not_found:
print(f"==> MISSING SDISTS")
for sd in sdists_not_found:
print(f" {sd}")
if mia:
for m in mia:
print(m)
raise Exception(mia)

print(f"==> FETCHING OR CREATING ABOUT AND LICENSE FILES")
utils_thirdparty.fetch_abouts_and_licenses(dest_dir=dest_dir, use_cached_index=use_cached_index)
Expand Down
6 changes: 3 additions & 3 deletions etc/scripts/gen_pypi_simple.py
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ def build_per_package_index(pkg_name, packages, base_url):
<body>"""
document.append(header)

for package in packages:
for package in sorted(packages, key=lambda p: p.archive_file):
document.append(package.simple_index_entry(base_url))

footer = """ </body>
Expand All @@ -141,8 +141,8 @@ def build_links_package_index(packages_by_package_name, base_url):
<body>"""
document.append(header)

for _name, packages in packages_by_package_name.items():
for package in packages:
for _name, packages in sorted(packages_by_package_name.items(), key=lambda i: i[0]):
for package in sorted(packages, key=lambda p: p.archive_file):
document.append(package.simple_index_entry(base_url))

footer = """ </body>
Expand Down
3 changes: 2 additions & 1 deletion etc/scripts/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ pip
setuptools
twine
wheel
build
build
packvers
2 changes: 1 addition & 1 deletion etc/scripts/utils_dejacode.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import requests
import saneyaml

from packaging import version as packaging_version
from packvers import version as packaging_version

"""
Utility to create and retrieve package and ABOUT file data from DejaCode.
Expand Down
2 changes: 1 addition & 1 deletion etc/scripts/utils_pip_compatibility_tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@

import re

from packaging.tags import (
from packvers.tags import (
compatible_tags,
cpython_tags,
generic_tags,
Expand Down
4 changes: 4 additions & 0 deletions etc/scripts/utils_requirements.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@
# See https://github.com/nexB/skeleton for support or download.
# See https://aboutcode.org for more information about nexB OSS projects.
#
<<<<<<< HEAD
=======

>>>>>>> 91f5613 (Align scripts with latest ScanCode Toolkit)
import os
import re
import subprocess
Expand Down
Loading