Skip to main content

posym module

Project description

Open In Colab PyPI version Test and Deploy DOI

PoSym

A point symmetry analysis tool written in python designed for theoretical chemistry. This tool makes use of continuous symmetry measures (CSM) to provide a robust implementation to compute the symmetry of chemistry objects such as normal modes, wave function and electronic density.

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 PySCF (https://pyscf.org) and PyQchem (http://www.github.com/abelcarreras/pyqchem)
  • Designed to be easily extendable to other objects by subclassing the SymmetryObject main class

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, SymmetryObject

pg = PointGroup(group='Td')
print(pg)

a1 = SymmetryObject(group='Td', rep='A1')
a2 = SymmetryObject(group='Td', rep='A2')
e = SymmetryObject(group='Td', rep='E')
t1 = SymmetryObject(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 SymmetryNormalModes

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 = SymmetryNormalModes(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 SymmetryMolecule

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 = SymmetryMolecule(group='Td', coordinates=coordinates, symbols=symbols)
print('Symmetry measure Td : ', sym_geom.measure)

sym_geom = SymmetryMolecule(group='C3v', coordinates=coordinates, symbols=symbols)
print('Symmetry measure C3v : ', sym_geom.measure)

sym_geom = SymmetryMolecule(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 BasisFunction type objects

from posym import SymmetryGaussianLinear

sym_o1 = SymmetryGaussianLinear('c2v', o1)
sym_o2 = SymmetryGaussianLinear('c2v', o2)
sym_o3 = SymmetryGaussianLinear('c2v', o3)
sym_o4 = SymmetryGaussianLinear('c2v', o4)
sym_o5 = SymmetryGaussianLinear('c2v', o5)
sym_o6 = SymmetryGaussianLinear('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)

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 SymmetrySingleDeterminant
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 = SymmetrySingleDeterminant('Td',
                                   alpha_orbitals=[orbital1, orbital2, orbital5],
                                   beta_orbitals=[orbital1, orbital2, orbital4],
                                   center=[0, 0, 0])

print('Configuration 1: ', wf_sym)  # T1 + T2

wf_sym = SymmetrySingleDeterminant('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 SymmetryMultiDeterminant

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 = SymmetryMultiDeterminant('Td',
                                  orbitals=[orbital1, orbital2, orbital3, orbital4, orbital5],
                                  configurations=configurations,
                                  center=[0, 0, 0])

print('State 1: ', wf_sym)  # T1

Compatible with pySCF

Usage of helper functions to interface with pySCF

from posym import SymmetryGaussianLinear
from posym.tools import get_basis_set_pyscf, build_orbital
from pyscf import gto, scf
import numpy as np


r = 1  # O-H distance
alpha = np.deg2rad(104.5)  # H-O-H angle

mol_pyscf = gto.M(atom=[['O', [0, 0, 0]],
                        ['H', [-r, 0, 0]],
                        ['H', [r*np.cos(np.pi - alpha), r*np.sin(np.pi - alpha), 0]]],
                  basis='3-21g',
                  charge=0,
                  spin=0)

# run pySCF calculation
pyscf_scf = scf.RHF(mol_pyscf)
pyscf_scf = pyscf_scf.run()

# get electronic structure data
mo_coefficients = pyscf_scf.mo_coeff.T
overlap_matrix = pyscf_scf.get_ovlp(mol_pyscf)
basis_set = get_basis_set_pyscf(mol_pyscf)

# compute symmetry of Molecular orbitals
print('\nMO symmetry')
for i, orbital_vect in enumerate(mo_coefficients):
    orb = build_orbital(basis_set, orbital_vect)
    sym_orb = SymmetryGaussianLinear('c2v', orb)
    print('orbital {}: {}'.format(i, sym_orb))

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 SymmetryGaussianLinear
# 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 = SymmetryGaussianLinear('c2v', orbital)
  print('Symmetry O{}: '.format(i + 1), sym_orbital)

Try an interactive example in Google Colab

Bibliography

This software is based on the theory described in the following works:

Pinsky M, Dryzun C, Casanova D, Alemany P, Avnir D, J Comput Chem. 29:2712-21 (2008) [link]
Pinsky M, Casanova D, Alemany P, Alvarez S, Avnir D, Dryzun C, Kizner Z, Sterkin A. J Comput Chem. 29:190-7 (2008) [link]
Casanova D, Alemany P. Phys Chem Chem Phys. 12(47):15523–9 (2010) [link]
Casanova D, Alemany P, Falceto A, Carreras A, Alvarez S. J Comput Chem 34(15):1321–31 (2013) [link]
A. Carreras, E. Bernuz, X. Marugan, M. Llunell, P. Alemany, Chem. Eur. J. 25, 673 – 691 (2019) [link]

Contact info

Abel Carreras
abelcarreras83@gmail.com

Multiverse Computing SL
Donostia-San Sebastian (Spain)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

posym-1.2.2.tar.gz (49.8 kB view details)

Uploaded Source

Built Distributions

posym-1.2.2-cp311-cp311-win_amd64.whl (67.8 kB view details)

Uploaded CPython 3.11 Windows x86-64

posym-1.2.2-cp311-cp311-win32.whl (63.3 kB view details)

Uploaded CPython 3.11 Windows x86

posym-1.2.2-cp311-cp311-musllinux_1_1_x86_64.whl (119.2 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

posym-1.2.2-cp311-cp311-musllinux_1_1_i686.whl (113.2 kB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ i686

posym-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (176.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

posym-1.2.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (175.7 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

posym-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl (67.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

posym-1.2.2-cp311-cp311-macosx_10_9_universal2.whl (88.6 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

posym-1.2.2-cp310-cp310-win_amd64.whl (67.4 kB view details)

Uploaded CPython 3.10 Windows x86-64

posym-1.2.2-cp310-cp310-win32.whl (62.9 kB view details)

Uploaded CPython 3.10 Windows x86

posym-1.2.2-cp310-cp310-musllinux_1_1_x86_64.whl (119.2 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

posym-1.2.2-cp310-cp310-musllinux_1_1_i686.whl (113.2 kB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ i686

posym-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (179.2 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

posym-1.2.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (178.5 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

posym-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl (66.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

posym-1.2.2-cp310-cp310-macosx_10_9_universal2.whl (87.7 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

posym-1.2.2-cp39-cp39-win_amd64.whl (67.4 kB view details)

Uploaded CPython 3.9 Windows x86-64

posym-1.2.2-cp39-cp39-win32.whl (62.9 kB view details)

Uploaded CPython 3.9 Windows x86

posym-1.2.2-cp39-cp39-musllinux_1_1_x86_64.whl (118.7 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

posym-1.2.2-cp39-cp39-musllinux_1_1_i686.whl (112.7 kB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ i686

posym-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (178.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

posym-1.2.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (178.2 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

posym-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl (66.8 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

posym-1.2.2-cp39-cp39-macosx_10_9_universal2.whl (87.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

posym-1.2.2-cp38-cp38-win_amd64.whl (67.4 kB view details)

Uploaded CPython 3.8 Windows x86-64

posym-1.2.2-cp38-cp38-win32.whl (62.9 kB view details)

Uploaded CPython 3.8 Windows x86

posym-1.2.2-cp38-cp38-musllinux_1_1_x86_64.whl (120.4 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

posym-1.2.2-cp38-cp38-musllinux_1_1_i686.whl (114.3 kB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ i686

posym-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (180.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

posym-1.2.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (179.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

posym-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl (66.8 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file posym-1.2.2.tar.gz.

File metadata

  • Download URL: posym-1.2.2.tar.gz
  • Upload date:
  • Size: 49.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2.tar.gz
Algorithm Hash digest
SHA256 99094fd76e9a0a90eed81a582b8b52601c30e74fd20e45654fee5a46c4a6b6d1
MD5 fe872936b5a0e26a8286a5369faa40cc
BLAKE2b-256 afadec094ac550398a0a20dd0d3ea34f2ce3b9c9eafe898976fb2bbe1448208e

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: posym-1.2.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 67.8 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9fda0c28494319576d4548f1a8bf3e2976ca2ab49c45af6e8219e31d37fcab76
MD5 cf566072fc12d01e428177b87688d7cf
BLAKE2b-256 6b3807c74d761e47e7a6986ecf728fbb9636329e8ab19724828849012e27aa3c

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: posym-1.2.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 63.3 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 bf9e57bd675df2b3904259871f56a9a27afa0ccfc845d9690f4023dfe00bb79f
MD5 d063cb4d56e8140b4d7536104d224d76
BLAKE2b-256 9b41abbca0092bce230c6054f589701e60d3b23140e4a1db387b6070d0e57237

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 efe33f40f26c930e79978a373a23720b7b935666c1c564556f98c5d0c54e2fe5
MD5 2e4bbe8588788e8073a7a0efe5e67ce5
BLAKE2b-256 ecb29e15e7e3c944f505ae1ad0a84494445f59101c778bb265ddab125cdc2a99

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e70855ea2f8fb21993120344208a67f275061eee8a78780c281da0990f3445b1
MD5 b8993a033650fcfc90dd4162edc0f983
BLAKE2b-256 7541ffa9e73a098da741fee5152a90bd9b17dc42c8ade790f314835142c4f5b3

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 39a3225b06cbbc94ac1d06f843c269c5b26bb569fd2067433e9985df5e0a7387
MD5 74897081bc109077ee00ade9e86138aa
BLAKE2b-256 bbc2ba019cf42cb9417178483d0e823f828a7f13bc438dafa63c591df4803025

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 8d4a9770496d07ba653c2186016c77803fbdc921e0538965b021c2d1f32daf94
MD5 036bc7b68948ddc8709a7a3023f470a9
BLAKE2b-256 87e1238c3c2abcdc9cbb960b54a27b7667bffd08a0b81aaaa57479f44b1c9880

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 171b9ccbd050566972ea6a555534cfa2110c6bd423113a60fe3a2effb92a4896
MD5 5a968396ae0dd835806c90548a1662a1
BLAKE2b-256 f7e17d4d26ca7231d55989fdf22a6fc61fbe1a0f7d28b8aee10b8b1747876e0f

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 43f81080ea9ac342e831132bd1ffa89d604cd355c61a41f26f11708561dd593d
MD5 0f970c4414b560dc72fc57fc9e50e33c
BLAKE2b-256 fe2319b301891ebb6245d5f5d68d8db074fc718012f465afdf9e2a1b0436b55f

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: posym-1.2.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 67.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fe7047f3fa1ff4026262c588c58e0ce633f4d1f857eb1851bfd9efa60f07911b
MD5 a31858994df45de1c2e6a4dceb9b290d
BLAKE2b-256 5f9ea72a9131ba1fd7ce91a6ce1ec0c9e5d2ce670690464ad695aa10018d7c14

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-win32.whl.

File metadata

  • Download URL: posym-1.2.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 e9eb3bc5e85dd9264abb8d58c5a9c8c6937b9cef1390ca04336611c9203ccad9
MD5 4140f986dc8ecf53fcb9941ba4a5631e
BLAKE2b-256 623db7d9e4c595148cb9d678b4314b6da83007659b7dab96f042f6ab16fd0dba

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f32ea1f5e8f72917c6e3214989b3ec197523867e3f6ff070310fbe1ae7e9267a
MD5 b63e6e54ebe902c1d082de57571cac6b
BLAKE2b-256 70548fcd1a371c107a5f1a3a8abc69649350cc37bd89483eac92a142db0bd3c2

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 c3b646a4438ed50dd882d5c79f08f99cad126b8608659444595581a907aa13f9
MD5 9793d326c2027511be655128df67c489
BLAKE2b-256 f6cd2a5f11198729c6fc330d28d580bb2f2dcdc54ff9ef4f2b808d64b6daf3d0

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 493fdb00c4668748e804fea4c450aa3e8b39fc6fd631fa5d3877b443de7de1e4
MD5 150252dac36ed5fcf9468d646d9a2ca9
BLAKE2b-256 b09aed0ad309cbc6444d64cdf3552d7eb2585d874ea528971493e7c5f901e654

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 feaadf2d8c802cc09c5ddebe9ad6a93b13d71a2b0cc77433dbed57634d6cdddf
MD5 79f279d526cc02a2435736e5138a0f3a
BLAKE2b-256 1a4f00f5a4b2d81df8a2484e986e3c086c36e6eecb5fc04801a81a8c12ef53ff

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d6fb0f126d5ea749758c803cd0856a6fb30bf0849286b6a1642fb06671fd1e29
MD5 e27275137074e66c9c7a022e5feab1da
BLAKE2b-256 832793a370403f74678a43fa8f5bced480fd7a12154bfcca911dec740c3bb272

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c01ab99621f842c3fe84c83845cc655db1b85c317119fff91f359604e6ad05fa
MD5 c75a5e448839c334ea33d7718c9c1a82
BLAKE2b-256 b26d0940c4082d2c61bc9b32cd02a0008b12a0203d628752d186590ae866ca27

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: posym-1.2.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 67.4 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4ce5e9a5f659387eecf9ca66da2e6ddb63e0f27601eb7bd639ce923d2d0962c6
MD5 a17533e6df9d2e1c51d9ee9f472fd252
BLAKE2b-256 fbfeca4e88e4ce299d9d0ea5c69e574cef0b29980c0960e4fcf0bf95ccaf03ef

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-win32.whl.

File metadata

  • Download URL: posym-1.2.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 70cbe7e7804facaac84f7fcb6007374611caca58553b1507adcdd775d1d56f55
MD5 39b788297fdcb7b604fcbf759bcb3318
BLAKE2b-256 6beb2f9362768a2a17d00765d126c0c57a84fba9768ed76bfaa8e77aaed0e841

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 752d2b111cf8ee3117113e7130ba040b771880d3f05d223046b29d8a9329bd8f
MD5 efff7d2c6b8a42e6b08da45da8050309
BLAKE2b-256 95c3912114aaa3513e8948b15756576a1828f8e9c22b886ed1ada076f0709f22

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 2f049f0307f21ff7fb6a7ebc1f09be9cdf87058b9fdf5ea57eedd1834a892b85
MD5 ef74b89ddd634e7eb2c1e8e798b39015
BLAKE2b-256 465c153b157a5e02a0eec36b1de562e6c7d503b9a074b5ba72cfec1d601bec7b

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 01d94641a62e64e4d5723ba38be0828a574dcf6dc477f885940474f5ebfce3a2
MD5 e61dcffe8c82d41f4c829a2fc627f744
BLAKE2b-256 339a10fb75e7cbee1a87d1c834c2a9e2978893bd31162ad5076f6b010f7c0cf1

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 fee57145e99ea9a32b5403844cb6fac551b93dc560a876411915d6f410e88c66
MD5 64048e1227df6a9498fb22652947eeb4
BLAKE2b-256 fda437539f0a04a600ebf8a1968bfcf85e6f30edec799fe3133c5bd37df8d3fa

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5a70b9d142194d02a708d5e9abaa12cb9106b566be6b950bc9a6cc94ff75cea9
MD5 866e06d8640e57d2f9f4df13d514c91f
BLAKE2b-256 d2dd6123ce28c9269deca8d3f2f66d503f8df59c3d85b54d5e29642ffef9268e

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 98484eceb717fb7208e497b2b9c52907c953d2f1556eb10a3d2c3e2405d71b64
MD5 fb0aa0a6e150faa0de81bc788034d6a1
BLAKE2b-256 2d8dd23e3a3e52d5a52fcd27ebb165069d074661d8df1a1286ee16c807c4c26e

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: posym-1.2.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 67.4 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4de909da5c0e7b6afb672d0f7300df98ddc4b7587af10086de8e61f4d3d401b9
MD5 0430463eb9cb68ef37405acef2af35dd
BLAKE2b-256 9371dd87e65bbecc86a6ef6bfe925f01fcc7be987a48031adc850e30c9e6151d

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-win32.whl.

File metadata

  • Download URL: posym-1.2.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 62.9 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.9.19

File hashes

Hashes for posym-1.2.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 200827e889c6826c8a9a46c0054e12adc2f8bddad12a787b1b7763e80cfe2481
MD5 9ae72a13e113af56805a2845146d2531
BLAKE2b-256 860b896868057b9f45e30bb886bec7a8646dd79dd3d8e61bd1163c2cb506f6c7

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 add2dcb47d9ceea08cd149d45c3163a7171efe4e0dc3a64a2525ffc7aa5cff0d
MD5 3cde80dd1d1b36ada327a1083a240d42
BLAKE2b-256 604d2e64eae4b1259a365942096d98cac6fa426f75f0711f7a0b1d6f2239c7f6

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-musllinux_1_1_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 07ccc8509be47790d21f10bb6d3b76b5e7daa4854b91d101cb105f02926a4e14
MD5 ca9a09faa15ea9e959423dfec3a3f685
BLAKE2b-256 c43439ce52638aaba901eb515056e38bb23506818b956f84524a8b9b3b99be61

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8687e683557ab852688bca6e477e3b1383e0e8115dcd98e9737a968fb3e2a0d6
MD5 2b91796563400dc15e1e33741a92c181
BLAKE2b-256 47f45313f1881404d024301a01ab632acee54b2ba0b50c1b1e4e12dbcf8e899c

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 16ad4008837e3978abd274cf073bfcf334c281ff08ce063981f50c78f71a4fa8
MD5 5043b82d112ed6dcfa4b1ca803d3bb4c
BLAKE2b-256 1cd446c32494d7045211c86553212d2fdf03e0f382d5fde20570ab5a53dda0ca

See more details on using hashes here.

File details

Details for the file posym-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for posym-1.2.2-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b37fe6fe8b3002f36a3bbfbfbf430bb3deaa475f0fa6a86a271daf444949adff
MD5 a2ecf3b980ceff210f7bb0d928e8523c
BLAKE2b-256 48e499ca7c3e868fc7cdf049f440239e56eaeefe61bfa1d54a3f176fe2505519

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page