rowan-python 2.1.6__tar.gz → 2.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. {rowan_python-2.1.6 → rowan_python-2.1.7}/PKG-INFO +1 -1
  2. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/basic_calculation_with_constraint.py +0 -1
  3. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/basic_calculation_with_solvent.py +0 -2
  4. rowan_python-2.1.7/examples/double_ended_ts_search.py +58 -0
  5. {rowan_python-2.1.6 → rowan_python-2.1.7}/pixi.lock +60 -61
  6. {rowan_python-2.1.6 → rowan_python-2.1.7}/pyproject.toml +2 -2
  7. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/workflow.py +63 -9
  8. {rowan_python-2.1.6 → rowan_python-2.1.7}/.envrc +0 -0
  9. {rowan_python-2.1.6 → rowan_python-2.1.7}/.github/workflows/python-publish.yml +0 -0
  10. {rowan_python-2.1.6 → rowan_python-2.1.7}/.github/workflows/test.yml +0 -0
  11. {rowan_python-2.1.6 → rowan_python-2.1.7}/.gitignore +0 -0
  12. {rowan_python-2.1.6 → rowan_python-2.1.7}/.pre-commit-config.yaml +0 -0
  13. {rowan_python-2.1.6 → rowan_python-2.1.7}/LICENSE +0 -0
  14. {rowan_python-2.1.6 → rowan_python-2.1.7}/README.md +0 -0
  15. {rowan_python-2.1.6 → rowan_python-2.1.7}/docs/images/deciduous-tree-favicon.png +0 -0
  16. {rowan_python-2.1.6 → rowan_python-2.1.7}/docs/index.md +0 -0
  17. {rowan_python-2.1.6 → rowan_python-2.1.7}/docs/rowan_rdkit.md +0 -0
  18. {rowan_python-2.1.6 → rowan_python-2.1.7}/docs/stylesheets/colors.css +0 -0
  19. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/PROTAC_solubility.py +0 -0
  20. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/aqueous_solubility.py +0 -0
  21. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/basic_calculation.py +0 -0
  22. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/basic_calculation_from_json.py +0 -0
  23. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/bde.py +0 -0
  24. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/cofolding_screen.py +0 -0
  25. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/conformer_dependent_redox.py +0 -0
  26. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/conformers.py +0 -0
  27. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/data/workflow_example.json +0 -0
  28. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/docking_screen.py +0 -0
  29. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/fukui_index.py +0 -0
  30. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/ion_mobility.py +0 -0
  31. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/irc.py +0 -0
  32. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/macropka.py +0 -0
  33. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/multistage_opt.py +0 -0
  34. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/nmr.py +0 -0
  35. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/optimization.py +0 -0
  36. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/phenol_pka.py +0 -0
  37. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/pka.py +0 -0
  38. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/protein_cofolding.py +0 -0
  39. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/redox_potential.py +0 -0
  40. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/scan.py +0 -0
  41. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/strain.py +0 -0
  42. {rowan_python-2.1.6 → rowan_python-2.1.7}/examples/tautomer.py +0 -0
  43. {rowan_python-2.1.6 → rowan_python-2.1.7}/mkdocs.yml +0 -0
  44. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/__init__.py +0 -0
  45. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/constants.py +0 -0
  46. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/folder.py +0 -0
  47. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/project.py +0 -0
  48. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/protein.py +0 -0
  49. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/py.typed +0 -0
  50. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/rowan_rdkit/__init__.py +0 -0
  51. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/rowan_rdkit/chem_utils.py +0 -0
  52. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/user.py +0 -0
  53. {rowan_python-2.1.6 → rowan_python-2.1.7}/rowan/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 2.1.6
3
+ Version: 2.1.7
4
4
  Summary: Rowan Python Library
5
5
  Project-URL: Homepage, https://github.com/rowansci/rowan-client
6
6
  Project-URL: Bug Tracker, https://github.com/rowansci/rowan-client/issues
@@ -9,7 +9,6 @@ result = rowan.submit_workflow(
9
9
  workflow_type="basic_calculation",
10
10
  name="Constrained Butane",
11
11
  workflow_data={
12
- "engine": "xtb",
13
12
  "settings": {
14
13
  "method": "gfn2_xtb",
15
14
  "tasks": ["optimize"],
@@ -13,7 +13,6 @@ def compute_energy_with_solvent_correction(molecule: Molecule, method: Method, n
13
13
  name=f"{name} {method} optimization",
14
14
  workflow_data={
15
15
  "settings": {"method": method, "tasks": ["optimize"]},
16
- "engine": "omol25",
17
16
  },
18
17
  )
19
18
 
@@ -33,7 +32,6 @@ def compute_energy_with_solvent_correction(molecule: Molecule, method: Method, n
33
32
  "tasks": ["energy"],
34
33
  "solvent_settings": {"solvent": "water", "model": "cpcmx"},
35
34
  },
36
- "engine": "omol25",
37
35
  },
38
36
  )
39
37
 
@@ -0,0 +1,58 @@
1
+ """
2
+ Run a double-ended transition state search using Rowan.
3
+
4
+ See documentation at: https://docs.rowansci.com/science/workflows/double-ended-ts-search
5
+ """
6
+
7
+ from stjames import Method, Molecule, Settings
8
+ from stjames.optimization.freezing_string_method import (
9
+ FSMInterpolation,
10
+ FSMOptimizationCoordinates,
11
+ FSMSettings,
12
+ )
13
+
14
+ import rowan
15
+
16
+ # rowan.api_key = ""
17
+ HCN = Molecule.from_xyz(
18
+ """\
19
+ H 0 0 -1.1
20
+ C 0 0 0
21
+ N 0 0 1.2""",
22
+ )
23
+ CNH = Molecule.from_xyz(
24
+ """\
25
+ H 0 0 2.3
26
+ C 0 0 0
27
+ N 0 0 1.2""",
28
+ )
29
+ fsm_settings = FSMSettings(
30
+ optimization_coordinates=FSMOptimizationCoordinates.CARTESIAN,
31
+ interpolation_method=FSMInterpolation.REDUNDANT_INTERNAL_COORDINATES,
32
+ min_num_nodes=7,
33
+ num_interpolation_points=5,
34
+ max_optimizer_iterations=3,
35
+ max_line_search_steps=2,
36
+ max_displacement=0.1,
37
+ )
38
+
39
+
40
+ # Run calculation remotely
41
+ result = rowan.submit_double_ended_ts_search_workflow(
42
+ reactant=HCN,
43
+ product=CNH,
44
+ calculation_settings=Settings(method=Method.GFN2_XTB),
45
+ search_settings=fsm_settings,
46
+ optimize_inputs=True,
47
+ optimize_ts=True,
48
+ name="H-C≡N Isomerization",
49
+ )
50
+
51
+ print(f"View workflow privately at: https://labs.rowansci.com/workflow/{result.uuid}")
52
+ result.wait_for_result().fetch_latest(in_place=True)
53
+
54
+ assert result and result.data
55
+ print(result.data["forward_string_distances"])
56
+ print(result.data["backward_string_distances"])
57
+
58
+ print(result)
@@ -22,7 +22,7 @@ environments:
22
22
  - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda
23
23
  - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
24
24
  - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
25
- - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.3-h26f9b46_1.conda
25
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda
26
26
  - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda
27
27
  - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
28
28
  - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda
@@ -46,9 +46,9 @@ environments:
46
46
  - pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
47
47
  - pypi: https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl
48
48
  - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
49
- - pypi: https://files.pythonhosted.org/packages/12/ba/11595ccc9f9cc697349ac66b6227f58140dce7b3e77e433501392e5994f5/stjames-0.0.109-py3-none-any.whl
49
+ - pypi: https://files.pythonhosted.org/packages/72/91/4a7ac04280cef0f6f8b536400951096f7b9714e02e7f5ee9bf4c0e691d5d/stjames-0.0.111-py3-none-any.whl
50
50
  - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl
51
- - pypi: https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl
51
+ - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
52
52
  - pypi: https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl
53
53
  - pypi: ./
54
54
  osx-arm64:
@@ -62,7 +62,7 @@ environments:
62
62
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.4-h4237e3c_0.conda
63
63
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda
64
64
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
65
- - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.3-h5503f6c_1.conda
65
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.4-h5503f6c_0.conda
66
66
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.7-h5c937ed_100_cp313.conda
67
67
  - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
68
68
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda
@@ -86,9 +86,9 @@ environments:
86
86
  - pypi: https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl
87
87
  - pypi: https://files.pythonhosted.org/packages/a3/dc/17031897dae0efacfea57dfd3a82fdd2a2aeb58e0ff71b77b87e44edc772/setuptools-80.9.0-py3-none-any.whl
88
88
  - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
89
- - pypi: https://files.pythonhosted.org/packages/12/ba/11595ccc9f9cc697349ac66b6227f58140dce7b3e77e433501392e5994f5/stjames-0.0.109-py3-none-any.whl
89
+ - pypi: https://files.pythonhosted.org/packages/72/91/4a7ac04280cef0f6f8b536400951096f7b9714e02e7f5ee9bf4c0e691d5d/stjames-0.0.111-py3-none-any.whl
90
90
  - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl
91
- - pypi: https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl
91
+ - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
92
92
  - pypi: https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl
93
93
  - pypi: ./
94
94
  dev:
@@ -113,7 +113,7 @@ environments:
113
113
  - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda
114
114
  - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
115
115
  - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
116
- - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.3-h26f9b46_1.conda
116
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda
117
117
  - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.7-h2b335a9_100_cp313.conda
118
118
  - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
119
119
  - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda
@@ -127,7 +127,7 @@ environments:
127
127
  - pypi: https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl
128
128
  - pypi: https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl
129
129
  - pypi: https://files.pythonhosted.org/packages/7e/95/42aa2156235cbc8fa61208aded06ef46111c4d3f0de233107b3f38631803/charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
130
- - pypi: https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl
130
+ - pypi: https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl
131
131
  - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl
132
132
  - pypi: https://files.pythonhosted.org/packages/a2/77/8c6d22bf61921a59bce5471c2f1f7ac30cd4ac50aadde72b8c48d5727902/coverage-7.10.7-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl
133
133
  - pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
@@ -143,18 +143,18 @@ environments:
143
143
  - pypi: https://files.pythonhosted.org/packages/e5/ae/2ad30f4652712c82f1c23423d79136fbce338932ad166d70c1efb86a5998/identify-2.6.14-py2.py3-none-any.whl
144
144
  - pypi: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl
145
145
  - pypi: https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl
146
- - pypi: https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl
146
+ - pypi: https://files.pythonhosted.org/packages/48/c5/d5e07995077e48220269c28a221e168c91123ad5ceee44d548f54a057fc0/ipython-9.6.0-py3-none-any.whl
147
147
  - pypi: https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl
148
148
  - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl
149
149
  - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl
150
150
  - pypi: https://files.pythonhosted.org/packages/70/ae/44c4a6a4cbb496d93c6257954260fe3a6e91b7bed2240e5dad2a717f5111/markdown-3.9-py3-none-any.whl
151
- - pypi: https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
151
+ - pypi: https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
152
152
  - pypi: https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl
153
153
  - pypi: https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl
154
154
  - pypi: https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl
155
155
  - pypi: https://files.pythonhosted.org/packages/9f/4d/7123b6fa2278000688ebd338e2a06d16870aaf9eceae6ba047ea05f92df1/mkdocs_autorefs-1.4.3-py3-none-any.whl
156
156
  - pypi: https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl
157
- - pypi: https://files.pythonhosted.org/packages/67/d8/a31dd52e657bf12b20574706d07df8d767e1ab4340f9bfb9ce73950e5e59/mkdocs_material-9.6.20-py3-none-any.whl
157
+ - pypi: https://files.pythonhosted.org/packages/cf/4f/98681c2030375fe9b057dbfb9008b68f46c07dddf583f4df09bf8075e37f/mkdocs_material-9.6.21-py3-none-any.whl
158
158
  - pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl
159
159
  - pypi: https://files.pythonhosted.org/packages/7b/2c/f0dc4e1ee7f618f5bff7e05898d20bf8b6e7fa612038f768bfa295f136a4/mkdocstrings-0.30.1-py3-none-any.whl
160
160
  - pypi: https://files.pythonhosted.org/packages/d5/8f/ce008599d9adebf33ed144e7736914385e8537f5fc686fdb7cceb8c22431/mkdocstrings_python-1.18.2-py3-none-any.whl
@@ -193,10 +193,10 @@ environments:
193
193
  - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl
194
194
  - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
195
195
  - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl
196
- - pypi: https://files.pythonhosted.org/packages/12/ba/11595ccc9f9cc697349ac66b6227f58140dce7b3e77e433501392e5994f5/stjames-0.0.109-py3-none-any.whl
196
+ - pypi: https://files.pythonhosted.org/packages/72/91/4a7ac04280cef0f6f8b536400951096f7b9714e02e7f5ee9bf4c0e691d5d/stjames-0.0.111-py3-none-any.whl
197
197
  - pypi: https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl
198
198
  - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl
199
- - pypi: https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl
199
+ - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
200
200
  - pypi: https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl
201
201
  - pypi: https://files.pythonhosted.org/packages/76/06/04c8e804f813cf972e3262f3f8584c232de64f0cde9f703b46cf53a45090/virtualenv-20.34.0-py3-none-any.whl
202
202
  - pypi: https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl
@@ -213,7 +213,7 @@ environments:
213
213
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.50.4-h4237e3c_0.conda
214
214
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda
215
215
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda
216
- - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.3-h5503f6c_1.conda
216
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.4-h5503f6c_0.conda
217
217
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.7-h5c937ed_100_cp313.conda
218
218
  - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
219
219
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda
@@ -227,7 +227,7 @@ environments:
227
227
  - pypi: https://files.pythonhosted.org/packages/e5/48/1549795ba7742c948d2ad169c1c8cdbae65bc450d6cd753d124b17c8cd32/certifi-2025.8.3-py3-none-any.whl
228
228
  - pypi: https://files.pythonhosted.org/packages/c5/55/51844dd50c4fc7a33b653bfaba4c2456f06955289ca770a5dbd5fd267374/cfgv-3.4.0-py2.py3-none-any.whl
229
229
  - pypi: https://files.pythonhosted.org/packages/65/ca/2135ac97709b400c7654b4b764daf5c5567c2da45a30cdd20f9eefe2d658/charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl
230
- - pypi: https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl
230
+ - pypi: https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl
231
231
  - pypi: https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl
232
232
  - pypi: https://files.pythonhosted.org/packages/72/4f/732fff31c119bb73b35236dd333030f32c4bfe909f445b423e6c7594f9a2/coverage-7.10.7-cp313-cp313-macosx_11_0_arm64.whl
233
233
  - pypi: https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl
@@ -243,18 +243,18 @@ environments:
243
243
  - pypi: https://files.pythonhosted.org/packages/e5/ae/2ad30f4652712c82f1c23423d79136fbce338932ad166d70c1efb86a5998/identify-2.6.14-py2.py3-none-any.whl
244
244
  - pypi: https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl
245
245
  - pypi: https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl
246
- - pypi: https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl
246
+ - pypi: https://files.pythonhosted.org/packages/48/c5/d5e07995077e48220269c28a221e168c91123ad5ceee44d548f54a057fc0/ipython-9.6.0-py3-none-any.whl
247
247
  - pypi: https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl
248
248
  - pypi: https://files.pythonhosted.org/packages/c0/5a/9cac0c82afec3d09ccd97c8b6502d48f165f9124db81b4bcb90b4af974ee/jedi-0.19.2-py2.py3-none-any.whl
249
249
  - pypi: https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl
250
250
  - pypi: https://files.pythonhosted.org/packages/70/ae/44c4a6a4cbb496d93c6257954260fe3a6e91b7bed2240e5dad2a717f5111/markdown-3.9-py3-none-any.whl
251
- - pypi: https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl
251
+ - pypi: https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl
252
252
  - pypi: https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl
253
253
  - pypi: https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl
254
254
  - pypi: https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl
255
255
  - pypi: https://files.pythonhosted.org/packages/9f/4d/7123b6fa2278000688ebd338e2a06d16870aaf9eceae6ba047ea05f92df1/mkdocs_autorefs-1.4.3-py3-none-any.whl
256
256
  - pypi: https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl
257
- - pypi: https://files.pythonhosted.org/packages/67/d8/a31dd52e657bf12b20574706d07df8d767e1ab4340f9bfb9ce73950e5e59/mkdocs_material-9.6.20-py3-none-any.whl
257
+ - pypi: https://files.pythonhosted.org/packages/cf/4f/98681c2030375fe9b057dbfb9008b68f46c07dddf583f4df09bf8075e37f/mkdocs_material-9.6.21-py3-none-any.whl
258
258
  - pypi: https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl
259
259
  - pypi: https://files.pythonhosted.org/packages/7b/2c/f0dc4e1ee7f618f5bff7e05898d20bf8b6e7fa612038f768bfa295f136a4/mkdocstrings-0.30.1-py3-none-any.whl
260
260
  - pypi: https://files.pythonhosted.org/packages/d5/8f/ce008599d9adebf33ed144e7736914385e8537f5fc686fdb7cceb8c22431/mkdocstrings_python-1.18.2-py3-none-any.whl
@@ -293,10 +293,10 @@ environments:
293
293
  - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl
294
294
  - pypi: https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl
295
295
  - pypi: https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl
296
- - pypi: https://files.pythonhosted.org/packages/12/ba/11595ccc9f9cc697349ac66b6227f58140dce7b3e77e433501392e5994f5/stjames-0.0.109-py3-none-any.whl
296
+ - pypi: https://files.pythonhosted.org/packages/72/91/4a7ac04280cef0f6f8b536400951096f7b9714e02e7f5ee9bf4c0e691d5d/stjames-0.0.111-py3-none-any.whl
297
297
  - pypi: https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl
298
298
  - pypi: https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl
299
- - pypi: https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl
299
+ - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
300
300
  - pypi: https://files.pythonhosted.org/packages/a7/c2/fe1e52489ae3122415c51f387e221dd0773709bad6c6cdaa599e8a2c5185/urllib3-2.5.0-py3-none-any.whl
301
301
  - pypi: https://files.pythonhosted.org/packages/76/06/04c8e804f813cf972e3262f3f8584c232de64f0cde9f703b46cf53a45090/virtualenv-20.34.0-py3-none-any.whl
302
302
  - pypi: https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl
@@ -425,10 +425,10 @@ packages:
425
425
  version: 3.4.3
426
426
  sha256: 416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f
427
427
  requires_python: '>=3.7'
428
- - pypi: https://files.pythonhosted.org/packages/85/32/10bb5764d90a8eee674e9dc6f4db6a0ab47c8c4d0d83c27f7c39ac415a4d/click-8.2.1-py3-none-any.whl
428
+ - pypi: https://files.pythonhosted.org/packages/db/d3/9dcc0f5797f070ec8edf30fbadfb200e71d9db6b84d211e3b2085a7589a0/click-8.3.0-py3-none-any.whl
429
429
  name: click
430
- version: 8.2.1
431
- sha256: 61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b
430
+ version: 8.3.0
431
+ sha256: 9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc
432
432
  requires_dist:
433
433
  - colorama ; sys_platform == 'win32'
434
434
  requires_python: '>=3.10'
@@ -569,10 +569,10 @@ packages:
569
569
  version: 2.1.0
570
570
  sha256: 9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760
571
571
  requires_python: '>=3.8'
572
- - pypi: https://files.pythonhosted.org/packages/08/2a/5628a99d04acb2d2f2e749cdf4ea571d2575e898df0528a090948018b726/ipython-9.5.0-py3-none-any.whl
572
+ - pypi: https://files.pythonhosted.org/packages/48/c5/d5e07995077e48220269c28a221e168c91123ad5ceee44d548f54a057fc0/ipython-9.6.0-py3-none-any.whl
573
573
  name: ipython
574
- version: 9.5.0
575
- sha256: 88369ffa1d5817d609120daa523a6da06d02518e582347c29f8451732a9c5e72
574
+ version: 9.6.0
575
+ sha256: 5f77efafc886d2f023442479b8149e7d86547ad0a979e9da9f045d252f648196
576
576
  requires_dist:
577
577
  - colorama ; sys_platform == 'win32'
578
578
  - decorator
@@ -590,9 +590,8 @@ packages:
590
590
  - exceptiongroup ; extra == 'doc'
591
591
  - intersphinx-registry ; extra == 'doc'
592
592
  - ipykernel ; extra == 'doc'
593
- - ipython[test] ; extra == 'doc'
594
- - matplotlib ; extra == 'doc'
595
- - setuptools>=18.5 ; extra == 'doc'
593
+ - ipython[matplotlib,test] ; extra == 'doc'
594
+ - setuptools>=61.2 ; extra == 'doc'
596
595
  - sphinx-toml==0.0.4 ; extra == 'doc'
597
596
  - sphinx-rtd-theme ; extra == 'doc'
598
597
  - sphinx>=1.3 ; extra == 'doc'
@@ -604,14 +603,14 @@ packages:
604
603
  - ipython[test] ; extra == 'test-extra'
605
604
  - curio ; extra == 'test-extra'
606
605
  - jupyter-ai ; extra == 'test-extra'
607
- - matplotlib!=3.2.0 ; extra == 'test-extra'
606
+ - ipython[matplotlib] ; extra == 'test-extra'
608
607
  - nbformat ; extra == 'test-extra'
609
608
  - nbclient ; extra == 'test-extra'
610
609
  - ipykernel ; extra == 'test-extra'
611
- - numpy>=1.23 ; extra == 'test-extra'
612
- - pandas ; extra == 'test-extra'
610
+ - numpy>=1.25 ; extra == 'test-extra'
611
+ - pandas>2.0 ; extra == 'test-extra'
613
612
  - trio ; extra == 'test-extra'
614
- - matplotlib ; extra == 'matplotlib'
613
+ - matplotlib>3.7 ; extra == 'matplotlib'
615
614
  - ipython[doc,matplotlib,test,test-extra] ; extra == 'all'
616
615
  requires_python: '>=3.11'
617
616
  - pypi: https://files.pythonhosted.org/packages/d9/33/1f075bf72b0b747cb3288d011319aaf64083cf2efef8354174e3ed4540e2/ipython_pygments_lexers-1.1.1-py3-none-any.whl
@@ -677,6 +676,7 @@ packages:
677
676
  constrains:
678
677
  - binutils_impl_linux-64 2.44
679
678
  license: GPL-3.0-only
679
+ license_family: GPL
680
680
  purls: []
681
681
  size: 747158
682
682
  timestamp: 1758810907507
@@ -868,15 +868,15 @@ packages:
868
868
  - mkdocs-section-index ; extra == 'docs'
869
869
  - mkdocs-literate-nav ; extra == 'docs'
870
870
  requires_python: '>=3.9'
871
- - pypi: https://files.pythonhosted.org/packages/0c/91/96cf928db8236f1bfab6ce15ad070dfdd02ed88261c2afafd4b43575e9e9/MarkupSafe-3.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
871
+ - pypi: https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl
872
872
  name: markupsafe
873
- version: 3.0.2
874
- sha256: 15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396
873
+ version: 3.0.3
874
+ sha256: 116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219
875
875
  requires_python: '>=3.9'
876
- - pypi: https://files.pythonhosted.org/packages/2b/6d/9409f3684d3335375d04e5f05744dfe7e9f120062c9857df4ab490a1031a/MarkupSafe-3.0.2-cp313-cp313-macosx_11_0_arm64.whl
876
+ - pypi: https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
877
877
  name: markupsafe
878
- version: 3.0.2
879
- sha256: f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430
878
+ version: 3.0.3
879
+ sha256: ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676
880
880
  requires_python: '>=3.9'
881
881
  - pypi: https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl
882
882
  name: matplotlib-inline
@@ -945,14 +945,13 @@ packages:
945
945
  - platformdirs>=2.2.0
946
946
  - pyyaml>=5.1
947
947
  requires_python: '>=3.8'
948
- - pypi: https://files.pythonhosted.org/packages/67/d8/a31dd52e657bf12b20574706d07df8d767e1ab4340f9bfb9ce73950e5e59/mkdocs_material-9.6.20-py3-none-any.whl
948
+ - pypi: https://files.pythonhosted.org/packages/cf/4f/98681c2030375fe9b057dbfb9008b68f46c07dddf583f4df09bf8075e37f/mkdocs_material-9.6.21-py3-none-any.whl
949
949
  name: mkdocs-material
950
- version: 9.6.20
951
- sha256: b8d8c8b0444c7c06dd984b55ba456ce731f0035c5a1533cc86793618eb1e6c82
950
+ version: 9.6.21
951
+ sha256: aa6a5ab6fb4f6d381588ac51da8782a4d3757cb3d1b174f81a2ec126e1f22c92
952
952
  requires_dist:
953
953
  - babel~=2.10
954
954
  - backrefs~=5.7.post1
955
- - click<8.2.2
956
955
  - colorama~=0.4
957
956
  - jinja2~=3.1
958
957
  - markdown~=3.2
@@ -1080,9 +1079,9 @@ packages:
1080
1079
  version: 2.3.3
1081
1080
  sha256: d00de139a3324e26ed5b95870ce63be7ec7352171bc69a4cf1f157a48e3eb6b7
1082
1081
  requires_python: '>=3.11'
1083
- - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.3-h26f9b46_1.conda
1084
- sha256: 0572be1b7d3c4f4c288bb8ab1cb6007b5b8b9523985b34b862b5222dea3c45f5
1085
- md5: 4fc6c4c88da64c0219c0c6c0408cedd4
1082
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda
1083
+ sha256: e807f3bad09bdf4075dbb4168619e14b0c0360bacb2e12ef18641a834c8c5549
1084
+ md5: 14edad12b59ccbfa3910d42c72adc2a0
1086
1085
  depends:
1087
1086
  - __glibc >=2.17,<3.0.a0
1088
1087
  - ca-certificates
@@ -1090,19 +1089,19 @@ packages:
1090
1089
  license: Apache-2.0
1091
1090
  license_family: Apache
1092
1091
  purls: []
1093
- size: 3128517
1094
- timestamp: 1758597915858
1095
- - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.3-h5503f6c_1.conda
1096
- sha256: d5499ee2611a0ca9d84e9d60a5978d1f17350e94915c89026f5d9346ccf0a987
1097
- md5: 4b23b1e2aa9d81b16204e1304241ccae
1092
+ size: 3119624
1093
+ timestamp: 1759324353651
1094
+ - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.4-h5503f6c_0.conda
1095
+ sha256: f0512629f9589392c2fb9733d11e753d0eab8fc7602f96e4d7f3bd95c783eb07
1096
+ md5: 71118318f37f717eefe55841adb172fd
1098
1097
  depends:
1099
1098
  - __osx >=11.0
1100
1099
  - ca-certificates
1101
1100
  license: Apache-2.0
1102
1101
  license_family: Apache
1103
1102
  purls: []
1104
- size: 3069376
1105
- timestamp: 1758598263612
1103
+ size: 3067808
1104
+ timestamp: 1759324763146
1106
1105
  - pypi: https://files.pythonhosted.org/packages/20/12/38679034af332785aac8774540895e234f4d07f7545804097de4b666afd8/packaging-25.0-py3-none-any.whl
1107
1106
  name: packaging
1108
1107
  version: '25.0'
@@ -1467,8 +1466,8 @@ packages:
1467
1466
  requires_python: '>=3.9'
1468
1467
  - pypi: ./
1469
1468
  name: rowan-python
1470
- version: 2.1.6
1471
- sha256: 7cd0ec9e2e7b39b21b717eeac596ec082a7beba1b6b36685007b4154bd4aeb34
1469
+ version: 2.1.7
1470
+ sha256: 39bc5127da66d029bdafbc2bac197697808f735085190f5f6c7c4d0381c3f20d
1472
1471
  requires_dist:
1473
1472
  - httpx
1474
1473
  - stjames>=0.0.109
@@ -1567,10 +1566,10 @@ packages:
1567
1566
  - pygments ; extra == 'tests'
1568
1567
  - littleutils ; extra == 'tests'
1569
1568
  - cython ; extra == 'tests'
1570
- - pypi: https://files.pythonhosted.org/packages/12/ba/11595ccc9f9cc697349ac66b6227f58140dce7b3e77e433501392e5994f5/stjames-0.0.109-py3-none-any.whl
1569
+ - pypi: https://files.pythonhosted.org/packages/72/91/4a7ac04280cef0f6f8b536400951096f7b9714e02e7f5ee9bf4c0e691d5d/stjames-0.0.111-py3-none-any.whl
1571
1570
  name: stjames
1572
- version: 0.0.109
1573
- sha256: 919dad07e10d64307caddfe367e14c153ed236002dec9d9371c503c134a1c8a9
1571
+ version: 0.0.111
1572
+ sha256: 45c4fdd433f13758c6b67d6016f1753cbb63d2a39118980d29049d69adcf7714
1574
1573
  requires_dist:
1575
1574
  - pydantic>=2.4
1576
1575
  - numpy
@@ -1621,10 +1620,10 @@ packages:
1621
1620
  version: 4.15.0
1622
1621
  sha256: f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548
1623
1622
  requires_python: '>=3.9'
1624
- - pypi: https://files.pythonhosted.org/packages/17/69/cd203477f944c353c31bade965f880aa1061fd6bf05ded0726ca845b6ff7/typing_inspection-0.4.1-py3-none-any.whl
1623
+ - pypi: https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl
1625
1624
  name: typing-inspection
1626
- version: 0.4.1
1627
- sha256: 389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51
1625
+ version: 0.4.2
1626
+ sha256: 4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7
1628
1627
  requires_dist:
1629
1628
  - typing-extensions>=4.12.0
1630
1629
  requires_python: '>=3.9'
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rowan-python"
3
- version = "2.1.6"
3
+ version = "2.1.7"
4
4
  description = "Rowan Python Library"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.9"
@@ -120,7 +120,7 @@ ignore = [
120
120
  convention = "numpy"
121
121
 
122
122
  [tool.mypy]
123
- exclude = ["scripts", "benchmark", "build", "subrepos/stjames/tests", "subrepos/aimnet2calc", "feature", "examples"]
123
+ exclude = ["examples"]
124
124
  plugins = ["pydantic.mypy"]
125
125
  warn_unused_ignores = true
126
126
 
@@ -5,6 +5,7 @@ from typing import Any, Literal, Self, TypeAlias
5
5
  import stjames
6
6
  from pydantic import BaseModel, Field
7
7
  from rdkit import Chem
8
+ from stjames.optimization.freezing_string_method import FSMSettings
8
9
 
9
10
  from .protein import Protein
10
11
  from .utils import api_client
@@ -285,16 +286,21 @@ def retrieve_workflow(uuid: str) -> Workflow:
285
286
  return Workflow(**response.json())
286
287
 
287
288
 
288
- def retrieve_calculation_molecules(uuid: str) -> list[dict[str, Any]]:
289
+ def retrieve_calculation_molecules(
290
+ uuid: str, return_frequencies: bool = False
291
+ ) -> list[dict[str, Any]]:
289
292
  """
290
293
  Retrieves a list of molecules from a calculation.
291
294
 
292
295
  :param uuid: The UUID of the calculation to retrieve molecules from.
296
+ :param return_frequencies: Whether to return the frequencies of the molecules.
293
297
  :return: A list of dictionaries representing the molecules in the calculation.
294
298
  :raises HTTPError: If the API request fails.
295
299
  """
296
300
  with api_client() as client:
297
- response = client.get(f"/calculation/{uuid}/molecules")
301
+ response = client.get(
302
+ f"/calculation/{uuid}/molecules", params={"return_frequencies": return_frequencies}
303
+ )
298
304
  response.raise_for_status()
299
305
  return response.json()
300
306
 
@@ -352,9 +358,10 @@ def list_workflows(
352
358
  def submit_basic_calculation_workflow(
353
359
  initial_molecule: dict[str, Any] | StJamesMolecule | RdkitMol,
354
360
  method: stjames.Method | str = "uma_m_omol",
361
+ basis_set: stjames.BasisSet | str | None = None,
355
362
  tasks: list[str] | None = None,
356
363
  mode: str = "auto",
357
- engine: str = "omol25",
364
+ engine: str | None = None,
358
365
  name: str = "Basic Calculation Workflow",
359
366
  folder_uuid: str | None = None,
360
367
  max_credits: int | None = None,
@@ -364,7 +371,7 @@ def submit_basic_calculation_workflow(
364
371
 
365
372
  :param initial_molecule: The molecule to perform the calculation on.
366
373
  :param method: The method to use for the calculation.
367
- See [list of available methods](https://github.com/rowansci/stjames-public/blob/master/stjames/method.py)
374
+ :param basis_set: The basis_set to use (if any).
368
375
  for options.
369
376
  :param tasks: A list of tasks to perform for the calculation.
370
377
  :param mode: The mode to run the calculation in. See [list of available modes](https://github.com/rowansci/stjames-public/blob/master/stjames/mode.py)
@@ -391,6 +398,7 @@ def submit_basic_calculation_workflow(
391
398
  initial_molecule=initial_molecule,
392
399
  settings=stjames.Settings(
393
400
  method=method,
401
+ basis_set=basis_set,
394
402
  tasks=tasks,
395
403
  mode=mode,
396
404
  ),
@@ -792,7 +800,7 @@ def submit_descriptors_workflow(
792
800
  def submit_scan_workflow(
793
801
  initial_molecule: dict[str, Any] | StJamesMolecule | RdkitMol,
794
802
  scan_settings: stjames.ScanSettings | dict[str, Any] | None = None,
795
- calculation_engine: str = "omol25",
803
+ calculation_engine: str | None = None,
796
804
  calculation_method: stjames.Method | str = "uma_m_omol",
797
805
  wavefront_propagation: bool = True,
798
806
  name: str = "Scan Workflow",
@@ -835,7 +843,7 @@ def submit_scan_workflow(
835
843
  initial_molecule=initial_molecule,
836
844
  scan_settings=scan_settings,
837
845
  calc_settings=calc_settings,
838
- calc_engine=calculation_engine,
846
+ calc_engine=calculation_engine or calculation_method.default_engine(),
839
847
  wavefront_propagation=wavefront_propagation,
840
848
  )
841
849
 
@@ -911,7 +919,6 @@ def submit_macropka_workflow(
911
919
  def submit_irc_workflow(
912
920
  initial_molecule: dict[str, Any] | StJamesMolecule | RdkitMol | None = None,
913
921
  method: stjames.Method | str = "uma_m_omol",
914
- engine: str = "omol25",
915
922
  preopt: bool = True,
916
923
  step_size: float = 0.05,
917
924
  max_irc_steps: int = 30,
@@ -926,7 +933,6 @@ def submit_irc_workflow(
926
933
  :param method: The computational method to use for the IRC calculation.
927
934
  See [list of available methods](https://github.com/rowansci/stjames-public/blob/master/stjames/method.py)
928
935
  for options.
929
- :param engine: The computational engine to use for the calculation. See [list of available engines](https://github.com/rowansci/stjames-public/blob/master/stjames/engine.py)
930
936
  :param preopt: Whether to perform a pre-optimization of the molecule.
931
937
  :param step_size: The step size to use for the IRC calculation.
932
938
  :param max_irc_steps: The maximum number of IRC steps to perform.
@@ -953,12 +959,12 @@ def submit_irc_workflow(
953
959
  corrections=[],
954
960
  mode="auto",
955
961
  ),
956
- engine=engine,
957
962
  preopt=preopt,
958
963
  step_size=step_size,
959
964
  max_irc_steps=max_irc_steps,
960
965
  mode="manual",
961
966
  )
967
+
962
968
  data = {
963
969
  "name": name,
964
970
  "folder_uuid": folder_uuid,
@@ -1229,3 +1235,51 @@ def submit_strain_workflow(
1229
1235
  response = client.post("/workflow", json=data)
1230
1236
  response.raise_for_status()
1231
1237
  return Workflow(**response.json())
1238
+
1239
+
1240
+ def submit_double_ended_ts_search_workflow(
1241
+ reactant: dict[str, Any] | StJamesMolecule,
1242
+ product: dict[str, Any] | StJamesMolecule,
1243
+ calculation_settings: stjames.Settings | dict[str, Any] | None = None,
1244
+ search_settings: FSMSettings | dict[str, Any] | None = None,
1245
+ optimize_inputs: bool = False,
1246
+ optimize_ts: bool = True,
1247
+ name: str = "Double-Ended TS Search Workflow",
1248
+ folder_uuid: str | None = None,
1249
+ max_credits: int | None = None,
1250
+ ) -> Workflow:
1251
+ """
1252
+ Submits a double-ended transition state search workflow to the API.
1253
+
1254
+ :param reactant: reactant Molecule.
1255
+ :param product: product Molecule.
1256
+ :param calculation_settings: Settings to use for calculations.
1257
+ :param search_settings: settings to use for the transition state search.
1258
+ :param optimize_inputs: Whether to optimize the reactant and product before the search.
1259
+ :param optimize_ts: Whether to optimize the found transition state.
1260
+ :param name: name of the workflow.
1261
+ :param folder_uuid: The UUID of the folder to place the workflow in.
1262
+ :param max_credits: The maximum number of credits to use for the workflow.
1263
+ :return: Workflow object representing the submitted workflow.
1264
+ """
1265
+ workflow = stjames.DoubleEndedTSSearchWorkflow(
1266
+ reactant=reactant,
1267
+ product=product,
1268
+ calculation_settings=calculation_settings,
1269
+ search_settings=search_settings,
1270
+ optimize_inputs=optimize_inputs,
1271
+ optimize_ts=optimize_ts,
1272
+ )
1273
+ data = {
1274
+ "name": name,
1275
+ "folder_uuid": folder_uuid,
1276
+ "workflow_type": "double_ended_ts_search",
1277
+ "workflow_data": workflow.model_dump(),
1278
+ "initial_molecule": reactant if isinstance(reactant, dict) else reactant.model_dump(),
1279
+ "max_credits": max_credits,
1280
+ }
1281
+
1282
+ with api_client() as client:
1283
+ response = client.post("/workflow", json=data)
1284
+ response.raise_for_status()
1285
+ return Workflow(**response.json())
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes