Revert "```"

This reverts commit 29a31083e5.
This commit is contained in:
Rodrigo 2024-06-16 17:36:43 -03:00
commit 06df9381ef
11 changed files with 21 additions and 35 deletions

View file

@ -19,7 +19,6 @@ from langflow.services.database.models.folder.model import Folder
from langflow.services.database.models.user.model import User from langflow.services.database.models.user.model import User
from langflow.services.deps import get_session, get_settings_service from langflow.services.deps import get_session, get_settings_service
from langflow.services.settings.service import SettingsService from langflow.services.settings.service import SettingsService
from langflow.utils.util import utc_now
# build router # build router
router = APIRouter(prefix="/flows", tags=["Flows"]) router = APIRouter(prefix="/flows", tags=["Flows"])
@ -53,7 +52,7 @@ def create_flow(
flow.name = f"{flow.name} (1)" flow.name = f"{flow.name} (1)"
db_flow = Flow.model_validate(flow, from_attributes=True) db_flow = Flow.model_validate(flow, from_attributes=True)
db_flow.updated_at = utc_now() db_flow.updated_at = datetime.now(timezone.utc)
if db_flow.folder_id is None: if db_flow.folder_id is None:
# Make sure flows always have a folder # Make sure flows always have a folder
@ -189,7 +188,7 @@ def update_flow(
setattr(db_flow, key, value) setattr(db_flow, key, value)
webhook_component = get_webhook_component_in_flow(db_flow.data) webhook_component = get_webhook_component_in_flow(db_flow.data)
db_flow.webhook = webhook_component is not None db_flow.webhook = webhook_component is not None
db_flow.updated_at = utc_now() db_flow.updated_at = datetime.now(timezone.utc)
if db_flow.folder_id is None: if db_flow.folder_id is None:
default_folder = session.exec(select(Folder).where(Folder.name == DEFAULT_FOLDER_NAME)).first() default_folder = session.exec(select(Folder).where(Folder.name == DEFAULT_FOLDER_NAME)).first()
if default_folder: if default_folder:

View file

@ -14,7 +14,6 @@ from langflow.services.database.models.api_key.model import ApiKeyRead
from langflow.services.database.models.base import orjson_dumps from langflow.services.database.models.base import orjson_dumps
from langflow.services.database.models.flow import FlowCreate, FlowRead from langflow.services.database.models.flow import FlowCreate, FlowRead
from langflow.services.database.models.user import UserRead from langflow.services.database.models.user import UserRead
from langflow.utils.util import utc_now
class BuildStatus(Enum): class BuildStatus(Enum):
@ -264,7 +263,7 @@ class VertexBuildResponse(BaseModel):
"""JSON string of the params.""" """JSON string of the params."""
data: ResultDataResponse data: ResultDataResponse
"""Mapping of vertex ids to result dict containing the param name and result value.""" """Mapping of vertex ids to result dict containing the param name and result value."""
timestamp: Optional[datetime] = Field(default_factory=lambda: utc_now()) timestamp: Optional[datetime] = Field(default_factory=lambda: datetime.now(timezone.utc))
"""Timestamp of the build.""" """Timestamp of the build."""

View file

@ -9,7 +9,6 @@ from langflow.services.auth.utils import get_current_active_user
from langflow.services.database.models.user.model import User from langflow.services.database.models.user.model import User
from langflow.services.database.models.variable import Variable, VariableCreate, VariableRead, VariableUpdate from langflow.services.database.models.variable import Variable, VariableCreate, VariableRead, VariableUpdate
from langflow.services.deps import get_session, get_settings_service from langflow.services.deps import get_session, get_settings_service
from langflow.utils.util import utc_now
router = APIRouter(prefix="/variables", tags=["Variables"]) router = APIRouter(prefix="/variables", tags=["Variables"])
@ -90,7 +89,7 @@ def update_variable(
variable_data = variable.model_dump(exclude_unset=True) variable_data = variable.model_dump(exclude_unset=True)
for key, value in variable_data.items(): for key, value in variable_data.items():
setattr(db_variable, key, value) setattr(db_variable, key, value)
db_variable.updated_at = utc_now() db_variable.updated_at = datetime.now(timezone.utc)
session.commit() session.commit()
session.refresh(db_variable) session.refresh(db_variable)
return db_variable return db_variable

View file

@ -9,6 +9,7 @@ from pydantic import BeforeValidator, ConfigDict, Field, field_serializer
from langflow.schema.data import Data from langflow.schema.data import Data
from langflow.schema.image import Image, get_file_paths, is_image_file from langflow.schema.image import Image, get_file_paths, is_image_file
def _timestamp_to_str(timestamp: datetime) -> str: def _timestamp_to_str(timestamp: datetime) -> str:
return timestamp.strftime("%Y-%m-%d %H:%M:%S") return timestamp.strftime("%Y-%m-%d %H:%M:%S")
@ -40,7 +41,7 @@ class Message(Data):
self, self,
) -> BaseMessage: ) -> BaseMessage:
""" """
Converts the Data into a BaseMessage. Converts the Data to a BaseMessage.
Returns: Returns:
BaseMessage: The converted BaseMessage. BaseMessage: The converted BaseMessage.

View file

@ -16,8 +16,6 @@ from langflow.services.database.models.api_key.model import ApiKey
from langflow.services.database.models.user.crud import get_user_by_id, get_user_by_username, update_user_last_login_at from langflow.services.database.models.user.crud import get_user_by_id, get_user_by_username, update_user_last_login_at
from langflow.services.database.models.user.model import User from langflow.services.database.models.user.model import User
from langflow.services.deps import get_session, get_settings_service from langflow.services.deps import get_session, get_settings_service
from langflow.utils.util import utc_now
oauth2_login = OAuth2PasswordBearer(tokenUrl="api/v1/login", auto_error=False) oauth2_login = OAuth2PasswordBearer(tokenUrl="api/v1/login", auto_error=False)
@ -114,7 +112,7 @@ async def get_current_user_by_jwt(
token_type: str = payload.get("type") token_type: str = payload.get("type")
if expires := payload.get("exp", None): if expires := payload.get("exp", None):
expires_datetime = datetime.fromtimestamp(expires, timezone.utc) expires_datetime = datetime.fromtimestamp(expires, timezone.utc)
if utc_now() > expires_datetime: if datetime.now(timezone.utc) > expires_datetime:
logger.info("Token expired for user") logger.info("Token expired for user")
raise HTTPException( raise HTTPException(
status_code=status.HTTP_401_UNAUTHORIZED, status_code=status.HTTP_401_UNAUTHORIZED,
@ -191,7 +189,7 @@ def create_token(data: dict, expires_delta: timedelta):
settings_service = get_settings_service() settings_service = get_settings_service()
to_encode = data.copy() to_encode = data.copy()
expire = utc_now() + expires_delta expire = datetime.now(timezone.utc) + expires_delta
to_encode["exp"] = expire to_encode["exp"] = expire
return jwt.encode( return jwt.encode(

View file

@ -5,13 +5,14 @@ from uuid import UUID, uuid4
from pydantic import field_validator from pydantic import field_validator
from sqlmodel import Column, DateTime, Field, Relationship, SQLModel, func from sqlmodel import Column, DateTime, Field, Relationship, SQLModel, func
from langflow.utils.util import utc_now
if TYPE_CHECKING: if TYPE_CHECKING:
from langflow.services.database.models.user import User from langflow.services.database.models.user import User
def utc_now():
return datetime.now(timezone.utc)
class ApiKeyBase(SQLModel): class ApiKeyBase(SQLModel):
name: Optional[str] = Field(index=True, nullable=True, default=None) name: Optional[str] = Field(index=True, nullable=True, default=None)
last_used_at: Optional[datetime] = Field(default=None, nullable=True) last_used_at: Optional[datetime] = Field(default=None, nullable=True)

View file

@ -14,7 +14,6 @@ from sqlalchemy import UniqueConstraint
from sqlmodel import JSON, Column, Field, Relationship, SQLModel from sqlmodel import JSON, Column, Field, Relationship, SQLModel
from langflow.schema import Data from langflow.schema import Data
from langflow.utils.util import utc_now
if TYPE_CHECKING: if TYPE_CHECKING:
from langflow.services.database.models.folder import Folder from langflow.services.database.models.folder import Folder
@ -28,7 +27,7 @@ class FlowBase(SQLModel):
icon_bg_color: Optional[str] = Field(default=None, nullable=True) icon_bg_color: Optional[str] = Field(default=None, nullable=True)
data: Optional[Dict] = Field(default=None, nullable=True) data: Optional[Dict] = Field(default=None, nullable=True)
is_component: Optional[bool] = Field(default=False, nullable=True) is_component: Optional[bool] = Field(default=False, nullable=True)
updated_at: Optional[datetime] = Field(default_factory=lambda: utc_now(), nullable=True) updated_at: Optional[datetime] = Field(default_factory=lambda: datetime.now(timezone.utc), nullable=True)
webhook: Optional[bool] = Field(default=False, nullable=True, description="Can be used on the webhook endpoint") webhook: Optional[bool] = Field(default=False, nullable=True, description="Can be used on the webhook endpoint")
endpoint_name: Optional[str] = Field(default=None, nullable=True, index=True) endpoint_name: Optional[str] = Field(default=None, nullable=True, index=True)

View file

@ -9,7 +9,6 @@ from sqlmodel import Session, select
from langflow.services.database.models.user.model import User, UserUpdate from langflow.services.database.models.user.model import User, UserUpdate
from langflow.services.deps import get_session from langflow.services.deps import get_session
from langflow.utils.util import utc_now
def get_user_by_username(db: Session, username: str) -> Union[User, None]: def get_user_by_username(db: Session, username: str) -> Union[User, None]:
@ -38,7 +37,7 @@ def update_user(user_db: Optional[User], user: UserUpdate, db: Session = Depends
if not changed: if not changed:
raise HTTPException(status_code=status.HTTP_304_NOT_MODIFIED, detail="Nothing to update") raise HTTPException(status_code=status.HTTP_304_NOT_MODIFIED, detail="Nothing to update")
user_db.updated_at = utc_now() user_db.updated_at = datetime.now(timezone.utc)
flag_modified(user_db, "updated_at") flag_modified(user_db, "updated_at")
try: try:
@ -52,7 +51,7 @@ def update_user(user_db: Optional[User], user: UserUpdate, db: Session = Depends
def update_user_last_login_at(user_id: UUID, db: Session = Depends(get_session)): def update_user_last_login_at(user_id: UUID, db: Session = Depends(get_session)):
try: try:
user_data = UserUpdate(last_login_at=utc_now()) # type: ignore user_data = UserUpdate(last_login_at=datetime.now(timezone.utc)) # type: ignore
user = get_user_by_id(db, user_id) user = get_user_by_id(db, user_id)
return update_user(user, user_data, db) return update_user(user, user_data, db)
except Exception: except Exception:

View file

@ -4,8 +4,6 @@ from uuid import UUID, uuid4
from sqlmodel import Field, Relationship, SQLModel from sqlmodel import Field, Relationship, SQLModel
from langflow.utils.util import utc_now
if TYPE_CHECKING: if TYPE_CHECKING:
from langflow.services.database.models.api_key import ApiKey from langflow.services.database.models.api_key import ApiKey
from langflow.services.database.models.variable import Variable from langflow.services.database.models.variable import Variable
@ -20,8 +18,8 @@ class User(SQLModel, table=True):
profile_image: Optional[str] = Field(default=None, nullable=True) profile_image: Optional[str] = Field(default=None, nullable=True)
is_active: bool = Field(default=False) is_active: bool = Field(default=False)
is_superuser: bool = Field(default=False) is_superuser: bool = Field(default=False)
create_at: datetime = Field(default_factory=lambda: utc_now()) create_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
updated_at: datetime = Field(default_factory=lambda: utc_now()) updated_at: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
last_login_at: Optional[datetime] = Field(default=None, nullable=True) last_login_at: Optional[datetime] = Field(default=None, nullable=True)
api_keys: list["ApiKey"] = Relationship( api_keys: list["ApiKey"] = Relationship(
back_populates="user", back_populates="user",

View file

@ -4,13 +4,14 @@ from uuid import UUID, uuid4
from sqlmodel import JSON, Column, DateTime, Field, Relationship, SQLModel, func from sqlmodel import JSON, Column, DateTime, Field, Relationship, SQLModel, func
from langflow.utils.util import utc_now
if TYPE_CHECKING: if TYPE_CHECKING:
from langflow.services.database.models.user.model import User from langflow.services.database.models.user.model import User
def utc_now():
return datetime.now(timezone.utc)
class VariableBase(SQLModel): class VariableBase(SQLModel):
name: str = Field(description="Name of the variable") name: str = Field(description="Name of the variable")
value: str = Field(description="Encrypted value of the variable") value: str = Field(description="Encrypted value of the variable")

View file

@ -4,7 +4,6 @@ import re
from functools import wraps from functools import wraps
from pathlib import Path from pathlib import Path
from typing import Any, Dict, List, Optional, Union from typing import Any, Dict, List, Optional, Union
from datetime import datetime, timezone
from docstring_parser import parse from docstring_parser import parse
@ -15,13 +14,6 @@ from langflow.utils import constants
from langflow.utils.logger import logger from langflow.utils.logger import logger
def utc_now(stringify=False):
if stringify:
return datetime.now(timezone.utc).strftime("%Y-%m-%d %H:%M:%S")
return datetime.now(timezone.utc)
def unescape_string(s: str): def unescape_string(s: str):
# Replace escaped new line characters with actual new line characters # Replace escaped new line characters with actual new line characters
return s.replace("\\n", "\n") return s.replace("\\n", "\n")