chore: use singular style in config class name (#5489)

This commit is contained in:
Bowen Liang 2024-06-22 09:54:25 +08:00 committed by GitHub
parent 9a5c423d59
commit 8890978ad3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 82 additions and 82 deletions

View File

@ -1,6 +1,6 @@
import os import os
from configs.app_configs import DifyConfigs from configs.app_config import DifyConfig
if not os.environ.get("DEBUG") or os.environ.get("DEBUG", "false").lower() != 'true': if not os.environ.get("DEBUG") or os.environ.get("DEBUG", "false").lower() != 'true':
from gevent import monkey from gevent import monkey
@ -83,7 +83,7 @@ def create_flask_app_with_configs() -> Flask:
""" """
dify_app = DifyApp(__name__) dify_app = DifyApp(__name__)
dify_app.config.from_object(Config()) dify_app.config.from_object(Config())
dify_app.config.from_mapping(DifyConfigs().model_dump()) dify_app.config.from_mapping(DifyConfig().model_dump())
return dify_app return dify_app

View File

@ -1,14 +1,14 @@
from pydantic_settings import BaseSettings, SettingsConfigDict from pydantic_settings import BaseSettings, SettingsConfigDict
from configs.deploy import DeploymentConfigs from configs.deploy import DeploymentConfig
from configs.enterprise import EnterpriseFeatureConfigs from configs.enterprise import EnterpriseFeatureConfig
from configs.extra import ExtraServiceConfigs from configs.extra import ExtraServiceConfig
from configs.feature import FeatureConfigs from configs.feature import FeatureConfig
from configs.middleware import MiddlewareConfigs from configs.middleware import MiddlewareConfig
from configs.packaging import PackagingInfo from configs.packaging import PackagingInfo
class DifyConfigs( class DifyConfig(
# based on pydantic-settings # based on pydantic-settings
BaseSettings, BaseSettings,
@ -16,20 +16,20 @@ class DifyConfigs(
PackagingInfo, PackagingInfo,
# Deployment configs # Deployment configs
DeploymentConfigs, DeploymentConfig,
# Feature configs # Feature configs
FeatureConfigs, FeatureConfig,
# Middleware configs # Middleware configs
MiddlewareConfigs, MiddlewareConfig,
# Extra service configs # Extra service configs
ExtraServiceConfigs, ExtraServiceConfig,
# Enterprise feature configs # Enterprise feature configs
# **Before using, please contact business@dify.ai by email to inquire about licensing matters.** # **Before using, please contact business@dify.ai by email to inquire about licensing matters.**
EnterpriseFeatureConfigs, EnterpriseFeatureConfig,
): ):
model_config = SettingsConfigDict( model_config = SettingsConfigDict(

View File

@ -1,7 +1,7 @@
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
class DeploymentConfigs(BaseModel): class DeploymentConfig(BaseModel):
""" """
Deployment configs Deployment configs
""" """

View File

@ -1,7 +1,7 @@
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
class EnterpriseFeatureConfigs(BaseModel): class EnterpriseFeatureConfig(BaseModel):
""" """
Enterprise feature configs. Enterprise feature configs.
**Before using, please contact business@dify.ai by email to inquire about licensing matters.** **Before using, please contact business@dify.ai by email to inquire about licensing matters.**

View File

@ -1,12 +1,12 @@
from pydantic import BaseModel from pydantic import BaseModel
from configs.extra.notion_configs import NotionConfigs from configs.extra.notion_config import NotionConfig
from configs.extra.sentry_configs import SentryConfigs from configs.extra.sentry_config import SentryConfig
class ExtraServiceConfigs( class ExtraServiceConfig(
# place the configs in alphabet order # place the configs in alphabet order
NotionConfigs, NotionConfig,
SentryConfigs, SentryConfig,
): ):
pass pass

View File

@ -3,7 +3,7 @@ from typing import Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
class NotionConfigs(BaseModel): class NotionConfig(BaseModel):
""" """
Notion integration configs Notion integration configs
""" """

View File

@ -3,7 +3,7 @@ from typing import Optional
from pydantic import BaseModel, Field, NonNegativeFloat from pydantic import BaseModel, Field, NonNegativeFloat
class SentryConfigs(BaseModel): class SentryConfig(BaseModel):
""" """
Sentry configs Sentry configs
""" """

View File

@ -3,7 +3,7 @@ from typing import Optional
from pydantic import AliasChoices, BaseModel, Field, NonNegativeInt, PositiveInt from pydantic import AliasChoices, BaseModel, Field, NonNegativeInt, PositiveInt
class SecurityConfigs(BaseModel): class SecurityConfig(BaseModel):
""" """
Secret Key configs Secret Key configs
""" """
@ -16,7 +16,7 @@ class SecurityConfigs(BaseModel):
) )
class AppExecutionConfigs(BaseModel): class AppExecutionConfig(BaseModel):
""" """
App Execution configs App Execution configs
""" """
@ -26,7 +26,7 @@ class AppExecutionConfigs(BaseModel):
) )
class CodeExecutionSandboxConfigs(BaseModel): class CodeExecutionSandboxConfig(BaseModel):
""" """
Code Execution Sandbox configs Code Execution Sandbox configs
""" """
@ -41,7 +41,7 @@ class CodeExecutionSandboxConfigs(BaseModel):
) )
class EndpointConfigs(BaseModel): class EndpointConfig(BaseModel):
""" """
Module URL configs Module URL configs
""" """
@ -70,7 +70,7 @@ class EndpointConfigs(BaseModel):
) )
class FileAccessConfigs(BaseModel): class FileAccessConfig(BaseModel):
""" """
File Access configs File Access configs
""" """
@ -89,7 +89,7 @@ class FileAccessConfigs(BaseModel):
) )
class FileUploadConfigs(BaseModel): class FileUploadConfig(BaseModel):
""" """
File Uploading configs File Uploading configs
""" """
@ -114,7 +114,7 @@ class FileUploadConfigs(BaseModel):
) )
class HttpConfigs(BaseModel): class HttpConfig(BaseModel):
""" """
HTTP configs HTTP configs
""" """
@ -124,7 +124,7 @@ class HttpConfigs(BaseModel):
) )
class InnerAPIConfigs(BaseModel): class InnerAPIConfig(BaseModel):
""" """
Inner API configs Inner API configs
""" """
@ -139,7 +139,7 @@ class InnerAPIConfigs(BaseModel):
) )
class LoggingConfigs(BaseModel): class LoggingConfig(BaseModel):
""" """
Logging configs Logging configs
""" """
@ -171,7 +171,7 @@ class LoggingConfigs(BaseModel):
) )
class ModelLoadBalanceConfigs(BaseModel): class ModelLoadBalanceConfig(BaseModel):
""" """
Model load balance configs Model load balance configs
""" """
@ -181,7 +181,7 @@ class ModelLoadBalanceConfigs(BaseModel):
) )
class BillingConfigs(BaseModel): class BillingConfig(BaseModel):
""" """
Platform Billing Configurations Platform Billing Configurations
""" """
@ -191,7 +191,7 @@ class BillingConfigs(BaseModel):
) )
class UpdateConfigs(BaseModel): class UpdateConfig(BaseModel):
""" """
Update configs Update configs
""" """
@ -201,7 +201,7 @@ class UpdateConfigs(BaseModel):
) )
class WorkflowConfigs(BaseModel): class WorkflowConfig(BaseModel):
""" """
Workflow feature configs Workflow feature configs
""" """
@ -222,7 +222,7 @@ class WorkflowConfigs(BaseModel):
) )
class OAuthConfigs(BaseModel): class OAuthConfig(BaseModel):
""" """
oauth configs oauth configs
""" """
@ -252,7 +252,7 @@ class OAuthConfigs(BaseModel):
) )
class ModerationConfigs(BaseModel): class ModerationConfig(BaseModel):
""" """
Moderation in app configs. Moderation in app configs.
""" """
@ -264,7 +264,7 @@ class ModerationConfigs(BaseModel):
) )
class ToolConfigs(BaseModel): class ToolConfig(BaseModel):
""" """
Tool configs Tool configs
""" """
@ -275,7 +275,7 @@ class ToolConfigs(BaseModel):
) )
class MailConfigs(BaseModel): class MailConfig(BaseModel):
""" """
Mail Configurations Mail Configurations
""" """
@ -331,7 +331,7 @@ class MailConfigs(BaseModel):
) )
class RagEtlConfigs(BaseModel): class RagEtlConfig(BaseModel):
""" """
RAG ETL Configurations. RAG ETL Configurations.
""" """
@ -357,7 +357,7 @@ class RagEtlConfigs(BaseModel):
) )
class DataSetConfigs(BaseModel): class DataSetConfig(BaseModel):
""" """
Dataset configs Dataset configs
""" """
@ -368,7 +368,7 @@ class DataSetConfigs(BaseModel):
) )
class WorkspaceConfigs(BaseModel): class WorkspaceConfig(BaseModel):
""" """
Workspace configs Workspace configs
""" """
@ -379,7 +379,7 @@ class WorkspaceConfigs(BaseModel):
) )
class IndexingConfigs(BaseModel): class IndexingConfig(BaseModel):
""" """
Indexing configs. Indexing configs.
""" """
@ -390,36 +390,36 @@ class IndexingConfigs(BaseModel):
) )
class ImageFormatConfigs(BaseModel): class ImageFormatConfig(BaseModel):
MULTIMODAL_SEND_IMAGE_FORMAT: str = Field( MULTIMODAL_SEND_IMAGE_FORMAT: str = Field(
description='multi model send image format, support base64, url, default is base64', description='multi model send image format, support base64, url, default is base64',
default='base64', default='base64',
) )
class FeatureConfigs( class FeatureConfig(
# place the configs in alphabet order # place the configs in alphabet order
AppExecutionConfigs, AppExecutionConfig,
BillingConfigs, BillingConfig,
CodeExecutionSandboxConfigs, CodeExecutionSandboxConfig,
DataSetConfigs, DataSetConfig,
EndpointConfigs, EndpointConfig,
FileAccessConfigs, FileAccessConfig,
FileUploadConfigs, FileUploadConfig,
HttpConfigs, HttpConfig,
ImageFormatConfigs, ImageFormatConfig,
InnerAPIConfigs, InnerAPIConfig,
IndexingConfigs, IndexingConfig,
LoggingConfigs, LoggingConfig,
MailConfigs, MailConfig,
ModelLoadBalanceConfigs, ModelLoadBalanceConfig,
ModerationConfigs, ModerationConfig,
OAuthConfigs, OAuthConfig,
RagEtlConfigs, RagEtlConfig,
SecurityConfigs, SecurityConfig,
ToolConfigs, ToolConfig,
UpdateConfigs, UpdateConfig,
WorkflowConfigs, WorkflowConfig,
WorkspaceConfigs, WorkspaceConfig,
): ):
pass pass

View File

@ -2,7 +2,7 @@ from typing import Optional
from pydantic import BaseModel, Field from pydantic import BaseModel, Field
from configs.middleware.redis_configs import RedisConfigs from configs.middleware.redis_config import RedisConfig
from configs.middleware.vdb.chroma_configs import ChromaConfigs from configs.middleware.vdb.chroma_configs import ChromaConfigs
from configs.middleware.vdb.milvus_configs import MilvusConfigs from configs.middleware.vdb.milvus_configs import MilvusConfigs
from configs.middleware.vdb.opensearch_configs import OpenSearchConfigs from configs.middleware.vdb.opensearch_configs import OpenSearchConfigs
@ -44,10 +44,10 @@ class KeywordStoreConfigs(BaseModel):
) )
class MiddlewareConfigs( class MiddlewareConfig(
# place the configs in alphabet order # place the configs in alphabet order
KeywordStoreConfigs, KeywordStoreConfigs,
RedisConfigs, RedisConfig,
StorageConfigs, StorageConfigs,
# configs of vdb and vdb providers # configs of vdb and vdb providers

View File

@ -3,7 +3,7 @@ from typing import Optional
from pydantic import BaseModel, Field, NonNegativeInt, PositiveInt from pydantic import BaseModel, Field, NonNegativeInt, PositiveInt
class RedisConfigs(BaseModel): class RedisConfig(BaseModel):
""" """
Redis configs Redis configs
""" """

View File

@ -3,7 +3,7 @@ from textwrap import dedent
import pytest import pytest
from flask import Flask from flask import Flask
from configs.app_configs import DifyConfigs from configs.app_config import DifyConfig
EXAMPLE_ENV_FILENAME = '.env' EXAMPLE_ENV_FILENAME = '.env'
@ -19,32 +19,32 @@ def example_env_file(tmp_path, monkeypatch) -> str:
return str(file_path) return str(file_path)
def test_dify_configs_undefined_entry(example_env_file): def test_dify_config_undefined_entry(example_env_file):
# load dotenv file with pydantic-settings # load dotenv file with pydantic-settings
settings = DifyConfigs(_env_file=example_env_file) config = DifyConfig(_env_file=example_env_file)
# entries not defined in app settings # entries not defined in app settings
with pytest.raises(TypeError): with pytest.raises(TypeError):
# TypeError: 'AppSettings' object is not subscriptable # TypeError: 'AppSettings' object is not subscriptable
assert settings['LOG_LEVEL'] == 'INFO' assert config['LOG_LEVEL'] == 'INFO'
def test_dify_configs(example_env_file): def test_dify_config(example_env_file):
# load dotenv file with pydantic-settings # load dotenv file with pydantic-settings
settings = DifyConfigs(_env_file=example_env_file) config = DifyConfig(_env_file=example_env_file)
# constant values # constant values
assert settings.COMMIT_SHA == '' assert config.COMMIT_SHA == ''
# default values # default values
assert settings.EDITION == 'SELF_HOSTED' assert config.EDITION == 'SELF_HOSTED'
assert settings.API_COMPRESSION_ENABLED is False assert config.API_COMPRESSION_ENABLED is False
assert settings.SENTRY_TRACES_SAMPLE_RATE == 1.0 assert config.SENTRY_TRACES_SAMPLE_RATE == 1.0
def test_flask_configs(example_env_file): def test_flask_configs(example_env_file):
flask_app = Flask('app') flask_app = Flask('app')
flask_app.config.from_mapping(DifyConfigs(_env_file=example_env_file).model_dump()) flask_app.config.from_mapping(DifyConfig(_env_file=example_env_file).model_dump())
config = flask_app.config config = flask_app.config
# configs read from dotenv directly # configs read from dotenv directly