updates
This commit is contained in:
115
Backend/venv/lib/python3.12/site-packages/safety/tool/main.py
Normal file
115
Backend/venv/lib/python3.12/site-packages/safety/tool/main.py
Normal file
@@ -0,0 +1,115 @@
|
||||
from typing import Any, Dict, List, Tuple
|
||||
import os.path
|
||||
from pathlib import Path
|
||||
from typing import Optional
|
||||
|
||||
from safety.constants import USER_CONFIG_DIR
|
||||
from safety.tool.utils import (
|
||||
NpmConfigurator,
|
||||
NpmProjectConfigurator,
|
||||
PipConfigurator,
|
||||
PipRequirementsConfigurator,
|
||||
PoetryConfigurator,
|
||||
PoetryPyprojectConfigurator,
|
||||
UvConfigurator,
|
||||
UvPyprojectConfigurator,
|
||||
is_os_supported,
|
||||
)
|
||||
|
||||
from safety_schemas.models.events.types import ToolType
|
||||
|
||||
from .interceptors import create_interceptor
|
||||
|
||||
import logging
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
def find_local_tool_files(directory: Path) -> List[Path]:
|
||||
configurators = [
|
||||
PipRequirementsConfigurator(),
|
||||
PoetryPyprojectConfigurator(),
|
||||
UvPyprojectConfigurator(),
|
||||
NpmProjectConfigurator(),
|
||||
]
|
||||
|
||||
results = []
|
||||
|
||||
for file_name in os.listdir(directory):
|
||||
if os.path.isfile(file_name):
|
||||
file = Path(file_name)
|
||||
for configurator in configurators:
|
||||
if configurator.is_supported(file):
|
||||
results.append(file)
|
||||
|
||||
return results
|
||||
|
||||
|
||||
def configure_system(org_slug: Optional[str]) -> List[Tuple[ToolType, Optional[Path]]]:
|
||||
configurators: List[Tuple[ToolType, Any, Dict[str, Any]]] = [
|
||||
(ToolType.PIP, PipConfigurator(), {"org_slug": org_slug}),
|
||||
(ToolType.POETRY, PoetryConfigurator(), {"org_slug": org_slug}),
|
||||
(ToolType.UV, UvConfigurator(), {"org_slug": org_slug}),
|
||||
(ToolType.NPM, NpmConfigurator(), {"org_slug": org_slug}),
|
||||
]
|
||||
|
||||
results = []
|
||||
for tool_type, configurator, kwargs in configurators:
|
||||
result = configurator.configure(**kwargs)
|
||||
results.append((tool_type, result))
|
||||
return results
|
||||
|
||||
|
||||
def reset_system():
|
||||
configurators = [
|
||||
PipConfigurator(),
|
||||
PoetryConfigurator(),
|
||||
UvConfigurator(),
|
||||
NpmConfigurator(),
|
||||
]
|
||||
|
||||
for configurator in configurators:
|
||||
configurator.reset()
|
||||
|
||||
|
||||
def configure_alias() -> Optional[List[Tuple[ToolType, Optional[Path]]]]:
|
||||
if not is_os_supported():
|
||||
logger.warning("OS not supported for alias configuration.")
|
||||
return None
|
||||
|
||||
interceptor = create_interceptor()
|
||||
result = interceptor.install_interceptors()
|
||||
|
||||
if result:
|
||||
config = Path(f"{USER_CONFIG_DIR}/.safety_profile")
|
||||
return [
|
||||
(ToolType.PIP, config),
|
||||
(ToolType.POETRY, config),
|
||||
(ToolType.UV, config),
|
||||
(ToolType.NPM, config),
|
||||
]
|
||||
|
||||
return [
|
||||
(ToolType.PIP, None),
|
||||
(ToolType.POETRY, None),
|
||||
(ToolType.UV, None),
|
||||
(ToolType.NPM, None),
|
||||
]
|
||||
|
||||
|
||||
def configure_local_directory(
|
||||
directory: Path, org_slug: Optional[str], project_id: Optional[str]
|
||||
):
|
||||
configurators = [
|
||||
PipRequirementsConfigurator(),
|
||||
PoetryPyprojectConfigurator(),
|
||||
UvPyprojectConfigurator(),
|
||||
NpmProjectConfigurator(),
|
||||
]
|
||||
|
||||
for file_name in os.listdir(directory):
|
||||
if os.path.isfile(file_name):
|
||||
file = Path(file_name)
|
||||
for configurator in configurators:
|
||||
if configurator.is_supported(file):
|
||||
configurator.configure(file, org_slug, project_id)
|
||||
Reference in New Issue
Block a user