Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions extensions/fine_python_ast/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
12 changes: 12 additions & 0 deletions extensions/fine_python_black/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "black (>=25.1.0,<26.0.0)"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
17 changes: 13 additions & 4 deletions extensions/fine_python_import_linter/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,21 @@ description = ""
authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">= 3.11, < 3.14"
dependencies = [
"finecode_extension_api @ git+https://github.com/finecode-dev/finecode.git#subdirectory=finecode_extension_api",
"import-linter (>=2.1,<3.0)",
]
dependencies = ["finecode_extension_api == 0.3.*", "import-linter (>=2.1,<3.0)"]


[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
12 changes: 12 additions & 0 deletions extensions/fine_python_isort/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">= 3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "isort (>=5.13, <6)"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
12 changes: 12 additions & 0 deletions extensions/fine_python_module_exports/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">= 3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "fine_python_ast==0.2.*"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
12 changes: 12 additions & 0 deletions extensions/fine_python_mypy/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "mypy (>=1.15, <2.0)"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import enum
import pathlib

import tomlkit
import tomlkit.exceptions

from finecode_extension_api.interfaces import ifilemanager, ipypackagelayoutinfoprovider, icache
from finecode_extension_api import service
Expand Down Expand Up @@ -36,7 +36,7 @@ async def _get_package_name(self, package_dir_path: pathlib.Path) -> str:
try:
package_def_dict = tomlkit.loads(package_def_file_content)
except tomlkit.exceptions.ParseError as exception:
raise ConfigParseError(f"Failed to parse package config {package_def_file}: {exception.message} at {exception.line}:{exception.col}")
raise ConfigParseError(f"Failed to parse package config {package_def_file}: toml parsing failed at {exception.line}:{exception.col}") from exception

package_raw_name = package_def_dict.get('project', {}).get('name', None)
if package_raw_name is None:
Expand Down
12 changes: 12 additions & 0 deletions extensions/fine_python_package_info/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "tomlkit==0.11.*"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,20 @@ async def run_pyrefly_lint_on_single_file(

venv_dir_path = self.extension_runner_info_provider.get_venv_dir_path_of_env(env_name=file_env)
site_package_pathes = self.extension_runner_info_provider.get_venv_site_packages(venv_dir_path=venv_dir_path)
interpreter_path = self.extension_runner_info_provider.get_venv_python_interpreter(venv_dir_path=venv_dir_path)

# --skip-interpreter-query isn't used because it is not compatible
# with --python-interpreter parameter
# --disable-search-path-heuristics=true isn't used because pyrefly doesn't
# recognize some imports without it. For example, it cannot resolve relative
# imports in root __init__.py . Needs to be investigated
cmd = [
str(self.pyrefly_bin_path),
"check",
"--output-format=json",
"--disable-search-path-heuristics=true",
"--skip-interpreter-query",
# path to python interpreter because pyrefly resolves .pth files only if
# it is provided
f"--python-interpreter='{str(interpreter_path)}'"
]

if self.config.python_version is not None:
Expand Down
12 changes: 12 additions & 0 deletions extensions/fine_python_pyrefly/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "pyrefly (>=0.30.0,<1.0.0)"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# note: ruff formatter cannot sort imports, only ruff linter with fixes:
# https://docs.astral.sh/ruff/formatter/#sorting-imports
from __future__ import annotations

import dataclasses
Expand Down
13 changes: 8 additions & 5 deletions extensions/fine_python_ruff/fine_python_ruff/lint_handler.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ class RuffLintHandlerConfig(code_action.ActionHandlerConfig):
target_version: str = "py38"
select: list[str] | None = None # Rules to enable
ignore: list[str] | None = None # Rules to disable
extend_select: list[str] | None = None
preview: bool = False


Expand Down Expand Up @@ -98,11 +99,13 @@ async def run_ruff_lint_on_single_file(
str(file_path),
]

if self.config.select:
cmd.extend(["--select", ",".join(self.config.select)])
if self.config.ignore:
cmd.extend(["--ignore", ",".join(self.config.ignore)])
if self.config.preview:
if self.config.select is not None:
cmd.append("--select=" + ",".join(self.config.select))
if self.config.extend_select is not None:
cmd.append("--extend-select=" + ",".join(self.config.extend_select))
if self.config.ignore is not None:
cmd.append("--ignore=" + ",".join(self.config.ignore))
if self.config.preview is True:
cmd.append("--preview")

cmd_str = " ".join(cmd)
Expand Down
12 changes: 12 additions & 0 deletions extensions/fine_python_ruff/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,15 @@ authors = [{ name = "Vladyslav Hnatiuk", email = "[email protected]" }]
readme = "README.md"
requires-python = ">=3.11, < 3.14"
dependencies = ["finecode_extension_api==0.3.*", "ruff (>=0.8.0,<1.0.0)"]

[dependency-groups]
dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]

[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
1 change: 1 addition & 0 deletions extensions/fine_python_virtualenv/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,4 @@ presets = [{ source = "finecode_dev_common_preset" }]
finecode_dev_common_preset = { path = "../../finecode_dev_common_preset", editable = true }
finecode = { path = "../../", editable = true }
finecode_extension_runner = { path = "../../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../../finecode_extension_api", editable = true }
1 change: 1 addition & 0 deletions finecode_builtin_handlers/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ dev_workspace = ["finecode==0.3.*", "finecode_dev_common_preset==0.2.*"]
finecode_dev_common_preset = { path = "../finecode_dev_common_preset", editable = true }
finecode = { path = "../", editable = true }
finecode_extension_runner = { path = "../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../finecode_extension_api", editable = true }

[tool.finecode]
presets = [{ source = "finecode_dev_common_preset" }]
1 change: 1 addition & 0 deletions finecode_extension_api/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ presets = [{ source = "finecode_dev_common_preset" }]
[tool.finecode.env.dev_workspace.dependencies]
finecode_dev_common_preset = { path = "../finecode_dev_common_preset", editable = true }
finecode = { path = "../", editable = true }
finecode_extension_api = { path = "./", editable = true }
finecode_extension_runner = { path = "../finecode_extension_runner", editable = true }
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,7 @@ def get_venv_dir_path_of_env(self, env_name: str) -> pathlib.Path: ...
def get_venv_site_packages(
self, venv_dir_path: pathlib.Path
) -> list[pathlib.Path]: ...

def get_venv_python_interpreter(
self, venv_dir_path: pathlib.Path
) -> pathlib.Path: ...
1 change: 1 addition & 0 deletions finecode_extension_runner/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ dev = [{ include-group = "runtime" }, "pytest==7.4.*", "debugpy==1.8.*"]
finecode_dev_common_preset = { path = "../finecode_dev_common_preset", editable = true }
finecode = { path = "../", editable = true }
finecode_extension_runner = { path = "../finecode_extension_runner", editable = true }
finecode_extension_api = { path = "../finecode_extension_api", editable = true }

[build-system]
requires = ["setuptools>=64", "setuptools-scm>=8"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,9 @@ async def run_action(
global last_run_id
run_id = last_run_id
last_run_id += 1
logger.trace(f"Run action '{request.action_name}', run id: {run_id}, partial result token: {options.partial_result_token}")
logger.trace(
f"Run action '{request.action_name}', run id: {run_id}, partial result token: {options.partial_result_token}"
)
# TODO: check whether config is set: this will be solved by passing initial
# configuration as payload of initialize
if global_state.runner_context is None:
Expand Down Expand Up @@ -558,9 +560,13 @@ async def run_subresult_coros_concurrently(
action_subresult_type = type(coro_result)
# use pydantic dataclass as constructor because it instantiates classes
# recursively, normal dataclass only on the first level
action_subresult_type_pydantic = pydantic_dataclass(action_subresult_type)
action_subresult_type_pydantic = pydantic_dataclass(
action_subresult_type
)
action_subresult_dict = dataclasses.asdict(coro_result)
action_subresult = action_subresult_type_pydantic(**action_subresult_dict)
action_subresult = action_subresult_type_pydantic(
**action_subresult_dict
)
else:
action_subresult.update(coro_result)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,7 @@ def start(
global_state.log_level = "INFO" if trace is False else "TRACE"
global_state.project_dir_path = project_path
global_state.env_name = env_name
# asyncio.run(runner_start.start_runner())

# extension runner doesn't stop with async start after closing LS client(WM). Use
# sync start until this problem is solved
runner_start.start_runner_sync(env_name)


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,8 @@ def get_venv_site_packages(self, venv_dir_path: pathlib.Path) -> list[pathlib.Pa

self._site_packages_cache[venv_dir_path] = site_packages
return site_packages

def get_venv_python_interpreter(self, venv_dir_path: pathlib.Path) -> pathlib.Path:
bin_dir_path = venv_dir_path / "bin"
interpreter_exe = bin_dir_path / "python"
return interpreter_exe
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import enum
import pathlib

from finecode_extension_api.interfaces import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ async def get_current_project_package_name(self) -> str:
project_raw_config = await self.get_current_project_raw_config()
raw_name = project_raw_config.get("project", {}).get("name", None)
if raw_name is None:
raise iprojectinfoprovider.InvalidProjectConfig("project.name not found in project config")
raise iprojectinfoprovider.InvalidProjectConfig(
"project.name not found in project config"
)

return raw_name.replace("-", "_")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ def save_logs_to_file(
file_path: Path,
log_level: str = "INFO",
rotation: str = "10 MB",
retention=3,
retention: int = 3,
stdout: bool = True,
):
if stdout is True:
Expand Down
Loading
Loading