cape.cfdx.options.isectopts
: CLI options for intersect
¶
This module interfaces options for two Cart3D triangulation tools called
intersect
and verify
. This allows the user to intersect
overlapping triangulated bodies and create a single water-tight body.
The verify
executable
tests for a well-defined water-tight triangulation. Intersections,
missing triangles, holes, etc. all cause verify
to fail.
The main option for both intersect
and verify
is simply whether
or not to use them. The user can specify the following in the
"RunControl"
section of the JSON file.
"RunControl": { "intersect": True, "verfiy": False }
There are a variety of input flags to those utilities, which are
interfaced via the IntersectOpts
and
VerifyOpts
classes defined here.
- class cape.cfdx.options.isectopts.IntersectOpts(*args, **kw)¶
Class for Cart3D
intersect
command-line settings- Call:
>>> opts = intersect(**kw)
- Inputs:
- kw:
dict
Dictionary of
intersect
command-line options
- kw:
- Outputs:
- opts:
InterseectOpts
Intersect utility options interface
- opts:
- Versions:
2016-04-05
@ddalle
: Version 1.02022-10-29
@ddalle
: Version 2.0;OptionsDict
- get_intersect_T(j=None, i=None, **kw)¶
Get option to also write Tecplot file
Components.i.plt
- Call:
>>> T = opts.get_intersect_T(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- T: {
False
} |True
option to also write Tecplot file
Components.i.plt
- T: {
- get_intersect_ascii(j=None, i=None, **kw)¶
Get flag that input file is ASCII
- Call:
>>> ascii = opts.get_intersect_ascii(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- ascii: {
None
} |True
|False
flag that input file is ASCII
- ascii: {
- get_intersect_cutout(j=None, i=None, **kw)¶
Get number of component to subtract
- Call:
>>> cutout = opts.get_intersect_cutout(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- cutout: {
None
} |int
number of component to subtract
- cutout: {
- get_intersect_fast(j=None, i=None, **kw)¶
Get also write unformatted FAST file
Components.i.fast
- Call:
>>> fast = opts.get_intersect_fast(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- fast: {
False
} |True
also write unformatted FAST file
Components.i.fast
- fast: {
- get_intersect_i(j=None, i=None, **kw)¶
Get input file to
intersect
- Call:
>>> i = opts.get_intersect_i(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- i: {
'Components.tri'
} |str
input file to
intersect
- i: {
- get_intersect_intersections(j=None, i=None, **kw)¶
Get option to write intersections to
intersect.dat
- Call:
>>> intersections = opts.get_intersect_intersections(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- intersections: {
False
} |True
option to write intersections to
intersect.dat
- intersections: {
- get_intersect_o(j=None, i=None, **kw)¶
Get output file for
intersect
- Call:
>>> o = opts.get_intersect_o(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- o: {
'Components.i.tri'
} |str
output file for
intersect
- o: {
- get_intersect_overlap(j=None, i=None, **kw)¶
Get perform boolean intersection of this comp number
- Call:
>>> overlap = opts.get_intersect_overlap(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- overlap: {
None
} |int
perform boolean intersection of this comp number
- overlap: {
- get_intersect_rm(j=None, i=None, **kw)¶
Get option to remove small triangles from results
- Call:
>>> rm = opts.get_intersect_rm(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- rm: {
False
} |True
option to remove small triangles from results
- rm: {
- get_intersect_smalltri(j=None, i=None, **kw)¶
Get cutoff size for small triangles with rm
- Call:
>>> smalltri = opts.get_intersect_smalltri(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- smalltri: {
0.0001
} |float
cutoff size for small triangles with rm
- smalltri: {
- get_intersect_triged(j=None, i=None, **kw)¶
Get option to use CGT
triged
to clean output file- Call:
>>> triged = opts.get_intersect_triged(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- triged: {
True
} |False
option to use CGT
triged
to clean output file
- triged: {
- get_intersect_v(j=None, i=None, **kw)¶
Get verbose mode
- Call:
>>> v = opts.get_intersect_v(j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- v: {
False
} |True
verbose mode
- v: {
- set_intersect_T(v, j=None, mode=None)¶
Get option to also write Tecplot file
Components.i.plt
- Call:
>>> opts.set_intersect_T(T, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- T: {
False
} |True
option to also write Tecplot file
Components.i.plt
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_ascii(v, j=None, mode=None)¶
Get flag that input file is ASCII
- Call:
>>> opts.set_intersect_ascii(ascii, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- ascii: {
None
} |True
|False
flag that input file is ASCII
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_cutout(v, j=None, mode=None)¶
Get number of component to subtract
- Call:
>>> opts.set_intersect_cutout(cutout, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- cutout: {
None
} |int
number of component to subtract
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_fast(v, j=None, mode=None)¶
Get also write unformatted FAST file
Components.i.fast
- Call:
>>> opts.set_intersect_fast(fast, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- fast: {
False
} |True
also write unformatted FAST file
Components.i.fast
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_i(v, j=None, mode=None)¶
Get input file to
intersect
- Call:
>>> opts.set_intersect_i(i, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- i: {
'Components.tri'
} |str
input file to
intersect
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_intersections(v, j=None, mode=None)¶
Get option to write intersections to
intersect.dat
- Call:
>>> opts.set_intersect_intersections(intersections, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- intersections: {
False
} |True
option to write intersections to
intersect.dat
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_o(v, j=None, mode=None)¶
Get output file for
intersect
- Call:
>>> opts.set_intersect_o(o, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- o: {
'Components.i.tri'
} |str
output file for
intersect
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_overlap(v, j=None, mode=None)¶
Get perform boolean intersection of this comp number
- Call:
>>> opts.set_intersect_overlap(overlap, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- overlap: {
None
} |int
perform boolean intersection of this comp number
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_rm(v, j=None, mode=None)¶
Get option to remove small triangles from results
- Call:
>>> opts.set_intersect_rm(rm, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- rm: {
False
} |True
option to remove small triangles from results
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_smalltri(v, j=None, mode=None)¶
Get cutoff size for small triangles with rm
- Call:
>>> opts.set_intersect_smalltri(smalltri, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- smalltri: {
0.0001
} |float
cutoff size for small triangles with rm
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_triged(v, j=None, mode=None)¶
Get option to use CGT
triged
to clean output file- Call:
>>> opts.set_intersect_triged(triged, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- triged: {
True
} |False
option to use CGT
triged
to clean output file- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_intersect_v(v, j=None, mode=None)¶
Get verbose mode
- Call:
>>> opts.set_intersect_v(v, j=None, i=None, **kw)
- Inputs:
- opts: IntersectOpts
options interface
- v: {
False
} |True
verbose mode
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- class cape.cfdx.options.isectopts.VerifyOpts(*args, **kw)¶
Options for command-line options to Cart3D
verify
tool- Call:
>>> opts = VerifyOpts(**kw)
- Inputs:
- kw:
dict
Dictionary of
verify
command-line options
- kw:
- Outputs:
- opts:
VerifyOpts
Options interface for
verify`
options
- opts:
- Versions:
2016-04-05
@ddalle
: Version 1.0 (verify
)2022-10-29
@ddalle
: Version 2.0;OptionsDict
- get_verify_ascii(j=None, i=None, **kw)¶
Get option for ASCII input file to
verify
- Call:
>>> ascii = opts.get_verify_ascii(j=None, i=None, **kw)
- Inputs:
- opts: VerifyOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- ascii: {
True
} |False
option for ASCII input file to
verify
- ascii: {
- get_verify_i(j=None, i=None, **kw)¶
Get input file for
verify
- Call:
>>> i = opts.get_verify_i(j=None, i=None, **kw)
- Inputs:
- opts: VerifyOpts
options interface
- j: {
None
} |int
Phase index; use
None
to just return v- i: {
None
} |int
|np.ndarray
opts.x index(es) to use with
@expr
,@map
, etc.- vdef: {
None
} |object
Manual default
- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- ring: {opts._optring[key]} |
True
|False
Override option to loop through phase inputs
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- x: {
None
} |dict
Ref conditions to use with
@expr
,@map
, etc.; often a run matrix; used in combination with i- sample: {
True
} |False
Apply j, i, and other settings recursively if output is a
list
ordict
- Outputs:
- i: {
None
} |str
input file for
verify
- i: {
- set_verify_ascii(v, j=None, mode=None)¶
Get option for ASCII input file to
verify
- Call:
>>> opts.set_verify_ascii(ascii, j=None, i=None, **kw)
- Inputs:
- opts: VerifyOpts
options interface
- ascii: {
True
} |False
option for ASCII input file to
verify
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar
- set_verify_i(v, j=None, mode=None)¶
Get input file for
verify
- Call:
>>> opts.set_verify_i(i, j=None, i=None, **kw)
- Inputs:
- opts: VerifyOpts
options interface
- i: {
None
} |str
input file for
verify
- j: {
None
} |int
Phase index; use
None
to just return v- mode: {
None
} |0
|1
|2
|3
Warning mode code
0
:no checks
1
:validate silently
2
:validate and show warnings
3
:raise an exception if invalid
- listdepth: {
0
} |int
> 0 Depth of list to treat as a scalar