main.py
def has_deformables(task):
    """
    Somewhat misleading name. This method is used to determine if we should
    (a) be running training AFTER environment data collection, and (b)
    evaluating with test-time rollouts periodically. For (a) the reason was
    the --disp option, which is needed to see cloth, will not let us run
    multiple Environment calls. This also applies to (b), but for (b) there's
    an extra aspect: most of these new environments have reward functions
    that are not easily interpretable, or they have extra stuff in `info`
    that would be better for us to use. In that case we should be using
    `load.py` to roll out these policies.

    Actually, even for stuff like cable-shape, where the reward really tells
    us all we need to know, it would be nice to understand failure cases
    based on the type of the target. So for now let's set it to record
    `cable-` which will ignore `cable` but catch all my custom environments.
    The custom cable environments don't use --disp but let's just have them
    here for consistency in the main-then-load paradigm.
    """
    return ('cable-' in task) or ('cloth' in task) or ('bag' in task)

    Somewhat misleading name. This method is used to determine if we should
    (a) be running training AFTER environment data collection, and (b)
    evaluating with test-time rollouts periodically. For (a) the reason was
    the --disp option, which is needed to see cloth, will not let us run
    multiple Environment calls. This also applies to (b), but for (b) there's
    an extra aspect: most of these new environments have reward functions
    that are not easily interpretable, or they have extra stuff in `info`
    that would be better for us to use. In that case we should be using
    `load.py` to roll out these policies.

    Actually, even for stuff like cable-shape, where the reward really tells
    us all we need to know, it would be nice to understand failure cases
    based on the type of the target. So for now let's set it to record
    `cable-` which will ignore `cable` but catch all my custom environments.
    The custom cable environments don't use --disp but let's just have them
    here for consistency in the main-then-load paradigm.
    
Somewhat misleading name. This method is used to determine if we should
(a) be running training AFTER environment data collection, and (b)
evaluating with test-time rollouts periodically. For (a) the reason was
the --disp option, which is needed to see cloth, will not let us run
multiple Environment calls. This also applies to (b), but for (b) there's
an extra aspect: most of these new environments have reward functions
that are not easily interpretable, or they have extra stuff in `info`
that would be better for us to use. In that case we should be using
`load.py` to roll out these policies.

Actually, even for stuff like cable-shape, where the reward really tells
us all we need to know, it would be nice to understand failure cases
based on the type of the target. So for now let's set it to record
`cable-` which will ignore `cable` but catch all my custom environments.
The custom cable environments don't use --disp but let's just have them
here for consistency in the main-then-load paradigm.
Somewhat misleading name . This method is used to determine if we should ( a ) be running training AFTER environment data collection and ( b ) evaluating with test - time rollouts periodically . For ( a ) the reason was the -- disp option which is needed to see cloth will not let us run multiple Environment calls . This also applies to ( b ) but for ( b ) there ' s an extra aspect : most of these new environments have reward functions that are not easily interpretable or they have extra stuff in ` info ` that would be better for us to use . In that case we should be using ` load . py ` to roll out these policies . Actually even for stuff like cable - shape where the reward really tells us all we need to know it would be nice to understand failure cases based on the type of the target . So for now let ' s set it to record ` cable - ` which will ignore ` cable ` but catch all my custom environments . The custom cable environments don ' t use -- disp but let ' s just have them here for consistency in the main - then - load paradigm .
def has_deformables(task):
    return ('cable-' in task) or ('cloth' in task) or ('bag' in task)
def has_deformables ( task ) : return ( 'cable-' in task ) or ( 'cloth' in task ) or ( 'bag' in task )
Somewhat misleading name.
Somewhat misleading name .
"""
    Somewhat misleading name. This method is used to determine if we should
    (a) be running training AFTER environment data collection, and (b)
    evaluating with test-time rollouts periodically. For (a) the reason was
    the --disp option, which is needed to see cloth, will not let us run
    multiple Environment calls. This also applies to (b), but for (b) there's
    an extra aspect: most of these new environments have reward functions
    that are not easily interpretable, or they have extra stuff in `info`
    that would be better for us to use. In that case we should be using
    `load.py` to roll out these policies.

    Actually, even for stuff like cable-shape, where the reward really tells
    us all we need to know, it would be nice to understand failure cases
    based on the type of the target. So for now let's set it to record
    `cable-` which will ignore `cable` but catch all my custom environments.
    The custom cable environments don't use --disp but let's just have them
    here for consistency in the main-then-load paradigm.
    """
task