This commit is contained in:
parent
b89060f15f
commit
6d3c0ee39e
3
main.py
3
main.py
|
@ -8,13 +8,12 @@ from starlette.applications import Starlette
|
||||||
from starlette.routing import Route
|
from starlette.routing import Route
|
||||||
|
|
||||||
from services.rediscache import redis
|
from services.rediscache import redis
|
||||||
|
from services.schema import resolvers
|
||||||
from services.search import search_service
|
from services.search import search_service
|
||||||
from services.sentry import start_sentry
|
from services.sentry import start_sentry
|
||||||
from services.viewed import ViewedStorage
|
from services.viewed import ViewedStorage
|
||||||
from services.webhook import WebhookEndpoint
|
from services.webhook import WebhookEndpoint
|
||||||
from settings import DEV_SERVER_PID_FILE_NAME, MODE
|
from settings import DEV_SERVER_PID_FILE_NAME, MODE
|
||||||
from services.schema import resolvers
|
|
||||||
|
|
||||||
|
|
||||||
import_module('resolvers')
|
import_module('resolvers')
|
||||||
schema = make_executable_schema(load_schema_from_path('schema/'), resolvers)
|
schema = make_executable_schema(load_schema_from_path('schema/'), resolvers)
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from orm.reaction import ReactionKind
|
from orm.reaction import ReactionKind
|
||||||
|
|
||||||
|
|
||||||
RATING_REACTIONS = [
|
RATING_REACTIONS = [
|
||||||
ReactionKind.LIKE.value,
|
ReactionKind.LIKE.value,
|
||||||
ReactionKind.ACCEPT.value,
|
ReactionKind.ACCEPT.value,
|
||||||
|
|
|
@ -24,7 +24,56 @@ dogpile-cache = "^1.3.1"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
ruff = "^0.2.1"
|
ruff = "^0.2.1"
|
||||||
|
isort = "^5.13.2"
|
||||||
|
pyright = "^1.1.350"
|
||||||
|
|
||||||
[build-system]
|
[build-system]
|
||||||
requires = ["poetry-core"]
|
requires = ["poetry-core"]
|
||||||
build-backend = "poetry.core.masonry.api"
|
build-backend = "poetry.core.masonry.api"
|
||||||
|
|
||||||
|
[tool.isort]
|
||||||
|
multi_line_output = 3
|
||||||
|
include_trailing_comma = true
|
||||||
|
force_grid_wrap = 0
|
||||||
|
use_parentheses = true
|
||||||
|
ensure_newline_before_comments = true
|
||||||
|
line_length = 120
|
||||||
|
|
||||||
|
[tool.ruff]
|
||||||
|
select = ["E4", "E7", "E9", "F"]
|
||||||
|
ignore = []
|
||||||
|
line-length = 120
|
||||||
|
target-version = "py312"
|
||||||
|
|
||||||
|
[tool.pyright]
|
||||||
|
venvPath = "."
|
||||||
|
venv = ".venv"
|
||||||
|
include = ["."]
|
||||||
|
useLibraryCodeForTypes = false
|
||||||
|
disableLanguageServices = false
|
||||||
|
disableOrganizeImports = false
|
||||||
|
reportMissingImports = true
|
||||||
|
reportMissingModuleSource = "warning"
|
||||||
|
reportImportCycles = "warning"
|
||||||
|
maxMemoryForLargeFile = 4096
|
||||||
|
pythonVersion = "3.12"
|
||||||
|
autoImportCompletions = true
|
||||||
|
useVirtualEnv = true
|
||||||
|
typeCheckingMode = "basic"
|
||||||
|
disableJediCompletion = true
|
||||||
|
disableCompletion = false
|
||||||
|
disableSnippetCompletion = false
|
||||||
|
disableGoToDefinition = false
|
||||||
|
disableRenaming = false
|
||||||
|
disableSignatureHelp = false
|
||||||
|
diagnostics = true
|
||||||
|
logLevel = "debug"
|
||||||
|
pluginSearchPaths = []
|
||||||
|
typings = {}
|
||||||
|
mergeTypeStubPackages = false
|
||||||
|
|
||||||
|
[tool.pytest.ini_options]
|
||||||
|
pythonpath = ["tests"]
|
||||||
|
|
||||||
|
[tool.pytest]
|
||||||
|
python_files = "*_test.py"
|
||||||
|
|
|
@ -29,7 +29,6 @@ from resolvers.reader import (
|
||||||
)
|
)
|
||||||
from resolvers.topic import get_topic, get_topics_all, get_topics_by_author, get_topics_by_community
|
from resolvers.topic import get_topic, get_topics_all, get_topics_by_author, get_topics_by_community
|
||||||
|
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
# author
|
# author
|
||||||
'get_author',
|
'get_author',
|
||||||
|
|
|
@ -19,7 +19,6 @@ from services.schema import mutation, query
|
||||||
from services.unread import get_total_unread_counter
|
from services.unread import get_total_unread_counter
|
||||||
from services.viewed import ViewedStorage
|
from services.viewed import ViewedStorage
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig()
|
logging.basicConfig()
|
||||||
logger = logging.getLogger('\t[resolvers.author]\t')
|
logger = logging.getLogger('\t[resolvers.author]\t')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
|
@ -9,7 +9,6 @@ from orm.shout import ShoutCommunity
|
||||||
from services.db import local_session
|
from services.db import local_session
|
||||||
from services.schema import query
|
from services.schema import query
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('\t[resolvers.community]\t')
|
logger = logging.getLogger('\t[resolvers.community]\t')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
|
@ -5,11 +5,11 @@ from sqlalchemy import and_, select
|
||||||
from sqlalchemy.orm import joinedload
|
from sqlalchemy.orm import joinedload
|
||||||
|
|
||||||
from orm.author import Author
|
from orm.author import Author
|
||||||
|
from orm.rating import is_negative, is_positive
|
||||||
from orm.reaction import Reaction, ReactionKind
|
from orm.reaction import Reaction, ReactionKind
|
||||||
from orm.shout import Shout, ShoutAuthor, ShoutTopic
|
from orm.shout import Shout, ShoutAuthor, ShoutTopic
|
||||||
from orm.topic import Topic
|
from orm.topic import Topic
|
||||||
from resolvers.follower import reactions_follow, reactions_unfollow
|
from resolvers.follower import reactions_follow, reactions_unfollow
|
||||||
from orm.rating import is_negative, is_positive
|
|
||||||
from services.auth import login_required
|
from services.auth import login_required
|
||||||
from services.db import local_session
|
from services.db import local_session
|
||||||
from services.diff import apply_diff, get_diff
|
from services.diff import apply_diff, get_diff
|
||||||
|
@ -17,7 +17,6 @@ from services.notify import notify_shout
|
||||||
from services.schema import mutation, query
|
from services.schema import mutation, query
|
||||||
from services.search import search_service
|
from services.search import search_service
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('[resolver.editor]')
|
logger = logging.getLogger('[resolver.editor]')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ from services.db import local_session
|
||||||
from services.notify import notify_follower
|
from services.notify import notify_follower
|
||||||
from services.schema import mutation, query
|
from services.schema import mutation, query
|
||||||
|
|
||||||
|
|
||||||
logging.basicConfig()
|
logging.basicConfig()
|
||||||
logger = logging.getLogger('\t[resolvers.reaction]\t')
|
logger = logging.getLogger('\t[resolvers.reaction]\t')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
|
@ -7,8 +7,8 @@ from sqlalchemy.orm import aliased, joinedload
|
||||||
from sqlalchemy.sql import union
|
from sqlalchemy.sql import union
|
||||||
|
|
||||||
from orm.author import Author
|
from orm.author import Author
|
||||||
from orm.reaction import Reaction, ReactionKind
|
|
||||||
from orm.rating import RATING_REACTIONS, is_negative, is_positive
|
from orm.rating import RATING_REACTIONS, is_negative, is_positive
|
||||||
|
from orm.reaction import Reaction, ReactionKind
|
||||||
from orm.shout import Shout
|
from orm.shout import Shout
|
||||||
from resolvers.editor import handle_proposing
|
from resolvers.editor import handle_proposing
|
||||||
from resolvers.follower import reactions_follow
|
from resolvers.follower import reactions_follow
|
||||||
|
@ -18,7 +18,6 @@ from services.notify import notify_reaction
|
||||||
from services.schema import mutation, query
|
from services.schema import mutation, query
|
||||||
from services.viewed import ViewedStorage
|
from services.viewed import ViewedStorage
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('\t[resolvers.reaction]\t')
|
logger = logging.getLogger('\t[resolvers.reaction]\t')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ from services.schema import query
|
||||||
from services.search import search_text
|
from services.search import search_text
|
||||||
from services.viewed import ViewedStorage
|
from services.viewed import ViewedStorage
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('[resolvers.reader] ')
|
logger = logging.getLogger('[resolvers.reader] ')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,6 @@ from services.db import local_session
|
||||||
from services.schema import mutation, query
|
from services.schema import mutation, query
|
||||||
from services.viewed import ViewedStorage
|
from services.viewed import ViewedStorage
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('\t[resolvers.topic]\t')
|
logger = logging.getLogger('\t[resolvers.topic]\t')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
from granian.constants import Interfaces
|
from granian.constants import Interfaces
|
||||||
from granian.server import Granian
|
from granian.server import Granian
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print('[server] started')
|
print('[server] started')
|
||||||
|
|
||||||
|
|
|
@ -45,8 +45,9 @@ def cache_auth_request(f):
|
||||||
cache_key = auth_cache_key(req)
|
cache_key = auth_cache_key(req)
|
||||||
result = region.get(cache_key)
|
result = region.get(cache_key)
|
||||||
if result is None:
|
if result is None:
|
||||||
result = await f(*args, **kwargs)
|
[user_id, user_roles] = await f(*args, **kwargs)
|
||||||
region.set(cache_key, result)
|
if user_id:
|
||||||
|
region.set(cache_key, [user_id, user_roles])
|
||||||
return result
|
return result
|
||||||
return decorated_function
|
return decorated_function
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from functools import wraps
|
|
||||||
import logging
|
import logging
|
||||||
import time
|
import time
|
||||||
|
from functools import wraps
|
||||||
from typing import Any, Callable, Dict, TypeVar
|
from typing import Any, Callable, Dict, TypeVar
|
||||||
|
|
||||||
from dogpile.cache import make_region
|
from dogpile.cache import make_region
|
||||||
|
|
|
@ -4,7 +4,6 @@ import redis.asyncio as aredis
|
||||||
|
|
||||||
from settings import REDIS_URL
|
from settings import REDIS_URL
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger('[services.redis] ')
|
logger = logging.getLogger('[services.redis] ')
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@ from opensearchpy import OpenSearch
|
||||||
|
|
||||||
from services.rediscache import redis
|
from services.rediscache import redis
|
||||||
|
|
||||||
|
|
||||||
os_logger = logging.getLogger(name='opensearch')
|
os_logger = logging.getLogger(name='opensearch')
|
||||||
os_logger.setLevel(logging.INFO)
|
os_logger.setLevel(logging.INFO)
|
||||||
logger = logging.getLogger('\t[services.search]\t')
|
logger = logging.getLogger('\t[services.search]\t')
|
||||||
|
|
|
@ -8,19 +8,13 @@ from typing import Dict
|
||||||
|
|
||||||
# ga
|
# ga
|
||||||
from google.analytics.data_v1beta import BetaAnalyticsDataClient
|
from google.analytics.data_v1beta import BetaAnalyticsDataClient
|
||||||
from google.analytics.data_v1beta.types import (
|
from google.analytics.data_v1beta.types import DateRange, Dimension, Metric, RunReportRequest
|
||||||
DateRange,
|
|
||||||
Dimension,
|
|
||||||
Metric,
|
|
||||||
RunReportRequest,
|
|
||||||
)
|
|
||||||
|
|
||||||
from orm.author import Author
|
from orm.author import Author
|
||||||
from orm.shout import Shout, ShoutAuthor, ShoutTopic
|
from orm.shout import Shout, ShoutAuthor, ShoutTopic
|
||||||
from orm.topic import Topic
|
from orm.topic import Topic
|
||||||
from services.db import local_session
|
from services.db import local_session
|
||||||
|
|
||||||
|
|
||||||
# Настройка журналирования
|
# Настройка журналирования
|
||||||
logging.basicConfig(level=logging.DEBUG)
|
logging.basicConfig(level=logging.DEBUG)
|
||||||
logger = logging.getLogger('\t[services.viewed]\t')
|
logger = logging.getLogger('\t[services.viewed]\t')
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
import sys
|
import sys
|
||||||
from os import environ
|
from os import environ
|
||||||
|
|
||||||
|
|
||||||
PORT = 8080
|
PORT = 8080
|
||||||
DB_URL = (
|
DB_URL = (
|
||||||
environ.get('DATABASE_URL', '').replace('postgres://', 'postgresql://')
|
environ.get('DATABASE_URL', '').replace('postgres://', 'postgresql://')
|
||||||
|
|
Loading…
Reference in New Issue
Block a user