From 0e250aa775bbe384f8d661669ed9fd0b0a24c9fa Mon Sep 17 00:00:00 2001 From: EleanQuintero Date: Wed, 4 Mar 2026 15:14:10 +0100 Subject: [PATCH] fix: inherit generated AnalyticsResource to expose MCP methods All 9 analytics MCP tools failed with AttributeError because the manual AnalyticsResource (used by the client) lacked the generated methods (get_analytics, get_daily_metrics, etc.). Switching the parent class from BaseResource[Any] to the generated AnalyticsResource exposes all 18 generated methods via inheritance while preserving the convenience get()/get_usage() aliases for existing SDK users. Co-Authored-By: Claude Opus 4.6 --- src/late/resources/analytics.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/late/resources/analytics.py b/src/late/resources/analytics.py index 9aacd22..633646b 100644 --- a/src/late/resources/analytics.py +++ b/src/late/resources/analytics.py @@ -1,28 +1,38 @@ """ Analytics resource for post analytics and usage statistics. + +Inherits all generated analytics methods (get_analytics, get_daily_metrics, +get_best_time_to_post, etc.) and adds convenience aliases. """ from __future__ import annotations from typing import Any, Literal -from .base import BaseResource +from ._generated.analytics import AnalyticsResource as _GeneratedAnalyticsResource Period = Literal["7d", "30d", "90d", "all"] -class AnalyticsResource(BaseResource[Any]): +class AnalyticsResource(_GeneratedAnalyticsResource): """ Resource for analytics and usage statistics. + Inherits all generated analytics methods (get_analytics, get_daily_metrics, + get_best_time_to_post, etc.) and adds convenience aliases for backwards + compatibility with existing SDK users. + Example: >>> client = Late(api_key="...") - >>> # Get post analytics + >>> # Get post analytics (generated method, used by MCP tools) + >>> analytics = client.analytics.get_analytics(period="30d") + >>> # Get post analytics (convenience alias) >>> analytics = client.analytics.get(period="30d") >>> # Get usage statistics >>> usage = client.analytics.get_usage() """ + # Used by convenience get()/aget() methods below _BASE_PATH = "/v1/analytics" # -------------------------------------------------------------------------