From e0b7d2f7390ac828863f55f6b74d248bdf781e01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Wed, 3 Apr 2024 17:56:05 +0200 Subject: [PATCH] chore: adhere to ruff's `C` (#2379) --- lnbits/core/views/extension_api.py | 2 +- lnbits/core/views/generic.py | 51 +++++++++++++++--------------- lnbits/core/views/payment_api.py | 2 +- lnbits/middleware.py | 2 +- lnbits/nodes/lndrest.py | 2 ++ lnbits/server.py | 10 +++--- lnbits/wallets/fake.py | 2 +- lnbits/wallets/lndrest.py | 2 +- pyproject.toml | 7 ++-- tools/conv.py | 4 +-- 10 files changed, 43 insertions(+), 41 deletions(-) diff --git a/lnbits/core/views/extension_api.py b/lnbits/core/views/extension_api.py index 34cc37d41..da2842039 100644 --- a/lnbits/core/views/extension_api.py +++ b/lnbits/core/views/extension_api.py @@ -135,7 +135,7 @@ async def api_uninstall_extension( ) # check that other extensions do not depend on this one - for valid_ext_id in list(map(lambda e: e.code, get_valid_extensions())): + for valid_ext_id in [ext.code for ext in get_valid_extensions()]: installed_ext = next( (ext for ext in installable_extensions if ext.id == valid_ext_id), None ) diff --git a/lnbits/core/views/generic.py b/lnbits/core/views/generic.py index d90c874b5..b2e1370e2 100644 --- a/lnbits/core/views/generic.py +++ b/lnbits/core/views/generic.py @@ -113,6 +113,7 @@ async def extensions_install( except Exception as ex: logger.warning(ex) installable_exts = [] + installed_exts_ids = [] try: ext_id = activate or deactivate @@ -137,34 +138,32 @@ async def extensions_install( ext_id=ext_id, active=activate is not None ) - all_ext_ids = list(map(lambda e: e.code, all_extensions)) + all_ext_ids = [ext.code for ext in all_extensions] inactive_extensions = await get_inactive_extensions() db_version = await get_dbversions() - extensions = list( - map( - lambda ext: { - "id": ext.id, - "name": ext.name, - "icon": ext.icon, - "shortDescription": ext.short_description, - "stars": ext.stars, - "isFeatured": ext.featured, - "dependencies": ext.dependencies, - "isInstalled": ext.id in installed_exts_ids, - "hasDatabaseTables": ext.id in db_version, - "isAvailable": ext.id in all_ext_ids, - "isAdminOnly": ext.id in settings.lnbits_admin_extensions, - "isActive": ext.id not in inactive_extensions, - "latestRelease": ( - dict(ext.latest_release) if ext.latest_release else None - ), - "installedRelease": ( - dict(ext.installed_release) if ext.installed_release else None - ), - }, - installable_exts, - ) - ) + extensions = [ + { + "id": ext.id, + "name": ext.name, + "icon": ext.icon, + "shortDescription": ext.short_description, + "stars": ext.stars, + "isFeatured": ext.featured, + "dependencies": ext.dependencies, + "isInstalled": ext.id in installed_exts_ids, + "hasDatabaseTables": ext.id in db_version, + "isAvailable": ext.id in all_ext_ids, + "isAdminOnly": ext.id in settings.lnbits_admin_extensions, + "isActive": ext.id not in inactive_extensions, + "latestRelease": ( + dict(ext.latest_release) if ext.latest_release else None + ), + "installedRelease": ( + dict(ext.installed_release) if ext.installed_release else None + ), + } + for ext in installable_exts + ] # refresh user state. Eg: enabled extensions. user = await get_user(user.id) or user diff --git a/lnbits/core/views/payment_api.py b/lnbits/core/views/payment_api.py index 641f72136..1333f70cc 100644 --- a/lnbits/core/views/payment_api.py +++ b/lnbits/core/views/payment_api.py @@ -393,7 +393,7 @@ async def subscribe_wallet_invoices(request: Request, wallet: Wallet): payment: Payment = await payment_queue.get() if payment.wallet_id == this_wallet_id: logger.debug("sse listener: payment received", payment) - yield dict(data=payment.json(), event="payment-received") + yield {"data": payment.json(), "event": "payment-received"} except asyncio.CancelledError: logger.debug(f"removing listener for wallet {uid}") except Exception as exc: diff --git a/lnbits/middleware.py b/lnbits/middleware.py index 41c9aec68..8700b3eb4 100644 --- a/lnbits/middleware.py +++ b/lnbits/middleware.py @@ -78,7 +78,7 @@ class InstalledExtensionMiddleware: "", ) - if "text/html" in [a for a in accept_header.split(",")]: + if "text/html" in accept_header.split(","): return HTMLResponse( status_code=status_code, content=template_renderer() diff --git a/lnbits/nodes/lndrest.py b/lnbits/nodes/lndrest.py index 9874f243c..6b2cb41e3 100644 --- a/lnbits/nodes/lndrest.py +++ b/lnbits/nodes/lndrest.py @@ -167,6 +167,8 @@ class LndRestNode(Node): point: Optional[ChannelPoint] = None, force: bool = False, ): + if short_id: + logger.debug(f"Closing channel with short_id: {short_id}") if not point: raise HTTPException( status_code=HTTPStatus.BAD_REQUEST, detail="Channel point required" diff --git a/lnbits/server.py b/lnbits/server.py index 9f85abb50..30ac6c3f9 100644 --- a/lnbits/server.py +++ b/lnbits/server.py @@ -10,10 +10,10 @@ from lnbits.settings import set_cli_settings, settings @click.command( - context_settings=dict( - ignore_unknown_options=True, - allow_extra_args=True, - ) + context_settings={ + "ignore_unknown_options": True, + "allow_extra_args": True, + } ) @click.option("--port", default=settings.port, help="Port to listen on") @click.option("--host", default=settings.host, help="Host to run LNBits on") @@ -48,7 +48,7 @@ def main( # this beautiful beast parses all command line arguments and # passes them to the uvicorn server - d = dict() + d = {} for a in ctx.args: item = a.split("=") if len(item) > 1: # argument like --key=value diff --git a/lnbits/wallets/fake.py b/lnbits/wallets/fake.py index 5ef407e54..01323ad5a 100644 --- a/lnbits/wallets/fake.py +++ b/lnbits/wallets/fake.py @@ -31,7 +31,7 @@ from .base import ( class FakeWallet(Wallet): queue: asyncio.Queue = asyncio.Queue(0) - payment_secrets: Dict[str, str] = dict() + payment_secrets: Dict[str, str] = {} paid_invoices: Set[str] = set() secret: str = settings.fake_wallet_secret privkey: str = hashlib.pbkdf2_hmac( diff --git a/lnbits/wallets/lndrest.py b/lnbits/wallets/lndrest.py index f97ee6f49..9dd89c425 100644 --- a/lnbits/wallets/lndrest.py +++ b/lnbits/wallets/lndrest.py @@ -142,7 +142,7 @@ class LndRestWallet(Wallet): async def pay_invoice(self, bolt11: str, fee_limit_msat: int) -> PaymentResponse: # set the fee limit for the payment - lnrpcFeeLimit = dict() + lnrpcFeeLimit = {} lnrpcFeeLimit["fixed_msat"] = f"{fee_limit_msat}" try: diff --git a/pyproject.toml b/pyproject.toml index a1a4e67ff..08d6858d8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -164,7 +164,8 @@ extend-exclude = [ # W - pycodestyle warnings # I - isort # A - flake8-builtins -select = ["F", "E", "W", "I", "A"] +# C - mccabe +select = ["F", "E", "W", "I", "A", "C"] ignore = [] # Allow autofix for all enabled rules (when `--fix`) is provided. @@ -179,5 +180,5 @@ dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" "__init__.py" = ["F401", "F403"] [tool.ruff.lint.mccabe] -# Unlike Flake8, default to a complexity level of 10. -max-complexity = 10 +# TODO: Decrease this to 10. +max-complexity = 16 diff --git a/tools/conv.py b/tools/conv.py index 50da7270f..381dc378d 100644 --- a/tools/conv.py +++ b/tools/conv.py @@ -152,8 +152,8 @@ def migrate_db(file: str, schema: str, exclude_tables: List[str] = []): def build_insert_query(schema, tableName, columns): - to_columns = ", ".join(map(lambda column: f'"{column[1].lower()}"', columns)) - values = ", ".join(map(lambda column: to_column_type(column[2]), columns)) + to_columns = ", ".join([f'"{column[1].lower()}"' for column in columns]) + values = ", ".join([to_column_type(column[2]) for column in columns]) return f""" INSERT INTO {schema}.{tableName}({to_columns}) VALUES ({values});