Opened 5 years ago
Last modified 5 years ago
#3734 assigned defect
Have 'usage' report default value
| Reported by: | Tristan Croll | Owned by: | Greg Couch |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Command Line | Version: | |
| Keywords: | Cc: | Eric Pettersen | |
| Blocked By: | Blocking: | ||
| Notify when closed: | Platform: | all | |
| Project: | ChimeraX |
Description
The following bug report has been submitted:
Platform: Darwin-19.6.0-x86_64-i386-64bit
ChimeraX Version: 1.1rc202009070534 (2020-09-07 05:34:34 UTC)
Description
It might be a really nice touch if for commands with optional and/or keyword arguments, "usage {command}" reported the default values of those arguments. It should be possible to do that pretty straightforwardly using the `inspect` module on the method the command wraps - `inspect.signature(function)` lets you query each argument and its default value (if any).
Log:
UCSF ChimeraX version: 1.1rc202009070534 (2020-09-07)
© 2016-2020 Regents of the University of California. All rights reserved.
How to cite UCSF ChimeraX
> usage volume
volume [volumes] [style style] [change change] [show] [hide] [toggle] [close
close] [level level] [rmsLevel rmsLevel] [sdLevel sdLevel] [encloseVolume
encloseVolume] [fastEncloseVolume fastEncloseVolume] [color color] [brightness
a number] [transparency a number] [appearance appearance] [nameAppearance a
text string] [nameForget nameForget] [step map step] [region map region]
[expandSinglePlane true or false] [origin 1 or 3 floats] [originIndex 1 or 3
floats] [voxelSize 1 or 3 floats] [planes planes
x|y|z[,<start>[,<end>[,<increment>[,<depth>]]]]] [dumpHeader true or false]
[pickable true or false] [symmetry symmetry] [center center point]
[centerIndex 1 or 3 floats] [axis an axis vector] [coordinateSystem a
coordinate-system] [dataCacheSize a number] [showOnOpen true or false]
[voxelLimitForOpen a number] [showPlane true or false] [voxelLimitForPlane a
number] [showOutlineBox true or false] [outlineBoxRgb a color]
[limitVoxelCount true or false] [voxelLimit a number] [colorMode colorMode]
[colormapOnGpu true or false] [colormapSize an integer] [colormapExtendLeft
true or false] [colormapExtendRight true or false] [backingColor backingColor]
[blendOnGpu true or false] [projectionMode projectionMode] [planeSpacing
planeSpacing] [fullRegionOnGpu true or false] [btCorrection true or false]
[minimalTextureMemory true or false] [maximumIntensityProjection true or
false] [linearInterpolation true or false] [dimTransparency true or false]
[dimTransparentVoxels true or false] [smoothLines true or false] [meshLighting
true or false] [twoSidedLighting true or false] [flipNormals true or false]
[subdivideSurface true or false] [subdivisionLevels an integer]
[surfaceSmoothing true or false] [smoothingIterations an integer]
[smoothingFactor a number] [squareMesh true or false] [capFaces true or false]
[boxFaces true or false] [orthoplanes orthoplanes] [positionPlanes
positionPlanes] [tiltedSlab true or false] [tiltedSlabAxis an axis vector]
[tiltedSlabOffset a number] [tiltedSlabSpacing a number] [tiltedSlabPlaneCount
an integer] [imageMode imageMode] [calculateSurfaces true or false]
— set volume model parameters, display style and colors
style: one of image, mesh, solid, or surface
change: one of image or surface
close: one of image or surface
level: some numbers, repeatable
rmsLevel: some numbers, repeatable
sdLevel: some numbers, repeatable
encloseVolume: some numbers
fastEncloseVolume: some numbers
color: a color, repeatable
appearance: one of Airways, airways, Airways II, Black & White, Bone + Skin,
Bone + Skin II, brain, chest, CT_Bones, CT_Kidneys, CT_Liver, CT_Lungs,
CT_Muscles, CT_Skin, CT_Soft_Tissue, CT_Vessels, CT_w_Contrast, Dark Bone,
Glossy, Glossy II, Gold Bone, High Contrast, initial, Low Contrast, Mid
Contrast, No Shading, Pencil, Red on White, Skin On Blue, Skin On Blue II,
Soft, Soft + Skin, Soft + Skin II, Soft + Skin III, Soft On Blue, Soft on
White, Standard, Vascular, Vascular II, Vascular III, Vascular IV, or Yellow
Bone
nameForget: one of Airways, airways, Airways II, Black & White, Bone + Skin,
Bone + Skin II, brain, chest, CT_Bones, CT_Kidneys, CT_Liver, CT_Lungs,
CT_Muscles, CT_Skin, CT_Soft_Tissue, CT_Vessels, CT_w_Contrast, Dark Bone,
Glossy, Glossy II, Gold Bone, High Contrast, initial, Low Contrast, Mid
Contrast, No Shading, Pencil, Red on White, Skin On Blue, Skin On Blue II,
Soft, Soft + Skin, Soft + Skin II, Soft + Skin III, Soft On Blue, Soft on
White, Standard, Vascular, Vascular II, Vascular III, Vascular IV, or Yellow
Bone
colorMode: one of auto12, auto16, auto4, auto8, l12, l16, l4, l8, la12, la16,
la4, la8, opaque12, opaque16, opaque4, opaque8, rgb12, rgb16, rgb4, rgb8,
rgba12, rgba16, rgba4, or rgba8
backingColor: a color or none
projectionMode: one of 2d-x, 2d-xyz, 2d-y, 2d-z, 3d, or auto
planeSpacing: one of max, mean, or min or a number
orthoplanes: one of off, xy, xyz, xz, or yz
positionPlanes: some integers
imageMode: one of box faces, full region, orthoplanes, or tilted slab
Subcommands are:
* volume add
* volume bin
* volume boxes
* volume copy
* volume cover
* volume erase
* volume falloff
* volume flatten
* volume flip
* volume fourier
* volume gaussian
* volume laplacian
* volume localCorrelation
* volume mask
* volume maximum
* volume median
* volume minimum
* volume morph
* volume multiply
* volume new
* volume octant
* volume ~octant
* volume onesmask
* volume permuteAxes
* volume resample
* volume ridges
* volume scale
* volume settings
* volume splitbyzone
* volume subtract
* volume threshold
* volume tile
* volume unbend
* volume unroll
* volume unzone
* volume zone
OpenGL version: 4.1 INTEL-14.7.8
OpenGL renderer: Intel(R) HD Graphics 6000
OpenGL vendor: Intel Inc.Hardware:
Hardware Overview:
Model Name: MacBook Air
Model Identifier: MacBookAir7,2
Processor Name: Dual-Core Intel Core i5
Processor Speed: 1.6 GHz
Number of Processors: 1
Total Number of Cores: 2
L2 Cache (per Core): 256 KB
L3 Cache: 3 MB
Hyper-Threading Technology: Enabled
Memory: 8 GB
Boot ROM Version: 195.0.0.0.0
SMC Version (system): 2.27f2
Software:
System Software Overview:
System Version: macOS 10.15.6 (19G2021)
Kernel Version: Darwin 19.6.0
Time since boot: 34 days 21:19
Graphics/Displays:
Intel HD Graphics 6000:
Chipset Model: Intel HD Graphics 6000
Type: GPU
Bus: Built-In
VRAM (Dynamic, Max): 1536 MB
Vendor: Intel
Device ID: 0x1626
Revision ID: 0x0009
Metal: Supported, feature set macOS GPUFamily1 v4
Displays:
Color LCD:
Display Type: LCD
Resolution: 1440 x 900 (Widescreen eXtended Graphics Array Plus)
UI Looks like: 1440 x 900
Framebuffer Depth: 24-Bit Color (ARGB8888)
Main Display: Yes
Mirror: Off
Online: Yes
Automatically Adjust Brightness: No
Connection Type: Internal
PyQt version: 5.12.3
Compiled Qt version: 5.12.4
Runtime Qt version: 5.12.9
Installed Packages:
alabaster: 0.7.12
appdirs: 1.4.4
appnope: 0.1.0
Babel: 2.8.0
backcall: 0.2.0
blockdiag: 2.0.1
certifi: 2020.6.20
chardet: 3.0.4
ChimeraX-AddH: 2.1.1
ChimeraX-AlignmentAlgorithms: 2.0
ChimeraX-AlignmentHdrs: 3.2
ChimeraX-AlignmentMatrices: 2.0
ChimeraX-Alignments: 2.1
ChimeraX-Arrays: 1.0
ChimeraX-Atomic: 1.6.1
ChimeraX-AtomSearch: 2.0
ChimeraX-AxesPlanes: 2.0
ChimeraX-BasicActions: 1.1
ChimeraX-BILD: 1.0
ChimeraX-BlastProtein: 1.0.1
ChimeraX-BondRot: 2.0
ChimeraX-BugReporter: 1.0
ChimeraX-BuildStructure: 2.0
ChimeraX-Bumps: 1.0
ChimeraX-BundleBuilder: 1.0
ChimeraX-ButtonPanel: 1.0
ChimeraX-CageBuilder: 1.0
ChimeraX-CellPack: 1.0
ChimeraX-Centroids: 1.1
ChimeraX-ChemGroup: 2.0
ChimeraX-Clashes: 2.0
ChimeraX-Clipper: 0.15.0
ChimeraX-ColorActions: 1.0
ChimeraX-ColorGlobe: 1.0
ChimeraX-CommandLine: 1.1.3
ChimeraX-ConnectStructure: 2.0
ChimeraX-Contacts: 1.0
ChimeraX-Core: 1.1rc202009070534
ChimeraX-CoreFormats: 1.0
ChimeraX-coulombic: 1.0.1
ChimeraX-Crosslinks: 1.0
ChimeraX-Crystal: 1.0
ChimeraX-DataFormats: 1.0
ChimeraX-Dicom: 1.0
ChimeraX-DistMonitor: 1.1
ChimeraX-DistUI: 1.0
ChimeraX-Dssp: 2.0
ChimeraX-EMDB-SFF: 1.0
ChimeraX-ExperimentalCommands: 1.0
ChimeraX-FileHistory: 1.0
ChimeraX-FunctionKey: 1.0
ChimeraX-Geometry: 1.1
ChimeraX-gltf: 1.0
ChimeraX-Graphics: 1.0
ChimeraX-Hbonds: 2.0
ChimeraX-Help: 1.0
ChimeraX-HKCage: 1.0
ChimeraX-IHM: 1.0
ChimeraX-ImageFormats: 1.0
ChimeraX-IMOD: 1.0
ChimeraX-IO: 1.0
ChimeraX-ISOLDE: 1.0.2
ChimeraX-Label: 1.0
ChimeraX-ListInfo: 1.0
ChimeraX-Log: 1.1.1
ChimeraX-LookingGlass: 1.1
ChimeraX-Map: 1.0.1
ChimeraX-MapData: 2.0
ChimeraX-MapEraser: 1.0
ChimeraX-MapFilter: 2.0
ChimeraX-MapFit: 2.0
ChimeraX-MapSeries: 2.0
ChimeraX-Markers: 1.0
ChimeraX-Mask: 1.0
ChimeraX-MatchMaker: 1.1
ChimeraX-MDcrds: 2.0
ChimeraX-MedicalToolbar: 1.0.1
ChimeraX-Meeting: 1.0
ChimeraX-MLP: 1.0
ChimeraX-mmCIF: 2.2
ChimeraX-MMTF: 2.0
ChimeraX-Modeller: 1.0
ChimeraX-ModelPanel: 1.0
ChimeraX-ModelSeries: 1.0
ChimeraX-Mol2: 2.0
ChimeraX-Morph: 1.0
ChimeraX-MouseModes: 1.0
ChimeraX-Movie: 1.0
ChimeraX-Neuron: 1.0
ChimeraX-Nucleotides: 2.0
ChimeraX-OpenCommand: 1.2.1
ChimeraX-PDB: 2.1
ChimeraX-PDBBio: 1.0
ChimeraX-PickBlobs: 1.0
ChimeraX-Positions: 1.0
ChimeraX-PresetMgr: 1.0
ChimeraX-PubChem: 2.0
ChimeraX-Read-Pbonds: 1.0
ChimeraX-Registration: 1.1
ChimeraX-RemoteControl: 1.0
ChimeraX-ResidueFit: 1.0
ChimeraX-RestServer: 1.0
ChimeraX-RNALayout: 1.0
ChimeraX-RotamerLibMgr: 2.0
ChimeraX-RotamerLibsDunbrack: 2.0
ChimeraX-RotamerLibsDynameomics: 2.0
ChimeraX-RotamerLibsRichardson: 2.0
ChimeraX-SaveCommand: 1.2
ChimeraX-SchemeMgr: 1.0
ChimeraX-SDF: 2.0
ChimeraX-Segger: 1.0
ChimeraX-Segment: 1.0
ChimeraX-SeqView: 2.2
ChimeraX-Shape: 1.0.1
ChimeraX-Shell: 1.0
ChimeraX-Shortcuts: 1.0
ChimeraX-ShowAttr: 1.0
ChimeraX-ShowSequences: 1.0
ChimeraX-SideView: 1.0
ChimeraX-Smiles: 2.0
ChimeraX-SmoothLines: 1.0
ChimeraX-SpaceNavigator: 1.0
ChimeraX-StdCommands: 1.0.4
ChimeraX-STL: 1.0
ChimeraX-Storm: 1.0
ChimeraX-Struts: 1.0
ChimeraX-Surface: 1.0
ChimeraX-SwapAA: 2.0
ChimeraX-SwapRes: 2.0
ChimeraX-TapeMeasure: 1.0
ChimeraX-Test: 1.0
ChimeraX-Toolbar: 1.0
ChimeraX-ToolshedUtils: 1.0
ChimeraX-Tug: 1.0
ChimeraX-UI: 1.2.3
ChimeraX-uniprot: 2.0
ChimeraX-ViewDockX: 1.0
ChimeraX-Vive: 1.1
ChimeraX-VolumeMenu: 1.0
ChimeraX-VTK: 1.0
ChimeraX-WavefrontOBJ: 1.0
ChimeraX-WebCam: 1.0
ChimeraX-WebServices: 1.0
ChimeraX-Zone: 1.0
colorama: 0.4.3
comtypes: 1.1.7
cxservices: 1.0
cycler: 0.10.0
Cython: 0.29.20
decorator: 4.4.2
distlib: 0.3.1
docutils: 0.16
filelock: 3.0.12
funcparserlib: 0.3.6
grako: 3.16.5
h5py: 2.10.0
html2text: 2020.1.16
idna: 2.10
ihm: 0.16
imagecodecs: 2020.5.30
imagecodecs-lite: 2020.1.31
imagesize: 1.2.0
ipykernel: 5.3.0
ipython: 7.15.0
ipython-genutils: 0.2.0
jedi: 0.17.2
Jinja2: 2.11.2
jupyter-client: 6.1.3
jupyter-core: 4.6.3
kiwisolver: 1.2.0
line-profiler: 2.1.2
lxml: 4.5.1
MarkupSafe: 1.1.1
matplotlib: 3.2.1
msgpack: 1.0.0
netifaces: 0.10.9
networkx: 2.4
numexpr: 2.7.1
numpy: 1.18.5
numpydoc: 1.0.0
openvr: 1.12.501
packaging: 20.4
parso: 0.7.1
pexpect: 4.8.0
pickleshare: 0.7.5
Pillow: 7.1.2
pip: 20.2.2
pkginfo: 1.5.0.1
prompt-toolkit: 3.0.7
psutil: 5.7.0
ptyprocess: 0.6.0
pycollada: 0.7.1
pydicom: 2.0.0
Pygments: 2.6.1
PyOpenGL: 3.1.5
PyOpenGL-accelerate: 3.1.5
pyparsing: 2.4.7
PyQt5-commercial: 5.12.3
PyQt5-sip: 4.19.19
PyQtWebEngine-commercial: 5.12.1
python-dateutil: 2.8.1
pytz: 2020.1
pyzmq: 19.0.2
qtconsole: 4.7.4
QtPy: 1.9.0
RandomWords: 0.3.0
requests: 2.24.0
scipy: 1.4.1
setuptools: 49.4.0
sfftk-rw: 0.6.6.dev0
six: 1.15.0
snowballstemmer: 2.0.0
sortedcontainers: 2.2.2
Sphinx: 3.1.1
sphinxcontrib-applehelp: 1.0.2
sphinxcontrib-blockdiag: 2.0.0
sphinxcontrib-devhelp: 1.0.2
sphinxcontrib-htmlhelp: 1.0.3
sphinxcontrib-jsmath: 1.0.1
sphinxcontrib-qthelp: 1.0.3
sphinxcontrib-serializinghtml: 1.1.4
suds-jurko: 0.6
tables: 3.6.1
tifffile: 2020.6.3
tinyarray: 1.2.2
tornado: 6.0.4
traitlets: 5.0.4
urllib3: 1.25.10
wcwidth: 0.2.5
webcolors: 1.11.1
wheel: 0.34.2
Change History (2)
comment:1 by , 5 years ago
| Cc: | added |
|---|---|
| Component: | Unassigned → Command Line |
| Owner: | set to |
| Platform: | → all |
| Project: | → ChimeraX |
| Status: | new → assigned |
| Summary: | ChimeraX bug report submission → Have 'usage' report default value |
follow-up: 2 comment:2 by , 5 years ago
Hmm... hadn't considered the "illegal value" situation - but the problem with having it in the help file is the same as with all documentation - it's painfully easy for what's in the help file to get out of step with what's actually in the code.
________________________________
From: ChimeraX <ChimeraX-bugs-admin@cgl.ucsf.edu>
Sent: 18 September 2020 16:35
Cc: gregc@cgl.ucsf.edu <gregc@cgl.ucsf.edu>; pett@cgl.ucsf.edu <pett@cgl.ucsf.edu>; Tristan Croll <tic20@cam.ac.uk>
Subject: Re: [ChimeraX] #3734: Have 'usage' report default value (was: ChimeraX bug report submission)
#3734: Have 'usage' report default value
------------------------------------+------------------------
Reporter: Tristan Croll | Owner: Greg Couch
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: Command Line | Version:
Resolution: | Keywords:
Blocked By: | Blocking:
Notify when closed: | Platform: all
Project: ChimeraX |
------------------------------------+------------------------
Changes (by Eric Pettersen):
* status: new => assigned
* cc: Eric Pettersen (added)
* component: Unassigned => Command Line
* project: => ChimeraX
* platform: => all
* owner: (none) => Greg Couch
Comment:
Well, this is really what 'help' is for. While the approach you suggest
would "mostly" work, the problem is that sometimes the "default" value is
in fact an illegal value -- used to detect that the parameter was not
explicitly supplied by the user and that special behavior (or a special
value) should be used.
--
Ticket URL: <https://plato.cgl.ucsf.edu/trac/ChimeraX/ticket/3734#comment:1>
ChimeraX <http://www.rbvi.ucsf.edu/chimerax/>
ChimeraX Issue Tracker
Note:
See TracTickets
for help on using tickets.
Well, this is really what 'help' is for. While the approach you suggest would "mostly" work, the problem is that sometimes the "default" value is in fact an illegal value -- used to detect that the parameter was not explicitly supplied by the user and that special behavior (or a special value) should be used.