diff --git a/.github/workflows/basecheck.yml b/.github/workflows/basecheck.yml index abda4c2679..04a4b92514 100644 --- a/.github/workflows/basecheck.yml +++ b/.github/workflows/basecheck.yml @@ -25,7 +25,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Install Dependencies diff --git a/.github/workflows/check_pr_fixlib.yml b/.github/workflows/check_pr_fixlib.yml index 3e89abb13e..b430b56ea2 100644 --- a/.github/workflows/check_pr_fixlib.yml +++ b/.github/workflows/check_pr_fixlib.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_fixmetrics.yml b/.github/workflows/check_pr_fixmetrics.yml index aa741d9184..13c545bd14 100644 --- a/.github/workflows/check_pr_fixmetrics.yml +++ b/.github/workflows/check_pr_fixmetrics.yml @@ -27,7 +27,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_fixshell.yml b/.github/workflows/check_pr_fixshell.yml index 697b852bba..02b38bf2ad 100644 --- a/.github/workflows/check_pr_fixshell.yml +++ b/.github/workflows/check_pr_fixshell.yml @@ -28,7 +28,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_fixworker.yml b/.github/workflows/check_pr_fixworker.yml index 984ebdfaee..acbd97df69 100644 --- a/.github/workflows/check_pr_fixworker.yml +++ b/.github/workflows/check_pr_fixworker.yml @@ -27,7 +27,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_aws.yml b/.github/workflows/check_pr_plugin_aws.yml index 75ffeaff73..30741eb48d 100644 --- a/.github/workflows/check_pr_plugin_aws.yml +++ b/.github/workflows/check_pr_plugin_aws.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_azure.yml b/.github/workflows/check_pr_plugin_azure.yml index ddee301e55..8c3ccceba4 100644 --- a/.github/workflows/check_pr_plugin_azure.yml +++ b/.github/workflows/check_pr_plugin_azure.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_digitalocean.yml b/.github/workflows/check_pr_plugin_digitalocean.yml index 701bafdc45..7b68c3e429 100644 --- a/.github/workflows/check_pr_plugin_digitalocean.yml +++ b/.github/workflows/check_pr_plugin_digitalocean.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_dockerhub.yml b/.github/workflows/check_pr_plugin_dockerhub.yml index 2fd52d0a89..99dd8c1022 100644 --- a/.github/workflows/check_pr_plugin_dockerhub.yml +++ b/.github/workflows/check_pr_plugin_dockerhub.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_example_collector.yml b/.github/workflows/check_pr_plugin_example_collector.yml index 8834c3a2fc..7b084bc33c 100644 --- a/.github/workflows/check_pr_plugin_example_collector.yml +++ b/.github/workflows/check_pr_plugin_example_collector.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_gcp.yml b/.github/workflows/check_pr_plugin_gcp.yml index fbdbac9a49..7d4a3ac68a 100644 --- a/.github/workflows/check_pr_plugin_gcp.yml +++ b/.github/workflows/check_pr_plugin_gcp.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_github.yml b/.github/workflows/check_pr_plugin_github.yml index 3af3b65d46..37db42b1f8 100644 --- a/.github/workflows/check_pr_plugin_github.yml +++ b/.github/workflows/check_pr_plugin_github.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_hetzner.yml b/.github/workflows/check_pr_plugin_hetzner.yml index 2dfd4cd9f1..6f56ec0a4d 100644 --- a/.github/workflows/check_pr_plugin_hetzner.yml +++ b/.github/workflows/check_pr_plugin_hetzner.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_k8s.yml b/.github/workflows/check_pr_plugin_k8s.yml index 5599a12b59..3b9a86c173 100644 --- a/.github/workflows/check_pr_plugin_k8s.yml +++ b/.github/workflows/check_pr_plugin_k8s.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_onelogin.yml b/.github/workflows/check_pr_plugin_onelogin.yml index 5f19d7ba5b..1f6b439fe4 100644 --- a/.github/workflows/check_pr_plugin_onelogin.yml +++ b/.github/workflows/check_pr_plugin_onelogin.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_onprem.yml b/.github/workflows/check_pr_plugin_onprem.yml index 5a23e86aa2..2715e4782d 100644 --- a/.github/workflows/check_pr_plugin_onprem.yml +++ b/.github/workflows/check_pr_plugin_onprem.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_posthog.yml b/.github/workflows/check_pr_plugin_posthog.yml index bc4cbbbc4b..0290f5b8e4 100644 --- a/.github/workflows/check_pr_plugin_posthog.yml +++ b/.github/workflows/check_pr_plugin_posthog.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_random.yml b/.github/workflows/check_pr_plugin_random.yml index e14cd6d474..4bbbd376af 100644 --- a/.github/workflows/check_pr_plugin_random.yml +++ b/.github/workflows/check_pr_plugin_random.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_scarf.yml b/.github/workflows/check_pr_plugin_scarf.yml index a1ae7bef88..1b204e77aa 100644 --- a/.github/workflows/check_pr_plugin_scarf.yml +++ b/.github/workflows/check_pr_plugin_scarf.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_slack.yml b/.github/workflows/check_pr_plugin_slack.yml index a27286987b..3ff987adae 100644 --- a/.github/workflows/check_pr_plugin_slack.yml +++ b/.github/workflows/check_pr_plugin_slack.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/check_pr_plugin_vsphere.yml b/.github/workflows/check_pr_plugin_vsphere.yml index 748185f40e..cdec361e99 100644 --- a/.github/workflows/check_pr_plugin_vsphere.yml +++ b/.github/workflows/check_pr_plugin_vsphere.yml @@ -30,7 +30,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/create_plugin_workflows.py b/.github/workflows/create_plugin_workflows.py index 4e60f75618..ac311bdf62 100755 --- a/.github/workflows/create_plugin_workflows.py +++ b/.github/workflows/create_plugin_workflows.py @@ -36,7 +36,7 @@ - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/.github/workflows/fixcore_coverage.yml b/.github/workflows/fixcore_coverage.yml index 80cab4ad17..a9f8bd0836 100644 --- a/.github/workflows/fixcore_coverage.yml +++ b/.github/workflows/fixcore_coverage.yml @@ -39,7 +39,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache uses: actions/cache@v4 diff --git a/.github/workflows/fixcore_lint.yml b/.github/workflows/fixcore_lint.yml index 0594df6753..9e3c5476cf 100644 --- a/.github/workflows/fixcore_lint.yml +++ b/.github/workflows/fixcore_lint.yml @@ -27,7 +27,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache uses: actions/cache@v4 diff --git a/.github/workflows/fixcore_test_and_build.yml b/.github/workflows/fixcore_test_and_build.yml index 63c70b2a5d..4687259ffc 100644 --- a/.github/workflows/fixcore_test_and_build.yml +++ b/.github/workflows/fixcore_test_and_build.yml @@ -39,7 +39,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Setup Rust uses: actions-rs/toolchain@v1 diff --git a/.github/workflows/model_check.yml b/.github/workflows/model_check.yml index ea6fcf1429..7673d7550c 100644 --- a/.github/workflows/model_check.yml +++ b/.github/workflows/model_check.yml @@ -37,7 +37,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.11' + python-version: '3.12' architecture: 'x64' - name: Restore dependency cache diff --git a/fixcore/Makefile b/fixcore/Makefile index 639d25ef88..27bfd24bf9 100644 --- a/fixcore/Makefile +++ b/fixcore/Makefile @@ -59,7 +59,7 @@ lint: ## static code analysis black --line-length 120 --check fixcore tests flake8 fixcore pylint fixcore - mypy --python-version 3.11 --strict fixcore tests + mypy --python-version 3.12 --strict fixcore tests test: ## run tests quickly with the default Python pytest diff --git a/fixcore/fixcore/cli/command.py b/fixcore/fixcore/cli/command.py index 71ede8cdc3..b582cba90d 100644 --- a/fixcore/fixcore/cli/command.py +++ b/fixcore/fixcore/cli/command.py @@ -16,6 +16,7 @@ # noinspection PyProtectedMember from asyncio.subprocess import Process from collections import defaultdict +from collections.abc import Hashable from contextlib import suppress from datetime import timedelta, datetime from functools import partial, lru_cache, cached_property @@ -28,7 +29,6 @@ Optional, Any, AsyncIterator, - Hashable, Iterable, Callable, Awaitable, diff --git a/fixcore/fixcore/db/graphdb.py b/fixcore/fixcore/db/graphdb.py index c3cf3a44a7..55a8e26b8f 100644 --- a/fixcore/fixcore/db/graphdb.py +++ b/fixcore/fixcore/db/graphdb.py @@ -1181,7 +1181,7 @@ def parent_edges(edge_type: EdgeType) -> Tuple[str, Json]: root_kind = GraphResolver.resolved_kind(graph_to_merge.nodes[root]) if root_kind: # noinspection PyTypeChecker - log.info(f"Update subgraph: root={root} ({root_kind}, {num+1} of {len(roots)})") + log.info(f"Update subgraph: root={root} ({root_kind}, {num + 1} of {len(roots)})") node_query = self.query_update_nodes(root_kind), {"update_id": root} edge_query = partial(merge_edges, root, root_kind) change += await prepare_graph(graph, node_query, edge_query) diff --git a/fixcore/fixcore/error.py b/fixcore/fixcore/error.py index ad2b2fabc8..54f1f26d03 100644 --- a/fixcore/fixcore/error.py +++ b/fixcore/fixcore/error.py @@ -106,7 +106,7 @@ class NotEnoughPermissions(web.HTTPForbidden): def __init__(self, user_permissions: Set[Any], required_permissions: Set[Any]) -> None: super().__init__( text=f"Not allowed to perform this operation. " - f"Missing permission: {', '.join(a.name for a in (required_permissions-user_permissions))}" + f"Missing permission: {', '.join(a.name for a in (required_permissions - user_permissions))}" ) self.user_permissions = user_permissions self.required_permissions = required_permissions diff --git a/fixcore/pyproject.toml b/fixcore/pyproject.toml index 239348c7e2..5c85874c80 100644 --- a/fixcore/pyproject.toml +++ b/fixcore/pyproject.toml @@ -5,7 +5,7 @@ authors = [{name="Some Engineering Inc."}] description = "Keeps all the things." license = { text="AGPLv3" } urls = {"Homepage" = "https://inventory.fix.security"} -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -15,7 +15,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/fixcore/tests/fixcore/worker_task_queue_test.py b/fixcore/tests/fixcore/worker_task_queue_test.py index 48526b7424..095dbe6955 100644 --- a/fixcore/tests/fixcore/worker_task_queue_test.py +++ b/fixcore/tests/fixcore/worker_task_queue_test.py @@ -69,6 +69,7 @@ async def test_handle_outdated( # every message is retried 3 times ==> 4 times to get rid of all messages assert count_outstanding == 4 + await asyncio.sleep(0) results = await asyncio.gather(*[a.callback for a in all_tasks], return_exceptions=True) # make sure all results are failures for r in results: diff --git a/fixcore/tox.ini b/fixcore/tox.ini index 0429ff1ae3..71f3161655 100644 --- a/fixcore/tox.ini +++ b/fixcore/tox.ini @@ -28,7 +28,7 @@ commands = flake8 fixcore commands = pylint fixcore [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fixcore tests +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fixcore tests [testenv:tests] commands = pytest diff --git a/fixlib/Makefile b/fixlib/Makefile index abe856eb21..c6e446ebdb 100644 --- a/fixlib/Makefile +++ b/fixlib/Makefile @@ -59,7 +59,7 @@ lint: ## static code analysis black --line-length 120 --check fixlib test flake8 fixlib #pylint fixlib - mypy --python-version 3.11 --strict --install-types --non-interactive fixlib + mypy --python-version 3.12 --strict --install-types --non-interactive fixlib test: ## run tests quickly with the default Python pytest diff --git a/fixlib/pyproject.toml b/fixlib/pyproject.toml index 4e991362c5..7d60f853c2 100644 --- a/fixlib/pyproject.toml +++ b/fixlib/pyproject.toml @@ -4,7 +4,7 @@ version = "4.1.0" authors = [{ name = "Some Engineering Inc." }] description = "Fix Inventory common library." license = { text = "AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/fixmetrics/pyproject.toml b/fixmetrics/pyproject.toml index 2fca2b138d..7077ece7c0 100644 --- a/fixmetrics/pyproject.toml +++ b/fixmetrics/pyproject.toml @@ -4,7 +4,7 @@ version = "4.1.0" authors = [{name="Some Engineering Inc."}] description = "Exports Fix Inventory metrics in Prometheus format." license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/fixshell/Makefile b/fixshell/Makefile index 2e1675c91a..38104e770b 100644 --- a/fixshell/Makefile +++ b/fixshell/Makefile @@ -56,7 +56,7 @@ lint: ## static code analysis black --line-length 120 --check fixshell test flake8 fixshell pylint fixshell - mypy --python-version 3.11 --strict --install-types --non-interactive fixshell test + mypy --python-version 3.12 --strict --install-types --non-interactive fixshell test test: ## run tests quickly with the default Python pytest diff --git a/fixshell/pyproject.toml b/fixshell/pyproject.toml index ae5890cf88..b43ef5d6d9 100644 --- a/fixshell/pyproject.toml +++ b/fixshell/pyproject.toml @@ -4,7 +4,7 @@ version = "4.1.0" authors = [{name="Some Engineering Inc."}] description = "Commandline interpreter to interact with Fix Inventory." license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/fixshell/tox.ini b/fixshell/tox.ini index a18f2da859..0fa5cf3945 100644 --- a/fixshell/tox.ini +++ b/fixshell/tox.ini @@ -29,4 +29,4 @@ commands= pytest commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fixshell test +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fixshell test diff --git a/fixworker/Makefile b/fixworker/Makefile index 5b1f56066b..0d1fe614a3 100644 --- a/fixworker/Makefile +++ b/fixworker/Makefile @@ -59,7 +59,7 @@ lint: ## static code analysis black --line-length 120 --check fixworker test flake8 fixworker #pylint fixworker - mypy --python-version 3.11 --strict --install-types --non-interactive fixworker + mypy --python-version 3.12 --strict --install-types --non-interactive fixworker test: ## run tests quickly with the default Python pytest diff --git a/fixworker/pyproject.toml b/fixworker/pyproject.toml index 849d1ce562..0b227dd0c0 100644 --- a/fixworker/pyproject.toml +++ b/fixworker/pyproject.toml @@ -4,7 +4,7 @@ version = "4.1.0" authors = [{ name = "Some Engineering Inc." }] description = "Runs collector plugins and sends the result to fixcore." license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = ["Programming Language :: Python :: 3"] readme = { file = "README.md", content-type = "text/markdown" } diff --git a/fixworker/tox.ini b/fixworker/tox.ini index 2d3d9b0c47..9a8286500d 100644 --- a/fixworker/tox.ini +++ b/fixworker/tox.ini @@ -30,4 +30,4 @@ commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fixworker test +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fixworker test diff --git a/plugins/aws/Makefile b/plugins/aws/Makefile index c01a9c7d7c..f98f39a021 100644 --- a/plugins/aws/Makefile +++ b/plugins/aws/Makefile @@ -30,7 +30,7 @@ clean-test: ## remove test and coverage artifacts lint: ## static code analysis black --line-length 120 --check fix_plugin_aws test flake8 fix_plugin_aws - mypy --python-version 3.11 --strict --install-types fix_plugin_aws test + mypy --python-version 3.12 --strict --install-types fix_plugin_aws test test: ## run tests quickly with the default Python pytest diff --git a/plugins/aws/fix_plugin_aws/resource/cloudwatch.py b/plugins/aws/fix_plugin_aws/resource/cloudwatch.py index 20fd8ff30c..ba07756533 100644 --- a/plugins/aws/fix_plugin_aws/resource/cloudwatch.py +++ b/plugins/aws/fix_plugin_aws/resource/cloudwatch.py @@ -623,7 +623,9 @@ def query_for_multiple( queries: List[AwsCloudwatchQuery], scan_desc: bool = True, ) -> "Dict[AwsCloudwatchQuery, AwsCloudwatchMetricData]": - log.info(f"[{builder.region.safe_name}|{start}|{duration_str(until-start)}] Query for {len(queries)} metrics.") + log.info( + f"[{builder.region.safe_name}|{start}|{duration_str(until - start)}] Query for {len(queries)} metrics." + ) lookup = {query.metric_id: query for query in queries} result: Dict[AwsCloudwatchQuery, AwsCloudwatchMetricData] = {} futures = [] diff --git a/plugins/aws/pyproject.toml b/plugins/aws/pyproject.toml index e20d85b39b..647453a05d 100644 --- a/plugins/aws/pyproject.toml +++ b/plugins/aws/pyproject.toml @@ -4,7 +4,7 @@ version = "4.1.0" authors = [{name="Some Engineering Inc."}] description = "Runs collector plugins and sends the result to fixcore." license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/aws/tools/awspolicygen/setup.py b/plugins/aws/tools/awspolicygen/setup.py index b5cee7a856..e995c3d7e6 100644 --- a/plugins/aws/tools/awspolicygen/setup.py +++ b/plugins/aws/tools/awspolicygen/setup.py @@ -36,7 +36,7 @@ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/aws/tox.ini b/plugins/aws/tox.ini index 6a68feeadf..eb2b934b13 100644 --- a/plugins/aws/tox.ini +++ b/plugins/aws/tox.ini @@ -30,4 +30,4 @@ commands= pytest commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fix_plugin_aws test +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fix_plugin_aws test diff --git a/plugins/azure/Makefile b/plugins/azure/Makefile index 430929bb66..a515db5ca8 100644 --- a/plugins/azure/Makefile +++ b/plugins/azure/Makefile @@ -30,7 +30,7 @@ clean-test: ## remove test and coverage artifacts lint: ## static code analysis black --line-length 120 --check fix_plugin_azure test flake8 fix_plugin_azure - mypy --python-version 3.11 --strict --install-types --non-interactive fix_plugin_azure test + mypy --python-version 3.12 --strict --install-types --non-interactive fix_plugin_azure test test: ## run tests quickly with the default Python pytest diff --git a/plugins/azure/pyproject.toml b/plugins/azure/pyproject.toml index 2b5d28088a..39840acd17 100644 --- a/plugins/azure/pyproject.toml +++ b/plugins/azure/pyproject.toml @@ -4,7 +4,7 @@ version = "4.1.0" authors = [{name="Some Engineering Inc."}] description = "Runs collector plugins and sends the result to fixcore." license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/azure/tox.ini b/plugins/azure/tox.ini index 4d1c21e538..eb6ce42e21 100644 --- a/plugins/azure/tox.ini +++ b/plugins/azure/tox.ini @@ -30,4 +30,4 @@ commands= pytest commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fix_plugin_azure test +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fix_plugin_azure test diff --git a/plugins/digitalocean/pyproject.toml b/plugins/digitalocean/pyproject.toml index 58f35171de..8434fe5cbf 100644 --- a/plugins/digitalocean/pyproject.toml +++ b/plugins/digitalocean/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix DigitalOcean Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/digitalocean/tox.ini b/plugins/digitalocean/tox.ini index 913d7c5fdf..a130486034 100644 --- a/plugins/digitalocean/tox.ini +++ b/plugins/digitalocean/tox.ini @@ -29,4 +29,4 @@ commands= pytest commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fix_plugin_digitalocean test +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fix_plugin_digitalocean test diff --git a/plugins/dockerhub/pyproject.toml b/plugins/dockerhub/pyproject.toml index 15eddcf63c..2ec0eae1d9 100644 --- a/plugins/dockerhub/pyproject.toml +++ b/plugins/dockerhub/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Docker Hub Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/example_collector/pyproject.toml b/plugins/example_collector/pyproject.toml index 13c329ebec..c0e3d25fb2 100644 --- a/plugins/example_collector/pyproject.toml +++ b/plugins/example_collector/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Example Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/gcp/Makefile b/plugins/gcp/Makefile index 10f8f2e714..1d9e837dbd 100644 --- a/plugins/gcp/Makefile +++ b/plugins/gcp/Makefile @@ -30,7 +30,7 @@ clean-test: ## remove test and coverage artifacts lint: ## static code analysis black --line-length 120 --check fix_plugin_gcp test flake8 fix_plugin_gcp - mypy --install-types --non-interactive --python-version 3.11 --strict fix_plugin_gcp test + mypy --install-types --non-interactive --python-version 3.12 --strict fix_plugin_gcp test test: ## run tests quickly with the default Python pytest diff --git a/plugins/gcp/pyproject.toml b/plugins/gcp/pyproject.toml index 042009e70c..4563bea3e3 100644 --- a/plugins/gcp/pyproject.toml +++ b/plugins/gcp/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix GCP Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 5 - Production/Stable", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/gcp/tools/gcppolicygen/setup.py b/plugins/gcp/tools/gcppolicygen/setup.py index 172eb6a28d..89beb86d22 100644 --- a/plugins/gcp/tools/gcppolicygen/setup.py +++ b/plugins/gcp/tools/gcppolicygen/setup.py @@ -36,7 +36,7 @@ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/gcp/tox.ini b/plugins/gcp/tox.ini index cfaa6a45a9..1764dd96fb 100644 --- a/plugins/gcp/tox.ini +++ b/plugins/gcp/tox.ini @@ -28,4 +28,4 @@ commands= pytest commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= mypy --install-types --non-interactive --python-version 3.11 --strict fix_plugin_gcp test +commands= mypy --install-types --non-interactive --python-version 3.12 --strict fix_plugin_gcp test diff --git a/plugins/github/pyproject.toml b/plugins/github/pyproject.toml index 22029a43b8..044dac4b17 100644 --- a/plugins/github/pyproject.toml +++ b/plugins/github/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Github Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/k8s/Makefile b/plugins/k8s/Makefile index fa78fa8287..350bb95ee2 100644 --- a/plugins/k8s/Makefile +++ b/plugins/k8s/Makefile @@ -30,7 +30,7 @@ clean-test: ## remove test and coverage artifacts lint: ## static code analysis black --line-length 120 --check fix_plugin_k8s test flake8 fix_plugin_k8s - mypy --python-version 3.11 --strict fix_plugin_k8s test + mypy --python-version 3.12 --strict fix_plugin_k8s test test: ## run tests quickly with the default Python pytest diff --git a/plugins/k8s/pyproject.toml b/plugins/k8s/pyproject.toml index 298c116448..9ac4381de4 100644 --- a/plugins/k8s/pyproject.toml +++ b/plugins/k8s/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Kubernetes Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/k8s/tools/model_gen.py b/plugins/k8s/tools/model_gen.py index a4b01452a6..ea1cd443a3 100644 --- a/plugins/k8s/tools/model_gen.py +++ b/plugins/k8s/tools/model_gen.py @@ -198,7 +198,7 @@ def create_inner_class(self, name: str, schema: dict) -> None: def create_resource_class(self, name: str, schema: dict) -> None: result = "@define\n" result += f"class Kubernetes{name}(KubernetesResource):\n" - result += f' kind: ClassVar[str] = "{to_snake("kubernetes_"+name)}"\n' + result += f' kind: ClassVar[str] = "{to_snake("kubernetes_" + name)}"\n' result += self.props( name, schema, diff --git a/plugins/k8s/tox.ini b/plugins/k8s/tox.ini index 889b77f1e5..361d9b5a18 100644 --- a/plugins/k8s/tox.ini +++ b/plugins/k8s/tox.ini @@ -30,4 +30,4 @@ commands= pytest commands = black --line-length 120 --check --diff --target-version py39 . [testenv:mypy] -commands= python -m mypy --install-types --non-interactive --python-version 3.11 --strict fix_plugin_k8s test +commands= python -m mypy --install-types --non-interactive --python-version 3.12 --strict fix_plugin_k8s test diff --git a/plugins/onelogin/pyproject.toml b/plugins/onelogin/pyproject.toml index 9b69710d75..3d99ad1647 100644 --- a/plugins/onelogin/pyproject.toml +++ b/plugins/onelogin/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix OneLogin Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/onprem/pyproject.toml b/plugins/onprem/pyproject.toml index 5721d767c3..6c37f716aa 100644 --- a/plugins/onprem/pyproject.toml +++ b/plugins/onprem/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix On-Premises Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/posthog/pyproject.toml b/plugins/posthog/pyproject.toml index a47af6f802..d72ca8a047 100644 --- a/plugins/posthog/pyproject.toml +++ b/plugins/posthog/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Posthog Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/random/pyproject.toml b/plugins/random/pyproject.toml index 80367f80c8..c5f9d39d43 100644 --- a/plugins/random/pyproject.toml +++ b/plugins/random/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Random Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/scarf/pyproject.toml b/plugins/scarf/pyproject.toml index 7b4716d7f5..062be84af1 100644 --- a/plugins/scarf/pyproject.toml +++ b/plugins/scarf/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Scarf Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/slack/pyproject.toml b/plugins/slack/pyproject.toml index 450130ea5f..9f8a24bb9a 100644 --- a/plugins/slack/pyproject.toml +++ b/plugins/slack/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix Slack Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = { text="AGPLv3" } -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/plugins/vsphere/pyproject.toml b/plugins/vsphere/pyproject.toml index 27e66119e1..6b986bf6e7 100644 --- a/plugins/vsphere/pyproject.toml +++ b/plugins/vsphere/pyproject.toml @@ -4,7 +4,7 @@ description = "Fix VSphere Collector Plugin" version = "4.1.0" authors = [{name="Some Engineering Inc."}] license = {file="LICENSE"} -requires-python = ">=3.11" +requires-python = ">=3.12" classifiers = [ # Current project status "Development Status :: 4 - Beta", @@ -14,7 +14,7 @@ classifiers = [ # License information "License :: OSI Approved :: Apache Software License", # Supported python versions - "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", # Supported OS's "Operating System :: POSIX :: Linux", "Operating System :: Unix", diff --git a/setup_venv.sh b/setup_venv.sh index 7e5a5f5947..aa000cd146 100755 --- a/setup_venv.sh +++ b/setup_venv.sh @@ -10,7 +10,7 @@ set -euo pipefail # Alpine packages: # curl bash python3 python3-dev git make gcc g++ linux-headers libffi-dev -declare -a supported_versions=(python3.11 python3.10 python3.9) +declare -a supported_versions=(python3.12 python3.11 python3.10 python3.9) declare -a debian_packages=(curl bash python3-minimal python3-venv python3-dev git make gcc g++) declare -a centos_packages=(curl bash python39 python39-devel git make gcc gcc-c++) declare -a fedora_packages=(curl bash python3 python3-devel git make gcc gcc-c++ findutils)