From 42f9ead4c351df5abedf433378acb50c63251cda Mon Sep 17 00:00:00 2001 From: Dennis Torres Date: Fri, 6 Sep 2024 09:32:22 -0400 Subject: [PATCH 1/2] Add `AIR` and `FURB` rulesets to Ruff config --- .changeset/chatty-insects-relate.md | 5 +++ .changeset/tricky-shirts-beam.md | 5 +++ packages/ruff-config/poetry.lock | 39 ++++++++++--------- packages/ruff-config/pyproject.toml | 2 +- .../spear_ai_ruff_config/config.toml | 3 +- 5 files changed, 33 insertions(+), 21 deletions(-) create mode 100644 .changeset/chatty-insects-relate.md create mode 100644 .changeset/tricky-shirts-beam.md diff --git a/.changeset/chatty-insects-relate.md b/.changeset/chatty-insects-relate.md new file mode 100644 index 0000000..48c2990 --- /dev/null +++ b/.changeset/chatty-insects-relate.md @@ -0,0 +1,5 @@ +--- +"@spear-ai/ruff-config": major +--- + +Updated Ruff configā€˜s `ruff` dependency. diff --git a/.changeset/tricky-shirts-beam.md b/.changeset/tricky-shirts-beam.md new file mode 100644 index 0000000..94258c8 --- /dev/null +++ b/.changeset/tricky-shirts-beam.md @@ -0,0 +1,5 @@ +--- +"@spear-ai/ruff-config": major +--- + +Added `AIR` and `FURB` rulesets to Ruff config. diff --git a/packages/ruff-config/poetry.lock b/packages/ruff-config/poetry.lock index e5eb2ef..a55e256 100644 --- a/packages/ruff-config/poetry.lock +++ b/packages/ruff-config/poetry.lock @@ -2,31 +2,32 @@ [[package]] name = "ruff" -version = "0.3.7" +version = "0.6.4" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:0e8377cccb2f07abd25e84fc5b2cbe48eeb0fea9f1719cad7caedb061d70e5ce"}, - {file = "ruff-0.3.7-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:15a4d1cc1e64e556fa0d67bfd388fed416b7f3b26d5d1c3e7d192c897e39ba4b"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d28bdf3d7dc71dd46929fafeec98ba89b7c3550c3f0978e36389b5631b793663"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:379b67d4f49774ba679593b232dcd90d9e10f04d96e3c8ce4a28037ae473f7bb"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c060aea8ad5ef21cdfbbe05475ab5104ce7827b639a78dd55383a6e9895b7c51"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:ebf8f615dde968272d70502c083ebf963b6781aacd3079081e03b32adfe4d58a"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d48098bd8f5c38897b03604f5428901b65e3c97d40b3952e38637b5404b739a2"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:da8a4fda219bf9024692b1bc68c9cff4b80507879ada8769dc7e985755d662ea"}, - {file = "ruff-0.3.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c44e0149f1d8b48c4d5c33d88c677a4aa22fd09b1683d6a7ff55b816b5d074f"}, - {file = "ruff-0.3.7-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3050ec0af72b709a62ecc2aca941b9cd479a7bf2b36cc4562f0033d688e44fa1"}, - {file = "ruff-0.3.7-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a29cc38e4c1ab00da18a3f6777f8b50099d73326981bb7d182e54a9a21bb4ff7"}, - {file = "ruff-0.3.7-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b15cc59c19edca917f51b1956637db47e200b0fc5e6e1878233d3a938384b0b"}, - {file = "ruff-0.3.7-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:e491045781b1e38b72c91247cf4634f040f8d0cb3e6d3d64d38dcf43616650b4"}, - {file = "ruff-0.3.7-py3-none-win32.whl", hash = "sha256:bc931de87593d64fad3a22e201e55ad76271f1d5bfc44e1a1887edd0903c7d9f"}, - {file = "ruff-0.3.7-py3-none-win_amd64.whl", hash = "sha256:5ef0e501e1e39f35e03c2acb1d1238c595b8bb36cf7a170e7c1df1b73da00e74"}, - {file = "ruff-0.3.7-py3-none-win_arm64.whl", hash = "sha256:789e144f6dc7019d1f92a812891c645274ed08af6037d11fc65fcbc183b7d59f"}, - {file = "ruff-0.3.7.tar.gz", hash = "sha256:d5c1aebee5162c2226784800ae031f660c350e7a3402c4d1f8ea4e97e232e3ba"}, + {file = "ruff-0.6.4-py3-none-linux_armv6l.whl", hash = "sha256:c4b153fc152af51855458e79e835fb6b933032921756cec9af7d0ba2aa01a258"}, + {file = "ruff-0.6.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:bedff9e4f004dad5f7f76a9d39c4ca98af526c9b1695068198b3bda8c085ef60"}, + {file = "ruff-0.6.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:d02a4127a86de23002e694d7ff19f905c51e338c72d8e09b56bfb60e1681724f"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7862f42fc1a4aca1ea3ffe8a11f67819d183a5693b228f0bb3a531f5e40336fc"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eebe4ff1967c838a1a9618a5a59a3b0a00406f8d7eefee97c70411fefc353617"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:932063a03bac394866683e15710c25b8690ccdca1cf192b9a98260332ca93408"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:50e30b437cebef547bd5c3edf9ce81343e5dd7c737cb36ccb4fe83573f3d392e"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c44536df7b93a587de690e124b89bd47306fddd59398a0fb12afd6133c7b3818"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0ea086601b22dc5e7693a78f3fcfc460cceabfdf3bdc36dc898792aba48fbad6"}, + {file = "ruff-0.6.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b52387d3289ccd227b62102c24714ed75fbba0b16ecc69a923a37e3b5e0aaaa"}, + {file = "ruff-0.6.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:0308610470fcc82969082fc83c76c0d362f562e2f0cdab0586516f03a4e06ec6"}, + {file = "ruff-0.6.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:803b96dea21795a6c9d5bfa9e96127cc9c31a1987802ca68f35e5c95aed3fc0d"}, + {file = "ruff-0.6.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:66dbfea86b663baab8fcae56c59f190caba9398df1488164e2df53e216248baa"}, + {file = "ruff-0.6.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:34d5efad480193c046c86608dbba2bccdc1c5fd11950fb271f8086e0c763a5d1"}, + {file = "ruff-0.6.4-py3-none-win32.whl", hash = "sha256:f0f8968feea5ce3777c0d8365653d5e91c40c31a81d95824ba61d871a11b8523"}, + {file = "ruff-0.6.4-py3-none-win_amd64.whl", hash = "sha256:549daccee5227282289390b0222d0fbee0275d1db6d514550d65420053021a58"}, + {file = "ruff-0.6.4-py3-none-win_arm64.whl", hash = "sha256:ac4b75e898ed189b3708c9ab3fc70b79a433219e1e87193b4f2b77251d058d14"}, + {file = "ruff-0.6.4.tar.gz", hash = "sha256:ac3b5bfbee99973f80aa1b7cbd1c9cbce200883bdd067300c22a6cc1c7fba212"}, ] [metadata] lock-version = "2.0" python-versions = ">=3.10,<3.13" -content-hash = "c8a4286a8fbf1ce917c8c513a5d2b3d421360ff4e0dd654948a23933164868f9" +content-hash = "b021f7beaf8708629cca832ca4bed3229d05f762767b6942cc44df85edd1dcc1" diff --git a/packages/ruff-config/pyproject.toml b/packages/ruff-config/pyproject.toml index a8f8c5b..59b04af 100644 --- a/packages/ruff-config/pyproject.toml +++ b/packages/ruff-config/pyproject.toml @@ -15,7 +15,7 @@ repository = "https://github.com/spear-ai/citizen" [tool.poetry.dependencies] python = ">=3.10,<3.13" -ruff = "^0.3.7" +ruff = "^0.6.4" [build-system] build-backend = "poetry.core.masonry.api" diff --git a/packages/ruff-config/spear_ai_ruff_config/config.toml b/packages/ruff-config/spear_ai_ruff_config/config.toml index 574056c..0045fb6 100644 --- a/packages/ruff-config/spear_ai_ruff_config/config.toml +++ b/packages/ruff-config/spear_ai_ruff_config/config.toml @@ -15,6 +15,7 @@ ignore = [ ] select = [ "A", + "AIR", "ANN", "ARG", "ASYNC", @@ -35,6 +36,7 @@ select = [ "FBT", "FIX", "FLY", + "FURB", "G", "I", "ICN", @@ -65,7 +67,6 @@ select = [ "TCH", "TD", "TID", - "TRIO", "TRY", "UP", "W", From 10357edd365b63d5d7cc70c24acbce99be1cbf0c Mon Sep 17 00:00:00 2001 From: Dennis Torres Date: Fri, 6 Sep 2024 09:39:07 -0400 Subject: [PATCH 2/2] WIP --- .yarn/install-state.gz | Bin 1201187 -> 1201186 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 2ad2d92ad7de59d6a8f930e3e56b9c043883e7f1..51d0aed5ecaf8e260049a992f47e54b9f3506ce8 100644 GIT binary patch delta 7960 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 OZ~ni5_-q|7gf;*z$)*?p delta 7961 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