Skip to content

Commit d13f8dc

Browse files
Add kwargs to HTTPEnvClient's from_docker_image method
1 parent 0628fa8 commit d13f8dc

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

examples/local_git_env.py

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
sys.path.insert(0, str(Path(__file__).parent.parent / "src"))
2323

2424
from envs.git_env import GitAction, GitEnv
25-
from core.containers.runtime import LocalDockerProvider
2625

2726

2827
def main():
@@ -47,16 +46,11 @@ def main():
4746
return False
4847

4948
print("Creating client from Docker image with .env credentials...")
50-
print(" Using LocalDockerProvider with env_vars")
49+
print(" Using GitEnv.from_docker_image() factory method")
5150
print()
5251

53-
# Create provider and start container with environment variables
54-
provider = LocalDockerProvider()
55-
base_url = provider.start_container("git-env:latest", env_vars=env_vars)
56-
provider.wait_for_ready(base_url)
57-
58-
# Create client connected to the container
59-
client = GitEnv(base_url=base_url, provider=provider)
52+
# Create client using from_docker_image factory method
53+
client = GitEnv.from_docker_image("git-env:latest", env_vars=env_vars)
6054

6155
print("✓ Client created and container started!\n")
6256

src/core/http_env_client.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ def from_docker_image(
4646
cls: Type[EnvClientT],
4747
image: str,
4848
provider: Optional["ContainerProvider"] = None,
49+
**kwargs: Any,
4950
) -> EnvClientT:
5051
"""
5152
Create an environment client by spinning up a Docker container locally.
@@ -61,6 +62,8 @@ def from_docker_image(
6162
Args:
6263
image: Docker image name to run (e.g., "echo-env:latest")
6364
provider: Container provider to use (defaults to LocalDockerProvider)
65+
**kwargs: Additional arguments to pass to provider.start_container()
66+
(e.g., env_vars, port)
6467
6568
Returns:
6669
An instance of the client class connected to the running container
@@ -72,6 +75,12 @@ def from_docker_image(
7275
>>> # Create environment from image
7376
>>> env = CodingEnv.from_docker_image("coding-env:latest")
7477
>>>
78+
>>> # Create environment with custom env vars
79+
>>> env = CodingEnv.from_docker_image(
80+
... "coding-env:latest",
81+
... env_vars={"MY_VAR": "value"}
82+
... )
83+
>>>
7584
>>> # Use the environment
7685
>>> result = env.reset()
7786
>>> print(result.observation)
@@ -87,8 +96,8 @@ def from_docker_image(
8796
if provider is None:
8897
provider = LocalDockerProvider()
8998

90-
# 1. Start container
91-
base_url = provider.start_container(image)
99+
# 1. Start container with optional kwargs (e.g., env_vars, port)
100+
base_url = provider.start_container(image, **kwargs)
92101

93102
# 2. Wait for server to be ready
94103
provider.wait_for_ready(base_url)

0 commit comments

Comments
 (0)