🔧 chore(pyproject.toml): comment out langfuse dependency to temporarily disable it
🔧 chore(schemas.py): remove merge conflict markers from the file 🔧 chore(custom_component.py): remove merge conflict markers from the file 🔧 chore(flow.py): remove merge conflict markers from the file 🔧 chore(langfuse.py): add exception handling for ImportError when importing Langfuse 🔧 chore(auth.py): add type hinting to pwd_context variable 🔧 chore(base.py): remove merge conflict markers from the file 🔧 chore(settings.py): remove merge conflict markers from the file 🔧 chore(conftest.py): remove merge conflict markers from the file 🔧 chore(test_cli.py): remove merge conflict markers from the file
This commit is contained in:
parent
1111bfa45d
commit
8c8b863b18
11 changed files with 790 additions and 499 deletions
1190
poetry.lock
generated
1190
poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -90,7 +90,7 @@ pydantic-settings = "^2.0.3"
|
||||||
zep-python = { version = "^1.1.0a0", allow-prereleases = true }
|
zep-python = { version = "^1.1.0a0", allow-prereleases = true }
|
||||||
pywin32 = { version = "^306", markers = "sys_platform == 'win32'" }
|
pywin32 = { version = "^306", markers = "sys_platform == 'win32'" }
|
||||||
loguru = "^0.7.1"
|
loguru = "^0.7.1"
|
||||||
langfuse = "^1.0.13"
|
# langfuse = "^1.0.13"
|
||||||
pillow = "^10.0.0"
|
pillow = "^10.0.0"
|
||||||
metal-sdk = "^2.0.2"
|
metal-sdk = "^2.0.2"
|
||||||
markupsafe = "^2.1.3"
|
markupsafe = "^2.1.3"
|
||||||
|
|
|
||||||
|
|
@ -4,15 +4,10 @@ from typing import Any, Dict, List, Optional, Union
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
from langflow.services.database.models.api_key.api_key import ApiKeyRead
|
from langflow.services.database.models.api_key.api_key import ApiKeyRead
|
||||||
from langflow.services.database.models.flow import FlowCreate, FlowRead
|
from langflow.services.database.models.flow import FlowCreate, FlowRead
|
||||||
<<<<<<< HEAD
|
|
||||||
from pydantic import BaseModel, Field, field_validator
|
|
||||||
import json
|
|
||||||
=======
|
|
||||||
from langflow.services.database.models.user import UserRead
|
from langflow.services.database.models.user import UserRead
|
||||||
from langflow.services.database.models.base import orjson_dumps
|
from langflow.services.database.models.base import orjson_dumps
|
||||||
|
|
||||||
from pydantic import BaseModel, Field, validator
|
from pydantic import BaseModel, Field, field_validator
|
||||||
>>>>>>> origin/dev
|
|
||||||
|
|
||||||
|
|
||||||
class BuildStatus(Enum):
|
class BuildStatus(Enum):
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,5 @@
|
||||||
<<<<<<< HEAD
|
from typing import Any, Callable, ClassVar, List, Optional, Union, Dict
|
||||||
from typing import Any, Callable, ClassVar, Dict, List, Optional
|
|
||||||
=======
|
|
||||||
from typing import Any, Callable, List, Optional, Union
|
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
>>>>>>> origin/dev
|
|
||||||
from fastapi import HTTPException
|
from fastapi import HTTPException
|
||||||
from langflow.interface.custom.constants import CUSTOM_COMPONENT_SUPPORTED_TYPES
|
from langflow.interface.custom.constants import CUSTOM_COMPONENT_SUPPORTED_TYPES
|
||||||
from langflow.interface.custom.component import Component
|
from langflow.interface.custom.component import Component
|
||||||
|
|
@ -25,16 +21,9 @@ class CustomComponent(Component, extra=Extra.allow):
|
||||||
code_class_base_inheritance: ClassVar[Dict] = "CustomComponent"
|
code_class_base_inheritance: ClassVar[Dict] = "CustomComponent"
|
||||||
function_entrypoint_name: ClassVar[Dict] = "build"
|
function_entrypoint_name: ClassVar[Dict] = "build"
|
||||||
function: Optional[Callable] = None
|
function: Optional[Callable] = None
|
||||||
<<<<<<< HEAD
|
return_type_valid_list: List[str] = list(CUSTOM_COMPONENT_SUPPORTED_TYPES.keys())
|
||||||
return_type_valid_list: ClassVar[Dict] = list(
|
|
||||||
CUSTOM_COMPONENT_SUPPORTED_TYPES.keys()
|
|
||||||
)
|
|
||||||
repr_value: Optional[str] = ""
|
|
||||||
=======
|
|
||||||
return_type_valid_list = list(CUSTOM_COMPONENT_SUPPORTED_TYPES.keys())
|
|
||||||
repr_value: Optional[Any] = ""
|
repr_value: Optional[Any] = ""
|
||||||
user_id: Optional[Union[UUID, str]] = None
|
user_id: Optional[Union[UUID, str]] = None
|
||||||
>>>>>>> origin/dev
|
|
||||||
|
|
||||||
def __init__(self, **data):
|
def __init__(self, **data):
|
||||||
super().__init__(**data)
|
super().__init__(**data)
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,6 @@
|
||||||
# Path: src/backend/langflow/database/models/flow.py
|
# Path: src/backend/langflow/database/models/flow.py
|
||||||
|
|
||||||
from langflow.services.database.models.base import SQLModelSerializable
|
from langflow.services.database.models.base import SQLModelSerializable
|
||||||
<<<<<<< HEAD:src/backend/langflow/services/database/models/flow.py
|
|
||||||
from sqlmodel import Field, JSON, Column
|
|
||||||
from uuid import UUID, uuid4
|
|
||||||
from typing import Dict, Optional
|
|
||||||
from pydantic import field_validator
|
|
||||||
=======
|
|
||||||
from pydantic import validator
|
from pydantic import validator
|
||||||
from sqlmodel import Field, JSON, Column, Relationship
|
from sqlmodel import Field, JSON, Column, Relationship
|
||||||
from uuid import UUID, uuid4
|
from uuid import UUID, uuid4
|
||||||
|
|
@ -14,7 +8,6 @@ from typing import Dict, Optional, TYPE_CHECKING
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from langflow.services.database.models.user import User
|
from langflow.services.database.models.user import User
|
||||||
>>>>>>> origin/dev:src/backend/langflow/services/database/models/flow/flow.py
|
|
||||||
|
|
||||||
|
|
||||||
class FlowBase(SQLModelSerializable):
|
class FlowBase(SQLModelSerializable):
|
||||||
|
|
@ -22,15 +15,8 @@ class FlowBase(SQLModelSerializable):
|
||||||
description: Optional[str] = Field(index=True, default="")
|
description: Optional[str] = Field(index=True, default="")
|
||||||
data: Optional[Dict] = Field(default=None)
|
data: Optional[Dict] = Field(default=None)
|
||||||
|
|
||||||
<<<<<<< HEAD:src/backend/langflow/services/database/models/flow.py
|
|
||||||
@field_validator("data")
|
|
||||||
@classmethod
|
|
||||||
def validate_json(cls, v):
|
|
||||||
# dict_keys(['description', 'name', 'id', 'data'])
|
|
||||||
=======
|
|
||||||
@validator("data")
|
@validator("data")
|
||||||
def validate_json(v):
|
def validate_json(v):
|
||||||
>>>>>>> origin/dev:src/backend/langflow/services/database/models/flow/flow.py
|
|
||||||
if not v:
|
if not v:
|
||||||
return v
|
return v
|
||||||
if not isinstance(v, dict):
|
if not isinstance(v, dict):
|
||||||
|
|
|
||||||
|
|
@ -17,23 +17,27 @@ class LangfuseInstance:
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def create(cls):
|
def create(cls):
|
||||||
logger.debug("Creating Langfuse instance")
|
try:
|
||||||
from langfuse import Langfuse # type: ignore
|
logger.debug("Creating Langfuse instance")
|
||||||
|
from langfuse import Langfuse # type: ignore
|
||||||
|
|
||||||
settings_manager = get_settings_service()
|
settings_manager = get_settings_service()
|
||||||
|
|
||||||
if (
|
if (
|
||||||
settings_manager.settings.LANGFUSE_PUBLIC_KEY
|
settings_manager.settings.LANGFUSE_PUBLIC_KEY
|
||||||
and settings_manager.settings.LANGFUSE_SECRET_KEY
|
and settings_manager.settings.LANGFUSE_SECRET_KEY
|
||||||
):
|
):
|
||||||
logger.debug("Langfuse credentials found")
|
logger.debug("Langfuse credentials found")
|
||||||
cls._instance = Langfuse(
|
cls._instance = Langfuse(
|
||||||
public_key=settings_manager.settings.LANGFUSE_PUBLIC_KEY,
|
public_key=settings_manager.settings.LANGFUSE_PUBLIC_KEY,
|
||||||
secret_key=settings_manager.settings.LANGFUSE_SECRET_KEY,
|
secret_key=settings_manager.settings.LANGFUSE_SECRET_KEY,
|
||||||
host=settings_manager.settings.LANGFUSE_HOST,
|
host=settings_manager.settings.LANGFUSE_HOST,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
logger.debug("No Langfuse credentials found")
|
logger.debug("No Langfuse credentials found")
|
||||||
|
cls._instance = None
|
||||||
|
except ImportError:
|
||||||
|
logger.debug("Langfuse not installed")
|
||||||
cls._instance = None
|
cls._instance = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,8 @@ from langflow.services.settings.constants import (
|
||||||
)
|
)
|
||||||
from langflow.services.settings.utils import read_secret_from_file, write_secret_to_file
|
from langflow.services.settings.utils import read_secret_from_file, write_secret_to_file
|
||||||
|
|
||||||
from pydantic import BaseSettings, Field, validator
|
from pydantic import Field, validator
|
||||||
|
from pydantic_settings import BaseSettings
|
||||||
from passlib.context import CryptContext
|
from passlib.context import CryptContext
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
|
|
||||||
|
|
@ -39,7 +40,7 @@ class AuthSettings(BaseSettings):
|
||||||
SUPERUSER: str = DEFAULT_SUPERUSER
|
SUPERUSER: str = DEFAULT_SUPERUSER
|
||||||
SUPERUSER_PASSWORD: str = DEFAULT_SUPERUSER_PASSWORD
|
SUPERUSER_PASSWORD: str = DEFAULT_SUPERUSER_PASSWORD
|
||||||
|
|
||||||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
pwd_context: CryptContext = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
validate_assignment = True
|
validate_assignment = True
|
||||||
|
|
|
||||||
|
|
@ -7,14 +7,9 @@ from typing import Optional, List
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
<<<<<<< HEAD
|
|
||||||
from pydantic_settings import SettingsConfigDict, BaseSettings
|
|
||||||
from pydantic import field_validator, validator
|
from pydantic import field_validator, validator
|
||||||
from langflow.utils.logger import logger
|
from pydantic_settings import BaseSettings, SettingsConfigDict
|
||||||
=======
|
|
||||||
from pydantic import BaseSettings, root_validator, validator
|
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
>>>>>>> origin/dev
|
|
||||||
|
|
||||||
# BASE_COMPONENTS_PATH = str(Path(__file__).parent / "components")
|
# BASE_COMPONENTS_PATH = str(Path(__file__).parent / "components")
|
||||||
BASE_COMPONENTS_PATH = str(Path(__file__).parent.parent.parent / "components")
|
BASE_COMPONENTS_PATH = str(Path(__file__).parent.parent.parent / "components")
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,8 @@ from typing import Optional, List
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
from pydantic import BaseSettings, root_validator, validator
|
from pydantic import root_validator, validator
|
||||||
|
from pydantic_settings import BaseSettings
|
||||||
from langflow.utils.logger import logger
|
from langflow.utils.logger import logger
|
||||||
|
|
||||||
BASE_COMPONENTS_PATH = str(Path(__file__).parent / "components")
|
BASE_COMPONENTS_PATH = str(Path(__file__).parent / "components")
|
||||||
|
|
|
||||||
|
|
@ -165,12 +165,6 @@ def json_flow_with_prompt_and_history():
|
||||||
return f.read()
|
return f.read()
|
||||||
|
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
@pytest.fixture(name="client", scope="function", autouse=True)
|
|
||||||
def client_fixture(session: Session):
|
|
||||||
def get_session_override():
|
|
||||||
return session
|
|
||||||
=======
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
def json_vector_store():
|
def json_vector_store():
|
||||||
with open(pytest.VECTOR_STORE_PATH, "r") as f:
|
with open(pytest.VECTOR_STORE_PATH, "r") as f:
|
||||||
|
|
@ -184,7 +178,6 @@ def client_fixture(session: Session, monkeypatch):
|
||||||
db_path = Path(db_dir) / "test.db"
|
db_path = Path(db_dir) / "test.db"
|
||||||
monkeypatch.setenv("LANGFLOW_DATABASE_URL", f"sqlite:///{db_path}")
|
monkeypatch.setenv("LANGFLOW_DATABASE_URL", f"sqlite:///{db_path}")
|
||||||
monkeypatch.setenv("LANGFLOW_AUTO_LOGIN", "false")
|
monkeypatch.setenv("LANGFLOW_AUTO_LOGIN", "false")
|
||||||
>>>>>>> origin/dev
|
|
||||||
|
|
||||||
from langflow.main import create_app
|
from langflow.main import create_app
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,6 @@ def test_components_path(runner, client, default_settings):
|
||||||
["run", "--components-path", str(temp_dir), *default_settings],
|
["run", "--components-path", str(temp_dir), *default_settings],
|
||||||
)
|
)
|
||||||
assert result.exit_code == 0, result.stdout
|
assert result.exit_code == 0, result.stdout
|
||||||
<<<<<<< HEAD
|
|
||||||
settings_manager = utils.get_settings_manager()
|
|
||||||
assert str(temp_dir) in settings_manager.settings.COMPONENTS_PATH
|
|
||||||
=======
|
|
||||||
settings_service = getters.get_settings_service()
|
settings_service = getters.get_settings_service()
|
||||||
assert str(temp_dir) in settings_service.settings.COMPONENTS_PATH
|
assert str(temp_dir) in settings_service.settings.COMPONENTS_PATH
|
||||||
|
|
||||||
|
|
@ -38,4 +34,3 @@ def test_superuser(runner, client, session):
|
||||||
result = runner.invoke(app, ["superuser"], input="admin\nadmin\n")
|
result = runner.invoke(app, ["superuser"], input="admin\nadmin\n")
|
||||||
assert result.exit_code == 0, result.stdout
|
assert result.exit_code == 0, result.stdout
|
||||||
assert "Superuser created successfully." in result.stdout
|
assert "Superuser created successfully." in result.stdout
|
||||||
>>>>>>> origin/dev
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue