From 72d311d37b5c4a829e5fc3fcf4b86df749f349d9 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:25:20 -0500 Subject: [PATCH 01/65] Update syntax and test --- .github/workflows/tests.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7d1c621d..f72bb428 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,37 +23,37 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.8 uses: ./ with: python-version: 3.8 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.9 uses: ./ with: python-version: 3.9 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.10 uses: ./ with: python-version: 3.10 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.11 uses: ./ with: python-version: 3.11 - name: Run tests - run: make test - run: make e2e_test \ No newline at end of file + - run: make test + - run: make e2e_test \ No newline at end of file From 43162b42b301a31271c28d115898f502ea6aea53 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:30:50 -0500 Subject: [PATCH 02/65] Push to rerun tests --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f72bb428..654a64e4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -56,4 +56,5 @@ jobs: python-version: 3.11 - name: Run tests - run: make test - - run: make e2e_test \ No newline at end of file + - run: make e2e_test + \ No newline at end of file From 7b5ce2ebefd40c1d88ffce77abbe86b6c9906f23 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:38:26 -0500 Subject: [PATCH 03/65] Syntax update --- .github/workflows/tests.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 654a64e4..a86d076f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,38 +23,32 @@ jobs: with: python-version: 3.7 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.8 uses: ./ with: python-version: 3.8 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.9 uses: ./ with: python-version: 3.9 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.10 uses: ./ with: python-version: 3.10 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.11 uses: ./ with: python-version: 3.11 - name: Run tests - - run: make test - - run: make e2e_test - \ No newline at end of file + run: make test e2e_test From 4ca216043ec5d8285c1773fc98e304398e8abc17 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:42:41 -0500 Subject: [PATCH 04/65] Push to test --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a86d076f..ee2381b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -51,4 +51,4 @@ jobs: with: python-version: 3.11 - name: Run tests - run: make test e2e_test + run: make test e2e_test \ No newline at end of file From 12461687e5f99665e37019c3dc7dd4bea8535a1e Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:26:12 -0500 Subject: [PATCH 05/65] made a change to force action --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ee2381b2..cbab2a8e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,7 +23,8 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test e2e_test + run: make test + run: e2e_test - name: Run with setup-python 3.8 uses: ./ From cd0122d7acf96b9e209ef0cbab89ca581b976764 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:29:28 -0500 Subject: [PATCH 06/65] Update Readme to reflect new workflows --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 69cefe7c..ec11bd75 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ analytics-python ============== -[![CircleCI](https://circleci.com/gh/segmentio/analytics-python/tree/master.svg?style=svg&circle-token=c0b411a3e21943918294714ad1d75a1cfc718f79)](https://circleci.com/gh/segmentio/analytics-python/tree/master) +[![Run Python Tests](https://github.com/North-Two-Five/analytics-python/actions/workflows/main.yml/badge.svg)](https://github.com/North-Two-Five/analytics-python/actions/workflows/main.yml) +[![.github/workflows/tests.yml](https://github.com/North-Two-Five/analytics-python/actions/workflows/tests.yml/badge.svg)](https://github.com/North-Two-Five/analytics-python/actions/workflows/tests.yml) + analytics-python is a python client for [Segment](https://segment.com) From ede8d5a5c10f2c16ecfad01afebb330fe0457b3d Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:34:19 -0500 Subject: [PATCH 07/65] Remove CI folder and files --- .circleci/config.yml | 110 ------------------------------------ .github/workflows/tests.yml | 4 +- 2 files changed, 2 insertions(+), 112 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index bb80c74e..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,110 +0,0 @@ -version: 2 -defaults: - taggedReleasesFilter: &taggedReleasesFilter - tags: - only: /^\d+\.\d+\.\d+((a|b|rc)\d)?$/ # matches 1.2.3, 1.2.3a1, 1.2.3b1, 1.2.3rc1 etc.. -jobs: - build: - docker: - - image: circleci/python:3.8 - steps: - - checkout - - run: pip3 install python-dateutil backoff monotonic - - run: pip3 install --user . - - run: sudo pip3 install pylint==2.8.0 flake8 mock==3.0.5 python-dateutil - - run: make test - - store_artifacts: - path: pylint.out - - store_artifacts: - path: flake8.out - - snyk: - docker: - - image: circleci/python:3.9 - steps: - - checkout - - attach_workspace: { at: . } - - run: pip3 install pipreqs - - run: pip3 install --user appdirs - - run: pipreqs . - - run: pip3 install --user -r requirements.txt - - run: curl -sL https://raw.githubusercontent.com/segmentio/snyk_helpers/master/initialization/snyk.sh | sh - - test_37: &test - docker: - - image: circleci/python:3.7 - steps: - - checkout - - run: pip3 install python-dateutil backoff monotonic - - run: pip3 install --user .[test] - - run: - name: Linting with Flake8 - command: | - git diff origin/master..HEAD analytics | flake8 --diff --max-complexity=10 analytics - - run: make test - - run: make e2e_test - - test_38: - <<: *test - docker: - - image: circleci/python:3.8 - - test_39: - <<: *test - docker: - - image: circleci/python:3.9 - - publish: - docker: - - image: circleci/python:3.9 - steps: - - checkout - - run: sudo pip install twine - - run: make release - -workflows: - version: 2 - build_test_release: - jobs: - - build: - filters: - <<: *taggedReleasesFilter - - test_37: - filters: - <<: *taggedReleasesFilter - - test_38: - filters: - <<: *taggedReleasesFilter - - test_39: - filters: - <<: *taggedReleasesFilter - - publish: - requires: - - build - - test_37 - - test_38 - - test_39 - filters: - <<: *taggedReleasesFilter - branches: - ignore: /.*/ - static_analysis: - jobs: - - build - - snyk: - context: snyk - requires: - - build - scheduled_e2e_test: - triggers: - - schedule: - cron: "0 * * * *" - filters: - branches: - only: - - master - - scheduled_e2e_testing - jobs: - - test_37 - - test_38 - - test_39 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cbab2a8e..543768bf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,8 +23,8 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test - run: e2e_test + - run: make test + - run: e2e_test - name: Run with setup-python 3.8 uses: ./ From ed0c58799e8faf752b0f38e83cafe20c2f21df18 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:36:52 -0500 Subject: [PATCH 08/65] Update syntax --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 543768bf..ee2381b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,8 +23,7 @@ jobs: with: python-version: 3.7 - name: Run tests - - run: make test - - run: e2e_test + run: make test e2e_test - name: Run with setup-python 3.8 uses: ./ From 5fa073e9c1cd892ddec3564b1a34eed48371bbdf Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:45:17 -0500 Subject: [PATCH 09/65] Fix issues with run rows --- .github/workflows/tests.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ee2381b2..b3c5ea2f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,32 +23,42 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.8 uses: ./ with: python-version: 3.8 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.9 uses: ./ with: python-version: 3.9 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.10 uses: ./ with: python-version: 3.10 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.11 uses: ./ with: python-version: 3.11 - name: Run tests - run: make test e2e_test \ No newline at end of file + run: make test + - name: Run e2e Tests + run: e2e_test \ No newline at end of file From c2362226bf9b91b31566eba81541cd9810a6ef36 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 10:48:27 -0500 Subject: [PATCH 10/65] Adding workflows for manual execution --- .github/workflows/tests.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b3c5ea2f..b0f5094f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,6 +9,17 @@ on: pull_request: paths-ignore: - '**.md' + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' + type: choice + options: + - info + - warning + - debug jobs: test-setup-python: From db0cfcbab24b1b72c349473523900382a57794c4 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 10:59:35 -0500 Subject: [PATCH 11/65] Update run on push for tests --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b0f5094f..d64b17b7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - '**Tests**' paths-ignore: - '**.md' pull_request: From bd5c8f37824724a7c9f295f9ae57584421b7aab6 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:30:33 -0500 Subject: [PATCH 12/65] Removing workflow --- .github/workflows/tests.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d64b17b7..8b349df0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,18 +9,7 @@ on: - '**.md' pull_request: paths-ignore: - - '**.md' - workflow_dispatch: - inputs: - logLevel: - description: 'Log level' - required: true - default: 'warning' - type: choice - options: - - info - - warning - - debug + - '**.md' jobs: test-setup-python: From 7b9c6de3a0ad87fbe29dff53982d6d7161e23fcb Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:32:02 -0500 Subject: [PATCH 13/65] Remove version suffix --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8b349df0..fd676f99 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout - name: Run with setup-python 3.7 uses: ./ From 29eafc9e26b4a8df7b252cb6a8671992fc8faf35 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:46:30 -0500 Subject: [PATCH 14/65] Trying a suggestion from user --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fd676f99..9ddcfd94 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,10 +14,9 @@ on: jobs: test-setup-python: name: Test setup-python + uses: actions/checkout@v3 runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout - name: Run with setup-python 3.7 uses: ./ From 99791dfc9ec44e433f7a4f70e5f15566456ead55 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:47:08 -0500 Subject: [PATCH 15/65] removed --- .github/workflows/tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9ddcfd94..eae5fdab 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,7 +14,6 @@ on: jobs: test-setup-python: name: Test setup-python - uses: actions/checkout@v3 runs-on: ubuntu-latest steps: From df04c48a16c5f87748146341d8cf2019b5e989ba Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:48:01 -0500 Subject: [PATCH 16/65] Reset --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index eae5fdab..8b349df0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,6 +16,8 @@ jobs: name: Test setup-python runs-on: ubuntu-latest steps: + - name: Checkout + uses: actions/checkout@v3 - name: Run with setup-python 3.7 uses: ./ From 51117571d566d18adbcf16b8ba1c5896f6a96ca6 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:36:59 -0500 Subject: [PATCH 17/65] Update syntax --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8b349df0..0acd3c1d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v3 - name: Run with setup-python 3.7 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.7 - name: Run tests @@ -29,7 +29,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.8 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.8 - name: Run tests @@ -38,7 +38,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.9 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.9 - name: Run tests @@ -47,7 +47,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.10 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.10 - name: Run tests @@ -56,7 +56,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.11 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.11 - name: Run tests From c5935f8c16bf9e768891685f38be7400737bd0bd Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:42:47 -0500 Subject: [PATCH 18/65] Update per docs --- .github/workflows/tests.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0acd3c1d..9044c067 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,48 +17,48 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run with setup-python 3.7 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.7 + python-version: '3.7' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.8 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.8 + python-version: '3.8' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.9 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: '3.9' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.10 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.10 + python-version: '3.10' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.11 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.11 + python-version: '3.11' - name: Run tests run: make test - name: Run e2e Tests From bd0d5b6b34fcfa1dec06c07f780f45eb2847bbf8 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:43:52 -0500 Subject: [PATCH 19/65] Update make statement --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9044c067..8ea4444d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,7 +26,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.8 uses: actions/setup-python@v4 @@ -35,7 +35,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.9 uses: actions/setup-python@v4 @@ -44,7 +44,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.10 uses: actions/setup-python@v4 @@ -53,7 +53,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.11 uses: actions/setup-python@v4 @@ -62,4 +62,4 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test \ No newline at end of file + run: make e2e_test \ No newline at end of file From 3ef7a6a3474a35b0aa7d9586f8c532fe69f6c3ec Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:47:16 -0500 Subject: [PATCH 20/65] Trying to fix some errors --- .github/workflows/tests.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8ea4444d..acddcadc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,6 +24,8 @@ jobs: with: python-version: '3.7' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -33,6 +35,8 @@ jobs: with: python-version: '3.8' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -42,6 +46,8 @@ jobs: with: python-version: '3.9' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -51,6 +57,8 @@ jobs: with: python-version: '3.10' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -60,6 +68,8 @@ jobs: with: python-version: '3.11' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test \ No newline at end of file From 467e1ac613c42651c8766fc37603491ec9d8c8b2 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:49:16 -0500 Subject: [PATCH 21/65] Forgot only one run per statement --- .github/workflows/tests.yml | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index acddcadc..bc76984c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,9 +23,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.7' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -34,9 +36,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.8' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -45,9 +49,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.9' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -56,9 +62,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.10' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -67,9 +75,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.11' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test \ No newline at end of file From a8944beb45c3cc01287a77399cf06d24eb290232 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Fri, 27 Oct 2023 11:44:02 -0500 Subject: [PATCH 22/65] Update pylint --- .pylintrc | 711 +++++++++++++++++++++++++++--------------------------- 1 file changed, 354 insertions(+), 357 deletions(-) diff --git a/.pylintrc b/.pylintrc index 568c4cc2..4712a015 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,184 +1,139 @@ -[MASTER] - -# Add files or directories to the ignore list. They should be base names, not -# paths. -ignore=CVS - -# Add files or directories matching the regex patterns to the denylist. The -# regex matches against base names, not paths. -ignore-patterns= +[MAIN] # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= -# Use multiple processes to speed up Pylint. -jobs=1 +# Files or directories to be skipped. They should be base names, not +# paths. +ignore=CVS -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= +# Add files or directories matching the regex patterns to the ignore-list. The +# regex matches against paths and can be in Posix or Windows format. +ignore-paths= + +# Files or directories matching the regex patterns are skipped. The regex +# matches against base names, not paths. +ignore-patterns=^\.# # Pickle collected data for later comparisons. persistent=yes -# Specify a configuration file. -#rcfile= +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + pylint.extensions.check_elif, + pylint.extensions.bad_builtin, + pylint.extensions.docparams, + pylint.extensions.for_any_all, + pylint.extensions.set_membership, + pylint.extensions.code_style, + pylint.extensions.overlapping_exceptions, + pylint.extensions.typing, + pylint.extensions.redefined_variable_type, + pylint.extensions.comparison_placement, + pylint.extensions.broad_try_clause, + pylint.extensions.dict_init_mutate, + pylint.extensions.consider_refactoring_into_while_condition, + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 # When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages +# user-friendly hints instead of false-positive error messages. suggestion-mode=yes # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code +extension-pkg-allow-list= + +# Minimum supported python version +py-version = 3.8.0 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# Specify a score threshold under which the program will exit with error. +fail-under=10.0 + +# Return non-zero exit code if any of these messages/categories are detected, +# even if score is above --fail-under value. Syntax same as enable. Messages +# specified are enabled, while categories only check already-enabled messages. +fail-on= + +# Clear in-memory caches upon conclusion of linting. Useful if running pylint in +# a server-like mode. +clear-cache-post-run=no + [MESSAGES CONTROL] # Only show warnings with the listed confidence levels. Leave empty to show # all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED -confidence= +# confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable= + use-symbolic-message-instead, + useless-suppression, # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifiers separated by comma (,) or put this # option multiple times (only on the command line, not in the configuration # file where it should appear only once).You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if +# disable everything first and then re-enable specific checks. For example, if # you want to run only the similarities checker, you can use "--disable=all # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=too-many-public-methods, - no-else-return, - print-statement, - invalid-name, - global-statement, - too-many-arguments, - missing-docstring, - too-many-instance-attributes, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - invalid-unicode-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - locally-enabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - deprecated-operator-function, - deprecated-urllib-function, - xreadlines-attribute, - deprecated-sys-function, - exception-escape, - comprehension-escape -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -enable=c-extension-no-member +disable= + attribute-defined-outside-init, + invalid-name, + missing-docstring, + protected-access, + too-few-public-methods, + # handled by black + format, + # We anticipate #3512 where it will become optional + fixme, + consider-using-assignment-expr, [REPORTS] -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details -msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} - -# Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio).You can also give a reporter class, eg +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg # mypackage.mymodule.MyReporterClass. output-format=text # Tells whether to display a full report or only the messages reports=no -# Activate the evaluation score. -score=yes - - -[REFACTORING] +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables 'fatal', 'error', 'warning', 'refactor', 'convention' +# and 'info', which contain the number of messages in each category, as +# well as 'statement', which is the total number of statements analyzed. This +# score is used by the global evaluation report (RP0004). +evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)) -# Maximum number of nested blocks for function / method body -max-nested-blocks=5 +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= -# Complete name of functions that never returns. When checking for -# inconsistent-return-statements if a never returning function is called then -# it will be considered as an explicit return statement and no message will be -# printed. -never-returning-functions=optparse.Values,sys.exit +# Activate the evaluation score. +score=yes [LOGGING] @@ -187,37 +142,25 @@ never-returning-functions=optparse.Values,sys.exit # function parameter format logging-modules=logging - -[SPELLING] - -# Limits count of emitted suggestions for spelling mistakes -max-spelling-suggestions=4 - -# Spelling dictionary name. Available dictionaries: none. To make it working -# install python-enchant package. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no +# The type of string formatting that logging methods do. `old` means using % +# formatting, `new` is for `{}` formatting. +logging-format-style=old [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. -notes=FIXME, - XXX, - TODO +notes=FIXME,XXX,TODO + +# Regular expression of note tags to take in consideration. +#notes-rgx= [SIMILARITIES] +# Minimum lines number of a similarity. +min-similarity-lines=6 + # Ignore comments when computing similarities. ignore-comments=yes @@ -225,281 +168,274 @@ ignore-comments=yes ignore-docstrings=yes # Ignore imports when computing similarities. -ignore-imports=no - -# Minimum lines number of a similarity. -min-similarity-lines=4 +ignore-imports=yes - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference -# can return multiple potential results while evaluating a Python object, but -# some branches might not be evaluated, which results in partial inference. In -# that case, it might be useful to still emit no-member and other checks for -# the rest of the inferred objects. -ignore-on-opaque-inference=yes - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis. It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# Show a hint with possible names when a member name was not found. The aspect -# of finding the hint is based on edit distance. -missing-member-hint=yes - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance=1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices=1 +# Signatures are removed from the similarity computation +ignore-signatures=yes [VARIABLES] +# Tells whether we should check for unused import in __init__ files. +init-import=no + # List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. +# you should avoid defining new builtins when possible. additional-builtins= -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables=yes - # List of strings which can identify a callback function by name. A callback # name must start or end with one of those strings. -callbacks=cb_, - _cb +callbacks=cb_,_cb -# A regular expression matching the name of dummy variables (i.e. expectedly -# not used). -dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore -ignored-argument-names=_.*|^ignored_|^unused_ +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes -# Tells whether we should check for unused import in __init__ files. -init-import=no +# List of names allowed to shadow builtins +allowed-redefined-builtins= # List of qualified module names which can have objects that can redefine # builtins. -redefining-builtins-modules=past.builtins,future.builtins,io,builtins +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io [FORMAT] -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= +# Maximum number of characters on a single line. +max-line-length=100 # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=^\s*(# )??$ -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Maximum number of lines in a module +max-module-lines=2000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' -# Maximum number of characters on a single line. -max-line-length=100 +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 -# Maximum number of lines in a module -max-module-lines=1000 +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check=trailing-comma, - dict-separator -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -single-line-class-stmt=no +[BASIC] -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,ex,Run,_ +# Good variable names regexes, separated by a comma. If names match any regex, +# they will always be accepted +good-names-rgxs= -[BASIC] +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata -# Naming style matching correct argument names -argument-naming-style=snake_case +# Bad variable names regexes, separated by a comma. If names match any regex, +# they will always be refused +bad-names-rgxs= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming style matching correct variable names. +variable-naming-style=snake_case -# Regular expression matching correct argument names. Overrides argument- -# naming-style -#argument-rgx= +# Regular expression matching correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ -# Naming style matching correct attribute names +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Naming style matching correct attribute names. attr-naming-style=snake_case -# Regular expression matching correct attribute names. Overrides attr-naming- -# style -#attr-rgx= +# Regular expression matching correct attribute names +attr-rgx=[a-z_][a-z0-9_]{2,}$ -# Bad variable names which should always be refused, separated by a comma -bad-names=foo, - bar, - baz, - toto, - tutu, - tata - -# Naming style matching correct class attribute names +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming style matching correct class attribute names. class-attribute-naming-style=any -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style -#class-attribute-rgx= +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Naming style matching correct class constant names. +class-const-naming-style=UPPER_CASE + +# Regular expression matching correct class constant names. Overrides class- +# const-naming-style. +#class-const-rgx= -# Naming style matching correct class names +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming style matching correct class names. class-naming-style=PascalCase -# Regular expression matching correct class names. Overrides class-naming-style -#class-rgx= +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ -# Naming style matching correct constant names -const-naming-style=UPPER_CASE -# Regular expression matching correct constant names. Overrides const-naming- -# style -#const-rgx= +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names +method-rgx=[a-z_][a-z0-9_]{2,}$ + +# Regular expression matching correct type variable names +#typevar-rgx= + +# Regular expression which should only match function or class names that do +# not require a docstring. Use ^(?!__init__$)_ to also check __init__. +no-docstring-rgx=__.*__ # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. docstring-min-length=-1 -# Naming style matching correct function names -function-naming-style=snake_case +# List of decorators that define properties, such as abc.abstractproperty. +property-classes=abc.abstractproperty -# Regular expression matching correct function names. Overrides function- -# naming-style -#function-rgx= -# Good variable names which should always be accepted, separated by a comma -good-names=i, - j, - k, - ex, - Run, - _ +[TYPECHECK] -# Include a hint for the correct naming format with invalid-name -include-naming-hint=no +# Regex pattern to define which classes are considered mixins if ignore-mixin- +# members is set to 'yes' +mixin-class-rgx=.*MixIn -# Naming style matching correct inline iteration names -inlinevar-naming-style=any +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis). It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style -#inlinevar-rgx= +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=SQLObject, optparse.Values, thread._local, _thread._local -# Naming style matching correct method names -method-naming-style=snake_case +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members=REQUEST,acl_users,aq_parent,argparse.Namespace -# Regular expression matching correct method names. Overrides method-naming- -# style -#method-rgx= +# List of decorators that create context managers from functions, such as +# contextlib.contextmanager. +contextmanager-decorators=contextlib.contextmanager -# Naming style matching correct module names -module-naming-style=snake_case +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes -# Regular expression matching correct module names. Overrides module-naming- -# style -#module-rgx= +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. -property-classes=abc.abstractproperty +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 -# Naming style matching correct variable names -variable-naming-style=snake_case +[SPELLING] -# Regular expression matching correct variable names. Overrides variable- -# naming-style -#variable-rgx= +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= +# List of comma separated words that should not be checked. +spelling-ignore-words= -[DESIGN] +# List of comma separated words that should be considered directives if they +# appear and the beginning of a comment and should not be checked. +spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:,pragma:,# noinspection -# Maximum number of arguments for function / method -max-args=5 +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file=.pyenchant_pylint_custom_dict.txt -# Maximum number of attributes for a class (see R0902). -max-attributes=7 +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no -# Maximum number of boolean expressions in a if statement -max-bool-expr=5 +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=2 -# Maximum number of branch for function / method body -max-branches=12 -# Maximum number of locals for function / method body -max-locals=20 +[DESIGN] -# Maximum number of parents for a class (see R0901). -max-parents=7 +# Maximum number of arguments for function / method +max-args = 9 -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 +# Maximum number of locals for function / method body +max-locals = 19 # Maximum number of return / yield for function / method body -max-returns=6 +max-returns=11 + +# Maximum number of branch for function / method body +max-branches = 20 # Maximum number of statements in function / method body -max-statements=50 +max-statements = 50 -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 +# Maximum number of attributes for a class (see R0902). +max-attributes=11 +# Maximum number of statements in a try-block +max-try-statements = 7 [CLASSES] # List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make +defining-attr-methods=__init__,__new__,setUp,__post_init__ # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls @@ -507,31 +443,41 @@ valid-classmethod-first-arg=cls # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=mcs +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + +# Warn about protected attribute access inside special methods +check-protected-access-in-special-methods=no [IMPORTS] +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= + # Allow wildcard imports from modules that define __all__. allow-wildcard-with-all=no +# Allow explicit reexports by alias from a package __init__. +allow-reexport-from-package=no + # Analyse import fallback blocks. This can be used to support both Python 2 and # 3 compatible code, which means that the block might have code that exists # only in one or another interpreter, leading to false positives when analysed. analyse-fallback-blocks=no # Deprecated modules which should not be used, separated by a comma -deprecated-modules=regsub, - TERMIOS, - Bastion, - rexec - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= +deprecated-modules=regsub,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled) import-graph= +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled) int-import-graph= @@ -543,9 +489,60 @@ known-standard-library= # Force import order to recognize a module as part of a third party library. known-third-party=enchant +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= + [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" -overgeneral-exceptions=Exception +overgeneral-exceptions=builtins.Exception + + +[TYPING] + +# Set to ``no`` if the app / library does **NOT** need to support runtime +# introspection of type annotations. If you use type annotations +# **exclusively** for type checking of an application, you're probably fine. +# For libraries, evaluate if some users what to access the type hints at +# runtime first, e.g., through ``typing.get_type_hints``. Applies to Python +# versions 3.7 - 3.9 +runtime-typing = no + + +[DEPRECATED_BUILTINS] + +# List of builtins function names that should not be used, separated by a comma +bad-functions=map,input + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit,argparse.parse_error + + +[STRING] + +# This flag controls whether inconsistent-quotes generates a warning when the +# character used as a quote delimiter is used inconsistently within a module. +check-quote-consistency=no + +# This flag controls whether the implicit-str-concat should generate a warning +# on implicit string concatenation in sequences defined over several lines. +check-str-concat-over-line-jumps=no + + +[CODE_STYLE] + +# Max line length for which to sill emit suggestions. Used to prevent optional +# suggestions which would get split by a code formatter (e.g., black). Will +# default to the setting for ``max-line-length``. +#max-line-length-suggestions= \ No newline at end of file From 796831944e919dd1a6352df349c7f05a84f56255 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Sat, 11 Nov 2023 12:14:21 -0600 Subject: [PATCH 23/65] enable e2e ENV variable --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bc76984c..233b8cca 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -31,6 +31,8 @@ jobs: run: make test - name: Run e2e Tests run: make e2e_test + env: + RUN_E2E_TESTS: true - name: Run with setup-python 3.8 uses: actions/setup-python@v4 From eb6e6841a5c883f40c8c674702b23985edab37ce Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:30:33 -0600 Subject: [PATCH 24/65] Updating test script --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3d54fd2a..a17f8887 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,9 +21,9 @@ jobs: pip install -r requirements.txt pip install python-dateutil backoff monotonic pip install --user . - sudo pip install pylint==2.8.0 flake8 mock==3.0.5 python-dateutil + sudo pip install pylint==2.8.0 flake8 mock==3.0.5 python-dateutil aiohttp==3.9.1 - name: Run tests - run: make e2e_test + run: python -m unittest discover -s segment # snyk: # runs-on: ubuntu-latest From 43f4311464fa9e58870bc0d41d1979e4ba9fe6c5 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:39:21 -0600 Subject: [PATCH 25/65] Update node version requirements --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 233b8cca..8bf80e4a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v4 - name: Run with setup-python 3.7 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.7' - name: Setup pylint @@ -35,7 +35,7 @@ jobs: RUN_E2E_TESTS: true - name: Run with setup-python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' - name: Setup pylint @@ -48,7 +48,7 @@ jobs: run: make e2e_test - name: Run with setup-python 3.9 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' - name: Setup pylint @@ -61,7 +61,7 @@ jobs: run: make e2e_test - name: Run with setup-python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10' - name: Setup pylint @@ -74,7 +74,7 @@ jobs: run: make e2e_test - name: Run with setup-python 3.11 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' - name: Setup pylint From 742ca4496e0160c25ee8839b313d5393c1eb4b51 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:41:39 -0600 Subject: [PATCH 26/65] Remove e2e test for now and update test command --- .github/workflows/tests.yml | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8bf80e4a..59da6ff7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -28,11 +28,7 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test - env: - RUN_E2E_TESTS: true + run: python -m unittest discover -s segment - name: Run with setup-python 3.8 uses: actions/setup-python@v5 @@ -43,9 +39,7 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test + run: python -m unittest discover -s segment - name: Run with setup-python 3.9 uses: actions/setup-python@v5 @@ -56,9 +50,7 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test + run: python -m unittest discover -s segment - name: Run with setup-python 3.10 uses: actions/setup-python@v5 @@ -69,10 +61,8 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test - + run: python -m unittest discover -s segment + - name: Run with setup-python 3.11 uses: actions/setup-python@v5 with: @@ -82,6 +72,4 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test \ No newline at end of file + run: python -m unittest discover -s segment \ No newline at end of file From 46d999d7248920f29ad4cb61e47bf1a90159bbee Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:44:40 -0600 Subject: [PATCH 27/65] adding dateutil to test --- .github/workflows/tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 59da6ff7..e8c9f80e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,7 +26,9 @@ jobs: - name: Setup pylint run: python -m pip install pylint - name: Setup flake8 - run: python -m pip install flake8 + run: python -m pip install flake8 + - name: Setup Dateutil + run: python -m pip install python-dateutil - name: Run tests run: python -m unittest discover -s segment @@ -62,7 +64,7 @@ jobs: run: python -m pip install flake8 - name: Run tests run: python -m unittest discover -s segment - + - name: Run with setup-python 3.11 uses: actions/setup-python@v5 with: From 67e30b1434d04e6419c45a8a8a24ebc9557a000d Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:49:31 -0600 Subject: [PATCH 28/65] set up required modules --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e8c9f80e..b7834c12 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,8 +27,8 @@ jobs: run: python -m pip install pylint - name: Setup flake8 run: python -m pip install flake8 - - name: Setup Dateutil - run: python -m pip install python-dateutil + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment From 9484d077e4c9f6d3c19e56f23c1b18f1dac774ae Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:51:17 -0600 Subject: [PATCH 29/65] Update scripts for testing --- .github/workflows/tests.yml | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b7834c12..8b3cf029 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,10 +23,6 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.7' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 - name: Setup required modules run: python -m pip install -r requirements.txt - name: Run tests @@ -36,10 +32,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.8' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment @@ -47,10 +41,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.9' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment @@ -58,10 +50,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.10' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment @@ -69,9 +59,7 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.11' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment \ No newline at end of file From 869d342ad6450390bd16553fdf2f0a916a7063e2 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:25:20 -0500 Subject: [PATCH 30/65] Update syntax and test --- .github/workflows/tests.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7d1c621d..f72bb428 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,37 +23,37 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.8 uses: ./ with: python-version: 3.8 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.9 uses: ./ with: python-version: 3.9 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.10 uses: ./ with: python-version: 3.10 - name: Run tests - run: make test - run: make e2e_test + - run: make test + - run: make e2e_test - name: Run with setup-python 3.11 uses: ./ with: python-version: 3.11 - name: Run tests - run: make test - run: make e2e_test \ No newline at end of file + - run: make test + - run: make e2e_test \ No newline at end of file From 348c64b73db24a6042c28bd70c51b17bd04d804c Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:30:50 -0500 Subject: [PATCH 31/65] Push to rerun tests --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f72bb428..654a64e4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -56,4 +56,5 @@ jobs: python-version: 3.11 - name: Run tests - run: make test - - run: make e2e_test \ No newline at end of file + - run: make e2e_test + \ No newline at end of file From 111b35abf3e740e4eb300ebf5a44b30237f0372b Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:38:26 -0500 Subject: [PATCH 32/65] Syntax update --- .github/workflows/tests.yml | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 654a64e4..a86d076f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,38 +23,32 @@ jobs: with: python-version: 3.7 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.8 uses: ./ with: python-version: 3.8 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.9 uses: ./ with: python-version: 3.9 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.10 uses: ./ with: python-version: 3.10 - name: Run tests - - run: make test - - run: make e2e_test + run: make test e2e_test - name: Run with setup-python 3.11 uses: ./ with: python-version: 3.11 - name: Run tests - - run: make test - - run: make e2e_test - \ No newline at end of file + run: make test e2e_test From b7fdd976532027c0cb221bc9b9f9aa4badd65b38 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 24 Oct 2023 16:42:41 -0500 Subject: [PATCH 33/65] Push to test --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a86d076f..ee2381b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -51,4 +51,4 @@ jobs: with: python-version: 3.11 - name: Run tests - run: make test e2e_test + run: make test e2e_test \ No newline at end of file From c03212ec25069ba48d58240f1e4e45101cdb9d34 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:26:12 -0500 Subject: [PATCH 34/65] made a change to force action --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ee2381b2..cbab2a8e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,7 +23,8 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test e2e_test + run: make test + run: e2e_test - name: Run with setup-python 3.8 uses: ./ From 2be97565a74c56c1de89daf5edae4a6f590c1a04 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:29:28 -0500 Subject: [PATCH 35/65] Update Readme to reflect new workflows --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 12dd2fb5..4260ca71 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,10 @@ analytics-python ============== +[![Run Python Tests](https://github.com/North-Two-Five/analytics-python/actions/workflows/main.yml/badge.svg)](https://github.com/North-Two-Five/analytics-python/actions/workflows/main.yml) +[![.github/workflows/tests.yml](https://github.com/North-Two-Five/analytics-python/actions/workflows/tests.yml/badge.svg)](https://github.com/North-Two-Five/analytics-python/actions/workflows/tests.yml) + + analytics-python is a python client for [Segment](https://segment.com)
From 3cb2f8ff825a33110bbd0e3de84262f7f5b8fb60 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:34:19 -0500 Subject: [PATCH 36/65] Remove CI folder and files --- .circleci/config.yml | 110 ------------------------------------ .github/workflows/tests.yml | 4 +- 2 files changed, 2 insertions(+), 112 deletions(-) delete mode 100644 .circleci/config.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index bb80c74e..00000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,110 +0,0 @@ -version: 2 -defaults: - taggedReleasesFilter: &taggedReleasesFilter - tags: - only: /^\d+\.\d+\.\d+((a|b|rc)\d)?$/ # matches 1.2.3, 1.2.3a1, 1.2.3b1, 1.2.3rc1 etc.. -jobs: - build: - docker: - - image: circleci/python:3.8 - steps: - - checkout - - run: pip3 install python-dateutil backoff monotonic - - run: pip3 install --user . - - run: sudo pip3 install pylint==2.8.0 flake8 mock==3.0.5 python-dateutil - - run: make test - - store_artifacts: - path: pylint.out - - store_artifacts: - path: flake8.out - - snyk: - docker: - - image: circleci/python:3.9 - steps: - - checkout - - attach_workspace: { at: . } - - run: pip3 install pipreqs - - run: pip3 install --user appdirs - - run: pipreqs . - - run: pip3 install --user -r requirements.txt - - run: curl -sL https://raw.githubusercontent.com/segmentio/snyk_helpers/master/initialization/snyk.sh | sh - - test_37: &test - docker: - - image: circleci/python:3.7 - steps: - - checkout - - run: pip3 install python-dateutil backoff monotonic - - run: pip3 install --user .[test] - - run: - name: Linting with Flake8 - command: | - git diff origin/master..HEAD analytics | flake8 --diff --max-complexity=10 analytics - - run: make test - - run: make e2e_test - - test_38: - <<: *test - docker: - - image: circleci/python:3.8 - - test_39: - <<: *test - docker: - - image: circleci/python:3.9 - - publish: - docker: - - image: circleci/python:3.9 - steps: - - checkout - - run: sudo pip install twine - - run: make release - -workflows: - version: 2 - build_test_release: - jobs: - - build: - filters: - <<: *taggedReleasesFilter - - test_37: - filters: - <<: *taggedReleasesFilter - - test_38: - filters: - <<: *taggedReleasesFilter - - test_39: - filters: - <<: *taggedReleasesFilter - - publish: - requires: - - build - - test_37 - - test_38 - - test_39 - filters: - <<: *taggedReleasesFilter - branches: - ignore: /.*/ - static_analysis: - jobs: - - build - - snyk: - context: snyk - requires: - - build - scheduled_e2e_test: - triggers: - - schedule: - cron: "0 * * * *" - filters: - branches: - only: - - master - - scheduled_e2e_testing - jobs: - - test_37 - - test_38 - - test_39 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index cbab2a8e..543768bf 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,8 +23,8 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test - run: e2e_test + - run: make test + - run: e2e_test - name: Run with setup-python 3.8 uses: ./ From 0ac337a4359131f9cd2be1dd0bdf6b8c741a925c Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:36:52 -0500 Subject: [PATCH 37/65] Update syntax --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 543768bf..ee2381b2 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,8 +23,7 @@ jobs: with: python-version: 3.7 - name: Run tests - - run: make test - - run: e2e_test + run: make test e2e_test - name: Run with setup-python 3.8 uses: ./ From 6d13cd393976be8a94e84d8152531d76af7076ef Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 09:45:17 -0500 Subject: [PATCH 38/65] Fix issues with run rows --- .github/workflows/tests.yml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ee2381b2..b3c5ea2f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,32 +23,42 @@ jobs: with: python-version: 3.7 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.8 uses: ./ with: python-version: 3.8 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.9 uses: ./ with: python-version: 3.9 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.10 uses: ./ with: python-version: 3.10 - name: Run tests - run: make test e2e_test + run: make test + - name: Run e2e Tests + run: e2e_test - name: Run with setup-python 3.11 uses: ./ with: python-version: 3.11 - name: Run tests - run: make test e2e_test \ No newline at end of file + run: make test + - name: Run e2e Tests + run: e2e_test \ No newline at end of file From 4cc007c1db1debc08e37f157d2b3a63602926f7a Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 10:48:27 -0500 Subject: [PATCH 39/65] Adding workflows for manual execution --- .github/workflows/tests.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b3c5ea2f..b0f5094f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,6 +9,17 @@ on: pull_request: paths-ignore: - '**.md' + workflow_dispatch: + inputs: + logLevel: + description: 'Log level' + required: true + default: 'warning' + type: choice + options: + - info + - warning + - debug jobs: test-setup-python: From 1622bf7a69b31267eaaf9e3b564dccd43b0dd62b Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 25 Oct 2023 10:59:35 -0500 Subject: [PATCH 40/65] Update run on push for tests --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b0f5094f..d64b17b7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - '**Tests**' paths-ignore: - '**.md' pull_request: From 6bbffbda16a5721f4ba7478b4ccca54a422fc9c4 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:30:33 -0500 Subject: [PATCH 41/65] Removing workflow --- .github/workflows/tests.yml | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d64b17b7..8b349df0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -9,18 +9,7 @@ on: - '**.md' pull_request: paths-ignore: - - '**.md' - workflow_dispatch: - inputs: - logLevel: - description: 'Log level' - required: true - default: 'warning' - type: choice - options: - - info - - warning - - debug + - '**.md' jobs: test-setup-python: From db09b2efa1d3d6084296877703d20ff0a299f5b3 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:32:02 -0500 Subject: [PATCH 42/65] Remove version suffix --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8b349df0..fd676f99 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout - name: Run with setup-python 3.7 uses: ./ From 3b48754906921423faf6bda853974de30d85e4a9 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:46:30 -0500 Subject: [PATCH 43/65] Trying a suggestion from user --- .github/workflows/tests.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fd676f99..9ddcfd94 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,10 +14,9 @@ on: jobs: test-setup-python: name: Test setup-python + uses: actions/checkout@v3 runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout - name: Run with setup-python 3.7 uses: ./ From f7894359ee2014226285e60c31b874e49ceeacc1 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:47:08 -0500 Subject: [PATCH 44/65] removed --- .github/workflows/tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9ddcfd94..eae5fdab 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,7 +14,6 @@ on: jobs: test-setup-python: name: Test setup-python - uses: actions/checkout@v3 runs-on: ubuntu-latest steps: From b7126bf0a5dc499e1b63b5ddf828eedb6187eb1f Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 10:48:01 -0500 Subject: [PATCH 45/65] Reset --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index eae5fdab..8b349df0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,6 +16,8 @@ jobs: name: Test setup-python runs-on: ubuntu-latest steps: + - name: Checkout + uses: actions/checkout@v3 - name: Run with setup-python 3.7 uses: ./ From 232ed89aaccbf4cefd6c2f230d4a835adbfb1fc4 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:36:59 -0500 Subject: [PATCH 46/65] Update syntax --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8b349df0..0acd3c1d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v3 - name: Run with setup-python 3.7 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.7 - name: Run tests @@ -29,7 +29,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.8 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.8 - name: Run tests @@ -38,7 +38,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.9 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.9 - name: Run tests @@ -47,7 +47,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.10 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.10 - name: Run tests @@ -56,7 +56,7 @@ jobs: run: e2e_test - name: Run with setup-python 3.11 - uses: ./ + uses: actions/checkout@v3 with: python-version: 3.11 - name: Run tests From 2ed85f4e32a4cd6714ded343a74192d17a799981 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:42:47 -0500 Subject: [PATCH 47/65] Update per docs --- .github/workflows/tests.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 0acd3c1d..9044c067 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -17,48 +17,48 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Run with setup-python 3.7 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.7 + python-version: '3.7' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.8 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.8 + python-version: '3.8' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.9 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.9 + python-version: '3.9' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.10 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.10 + python-version: '3.10' - name: Run tests run: make test - name: Run e2e Tests run: e2e_test - name: Run with setup-python 3.11 - uses: actions/checkout@v3 + uses: actions/setup-python@v4 with: - python-version: 3.11 + python-version: '3.11' - name: Run tests run: make test - name: Run e2e Tests From e1366732b2c7ecb7b16a1cf2ae05e0147d83010b Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:43:52 -0500 Subject: [PATCH 48/65] Update make statement --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 9044c067..8ea4444d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,7 +26,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.8 uses: actions/setup-python@v4 @@ -35,7 +35,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.9 uses: actions/setup-python@v4 @@ -44,7 +44,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.10 uses: actions/setup-python@v4 @@ -53,7 +53,7 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test + run: make e2e_test - name: Run with setup-python 3.11 uses: actions/setup-python@v4 @@ -62,4 +62,4 @@ jobs: - name: Run tests run: make test - name: Run e2e Tests - run: e2e_test \ No newline at end of file + run: make e2e_test \ No newline at end of file From a9358344b030d2caadfa0c601b3d1577b443d2af Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:47:16 -0500 Subject: [PATCH 49/65] Trying to fix some errors --- .github/workflows/tests.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8ea4444d..acddcadc 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,6 +24,8 @@ jobs: with: python-version: '3.7' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -33,6 +35,8 @@ jobs: with: python-version: '3.8' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -42,6 +46,8 @@ jobs: with: python-version: '3.9' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -51,6 +57,8 @@ jobs: with: python-version: '3.10' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test @@ -60,6 +68,8 @@ jobs: with: python-version: '3.11' - name: Run tests + run: python -m pip install pylint + run: python -m pip install flake8 run: make test - name: Run e2e Tests run: make e2e_test \ No newline at end of file From 94941464f96be53fc6ffa84662ee6a2a9cb81b3c Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 26 Oct 2023 15:49:16 -0500 Subject: [PATCH 50/65] Forgot only one run per statement --- .github/workflows/tests.yml | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index acddcadc..bc76984c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,9 +23,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.7' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -34,9 +36,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.8' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -45,9 +49,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.9' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -56,9 +62,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.10' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test @@ -67,9 +75,11 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.11' - - name: Run tests + - name: Setup pylint run: python -m pip install pylint - run: python -m pip install flake8 + - name: Setup flake8 + run: python -m pip install flake8 + - name: Run tests run: make test - name: Run e2e Tests run: make e2e_test \ No newline at end of file From 32a8e52d61a240eee23870c0e4a836a1efb4bd29 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Fri, 27 Oct 2023 11:44:02 -0500 Subject: [PATCH 51/65] Update pylint --- .pylintrc | 711 +++++++++++++++++++++++++++--------------------------- 1 file changed, 354 insertions(+), 357 deletions(-) diff --git a/.pylintrc b/.pylintrc index 568c4cc2..4712a015 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,184 +1,139 @@ -[MASTER] - -# Add files or directories to the ignore list. They should be base names, not -# paths. -ignore=CVS - -# Add files or directories matching the regex patterns to the denylist. The -# regex matches against base names, not paths. -ignore-patterns= +[MAIN] # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= -# Use multiple processes to speed up Pylint. -jobs=1 +# Files or directories to be skipped. They should be base names, not +# paths. +ignore=CVS -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= +# Add files or directories matching the regex patterns to the ignore-list. The +# regex matches against paths and can be in Posix or Windows format. +ignore-paths= + +# Files or directories matching the regex patterns are skipped. The regex +# matches against base names, not paths. +ignore-patterns=^\.# # Pickle collected data for later comparisons. persistent=yes -# Specify a configuration file. -#rcfile= +# List of plugins (as comma separated values of python modules names) to load, +# usually to register additional checkers. +load-plugins= + pylint.extensions.check_elif, + pylint.extensions.bad_builtin, + pylint.extensions.docparams, + pylint.extensions.for_any_all, + pylint.extensions.set_membership, + pylint.extensions.code_style, + pylint.extensions.overlapping_exceptions, + pylint.extensions.typing, + pylint.extensions.redefined_variable_type, + pylint.extensions.comparison_placement, + pylint.extensions.broad_try_clause, + pylint.extensions.dict_init_mutate, + pylint.extensions.consider_refactoring_into_while_condition, + +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use. +jobs=1 # When enabled, pylint would attempt to guess common misconfiguration and emit -# user-friendly hints instead of false-positive error messages +# user-friendly hints instead of false-positive error messages. suggestion-mode=yes # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code +extension-pkg-allow-list= + +# Minimum supported python version +py-version = 3.8.0 + +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# Specify a score threshold under which the program will exit with error. +fail-under=10.0 + +# Return non-zero exit code if any of these messages/categories are detected, +# even if score is above --fail-under value. Syntax same as enable. Messages +# specified are enabled, while categories only check already-enabled messages. +fail-on= + +# Clear in-memory caches upon conclusion of linting. Useful if running pylint in +# a server-like mode. +clear-cache-post-run=no + [MESSAGES CONTROL] # Only show warnings with the listed confidence levels. Leave empty to show # all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED -confidence= +# confidence= + +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable= + use-symbolic-message-instead, + useless-suppression, # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifiers separated by comma (,) or put this # option multiple times (only on the command line, not in the configuration # file where it should appear only once).You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if +# disable everything first and then re-enable specific checks. For example, if # you want to run only the similarities checker, you can use "--disable=all # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=too-many-public-methods, - no-else-return, - print-statement, - invalid-name, - global-statement, - too-many-arguments, - missing-docstring, - too-many-instance-attributes, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - invalid-unicode-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - locally-enabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - deprecated-operator-function, - deprecated-urllib-function, - xreadlines-attribute, - deprecated-sys-function, - exception-escape, - comprehension-escape -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -enable=c-extension-no-member +disable= + attribute-defined-outside-init, + invalid-name, + missing-docstring, + protected-access, + too-few-public-methods, + # handled by black + format, + # We anticipate #3512 where it will become optional + fixme, + consider-using-assignment-expr, [REPORTS] -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) - -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details -msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg} - -# Set the output format. Available formats are text, parseable, colorized, json -# and msvs (visual studio).You can also give a reporter class, eg +# Set the output format. Available formats are text, parseable, colorized, msvs +# (visual studio) and html. You can also give a reporter class, eg # mypackage.mymodule.MyReporterClass. output-format=text # Tells whether to display a full report or only the messages reports=no -# Activate the evaluation score. -score=yes - - -[REFACTORING] +# Python expression which should return a note less than 10 (10 is the highest +# note). You have access to the variables 'fatal', 'error', 'warning', 'refactor', 'convention' +# and 'info', which contain the number of messages in each category, as +# well as 'statement', which is the total number of statements analyzed. This +# score is used by the global evaluation report (RP0004). +evaluation=max(0, 0 if fatal else 10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)) -# Maximum number of nested blocks for function / method body -max-nested-blocks=5 +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details +#msg-template= -# Complete name of functions that never returns. When checking for -# inconsistent-return-statements if a never returning function is called then -# it will be considered as an explicit return statement and no message will be -# printed. -never-returning-functions=optparse.Values,sys.exit +# Activate the evaluation score. +score=yes [LOGGING] @@ -187,37 +142,25 @@ never-returning-functions=optparse.Values,sys.exit # function parameter format logging-modules=logging - -[SPELLING] - -# Limits count of emitted suggestions for spelling mistakes -max-spelling-suggestions=4 - -# Spelling dictionary name. Available dictionaries: none. To make it working -# install python-enchant package. -spelling-dict= - -# List of comma separated words that should not be checked. -spelling-ignore-words= - -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= - -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no +# The type of string formatting that logging methods do. `old` means using % +# formatting, `new` is for `{}` formatting. +logging-format-style=old [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. -notes=FIXME, - XXX, - TODO +notes=FIXME,XXX,TODO + +# Regular expression of note tags to take in consideration. +#notes-rgx= [SIMILARITIES] +# Minimum lines number of a similarity. +min-similarity-lines=6 + # Ignore comments when computing similarities. ignore-comments=yes @@ -225,281 +168,274 @@ ignore-comments=yes ignore-docstrings=yes # Ignore imports when computing similarities. -ignore-imports=no - -# Minimum lines number of a similarity. -min-similarity-lines=4 +ignore-imports=yes - -[TYPECHECK] - -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager - -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= - -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes - -# This flag controls whether pylint should warn about no-member and similar -# checks whenever an opaque object is returned when inferring. The inference -# can return multiple potential results while evaluating a Python object, but -# some branches might not be evaluated, which results in partial inference. In -# that case, it might be useful to still emit no-member and other checks for -# the rest of the inferred objects. -ignore-on-opaque-inference=yes - -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local - -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis. It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules= - -# Show a hint with possible names when a member name was not found. The aspect -# of finding the hint is based on edit distance. -missing-member-hint=yes - -# The minimum edit distance a name should have in order to be considered a -# similar match for a missing member name. -missing-member-hint-distance=1 - -# The total number of similar names that should be taken in consideration when -# showing a hint for a missing member. -missing-member-max-choices=1 +# Signatures are removed from the similarity computation +ignore-signatures=yes [VARIABLES] +# Tells whether we should check for unused import in __init__ files. +init-import=no + # List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. +# you should avoid defining new builtins when possible. additional-builtins= -# Tells whether unused global variables should be treated as a violation. -allow-global-unused-variables=yes - # List of strings which can identify a callback function by name. A callback # name must start or end with one of those strings. -callbacks=cb_, - _cb +callbacks=cb_,_cb -# A regular expression matching the name of dummy variables (i.e. expectedly -# not used). -dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_ - -# Argument names that match this expression will be ignored. Default to name -# with leading underscore -ignored-argument-names=_.*|^ignored_|^unused_ +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes -# Tells whether we should check for unused import in __init__ files. -init-import=no +# List of names allowed to shadow builtins +allowed-redefined-builtins= # List of qualified module names which can have objects that can redefine # builtins. -redefining-builtins-modules=past.builtins,future.builtins,io,builtins +redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io [FORMAT] -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= +# Maximum number of characters on a single line. +max-line-length=100 # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=^\s*(# )??$ -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no + +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no + +# Maximum number of lines in a module +max-module-lines=2000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' -# Maximum number of characters on a single line. -max-line-length=100 +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 -# Maximum number of lines in a module -max-module-lines=1000 +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= -# List of optional constructs for which whitespace checking is disabled. `dict- -# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. -# `trailing-comma` allows a space between comma and closing bracket: (a, ). -# `empty-line` allows space-only lines. -no-space-check=trailing-comma, - dict-separator -# Allow the body of a class to be on the same line as the declaration if body -# contains single statement. -single-line-class-stmt=no +[BASIC] -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no +# Good variable names which should always be accepted, separated by a comma +good-names=i,j,k,ex,Run,_ +# Good variable names regexes, separated by a comma. If names match any regex, +# they will always be accepted +good-names-rgxs= -[BASIC] +# Bad variable names which should always be refused, separated by a comma +bad-names=foo,bar,baz,toto,tutu,tata -# Naming style matching correct argument names -argument-naming-style=snake_case +# Bad variable names regexes, separated by a comma. If names match any regex, +# they will always be refused +bad-names-rgxs= + +# Colon-delimited sets of names that determine each other's naming style when +# the name regexes allow several styles. +name-group= + +# Include a hint for the correct naming format with invalid-name +include-naming-hint=no + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names +function-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming style matching correct variable names. +variable-naming-style=snake_case -# Regular expression matching correct argument names. Overrides argument- -# naming-style -#argument-rgx= +# Regular expression matching correct variable names +variable-rgx=[a-z_][a-z0-9_]{2,30}$ -# Naming style matching correct attribute names +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Naming style matching correct attribute names. attr-naming-style=snake_case -# Regular expression matching correct attribute names. Overrides attr-naming- -# style -#attr-rgx= +# Regular expression matching correct attribute names +attr-rgx=[a-z_][a-z0-9_]{2,}$ -# Bad variable names which should always be refused, separated by a comma -bad-names=foo, - bar, - baz, - toto, - tutu, - tata - -# Naming style matching correct class attribute names +# Naming style matching correct argument names. +argument-naming-style=snake_case + +# Regular expression matching correct argument names +argument-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming style matching correct class attribute names. class-attribute-naming-style=any -# Regular expression matching correct class attribute names. Overrides class- -# attribute-naming-style -#class-attribute-rgx= +# Regular expression matching correct class attribute names +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ + +# Naming style matching correct class constant names. +class-const-naming-style=UPPER_CASE + +# Regular expression matching correct class constant names. Overrides class- +# const-naming-style. +#class-const-rgx= -# Naming style matching correct class names +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming style matching correct class names. class-naming-style=PascalCase -# Regular expression matching correct class names. Overrides class-naming-style -#class-rgx= +# Regular expression matching correct class names +class-rgx=[A-Z_][a-zA-Z0-9]+$ -# Naming style matching correct constant names -const-naming-style=UPPER_CASE -# Regular expression matching correct constant names. Overrides const-naming- -# style -#const-rgx= +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ + + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names +method-rgx=[a-z_][a-z0-9_]{2,}$ + +# Regular expression matching correct type variable names +#typevar-rgx= + +# Regular expression which should only match function or class names that do +# not require a docstring. Use ^(?!__init__$)_ to also check __init__. +no-docstring-rgx=__.*__ # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. docstring-min-length=-1 -# Naming style matching correct function names -function-naming-style=snake_case +# List of decorators that define properties, such as abc.abstractproperty. +property-classes=abc.abstractproperty -# Regular expression matching correct function names. Overrides function- -# naming-style -#function-rgx= -# Good variable names which should always be accepted, separated by a comma -good-names=i, - j, - k, - ex, - Run, - _ +[TYPECHECK] -# Include a hint for the correct naming format with invalid-name -include-naming-hint=no +# Regex pattern to define which classes are considered mixins if ignore-mixin- +# members is set to 'yes' +mixin-class-rgx=.*MixIn -# Naming style matching correct inline iteration names -inlinevar-naming-style=any +# List of module names for which member attributes should not be checked +# (useful for modules/projects where namespaces are manipulated during runtime +# and thus existing member attributes cannot be deduced by static analysis). It +# supports qualified module names, as well as Unix pattern matching. +ignored-modules= -# Regular expression matching correct inline iteration names. Overrides -# inlinevar-naming-style -#inlinevar-rgx= +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=SQLObject, optparse.Values, thread._local, _thread._local -# Naming style matching correct method names -method-naming-style=snake_case +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members=REQUEST,acl_users,aq_parent,argparse.Namespace -# Regular expression matching correct method names. Overrides method-naming- -# style -#method-rgx= +# List of decorators that create context managers from functions, such as +# contextlib.contextmanager. +contextmanager-decorators=contextlib.contextmanager -# Naming style matching correct module names -module-naming-style=snake_case +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes -# Regular expression matching correct module names. Overrides module-naming- -# style -#module-rgx= +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes -# Colon-delimited sets of names that determine each other's naming style when -# the name regexes allow several styles. -name-group= +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 -# List of decorators that produce properties, such as abc.abstractproperty. Add -# to this list to register other decorators that produce valid properties. -property-classes=abc.abstractproperty +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 -# Naming style matching correct variable names -variable-naming-style=snake_case +[SPELLING] -# Regular expression matching correct variable names. Overrides variable- -# naming-style -#variable-rgx= +# Spelling dictionary name. Available dictionaries: none. To make it working +# install python-enchant package. +spelling-dict= +# List of comma separated words that should not be checked. +spelling-ignore-words= -[DESIGN] +# List of comma separated words that should be considered directives if they +# appear and the beginning of a comment and should not be checked. +spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy:,pragma:,# noinspection -# Maximum number of arguments for function / method -max-args=5 +# A path to a file that contains private dictionary; one word per line. +spelling-private-dict-file=.pyenchant_pylint_custom_dict.txt -# Maximum number of attributes for a class (see R0902). -max-attributes=7 +# Tells whether to store unknown words to indicated private dictionary in +# --spelling-private-dict-file option instead of raising a message. +spelling-store-unknown-words=no -# Maximum number of boolean expressions in a if statement -max-bool-expr=5 +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=2 -# Maximum number of branch for function / method body -max-branches=12 -# Maximum number of locals for function / method body -max-locals=20 +[DESIGN] -# Maximum number of parents for a class (see R0901). -max-parents=7 +# Maximum number of arguments for function / method +max-args = 9 -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 +# Maximum number of locals for function / method body +max-locals = 19 # Maximum number of return / yield for function / method body -max-returns=6 +max-returns=11 + +# Maximum number of branch for function / method body +max-branches = 20 # Maximum number of statements in function / method body -max-statements=50 +max-statements = 50 -# Minimum number of public methods for a class (see R0903). -min-public-methods=2 +# Maximum number of attributes for a class (see R0902). +max-attributes=11 +# Maximum number of statements in a try-block +max-try-statements = 7 [CLASSES] # List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__, - __new__, - setUp - -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict, - _fields, - _replace, - _source, - _make +defining-attr-methods=__init__,__new__,setUp,__post_init__ # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls @@ -507,31 +443,41 @@ valid-classmethod-first-arg=cls # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=mcs +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict,_fields,_replace,_source,_make + +# Warn about protected attribute access inside special methods +check-protected-access-in-special-methods=no [IMPORTS] +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= + # Allow wildcard imports from modules that define __all__. allow-wildcard-with-all=no +# Allow explicit reexports by alias from a package __init__. +allow-reexport-from-package=no + # Analyse import fallback blocks. This can be used to support both Python 2 and # 3 compatible code, which means that the block might have code that exists # only in one or another interpreter, leading to false positives when analysed. analyse-fallback-blocks=no # Deprecated modules which should not be used, separated by a comma -deprecated-modules=regsub, - TERMIOS, - Bastion, - rexec - -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= +deprecated-modules=regsub,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled) import-graph= +# Create a graph of external dependencies in the given file (report RP0402 must +# not be disabled) +ext-import-graph= + # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled) int-import-graph= @@ -543,9 +489,60 @@ known-standard-library= # Force import order to recognize a module as part of a third party library. known-third-party=enchant +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= + [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" -overgeneral-exceptions=Exception +overgeneral-exceptions=builtins.Exception + + +[TYPING] + +# Set to ``no`` if the app / library does **NOT** need to support runtime +# introspection of type annotations. If you use type annotations +# **exclusively** for type checking of an application, you're probably fine. +# For libraries, evaluate if some users what to access the type hints at +# runtime first, e.g., through ``typing.get_type_hints``. Applies to Python +# versions 3.7 - 3.9 +runtime-typing = no + + +[DEPRECATED_BUILTINS] + +# List of builtins function names that should not be used, separated by a comma +bad-functions=map,input + + +[REFACTORING] + +# Maximum number of nested blocks for function / method body +max-nested-blocks=5 + +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit,argparse.parse_error + + +[STRING] + +# This flag controls whether inconsistent-quotes generates a warning when the +# character used as a quote delimiter is used inconsistently within a module. +check-quote-consistency=no + +# This flag controls whether the implicit-str-concat should generate a warning +# on implicit string concatenation in sequences defined over several lines. +check-str-concat-over-line-jumps=no + + +[CODE_STYLE] + +# Max line length for which to sill emit suggestions. Used to prevent optional +# suggestions which would get split by a code formatter (e.g., black). Will +# default to the setting for ``max-line-length``. +#max-line-length-suggestions= \ No newline at end of file From 5cca99e7b55a1fbed0d1de1e1fb8d88684e0fc26 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Sat, 11 Nov 2023 12:14:21 -0600 Subject: [PATCH 52/65] enable e2e ENV variable --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bc76984c..233b8cca 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -31,6 +31,8 @@ jobs: run: make test - name: Run e2e Tests run: make e2e_test + env: + RUN_E2E_TESTS: true - name: Run with setup-python 3.8 uses: actions/setup-python@v4 From b696e0e50338e952487dcdfd299e8ee4ce865ee1 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:30:33 -0600 Subject: [PATCH 53/65] Updating test script --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3d54fd2a..a17f8887 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,9 +21,9 @@ jobs: pip install -r requirements.txt pip install python-dateutil backoff monotonic pip install --user . - sudo pip install pylint==2.8.0 flake8 mock==3.0.5 python-dateutil + sudo pip install pylint==2.8.0 flake8 mock==3.0.5 python-dateutil aiohttp==3.9.1 - name: Run tests - run: make e2e_test + run: python -m unittest discover -s segment # snyk: # runs-on: ubuntu-latest From ec6669ac65981823f11c7d489b54c9807e316f68 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:39:21 -0600 Subject: [PATCH 54/65] Update node version requirements --- .github/workflows/tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 233b8cca..8bf80e4a 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -20,7 +20,7 @@ jobs: uses: actions/checkout@v4 - name: Run with setup-python 3.7 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.7' - name: Setup pylint @@ -35,7 +35,7 @@ jobs: RUN_E2E_TESTS: true - name: Run with setup-python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.8' - name: Setup pylint @@ -48,7 +48,7 @@ jobs: run: make e2e_test - name: Run with setup-python 3.9 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.9' - name: Setup pylint @@ -61,7 +61,7 @@ jobs: run: make e2e_test - name: Run with setup-python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10' - name: Setup pylint @@ -74,7 +74,7 @@ jobs: run: make e2e_test - name: Run with setup-python 3.11 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.11' - name: Setup pylint From 7fae0179cbae615cc3235389196108f187ec85b1 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:41:39 -0600 Subject: [PATCH 55/65] Remove e2e test for now and update test command --- .github/workflows/tests.yml | 24 ++++++------------------ 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8bf80e4a..59da6ff7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -28,11 +28,7 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test - env: - RUN_E2E_TESTS: true + run: python -m unittest discover -s segment - name: Run with setup-python 3.8 uses: actions/setup-python@v5 @@ -43,9 +39,7 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test + run: python -m unittest discover -s segment - name: Run with setup-python 3.9 uses: actions/setup-python@v5 @@ -56,9 +50,7 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test + run: python -m unittest discover -s segment - name: Run with setup-python 3.10 uses: actions/setup-python@v5 @@ -69,10 +61,8 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test - + run: python -m unittest discover -s segment + - name: Run with setup-python 3.11 uses: actions/setup-python@v5 with: @@ -82,6 +72,4 @@ jobs: - name: Setup flake8 run: python -m pip install flake8 - name: Run tests - run: make test - - name: Run e2e Tests - run: make e2e_test \ No newline at end of file + run: python -m unittest discover -s segment \ No newline at end of file From 5cd013e01cd27fbbb185afc0d9d1c24917f77f9f Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:44:40 -0600 Subject: [PATCH 56/65] adding dateutil to test --- .github/workflows/tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 59da6ff7..e8c9f80e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,7 +26,9 @@ jobs: - name: Setup pylint run: python -m pip install pylint - name: Setup flake8 - run: python -m pip install flake8 + run: python -m pip install flake8 + - name: Setup Dateutil + run: python -m pip install python-dateutil - name: Run tests run: python -m unittest discover -s segment @@ -62,7 +64,7 @@ jobs: run: python -m pip install flake8 - name: Run tests run: python -m unittest discover -s segment - + - name: Run with setup-python 3.11 uses: actions/setup-python@v5 with: From c471d9deb90d8df7930bd60346d3685792af06f9 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:49:31 -0600 Subject: [PATCH 57/65] set up required modules --- .github/workflows/tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e8c9f80e..b7834c12 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -27,8 +27,8 @@ jobs: run: python -m pip install pylint - name: Setup flake8 run: python -m pip install flake8 - - name: Setup Dateutil - run: python -m pip install python-dateutil + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment From c8fbe89b2ebccfe3948253060a5052f63a596c64 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 31 Jan 2024 16:51:17 -0600 Subject: [PATCH 58/65] Update scripts for testing --- .github/workflows/tests.yml | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index b7834c12..8b3cf029 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -23,10 +23,6 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.7' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 - name: Setup required modules run: python -m pip install -r requirements.txt - name: Run tests @@ -36,10 +32,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.8' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment @@ -47,10 +41,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.9' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment @@ -58,10 +50,8 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.10' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment @@ -69,9 +59,7 @@ jobs: uses: actions/setup-python@v5 with: python-version: '3.11' - - name: Setup pylint - run: python -m pip install pylint - - name: Setup flake8 - run: python -m pip install flake8 + - name: Setup required modules + run: python -m pip install -r requirements.txt - name: Run tests run: python -m unittest discover -s segment \ No newline at end of file From 334518bcf7e9caf0cc23db3413752a339582e343 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 1 Feb 2024 09:34:44 -0600 Subject: [PATCH 59/65] Moving tests to new file --- segment/analytics/test/__init__.py | 87 ------------------------------ segment/analytics/test/tests.py | 87 ++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 87 deletions(-) create mode 100644 segment/analytics/test/tests.py diff --git a/segment/analytics/test/__init__.py b/segment/analytics/test/__init__.py index 98ad6aa3..e69de29b 100644 --- a/segment/analytics/test/__init__.py +++ b/segment/analytics/test/__init__.py @@ -1,87 +0,0 @@ -import unittest -import pkgutil -import logging -import sys -import segment.analytics as analytics -from segment.analytics.client import Client - - -def all_names(): - for _, modname, _ in pkgutil.iter_modules(__path__): - yield 'segment.analytics.test.' + modname - - -def all(): - logging.basicConfig(stream=sys.stderr) - return unittest.defaultTestLoader.loadTestsFromNames(all_names()) - - -class TestInit(unittest.TestCase): - def test_writeKey(self): - self.assertIsNone(analytics.default_client) - analytics.flush() - self.assertEqual(analytics.default_client.write_key, 'test-init') - - def test_debug(self): - self.assertIsNone(analytics.default_client) - analytics.debug = True - analytics.flush() - self.assertTrue(analytics.default_client.debug) - analytics.default_client = None - analytics.debug = False - analytics.flush() - self.assertFalse(analytics.default_client.debug) - analytics.default_client.log.setLevel(0) # reset log level after debug enable - - def test_gzip(self): - self.assertIsNone(analytics.default_client) - analytics.gzip = True - analytics.flush() - self.assertTrue(analytics.default_client.gzip) - analytics.default_client = None - analytics.gzip = False - analytics.flush() - self.assertFalse(analytics.default_client.gzip) - - def test_host(self): - self.assertIsNone(analytics.default_client) - analytics.host = 'http://test-host' - analytics.flush() - self.assertEqual(analytics.default_client.host, 'http://test-host') - analytics.host = None - analytics.default_client = None - - def test_max_queue_size(self): - self.assertIsNone(analytics.default_client) - analytics.max_queue_size = 1337 - analytics.flush() - self.assertEqual(analytics.default_client.queue.maxsize, 1337) - - def test_max_retries(self): - self.assertIsNone(analytics.default_client) - client = Client('testsecret', max_retries=42) - for consumer in client.consumers: - self.assertEqual(consumer.retries, 42) - - def test_sync_mode(self): - self.assertIsNone(analytics.default_client) - analytics.sync_mode = True - analytics.flush() - self.assertTrue(analytics.default_client.sync_mode) - analytics.default_client = None - analytics.sync_mode = False - analytics.flush() - self.assertFalse(analytics.default_client.sync_mode) - - def test_timeout(self): - self.assertIsNone(analytics.default_client) - analytics.timeout = 1.234 - analytics.flush() - self.assertEqual(analytics.default_client.timeout, 1.234) - - def setUp(self): - analytics.write_key = 'test-init' - analytics.default_client = None - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/segment/analytics/test/tests.py b/segment/analytics/test/tests.py new file mode 100644 index 00000000..98ad6aa3 --- /dev/null +++ b/segment/analytics/test/tests.py @@ -0,0 +1,87 @@ +import unittest +import pkgutil +import logging +import sys +import segment.analytics as analytics +from segment.analytics.client import Client + + +def all_names(): + for _, modname, _ in pkgutil.iter_modules(__path__): + yield 'segment.analytics.test.' + modname + + +def all(): + logging.basicConfig(stream=sys.stderr) + return unittest.defaultTestLoader.loadTestsFromNames(all_names()) + + +class TestInit(unittest.TestCase): + def test_writeKey(self): + self.assertIsNone(analytics.default_client) + analytics.flush() + self.assertEqual(analytics.default_client.write_key, 'test-init') + + def test_debug(self): + self.assertIsNone(analytics.default_client) + analytics.debug = True + analytics.flush() + self.assertTrue(analytics.default_client.debug) + analytics.default_client = None + analytics.debug = False + analytics.flush() + self.assertFalse(analytics.default_client.debug) + analytics.default_client.log.setLevel(0) # reset log level after debug enable + + def test_gzip(self): + self.assertIsNone(analytics.default_client) + analytics.gzip = True + analytics.flush() + self.assertTrue(analytics.default_client.gzip) + analytics.default_client = None + analytics.gzip = False + analytics.flush() + self.assertFalse(analytics.default_client.gzip) + + def test_host(self): + self.assertIsNone(analytics.default_client) + analytics.host = 'http://test-host' + analytics.flush() + self.assertEqual(analytics.default_client.host, 'http://test-host') + analytics.host = None + analytics.default_client = None + + def test_max_queue_size(self): + self.assertIsNone(analytics.default_client) + analytics.max_queue_size = 1337 + analytics.flush() + self.assertEqual(analytics.default_client.queue.maxsize, 1337) + + def test_max_retries(self): + self.assertIsNone(analytics.default_client) + client = Client('testsecret', max_retries=42) + for consumer in client.consumers: + self.assertEqual(consumer.retries, 42) + + def test_sync_mode(self): + self.assertIsNone(analytics.default_client) + analytics.sync_mode = True + analytics.flush() + self.assertTrue(analytics.default_client.sync_mode) + analytics.default_client = None + analytics.sync_mode = False + analytics.flush() + self.assertFalse(analytics.default_client.sync_mode) + + def test_timeout(self): + self.assertIsNone(analytics.default_client) + analytics.timeout = 1.234 + analytics.flush() + self.assertEqual(analytics.default_client.timeout, 1.234) + + def setUp(self): + analytics.write_key = 'test-init' + analytics.default_client = None + +if __name__ == '__main__': + unittest.main() \ No newline at end of file From 018b15f519d4b792592b2755c283aaa3841c1eb6 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Thu, 1 Feb 2024 10:05:11 -0600 Subject: [PATCH 60/65] Update test Suite for python 3 requirements --- segment/analytics/test/{client.py => test_client.py} | 0 segment/analytics/test/{consumer.py => test_consumer.py} | 0 segment/analytics/test/{tests.py => test_init.py} | 0 segment/analytics/test/{module.py => test_module.py} | 0 segment/analytics/test/{oauth.py => test_oauth.py} | 0 segment/analytics/test/{request.py => test_request.py} | 0 segment/analytics/test/{utils.py => test_utils.py} | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename segment/analytics/test/{client.py => test_client.py} (100%) rename segment/analytics/test/{consumer.py => test_consumer.py} (100%) rename segment/analytics/test/{tests.py => test_init.py} (100%) rename segment/analytics/test/{module.py => test_module.py} (100%) rename segment/analytics/test/{oauth.py => test_oauth.py} (100%) rename segment/analytics/test/{request.py => test_request.py} (100%) rename segment/analytics/test/{utils.py => test_utils.py} (100%) diff --git a/segment/analytics/test/client.py b/segment/analytics/test/test_client.py similarity index 100% rename from segment/analytics/test/client.py rename to segment/analytics/test/test_client.py diff --git a/segment/analytics/test/consumer.py b/segment/analytics/test/test_consumer.py similarity index 100% rename from segment/analytics/test/consumer.py rename to segment/analytics/test/test_consumer.py diff --git a/segment/analytics/test/tests.py b/segment/analytics/test/test_init.py similarity index 100% rename from segment/analytics/test/tests.py rename to segment/analytics/test/test_init.py diff --git a/segment/analytics/test/module.py b/segment/analytics/test/test_module.py similarity index 100% rename from segment/analytics/test/module.py rename to segment/analytics/test/test_module.py diff --git a/segment/analytics/test/oauth.py b/segment/analytics/test/test_oauth.py similarity index 100% rename from segment/analytics/test/oauth.py rename to segment/analytics/test/test_oauth.py diff --git a/segment/analytics/test/request.py b/segment/analytics/test/test_request.py similarity index 100% rename from segment/analytics/test/request.py rename to segment/analytics/test/test_request.py diff --git a/segment/analytics/test/utils.py b/segment/analytics/test/test_utils.py similarity index 100% rename from segment/analytics/test/utils.py rename to segment/analytics/test/test_utils.py From 1116532eea4f8209714d71d931c42eb129a14b6c Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 20 Feb 2024 10:16:03 -0600 Subject: [PATCH 61/65] Updating requirements.txt to include only necessary packages --- requirements.txt | 70 ------------------------------------------------ 1 file changed, 70 deletions(-) diff --git a/requirements.txt b/requirements.txt index 512f8a54..f8eff26f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,76 +1,6 @@ -aiohttp==3.7.4.post0 -appdirs==1.4.4 -astroid==1.6.6 -async-timeout==3.0.1 -attrs==23.1.0 backoff==2.2.1 -bleach==6.0.0 -botocore==1.29.40 -Cerberus==1.3.5 -certifi==2023.7.22 -chardet==4.0.0 -charset-normalizer==3.2.0 -colorama==0.4.4 -dephell==0.8.3 -dephell-archive==0.1.7 -dephell-argparse==0.1.3 -dephell-changelogs==0.0.1 -dephell-discover==0.2.10 -dephell-licenses==0.1.7 -dephell-links==0.1.5 -dephell-markers==1.0.3 -dephell-pythons==0.1.15 dephell-setuptools==0.2.5 -dephell-shells==0.1.5 -dephell-specifier==0.2.2 -dephell-venvs==0.1.18 -dephell-versioning==0.1.2 -docutils==0.20.1 -entrypoints==0.3 -flake8==3.7.9 -git-remote-codecommit==1.16 -idna==3.4 -importlib-metadata==4.11.2 -isort==5.9.3 -Jinja2==3.1.3 -jmespath==1.0.1 -keyring==23.5.0 -lazy-object-proxy==1.9.0 -m2r==0.3.1 -MarkupSafe==2.1.3 -mccabe==0.6.1 -mistune==0.8.4 mock==2.0.0 -multidict==5.1.0 -packaging==21.0 -pbr==5.11.1 -pexpect==4.8.0 -pkginfo==1.9.6 -protobuf==4.24.2 -ptyprocess==0.7.0 -pycodestyle==2.5.0 -pyflakes==2.1.1 -Pygments==2.16.1 PyJWT==2.8.0 -pylint==1.9.3 -pyparsing==3.1.1 python-dateutil==2.8.2 -readme-renderer==32.0 requests==2.31.0 -requests-toolbelt==1.0.0 -rfc3986==2.0.0 -ruamel.yaml==0.17.32 -ruamel.yaml.clib==0.2.7 -shellingham==1.4.0 -six==1.15.0 -termcolor==1.1.0 -tomlkit==0.7.2 -tqdm==4.66.1 -twine==3.8.0 -typing-extensions==3.10.0.2 -urllib3==1.26.6 -webencodings==0.5.1 -wrapt==1.12.1 -yarl==1.9.2 -yaspin==2.1.0 -zipp==3.7.0 From b60b1097846e1eeb9d208e09e4e9d2cd7bfbceb5 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 20 Feb 2024 10:18:51 -0600 Subject: [PATCH 62/65] Update label --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 8b3cf029..257b7077 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,4 +1,4 @@ -name: e2e tests +name: analytics test suite on: push: From f39b3cfede156d80aff1eaec7e231e68d10663e0 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Tue, 20 Feb 2024 10:30:46 -0600 Subject: [PATCH 63/65] Adding in requirements --- requirements.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/requirements.txt b/requirements.txt index f8eff26f..4c6586ad 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,9 @@ backoff==2.2.1 +cryptography==41.0.3 dephell-setuptools==0.2.5 +flake8==3.7.9 mock==2.0.0 PyJWT==2.8.0 +pylint==2.8.0 python-dateutil==2.8.2 requests==2.31.0 From 3245c6028ecc9f24fb77e2d96dada9f9d6a57e89 Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 21 Feb 2024 12:54:32 -0600 Subject: [PATCH 64/65] Remove dephell from requirements --- requirements.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 4c6586ad..cf0cbbee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,5 @@ backoff==2.2.1 cryptography==41.0.3 -dephell-setuptools==0.2.5 flake8==3.7.9 mock==2.0.0 PyJWT==2.8.0 From b01701e27122776d9f4a9c86df0478cc7270599b Mon Sep 17 00:00:00 2001 From: Shane Duvall Date: Wed, 29 Jan 2025 13:19:07 -0600 Subject: [PATCH 65/65] Proposal for update to tests failing in PR #344 --- segment/analytics/request.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/segment/analytics/request.py b/segment/analytics/request.py index 273247ce..1d204b31 100644 --- a/segment/analytics/request.py +++ b/segment/analytics/request.py @@ -45,14 +45,17 @@ def post(write_key, host=None, gzip=False, timeout=15, proxies=None, oauth_manag kwargs = { "data": data, "headers": headers, - "timeout": 15, + "timeout": timeout, } if proxies: - kwargs['proxies'] = proxies - res = None + kwargs['proxies'] = { + 'http': proxies, + 'https': proxies, + } + try: - res = _session.post(url, data=data, headers=headers, timeout=timeout) + res = _session.post(url, **kwargs) except Exception as e: log.error(e) raise e