def _validate_zooms(zooms):
if isinstance(zooms, dict):<EOL><INDENT>if any([a not in zooms for a in ["<STR_LIT>", "<STR_LIT>"]]):<EOL><INDENT>raise MapcheteConfigError("<STR_LIT>")<EOL><DEDENT>zmin = _validate_zoom(zooms["<STR_LIT>"])<EOL>zmax = _validate_zoom(zooms["<STR_LIT>"])<EOL>if zmin > zmax:<EOL><INDENT>raise MapcheteConfigError(<EOL>"<STR_LIT>")<EOL><DEDENT>return list(range(zmin, zmax + <NUM_LIT:1>))<EOL><DEDENT>elif isinstance(zooms, list):<EOL><INDENT>if len(zooms) == <NUM_LIT:1>:<EOL><INDENT>return zooms<EOL><DEDENT>elif len(zooms) == <NUM_LIT:2>:<EOL><INDENT>zmin, zmax = sorted([_validate_zoom(z) for z in zooms])<EOL>return list(range(zmin, zmax + <NUM_LIT:1>))<EOL><DEDENT>else:<EOL><INDENT>return zooms<EOL><DEDENT><DEDENT>else:<EOL><INDENT>return [_validate_zoom(zooms)]<EOL><DEDENT>
Return a list of zoom levels.

Following inputs are converted:
- int --> [int]
- dict{min, max} --> range(min, max + 1)
- [int] --> [int]
- [int, int] --> range(smaller int, bigger int + 1)