本文整理汇总了Python中utilities.debug.print_compact_stack函数的典型用法代码示例。如果您正苦于以下问题:Python print_compact_stack函数的具体用法?Python print_compact_stack怎么用?Python print_compact_stack使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了print_compact_stack函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: get_unit_length
def get_unit_length(phi, psi):
"""
Calculate a length of single amino acid in particular
secondary conformation.
"""
# All unit length values obtained via measurements by me.
# Fixes bug 2959. --Mark 2008-12-23
if phi == -57.0 and psi == -47.0:
unit_length = 1.5 # Alpha helix
elif phi == -135.0 and psi == 135.0:
unit_length = 3.4 # Beta strand
elif phi == -55.0 and psi == -70.0:
unit_length = 1.05 # Pi helix
elif phi == -49.0 and psi == -26.0:
unit_length = 1.95 # 3_10 helix
elif phi == -75.0 and psi == 150.0:
unit_length = 3.14 # Polyproline-II helix
elif phi == -180.0 and psi == 180.0:
unit_length = 3.6 # Fully extended
else:
# User chose "Custom" conformation option in the Insert Peptide PM
# which lets the user set any phi-psi angle values.
# We need a formula to estimate the proper unit_length given the
# conformational angles phi and psi. It would also be a good idea
# to check these values to confirm they are an allowed combination.
# For more info, do a google search for "Ramachandran plot".
# For now, I'm setting the unit length to 1.5. --Mark 2008-12-23
unit_length = 1.5
msg = "\nUser selected custom conformational angles: "\
"phi=%.2f, psi=%.2f.\nSetting unit_length=%.2f\n" % \
(phi, psi, unit_length)
print_compact_stack(msg)
return unit_length
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:34,代码来源:PeptideGenerator.py
示例2: careful_widget_setter
def careful_widget_setter(self, value):
# Note: for some time we used self.widget_setter rather than this method,
# by mistake, and it apparently worked fine. We'll still use this method
# as a precaution; also it might be truly needed if the widget quantizes
# the value, unless the widget refrains from sending signals when
# programmatically set. [bruce 070815]
if self.debug:
print "\n_changes__debug_print: %r setting %r to %r using %r" % \
( self, self.widget, value, self.widget_setter )
self.disconnect() # avoid possible recursion
try:
self.widget_setter(value)
except:
print_compact_traceback("bug: ignoring exception setting value of %r to %r: " % (self, value))
print_compact_stack(" fyi: prior exception came from: ")
self.destroy() #bruce 080930
# this seems to be safe, but debug output implies it fails to stop formula
# from continuing to call setter! but that seems unlikely... nevermind for now.
# Review: do we want subsequent use of self
# to be silently ok, smaller message, or error? If this destroy worked
# then I think it should be silently ok, but might not be now,
# depending on how refs to self continue to be used.
pass
else:
self.connect()
### WARNING: .connect is slow, since it runs our Python code to set up an undo wrapper
# around the slot! We should revise this to tell Qt to block the signals instead.
# [We can use: bool QObject::blockSignals ( bool block ) ==> returns prior value of signalsBlocked,
# now used in a helper function setValue_with_signals_blocked]
# This will matter for performance when this is used for state which changes during a drag.
# Note: avoiding the slot call is needed not only for recursion, but to avoid the
# Undo checkpoint in the wrapper.
# [bruce comments 071015; see also bug 2564 in other code]
return
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:34,代码来源:prefs_widgets.py
示例3: getStrands
def getStrands(self):
"""
Returns a list of strands inside a DnaGroup object
@return: A list containing all the strand objects
within self.
@rtype: list
@see: B{BuildDna_PropertyManager.updateStrandListWidget()}
@see: B{BuildDna_PropertyManager._currentSelectionParams}
"""
#TO BE REVISED. As of 2008-01-17, it uses isinstance check for
#Chunk and some additional things to find out a list of strands inside
# a DnaGroup -- Ninad 2008-01-17
if self.assy is None:
#This is to avoid possible bugs if group gets deleted. But print
#traceback so that we know about this bug. This could happen due to
#insufficient command sequencer stack. Temporary fix for bug 2699
print_compact_stack("bug: self.assy is None for DnaGroup %s."%self)
return ()
strandList = []
def filterStrands(node):
if isinstance(node, self.assy.DnaStrand) and not node.isEmpty():
strandList.append(node)
elif isinstance(node, self.assy.Chunk) and node.isStrandChunk():
if node.parent_node_of_class(self.assy.DnaStrand) is None:
strandList.append(node)
self.apply2all(filterStrands)
return strandList
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:35,代码来源:DnaGroup.py
示例4: getAxisChunks
def getAxisChunks(self):
"""
Returns a list of Axis chunks inside a DnaGroup object
@return: A list containing all the axis chunks
within self.
@rtype: list
"""
if self.assy is None:
#This is to avoid possible bugs if group gets deleted. But print
#traceback so that we know about this bug. This could happen due to
#insufficient command sequencer stack. Temporary fix for bug 2699
print_compact_stack("bug: self.assy is None for DnaGroup %s."%self)
return ()
#TO BE REVISED. It uses isinstance check for
#Chunk and some additional things to find out a list of strands inside
# a DnaGroup -- Ninad 2008-02-02
axisChunkList = []
def filterAxisChunks(node):
if isinstance(node, self.assy.Chunk) and node.isAxisChunk():
axisChunkList.append(node)
self.apply2all(filterAxisChunks)
return axisChunkList
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:27,代码来源:DnaGroup.py
示例5: get_image_path
def get_image_path(name, print_errors = True):
"""
Return the full path given an image/icon path name.
@param name: The image path name provided by the user. The path should start
with 'ui/' directory inside the src directory.
@type name: str
@param print_errors: whether to report errors for missing icon files
when atom_debug is set. True by default.
@type print_errors: boolean
@return: full path of the image.
@rtype: str
"""
root, ext = os.path.splitext(name)
if not ext:
if name: # 'name' can be an empty string. See docstring for details.
msg = "Warning: No '.png' extension passed to get_image_path for [%s]. " \
"\nPlease add the .png suffix in the source code to remove this warning.\n" % name
print_compact_stack(msg)
name = name + '.png'
iconPath = os.path.join(image_directory(), name)
iconPath = os.path.normpath(iconPath)
if not os.path.exists(iconPath):
if debug_flags.atom_debug and print_errors:
print "icon path %s doesn't exist." % (iconPath,)
return iconPath
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:33,代码来源:icon_utilities.py
示例6: _get_mode
def _get_mode(self):
"""
Old code is trying to get self.mode,
which it might want for either the Command API (self.currentCommand)
or GraphicsMode API (self.graphicsMode). We don't know which it wants.
(TODO, if worthwhile: deduce which, print a map of code line vs
which one of these to change it to.)
This can only be supported if the currentCommand is also old, so that
it handles both APIs.
Print a warning if not (or assert 0?), and return the currentCommand
in either case (but don't wrap it with an API enforcer).
"""
# Note: when we think there are not many uses of this left,
# we'll make every use print_compact_stack to aid in finding the rest
# and replacing them with one or the other of currentCommand and
# graphicsMode. Or we might print a once-per-line-number message when
# it's called... ### TODO
#
# hmm, this is true now! [bruce 071011]
print_compact_stack("fyi: this old code still accesses glpane.mode " \
"by that deprecated name: ")
raw_currentCommand = self._raw_currentCommand
graphicsMode = self._raw_currentCommand.graphicsMode
if raw_currentCommand is not graphicsMode:
print "old code warning: %r is not %r and we don't know " \
"which one %r.mode should return" % \
(raw_currentCommand, graphicsMode, self)
# TODO: print_compact_stack?
return raw_currentCommand
开发者ID:ematvey,项目名称:NanoEngineer-1,代码行数:31,代码来源:CommandSequencer.py
示例7: _leftDown_preparation_for_dragging
def _leftDown_preparation_for_dragging(self, objectUnderMouse, event):
"""
Handle left down event. Preparation for rotation and/or selection
This method is called inside of self.leftDown.
@param event: The mouse left down event.
@type event: QMouseEvent instance
@see: self.leftDown
@see: self.leftDragRotation
Overrides _superclass._leftDown_preparation_for_dragging
"""
_superclass._leftDown_preparation_for_dragging(self, objectUnderMouse, event)
self.o.SaveMouse(event)
self.picking = True
self.dragdist = 0.0
# delta for constrained rotations.
self.rotDelta = 0
if self.rotateOption == "ROTATEDEFAULT":
self.o.trackball.start(self.o.MousePos[0], self.o.MousePos[1])
else:
if self.rotateOption == "ROTATEX":
ma = V(1, 0, 0) # X Axis
self.axis = "X"
elif self.rotateOption == "ROTATEY":
ma = V(0, 1, 0) # Y Axis
self.axis = "Y"
elif self.rotateOption == "ROTATEZ":
ma = V(0, 0, 1) # Z Axis
self.axis = "Z"
elif self.rotateOption == "ROT_TRANS_ALONG_AXIS":
# The method 'self._leftDown_preparation_for_dragging should
# never be reached if self.rotateOption is 'ROT_TRANS_ALONG_AXIS'
# If this code is reached, it indicates a bug. So fail gracefully
# by calling self.leftADown()
if debug_flags.atom_debug:
print_compact_stack(
"bug: _leftDown_preparation_for_dragging" " called for rotate option" "'ROT_TRANS_ALONG_AXIS'"
)
self.leftADown(objectUnderMouse, event)
return
else:
print "Move_Command: Error - unknown rotateOption value =", self.rotateOption
return
ma = norm(V(dot(ma, self.o.right), dot(ma, self.o.up)))
# When in the front view, right = 1,0,0 and up = 0,1,0, so ma will
# be computed as 0,0.This creates a special case problem when the
# user wants to constrain rotation around the Z axis because Zmat
# will be zero. So we have to test for this case (ma = 0,0) and
# fix ma to -1,0. This was needed to fix bug 537. Mark 050420
if ma[0] == 0.0 and ma[1] == 0.0:
ma = [-1.0, 0.0]
self.Zmat = A([ma, [-ma[1], ma[0]]])
self.leftDownType = "ROTATE"
return
开发者ID:nmz787,项目名称:nanoengineer,代码行数:60,代码来源:RotateChunks_GraphicsMode.py
示例8: _master_model_updater
def _master_model_updater( warn_if_needed = False ):
"""
This should be called at the end of every user event which might have
changed anything in any loaded model which defers some updates to this
function.
This can also be called at the beginning of user events, such as redraws
or saves, which want to protect themselves from event-processors which
should have called this at the end, but forgot to. Those callers should
pass warn_if_needed = True, to cause a debug-only warning to be emitted
if the call was necessary. (This function is designed
to be very fast when called more times than necessary.)
This should also be called before taking Undo checkpoints, to make sure
they correspond to legal structures, and so this function's side effects
(and the effect of assy.changed, done by this function as of 060126(?))
are treated as part of the same undoable operation as the changes that
required them to be made. As of 060127 this is done by those checkpoints
calling update_parts, which indirectly calls this function.
In practice, as of 071115, we have not yet tried to put in calls
to this function at the end of user event handlers, so we rely on the
other calls mentioned above, and none of them pass warn_if_needed.
"""
# 0. Don't run while mmp file is being read [###FIX, use one global flag]
if 1:
# KLUGE; the changedicts and updater should really be per-assy...
# this is a temporary scheme for detecting the unanticipated
# running of this in the middle of loading an mmp file, and for
# preventing errors from that,
# but it only works for the main assy -- not e.g. for a partlib
# assy. I don't yet know if this is needed. [bruce 080117]
#update 080319: just in case, I'm fixing the mmpread code
# to also use the global assy to store this.
kluge_main_assy = env.mainwindow().assy
if not kluge_main_assy.assy_valid:
global_model_changedicts.status_of_last_dna_updater_run = LAST_RUN_DIDNT_HAPPEN
msg = "deferring _master_model_updater(warn_if_needed = %r) " \
"since not %r.assy_valid" % (warn_if_needed, kluge_main_assy)
print_compact_stack(msg + ": ") # soon change to print...
return
pass
env.history.emit_all_deferred_summary_messages() #bruce 080212 (3 places)
_run_dna_updater()
env.history.emit_all_deferred_summary_messages()
_run_bond_updater( warn_if_needed = warn_if_needed)
env.history.emit_all_deferred_summary_messages()
_autodelete_empty_groups(kluge_main_assy)
env.history.emit_all_deferred_summary_messages()
return # from _master_model_updater
开发者ID:ematvey,项目名称:NanoEngineer-1,代码行数:59,代码来源:master_model_updater.py
示例9: connect_or_disconnect_signals
def connect_or_disconnect_signals(self, isConnect):
"""
Connect or disconnect widget signals sent to their slot methods.
@param isConnect: If True the widget will send the signals to the slot
method.
@type isConnect: boolean
@see: L{BuildAtoms_Command.connect_or_disconnect_signals} where this is called
"""
if isConnect and self.isAlreadyConnected:
if debug_flags.atom_debug:
print_compact_stack("warning: attempt to connect widgets"\
"in this PM that are already connected." )
return
if not isConnect and self.isAlreadyDisconnected:
if debug_flags.atom_debug:
print_compact_stack("warning: attempt to disconnect widgets"\
"in this PM that are already disconnected.")
return
self.isAlreadyConnected = isConnect
self.isAlreadyDisconnected = not isConnect
if isConnect:
change_connect = self.w.connect
else:
change_connect = self.w.disconnect
change_connect(self.atomChooserComboBox,
SIGNAL("currentIndexChanged(int)"),
self._updateAtomChooserGroupBoxes)
change_connect(self.selectionFilterCheckBox,
SIGNAL("stateChanged(int)"),
self.set_selection_filter)
change_connect(self.showSelectedAtomInfoCheckBox,
SIGNAL("stateChanged(int)"),
self.toggle_selectedAtomPosGroupBox)
change_connect(self.xCoordOfSelectedAtom,
SIGNAL("valueChanged(double)"),
self._moveSelectedAtom)
change_connect(self.yCoordOfSelectedAtom,
SIGNAL("valueChanged(double)"),
self._moveSelectedAtom)
change_connect(self.zCoordOfSelectedAtom,
SIGNAL("valueChanged(double)"),
self._moveSelectedAtom)
connect_checkbox_with_boolean_pref(self.waterCheckBox,
buildModeWaterEnabled_prefs_key)
connect_checkbox_with_boolean_pref(self.highlightingCheckBox,
buildModeHighlightingEnabled_prefs_key)
开发者ID:elfion,项目名称:nanoengineer,代码行数:59,代码来源:BuildAtomsPropertyManager.py
示例10: _e_eval_lval
def _e_eval_lval(self, env, ipath): # 070119 also print _e_eval_lval calls [maybe untested]
assert env
the_expr = self._e_args[0]
res = the_expr._e_eval_lval(env, ipath)
print_compact_stack(
"debug_evals_of_Expr(%r) eval-lvals it to %r at: " % (the_expr, res)
) # k does this ever happen?
return res
开发者ID:octopus89,项目名称:NanoEngineer-1,代码行数:8,代码来源:debug_exprs.py
示例11: _do_whycode_reenable
def _do_whycode_reenable( reasons_list_val, whycode):
"""
[private helper function for maintaining whycode,whymsg lists]
"""
res = filter( lambda (code, msg): code != whycode , reasons_list_val ) # zap items with same whycode
if len(res) == len(reasons_list_val) and env.debug():
print_compact_stack("debug fyi: redundant call of _do_whycode_reenable, whycode %r, remaining reasons %r" % \
( whycode, res ) )
return res
开发者ID:pmetzger,项目名称:nanoengineer,代码行数:9,代码来源:undo_manager.py
示例12: _reverse_neighbor_baseatoms
def _reverse_neighbor_baseatoms(self):
self.neighbor_baseatoms = list(self.neighbor_baseatoms)
self.neighbor_baseatoms.reverse()
if DEBUG_NEIGHBOR_BASEATOMS:
if self.neighbor_baseatoms[0] != -1 or \
self.neighbor_baseatoms[1] != -1:
msg = "reversed %r.neighbor_baseatoms to get %r" % (self, self.neighbor_baseatoms)
print_compact_stack( "\n" + msg + ": ")
return
开发者ID:elfion,项目名称:nanoengineer,代码行数:9,代码来源:DnaChain.py
示例13: _modifyStructure_NEW_SEGMENT_RESIZE
def _modifyStructure_NEW_SEGMENT_RESIZE(self, params): #@ NOT FIXED
"""
This resizes without recreating whole nanotube
Overrides EditCommand._modifystructure.
@attention: is not implemented.
"""
#@TODO: - rename this method from _modifyStructure_NEW_SEGMENT_RESIZE
#to self._modifyStructure, after more testing
#This method is used for debug prefence:
#'Nanotube Segment: resize without recreating whole nanotube'
#see also self.modifyStructure_NEW_SEGMENT_RESIZE
assert self.struct
from utilities.debug import print_compact_stack
print_compact_stack("_modifyStructure_NEW_SEGMENT_RESIZE() not fixed!" )
print "Params =", params
self.nanotube = params #@
length_diff = self._determine_how_to_change_length() #@
if length_diff == 0:
print_compact_stack("BUG: length_diff is always ZERO." )
return
elif length_diff > 0:
print "Nanotube longer by ", length_diff, ", angstroms."
else:
print "Nanotube shorter by ", length_diff, ", angstroms."
return
if numberOfBasePairsToAddOrRemove != 0: #@@@@ Not reached.
resizeEnd_final_position = self._get_resizeEnd_final_position(
ladderEndAxisAtom,
abs(numberOfBasePairsToAddOrRemove),
nanotubeRise )
self.nanotube.modify(self.struct,
length_diff,
ladderEndAxisAtom.posn(),
resizeEnd_final_position)
#Find new end points of structure parameters after modification
#and set these values in the propMgr.
new_end1 , new_end2 = self.struct.nanotube.getEndPoints() #@
params_to_set_in_propMgr = (new_end1,
new_end2)
#TODO: Need to set these params in the PM
#and then self.previousParams = params_to_set_in_propMgr
self.previousParams = params
return
开发者ID:elfion,项目名称:nanoengineer,代码行数:57,代码来源:EditNanotube_EditCommand.py
示例14: __init__
def __init__(self):
print_compact_stack(
"warning: fake_Part_drawing_frame is being instantiated: " )
# done in superclass: self.repeated_bonds_dict = None
# This is necessary to remove any chance of self surviving
# for more than one draw of one object (since using an actual
# dict then would make bonds sometimes fail to be drawn).
# Client code must tolerate this value.
return
开发者ID:pmetzger,项目名称:nanoengineer,代码行数:9,代码来源:Part_drawing_frame.py
示例15: _do_whycode_disable
def _do_whycode_disable( reasons_list_val, whycode, whymsg):
"""
[private helper function for maintaining whycode,whymsg lists]
"""
res = filter( lambda (code, msg): code != whycode , reasons_list_val ) # zap items with same whycode
if len(res) < len(reasons_list_val) and env.debug():
print_compact_stack("debug fyi: redundant call of _do_whycode_disable, whycode %r msg %r, preserved reasons %r" % \
( whycode, whymsg, res ) )
res.append( (whycode, whymsg) ) # put the changed one at the end (#k good??)
return res
开发者ID:pmetzger,项目名称:nanoengineer,代码行数:10,代码来源:undo_manager.py
示例16: insertSeparator
def insertSeparator(self):
"""
This method overrides QToolBar's method. It does nothing since the
normal behavior will screw things up.
@note: If you need this method, please code it! Mark 2008-02-29.
"""
print_compact_stack("insertSeparator() not supported. " \
"Use addSeparator() instead or implement insertSeparator()")
return
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:10,代码来源:NE1_QToolBar.py
示例17: atom_ok
def atom_ok(self, atom):
# note: this can include Pl atoms in PAM5,
# but the wrapper class filters them out of
# the atom list it stores.
if not atom.molecule:
print_compact_stack( "bug: strand_bond_chain_analyzer skipping %r with no .molecule: " % atom)
return False
if atom._dna_updater__error:
return False
return atom.element.role == 'strand' and not atom.molecule.in_a_valid_ladder()
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:10,代码来源:dna_updater_find_chains.py
示例18: connect_or_disconnect_signals
def connect_or_disconnect_signals(self, isConnect):
"""
Connect or disconnect widget signals sent to their slot methods.
This can be overridden in subclasses. By default it does nothing.
@param isConnect: If True the widget will send the signals to the slot
method.
@type isConnect: boolean
"""
#TODO: This is a temporary fix for a bug. When you invoke a temporary
# mode Entering such a temporary mode keeps the signals of
#PM from the previous mode connected (
#but while exiting that temporary mode and reentering the
#previous mode, it atucally reconnects the signal! This gives rise to
#lots of bugs. This needs more general fix in Temporary mode API.
# -- Ninad 2008-01-09 (similar comment exists in MovePropertyManager.py
if isConnect and self.isAlreadyConnected:
if debug_flags.atom_debug:
print_compact_stack("warning: attempt to connect widgets"\
"in this PM that are already connected." )
return
if not isConnect and self.isAlreadyDisconnected:
if debug_flags.atom_debug:
print_compact_stack("warning: attempt to disconnect widgets"\
"in this PM that are already disconnected.")
return
self.isAlreadyConnected = isConnect
self.isAlreadyDisconnected = not isConnect
if isConnect:
change_connect = self.win.connect
else:
change_connect = self.win.disconnect
if self.sequenceEditor:
self.sequenceEditor.connect_or_disconnect_signals(isConnect)
_superclass.connect_or_disconnect_signals(self, isConnect)
change_connect(self.disableStructHighlightingCheckbox,
SIGNAL('stateChanged(int)'),
self.change_struct_highlightPolicy)
change_connect(self.showCursorTextCheckBox,
SIGNAL('stateChanged(int)'),
self._update_state_of_cursorTextGroupBox)
change_connect(self.nameLineEdit,
SIGNAL("editingFinished()"),
self._nameChanged)
return
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:55,代码来源:DnaStrand_PropertyManager.py
示例19: _loadServerList
def _loadServerList(self):
"""Return the list of servers available, otherwise, create a default one. """
if os.path.isfile(self.serverFile):
try:
file = open(self.serverFile, "rb")
return pickle.load(file)
except:
print_compact_stack("Unpickle exception.")
return [SimServer()]
else:
return [SimServer()]
开发者ID:alaindomissy,项目名称:nanoengineer,代码行数:11,代码来源:ServerManager.py
示例20: _set_mode
def _set_mode(self, new_mode):
"""
Old code is trying to set self.mode.
Assume it wants to set _raw_currentCommand, and do that, after complaining.
Soon, this will be illegal.
"""
# TODO: a search for 'self.mode =' reveals no remaining calls,
# so make it an assert 0 soon
print_compact_stack("bug: old code is trying to set glpane.mode directly: ")
self._raw_currentCommand = new_mode
return
开发者ID:ematvey,项目名称:NanoEngineer-1,代码行数:11,代码来源:CommandSequencer.py
注:本文中的utilities.debug.print_compact_stack函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论