orto 1.14.0__py3-none-any.whl → 1.14.1__py3-none-any.whl

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.
orto/__version__.py CHANGED
@@ -1 +1 @@
1
- __version__ = '1.14.0'
1
+ __version__ = '1.14.1'
orto/extractor.py CHANGED
@@ -380,6 +380,81 @@ class ExchangeCouplingExtractor(extto.BetweenExtractor):
380
380
  return _ext.data
381
381
 
382
382
 
383
+ class AILFTOrbMatrixExtractor(extto.BetweenExtractor):
384
+ '''
385
+ Extracts AI-LFT orbital matrix from Orca output file
386
+ '''
387
+ # Regex Start Pattern
388
+ START_PATTERN = rb'(?<=Ligand field one-electron matrix VLFT \(a.u.\) : )' # noqa
389
+
390
+ # Regex End Pattern
391
+ END_PATTERN = rb'(?=-------------------------------------------------)'
392
+
393
+ MODIFIERS = [re.MULTILINE]
394
+
395
+ @property
396
+ def data(self) -> list[NDArray]:
397
+ '''
398
+ AI-LFT matrices, one per block, in atomic units
399
+ '''
400
+ return self._data
401
+
402
+ @staticmethod
403
+ def _process_block(block: str) -> NDArray:
404
+ '''
405
+ Converts single block into data entries described in self.data
406
+
407
+ Parameters
408
+ ----------
409
+ block: str
410
+ String block extracted from file
411
+
412
+ Returns
413
+ -------
414
+ ndarray of floats
415
+ Keys described in self.data
416
+ '''
417
+
418
+ # Find number of orbitals from header of matrix
419
+ orb_list = re.findall(
420
+ r'Orbital[\sxyzd2f3\-]+\n',
421
+ block
422
+ )
423
+ n_orbs = len(orb_list[0].split()) - 1
424
+
425
+ rows = re.findall(
426
+ rf'((?:\s+\-?\d\.\d{{6}}){{{n_orbs:d}}})', # noqa
427
+ block
428
+ )
429
+
430
+ matrix = np.array([
431
+ [float(ve) for ve in row.split()]
432
+ for row in rows
433
+ ])
434
+
435
+ return matrix
436
+
437
+ @classmethod
438
+ def extract(cls, file_name: str | pathlib.Path) -> list[NDArray]: # noqa
439
+ '''
440
+ Convenience method which instantiates class, extracts blocks, and
441
+ returns processed datasets
442
+
443
+ Parameters
444
+ ----------
445
+ file_name: str | pathlib.Path
446
+ File to parse
447
+
448
+ Returns
449
+ -------
450
+ list[ndarray of floats]
451
+ Each entry contains processed data, as defined in cls.data
452
+ '''
453
+ _ext = cls()
454
+ _ext(file_name, process=True)
455
+ return _ext.data
456
+
457
+
383
458
  class AILFTOrbEnergyExtractor(extto.BetweenExtractor):
384
459
  '''
385
460
  Extracts AI-LFT orbital energies from Orca output file
@@ -2292,7 +2367,7 @@ class StructureInputExtractor(extto.BetweenExtractor):
2292
2367
 
2293
2368
  # Get labels and coordinates
2294
2369
  all_info = re.findall(
2295
- r'([A-Za-z]+\s*-?\d\.\d*\s+-?\d\.\d*\s+-?\d\.\d*)',
2370
+ r'([A-Za-z]+\s*-?\d*\.\d*\s+-?\d*\.\d*\s+-?\d*\.\d*)',
2296
2371
  block
2297
2372
  )
2298
2373
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: orto
3
- Version: 1.14.0
3
+ Version: 1.14.1
4
4
  Summary: A package to make life easier when performing Orca calculations.
5
5
  Home-page: https://orto.kragskow.group
6
6
  Author: Jon Kragskow
@@ -1,17 +1,17 @@
1
1
  orto/__init__.py,sha256=IedlltYr3qYZxChNUdz62qogXA9Pos_MUvXdGXqAa0E,41
2
- orto/__version__.py,sha256=a0H_nixWnevEPH1fGr3Gt60iHwZZkGyMjJuE34aHiPI,23
2
+ orto/__version__.py,sha256=eyARjsqZfiB7blnKzG-sgKU2HEsI143aQSUAfhkeA8U,23
3
3
  orto/cli.py,sha256=pyWz9CDKyoMyJtKlc68iW-9cZZc0VF6o44lmtvA4RC8,115549
4
4
  orto/constants.py,sha256=anxaiTykO8Q_CXliR7zuOAdnXZrQ2-C4ndaviyl7kGc,419
5
5
  orto/data.py,sha256=uHxgL-RIwQD61ZsrJPbrS0NBPDb3qIeLSbnpjlsPmiI,18225
6
6
  orto/exceptions.py,sha256=D7oNeAEGeJNt5thzt6PaCn5FY6JcbJOWUE1N1LVhhuE,159
7
- orto/extractor.py,sha256=w_vfJdRzweshv5iU_3Jp2JezbNYcrAK9Ntp3e21y7aU,87484
7
+ orto/extractor.py,sha256=PpaR9F7yW0cJIDuvuuJSbvqAftmlj9sZmgb7g91c0Wo,89391
8
8
  orto/input.py,sha256=uUQV6A-8D0GZpRoY1rKK_aUPmk9kVVTnMzTHuisP5t4,11888
9
9
  orto/job.py,sha256=tDiz9omFwinoYJamgz66MZez0Ee9HMhuCIAeHMhXRF8,5916
10
10
  orto/plotter.py,sha256=gw1oSPilWvUO__CjIq8gP9a8_Xq0078VE9porOPvhCc,19661
11
11
  orto/utils.py,sha256=2vMUQa_QPi7RbBdZN9EUara6A58GLZkJb9TfMTbBroU,11259
12
- orto-1.14.0.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
13
- orto-1.14.0.dist-info/METADATA,sha256=2vtJud8HPH2truQHNmvadsmMy2RFBd5pl6HveXa6Qa8,1185
14
- orto-1.14.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
15
- orto-1.14.0.dist-info/entry_points.txt,sha256=HXenCglMp_03JkN34pK2phkjXK9CFcXTGHKv5QaVY8I,39
16
- orto-1.14.0.dist-info/top_level.txt,sha256=hQ-z28gTN_FZ2B5Kiwxr_9cUTcCoib9W5HjbkceDXw4,5
17
- orto-1.14.0.dist-info/RECORD,,
12
+ orto-1.14.1.dist-info/licenses/LICENSE,sha256=46mU2C5kSwOnkqkw9XQAJlhBL2JAf1_uCD8lVcXyMRg,7652
13
+ orto-1.14.1.dist-info/METADATA,sha256=SIjGV-P2CGJOphlqcU2uPPSDh7ZGufEIbFJkoc5bMS4,1185
14
+ orto-1.14.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
15
+ orto-1.14.1.dist-info/entry_points.txt,sha256=HXenCglMp_03JkN34pK2phkjXK9CFcXTGHKv5QaVY8I,39
16
+ orto-1.14.1.dist-info/top_level.txt,sha256=hQ-z28gTN_FZ2B5Kiwxr_9cUTcCoib9W5HjbkceDXw4,5
17
+ orto-1.14.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5