From 57c0fcae3d5b9bbf20a2f53ea073ec141efaa306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CNaeel=E2=80=9D?= Date: Mon, 17 Aug 2026 08:20:44 +0400 Subject: [PATCH] =?UTF-8?q?chore:=20=D1=83=D0=B1=D1=80=D0=B0=D1=82=D1=8C?= =?UTF-8?q?=20=5F=5Fpycache=5F=5F=20=D0=B8=D0=B7=20=D1=82=D1=80=D0=B5?= =?UTF-8?q?=D0=BA=D0=B8=D0=BD=D0=B3=D0=B0,=20=D1=80=D0=B0=D1=81=D1=88?= =?UTF-8?q?=D0=B8=D1=80=D0=B8=D1=82=D1=8C=20.gitignore=20(pyc/=D0=B1=D0=B8?= =?UTF-8?q?=D0=BD=D0=B0=D1=80=D0=BD=D0=B8=D0=BA=D0=B8/=D0=BC=D1=83=D1=81?= =?UTF-8?q?=D0=BE=D1=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 33 ++++++++++++++++++ .../__pycache__/__init__.cpython-312.pyc | Bin 118 -> 0 bytes loadtests/__pycache__/common.cpython-312.pyc | Bin 8423 -> 0 bytes .../__pycache__/publisher.cpython-312.pyc | Bin 7400 -> 0 bytes loadtests/__pycache__/run.cpython-312.pyc | Bin 4293 -> 0 bytes .../__pycache__/scenarios.cpython-312.pyc | Bin 21103 -> 0 bytes .../__pycache__/verifier.cpython-312.pyc | Bin 4627 -> 0 bytes 7 files changed, 33 insertions(+) delete mode 100644 loadtests/__pycache__/__init__.cpython-312.pyc delete mode 100644 loadtests/__pycache__/common.cpython-312.pyc delete mode 100644 loadtests/__pycache__/publisher.cpython-312.pyc delete mode 100644 loadtests/__pycache__/run.cpython-312.pyc delete mode 100644 loadtests/__pycache__/scenarios.cpython-312.pyc delete mode 100644 loadtests/__pycache__/verifier.cpython-312.pyc diff --git a/.gitignore b/.gitignore index 4ee4276..78d00ab 100644 --- a/.gitignore +++ b/.gitignore @@ -5,11 +5,36 @@ /sqs-consumer bin/ ws-probe/ws-probe +/iot-service # Go *.exe *.test *.out +*.prof +*.cover + +# Python — кэш и генерируемые файлы +__pycache__/ +*.py[cod] +*$py.class +.pytest_cache/ +.mypy_cache/ +.ruff_cache/ +.tox/ +.venv/ +venv/ +htmlcov/ +.coverage +.coverage.* +*.egg-info/ +build/ +dist/ +.eggs/ + +# Логи +*.log +logs/ # IDE .idea/ @@ -21,3 +46,11 @@ ws-probe/ws-probe # OS .DS_Store Thumbs.db + +# Прочие генерируемые/временные +*.tmp +*.temp +*.bak +*.orig +*.swp +.DS_Store diff --git a/loadtests/__pycache__/__init__.cpython-312.pyc b/loadtests/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 0e630852b68ebc5ed2e92090dd5f062c190c4c0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118 zcmX@j%ge<81m-&$vx0&2V-N=&d}aZPOlPQM&}8&m$xy@u2KczG$)vkyYsEQGYi$RQ!%#4hTMa)1J077*bMF0Q* diff --git a/loadtests/__pycache__/common.cpython-312.pyc b/loadtests/__pycache__/common.cpython-312.pyc deleted file mode 100644 index 59a5a52e3953218e652cce4c37d7fe77570bc8f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8423 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 t;2H13sx8bx<|~5mVINb^c)ub5rnj(6e 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 Bn+E^@ diff --git a/loadtests/__pycache__/run.cpython-312.pyc b/loadtests/__pycache__/run.cpython-312.pyc deleted file mode 100644 index 19fe059d28a8c6fde18137aba486245fd8358095..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4293 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