diff --git a/.flake8 b/.flake8 index 93d41a1a..737ff673 100644 --- a/.flake8 +++ b/.flake8 @@ -1,22 +1,22 @@ [flake8] -color=always -max-line-length=120 +color = always +max-line-length = 120 ; Auto generated -exclude=src/gen/, typings/cv2-stubs/__init__.pyi -ignore= - ; Linebreak before binary operator - W503, - ; Closing bracket may not match multi-line method invocation style (enforced by add-trailing-comma) - E124, - ; Allow imports at the bottom of file - E402, - ; Not using typing_extensions - Y026, - ; contextlib.suppress is roughly 3x slower than try/except - SIM105, - ; False positives for attribute docstrings - CCE001, -per-file-ignores= +exclude = src/gen/, typings/cv2-stubs/__init__.pyi +ignore = + ; Linebreak before binary operator + W503, + ; Closing bracket may not match multi-line method invocation style (enforced by add-trailing-comma) + E124, + ; Allow imports at the bottom of file + E402, + ; Not using typing_extensions + Y026, + ; contextlib.suppress is roughly 3x slower than try/except + SIM105, + ; False positives for attribute docstrings + CCE001, +per-file-ignores = ; Quotes ; Allow ... on same line as class ; Allow ... on same line as def @@ -30,8 +30,8 @@ per-file-ignores= ; mypy 3.7 Union issue *.pyi: Q000,E701,E704,E501,N8,A001,A002,A003,CCE002,F401,Y037 ; PyQt methods -ignore-names=closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent +ignore-names = closeEvent,paintEvent,keyPressEvent,mousePressEvent,mouseMoveEvent,mouseReleaseEvent ; McCabe max-complexity is also taken care of by Pylint and doesn't fail the build there ; So this is the hard limit -max-complexity=32 -inline-quotes=double +max-complexity = 32 +inline-quotes = double diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 36c2c94d..2b67e709 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -17,11 +17,12 @@ repos: hooks: - id: pretty-format-ini args: [--autofix] - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: "v0.0.262" # Must match requirements-dev.txt - hooks: - - id: ruff - args: [--fix] + # TODO: Re-enable in dev, master doesn't have Ruff configs + # - repo: https://github.com/charliermarsh/ruff-pre-commit + # rev: "v0.0.262" # Must match requirements-dev.txt + # hooks: + # - id: ruff + # args: [--fix] - repo: https://github.com/pre-commit/mirrors-autopep8 rev: "v2.0.2" # Must match requirements-dev.txt hooks: @@ -30,7 +31,7 @@ repos: rev: v2.4.0 # Must match requirements-dev.txt hooks: - id: add-trailing-comma - + ci: skip: # Ignore until Linux support. We don't want lf everywhere yet diff --git a/.vscode/settings.json b/.vscode/settings.json index 807a07f0..b77a08d2 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -141,4 +141,18 @@ "terminal.integrated.defaultProfile.windows": "PowerShell", "xml.codeLens.enabled": true, "xml.format.spaceBeforeEmptyCloseTag": false, + "xml.format.preserveSpace": [ + // Default + "xsl:text", + "xsl:comment", + "xsl:processing-instruction", + "literallayout", + "programlisting", + "screen", + "synopsis", + "pre", + "xd:pre", + // Custom + "string" + ] } diff --git a/README.md b/README.md index 1a891b6a..9644d39b 100644 --- a/README.md +++ b/README.md @@ -170,7 +170,7 @@ If this option is disabled, when the reset hotkey is hit, the reset button is pr - `002_SplitName_(0.9)_[10]_{d}.png` is the second split image with a threshold of 0.9, pause time of 10, and is a dummy split. - `003_SplitName_(0.85)_[20]_#3500#.png` is the third split image with a threshold of 0.85, pause time of 20 and has a delay split time of 3.5 seconds. - `004_SplitName_(0.9)_[10]_#3500#_@3@_{b}.png` is the fourth split image with a threshold of 0.9, pause time of 10 seconds, delay split time of 3.5 seconds, will loop 3 times, and will split when similarity is below the threshold rather than above. - + ## Special images ### How to Create a Masked Image diff --git a/mypy.ini b/mypy.ini index 27f9c438..a49a7797 100644 --- a/mypy.ini +++ b/mypy.ini @@ -1,21 +1,21 @@ ; We don't run mypy in the CI. This is just to help anyone who would like to use it manually. ; Namely, the mypy_primer tool. [mypy] -strict=true +strict = true ; Implicit return types ! -disallow_untyped_calls=false -disallow_untyped_defs=false -disallow_incomplete_defs=false +disallow_untyped_calls = false +disallow_untyped_defs = false +disallow_incomplete_defs = false ; Of course my stubs are going to be incomplete. Otherwise they'd be on typeshed! ; Mypy becomes really whack with its errors inside these stubs though -mypy_path=typings,src +mypy_path = typings,src ; exclude doesn't work with strict=true Why? -exclude=.*(typings|gen)/.* +exclude = .*(typings|gen)/.* [mypy-gen.*,cv2.*,] ; strict=false ; Doesn't work in overrides -follow_imports=skip -implicit_reexport=true -strict_optional=false -disable_error_code=attr-defined, misc, name-defined +follow_imports = skip +implicit_reexport = true +strict_optional = false +disable_error_code = attr-defined, misc, name-defined diff --git a/res/about.ui b/res/about.ui index 5aa56a75..25d8fae5 100644 --- a/res/about.ui +++ b/res/about.ui @@ -32,9 +32,7 @@ - :/resources/icon.ico - :/resources/icon.ico - + :/resources/icon.ico:/resources/icon.ico @@ -81,7 +79,7 @@ 10 90 241 - 41 + 51 @@ -105,9 +103,6 @@ Thank you! <html><head/><body><p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;business=BYRHQG69YRHBA&amp;item_name=AutoSplit+development&amp;currency_code=USD&amp;source=url"><img src=":/resources/btn_donateCC_LG.png"/></a></p></body></html> - - :/resources/btn_donateCC_LG.png - Qt::AlignCenter @@ -115,7 +110,7 @@ Thank you! - 181 + 190 17 64 64 diff --git a/res/design.ui b/res/design.ui index 7d67e0e0..7309b7d4 100644 --- a/res/design.ui +++ b/res/design.ui @@ -6,20 +6,20 @@ 0 0 - 777 - 424 + 786 + 426 - 777 - 424 + 786 + 426 - 777 - 424 + 786 + 426 @@ -32,17 +32,15 @@ - :/resources/icon.ico - :/resources/icon.ico - + :/resources/icon.ico:/resources/icon.ico 11 - 143 - 44 + 145 + 49 20 @@ -58,8 +56,8 @@ 10 67 - 101 - 23 + 107 + 24 @@ -72,7 +70,7 @@ - 650 + 657 369 121 27 @@ -91,7 +89,7 @@ - 650 + 657 339 121 27 @@ -110,7 +108,7 @@ - 650 + 657 310 59 27 @@ -129,7 +127,7 @@ - 712 + 719 310 59 27 @@ -146,9 +144,9 @@ 10 - 253 + 270 53 - 23 + 24 @@ -165,8 +163,8 @@ 92 - 254 - 20 + 272 + 21 20 @@ -177,7 +175,7 @@ - 120 + 127 67 320 240 @@ -205,7 +203,7 @@ - 449 + 456 67 320 240 @@ -224,7 +222,7 @@ - 449 + 456 31 318 20 @@ -241,8 +239,8 @@ 11 - 183 - 44 + 190 + 49 20 @@ -257,8 +255,8 @@ 66 - 183 - 44 + 190 + 49 20 @@ -273,7 +271,7 @@ 65 - 254 + 272 26 20 @@ -286,8 +284,8 @@ 11 - 200 - 44 + 210 + 51 24 @@ -308,8 +306,8 @@ 66 - 200 - 44 + 210 + 51 24 @@ -329,7 +327,7 @@ - 120 + 127 31 318 20 @@ -345,7 +343,7 @@ - 477 + 484 49 264 20 @@ -362,9 +360,9 @@ 10 - 227 - 101 - 23 + 240 + 107 + 24 @@ -378,8 +376,8 @@ 11 - 160 - 44 + 165 + 51 24 @@ -406,8 +404,8 @@ 66 - 160 - 44 + 165 + 51 24 @@ -428,8 +426,8 @@ 66 - 143 - 44 + 145 + 49 20 @@ -445,8 +443,8 @@ 10 119 - 101 - 23 + 107 + 24 @@ -464,8 +462,8 @@ 10 93 - 101 - 23 + 107 + 24 @@ -480,7 +478,7 @@ 696 5 - 75 + 81 24 @@ -496,7 +494,7 @@ 10 9 - 98 + 111 16 @@ -507,9 +505,9 @@ - 119 + 127 6 - 574 + 561 22 @@ -520,7 +518,7 @@ - 120 + 127 49 318 20 @@ -536,9 +534,9 @@ - 451 + 458 313 - 67 + 81 20 @@ -549,7 +547,7 @@ - 120 + 127 312 321 84 @@ -800,9 +798,9 @@ - 450 + 457 369 - 121 + 131 27 @@ -816,10 +814,10 @@ - 449 + 458 344 - 101 - 16 + 121 + 20 @@ -829,10 +827,10 @@ - 560 + 577 344 - 98 - 16 + 81 + 20 @@ -842,9 +840,9 @@ - 520 + 537 313 - 131 + 121 20 @@ -858,7 +856,7 @@ - 448 + 455 49 27 18 @@ -880,7 +878,7 @@ - 743 + 750 49 27 18 @@ -938,7 +936,7 @@ 0 0 - 777 + 786 22 diff --git a/res/settings.ui b/res/settings.ui index ec00fb6b..45f8d5d4 100644 --- a/res/settings.ui +++ b/res/settings.ui @@ -6,20 +6,20 @@ 0 0 - 291 - 661 + 290 + 664 - 291 - 661 + 290 + 664 - 291 - 661 + 290 + 664 @@ -32,16 +32,14 @@ - :/resources/icon.ico - :/resources/icon.ico - + :/resources/icon.ico:/resources/icon.ico 10 200 - 271 + 270 181 @@ -51,10 +49,10 @@ - 138 - 25 + 150 + 24 51 - 22 + 24 @@ -75,7 +73,7 @@ 6 27 - 121 + 141 16 @@ -87,14 +85,11 @@ - - true - 6 49 - 129 + 141 20 @@ -166,8 +161,8 @@ 10 390 - 271 - 261 + 270 + 266 @@ -185,9 +180,9 @@ - 167 + 170 25 - 88 + 91 22 @@ -202,8 +197,8 @@ Histograms: An explanation on Histograms comparison can be found here https://mpatacchiola.github.io/blog/2016/11/12/the-simplest-classifier-histogram-intersection.html This is a great method to use if you are using several masked images. -> This algorithm is particular reliable when the colour is a strong predictor of the object identity. -> The histogram intersection [...] is robust to occluding objects in the foreground. +> This algorithm is particular reliable when the colour is a strong predictor of the object identity. +> The histogram intersection [...] is robust to occluding objects in the foreground. Perceptual Hash: An explanation on pHash comparison can be found here @@ -231,7 +226,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 28 - 161 + 171 16 @@ -244,7 +239,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 118 - 161 + 171 16 @@ -255,10 +250,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 167 + 170 115 - 87 - 22 + 91 + 24 @@ -285,7 +280,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 58 - 151 + 171 16 @@ -296,10 +291,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 167 + 170 55 - 52 - 22 + 51 + 24 @@ -319,14 +314,11 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - - true - 6 143 - 235 + 261 20 @@ -344,9 +336,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 - 190 + 193 261 - 61 + 71 @@ -367,7 +359,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 88 - 161 + 171 16 @@ -378,10 +370,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 167 + 170 85 - 87 - 22 + 91 + 24 @@ -398,13 +390,14 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 140 - 210 + 218 71 31 + Segoe UI 8 true @@ -427,7 +420,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 168 - 151 + 171 20 @@ -444,7 +437,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 10 10 - 271 + 270 191 @@ -464,9 +457,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 180 - 130 + 128 81 - 21 + 24 @@ -477,15 +470,12 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - - true - - 76 - 30 + 80 + 25 94 - 20 + 22 @@ -498,10 +488,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 76 - 80 + 80 + 77 94 - 20 + 22 @@ -515,7 +505,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 - 32 + 28 71 16 @@ -527,10 +517,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 76 - 55 + 80 + 51 94 - 20 + 22 @@ -544,9 +534,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 180 - 80 + 76 81 - 21 + 24 @@ -560,7 +550,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 - 57 + 54 41 16 @@ -573,9 +563,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 180 - 55 + 50 81 - 21 + 24 @@ -589,9 +579,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 180 - 30 + 24 81 - 21 + 24 @@ -617,10 +607,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 76 - 130 + 80 + 129 94 - 20 + 22 @@ -634,7 +624,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 - 82 + 80 71 16 @@ -647,9 +637,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 180 - 105 + 102 81 - 21 + 24 @@ -663,7 +653,7 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 - 107 + 106 61 16 @@ -675,10 +665,10 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be - 76 - 105 + 80 + 103 94 - 20 + 22 @@ -692,9 +682,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 180 - 155 + 154 81 - 21 + 24 @@ -708,9 +698,9 @@ It is highly recommended to NOT use pHash if you use masked images, or it'll be 6 - 154 + 151 71 - 31 + 32 @@ -721,10 +711,10 @@ reset image - 76 + 80 155 94 - 20 + 22 @@ -737,11 +727,11 @@ reset image - split_input - reset_input - undo_split_input - skip_split_input - pause_input + set_split_hotkey_button + set_reset_hotkey_button + set_undo_split_hotkey_button + set_skip_split_hotkey_button + set_pause_hotkey_button fps_limit_spinbox live_capture_region_checkbox capture_method_combobox diff --git a/res/update_checker.ui b/res/update_checker.ui index 75fbc852..6ff6ea85 100644 --- a/res/update_checker.ui +++ b/res/update_checker.ui @@ -9,20 +9,20 @@ 0 0 - 313 - 133 + 318 + 132 - 313 - 133 + 318 + 132 - 313 - 133 + 318 + 132 @@ -43,9 +43,9 @@ - 20 + 10 10 - 218 + 251 16 @@ -62,9 +62,9 @@ - 20 + 10 30 - 91 + 101 16 @@ -75,9 +75,9 @@ - 20 + 10 50 - 81 + 101 16 @@ -88,9 +88,9 @@ - 20 + 10 80 - 119 + 141 16 @@ -101,9 +101,9 @@ - 150 + 160 100 - 75 + 71 24 @@ -117,9 +117,9 @@ - 230 + 240 100 - 75 + 71 24 @@ -130,9 +130,9 @@ - 120 + 110 30 - 181 + 191 16 @@ -143,9 +143,9 @@ - 120 + 110 50 - 181 + 191 16 @@ -156,9 +156,9 @@ - 20 + 10 102 - 131 + 151 20 diff --git a/scripts/requirements-dev.txt b/scripts/requirements-dev.txt index 2e2e8c1c..34be909c 100644 --- a/scripts/requirements-dev.txt +++ b/scripts/requirements-dev.txt @@ -27,7 +27,7 @@ unify # # Run `./scripts/designer.ps1` to quickly open the bundled PyQt Designer. # Can also be downloaded externally as a non-python package -qt6-applications +# qt6-applications # Types types-d3dshot types-keyboard