diff --git a/.github/workflows/python-coverage.yaml b/.github/workflows/python-coverage.yaml index b50d8ee8..43b66921 100644 --- a/.github/workflows/python-coverage.yaml +++ b/.github/workflows/python-coverage.yaml @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -38,11 +38,11 @@ jobs: - name: Test with pytest run: | coverage run -m pytest --cov-config=.coveragerc - - - name: Debug coverage - run: coverage report -m + + - name: Convert to LCO + run: coverage lcov --rcfile=.coveragerc - name: Upload coverage data to coveralls.io - run: coveralls --service=github --rcfile=.coveragerc - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + uses: coverallsapp/github-action@v2 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/python-docs.yaml b/.github/workflows/python-docs.yaml index 5fcd99ad..97769414 100644 --- a/.github/workflows/python-docs.yaml +++ b/.github/workflows/python-docs.yaml @@ -10,7 +10,7 @@ on: jobs: deploy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -28,7 +28,7 @@ jobs: run: | python -m pip install --upgrade pip pip install -e .[s3,tune] - pip install -r ./requirements/DEV_REQUIREMENTS.txt + pip install -r ./requirements/S3_REQUIREMENTS.txt pip install -r ./requirements/TUNE_REQUIREMENTS.txt pip install -r ./requirements/TEST_EXTRAS_REQUIREMENTS.txt diff --git a/.github/workflows/python-lint.yaml b/.github/workflows/python-lint.yaml index 94325eb3..1c033955 100644 --- a/.github/workflows/python-lint.yaml +++ b/.github/workflows/python-lint.yaml @@ -12,7 +12,7 @@ on: jobs: run_lint: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -37,8 +37,8 @@ jobs: - name: Run isort linter run: | - isort --check . --skip="debug" --skip="versioneer.py" --skip="tests" --skip="_version.py" + isort --check . - name: Run black linter run: | - black --check . --exclude="versioneer.py|_version.py|debug|tests" + black --check . diff --git a/.github/workflows/python-manual-docs.yaml b/.github/workflows/python-manual-docs.yaml index 83f090fb..139d9976 100644 --- a/.github/workflows/python-manual-docs.yaml +++ b/.github/workflows/python-manual-docs.yaml @@ -7,7 +7,7 @@ on: workflow_dispatch jobs: deploy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/python-publish.yaml b/.github/workflows/python-publish.yaml index c9776df1..8e0eca4d 100644 --- a/.github/workflows/python-publish.yaml +++ b/.github/workflows/python-publish.yaml @@ -11,7 +11,7 @@ on: jobs: deploy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/python-pytest-s3.yaml b/.github/workflows/python-pytest-s3.yaml index 27961247..80d9d32c 100644 --- a/.github/workflows/python-pytest-s3.yaml +++ b/.github/workflows/python-pytest-s3.yaml @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] diff --git a/.github/workflows/python-pytest-tune.yaml b/.github/workflows/python-pytest-tune.yaml index 2f053ce6..f276211e 100644 --- a/.github/workflows/python-pytest-tune.yaml +++ b/.github/workflows/python-pytest-tune.yaml @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python-version: ["3.7", "3.8", "3.9", "3.10"] diff --git a/.github/workflows/python-pytest.yml b/.github/workflows/python-pytest.yml index b4a9976e..38bca867 100644 --- a/.github/workflows/python-pytest.yml +++ b/.github/workflows/python-pytest.yml @@ -11,7 +11,7 @@ on: jobs: build: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 strategy: matrix: python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] diff --git a/.github/workflows/python-test-docs.yaml b/.github/workflows/python-test-docs.yaml index 381736c7..75ed90ac 100644 --- a/.github/workflows/python-test-docs.yaml +++ b/.github/workflows/python-test-docs.yaml @@ -15,7 +15,7 @@ on: jobs: deploy: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/REQUIREMENTS.txt b/REQUIREMENTS.txt index 9b67642a..ab9f7b5f 100644 --- a/REQUIREMENTS.txt +++ b/REQUIREMENTS.txt @@ -1,6 +1,10 @@ -attrs~=21.4 +attrs~=23.1 ; python_version >= '3.7' +attrs~=22.2 ; python_version == '3.6' cryptography~=37.0 GitPython~=3.1 pytomlpp~=1.0 -pyYAML~=5.4 -setuptools~=59.6 +# pyYAML~=5.4 +pyYAML~=6.0 +setuptools~=68.1 ; python_version >= '3.8' +setuptools~=68.0 ; python_version == '3.7' +setuptools~=59.6 ; python_version == '3.6' \ No newline at end of file diff --git a/requirements/DEV_REQUIREMENTS.txt b/requirements/DEV_REQUIREMENTS.txt index ff176e24..905b7a13 100644 --- a/requirements/DEV_REQUIREMENTS.txt +++ b/requirements/DEV_REQUIREMENTS.txt @@ -1,13 +1,15 @@ -black~=22.1 ; python_version >= '3.7' +black~=23.7 ; python_version >= '3.8' +black~=23.3 ; python_version == '3.7' black~=21.4b0 ; python_version == '3.6' -coveralls~=3.3 -coverage[toml]~=6.1 -isort~=5.10 +# coveralls~=3.3 +coverage[toml]~=7.3 ; python_version >= '3.7' +coverage[toml]~=6.2 ; python_version == '3.6' +isort~=5.12 moto~=3.1 -pre-commit~=2.20 ; python_version >= '3.7' +pre-commit~=3.3 ; python_version >= '3.7' pre-commit~=2.17 ; python_version == '3.6' -pydoc-markdown~=4.3, < 4.6.* ; python_version >= '3.7' +pydoc-markdown~=4.8 ; python_version >= '3.7' pydoc-markdown~=3.13 ; python_version == '3.6' -pytest~=7.0 -pytest-cov~=3.0 -pylint~=2.11 +pytest~=7.4 +pytest-cov~=4.1 +pylint~=2.17 diff --git a/requirements/S3_REQUIREMENTS.txt b/requirements/S3_REQUIREMENTS.txt index 92aac2cd..252cce4b 100644 --- a/requirements/S3_REQUIREMENTS.txt +++ b/requirements/S3_REQUIREMENTS.txt @@ -1,4 +1,4 @@ -boto3~=1.20 -botocore~=1.26 +boto3~=1.28 +botocore~=1.31 hurry.filesize~=0.9 -s3transfer~=0.5 +s3transfer~=0.6 diff --git a/requirements/TUNE_REQUIREMENTS.txt b/requirements/TUNE_REQUIREMENTS.txt index 954ef1ce..f1fcfd91 100644 --- a/requirements/TUNE_REQUIREMENTS.txt +++ b/requirements/TUNE_REQUIREMENTS.txt @@ -1,4 +1,5 @@ mypy_extensions~=0.4; python_version < '3.8' -optuna~=2.10 -torch>=1.8.1 -ax-platform~=0.2.4; python_version >= '3.7' +optuna~=3.3 +torch~=2.0 +ax-platform~=0.3.4; python_version >= '3.9' +ax-platform~=0.3.3; python_version == '3.8' diff --git a/spock/backend/help.py b/spock/backend/help.py index eff779e8..d7b94510 100644 --- a/spock/backend/help.py +++ b/spock/backend/help.py @@ -110,20 +110,22 @@ def handle_attributes_print(info_dict, max_indent: int): max_indent: max indent for pretty print of help """ - # Figure out indents - max_param_length = max([len(k) for k in info_dict.keys()]) - max_type_length = max([v["len"]["type"] for v in info_dict.values()]) - # Print akin to the argparser - for k, v in info_dict.items(): - print( - f" {k}" - + (" " * (max_param_length - v["len"]["name"] + max_indent)) - + f'{v["type"]}' - + (" " * (max_type_length - v["len"]["type"] + max_indent)) - + f'{v["desc"]} {v["default"]}' - ) - # Blank for spacing :-/ - print("") + # Add check for an empty dict (corresponds to any empty spock class) + if len(info_dict) > 0: + # Figure out indents + max_param_length = max([len(k) for k in info_dict.keys()]) + max_type_length = max([v["len"]["type"] for v in info_dict.values()]) + # Print akin to the argparser + for k, v in info_dict.items(): + print( + f" {k}" + + (" " * (max_param_length - v["len"]["name"] + max_indent)) + + f'{v["type"]}' + + (" " * (max_type_length - v["len"]["type"] + max_indent)) + + f'{v["desc"]} {v["default"]}' + ) + # Blank for spacing :-/ + print("") def get_type_string(val, nested_others): diff --git a/spock/utils.py b/spock/utils.py index 7c0bb86a..60811422 100644 --- a/spock/utils.py +++ b/spock/utils.py @@ -602,6 +602,7 @@ def add_repo_info(out_dict: Dict) -> Dict: head_result = subprocess.run( "git rev-parse --abbrev-ref --symbolic-full-name HEAD", stdout=subprocess.PIPE, + stdin=subprocess.DEVNULL if sys.platform == "win32" else None, shell=True, check=False, ) @@ -609,6 +610,7 @@ def add_repo_info(out_dict: Dict) -> Dict: head_result = subprocess.run( "git rev-parse --abbrev-ref --symbolic-full-name HEAD", capture_output=True, + stdin=subprocess.DEVNULL if sys.platform == "win32" else None, shell=True, check=False, ) @@ -631,6 +633,9 @@ def add_repo_info(out_dict: Dict) -> Dict: out_dict.update( {"# Git Origin": repo.active_branch.commit.repo.remotes.origin.url} ) + # Attempt to close to not leak resources + # https://github.com/gitpython-developers/GitPython#leakage-of-system-resources + repo.close() except git.InvalidGitRepositoryError: # pragma: no cover # But it's okay if we are not out_dict = make_blank_git(out_dict)