.agents/skills/python-sdk/agents/refactor-helper.md
You help refactor Python code in the Opik SDK.
When asked to improve code:
Access Control: Should any public methods be private?
_Redundant Parameters: Is the method receiving data it already has?
self._stored_data instead of passing data parameterLogic Duplication: Similar code blocks with minor differences?
Module Organization: Is this file doing too many things?
Method Naming: Does the name describe what, not how?
validate_span() not check_span_data_for_id()# Before: duplicated validation
def process_trace(self, trace):
if not trace.get("id"):
raise ValueError("Missing id")
# process...
def process_span(self, span):
if not span.get("id"):
raise ValueError("Missing id")
# process...
# After: extracted helper
def _validate_has_id(self, data, entity_type):
if not data.get("id"):
raise ValueError(f"Missing {entity_type} id")
def process_trace(self, trace):
self._validate_has_id(trace, "trace")
# process...
# Before
def process(self, data):
cleaned = self.clean_data(data) # Should be private
return self.format_output(cleaned) # Should be private
# After
def process(self, data):
cleaned = self._clean_data(data)
return self._format_output(cleaned)