173 Commits

Author SHA1 Message Date
Jarrett Johnson
9e2ca7d92c Move GetRawAlignment to ExecutivePython 2024-01-30 12:53:05 -05:00
Thomas Holder
af77ece88c Fix GIL for get_unused_name (#324)
Fixes https://github.com/schrodinger/pymol-open-source/issues/320
2023-12-20 10:38:11 -05:00
Jarrett Johnson
9333da43b2 Specify color ramp for volume state
Fixes #289
2023-07-20 12:07:03 -04:00
Thomas Holder
a3f3dd16c2 Fix GIL for get_object_ttt and friends (#285)
The following functions were releasing the GIL and then calling Python
functions:

- CmdCombineObjectTTT
- CmdTransformObject
- CmdTransformSelection
- CmdGetObjectTTT

Fixed by either moving the Python calls outside the unblocked API
context, or by using a blocked API context.
2023-04-15 13:38:59 -04:00
Thomas Holder
b8a7bae98b Fix crash in find_molfile_plugin (#233)
Was calling Python function with unblocked interpreter.
2022-04-25 11:25:03 -04:00
Jarrett Johnson
910329a903 New clip API modes and get_clip 2022-02-22 16:30:32 -05:00
Jarrett Johnson
07d7a790f0 Forward decls/Move headers to source 2021-08-20 11:24:10 -04:00
Thomas Stewart
0d2f6b6c72 PYMOL-3717 Get/Set Commands for Scene Messages 2021-08-20 10:46:39 -04:00
Thomas Stewart
cfba0c2755 PYMOL-3705 Fix quiet for png 2021-07-07 12:31:26 -04:00
Thomas Stewart
cb277dfd86 PYMOL-3694 Scene Refactor to Store Thumbnail
- Adding a pymol::Image thumbnail to MovieScene
    - This allows the thumbnail to be directly
      tied to the Scene when it's stored
- Adding set and get methods to Image.h
2021-07-07 12:27:02 -04:00
Jarrett Johnson
d34b5b20fc Destroy Temp selector before APIExit 2021-07-07 11:43:26 -04:00
Thomas Holder
3355efcf6f PYMOL-3176 draw/png/mpng/refresh: cmd._call_with_opengl_context
When running with a GUI, always run these functions in the main thread
and call makeCurrent() for the OpenGL context.

Reverts workarounds from these commits:
- fabcd9b8 "QOpenGLWidget: fix "png foo.png"" (`glReadBuffer(G->DRAW_BUFFER0)`)
- 8dcce851 "prepare for QOpenGLWidget support" ("refresh" before "draw")

Fixes https://github.com/schrodinger/pymol-open-source/issues/25
Fixes https://github.com/schrodinger/pymol-open-source/issues/150
2021-04-28 04:39:04 -04:00
Thomas Holder
305894124e cmd.png(None) -> bytes 2021-04-28 04:38:33 -04:00
Jarrett Johnson
974195df2b Restore Cmd API block for CmdMSet 2021-04-28 04:05:14 -04:00
Jarrett Johnson
f06526198b Backport Cmd.cpp cleanup from undo 2021-04-28 04:04:41 -04:00
Jarrett Johnson
a529575bd6 Backport SceneClip refactor 2021-04-28 03:57:49 -04:00
Jarrett Johnson
3d5b08e162 MovieScene refactor undo backport 2021-04-28 03:57:43 -04:00
Jarrett Johnson
f3c15a29cc Backport Executive additions from undo 2021-04-28 03:57:31 -04:00
Thomas Holder
3ab08be830 memory usage info
- pymol::memory_usage()
- pymol::memory_available()
- Replace iOS-only function get_free_memory() with pymol::memory_available()
2021-04-06 10:23:24 -04:00
Jarrett Johnson
f6dd412e7d Symop strings from 'bond' never nullptr 2021-03-26 14:29:52 +01:00
Thomas Holder
3049a8f580 PYMOL-3621 File > Open > CMS 2021-03-26 14:16:02 +01:00
Thomas Holder
07435800fc pbc_wrap/pbc_unwrap, smooth+intra_fit pbc support
- new `pbc_wrap` and `pbc_unwrap` commands
- `intra_fit pbc=1` (default) automatically unwraps and rewraps
- `smooth pbc=1` (default) automatically unwraps and rewraps
- Changes CoordSetRealToFrac/CoordSetFracToReal to take the
  premultiplied state matrix into account
2021-03-26 14:04:35 +01:00
Thomas Holder
ba78bd90e8 PYMOL-3595 smooth cutoff
- Add a cutoff argument to the smooth command
2021-03-26 13:53:01 +01:00
Thomas Holder
4893bdd1bd PYMOL-3618 scene_order with spaces in names
Allow passing an actual list to cmd.scene_order() so that we don't have
to split a string by spaces.
2021-03-26 13:49:09 +01:00
Thomas Holder
ddcc931077 Graceful error message for "label all, stereo"
... if rdkit and SCHRODINGER are not available.
2021-03-26 13:48:21 +01:00
Thomas Holder
9154ce95a4 defer_builds_mode 3: Don't purge object-level caches
`cRepInvPurge` will only purge reps, but will not invalidate object data
like nonbonded atoms, neighbors, selections, or sculpting.
2021-02-18 19:32:11 +01:00
Jarrett Johnson
a32a6d05e0 init_cmd func adds pymol._cmd to global modules 2021-02-11 19:14:14 +01:00
Jarrett Johnson
355c45d229 Place CObject in pymol namespace 2021-02-11 19:14:06 +01:00
Thomas Holder
f3c0419654 rebond pbc=1
- Add `pbc` argument to cmd.rebond()
- Refactor ObjectMoleculeConnect
- Add support for OpenMP
2021-02-11 19:05:08 +01:00
Thomas Holder
1142e3ab22 PYMOL-3570 Bonds to crystal symmetry mates 2021-02-11 18:58:26 +01:00
Thomas Holder
ad732da64a get_object_settings: Fix GIL
Fixes a crash with Python 3.9
2021-01-29 09:23:07 +01:00
Thomas Holder
dc2aff4133 Refactor: Doxygen comments, ObjectMoleculeUpdateNeighbors
- Use proper doxygen syntax for all function comments
- ObjectMoleculeUpdateNeighbors allow const argument
- Remove obsolete ObjectMolecule::BondCounter
2021-01-14 15:23:06 +01:00
Thomas Holder
50793b11c4 Fix CmdGetBond GIL
Was calling PyList_New() before PAutoBlock().
2020-12-03 18:26:13 +01:00
Thomas Holder
6cb2b6f05f Some library mode cleanup
- Remove message "PyMOL not running, entering library mode"
- Disable library mode when non-singleton instances are created
- Remove `_cmd._del` and use a capsule destructor instead, this fixes
  `pymol2.PyMOL().__del__` with Python 3.8 (`_cmd` is `None`).
- Clean up `Cmd_New` and `PyMOL_New`
2020-11-19 13:49:30 +01:00
Jarrett Johnson
4431dd0ce2 Settings copied on object copy 2020-10-16 11:07:17 +02:00
Thomas Holder
08c9dff871 PYMOL-3533 Refactor Rep as polymorphic type (2)
Part 2: virtual member functions
2020-09-30 09:46:26 +02:00
Jarrett Johnson
1a2c3fe54c Backport ExecutiveSelectPrepareArgs 2020-09-03 09:49:10 +02:00
Jarrett Johnson
670bd83ebe pymol::Result for ExecutiveSet/UnsetSetting 2020-09-03 09:48:04 +02:00
Jarrett Johnson
e1b20d49d5 CmdTurn logic to SceneRotateAxis 2020-09-03 09:39:30 +02:00
Jarrett Johnson
ce2dc5dd59 move logic from CmdLoadTraj to ExecutiveLoadTraj 2020-09-03 09:39:27 +02:00
Jarrett Johnson
006b7cc872 Fix warnings on VS 2020-08-04 14:02:34 +02:00
Thomas Holder
639a367080 IncentiveOnlyException C++ error propagation
- selection by p.foo
- iterate/alter p.foo
2020-07-17 12:53:05 +02:00
Thomas Holder
4d6edccfc5 Error propagation for cmd.set() et al. 2020-07-15 17:49:35 +02:00
Jarrett Johnson
43f3b2274a CmdLabel: APIExitBlocked 2020-07-15 17:49:30 +02:00
Thomas Holder
09413be126 Refactor cmd.select_list() 2020-07-15 17:42:00 +02:00
Thomas Holder
4ae4c1b00b Eliminate raise_exceptions setting 2020-07-03 15:30:01 +02:00
Thomas Holder
d894c75eca Add pymol._cmd.get_setting_level() 2020-07-03 15:27:56 +02:00
Thomas Holder
39723012f2 iterate/alter: Propagate exceptions 2020-07-03 15:24:24 +02:00
Thomas Holder
5594cd1f25 pymol::Result for get_type 2020-07-03 14:54:43 +02:00
Thomas Holder
82881264bc get_click_string: support any object type
- report `type` and `index` for non-molecular objects
- report `bond`
- expose to Python
2020-07-03 14:54:43 +02:00