Skip to content

Commit ac6fdde

Browse files
committed
fix: fixed linting and commenting issues.
Signed-off-by: Teryl Taylor <terylt@ibm.com>
1 parent 0c47809 commit ac6fdde

6 files changed

Lines changed: 53 additions & 6 deletions

File tree

cpex/framework/cmf/message.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from __future__ import annotations
2020

2121
from enum import Enum
22-
from typing import Any, Annotated, Iterator, Literal, TYPE_CHECKING, Union
22+
from typing import TYPE_CHECKING, Annotated, Any, Iterator, Literal, Union
2323

2424
# Third-Party
2525
from pydantic import BaseModel, ConfigDict, Discriminator, Field, Tag, model_validator
@@ -263,6 +263,14 @@ class Resource(BaseModel):
263263

264264
@model_validator(mode="after")
265265
def _check_content_blob_exclusion(self) -> Resource:
266+
"""Ensure content and blob are mutually exclusive.
267+
268+
Returns:
269+
The validated Resource instance.
270+
271+
Raises:
272+
ValueError: If both content and blob are set.
273+
"""
266274
if self.content is not None and self.blob is not None:
267275
raise ValueError("Resource cannot have both 'content' and 'blob' set")
268276
return self
@@ -309,6 +317,14 @@ class ResourceReference(BaseModel):
309317

310318
@model_validator(mode="after")
311319
def _check_range_consistency(self) -> ResourceReference:
320+
"""Ensure range_end is not less than range_start.
321+
322+
Returns:
323+
The validated ResourceReference instance.
324+
325+
Raises:
326+
ValueError: If range_end < range_start.
327+
"""
312328
if self.range_start is not None and self.range_end is not None:
313329
if self.range_end < self.range_start:
314330
raise ValueError(f"range_end ({self.range_end}) must be >= range_start ({self.range_start})")

cpex/framework/extensions/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
# First-Party
1414
from cpex.framework.extensions.agent import AgentExtension, ConversationContext
1515
from cpex.framework.extensions.completion import CompletionExtension, StopReason, TokenUsage
16+
from cpex.framework.extensions.constants import SlotName
1617
from cpex.framework.extensions.extensions import Extensions
1718
from cpex.framework.extensions.framework import FrameworkExtension
1819
from cpex.framework.extensions.http import HttpExtension
@@ -33,7 +34,6 @@
3334
SubjectExtension,
3435
SubjectType,
3536
)
36-
from cpex.framework.extensions.constants import SlotName
3737
from cpex.framework.extensions.tiers import (
3838
AccessPolicy,
3939
Capability,

cpex/framework/extensions/constants.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ class SlotName(str, Enum):
3030
"""
3131

3232
def __str__(self) -> str:
33+
"""Return the enum value as a plain string.
34+
35+
Overrides the default ``StrEnum.__str__`` which renders as
36+
``ClassName.MEMBER`` in Python 3.11+.
37+
38+
Returns:
39+
The raw string value of the enum member.
40+
"""
3341
return self.value
3442

3543
REQUEST = "request"

cpex/framework/extensions/tiers.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -388,11 +388,19 @@ def __init__(
388388
tier: MutabilityTier,
389389
detail: str,
390390
) -> None:
391+
"""Initialise a tier violation error.
392+
393+
Args:
394+
plugin_name: Name of the offending plugin.
395+
slot: The extension slot that was violated.
396+
tier: The mutability tier of the slot.
397+
detail: Description of the violation.
398+
"""
391399
self.plugin_name = plugin_name
392400
self.slot = slot
393401
self.tier = tier
394402
self.detail = detail
395-
super().__init__(f"Plugin '{plugin_name}' violated {tier.value} tier on " f"'{slot}': {detail}")
403+
super().__init__(f"Plugin '{plugin_name}' violated {tier.value} tier on '{slot}': {detail}")
396404

397405

398406
def _resolve_slot(ext: Extensions | None, dot_path: str) -> Any:

cpex/framework/manager.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040
from cpex.framework.base import HookRef, Plugin
4141
from cpex.framework.constants import EXTERNAL_PLUGIN_TYPE
4242
from cpex.framework.errors import PluginError, PluginViolationError, convert_exception_to_error
43+
from cpex.framework.extensions.extensions import Extensions
44+
from cpex.framework.extensions.tiers import filter_extensions
4345
from cpex.framework.hooks.policies import DefaultHookPolicy, HookPayloadPolicy, apply_policy
4446
from cpex.framework.loader.config import ConfigLoader
4547
from cpex.framework.loader.plugin import PluginLoader
@@ -55,8 +57,6 @@
5557
PluginPayload,
5658
PluginResult,
5759
)
58-
from cpex.framework.extensions.extensions import Extensions
59-
from cpex.framework.extensions.tiers import filter_extensions
6060
from cpex.framework.observability import ObservabilityProvider, current_trace_id
6161
from cpex.framework.registry import PluginInstanceRegistry
6262
from cpex.framework.settings import settings
@@ -650,7 +650,11 @@ def _build_halt_result(
650650
) -> tuple[PluginResult, dict]:
651651
"""Schedule fire-and-forget tasks and build a pipeline-halting result."""
652652
self._fire_and_forget_tasks(
653-
fire_and_forget_refs, payload, global_context, res_local_contexts, fire_and_forget_semaphore,
653+
fire_and_forget_refs,
654+
payload,
655+
global_context,
656+
res_local_contexts,
657+
fire_and_forget_semaphore,
654658
extensions=extensions,
655659
)
656660
if hook_type == HTTP_AUTH_CHECK_PERMISSION_HOOK and decision_plugin_name:

cpex/framework/models.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1241,6 +1241,17 @@ def _migrate_legacy_modes(cls, data: Any) -> Any:
12411241
@field_validator("capabilities", mode="before")
12421242
@classmethod
12431243
def _validate_capabilities(cls, v: Any) -> frozenset[str]:
1244+
"""Validate that all declared capabilities are known.
1245+
1246+
Args:
1247+
v: Raw capabilities value from the config.
1248+
1249+
Returns:
1250+
A validated frozenset of capability strings.
1251+
1252+
Raises:
1253+
ValueError: If an unknown capability is declared.
1254+
"""
12441255
# First-Party
12451256
from cpex.framework.extensions.tiers import Capability # pylint: disable=import-outside-toplevel
12461257

0 commit comments

Comments
 (0)