The following issues were found

coq/ci/load.py
14 issues
Unable to import 'std2.asyncio.subprocess'
Error

Line: 8 Column: 1

              from typing import Any, Literal, MutableMapping, MutableSequence, Tuple
from urllib.parse import urlparse

from std2.asyncio.subprocess import call
from std2.pickle import new_decoder, new_encoder
from std2.tree import recur_sort
from yaml import safe_load

from ..consts import COMPILATION_YML, TMP_DIR

            

Reported by Pylint.

Unable to import 'std2.pickle'
Error

Line: 9 Column: 1

              from urllib.parse import urlparse

from std2.asyncio.subprocess import call
from std2.pickle import new_decoder, new_encoder
from std2.tree import recur_sort
from yaml import safe_load

from ..consts import COMPILATION_YML, TMP_DIR
from ..shared.context import EMPTY_CONTEXT

            

Reported by Pylint.

Unable to import 'std2.tree'
Error

Line: 10 Column: 1

              
from std2.asyncio.subprocess import call
from std2.pickle import new_decoder, new_encoder
from std2.tree import recur_sort
from yaml import safe_load

from ..consts import COMPILATION_YML, TMP_DIR
from ..shared.context import EMPTY_CONTEXT
from ..shared.types import SnippetEdit

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              from std2.tree import recur_sort
from yaml import safe_load

from ..consts import COMPILATION_YML, TMP_DIR
from ..shared.context import EMPTY_CONTEXT
from ..shared.types import SnippetEdit
from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 14 Column: 1

              from yaml import safe_load

from ..consts import COMPILATION_YML, TMP_DIR
from ..shared.context import EMPTY_CONTEXT
from ..shared.types import SnippetEdit
from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError
from ..snippets.types import ASnips, ParsedSnippet

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 15 Column: 1

              
from ..consts import COMPILATION_YML, TMP_DIR
from ..shared.context import EMPTY_CONTEXT
from ..shared.types import SnippetEdit
from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError
from ..snippets.types import ASnips, ParsedSnippet
from .types import Compilation

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 16 Column: 1

              from ..consts import COMPILATION_YML, TMP_DIR
from ..shared.context import EMPTY_CONTEXT
from ..shared.types import SnippetEdit
from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError
from ..snippets.types import ASnips, ParsedSnippet
from .types import Compilation


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 17 Column: 1

              from ..shared.context import EMPTY_CONTEXT
from ..shared.types import SnippetEdit
from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError
from ..snippets.types import ASnips, ParsedSnippet
from .types import Compilation



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 18 Column: 1

              from ..shared.types import SnippetEdit
from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError
from ..snippets.types import ASnips, ParsedSnippet
from .types import Compilation


def _p_name(uri: str) -> Path:

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 19 Column: 1

              from ..snippets.loaders.load import load as load_from_paths
from ..snippets.parse import parse
from ..snippets.parsers.parser import ParseError
from ..snippets.types import ASnips, ParsedSnippet
from .types import Compilation


def _p_name(uri: str) -> Path:
    return TMP_DIR / Path(urlparse(uri).path).name

            

Reported by Pylint.

coq/databases/tmux/database.py
14 issues
Unable to import 'std2.asyncio'
Error

Line: 8 Column: 1

              from threading import Lock
from typing import Iterable, Iterator, Mapping

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...consts import TMUX_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options

            

Reported by Pylint.

Unable to import 'std2.sqlite3'
Error

Line: 9 Column: 1

              from typing import Iterable, Iterator, Mapping

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...consts import TMUX_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...consts import TMUX_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              from std2.sqlite3 import with_transaction

from ...consts import TMUX_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              
from ...consts import TMUX_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 14 Column: 1

              from ...consts import TMUX_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


def _init() -> Connection:

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 15 Column: 1

              from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


def _init() -> Connection:
    conn = Connection(TMUX_DB, isolation_level=None)

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 16 Column: 1

              from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


def _init() -> Connection:
    conn = Connection(TMUX_DB, isolation_level=None)
    init_db(conn)

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from asyncio import CancelledError
from concurrent.futures import Executor
from contextlib import closing
from sqlite3 import Connection, OperationalError
from threading import Lock
from typing import Iterable, Iterator, Mapping

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

            

Reported by Pylint.

Missing class docstring
Error

Line: 27 Column: 1

                  return conn


class TMDB:
    def __init__(self, pool: Executor) -> None:
        self._lock = Lock()
        self._ex = SingleThreadExecutor(pool)
        self._conn: Connection = self._ex.submit(_init)


            

Reported by Pylint.

coq/clients/tmux/worker.py
13 issues
Unable to import 'pynvim_pp.lib'
Error

Line: 4 Column: 1

              from shutil import which
from typing import AsyncIterator

from pynvim_pp.lib import go

from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 6 Column: 1

              
from pynvim_pp.lib import go

from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 7 Column: 1

              from pynvim_pp.lib import go

from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit
from ...tmux.parse import cur, snapshot

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 8 Column: 1

              
from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit
from ...tmux.parse import cur, snapshot


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 9 Column: 1

              from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit
from ...tmux.parse import cur, snapshot



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 10 Column: 1

              from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit
from ...tmux.parse import cur, snapshot


class Worker(BaseWorker[WordbankClient, TMDB]):

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit
from ...tmux.parse import cur, snapshot


class Worker(BaseWorker[WordbankClient, TMDB]):
    def __init__(

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              from ...shared.settings import WordbankClient
from ...shared.timeit import timeit
from ...shared.types import Completion, Context, Edit
from ...tmux.parse import cur, snapshot


class Worker(BaseWorker[WordbankClient, TMDB]):
    def __init__(
        self, supervisor: Supervisor, options: WordbankClient, misc: TMDB

            

Reported by Pylint.

Unused which imported from shutil
Error

Line: 1 Column: 1

              from shutil import which
from typing import AsyncIterator

from pynvim_pp.lib import go

from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from shutil import which
from typing import AsyncIterator

from pynvim_pp.lib import go

from ...databases.tmux.database import TMDB
from ...shared.runtime import Supervisor
from ...shared.runtime import Worker as BaseWorker
from ...shared.settings import WordbankClient

            

Reported by Pylint.

coq/shared/sql.py
13 issues
Unable to import 'std2.pathlib'
Error

Line: 16 Column: 1

                  cast,
)

from std2.pathlib import AnyPath
from std2.sqlite3 import add_functions, escape

from .fuzzy import quick_ratio

BIGGEST_INT = 2 ** 63 - 1

            

Reported by Pylint.

Unable to import 'std2.sqlite3'
Error

Line: 17 Column: 1

              )

from std2.pathlib import AnyPath
from std2.sqlite3 import add_functions, escape

from .fuzzy import quick_ratio

BIGGEST_INT = 2 ** 63 - 1


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 19 Column: 1

              from std2.pathlib import AnyPath
from std2.sqlite3 import add_functions, escape

from .fuzzy import quick_ratio

BIGGEST_INT = 2 ** 63 - 1


class _Loader(Protocol):

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from functools import lru_cache
from json import dumps
from pathlib import Path
from sqlite3.dbapi2 import Connection
from typing import (
    Any,
    Iterator,
    MutableSequence,
    MutableSet,

            

Reported by Pylint.

Too few public methods (1/2)
Error

Line: 24 Column: 1

              BIGGEST_INT = 2 ** 63 - 1


class _Loader(Protocol):
    def __call__(self, *paths: AnyPath) -> str:
        ...


def loader(base: Path) -> _Loader:

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 29 Column: 1

                      ...


def loader(base: Path) -> _Loader:
    @lru_cache(maxsize=None)
    def cont(*paths: AnyPath) -> str:
        path = (base / Path(*paths)).with_suffix(".sql")
        return path.read_text("UTF-8")


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 48 Column: 5

                      self._qs: MutableSet[float] = set()
        self._acc: MutableSequence[float] = []

    def step(self, value: Optional[float], *quantiles: float) -> None:
        for q in quantiles:
            self._qs.add(q)

        if value is not None:
            self._acc.append(value)

            

Reported by Pylint.

Variable name "q" doesn't conform to snake_case naming style
Error

Line: 49 Column: 13

                      self._acc: MutableSequence[float] = []

    def step(self, value: Optional[float], *quantiles: float) -> None:
        for q in quantiles:
            self._qs.add(q)

        if value is not None:
            self._acc.append(value)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 55 Column: 5

                      if value is not None:
            self._acc.append(value)

    def finalize(self) -> str:
        def cont() -> Iterator[Tuple[int, Optional[float]]]:
            ordered = sorted(self._acc)
            for q in self._qs:
                assert q >= 0 and q <= 1
                key = round(q * 100)

            

Reported by Pylint.

Variable name "q" doesn't conform to snake_case naming style
Error

Line: 58 Column: 17

                  def finalize(self) -> str:
        def cont() -> Iterator[Tuple[int, Optional[float]]]:
            ordered = sorted(self._acc)
            for q in self._qs:
                assert q >= 0 and q <= 1
                key = round(q * 100)
                if ordered:
                    idx = round((len(ordered) - 1) * q)
                    yield key, ordered[idx]

            

Reported by Pylint.

coq/clients/t9/install.py
13 issues
Unable to import 'pynvim_pp.logging'
Error

Line: 12 Column: 1

              from tempfile import NamedTemporaryFile
from urllib.error import URLError

from pynvim_pp.logging import log
from std2.asyncio import run_in_executor
from std2.platform import OS, os
from std2.urllib import urlopen

from ...consts import CLIENTS_DIR, TMP_DIR

            

Reported by Pylint.

Unable to import 'std2.asyncio'
Error

Line: 13 Column: 1

              from urllib.error import URLError

from pynvim_pp.logging import log
from std2.asyncio import run_in_executor
from std2.platform import OS, os
from std2.urllib import urlopen

from ...consts import CLIENTS_DIR, TMP_DIR


            

Reported by Pylint.

Unable to import 'std2.platform'
Error

Line: 14 Column: 1

              
from pynvim_pp.logging import log
from std2.asyncio import run_in_executor
from std2.platform import OS, os
from std2.urllib import urlopen

from ...consts import CLIENTS_DIR, TMP_DIR

T9_DIR = CLIENTS_DIR / "t9"

            

Reported by Pylint.

Unable to import 'std2.urllib'
Error

Line: 15 Column: 1

              from pynvim_pp.logging import log
from std2.asyncio import run_in_executor
from std2.platform import OS, os
from std2.urllib import urlopen

from ...consts import CLIENTS_DIR, TMP_DIR

T9_DIR = CLIENTS_DIR / "t9"
_LOCK = T9_DIR / "version.lock"

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 17 Column: 1

              from std2.platform import OS, os
from std2.urllib import urlopen

from ...consts import CLIENTS_DIR, TMP_DIR

T9_DIR = CLIENTS_DIR / "t9"
_LOCK = T9_DIR / "version.lock"

_VER = "https://update.tabnine.com/version"

            

Reported by Pylint.

Else clause on loop without a break statement
Error

Line: 86 Column: 5

                      else:
            if access(T9_BIN, X_OK):
                return True
    else:
        return False

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from asyncio import sleep
from contextlib import suppress
from os import X_OK, access
from pathlib import Path
from platform import machine
from shutil import which
from socket import timeout as TimeoutE
from string import Template
from tempfile import NamedTemporaryFile

            

Reported by Pylint.

Either all return statements in a function should return an expression, or none of them should.
Error

Line: 29 Column: 1

              T9_BIN = T9_DIR / _EXEC


def _triple() -> str:
    arch = machine()
    if os is OS.linux:
        libc = "musl" if which("apk") else "gnu"
        return f"{arch}-unknown-linux-{libc}"
    elif os is OS.macos:

            

Reported by Pylint.

Unnecessary "elif" after "return"
Error

Line: 31 Column: 5

              
def _triple() -> str:
    arch = machine()
    if os is OS.linux:
        libc = "musl" if which("apk") else "gnu"
        return f"{arch}-unknown-linux-{libc}"
    elif os is OS.macos:
        return f"{arch}-apple-darwin"
    elif os is OS.windows:

            

Reported by Pylint.

Use of assert detected. The enclosed code will be removed when compiling to optimised byte code.
Security

Line: 39
Suggestion: https://bandit.readthedocs.io/en/latest/plugins/b101_assert_used.html

                  elif os is OS.windows:
        return f"{arch}-pc-windows-gnu"
    else:
        assert False


def _version(timeout: float) -> str:
    with urlopen(_VER, timeout=timeout) as resp:
        return resp.read().decode()

            

Reported by Bandit.

coq/databases/treesitter/database.py
13 issues
Unable to import 'std2.asyncio'
Error

Line: 8 Column: 1

              from threading import Lock
from typing import Iterator, Mapping, Tuple

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...consts import TREESITTER_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options

            

Reported by Pylint.

Unable to import 'std2.sqlite3'
Error

Line: 9 Column: 1

              from typing import Iterator, Mapping, Tuple

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...consts import TREESITTER_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...consts import TREESITTER_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              from std2.sqlite3 import with_transaction

from ...consts import TREESITTER_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              
from ...consts import TREESITTER_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql

_Word = str

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 14 Column: 1

              from ...consts import TREESITTER_DB
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql

_Word = str
_Kind = str

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 15 Column: 1

              from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql

_Word = str
_Kind = str
_Double = Tuple[_Word, _Kind]

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 16 Column: 1

              from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql

_Word = str
_Kind = str
_Double = Tuple[_Word, _Kind]


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from asyncio import CancelledError
from concurrent.futures import Executor
from contextlib import closing
from sqlite3 import Connection, OperationalError
from threading import Lock
from typing import Iterator, Mapping, Tuple

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

            

Reported by Pylint.

Missing class docstring
Error

Line: 31 Column: 1

                  return conn


class TDB:
    def __init__(self, pool: Executor) -> None:
        self._lock = Lock()
        self._ex = SingleThreadExecutor(pool)
        self._conn: Connection = self._ex.submit(_init)


            

Reported by Pylint.

coq/clients/cache/database.py
12 issues
Unable to import 'std2.asyncio'
Error

Line: 8 Column: 1

              from threading import Lock
from typing import Iterable, Iterator

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db

            

Reported by Pylint.

Unable to import 'std2.sqlite3'
Error

Line: 9 Column: 1

              from typing import Iterable, Iterator

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              from std2.sqlite3 import with_transaction

from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              
from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


def _init() -> Connection:

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 14 Column: 1

              from ...shared.executor import SingleThreadExecutor
from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


def _init() -> Connection:
    conn = Connection(":memory:", isolation_level=None)

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 15 Column: 1

              from ...shared.settings import Options
from ...shared.sql import BIGGEST_INT, init_db
from ...shared.timeit import timeit
from .sql import sql


def _init() -> Connection:
    conn = Connection(":memory:", isolation_level=None)
    init_db(conn)

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from asyncio import CancelledError
from concurrent.futures import Executor
from contextlib import closing
from sqlite3 import Connection, OperationalError
from threading import Lock
from typing import Iterable, Iterator

from std2.asyncio import run_in_executor
from std2.sqlite3 import with_transaction

            

Reported by Pylint.

Missing class docstring
Error

Line: 26 Column: 1

                  return conn


class Database:
    def __init__(self, pool: Executor) -> None:
        self._lock = Lock()
        self._ex = SingleThreadExecutor(pool)
        self._conn: Connection = self._ex.submit(_init)


            

Reported by Pylint.

Missing function or method docstring
Error

Line: 36 Column: 5

                      with self._lock:
            self._conn.interrupt()

    async def insert(self, words: Iterable[str]) -> None:
        def cont() -> None:
            with self._lock, closing(self._conn.cursor()) as cursor:
                with with_transaction(cursor):
                    cursor.executemany(
                        sql("insert", "word"), ({"word": word} for word in words)

            

Reported by Pylint.

coq/server/rt_types.py
12 issues
Attempted relative import beyond top-level package
Error

Line: 5 Column: 1

              from typing import AbstractSet, MutableMapping
from uuid import UUID

from ..databases.buffers.database import BDB
from ..databases.insertions.database import IDB
from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 6 Column: 1

              from uuid import UUID

from ..databases.buffers.database import BDB
from ..databases.insertions.database import IDB
from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 7 Column: 1

              
from ..databases.buffers.database import BDB
from ..databases.insertions.database import IDB
from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 8 Column: 1

              from ..databases.buffers.database import BDB
from ..databases.insertions.database import IDB
from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings
from ..shared.types import Completion

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 9 Column: 1

              from ..databases.insertions.database import IDB
from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings
from ..shared.types import Completion


            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 10 Column: 1

              from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings
from ..shared.types import Completion



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings
from ..shared.types import Completion


@dataclass(frozen=True)

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              from ..databases.tmux.database import TMDB
from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings
from ..shared.types import Completion


@dataclass(frozen=True)
class Stack:

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              from ..databases.treesitter.database import TDB
from ..shared.runtime import Supervisor, Worker
from ..shared.settings import Settings
from ..shared.types import Completion


@dataclass(frozen=True)
class Stack:
    settings: Settings

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from dataclasses import dataclass
from typing import AbstractSet, MutableMapping
from uuid import UUID

from ..databases.buffers.database import BDB
from ..databases.insertions.database import IDB
from ..databases.snippets.database import SDB
from ..databases.tags.database import CTDB
from ..databases.tmux.database import TMDB

            

Reported by Pylint.

coq/treesitter/request.py
12 issues
Unable to import 'pynvim.api.nvim'
Error

Line: 7 Column: 1

              from string import capwords
from typing import AsyncIterator, Optional, Sequence, Tuple

from pynvim.api.nvim import Nvim
from pynvim_pp.lib import async_call, go

from ..registry import atomic, rpc
from ..server.rt_types import Stack
from ..shared.timeit import timeit

            

Reported by Pylint.

Unable to import 'pynvim_pp.lib'
Error

Line: 8 Column: 1

              from typing import AsyncIterator, Optional, Sequence, Tuple

from pynvim.api.nvim import Nvim
from pynvim_pp.lib import async_call, go

from ..registry import atomic, rpc
from ..server.rt_types import Stack
from ..shared.timeit import timeit
from .types import Payload, RawPayload

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 10 Column: 1

              from pynvim.api.nvim import Nvim
from pynvim_pp.lib import async_call, go

from ..registry import atomic, rpc
from ..server.rt_types import Stack
from ..shared.timeit import timeit
from .types import Payload, RawPayload

_UIDS = count()

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 11 Column: 1

              from pynvim_pp.lib import async_call, go

from ..registry import atomic, rpc
from ..server.rt_types import Stack
from ..shared.timeit import timeit
from .types import Payload, RawPayload

_UIDS = count()
_COND: Optional[Condition] = None

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 12 Column: 1

              
from ..registry import atomic, rpc
from ..server.rt_types import Stack
from ..shared.timeit import timeit
from .types import Payload, RawPayload

_UIDS = count()
_COND: Optional[Condition] = None
_SESSION: Tuple[int, Sequence[RawPayload]] = -1, ()

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 13 Column: 1

              from ..registry import atomic, rpc
from ..server.rt_types import Stack
from ..shared.timeit import timeit
from .types import Payload, RawPayload

_UIDS = count()
_COND: Optional[Condition] = None
_SESSION: Tuple[int, Sequence[RawPayload]] = -1, ()


            

Reported by Pylint.

Unused argument 'stack'
Error

Line: 25 Column: 28

              

@rpc(blocking=False)
def _ts_notify(nvim: Nvim, stack: Stack, ses: int, reply: Sequence[RawPayload]) -> None:
    async def cont() -> None:
        global _COND, _SESSION
        _COND = _COND or Condition()

        session, _ = _SESSION

            

Reported by Pylint.

Using the global statement
Error

Line: 27 Column: 9

              @rpc(blocking=False)
def _ts_notify(nvim: Nvim, stack: Stack, ses: int, reply: Sequence[RawPayload]) -> None:
    async def cont() -> None:
        global _COND, _SESSION
        _COND = _COND or Condition()

        session, _ = _SESSION
        if ses == session:
            _SESSION = ses, reply

            

Reported by Pylint.

Using the global statement
Error

Line: 48 Column: 5

              

async def async_request(nvim: Nvim) -> AsyncIterator[Payload]:
    global _COND, _SESSION
    _COND = _COND or Condition()

    with timeit("TS"):
        _SESSION = session, _ = next(_UIDS), ()


            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from asyncio import Condition
from itertools import count
from pathlib import Path
from string import capwords
from typing import AsyncIterator, Optional, Sequence, Tuple

from pynvim.api.nvim import Nvim
from pynvim_pp.lib import async_call, go


            

Reported by Pylint.

coq/snippets/loaders/load.py
12 issues
Unable to import 'std2.pathlib'
Error

Line: 15 Column: 1

                  cast,
)

from std2.pathlib import walk

from ..types import ASnips, ParsedSnippet
from .lsp import parse as parse_lsp
from .neosnippet import parse as parse_neosnippets
from .ultisnip import parse as parse_ultisnip

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 17 Column: 1

              
from std2.pathlib import walk

from ..types import ASnips, ParsedSnippet
from .lsp import parse as parse_lsp
from .neosnippet import parse as parse_neosnippets
from .ultisnip import parse as parse_ultisnip



            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 18 Column: 1

              from std2.pathlib import walk

from ..types import ASnips, ParsedSnippet
from .lsp import parse as parse_lsp
from .neosnippet import parse as parse_neosnippets
from .ultisnip import parse as parse_ultisnip


def _load_paths(

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 19 Column: 1

              
from ..types import ASnips, ParsedSnippet
from .lsp import parse as parse_lsp
from .neosnippet import parse as parse_neosnippets
from .ultisnip import parse as parse_ultisnip


def _load_paths(
    search: Mapping[str, Path], exts: AbstractSet[str]

            

Reported by Pylint.

Attempted relative import beyond top-level package
Error

Line: 20 Column: 1

              from ..types import ASnips, ParsedSnippet
from .lsp import parse as parse_lsp
from .neosnippet import parse as parse_neosnippets
from .ultisnip import parse as parse_ultisnip


def _load_paths(
    search: Mapping[str, Path], exts: AbstractSet[str]
) -> Mapping[str, AbstractSet[Tuple[str, Path]]]:

            

Reported by Pylint.

Missing module docstring
Error

Line: 1 Column: 1

              from pathlib import Path
from typing import (
    AbstractSet,
    Iterator,
    Literal,
    Mapping,
    MutableMapping,
    MutableSequence,
    MutableSet,

            

Reported by Pylint.

Missing function or method docstring
Error

Line: 37 Column: 1

                  return meta


def load(
    lsp: Mapping[str, Path],
    neosnippet: Mapping[str, Path],
    ultisnip: Mapping[str, Path],
) -> ASnips:
    specs = {

            

Reported by Pylint.

Too many local variables (17/15)
Error

Line: 37 Column: 1

                  return meta


def load(
    lsp: Mapping[str, Path],
    neosnippet: Mapping[str, Path],
    ultisnip: Mapping[str, Path],
) -> ASnips:
    specs = {

            

Reported by Pylint.

Function name "c1" doesn't conform to snake_case naming style
Error

Line: 48 Column: 5

                      parse_ultisnip: _load_paths(ultisnip, exts={".snippets", ".snip"}),
    }

    def c1() -> Iterator[Tuple[str, str, AbstractSet[str], Sequence[ParsedSnippet]]]:
        for parser, spec in specs.items():
            for label, sp in spec.items():
                for ext, path in sp:
                    parsed = parser(path)
                    yield label, ext, *parsed

            

Reported by Pylint.

Variable name "sp" doesn't conform to snake_case naming style
Error

Line: 50 Column: 24

              
    def c1() -> Iterator[Tuple[str, str, AbstractSet[str], Sequence[ParsedSnippet]]]:
        for parser, spec in specs.items():
            for label, sp in spec.items():
                for ext, path in sp:
                    parsed = parser(path)
                    yield label, ext, *parsed

    meta: MutableMapping[

            

Reported by Pylint.