Skip to content

Commit 6b304fd

Browse files
authored
Merge pull request #31 from meta-pytorch/pankit-dev-1
Add project structure for easier maneuvering in the repo
2 parents bd7db2b + c4aed9a commit 6b304fd

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,36 @@ Type-safe data structures:
6565
- `State`: Episode state tracking
6666
- `StepResult`: Combines observation, reward, done flag
6767

68+
## Project Structure
69+
70+
### For Environment Creators
71+
72+
When building a new environment, create the following structure:
73+
74+
```
75+
src/envs/your_env/
76+
├── __init__.py # Export YourAction, YourObservation, YourEnv
77+
├── models.py # Define Action, Observation, State dataclasses
78+
├── client.py # Implement YourEnv(HTTPEnvClient)
79+
├── README.md # Document your environment
80+
└── server/
81+
├── your_environment.py # Implement YourEnvironment(Environment)
82+
├── app.py # Create FastAPI app
83+
└── Dockerfile # Define container image
84+
```
85+
86+
See [`src/envs/README.md`](src/envs/README.md) for a complete guide on building environments.
87+
88+
### For Environment Users
89+
90+
To use an environment:
91+
1. Import from `envs.your_env`: `from envs.echo_env import EchoAction, EchoEnv`
92+
2. Create client: `client = EchoEnv.from_docker_image("echo-env:latest")`
93+
3. Interact: `client.reset()`, `client.step(action)`, `client.state()`
94+
4. Cleanup: `client.close()`
95+
96+
See example scripts in `examples/` directory.
97+
6898
## Design Principles
6999

70100
1. **Separation of Concerns**: Clear client-server boundaries

0 commit comments

Comments
 (0)