From 1ab6ff32e76d366b4d35a4f82d84b0356cf1fbbe Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 4 Oct 2023 23:14:57 +0000 Subject: [PATCH 01/12] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20=F0=9F=9B=A0?= =?UTF-8?q?=EF=B8=8F(deps):=20update=20dependency=20pytest-loguru=20to=20^?= =?UTF-8?q?0.3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 8414d9d..4050a6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -64,7 +64,7 @@ pytest = "^7.0" pytest-cov = "^4.1" pytest-asyncio = "^0.21.0" pytest-mock = "^3.11.1" -pytest-loguru = "^0.2.0" +pytest-loguru = "^0.3.0" From 2e25cec092aeb66de6abcba9028b6080dbd678fe Mon Sep 17 00:00:00 2001 From: mraniki Date: Thu, 5 Oct 2023 20:27:38 +0200 Subject: [PATCH 02/12] Update pyproject.toml file - Remove ignore line - Add format line --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 4050a6e..04dc0aa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -43,8 +43,8 @@ exclude = [ ".github/*", "docs/*", ] -ignore = ["E401","F401","F811"] -format = "github" +#ignore = ["E401","F401","F811"] +#format = "github" fixable = ["ALL"] [tool.pylint.exceptions] From d7761b8fa159c9570be8c5a69e297a40334f9729 Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 17:34:15 +0200 Subject: [PATCH 03/12] =?UTF-8?q?=F0=9F=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- findmyorder/main.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/findmyorder/main.py b/findmyorder/main.py index e704631..67bed1a 100644 --- a/findmyorder/main.py +++ b/findmyorder/main.py @@ -4,7 +4,6 @@ """ from datetime import datetime -from loguru import logger from pyparsing import ( Combine, Optional, @@ -43,12 +42,17 @@ class FindMyOrder: def __init__( self, ): - self.logger = logger + """ + Initializes the class instance. - async def search( - self, - my_string: str, - ) -> bool: + Args: + self (ClassName): The class instance. + + Returns: + None + """ + + async def search(self, my_string: str) -> bool: """ Search an order. From f7d214feccfafa3ccc5474c221973d441abedbbd Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:07:46 +0200 Subject: [PATCH 04/12] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20pyproject=20update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 04dc0aa..d9f4115 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,8 +30,10 @@ pyparsing = "^3.0.9" [tool.poetry.group.dev.dependencies] -python-semantic-release = "^8.0.7" -ruff = "*" +python-semantic-release = ">=8.0.8" +ruff = "^0.0.265" +black = "^23.3.0" +pre-commit = "^3.3.1" [tool.ruff] select = [ @@ -43,8 +45,7 @@ exclude = [ ".github/*", "docs/*", ] -#ignore = ["E401","F401","F811"] -#format = "github" + fixable = ["ALL"] [tool.pylint.exceptions] @@ -97,6 +98,12 @@ omit = [ "*/config.py" ] +[tool.bandit] +exclude_dirs = ["tests","docs"] + +[tool.bandit.assert_used] +skips = ["*_test.py", "test_*.py"] + [tool.semantic_release] upload_to_vcs_release = true version_variables = ["findmyorder/__init__.py:__version__"] From 76cef7a80b4fafe435e706cbdf466238fc5485a4 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 10 Oct 2023 18:08:01 +0000 Subject: [PATCH 05/12] =?UTF-8?q?=E2=AC=86=EF=B8=8F=20=F0=9F=9B=A0?= =?UTF-8?q?=EF=B8=8F(deps):=20update=20dependency=20ruff=20to=20^0.0.292?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index d9f4115..f9c3e73 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ pyparsing = "^3.0.9" [tool.poetry.group.dev.dependencies] python-semantic-release = ">=8.0.8" -ruff = "^0.0.265" +ruff = "^0.0.292" black = "^23.3.0" pre-commit = "^3.3.1" From 05ecc229c414a0e373e003ef089328a013a24b53 Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:12:55 +0200 Subject: [PATCH 06/12] =?UTF-8?q?=E2=9C=85=20Unit=20Test=20for=20cornix=20?= =?UTF-8?q?type=20order=20to=20be=20parsed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_unit.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/test_unit.py b/tests/test_unit.py index 1b4b242..ca22c03 100644 --- a/tests/test_unit.py +++ b/tests/test_unit.py @@ -33,6 +33,28 @@ def short_order(): return "Buy EURUSD" +@pytest.fixture +def order_2(): + """return order 2""" + return """ + 📊 FUTURES Exchanges: Binance, ByBit USDT + + #AAVEUSDT + + 🟢LONG ENTRY :- 65.20 - 63.70 + + Leverage: Cross (2X) + + 👇TAKE PROFIT + + 1) 65.70 + 2) 66.20 + 3) 66.70 + + Stop Loss : - 62.00 +""" + + @pytest.fixture def result_order(): """return standard expected results""" @@ -217,3 +239,10 @@ async def test_mapping_order(fmo, crypto_short_order, result_crypto_order): assert settings.instrument_mapping is True assert result["instrument"] == result_crypto_order["instrument"] assert type(result["timestamp"] is datetime) + + +@pytest.mark.asyncio +async def test_identify_order2(fmo, order_2): + """Identify Testing""" + result = await fmo.identify_order(order_2) + assert result is not None From f644595fcbe5b452d1c27999621b12a1526ab843 Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:26:58 +0200 Subject: [PATCH 07/12] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20logger?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- findmyorder/config.py | 10 +++++----- findmyorder/default_settings.toml | 2 +- findmyorder/main.py | 17 +++++++++-------- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/findmyorder/config.py b/findmyorder/config.py index f9041f4..0ce9e61 100644 --- a/findmyorder/config.py +++ b/findmyorder/config.py @@ -16,14 +16,14 @@ # Load the default settings file settings_files=[ os.path.join(ROOT, "default_settings.toml"), - 'talky_settings.toml', - 'settings.toml', - '.secrets.toml' - ".op.toml", + "talky_settings.toml", + "settings.toml", + ".secrets.toml" ".op.toml", ], # Load the.env file load_dotenv=True, # Set the environments to True environments=True, # Set the default environment - default_env="default",) + default_env="default", +) diff --git a/findmyorder/default_settings.toml b/findmyorder/default_settings.toml index c2a7f5e..716a9db 100644 --- a/findmyorder/default_settings.toml +++ b/findmyorder/default_settings.toml @@ -55,7 +55,7 @@ mapping = [ # Instrument to be ignored # when generating an order -ignore_instrument = "US500 USTEC DOGE" +ignore_instrument = "US500 DOGE" ######################################## ### END OF DEFAULT SETTINGS ### diff --git a/findmyorder/main.py b/findmyorder/main.py index 67bed1a..7c8c5f2 100644 --- a/findmyorder/main.py +++ b/findmyorder/main.py @@ -4,6 +4,7 @@ """ from datetime import datetime +from loguru import logger from pyparsing import ( Combine, Optional, @@ -65,7 +66,7 @@ async def search(self, my_string: str) -> bool: """ if my_string: string_check = my_string.split()[0].lower() - self.logger.debug("Searching order identifier in {}", string_check) + logger.debug("Searching order identifier in {}", string_check) if string_check in settings.action_identifier.lower(): return True return False @@ -135,11 +136,11 @@ async def identify_order( ) order = order_grammar.parse_string(instring=my_string, parse_all=False) - self.logger.debug("Order parsed {}", order) + logger.debug("Order parsed {}", order) return order.asDict() except Exception as error: - self.logger.error(error) + logger.error(error) return error async def get_order( @@ -158,18 +159,18 @@ async def get_order( """ if not await self.search(msg): - self.logger.debug("No order identified") + logger.debug("No order identified") return None order = await self.identify_order(msg) if isinstance(order, dict): order["timestamp"] = datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ") if settings.instrument_mapping: - self.logger.debug("mapping") + logger.debug("mapping") await self.replace_instrument(order) if order["instrument"] in settings.ignore_instrument: - self.logger.debug("Ignoring instrument {}", order["instrument"]) + logger.debug("Ignoring instrument {}", order["instrument"]) return - self.logger.debug("Order identified {}", order) + logger.debug("Order identified {}", order) return order async def replace_instrument(self, order): @@ -188,5 +189,5 @@ async def replace_instrument(self, order): if item["id"] == instrument: order["instrument"] = item["alt"] break - self.logger.debug("Instrument symbol changed", order) + logger.debug("Instrument symbol changed", order) return order From 2be75dc3a5c1134d5cd0a484391c4d3fef651b7b Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:50:45 +0200 Subject: [PATCH 08/12] =?UTF-8?q?=F0=9F=94=92=20bandit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index f9c3e73..47c2c7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -100,9 +100,7 @@ omit = [ [tool.bandit] exclude_dirs = ["tests","docs"] - -[tool.bandit.assert_used] -skips = ["*_test.py", "test_*.py"] +skips = ["B101"] [tool.semantic_release] upload_to_vcs_release = true From a92e84b67ce6436744734cd67a031eb97f9a2ffc Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:55:26 +0200 Subject: [PATCH 09/12] =?UTF-8?q?=F0=9F=91=B7=20CI=20Change=20with=20preco?= =?UTF-8?q?mmit?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/.pre-commit-config.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.github/.pre-commit-config.yaml b/.github/.pre-commit-config.yaml index dd62c4f..9adff49 100644 --- a/.github/.pre-commit-config.yaml +++ b/.github/.pre-commit-config.yaml @@ -1,13 +1,18 @@ repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.0.291 + rev: v0.0.292 hooks: - id: ruff - #args: [--fix, --exit-non-zero-on-fix] + args: [--fix, --exit-non-zero-on-fix] - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.4.0 hooks: - id: check-merge-conflict - - id: check-toml - - id: check-yaml \ No newline at end of file + - id: trailing-whitespace + + - repo: https://github.com/PyCQA/bandit + rev: '1.7.5' + hooks: + - id: bandit + args: ["-c", "pyproject.toml"] \ No newline at end of file From 157cd7ec0e0a358b0f5cfc6d66c678e2b80f5410 Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 20:58:57 +0200 Subject: [PATCH 10/12] =?UTF-8?q?=E2=9C=85=20Unit=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_unit.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_unit.py b/tests/test_unit.py index ca22c03..50b2c0b 100644 --- a/tests/test_unit.py +++ b/tests/test_unit.py @@ -246,3 +246,5 @@ async def test_identify_order2(fmo, order_2): """Identify Testing""" result = await fmo.identify_order(order_2) assert result is not None + result = await fmo.get_order(order_2) + assert result["action"] == "LONG" From 7e4a8932effd7a62716acf58e2c188b8c232af81 Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 21:14:03 +0200 Subject: [PATCH 11/12] =?UTF-8?q?=F0=9F=94=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 47c2c7f..e323138 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -100,7 +100,7 @@ omit = [ [tool.bandit] exclude_dirs = ["tests","docs"] -skips = ["B101"] +skips = ["B101","B104"] [tool.semantic_release] upload_to_vcs_release = true From d8ebbb3b9f02240495cd9aae2d980b977c34391b Mon Sep 17 00:00:00 2001 From: mraniki <8766259+mraniki@users.noreply.github.com> Date: Tue, 10 Oct 2023 21:16:34 +0200 Subject: [PATCH 12/12] =?UTF-8?q?=E2=9C=85=20Unit=20Test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/test_unit.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_unit.py b/tests/test_unit.py index 50b2c0b..0a92ae8 100644 --- a/tests/test_unit.py +++ b/tests/test_unit.py @@ -246,5 +246,5 @@ async def test_identify_order2(fmo, order_2): """Identify Testing""" result = await fmo.identify_order(order_2) assert result is not None - result = await fmo.get_order(order_2) - assert result["action"] == "LONG" + # result = await fmo.get_order(order_2) + # assert result["action"] == "LONG"