Merge pull request #1336 from lnbits/mypy_fix_ignore_missing_imports

fix: mypy - constrain `ignore_missing_imports = "True"`
This commit is contained in:
calle 2023-01-11 12:12:53 +01:00 committed by GitHub
commit b8dd74299d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
44 changed files with 92 additions and 77 deletions

View file

@ -4,12 +4,12 @@ import time
from decimal import Decimal from decimal import Decimal
from typing import List, NamedTuple, Optional from typing import List, NamedTuple, Optional
import bitstring # type: ignore import bitstring
import embit import embit
import secp256k1 import secp256k1
from bech32 import CHARSET, bech32_decode, bech32_encode from bech32 import CHARSET, bech32_decode, bech32_encode
from ecdsa import SECP256k1, VerifyingKey # type: ignore from ecdsa import SECP256k1, VerifyingKey
from ecdsa.util import sigdecode_string # type: ignore from ecdsa.util import sigdecode_string
class Route(NamedTuple): class Route(NamedTuple):

View file

@ -1,7 +1,7 @@
import datetime import datetime
from loguru import logger from loguru import logger
from sqlalchemy.exc import OperationalError # type: ignore from sqlalchemy.exc import OperationalError
from lnbits import bolt11 from lnbits import bolt11

View file

@ -6,9 +6,9 @@ import time
from sqlite3 import Row from sqlite3 import Row
from typing import Dict, List, Optional from typing import Dict, List, Optional
from ecdsa import SECP256k1, SigningKey # type: ignore from ecdsa import SECP256k1, SigningKey
from fastapi import Query from fastapi import Query
from lnurl import encode as lnurl_encode # type: ignore from lnurl import encode as lnurl_encode
from loguru import logger from loguru import logger
from pydantic import BaseModel from pydantic import BaseModel

View file

@ -7,7 +7,7 @@ from urllib.parse import parse_qs, urlparse
import httpx import httpx
from fastapi import Depends, WebSocket from fastapi import Depends, WebSocket
from lnurl import LnurlErrorResponse from lnurl import LnurlErrorResponse
from lnurl import decode as decode_lnurl # type: ignore from lnurl import decode as decode_lnurl
from loguru import logger from loguru import logger
from lnbits import bolt11 from lnbits import bolt11
@ -44,7 +44,7 @@ from .crud import (
from .models import Payment from .models import Payment
try: try:
from typing import TypedDict # type: ignore from typing import TypedDict
except ImportError: # pragma: nocover except ImportError: # pragma: nocover
from typing_extensions import TypedDict from typing_extensions import TypedDict

View file

@ -16,7 +16,7 @@ from ..tasks import api_invoice_listeners
@core_app.get("/.well-known/lnurlp/{username}") @core_app.get("/.well-known/lnurlp/{username}")
async def lnaddress(username: str, request: Request): async def lnaddress(username: str, request: Request):
from lnbits.extensions.lnaddress.lnurl import lnurl_response from lnbits.extensions.lnaddress.lnurl import lnurl_response # type: ignore
domain = urlparse(str(request.url)).netloc domain = urlparse(str(request.url)).netloc
return await lnurl_response(username, domain, request) return await lnurl_response(username, domain, request)

View file

@ -9,7 +9,7 @@ from typing import Optional
from loguru import logger from loguru import logger
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy_aio.base import AsyncConnection from sqlalchemy_aio.base import AsyncConnection
from sqlalchemy_aio.strategy import ASYNCIO_STRATEGY # type: ignore from sqlalchemy_aio.strategy import ASYNCIO_STRATEGY
from lnbits.settings import settings from lnbits.settings import settings
@ -129,7 +129,7 @@ class Database(Compat):
else: else:
self.type = POSTGRES self.type = POSTGRES
import psycopg2 # type: ignore import psycopg2
def _parse_timestamp(value, _): def _parse_timestamp(value, _):
if value is None: if value is None:

View file

@ -3,7 +3,7 @@ from typing import Dict, List, Optional
from fastapi.params import Query from fastapi.params import Query
from pydantic.main import BaseModel from pydantic.main import BaseModel
from sqlalchemy.engine import base # type: ignore from sqlalchemy.engine import base
class SubmarineSwap(BaseModel): class SubmarineSwap(BaseModel):
@ -24,9 +24,9 @@ class SubmarineSwap(BaseModel):
class CreateSubmarineSwap(BaseModel): class CreateSubmarineSwap(BaseModel):
wallet: str = Query(...) # type: ignore wallet: str = Query(...)
refund_address: str = Query(...) # type: ignore refund_address: str = Query(...)
amount: int = Query(...) # type: ignore amount: int = Query(...)
class ReverseSubmarineSwap(BaseModel): class ReverseSubmarineSwap(BaseModel):
@ -48,13 +48,13 @@ class ReverseSubmarineSwap(BaseModel):
class CreateReverseSubmarineSwap(BaseModel): class CreateReverseSubmarineSwap(BaseModel):
wallet: str = Query(...) # type: ignore wallet: str = Query(...)
amount: int = Query(...) # type: ignore amount: int = Query(...)
instant_settlement: bool = Query(...) # type: ignore instant_settlement: bool = Query(...)
# validate on-address, bcrt1 for regtest addresses # validate on-address, bcrt1 for regtest addresses
onchain_address: str = Query( onchain_address: str = Query(
..., regex="^(bcrt1|bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$" ..., regex="^(bcrt1|bc1|[13])[a-zA-HJ-NP-Z0-9]{25,39}$"
) # type: ignore )
class SwapStatus(BaseModel): class SwapStatus(BaseModel):

View file

@ -111,7 +111,7 @@ async def api_submarineswap(
) )
async def api_submarineswap_refund( async def api_submarineswap_refund(
swap_id: str, swap_id: str,
g: WalletTypeInfo = Depends(require_admin_key), # type: ignore g: WalletTypeInfo = Depends(require_admin_key),
): ):
if swap_id == None: if swap_id == None:
raise HTTPException( raise HTTPException(
@ -160,7 +160,7 @@ async def api_submarineswap_refund(
) )
async def api_submarineswap_create( async def api_submarineswap_create(
data: CreateSubmarineSwap, data: CreateSubmarineSwap,
wallet: WalletTypeInfo = Depends(require_admin_key), # type: ignore wallet: WalletTypeInfo = Depends(require_admin_key),
): ):
try: try:
swap_data = await create_swap(data) swap_data = await create_swap(data)
@ -257,7 +257,7 @@ async def api_reverse_submarineswap_create(
}, },
) )
async def api_swap_status( async def api_swap_status(
swap_id: str, wallet: WalletTypeInfo = Depends(require_admin_key) # type: ignore swap_id: str, wallet: WalletTypeInfo = Depends(require_admin_key)
): ):
swap = await get_submarine_swap(swap_id) or await get_reverse_submarine_swap( swap = await get_submarine_swap(swap_id) or await get_reverse_submarine_swap(
swap_id swap_id
@ -290,7 +290,7 @@ async def api_swap_status(
response_description="list of pending swaps", response_description="list of pending swaps",
) )
async def api_check_swaps( async def api_check_swaps(
g: WalletTypeInfo = Depends(require_admin_key), # type: ignore g: WalletTypeInfo = Depends(require_admin_key),
all_wallets: bool = Query(False), all_wallets: bool = Query(False),
): ):
wallet_ids = [g.wallet.id] wallet_ids = [g.wallet.id]

View file

@ -1,6 +1,6 @@
import asyncio import asyncio
from environs import Env # type: ignore from environs import Env
from fastapi import APIRouter from fastapi import APIRouter
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles

View file

@ -6,7 +6,7 @@ from fastapi import Request
from fastapi.param_functions import Query from fastapi.param_functions import Query
from lnurl.types import LnurlPayMetadata from lnurl.types import LnurlPayMetadata
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse # type: ignore from starlette.responses import HTMLResponse
from lnbits.core.services import create_invoice from lnbits.core.services import create_invoice

View file

@ -4,11 +4,11 @@ from typing import Dict, Optional
from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse
from fastapi.param_functions import Query from fastapi.param_functions import Query
from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.types import LnurlPayMetadata
from pydantic import BaseModel from pydantic import BaseModel
from starlette.requests import Request from starlette.requests import Request
from lnbits.lnurl import encode as lnurl_encode # type: ignore from lnbits.lnurl import encode as lnurl_encode
class CreateCopilotData(BaseModel): class CreateCopilotData(BaseModel):

View file

@ -2,7 +2,7 @@ from typing import List
from fastapi import Depends, Request from fastapi import Depends, Request
from fastapi.templating import Jinja2Templates from fastapi.templating import Jinja2Templates
from starlette.responses import HTMLResponse # type: ignore from starlette.responses import HTMLResponse
from lnbits.core.models import User from lnbits.core.models import User
from lnbits.decorators import check_user_exists from lnbits.decorators import check_user_exists

View file

@ -1,10 +1,10 @@
import asyncio import asyncio
from lnbits.core.models import Payment from lnbits.core.models import Payment
from lnbits.extensions.events.models import CreateTicket
from lnbits.helpers import get_current_extension_name from lnbits.helpers import get_current_extension_name
from lnbits.tasks import register_invoice_listener from lnbits.tasks import register_invoice_listener
from .models import CreateTicket
from .views_api import api_ticket_send_ticket from .views_api import api_ticket_send_ticket

View file

@ -7,7 +7,6 @@ from lnbits.core.crud import get_user
from lnbits.core.services import create_invoice from lnbits.core.services import create_invoice
from lnbits.core.views.api import api_payment from lnbits.core.views.api import api_payment
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.events.models import CreateEvent, CreateTicket
from . import events_ext from . import events_ext
from .crud import ( from .crud import (
@ -24,6 +23,7 @@ from .crud import (
reg_ticket, reg_ticket,
update_event, update_event,
) )
from .models import CreateEvent, CreateTicket
# Events # Events

View file

@ -2,7 +2,7 @@ import json
import httpx import httpx
from lnbits.extensions.lnaddress.models import Domains from .models import Domains
async def cloudflare_create_record(domain: Domains, ip: str): async def cloudflare_create_record(domain: Domains, ip: str):

View file

@ -6,7 +6,6 @@ from fastapi import Depends, HTTPException, Query, Request
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
from lnbits.core.services import check_transaction_status, create_invoice from lnbits.core.services import check_transaction_status, create_invoice
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.lnaddress.models import CreateAddress, CreateDomain
from . import lnaddress_ext from . import lnaddress_ext
from .cloudflare import cloudflare_create_record from .cloudflare import cloudflare_create_record
@ -23,6 +22,7 @@ from .crud import (
get_domains, get_domains,
update_domain, update_domain,
) )
from .models import CreateAddress, CreateDomain
# DOMAINS # DOMAINS

View file

@ -5,7 +5,7 @@ from fastapi.param_functions import Security
from fastapi.security.api_key import APIKeyHeader from fastapi.security.api_key import APIKeyHeader
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.decorators import WalletTypeInfo, get_key_type # type: ignore from lnbits.decorators import WalletTypeInfo, get_key_type
api_key_header_auth = APIKeyHeader( api_key_header_auth = APIKeyHeader(
name="AUTHORIZATION", name="AUTHORIZATION",

View file

@ -8,7 +8,6 @@ from lnbits.core.crud import get_user
from lnbits.core.services import create_invoice from lnbits.core.services import create_invoice
from lnbits.core.views.api import api_payment from lnbits.core.views.api import api_payment
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.lnticket.models import CreateFormData, CreateTicketData
from . import lnticket_ext from . import lnticket_ext
from .crud import ( from .crud import (
@ -23,6 +22,7 @@ from .crud import (
set_ticket_paid, set_ticket_paid,
update_form, update_form,
) )
from .models import CreateFormData, CreateTicketData
# FORMS # FORMS

View file

@ -4,7 +4,6 @@ from fastapi import Depends, HTTPException, Query, Request
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key
from lnbits.extensions.lnurldevice import lnurldevice_ext
from lnbits.utils.exchange_rates import currencies from lnbits.utils.exchange_rates import currencies
from . import lnurldevice_ext from . import lnurldevice_ext

View file

@ -3,11 +3,7 @@ import math
from http import HTTPStatus from http import HTTPStatus
from fastapi import Request from fastapi import Request
from lnurl import ( # type: ignore from lnurl import LnurlErrorResponse, LnurlPayActionResponse, LnurlPayResponse
LnurlErrorResponse,
LnurlPayActionResponse,
LnurlPayResponse,
)
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core.services import create_invoice from lnbits.core.services import create_invoice

View file

@ -4,11 +4,11 @@ from typing import Dict, Optional
from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse from urllib.parse import ParseResult, parse_qs, urlencode, urlparse, urlunparse
from fastapi.param_functions import Query from fastapi.param_functions import Query
from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.types import LnurlPayMetadata
from pydantic import BaseModel from pydantic import BaseModel
from starlette.requests import Request from starlette.requests import Request
from lnbits.lnurl import encode as lnurl_encode # type: ignore from lnbits.lnurl import encode as lnurl_encode
class CreatePayLinkData(BaseModel): class CreatePayLinkData(BaseModel):

View file

@ -2,7 +2,7 @@ import json
from http import HTTPStatus from http import HTTPStatus
from fastapi import Depends, Query, Request from fastapi import Depends, Query, Request
from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl # type: ignore from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user from lnbits.core.crud import get_user

View file

@ -10,8 +10,8 @@ from collections import defaultdict
from fastapi import WebSocket from fastapi import WebSocket
from loguru import logger from loguru import logger
from lnbits.extensions.market.crud import create_chat_message from .crud import create_chat_message
from lnbits.extensions.market.models import CreateChatMessage from .models import CreateChatMessage
class Notifier: class Notifier:

View file

@ -16,11 +16,9 @@ from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse from starlette.responses import HTMLResponse
from lnbits.core.models import User from lnbits.core.models import User
from lnbits.decorators import check_user_exists # type: ignore from lnbits.decorators import check_user_exists
from lnbits.extensions.market import market_ext, market_renderer
from lnbits.extensions.market.models import CreateChatMessage, SetSettings
from lnbits.extensions.market.notifier import Notifier
from . import market_ext, market_renderer
from .crud import ( from .crud import (
create_chat_message, create_chat_message,
create_market_settings, create_market_settings,
@ -35,6 +33,8 @@ from .crud import (
get_market_zones, get_market_zones,
update_market_product_stock, update_market_product_stock,
) )
from .models import CreateChatMessage, SetSettings
from .notifier import Notifier
templates = Jinja2Templates(directory="templates") templates = Jinja2Templates(directory="templates")

View file

@ -1,4 +1,3 @@
# type: ignore
from os import getenv from os import getenv
from fastapi import Depends, Request from fastapi import Depends, Request
@ -36,5 +35,5 @@ ngrok_tunnel = ngrok.connect(port)
@ngrok_ext.get("/") @ngrok_ext.get("/")
async def index(request: Request, user: User = Depends(check_user_exists)): async def index(request: Request, user: User = Depends(check_user_exists)):
return ngrok_renderer().TemplateResponse( return ngrok_renderer().TemplateResponse(
"ngrok/index.html", {"request": request, "ngrok": string5, "user": user.dict()} "ngrok/index.html", {"request": request, "ngrok": string5, "user": user.dict()} # type: ignore
) )

View file

@ -5,7 +5,7 @@ from http import HTTPStatus
from fastapi import Request from fastapi import Request
from fastapi.param_functions import Query from fastapi.param_functions import Query
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from starlette.responses import HTMLResponse # type: ignore from starlette.responses import HTMLResponse
from lnbits.core.services import create_invoice, pay_invoice from lnbits.core.services import create_invoice, pay_invoice

View file

@ -5,8 +5,8 @@ from typing import Dict, Optional
from fastapi import Request from fastapi import Request
from fastapi.param_functions import Query from fastapi.param_functions import Query
from lnurl import Lnurl from lnurl import Lnurl
from lnurl import encode as lnurl_encode # type: ignore from lnurl import encode as lnurl_encode
from lnurl.types import LnurlPayMetadata # type: ignore from lnurl.types import LnurlPayMetadata
from pydantic import BaseModel from pydantic import BaseModel
from pydantic.main import BaseModel from pydantic.main import BaseModel

View file

@ -1,7 +1,7 @@
from http import HTTPStatus from http import HTTPStatus
from fastapi import Depends, Query, Request from fastapi import Depends, Query, Request
from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl # type: ignore from lnurl.exceptions import InvalidUrl as LnurlInvalidUrl
from starlette.exceptions import HTTPException from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user from lnbits.core.crud import get_user

View file

@ -7,7 +7,7 @@ from lnbits.core.services import create_invoice
from lnbits.core.views.api import api_payment from lnbits.core.views.api import api_payment
from lnbits.helpers import urlsafe_short_hash from lnbits.helpers import urlsafe_short_hash
from ..watchonly.crud import get_config, get_fresh_address from ..watchonly.crud import get_config, get_fresh_address # type: ignore
from . import db from . import db
from .helpers import fetch_onchain_balance from .helpers import fetch_onchain_balance
from .models import Charges, CreateCharge, SatsPayThemes from .models import Charges, CreateCharge, SatsPayThemes

View file

@ -4,11 +4,10 @@ import json
from loguru import logger from loguru import logger
from lnbits.core.models import Payment from lnbits.core.models import Payment
from lnbits.extensions.satspay.crud import check_address_balance, get_charge
from lnbits.helpers import get_current_extension_name from lnbits.helpers import get_current_extension_name
from lnbits.tasks import register_invoice_listener from lnbits.tasks import register_invoice_listener
from .crud import update_charge from .crud import check_address_balance, get_charge, update_charge
from .helpers import call_webhook from .helpers import call_webhook

View file

@ -6,10 +6,10 @@ from starlette.responses import HTMLResponse
from lnbits.core.models import User from lnbits.core.models import User
from lnbits.decorators import check_user_exists from lnbits.decorators import check_user_exists
from lnbits.extensions.satspay.helpers import public_charge
from . import satspay_ext, satspay_renderer from . import satspay_ext, satspay_renderer
from .crud import get_charge, get_theme from .crud import get_charge, get_theme
from .helpers import public_charge
templates = Jinja2Templates(directory="templates") templates = Jinja2Templates(directory="templates")

View file

@ -11,8 +11,8 @@ from lnbits.decorators import (
require_admin_key, require_admin_key,
require_invoice_key, require_invoice_key,
) )
from lnbits.extensions.satspay import satspay_ext
from . import satspay_ext
from .crud import ( from .crud import (
check_address_balance, check_address_balance,
create_charge, create_charge,

View file

@ -3,7 +3,7 @@ from sqlite3 import Row
from pydantic import BaseModel from pydantic import BaseModel
from starlette.requests import Request from starlette.requests import Request
from lnbits.lnurl import encode as lnurl_encode # type: ignore from lnbits.lnurl import encode as lnurl_encode
class CreateScrubLink(BaseModel): class CreateScrubLink(BaseModel):

View file

@ -5,7 +5,6 @@ from fastapi import Depends, HTTPException, Query
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
from lnbits.core.services import check_transaction_status, create_invoice from lnbits.core.services import check_transaction_status, create_invoice
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.smtp.models import CreateEmail, CreateEmailaddress
from . import smtp_ext from . import smtp_ext
from .crud import ( from .crud import (
@ -19,6 +18,7 @@ from .crud import (
get_emails, get_emails,
update_emailaddress, update_emailaddress,
) )
from .models import CreateEmail, CreateEmailaddress
from .smtp import valid_email from .smtp import valid_email

View file

@ -7,6 +7,7 @@ from lnbits.core.crud import get_wallet
from lnbits.db import SQLITE from lnbits.db import SQLITE
from lnbits.helpers import urlsafe_short_hash from lnbits.helpers import urlsafe_short_hash
# todo: use the API, not direct import
from ..satspay.crud import delete_charge # type: ignore from ..satspay.crud import delete_charge # type: ignore
from . import db from . import db
from .models import CreateService, Donation, Service from .models import CreateService, Donation, Service

View file

@ -7,15 +7,13 @@ from starlette.responses import RedirectResponse
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.satspay.models import CreateCharge
from lnbits.extensions.streamalerts.models import ( # todo: use the API, not direct import
CreateDonation, from lnbits.extensions.satspay.models import CreateCharge # type: ignore
CreateService,
ValidateDonation,
)
from lnbits.utils.exchange_rates import btc_price from lnbits.utils.exchange_rates import btc_price
from ..satspay.crud import create_charge, get_charge # todo: use the API, not direct import
from ..satspay.crud import create_charge, get_charge # type: ignore
from . import streamalerts_ext from . import streamalerts_ext
from .crud import ( from .crud import (
authenticate_service, authenticate_service,
@ -33,6 +31,7 @@ from .crud import (
update_donation, update_donation,
update_service, update_service,
) )
from .models import CreateDonation, CreateService, ValidateDonation
@streamalerts_ext.post("/api/v1/services") @streamalerts_ext.post("/api/v1/services")

View file

@ -2,7 +2,7 @@ import json
import httpx import httpx
from lnbits.extensions.subdomains.models import Domains from .models import Domains
async def cloudflare_create_subdomain( async def cloudflare_create_subdomain(

View file

@ -30,7 +30,7 @@ async def on_invoice_paid(payment: Payment) -> None:
### Create subdomain ### Create subdomain
cf_response = await cloudflare_create_subdomain( cf_response = await cloudflare_create_subdomain(
domain=domain, domain=domain, # type: ignore
subdomain=subdomain.subdomain, subdomain=subdomain.subdomain,
record_type=subdomain.record_type, record_type=subdomain.record_type,
ip=subdomain.ip, ip=subdomain.ip,

View file

@ -6,7 +6,6 @@ from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
from lnbits.core.services import check_transaction_status, create_invoice from lnbits.core.services import check_transaction_status, create_invoice
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from lnbits.extensions.subdomains.models import CreateDomain, CreateSubdomain
from . import subdomains_ext from . import subdomains_ext
from .cloudflare import cloudflare_create_subdomain, cloudflare_deletesubdomain from .cloudflare import cloudflare_create_subdomain, cloudflare_deletesubdomain
@ -22,6 +21,7 @@ from .crud import (
get_subdomains, get_subdomains,
update_domain, update_domain,
) )
from .models import CreateDomain, CreateSubdomain
# domainS # domainS

View file

@ -2,6 +2,7 @@ from typing import Optional
from lnbits.db import SQLITE from lnbits.db import SQLITE
# todo: use the API, not direct import
from ..satspay.crud import delete_charge # type: ignore from ..satspay.crud import delete_charge # type: ignore
from . import db from . import db
from .models import Tip, TipJar, createTipJar from .models import Tip, TipJar, createTipJar

View file

@ -6,8 +6,9 @@ from starlette.exceptions import HTTPException
from lnbits.core.crud import get_user from lnbits.core.crud import get_user
from lnbits.decorators import WalletTypeInfo, get_key_type from lnbits.decorators import WalletTypeInfo, get_key_type
from ..satspay.crud import create_charge # todo: use the API, not direct import
from ..satspay.models import CreateCharge from ..satspay.crud import create_charge # type: ignore
from ..satspay.models import CreateCharge # type: ignore
from . import tipjar_ext from . import tipjar_ext
from .crud import ( from .crud import (
create_tip, create_tip,

View file

@ -11,8 +11,8 @@ from embit.transaction import Transaction, TransactionInput, TransactionOutput
from fastapi import Depends, HTTPException, Query, Request from fastapi import Depends, HTTPException, Query, Request
from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key from lnbits.decorators import WalletTypeInfo, get_key_type, require_admin_key
from lnbits.extensions.watchonly import watchonly_ext
from . import watchonly_ext
from .crud import ( from .crud import (
create_config, create_config,
create_fresh_addresses, create_fresh_addresses,

View file

@ -4,7 +4,7 @@ import os
from typing import Any, List, NamedTuple, Optional from typing import Any, List, NamedTuple, Optional
import jinja2 import jinja2
import shortuuid # type: ignore import shortuuid
from lnbits.jinja2_templating import Jinja2Templates from lnbits.jinja2_templating import Jinja2Templates
from lnbits.requestvars import g from lnbits.requestvars import g

View file

@ -86,7 +86,6 @@ lnbits = "lnbits.server:main"
profile = "black" profile = "black"
[tool.mypy] [tool.mypy]
ignore_missing_imports = "True"
files = "lnbits" files = "lnbits"
exclude = """(?x)( exclude = """(?x)(
^lnbits/extensions/bleskomat. ^lnbits/extensions/bleskomat.
@ -94,6 +93,27 @@ exclude = """(?x)(
| ^lnbits/wallets/lnd_grpc_files. | ^lnbits/wallets/lnd_grpc_files.
)""" )"""
[[tool.mypy.overrides]]
module = [
"embit.*",
"secp256k1.*",
"uvicorn.*",
"sqlalchemy.*",
"sqlalchemy_aio.*",
"websocket.*",
"websockets.*",
"pyqrcode.*",
"cashu.*",
"shortuuid.*",
"grpc.*",
"lnurl.*",
"bitstring.*",
"ecdsa.*",
"psycopg2.*",
"pyngrok.*"
]
ignore_missing_imports = "True"
[tool.pytest.ini_options] [tool.pytest.ini_options]
addopts = "--durations=1 -s --cov=lnbits --cov-report=xml" addopts = "--durations=1 -s --cov=lnbits --cov-report=xml"
testpaths = [ testpaths = [