posym module
Project description
PoSym
A point symmetry analysis tool written in python designed for theoretical chemistry.
This tool makes use of continuous symmetry ideas to provide a robust implementation
to compute the symmetry of different objects. This library is designed to be easily
extendable to other objects by subclassing the SymmetryBase
class.
Features
- Use as simple calculator for irreducible representations supporting direct sum and product
- Continuous symmetry measures (CSM) expressed in the basis or irreducible representation
- Determine symmetry of:
- normal modes
- functions defined in gaussian basis (molecular orbitals, electronic densities, operators)
- wave functions defined as a slater determinant
- wave functions defined as linear combination of slater determinants (Multi-reference/CI)
- Autogenerated high precision symmetry tables
- Compatibility with PyQchem (http://www.github.com/abelcarreras/pyqchem)
Requisites
- numpy
- scipy
- pandas
- yaml
Use as a simple symmetry calculation
Posym allows to create basic continuous symmetry python objects that can be operated using direct sum (+) and direct product (*).
from posym import PointGroup, SymmetryBase
pg = PointGroup(group='Td')
print(pg)
a1 = SymmetryBase(group='Td', rep='A1')
a2 = SymmetryBase(group='Td', rep='A2')
e = SymmetryBase(group='Td', rep='E')
t1 = SymmetryBase(group='Td', rep='T1')
print('t1 * t1:', t1 * t1)
print('t1 * e:', t1 * e)
print('e * (e + a1):', e * (e + a1))
Determine the symmetry of normal modes
Symmetry objects can be obtained from normal modes using SymmetryModes
.
from posym import SymmetryModes
coordinates = [[ 0.00000, 0.0000000, -0.0808819],
[-1.43262, 0.0000000, -1.2823700],
[ 1.43262, 0.0000000, -1.2823700]]
symbols = ['O', 'H', 'H']
normal_modes = [[[ 0., 0., -0.075],
[-0.381, -0., 0.593],
[ 0.381, -0., 0.593]], # mode 1
[[-0. , -0., 0.044],
[-0.613, -0., -0.35 ],
[ 0.613, 0., -0.35 ]], # mode 2
[[-0.073, -0., -0. ],
[ 0.583, 0., 0.397],
[ 0.583, 0., -0.397]]] # mode 3
frequencies = [1737.01, 3988.5, 4145.43]
sym_modes_gs = SymmetryModes(group='c2v', coordinates=coordinates, modes=normal_modes, symbols=symbols)
for i in range(len(normal_modes)):
print('Mode {:2}: {:8.3f} :'.format(i + 1, frequencies[i]), sym_modes_gs.get_state_mode(i))
print('Total symmetry: ', sym_modes_gs)
Determine the symmetry of a molecular geometry
Continuous symmetry measure (CSM) is obtained using measure
method.
from posym import SymmetryMoleculeBase
coordinates = [[ 0.0000000000, 0.0000000000, 0.0000000000],
[ 0.5541000000, 0.7996000000, 0.4965000000],
[ 0.6833000000, -0.8134000000, -0.2536000000],
[-0.7782000000, -0.3735000000, 0.6692000000],
[-0.4593000000, 0.3874000000, -0.9121000000]]
symbols = ['C', 'H', 'H', 'H', 'H']
sym_geom = SymmetryMoleculeBase(group='Td', coordinates=coordinates, symbols=symbols)
print('Symmetry measure Td : ', sym_geom.measure)
sym_geom = SymmetryMoleculeBase(group='C3v', coordinates=coordinates, symbols=symbols)
print('Symmetry measure C3v : ', sym_geom.measure)
sym_geom = SymmetryMoleculeBase(group='C4v', coordinates=coordinates, symbols=symbols)
print('Symmetry measure C4v : ', sym_geom.measure)
Define basis set functions in gaussian basis
Define basis function as linear combination of gaussian that act as normal python functions
from posym.basis import PrimitiveGaussian, BasisFunction
# Oxigen atom
sa = PrimitiveGaussian(alpha=130.70932)
sb = PrimitiveGaussian(alpha=23.808861)
sc = PrimitiveGaussian(alpha=6.4436083)
s_O = BasisFunction([sa, sb, sc],
[0.154328969, 0.535328136, 0.444634536],
center=[0.0000000000, 0.000000000, -0.0808819]) # Bohr
sa = PrimitiveGaussian(alpha=5.03315132)
sb = PrimitiveGaussian(alpha=1.1695961)
sc = PrimitiveGaussian(alpha=0.3803890)
s2_O = BasisFunction([sa, sb, sc],
[-0.099967228, 0.399512825, 0.700115461],
center=[0.0000000000, 0.000000000, -0.0808819])
pxa = PrimitiveGaussian(alpha=5.0331513, l=[1, 0, 0])
pxb = PrimitiveGaussian(alpha=1.1695961, l=[1, 0, 0])
pxc = PrimitiveGaussian(alpha=0.3803890, l=[1, 0, 0])
pya = PrimitiveGaussian(alpha=5.0331513, l=[0, 1, 0])
pyb = PrimitiveGaussian(alpha=1.1695961, l=[0, 1, 0])
pyc = PrimitiveGaussian(alpha=0.3803890, l=[0, 1, 0])
pza = PrimitiveGaussian(alpha=5.0331513, l=[0, 0, 1])
pzb = PrimitiveGaussian(alpha=1.1695961, l=[0, 0, 1])
pzc = PrimitiveGaussian(alpha=0.3803890, l=[0, 0, 1])
px_O = BasisFunction([pxa, pxb, pxc],
[0.155916268, 0.6076837186, 0.3919573931],
center=[0.0000000000, 0.000000000, -0.0808819])
py_O = BasisFunction([pya, pyb, pyc],
[0.155916268, 0.6076837186, 0.3919573931],
center=[0.0000000000, 0.000000000, -0.0808819])
pz_O = BasisFunction([pza, pzb, pzc],
[0.155916268, 0.6076837186, 0.3919573931],
center=[0.0000000000, 0.000000000, -0.0808819])
# Hydrogen atoms
sa = PrimitiveGaussian(alpha=3.42525091)
sb = PrimitiveGaussian(alpha=0.62391373)
sc = PrimitiveGaussian(alpha=0.1688554)
s_H = BasisFunction([sa, sb, sc],
[0.154328971, 0.535328142, 0.444634542],
center=[-1.43262, 0.000000000, -1.28237])
s2_H = BasisFunction([sa, sb, sc],
[0.154328971, 0.535328142, 0.444634542],
center=[1.43262, 0.000000000, -1.28237])
basis_set = [s_O, s2_O, px_O, py_O, pz_O, s_H, s2_H]
# Operate with basis functions in analytic form
px_O2 = px_O * px_O
print('integral from -inf to inf:', px_O2.integrate)
# plot functions
from matplotlib import pyplot as plt
import numpy as np
xrange = np.linspace(-5, 5, 100)
plt.plot(xrange, [s_O(x, 0, 0) for x in xrange] , label='s_O')
plt.plot(xrange, [px_O(x, 0, 0) for x in xrange] , label='px_O')
plt.legend()
Create molecular orbitals from basis set
Define molecular orbitals straightforwardly from molecular orbitals coefficients using usual operators
# Orbital 1
o1 = s_O * 0.994216442 + s2_O * 0.025846814 + px_O * 0.0 + py_O * 0.0 + pz_O * -0.004164076 + s_H * -0.005583712 + s2_H * -0.005583712
# Orbital 2
o2 = s_O * 0.23376666 + s2_O * -0.844456594 + px_O * 0.0 + py_O * 0.0 + pz_O * 0.122829781 + s_H * -0.155593214 + s2_H * -0.155593214
# Orbital 3
o3 = s_O * 0.0 + s2_O * 0.0 + px_O * 0.612692349 + py_O * 0.0 + pz_O * 0.0 + s_H * -0.44922168 + s2_H * 0.449221684
# Orbital 4
o4 = s_O * -0.104033343 + s2_O * 0.538153649 + px_O * 0.0 + py_O * 0.0 + pz_O * 0.755880259 + s_H * -0.295107107 + s2_H * -0.2951071074
# Orbital 5
o5 = s_O * 0.0 + s2_O * 0.0 + px_O * 0.0 + py_O * -1.0 + pz_O * 0.0 + s_H * 0.0 + s2_H * 0.0
# Orbital 6
o6 = s_O * -0.125818566 + s2_O * 0.820120983 + px_O * 0.0 + py_O * 0.0 + pz_O * -0.763538862 + s_H * -0.769155124 + s2_H * -0.769155124
# Check orthogonality
print('<o1|o1>: ', (o1*o1).integrate)
print('<o2|o2>: ', (o2*o2).integrate)
print('<o1|o2>: ', (o1*o2).integrate)
Analyze symmetry of molecular orbitals
Get symmetry of molecular orbitals defined as PrimitiveGaussian/BasisFunction
type objects
from posym import SymmetryFunction
sym_o1 = SymmetryFunction('c2v', o1)
sym_o2 = SymmetryFunction('c2v', o2)
sym_o3 = SymmetryFunction('c2v', o3)
sym_o4 = SymmetryFunction('c2v', o4)
sym_o5 = SymmetryFunction('c2v', o5)
sym_o6 = SymmetryFunction('c2v', o6)
print('Symmetry O1: ', sym_o1)
print('Symmetry O2: ', sym_o2)
print('Symmetry O3: ', sym_o3)
print('Symmetry O4: ', sym_o4)
print('Symmetry O5: ', sym_o5)
print('Symmetry O6: ', sym_o6)
# Operate molecular orbitals symmetries to get the symmetry of non-degenerate wave functions
# restricted close shell
sym_wf_gs = sym_o1*sym_o1 * sym_o2*sym_o2 * sym_o3*sym_o3 * sym_o4*sym_o4 * sym_o5*sym_o5
print('Symmetry WF (ground state): ', sym_wf_gs)
# restricted open shell
sym_wf_excited_1 = sym_o1*sym_o1 * sym_o2*sym_o2 * sym_o3*sym_o3 * sym_o4*sym_o4 * sym_o5*sym_o6
print('Symmetry WF (excited state 1): ', sym_wf_excited_1)
# restricted close shell
sym_wf_excited_2 = sym_o1*sym_o1 * sym_o2*sym_o2 * sym_o3*sym_o3 * sym_o4*sym_o4 * sym_o6*sym_o6
print('Symmetry WF (excited state 2): ', sym_wf_excited_2)
Combine with PyQchem to create useful automations
PyQchem (https://github.com/abelcarreras/PyQchem) is a Python interface for Q-Chem (https://www.q-chem.com). PyQchem can be used to obtain wave functions and normal modes as Python objects that can be directly used in Posym.
from pyqchem import get_output_from_qchem, QchemInput, Structure
from pyqchem.parsers.basic import basic_parser_qchem
from posym import SymmetryFunction
# convenient functions to connect pyqchem - posym
from posym.tools import get_basis_set, build_orbital
# define molecules
butadiene = Structure(coordinates=[[ -1.07076839, -2.13175980, 0.03234382],
[ -0.53741536, -3.05918866, 0.04995793],
[ -2.14073783, -2.12969357, 0.04016267],
[ -0.39112115, -0.95974916, 0.00012984],
[ 0.67884827, -0.96181542, -0.00769025],
[ -1.15875076, 0.37505495, -0.02522296],
[ -0.62213437, 1.30041753, -0.05065831],
[ -2.51391203, 0.37767199, -0.01531698],
[ -3.04726506, 1.30510083, -0.03293196],
[ -3.05052841, -0.54769055, 0.01011971]],
symbols=['C', 'H', 'H', 'C', 'H', 'C', 'H', 'C', 'H', 'H'])
# create qchem input
qc_input = QchemInput(butadiene,
jobtype='sp',
exchange='hf',
basis='sto-3g',
)
# calculate and parse qchem output
data, ee = get_output_from_qchem(qc_input,
read_fchk=True,
processors=4,
parser=basic_parser_qchem)
# extract required information from Q-Chem calculation
coordinates = ee['structure'].get_coordinates()
mo_coefficients = ee['coefficients']['alpha']
basis = ee['basis']
# print results
print('Molecular orbitals (alpha) symmetry')
basis_set = get_basis_set(coordinates, basis)
for i, orbital_coeff in enumerate(mo_coefficients):
orbital = build_orbital(basis_set, orbital_coeff)
sym_orbital = SymmetryFunction('c2v', orbital)
print('Symmetry O{}: '.format(i+1), sym_orbital)
Compute the symmetry of wave functions defined as a Slater determinant
Use SymmetryWaveFunction
class to determine the symmetry of a wave function
from a set of occupied molecular orbitals defined as BasisFunction
objects
from posym import SymmetryWaveFunction
from posym.tools import build_orbital
# get orbitals from basis set and MO coefficients
orbital1 = build_orbital(basis_set, coefficients['alpha'][0]) # A1
orbital2 = build_orbital(basis_set, coefficients['alpha'][1]) # A1
orbital3 = build_orbital(basis_set, coefficients['alpha'][2]) # T1
orbital4 = build_orbital(basis_set, coefficients['alpha'][3]) # T1
orbital5 = build_orbital(basis_set, coefficients['alpha'][4]) # T1
wf_sym = SymmetryWaveFunction('Td',
alpha_orbitals=[orbital1, orbital2, orbital5],
beta_orbitals=[orbital1, orbital2, orbital4],
center=[0, 0, 0])
print('Configuration 1: ', wf_sym) # T1 + T2
wf_sym = SymmetryWaveFunction('Td',
alpha_orbitals=[orbital1, orbital2, orbital3],
beta_orbitals=[orbital1, orbital2, orbital3],
center=[0, 0, 0])
print('Configuration 2: ', wf_sym) # A1 + E
Compute the symmetry of multi-reference wave functions
Use SymmetryWaveFunctionCI
class to determine the symmetry of multi-reference wave function
(defined as a liner combination of Slater determinants) from a set of
occupied molecular orbitals defined as BasisFunction
objects and a configurations dictionary.
from posym import SymmetryWaveFunctionCI
configurations = [{'amplitude': -0.03216, 'occupations': {'alpha': [1, 1, 0, 0, 1], 'beta': [1, 1, 1, 0, 0]}},
{'amplitude': 0.70637, 'occupations': {'alpha': [1, 1, 0, 1, 0], 'beta': [1, 1, 1, 0, 0]}},
{'amplitude': 0.03216, 'occupations': {'alpha': [1, 1, 1, 0, 0], 'beta': [1, 1, 0, 0, 1]}},
{'amplitude': -0.70637, 'occupations': {'alpha': [1, 1, 1, 0, 0], 'beta': [1, 1, 0, 1, 0]}}]
wf_sym = SymmetryWaveFunctionCI('Td',
orbitals=[orbital1, orbital2, orbital3, orbital4, orbital5],
configurations=configurations,
center=[0, 0, 0])
print('State 1: ', wf_sym) # T1
Try an interactive example in Google Colab
Contact info
Abel Carreras
abelcarreras83@gmail.com
Donostia International Physics Center (DIPC)
Donostia-San Sebastian (Spain)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for posym-0.5.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8e0a279dc52866901a030771f02e814c64113da4509d61edc6442bb3f7ebadf |
|
MD5 | 7549fd50b5974f9fa6b6c5e1efc9f507 |
|
BLAKE2b-256 | 94469cf80f1501d869958658b04a7c2d5f0b36074fe3ea35153de1efa5eb2424 |
Hashes for posym-0.5.4-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fef65cf672c4bfd0c58ad3786011c9476ad152a31f68d37f4f1acbf9365e49ec |
|
MD5 | 3a96a8680700203e1ee404a9a9c6f270 |
|
BLAKE2b-256 | 8ec57764af20e7c8f86291eacd158b86720406fa6e5a27bf1e79112b37e77258 |
Hashes for posym-0.5.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9ac8c4734bf2e68acb1074ab33c439878eaeb927cb896b7d5c7c981ea6f46a7 |
|
MD5 | c92ba0e72b38e5cbbe03a29c9f7a2fb5 |
|
BLAKE2b-256 | 1c53f1f7115f8359ceed07453fb3a1ba31c5fe688ee0bec0dc6d1ca6175f4de5 |
Hashes for posym-0.5.4-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0e0f783956550b3ff7cbdf4fcfe596b6b23bfc65ae94082365dde3983ffdbea |
|
MD5 | 06a068216ea2fabc12fa9004c06e1488 |
|
BLAKE2b-256 | 5bb571c3965a975421b5f61e4672bcfee163aefb1cc8662596e6f07143d2aa8f |
Hashes for posym-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df51d31176170a19386473198a204c77fa3d6b54c76af295945013edc043fc23 |
|
MD5 | 65add32c439b5311d8d97810aef33db1 |
|
BLAKE2b-256 | 7b679f6e1bb3748be606291352b88a1c09cd133c2010d43c4b73f7240abe0935 |
Hashes for posym-0.5.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddbfe646004be20f0137f40cd6c0a3323ca74cd73994c04cb6f68404477ba893 |
|
MD5 | 2993bed26cc24fa27aece86ece34f456 |
|
BLAKE2b-256 | eba48ea860028f330fe5b7606d7485c35d75516a009e1c73075d0c20d475bca6 |
Hashes for posym-0.5.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0fe1171c379496b841089f9323076d3347c319bf538dae25c2e1509a42e7cfa1 |
|
MD5 | a75b52f26ae551884962219199a707a3 |
|
BLAKE2b-256 | 3dd2049edb965a46d8666b5fa020a04d9f18be3f3344d3c8f982ce87c93fb521 |
Hashes for posym-0.5.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5df1c3cad46e99889a88203c2718afea3c2c2226730070c61d830aadb986049 |
|
MD5 | 8cb486b8efc44df75276f0bae0d7d7fe |
|
BLAKE2b-256 | 4ec05ec61cf26c7eb6885952698994014bd43b790dc4d1bd4ae1fb31bd0c2d5a |
Hashes for posym-0.5.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee80aa46b08f2722c5f56a480295090301c0d47f96f8e6fb698eb2fca0a1fc02 |
|
MD5 | 865ac09a9ae650f3a67b2d0c11fb7144 |
|
BLAKE2b-256 | aeec44cfa9db4a2c3def0b012dd7fd7d9c077fe09b05e35798980c502d0ac733 |
Hashes for posym-0.5.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5d391d9202de7ee3198684079ef5712b7d5b5c26ceb0d41bb57c3668023023b |
|
MD5 | ff6773be38c9ae29e6f3458967ae080d |
|
BLAKE2b-256 | 66aa4c975434910502a439e8b04dda4baa776a63d75cc2c860afdfcbd6d0413e |
Hashes for posym-0.5.4-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8edcdd3dedf78b4356adfb07745f2828846a45be90fd7715a706e87237ebd528 |
|
MD5 | 32f413651c36abcf6cda53a295b582d5 |
|
BLAKE2b-256 | d25ef0ba3b6df1638ddf6e59abe0f15b71e7d1691aab291fab508ac2ea59198e |
Hashes for posym-0.5.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0cbe927815af9c2e80f007ddb8f1b56e6b0df68fdd0fcd99defce4c93f90100 |
|
MD5 | f50e672298f9bb460edccd4efc00de7a |
|
BLAKE2b-256 | 452feb82b92d438fd2725ee05dce98a79b26dd46a903d0f8ef0ccd0721a012e0 |
Hashes for posym-0.5.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 749ca3e09524e196ef428955f55baa49f548434f95c12b19e19f95f4fb340143 |
|
MD5 | 272231702cd3006289a30e0c1373bc41 |
|
BLAKE2b-256 | 9f43ee193abce91b191fc7eeb452fc5ae987420061d925073f3e31b55ab3eb3b |
Hashes for posym-0.5.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 920e4c5b1acf83bd6281127e886deeb023b07cf4afdf1a581f0ed48fc0d494fe |
|
MD5 | 56a56d5c4e6b8aaec556cf2662cc4ae4 |
|
BLAKE2b-256 | dee38b1fe62da69cfa5326da021d771de45184d5943bd9b0ffc6e5f240a56f42 |
Hashes for posym-0.5.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4fd718622fa4cb528dfccbb5768a4a85fa6b242d5a79d1ebaf3b1b3037d99439 |
|
MD5 | 1714693da64d40334f4b18d1cf11bf45 |
|
BLAKE2b-256 | a2dac28b1d1bfee7d820d322f15d4f34ae0ff62576a316cb43f1d7ecbb78fe50 |
Hashes for posym-0.5.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 020778d9b799feff68c9e4380ad2b8255304a65b2def64cb8257902202623809 |
|
MD5 | a448535eb0847ed0e9652c2ba4244229 |
|
BLAKE2b-256 | d6c9339b8e2f871e3e4f9bcafcb076dae92e6aea7c77361c64e5a288de1d31d7 |
Hashes for posym-0.5.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8dc6bb9d19190a6170f6fca498a31bad310fd5a017f2d21ec98a9c58b68de25c |
|
MD5 | f1f1ddfbd4161701c920e62bbc811a0f |
|
BLAKE2b-256 | 8df80ffa74b06f4b750618d57609ff5f2a04e1fe945beb11d5b5232e88633715 |
Hashes for posym-0.5.4-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22d85f536620add51ea6906eb6d306638fc8e1d870f45aaba65d3bb819485e3f |
|
MD5 | 3d42031144349ef1c7184af27ee66095 |
|
BLAKE2b-256 | 782335a7e12c503c583ccc203611adf0fa690d8de21370bda9d04f4ba3ce90d9 |
Hashes for posym-0.5.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c040d1e1b0ad0883aab1798103cc90ccf9138ebcfd6366808114db2eb6b5330f |
|
MD5 | eb62c010ad4dda29bf77364736f8ec5f |
|
BLAKE2b-256 | 934b3982d7e3e443da7d39e5ca5d8008647c9cbf827c392dc5ad795a5635dc56 |
Hashes for posym-0.5.4-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8271cd180b70e50c38abc89acc7ada5e041a6f2b28ea6754c5ff2d98bc3198bc |
|
MD5 | 0a301dc4dda93269e4acef9713dd0eba |
|
BLAKE2b-256 | 27544b5941a845c732b0575c467693284d1e172e7989e91120b2f6fde7a2201d |
Hashes for posym-0.5.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c38c3c2437f4ff7fbc5300f9ba73220a7d69318b75dbb8cdd984569ee8ec77d8 |
|
MD5 | 29f1074c0a5e221fb5873ed60fb23f8a |
|
BLAKE2b-256 | 1d1876a43fafaa4ecd5d4ae0726f7d975dc89f4aff6c9f902ad8f043e3f0ef5d |
Hashes for posym-0.5.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e1b2840d03349e30c6a2747e6a9076a53b3624fedf8f84e177319aafb523a73a |
|
MD5 | 0627df581a4238105bc215b4d409a8b6 |
|
BLAKE2b-256 | ae2b4f1b8d13d12c8bcc60653a205155c4246723c0cf3f1003b38563651d0678 |
Hashes for posym-0.5.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32b3cf7e8a7e8649649212f2809675bea78d48cf829a12fe92d912544cc51f6a |
|
MD5 | 83b830624fbec4d42640eeffa852926d |
|
BLAKE2b-256 | 8a221d2bec79634432a1b1750dbbda1e8c617aa395039fc081ff36bf5d7ef738 |
Hashes for posym-0.5.4-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ddae164ffafeebe6cba0414adbdf5348e1404c14cceddd8dcddcf6bdde99c1f3 |
|
MD5 | cf330c56dfc8b1209d7a20e3ad3540eb |
|
BLAKE2b-256 | 9318d0879531a4b3d891709045dd20c36057a9be9f3c1410466410fd83c35d18 |
Hashes for posym-0.5.4-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 343b6fd1f5066bf1155cb38bed3db58e4aec9e52928963873af4e479f90bf656 |
|
MD5 | 58c3a43a45a45dfcf7a27b16ab17b93d |
|
BLAKE2b-256 | 1e655007edc419ffff6453cf3106dadacbf273dffc6ba66ed4dc8ce458a8548c |
Hashes for posym-0.5.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1746d4fcf3c81342b502fef7a608de635b7eb0ebdf976ddaa5cfe0271b67d094 |
|
MD5 | ed7b55f5cee22f1f5172a279d16f3dfb |
|
BLAKE2b-256 | c8dbaa09cfbd027020e98ddbeb0346734bb6b0cfd754ef2a5e89ae28d4a82c1c |
Hashes for posym-0.5.4-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adc0c0fdc7f6981d5c67824618b00a9ca5655afefeb9b5ff1625dee61a8f4b73 |
|
MD5 | 646fc7abd9ce02cc4d51435700433683 |
|
BLAKE2b-256 | 1a51583cb280f60c9fd078aeb29b8f124528f2fd902dc61ec2c3f6ad46abd791 |
Hashes for posym-0.5.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 333b683bd0a3df103d0383b998f9606b2546c182daac4dd5efa0684852de0532 |
|
MD5 | ca6737682b42f584bca055c4b7e86824 |
|
BLAKE2b-256 | 68b0119d60b41c345bd23fa08677471de1fd64fd1b8f27602d57fd5f68675e42 |
Hashes for posym-0.5.4-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 12e2db290f4ab60e45b2022799028659aa4efb29c9860400923f4a7ab77cd0ba |
|
MD5 | a86656d53a55f1aea0473ed5cda4c4e7 |
|
BLAKE2b-256 | 4913f576717ab10256dc1d2e525d47de1c75c83068f2897b37c4bd3721ffcde2 |
Hashes for posym-0.5.4-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f0cc8759b07c6297fc31a5e35209c572a47273c8933f1052130c9d2d703fe84 |
|
MD5 | af9d945051ec4fff6f59d5ff18513264 |
|
BLAKE2b-256 | 20edd6dfbb39f08a6b85b93300219142d94e2dbed13b4f12577645a6c3a0a613 |
Hashes for posym-0.5.4-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 181210c71bf1e00003998cc96a2717e8f4c19a223dfd5abd0a978b616dc7661d |
|
MD5 | 7fdd3157c377d3216cb6c6945c45ebb7 |
|
BLAKE2b-256 | 402900f0c4f4cf05dbbeb011f0fcaa66d5ca81ed8e2658efad7d6c1207e5945c |
Hashes for posym-0.5.4-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aebd7408d28b4a8c63bdf19bdcf90dc26c626a9e1c191deeb869c5b8805a7f08 |
|
MD5 | 6e64c3143f9c529333d0767f6d6e3610 |
|
BLAKE2b-256 | bd61449cac0eb81751a18ddfe1e35c62b4cbc7cc9c650f0174b178bbb9edf3c7 |
Hashes for posym-0.5.4-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 902e45d6e3d6ea01f3decde9fa47593665f0ccce76aa420546e82eaa6f273384 |
|
MD5 | 7cfad1a8fee517c6186fc7037d744a79 |
|
BLAKE2b-256 | 6e7a5c6d51ed1dd06e1cf93f84c70c84473616d84faec79928264937757f1536 |
Hashes for posym-0.5.4-cp36-cp36m-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05eb6581344e8c01ac1235debfe03cd359c2bd6fcef7bd6c45e64b371c5b57c4 |
|
MD5 | b411fe7d136942268b80fd13a72c8ffc |
|
BLAKE2b-256 | e84885b69a17635e457c948949bb8fa986d0cfbd5a7dd08bb5199ac696e0e959 |
Hashes for posym-0.5.4-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf6674c4717dcd471191fbb4268ee87dbc30452c5d6b1d83eef7da31f20dbdf8 |
|
MD5 | 3c4d0ead63982ee9190c072a96059f5b |
|
BLAKE2b-256 | 3bdbb658a9e46b693101105916c6c09aea378e180c3c8c756e81ac025af01629 |