133a7a39e7
test / run tests/run_tests.py (pull_request) Successful in 14s
BottleProvisioner had no independent identity — no state, only one
caller, never selected, never crossed a method boundary as data. It
was a method dressed up as a class. Reverting that turn:
- BottleBackend gains an abstract provision(plan, target).
- DockerBottleBackend.provision absorbs the body that lived on
DockerBottleProvisioner.
- backend/docker/provisioner.py deleted.
- BottleProvisioner ABC removed from backend/__init__.py.
- launch now calls self.provision(plan, container) directly.
Net: -1 file, -1 class, -1 ABC. Same behavior; tests pass.
30 lines
834 B
Python
30 lines
834 B
Python
"""Docker bottle backend.
|
|
|
|
The bulk of the implementation lives in sibling modules:
|
|
|
|
- util: thin Docker subprocess wrappers
|
|
- network: Docker network plumbing
|
|
- bottle_plan: DockerBottlePlan
|
|
- bottle_cleanup_plan: DockerBottleCleanupPlan
|
|
- bottle: DockerBottle handle
|
|
- backend: DockerBottleBackend
|
|
|
|
This file only re-exports the public names so
|
|
`from claude_bottle.backend.docker import DockerBottleBackend` keeps
|
|
working.
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
from .backend import DockerBottleBackend
|
|
from .bottle import DockerBottle
|
|
from .bottle_cleanup_plan import DockerBottleCleanupPlan
|
|
from .bottle_plan import DockerBottlePlan
|
|
|
|
__all__ = [
|
|
"DockerBottle",
|
|
"DockerBottleBackend",
|
|
"DockerBottleCleanupPlan",
|
|
"DockerBottlePlan",
|
|
]
|