Merge pull request #1336 from lnbits/mypy_fix_ignore_missing_imports
fix: mypy - constrain `ignore_missing_imports = "True"`
This commit is contained in:
commit
b8dd74299d
44 changed files with 92 additions and 77 deletions
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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]
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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",
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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):
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
|
||||||
|
|
@ -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(
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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 = [
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue