Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .github/workflows/predicators.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.py'
- run: |
pip install -e .
pip install pytest-cov==2.12.1
Expand All @@ -35,8 +33,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.py'
- name: Install dependencies
run: |
pip install -e .
Expand All @@ -55,8 +51,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.py'
- name: Install dependencies
run: |
pip install -e .
Expand All @@ -77,8 +71,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.py'
- name: Install dependencies
run: |
pip install yapf==0.32.0
Expand All @@ -101,8 +93,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.py'
- name: Install dependencies
run: |
pip install isort==5.10.1
Expand All @@ -122,8 +112,6 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: '**/setup.py'
- name: Install dependencies
run: |
pip install docformatter==1.4
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
__pycache__
*.pyc
.DS_Store
CLAUDE.md
.vscode
*.egg-info
*.pkl
Expand Down Expand Up @@ -33,5 +34,7 @@ Gymnasium-Robotics/
predicators/datasets/vlm_input_data_prompts/vision_api/prompt.txt
predicators/datasets/vlm_input_data_prompts/vision_api/response.txt

.mypy_cache/

# Jetbrains IDEs
.idea/
3 changes: 3 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Instructions

- Never add Claude as a co-author on git commits (no `Co-Authored-By` lines)
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ A simple implementation of search-then-sample bilevel planning is provided in `p
Our code assumes that python hashing is deterministic between processes, which is [not true by default](https://stackoverflow.com/questions/30585108/disable-hash-randomization-from-within-python-program).
Please make sure to `export PYTHONHASHSEED=0` when running the code. You can add this line to your bash profile, or prepend `export PYTHONHASHSEED=0` to any command line call, e.g., `export PYTHONHASHSEED=0 python predicators/main.py --env ...`.

### Weights & Biases (wandb) Setup
If you want to use wandb for experiment tracking:
* Set `use_wandb = True` in your config or pass `--use_wandb` as a command line argument
* Set your wandb API key: `export WANDB_API_KEY=your_api_key_here`
* Or run `wandb login` to authenticate interactively

### Locally
* (recommended) Make a new virtual env or conda env.
* Run, e.g., `python predicators/main.py --env cover --approach oracle --seed 0` to run the system.
Expand Down
2 changes: 1 addition & 1 deletion mypy.ini
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
strict_equality = True
disallow_untyped_calls = True
warn_unreachable = True
exclude = (predicators/envs/assets|venv)
exclude = (predicators/envs/assets|venv|prompts)

[mypy-predicators.*]
disallow_untyped_defs = True
Expand Down
6 changes: 6 additions & 0 deletions predicators/args.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,13 @@ def create_arg_parser(env_required: bool = True,
parser.add_argument("--timeout", default=10, type=float)
parser.add_argument("--make_test_videos", action="store_true")
parser.add_argument("--make_failure_videos", action="store_true")
parser.add_argument("--make_test_images", action="store_true")
parser.add_argument("--make_failure_images", action="store_true")
parser.add_argument("--make_interaction_videos", action="store_true")
parser.add_argument("--make_demo_videos", action="store_true")
parser.add_argument("--make_demo_images", action="store_true")
parser.add_argument("--make_cogman_videos", action="store_true")
parser.add_argument("--video_not_break_on_exception", action="store_true")
parser.add_argument("--load_approach", action="store_true")
# In the case of online learning approaches, load_approach by itself
# will try to load an approach on *every* online learning cycle.
Expand All @@ -51,4 +54,7 @@ def create_arg_parser(env_required: bool = True,
const=logging.DEBUG,
default=logging.INFO)
parser.add_argument("--crash_on_failure", action="store_true")
parser.add_argument("--excluded_objects_in_state_str",
default="",
type=str)
return parser
Loading
Loading