Core Package

# Submodules section with toctree removed as automodule below will cover them. # ———- # .. toctree:: # :maxdepth: 1 # # core.exceptions # core.goal_manager # core.interfaces # core.metrics

exception core.exceptions.BotError(message, user_friendly=None)[исходный код]

Базовые классы: Exception

Base class for bot errors with a user-friendly message.

Параметры:
__init__(message, user_friendly=None)[исходный код]

Initialize the BotError.

Параметры:
  • message (str) – The internal error message.

  • user_friendly (str | None) – A user-friendly message to display.

exception core.exceptions.LLMError(message, user_friendly=None)[исходный код]

Базовые классы: BotError

Errors related to interaction with the LLM (OpenAI).

Параметры:
exception core.exceptions.RateLimitExceeded(message, user_friendly=None)[исходный код]

Базовые классы: BotError

Error raised when a rate limit is exceeded.

Параметры:
exception core.exceptions.StorageError(message, user_friendly=None)[исходный код]

Базовые классы: BotError

Errors related to data storage operations.

Параметры:

Core logic for managing user goals, plans, and progress via LLM and storage.

class core.goal_manager.GoalManager(storage, llm)[исходный код]

Базовые классы: object

Asynchronously manages user goals, tasks, and interactions.

Orchestrates operations with storage (e.g., Google Sheets via AsyncStorageInterface) and LLM (e.g., OpenAI via AsyncLLMInterface) for planning and motivation. All public methods are asynchronous.

Параметры:
__init__(storage, llm)[исходный код]

Initializes GoalManager with async storage and LLM clients.

Параметры:
async batch_update_task_statuses(user_id, updates)[исходный код]

Asynchronously batch updates task statuses via the storage interface. „updates“ dict values are expected to be Russian user-facing strings.

Also, increments the TASKS_STATUS_UPDATED_TOTAL metric for each status update.

Параметры:
Тип результата:

None

async generate_motivation_message(user_id)[исходный код]

Asynchronously generates a motivational message.

Параметры:

user_id (int)

Тип результата:

str

async get_detailed_status(user_id)[исходный код]

Asynchronously gets detailed statistics about the user’s current goal.

Параметры:

user_id (int)

Тип результата:

Dict[str, Any]

async get_goal_status_details(user_id)[исходный код]

Asynchronously gets a brief string summary of goal progress.

Параметры:

user_id (int)

Тип результата:

str

async get_today_task(user_id)[исходный код]

Asynchronously retrieves today’s task.

Параметры:

user_id (int)

Тип результата:

Optional[Dict[str, Any]]

async reset_user(user_id)[исходный код]

Asynchronously deletes all user data.

Параметры:

user_id (int)

Тип результата:

None

async set_new_goal(user_id, goal_text, deadline_str, available_time_str)[исходный код]

Asynchronously sets a new goal, generates a plan, and saves all data.

Параметры:
  • user_id (int)

  • goal_text (str)

  • deadline_str (str)

  • available_time_str (str)

Тип результата:

str

async setup_user(user_id)[исходный код]

Asynchronously sets up the user by creating/opening their Google Spreadsheet.

Параметры:

user_id (int)

Тип результата:

None

async update_today_task_status(user_id, status)[исходный код]

Asynchronously updates the status of today’s task. „status“ is expected to be a Russian user-facing string.

Параметры:
Тип результата:

None

class core.interfaces.AsyncLLMInterface(*args, **kwargs)[исходный код]

Базовые классы: Protocol

Async interface for LLM interactions.

async generate_motivation(goal_info, progress_summary)[исходный код]

Generate motivational message based on goal and progress.

Параметры:
  • goal_info (str)

  • progress_summary (str)

Тип результата:

str

async generate_plan(goal_text, deadline_str, available_time_str)[исходный код]

Generate a plan for achieving a goal.

Параметры:
  • goal_text (str)

  • deadline_str (str)

  • available_time_str (str)

Тип результата:

List[Dict[str, Any]]

class core.interfaces.AsyncStorageInterface(*args, **kwargs)[исходный код]

Базовые классы: Protocol

Async storage interface for goals and tasks with multi-goal support.

async archive_goal(user_id, goal_id)[исходный код]

Archive a goal.

Параметры:
Тип результата:

None

async batch_update_task_statuses(user_id, updates)[исходный код]

Batch update multiple task statuses.

Параметры:
Тип результата:

None

async create_spreadsheet(user_id)[исходный код]

Create a new spreadsheet for user.

Параметры:

user_id (int)

Тип результата:

None

async delete_goal(user_id, goal_id)[исходный код]

Delete a goal completely.

Параметры:
Тип результата:

None

async delete_spreadsheet(user_id)[исходный код]

Delete user’s spreadsheet.

Параметры:

user_id (int)

Тип результата:

None

async get_active_goals(user_id)[исходный код]

Get only active goals.

Параметры:

user_id (int)

Тип результата:

List[Goal]

async get_active_goals_count(user_id)[исходный код]

Count active goals.

Параметры:

user_id (int)

Тип результата:

int

async get_all_goals(user_id)[исходный код]

Get all goals for a user.

Параметры:

user_id (int)

Тип результата:

List[Goal]

async get_all_tasks_for_date(user_id, date)[исходный код]

Get all tasks for a specific date.

Параметры:
Тип результата:

List[Task]

async get_extended_statistics(user_id, count=7)[исходный код]

Get extended statistics (legacy method).

Параметры:
Тип результата:

Dict[str, Any]

async get_goal_by_id(user_id, goal_id)[исходный код]

Get a specific goal by ID.

Параметры:
Тип результата:

Optional[Goal]

async get_goal_info(user_id)[исходный код]

Get goal info (legacy, single goal).

Параметры:

user_id (int)

Тип результата:

Dict[str, str]

async get_goal_statistics(user_id, goal_id)[исходный код]

Get statistics for a specific goal.

Параметры:
Тип результата:

GoalStatistics

async get_next_goal_id(user_id)[исходный код]

Get next available goal ID.

Параметры:

user_id (int)

Тип результата:

int

async get_overall_statistics(user_id)[исходный код]

Get overall statistics for all goals.

Параметры:

user_id (int)

Тип результата:

Dict[str, Any]

async get_plan_for_goal(user_id, goal_id)[исходный код]

Get plan for a specific goal.

Параметры:
Тип результата:

List[Task]

async get_status_message(user_id)[исходный код]

Get status message (legacy, single goal).

Параметры:

user_id (int)

Тип результата:

str

async get_task_for_date(user_id, goal_id, date)[исходный код]

Get task for specific goal and date.

Параметры:
Тип результата:

Optional[Task]

async get_task_for_today(user_id)[исходный код]

Get today’s task (legacy, single goal).

Параметры:

user_id (int)

Тип результата:

Optional[Dict[str, Any]]

async save_goal_and_plan(user_id, goal_data, plan)[исходный код]

Save goal and plan (legacy, single goal).

Параметры:
Тип результата:

str

async save_goal_info(user_id, goal)[исходный код]

Save or update goal information.

Параметры:
  • user_id (int)

  • goal (Goal)

Тип результата:

str

async save_plan(user_id, goal_id, plan)[исходный код]

Save plan for a goal.

Параметры:
Тип результата:

None

async update_goal_priority(user_id, goal_id, priority)[исходный код]

Update goal priority.

Параметры:
  • user_id (int)

  • goal_id (int)

  • priority (GoalPriority)

Тип результата:

None

async update_goal_progress(user_id, goal_id, progress)[исходный код]

Update goal progress percentage.

Параметры:
Тип результата:

None

async update_goal_status(user_id, goal_id, status)[исходный код]

Update goal status.

Параметры:
  • user_id (int)

  • goal_id (int)

  • status (GoalStatus)

Тип результата:

None

async update_task_status(user_id, goal_id, date, status)[исходный код]

Update task status.

Параметры:
Тип результата:

None

async update_task_status_old(user_id, date, status)[исходный код]

Update task status (legacy, single goal).

Параметры:
Тип результата:

None

class core.interfaces.LLMInterface(*args, **kwargs)[исходный код]

Базовые классы: Protocol

Interface for LLM interactions.

generate_motivation(goal_info, progress_summary)[исходный код]

Generate motivational message based on goal and progress.

Параметры:
  • goal_info (str)

  • progress_summary (str)

Тип результата:

str

generate_plan(goal_text, deadline_str, available_time_str)[исходный код]

Generate a plan for achieving a goal.

Параметры:
  • goal_text (str)

  • deadline_str (str)

  • available_time_str (str)

Тип результата:

List[Dict[str, Any]]

class core.interfaces.StorageInterface(*args, **kwargs)[исходный код]

Базовые классы: Protocol

Storage interface for goals and tasks with multi-goal support.

archive_goal(user_id, goal_id)[исходный код]

Archive a goal.

Параметры:
Тип результата:

None

batch_update_task_statuses(user_id, updates)[исходный код]

Batch update multiple task statuses.

Параметры:
Тип результата:

None

create_spreadsheet(user_id)[исходный код]

Create a new spreadsheet for user.

Параметры:

user_id (int)

Тип результата:

None

delete_goal(user_id, goal_id)[исходный код]

Delete a goal completely.

Параметры:
Тип результата:

None

delete_spreadsheet(user_id)[исходный код]

Delete user’s spreadsheet.

Параметры:

user_id (int)

Тип результата:

None

get_active_goals(user_id)[исходный код]

Get only active goals.

Параметры:

user_id (int)

Тип результата:

List[Goal]

get_active_goals_count(user_id)[исходный код]

Count active goals.

Параметры:

user_id (int)

Тип результата:

int

get_all_goals(user_id)[исходный код]

Get all goals for a user.

Параметры:

user_id (int)

Тип результата:

List[Goal]

get_all_tasks_for_date(user_id, date)[исходный код]

Get all tasks for a specific date.

Параметры:
Тип результата:

List[Task]

get_goal_by_id(user_id, goal_id)[исходный код]

Get a specific goal by ID.

Параметры:
Тип результата:

Optional[Goal]

get_goal_info(user_id)[исходный код]

Get goal info (legacy, single goal).

Параметры:

user_id (int)

Тип результата:

Dict[str, str]

get_goal_statistics(user_id, goal_id)[исходный код]

Get statistics for a specific goal.

Параметры:
Тип результата:

GoalStatistics

get_next_goal_id(user_id)[исходный код]

Get next available goal ID.

Параметры:

user_id (int)

Тип результата:

int

get_overall_statistics(user_id)[исходный код]

Get overall statistics for all goals.

Параметры:

user_id (int)

Тип результата:

Dict[str, Any]

get_plan_for_goal(user_id, goal_id)[исходный код]

Get plan for a specific goal.

Параметры:
Тип результата:

List[Task]

get_status_message(user_id)[исходный код]

Get status message (legacy, single goal).

Параметры:

user_id (int)

Тип результата:

str

get_task_for_date(user_id, goal_id, date)[исходный код]

Get task for specific goal and date.

Параметры:
Тип результата:

Optional[Task]

save_goal_and_plan(user_id, goal_data, plan)[исходный код]

Save goal and plan (legacy, single goal).

Параметры:
Тип результата:

str

save_goal_info(user_id, goal)[исходный код]

Save or update goal information.

Параметры:
  • user_id (int)

  • goal (Goal)

Тип результата:

str

save_plan(user_id, goal_id, plan)[исходный код]

Save plan for a goal.

Параметры:
Тип результата:

None

update_goal_priority(user_id, goal_id, priority)[исходный код]

Update goal priority.

Параметры:
  • user_id (int)

  • goal_id (int)

  • priority (GoalPriority)

Тип результата:

None

update_goal_progress(user_id, goal_id, progress)[исходный код]

Update goal progress percentage.

Параметры:
Тип результата:

None

update_goal_status(user_id, goal_id, status)[исходный код]

Update goal status.

Параметры:
  • user_id (int)

  • goal_id (int)

  • status (GoalStatus)

Тип результата:

None

update_task_status(user_id, goal_id, date, status)[исходный код]

Update task status.

Параметры:
Тип результата:

None

Prometheus metrics definitions for the Target Assistant Bot.

This module defines various counters, gauges, and histograms used for monitoring the application’s performance and behavior.