Skip to content

feat: add .plot stub on Result for fluxopt-plot discoverability #50

@FBumann

Description

@FBumann

Summary

Add a stub .plot property on Result that raises a helpful ImportError if fluxopt-plot is not installed. This makes the accessor discoverable via tab-completion without coupling core to the plot package.

Design

# fluxopt/results.py
class Result:
    @property
    def plot(self):
        raise ImportError(
            "Plotting requires fluxopt-plot. "
            "Install it with: pip install fluxopt-plot"
        )

When fluxopt-plot is installed, it monkey-patches this property at import time:

# fluxopt_plot/__init__.py
from fluxopt.results import Result
from fluxopt_plot.accessor import PlotAccessor

Result.plot = property(lambda self: PlotAccessor(self))

Acceptance Criteria

  • Result.plot raises ImportError with install instructions when fluxopt-plot is absent
  • Property is discoverable in dir(result) and tab-completion
  • Does not add any dependencies to core

Refs

Part of #47 — Architecture: Package Separation, SolutionResult Design, and Stability Tiers

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions