rowan-python 1.1.1__tar.gz → 1.1.2__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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: rowan-python
3
- Version: 1.1.1
3
+ Version: 1.1.2
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
@@ -44,7 +44,7 @@ environments:
44
44
  - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda
45
45
  - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
46
46
  - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
47
- - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda
47
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
48
48
  - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda
49
49
  - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda
50
50
  - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
@@ -145,7 +145,7 @@ environments:
145
145
  - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl
146
146
  - pypi: https://files.pythonhosted.org/packages/f3/26/3e1bbe954fde7ee22a6e7d31582c642aad9e84ffe4b5fb61e63b87cd326f/pydantic-2.10.4-py3-none-any.whl
147
147
  - pypi: https://files.pythonhosted.org/packages/8d/f0/49129b27c43396581a635d8710dae54a791b17dfc50c70164866bbf865e3/pydantic_core-2.27.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
148
- - pypi: https://files.pythonhosted.org/packages/9e/c2/f80c5f3d91a7e1da7ddc0545493726a22060aa1f26f5f300dc096132f1a5/stjames-0.0.46-py3-none-any.whl
148
+ - pypi: https://files.pythonhosted.org/packages/cd/4c/d2bec5035d0c101ec8a703c778e9c15a3cf7b6bb905b7c719a7911ecd6aa/stjames-0.0.47-py3-none-any.whl
149
149
  - pypi: .
150
150
  osx-arm64:
151
151
  - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.8.0-pyhd8ed1ab_0.conda
@@ -183,7 +183,7 @@ environments:
183
183
  - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda
184
184
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda
185
185
  - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
186
- - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda
186
+ - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
187
187
  - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.23.0-pyhd8ed1ab_1.conda
188
188
  - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2024.10.1-pyhd8ed1ab_1.conda
189
189
  - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.7-py312h6142ec9_0.conda
@@ -272,7 +272,7 @@ environments:
272
272
  - pypi: https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl
273
273
  - pypi: https://files.pythonhosted.org/packages/f3/26/3e1bbe954fde7ee22a6e7d31582c642aad9e84ffe4b5fb61e63b87cd326f/pydantic-2.10.4-py3-none-any.whl
274
274
  - pypi: https://files.pythonhosted.org/packages/d3/f3/c97e80721735868313c58b89d2de85fa80fe8dfeeed84dc51598b92a135e/pydantic_core-2.27.2-cp312-cp312-macosx_11_0_arm64.whl
275
- - pypi: https://files.pythonhosted.org/packages/9e/c2/f80c5f3d91a7e1da7ddc0545493726a22060aa1f26f5f300dc096132f1a5/stjames-0.0.46-py3-none-any.whl
275
+ - pypi: https://files.pythonhosted.org/packages/cd/4c/d2bec5035d0c101ec8a703c778e9c15a3cf7b6bb905b7c719a7911ecd6aa/stjames-0.0.47-py3-none-any.whl
276
276
  - pypi: .
277
277
  packages:
278
278
  - kind: conda
@@ -1219,25 +1219,23 @@ packages:
1219
1219
  timestamp: 1733211921194
1220
1220
  - kind: conda
1221
1221
  name: importlib_resources
1222
- version: 6.4.5
1223
- build: pyhd8ed1ab_1
1224
- build_number: 1
1222
+ version: 6.5.2
1223
+ build: pyhd8ed1ab_0
1225
1224
  subdir: noarch
1226
1225
  noarch: python
1227
- url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.4.5-pyhd8ed1ab_1.conda
1228
- sha256: 461199e429a3db01f0a673f8beaac5e0be75b88895952fb9183f2ab01c5c3c24
1229
- md5: 15798fa69312d433af690c8c42b3fb36
1226
+ url: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda
1227
+ sha256: acc1d991837c0afb67c75b77fdc72b4bf022aac71fedd8b9ea45918ac9b08a80
1228
+ md5: c85c76dc67d75619a92f51dfbce06992
1230
1229
  depends:
1231
1230
  - python >=3.9
1232
1231
  - zipp >=3.1.0
1233
1232
  constrains:
1234
- - importlib-resources >=6.4.5,<6.4.6.0a0
1233
+ - importlib-resources >=6.5.2,<6.5.3.0a0
1235
1234
  license: Apache-2.0
1236
- license_family: APACHE
1237
1235
  purls:
1238
1236
  - pkg:pypi/importlib-resources?source=hash-mapping
1239
- size: 32701
1240
- timestamp: 1733231441973
1237
+ size: 33781
1238
+ timestamp: 1736252433366
1241
1239
  - kind: conda
1242
1240
  name: jsonschema
1243
1241
  version: 4.23.0
@@ -1797,6 +1795,7 @@ packages:
1797
1795
  - libgcc >=13
1798
1796
  - ncurses >=6.5,<7.0a0
1799
1797
  license: BSD-2-Clause
1798
+ license_family: BSD
1800
1799
  purls: []
1801
1800
  size: 134657
1802
1801
  timestamp: 1736191912705
@@ -1813,6 +1812,7 @@ packages:
1813
1812
  - __osx >=11.0
1814
1813
  - ncurses >=6.5,<7.0a0
1815
1814
  license: BSD-2-Clause
1815
+ license_family: BSD
1816
1816
  purls: []
1817
1817
  size: 107634
1818
1818
  timestamp: 1736192034117
@@ -2364,6 +2364,7 @@ packages:
2364
2364
  - libgcc >=13
2365
2365
  - libstdcxx >=13
2366
2366
  license: BSD-3-Clause
2367
+ license_family: BSD
2367
2368
  purls: []
2368
2369
  size: 8581512
2369
2370
  timestamp: 1736096097093
@@ -2382,6 +2383,7 @@ packages:
2382
2383
  - libboost >=1.86.0,<1.87.0a0
2383
2384
  - libcxx >=18
2384
2385
  license: BSD-3-Clause
2386
+ license_family: BSD
2385
2387
  purls: []
2386
2388
  size: 6394406
2387
2389
  timestamp: 1736096289303
@@ -3563,6 +3565,7 @@ packages:
3563
3565
  - reportlab
3564
3566
  - sqlalchemy
3565
3567
  license: BSD-3-Clause
3568
+ license_family: BSD
3566
3569
  purls:
3567
3570
  - pkg:pypi/rdkit?source=hash-mapping
3568
3571
  size: 19836609
@@ -3595,6 +3598,7 @@ packages:
3595
3598
  - reportlab
3596
3599
  - sqlalchemy
3597
3600
  license: BSD-3-Clause
3601
+ license_family: BSD
3598
3602
  purls:
3599
3603
  - pkg:pypi/rdkit?source=hash-mapping
3600
3604
  size: 18523747
@@ -3757,9 +3761,9 @@ packages:
3757
3761
  timestamp: 1687519707123
3758
3762
  - kind: pypi
3759
3763
  name: rowan-python
3760
- version: 1.1.1
3764
+ version: 1.1.2
3761
3765
  path: .
3762
- sha256: 3dde2ca599cde358e919526f776a1c5854e235152f6465b60ed1bb0b13dcbc70
3766
+ sha256: 93e92c09a03fcce0fdad13ed38af8fc022695d9e093c292a0618470c024e0cb5
3763
3767
  requires_python: '>=3.8'
3764
3768
  editable: true
3765
3769
  - kind: conda
@@ -3956,9 +3960,9 @@ packages:
3956
3960
  timestamp: 1729066546472
3957
3961
  - kind: pypi
3958
3962
  name: stjames
3959
- version: 0.0.46
3960
- url: https://files.pythonhosted.org/packages/9e/c2/f80c5f3d91a7e1da7ddc0545493726a22060aa1f26f5f300dc096132f1a5/stjames-0.0.46-py3-none-any.whl
3961
- sha256: 0307c3fc6912a74cefd208db7e278fb7010180fd20ebd9e8453bf1e381d27515
3963
+ version: 0.0.47
3964
+ url: https://files.pythonhosted.org/packages/cd/4c/d2bec5035d0c101ec8a703c778e9c15a3cf7b6bb905b7c719a7911ecd6aa/stjames-0.0.47-py3-none-any.whl
3965
+ sha256: dc15a6fbe7a676d7f5678012be62e94a0cf7c63f05d297181f0aba582744ae15
3962
3966
  requires_dist:
3963
3967
  - pydantic>=2.4
3964
3968
  - numpy
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "rowan-python"
3
- version = "1.1.1"
3
+ version = "1.1.2"
4
4
  description = "Rowan Python Library"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.8"
@@ -0,0 +1,5 @@
1
+ from .chem_utils import (run_pka, run_tautomers, run_conformers, run_energy,
2
+ run_optimize, run_batch_pka, run_batch_tautomers, run_batch_energy, run_batch_optimize, run_batch_conformers)
3
+
4
+ __all__ = ["run_pka", "run_tautomers", "run_energy", "run_conformers", "run_optimize",
5
+ "run_batch_pka", "run_batch_tautomers", "run_batch_energy", "run_batch_optimize", "run_batch_conformers"]
@@ -36,7 +36,7 @@ def _get_rdkit_mol_from_uuid(calculation_uuid: str) -> RdkitMol:
36
36
  rdkm = Chem.MolFromXYZBlock(stjames_mol.to_xyz())
37
37
  return rdkm
38
38
 
39
- def embed_rdkit_mol(rdkm: RdkitMol):
39
+ def _embed_rdkit_mol(rdkm: RdkitMol):
40
40
  try:
41
41
  AllChem.SanitizeMol(rdkm)
42
42
  except Exception as e:
@@ -58,9 +58,9 @@ def embed_rdkit_mol(rdkm: RdkitMol):
58
58
 
59
59
  return rdkm
60
60
 
61
- def rdkit_to_cctk(rdkm: RdkitMol, cid: int = 0) -> cctk.Molecule:
61
+ def _rdkit_to_cctk(rdkm: RdkitMol, cid: int = 0) -> cctk.Molecule:
62
62
  if len(rdkm.GetConformers()) == 0:
63
- rdkm = embed_rdkit_mol(rdkm)
63
+ rdkm = _embed_rdkit_mol(rdkm)
64
64
  try:
65
65
  nums = [atom.GetAtomicNum() for atom in rdkm.GetAtoms()]
66
66
  geom = rdkm.GetConformers()[cid].GetPositions()
@@ -68,7 +68,7 @@ def rdkit_to_cctk(rdkm: RdkitMol, cid: int = 0) -> cctk.Molecule:
68
68
  except IndexError as e:
69
69
  raise ConversionError("RDKit molecule does not have a conformer with the given ID") from e
70
70
 
71
- def cctk_to_stjames(cmol: cctk.Molecule) -> stjames.Molecule:
71
+ def _cctk_to_stjames(cmol: cctk.Molecule) -> stjames.Molecule:
72
72
  atomic_numbers = cmol.atomic_numbers.view(np.ndarray)
73
73
  geometry = cmol.geometry.view(np.ndarray)
74
74
  atoms = []
@@ -77,11 +77,11 @@ def cctk_to_stjames(cmol: cctk.Molecule) -> stjames.Molecule:
77
77
 
78
78
  return stjames.Molecule(atoms=atoms, charge=cmol.charge, multiplicity=cmol.multiplicity)
79
79
 
80
- def rdkit_to_stjames(rdkm: RdkitMol, cid: int = 0) -> stjames.Molecule:
81
- cmol = rdkit_to_cctk(rdkm, cid)
82
- return cctk_to_stjames(cmol)
80
+ def _rdkit_to_stjames(rdkm: RdkitMol, cid: int = 0) -> stjames.Molecule:
81
+ cmol = _rdkit_to_cctk(rdkm, cid)
82
+ return _cctk_to_stjames(cmol)
83
83
 
84
- def pka(mol: RdkitMol,
84
+ def run_pka(mol: RdkitMol,
85
85
  mode: pKaMode = "rapid",
86
86
  timeout: int = 600,
87
87
  name: str = "pKa API Workflow",
@@ -91,7 +91,7 @@ def pka(mol: RdkitMol,
91
91
  folder_uuid: Optional[stjames.UUID] = None)-> tuple[dict[int, float], dict[int, float]]:
92
92
  return asyncio.run(_single_pka(mol, mode, timeout, name, pka_range, deprotonate_elements, protonate_elements, folder_uuid))
93
93
 
94
- def batch_pka(mols: List[RdkitMol],
94
+ def run_batch_pka(mols: List[RdkitMol],
95
95
  mode: pKaMode = "rapid",
96
96
  timeout: int = 600,
97
97
  name: str = "pKa API Workflow",
@@ -126,7 +126,7 @@ async def _single_pka(mol: RdkitMol,
126
126
  post = rowan.Workflow.submit(
127
127
  name=name,
128
128
  workflow_type="pka",
129
- initial_molecule=rdkit_to_stjames(mol),
129
+ initial_molecule=_rdkit_to_stjames(mol),
130
130
  workflow_data={
131
131
  "pka_range": pka_range,
132
132
  "deprotonate_elements": deprotonate_elements,
@@ -168,7 +168,7 @@ async def _single_pka(mol: RdkitMol,
168
168
  return {"acidic_pkas": acidic_pkas, "basic_pkas": basic_pkas}
169
169
 
170
170
 
171
- def tautomers(mol: RdkitMol,
171
+ def run_tautomers(mol: RdkitMol,
172
172
  mode: TautomerMode = "reckless",
173
173
  timeout: int = 600,
174
174
  name: str = "Tautomers API Workflow",
@@ -180,7 +180,7 @@ def tautomers(mol: RdkitMol,
180
180
  """
181
181
  return asyncio.run(_single_tautomers(mol, mode, timeout, name, folder_uuid))
182
182
 
183
- def batch_tautomers(mols: List[RdkitMol],
183
+ def run_batch_tautomers(mols: List[RdkitMol],
184
184
  mode: TautomerMode = "reckless",
185
185
  timeout: int = 600,
186
186
  name: str = "Tautomers API Workflow",
@@ -211,7 +211,7 @@ async def _single_tautomers(mol: RdkitMol,
211
211
  post = rowan.Workflow.submit(
212
212
  name=name,
213
213
  workflow_type="tautomers",
214
- initial_molecule=rdkit_to_stjames(mol),
214
+ initial_molecule=_rdkit_to_stjames(mol),
215
215
  workflow_data={
216
216
  "mode": mode,
217
217
  },
@@ -238,7 +238,7 @@ async def _single_tautomers(mol: RdkitMol,
238
238
  #return relative weights too
239
239
  return tautomers
240
240
 
241
- def energy(
241
+ def run_energy(
242
242
  mol: RdkitMol,
243
243
  method: str = "aimnet2_wb97md3",
244
244
  engine: str = "aimnet2",
@@ -257,7 +257,7 @@ def energy(
257
257
  """
258
258
  return asyncio.run(_single_energy(mol, method, engine, mode, timeout, name, folder_uuid))
259
259
 
260
- def batch_energy(
260
+ def run_batch_energy(
261
261
  mols: List[RdkitMol],
262
262
  method: str = "aimnet2_wb97md3",
263
263
  engine: str = "aimnet2",
@@ -302,7 +302,7 @@ async def _single_energy(
302
302
  method = stjames.Method(method)
303
303
 
304
304
  if mol.GetNumConformers() == 0:
305
- mol = embed_rdkit_mol(mol)
305
+ mol = _embed_rdkit_mol(mol)
306
306
  if mol.GetNumConformers() == 0:
307
307
  raise NoConformersError("This molecule has no conformers")
308
308
 
@@ -314,7 +314,7 @@ async def _single_energy(
314
314
  workflow_uuids = []
315
315
  for conformer in mol.GetConformers():
316
316
  cid = conformer.GetId()
317
- stjames_mol = rdkit_to_stjames(mol, cid)
317
+ stjames_mol = _rdkit_to_stjames(mol, cid)
318
318
  get_api_key()
319
319
  post = rowan.Workflow.submit(
320
320
  name=name,
@@ -351,7 +351,7 @@ async def _single_energy(
351
351
  return [{"conformer_index": index, "energy": energy} for index, energy in enumerate(energies)]
352
352
 
353
353
 
354
- def optimize(
354
+ def run_optimize(
355
355
  mol: RdkitMol,
356
356
  method: str = "aimnet2_wb97md3",
357
357
  engine: str = "aimnet2",
@@ -373,7 +373,7 @@ def optimize(
373
373
  """
374
374
  return asyncio.run(_single_optimize(mol, method, engine, mode, return_energies, timeout, name, folder_uuid))
375
375
 
376
- def batch_optimize(
376
+ def run_batch_optimize(
377
377
  mols: List[RdkitMol],
378
378
  method: str = "aimnet2_wb97md3",
379
379
  engine: str = "aimnet2",
@@ -424,7 +424,7 @@ async def _single_optimize(
424
424
  method = stjames.Method(method)
425
425
 
426
426
  if mol.GetNumConformers() == 0:
427
- mol = embed_rdkit_mol(mol)
427
+ mol = _embed_rdkit_mol(mol)
428
428
  if mol.GetNumConformers() == 0:
429
429
  raise NoConformersError("This molecule has no conformers")
430
430
 
@@ -438,7 +438,7 @@ async def _single_optimize(
438
438
  workflow_uuids = []
439
439
  for conformer in mol.GetConformers():
440
440
  cid = conformer.GetId()
441
- stjames_mol = rdkit_to_stjames(mol, cid)
441
+ stjames_mol = _rdkit_to_stjames(mol, cid)
442
442
  get_api_key()
443
443
  post = rowan.Workflow.submit(
444
444
  name=name,
@@ -486,7 +486,7 @@ async def _single_optimize(
486
486
 
487
487
  return return_dict
488
488
 
489
- def conformers(mol: RdkitMol, num_conformers=10,
489
+ def run_conformers(mol: RdkitMol, num_conformers=10,
490
490
  method: str = "aimnet2_wb97md3",
491
491
  mode: str = "rapid",
492
492
  return_energies: bool = False,
@@ -501,7 +501,7 @@ def conformers(mol: RdkitMol, num_conformers=10,
501
501
  """
502
502
  return asyncio.run(_single_conformers(mol, num_conformers, method, mode, return_energies, timeout, name, folder_uuid))
503
503
 
504
- def batch_conformers(mols: List[RdkitMol], num_conformers=10,
504
+ def run_batch_conformers(mols: List[RdkitMol], num_conformers=10,
505
505
  method: str = "aimnet2_wb97md3",
506
506
  mode: str = "rapid",
507
507
  return_energies: bool = False,
@@ -540,7 +540,7 @@ async def _single_conformers(mol: RdkitMol, num_conformers=10,
540
540
  method = stjames.Method(method)
541
541
 
542
542
  if mol.GetNumConformers() == 0:
543
- mol = embed_rdkit_mol(mol)
543
+ mol = _embed_rdkit_mol(mol)
544
544
  if mol.GetNumConformers() == 0:
545
545
  raise NoConformersError("This molecule has no conformers")
546
546
 
@@ -552,7 +552,7 @@ async def _single_conformers(mol: RdkitMol, num_conformers=10,
552
552
  post = rowan.Workflow.submit(
553
553
  name=name,
554
554
  workflow_type="conformer_search",
555
- initial_molecule=rdkit_to_stjames(mol),
555
+ initial_molecule=_rdkit_to_stjames(mol),
556
556
  workflow_data={
557
557
  "conf_gen_mode": "rapid",
558
558
  "mode": mode,
@@ -1,3 +0,0 @@
1
- from .chem_utils import pka, tautomers, conformers, energy, optimize, batch_pka, batch_tautomers, batch_energy, batch_optimize, batch_conformers
2
-
3
- __all__ = ["pka", "tautomers", "energy", "conformers", "optimize", "batch_pka", "batch_tautomers", "batch_energy", "batch_optimize", "batch_conformers"]
File without changes
File without changes
File without changes