Skip to main content

Open In Colab PyPI version Test and Deploy DOI Documentation Status

Logo 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.

Online manual: https://posym.readthedocs.io/

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

Supported Point Groups

'Cs', 'Ci', 'C{n}', 'C{n}v', 'C{n}h', 'D{n}', 'D{n}h', 'D{n}d', 'I', 'Ih', 'O', 'Oh', 'S{n}', 'T', 'Td', 'Th'

where '{n}' is any integer representing a number of rotations, e.g., 'C2v'.

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-configurational 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

Donostia International Physics Center (DIPC)
Donostia, Euskadi (Spain)

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.3.2.tar.gz (56.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

posym-1.3.2-cp311-cp311-win_amd64.whl (75.7 kB view details)

Uploaded CPython 3.11Windows x86-64

posym-1.3.2-cp311-cp311-win32.whl (71.4 kB view details)

Uploaded CPython 3.11Windows x86

posym-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl (126.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

posym-1.3.2-cp311-cp311-musllinux_1_1_i686.whl (120.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ i686

posym-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (183.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

posym-1.3.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (183.2 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ i686

posym-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl (74.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

posym-1.3.2-cp311-cp311-macosx_10_9_universal2.whl (95.5 kB view details)

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

posym-1.3.2-cp310-cp310-win_amd64.whl (75.7 kB view details)

Uploaded CPython 3.10Windows x86-64

posym-1.3.2-cp310-cp310-win32.whl (71.4 kB view details)

Uploaded CPython 3.10Windows x86

posym-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl (124.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

posym-1.3.2-cp310-cp310-musllinux_1_1_i686.whl (118.7 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ i686

posym-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (183.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

posym-1.3.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (183.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ i686

posym-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl (74.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

posym-1.3.2-cp310-cp310-macosx_10_9_universal2.whl (95.5 kB view details)

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

posym-1.3.2-cp39-cp39-win_amd64.whl (75.7 kB view details)

Uploaded CPython 3.9Windows x86-64

posym-1.3.2-cp39-cp39-win32.whl (71.4 kB view details)

Uploaded CPython 3.9Windows x86

posym-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl (124.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

posym-1.3.2-cp39-cp39-musllinux_1_1_i686.whl (118.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ i686

posym-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (183.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

posym-1.3.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (182.6 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ i686

posym-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl (74.2 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

posym-1.3.2-cp39-cp39-macosx_10_9_universal2.whl (95.5 kB view details)

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

posym-1.3.2-cp38-cp38-win_amd64.whl (75.5 kB view details)

Uploaded CPython 3.8Windows x86-64

posym-1.3.2-cp38-cp38-win32.whl (71.2 kB view details)

Uploaded CPython 3.8Windows x86

posym-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl (128.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

posym-1.3.2-cp38-cp38-musllinux_1_1_i686.whl (122.0 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ i686

posym-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (187.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

posym-1.3.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (186.9 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

posym-1.3.2-cp38-cp38-macosx_11_0_arm64.whl (72.3 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: posym-1.3.2.tar.gz
  • Upload date:
  • Size: 56.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2.tar.gz
Algorithm Hash digest
SHA256 7adad0f2775a791da9185628a86cc2b57c02e0c671e8d9bace50b56912fbabf5
MD5 a6f55aac410a491fc760858501fe0afe
BLAKE2b-256 0f02373a1999faca71f269b2c5092cf8d2e9bec197417d46770f3694d7a9d6b6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 75.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8befe82ce75b0d0f3e1137f827d0601b851613fdf4e1f9cda9dc45cfe3312a93
MD5 aec81206d25adb84459b5f1d62ad02f9
BLAKE2b-256 d830ddefa05f8df5bc5a85eff2ad3fff6032ad77afa39c1a99d1028e212a7ebb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 5f8d02687649fb534a58550b5bd6a3274ab3ceb976e613fb1bcf75d681cd86d1
MD5 50f2e5e33c46d02b9efb8f13bfc73f7a
BLAKE2b-256 1eed043ee122834e4baa0f71f6ce7fc4449c7398ea2dc8661f786063da628967

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ab330bad6470cb43072d5ef2dbc0d3e4bf49ed0e0ce434a511c19a3f3e4e4c0e
MD5 ac9e8dd57114d0da7db90c6d7d75ec07
BLAKE2b-256 07929724fa21d0fd229c1c74b981c11756d2750a7aa66af5d2ac17d368170c56

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp311-cp311-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 763928e0cc6d81808d2f998e2b9ea1dd611dab5e35201b48479ba2d585577c7a
MD5 b5450cc731d158f14bb11b4f612a5b9b
BLAKE2b-256 1aca02a1e47918d84aa77bc0c54d30dce2ace56377d51015af395b218b60642f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9610c53a8c1ff41391df18011391e44919fcc74f2c3e8ef652bec37833e937a0
MD5 d31c8858dc9c86f4c30d59323c68e26b
BLAKE2b-256 3b458c418986b73c428c6f9861bdc6520b388ef00f078110d98c2caff408a1fc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ef29f9e085a5ab398e7c5400b0e3983ff9e717d38aa525826c32d47bc22c1add
MD5 b752922e830317e883a2399c6b2dae02
BLAKE2b-256 a39fcd591b20d2fea05da594e09f67cd64aa932395020ec3a945f43215197d8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d549a084fd619c1c0d3475d9919aded67f983b3bc5a173aa15e9e4a408af8470
MD5 10e7bc12a985d53dda15ac13985facf0
BLAKE2b-256 6cff43641d86039c7ac53b260b1cf82bff01c37c99a3c9d64a34027c670b3ec4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3a08a8698c6472166c7b983a7ad7a5f02b79bb645e4155602fb16ce7a8f58231
MD5 f4046a48e7a154ba4e2fe74e6582acca
BLAKE2b-256 537061e5a8b4959f0c43f00a7fa31c0eb9f1d00ec5ccf1539f28b5f46beb378a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 75.7 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d98eed7fe6ded902e7dbbe2915255f9ef57baf61278d8863351336f39d6e5dcc
MD5 013dc6cd79b638c640bb320264beec80
BLAKE2b-256 70f360de1985ce456e6aa391a9c56534d650e29e1df559df709b817dfe3c1bfd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp310-cp310-win32.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 98ea4839dbbc2383a96a98684143d38e72a2f92a017becccec1284c5d694ecaa
MD5 3380dcb768ef713cec650a2d6bd0f514
BLAKE2b-256 98cabc08b4196a743f91ead021d2f6d2cbebf0a880b72b0cac830a845a36fb06

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 be508f6774cb4735db3c034f3bc40f982ae4d2bb1086515415eea69534164389
MD5 deb8c1010a090474ae5c527e9fd8170b
BLAKE2b-256 91df745c7bc515c874bc6c8f16801ad6f3c64e7318f354f222decde416e989f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp310-cp310-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 808d4a823c4240a332baa7121a2222bc108b5f0dd3aabf9ddbee7a4e525c28ab
MD5 8c61b9d099368dd0397737c62209448e
BLAKE2b-256 2ad460a60ddbcde980102a3298339f65a949b95013b64897a852c236b8646641

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 819c051270481efd5391bc55b240a133ce902fcde1ef69b774fe479a1cedc449
MD5 db5f0045cad187cf543bd52ef504bc0f
BLAKE2b-256 f5c0444813034f9cda281d2c23b5d10126bcdd33fc37427cf8e107d3db61511a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5dc7d099b9ab05c5208e16abae8bf1ce8fa98a8ac1ea55eb533072432c16cf84
MD5 ca5ff04afbd60f9e2eeeeb73187540de
BLAKE2b-256 1ca741f9ad6fc66f65d104a88ec0b9cbf010c3cfc32a2300ea951171762e268a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 db6f1171bf3c683e78ffae142139502311e023a0fbc168105f9b097c7708338f
MD5 af02b9a9e7174446b4d439f8a4ee021c
BLAKE2b-256 4da263a576532d30bf59f8045042baf4d2b1395f9e0b779e3f14d586b1d4b7b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8c22530ce7abb8f695f062d365a23edc96c63ef86ecbfdff2d7052090ea4d0c0
MD5 a21802eca2f137e66570b4b5c4a0cfc8
BLAKE2b-256 acb357c52adeaed98a34267131f39bf45626fe3709cd77f8fbd20fb27fbcace4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 75.7 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a0b76f62f19873ba3d797f5fbd260a87bcd9a9fce42aec967c4d381e06f41a9c
MD5 0b31816ddcd632a53443c8cb98b70ef5
BLAKE2b-256 eeb68684039aa5087631ac6d160ce9894b145bf8e6b6f6a0fea7c3781e39583a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp39-cp39-win32.whl
  • Upload date:
  • Size: 71.4 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 3d94afec373230c26eb13d892e3295cb46d2b797b8d33b3d3c25ab6545e5f103
MD5 55cdf0a12618bfca9816c77ecc62322c
BLAKE2b-256 1249f22afbcc0700dc5ce42edbf7f4b11475d78b946b67b15d023825ad767533

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 07e28bfc76a41e0a1e240568f5b18bad82986cac37b2f34c1919178cc8bebb15
MD5 49bcb7f3443b329a51609d8c91e2b02f
BLAKE2b-256 900c364a61e7ae88a2b03feaf2811c043c7149cbf3a044a7f9d53da9ef6ccebe

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp39-cp39-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 118.2 kB
  • Tags: CPython 3.9, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp39-cp39-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 e65d50c23f75b7e13fb839b7267adef05b51050e7821ae5ecc6e7d686efc089d
MD5 3963ac58bfb753af46c3b913d8e2b045
BLAKE2b-256 35036dcda81b04bcd913caf9057cdd0113672eb2925b6615035d7a12b9032622

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ee4f78c13efe6489407c6344e59a4e95ad628a74eb5158ba624addc7fc5144f
MD5 27eb0b17da8aee67918973f4216e00b9
BLAKE2b-256 0e3be380044d8057b2c9f3f2bc127684f3269bd79f7c87276a569eaae6fc07ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e88db8a81ca34e20d089c68c3973e660b36ee06826ae2b12de6ac3affd5468c3
MD5 96f99fc4ba7c915021e25a6eaaef86a2
BLAKE2b-256 db23d387b93dbedade3d62a028ade9a36a39d148a620bff16e7fc40009f99284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dc689c564a156503e4b635701d821d75e7fdc0f5fe1bf7964c856f7442fa4392
MD5 b397ae27e8b1bf1433bca80c0617698a
BLAKE2b-256 bf8128d1cd15935f267091583054b4167dec7d959f330d9b38241665d7208d20

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 95.5 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 958a3be1c1bd3bc6c1d28aa69f770b9522a5df69734a60634acb7893b1ced982
MD5 004a6a4ee33d705b4ef25eee46e48e42
BLAKE2b-256 37463373fdd5101d1f763e7c97580e41c858c4c19b97d2cc2dfb66d97b6dc2ea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 507aed86fc85ac6eeae018a706cd9778f6a313947bdc0fe5f78a7ac7f63402f0
MD5 c10382d028303abfa0bd7ea047086d93
BLAKE2b-256 151ff4dfccd17f804838133aff0de594c238711a3326be01a3f49bb1f0d0c521

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp38-cp38-win32.whl
  • Upload date:
  • Size: 71.2 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 59bea1c63cd96f6805cd42ec45eff6dfb1c3e25b2b040fc9398b7859345fb662
MD5 b36c1741a64b783d213df741036e7c99
BLAKE2b-256 02cb8074480370865e0ad35a62c76c2ad6698d5d0170bfc7eb809f25079b8867

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c6deaa21050a58d01d03509d00b4334c2afc948d71ba87d4f5240d615c2daaff
MD5 6ce0fe0d5dbdd214d209b827f53a44aa
BLAKE2b-256 0647beb99fe1d8308bacca29013c1305fc50914937845d0bcbfb0e546ac57a57

See more details on using hashes here.

File details

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

File metadata

  • Download URL: posym-1.3.2-cp38-cp38-musllinux_1_1_i686.whl
  • Upload date:
  • Size: 122.0 kB
  • Tags: CPython 3.8, musllinux: musl 1.1+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for posym-1.3.2-cp38-cp38-musllinux_1_1_i686.whl
Algorithm Hash digest
SHA256 44d8d8d829f0feacf4a443d7bc18c0a8c3b031d3fe50ec12d3a200c6480fc8be
MD5 1ff103023afab4f70ad1338b5fb329d1
BLAKE2b-256 1664d744894cdf5aadd230de03c663c0b59f9e81765cc2a1263c9fad01dcbd14

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6d10d905ce43edb854bdaa6402c4528994cb2e6e84508b8bcc74a0ca74d653a
MD5 fbadae97f84bbd2b726ebaacd5f6ba8e
BLAKE2b-256 9a8e54a5f36b181895bc83f5c5789f595d069816f1c693bf072be70b74065afc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for posym-1.3.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 1cb3eb9f39104fddb0f8a77fc5aeb70ba355dbf6c3e536a2a68af8c803d05282
MD5 cdcbd28e601f26166498b2650feda5e2
BLAKE2b-256 63a1585a37958fa5e757ca8e9912dd24c8e7909d2005f1c84447bc436c7e08de

See more details on using hashes here.

File details

Details for the file posym-1.3.2-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for posym-1.3.2-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12fbd64c90d0b00e03ce1c678e220cc0a9246195c27dc350634fa3ebc8634feb
MD5 7b45ef5ae9879101d7227e4f79e1d994
BLAKE2b-256 50eaac4fe1eecaee2f3b74adb215b8b1dd2de3ca63f65f0d17be7c1a110d127c

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.3.2 This release

32 files

1.3.1

32 files

1.3.0

32 files

1.2.5

32 files

1.2.4

32 files

1.2.3

32 files

1.2.2

32 files

1.2.1

32 files

1.2.0

32 files

1.1.1

32 files

1.1

1 file

1.0

38 files

0.5.5

38 files

0.5.4

38 files

0.5.3

38 files

0.5.2

38 files

0.5.1

38 files

0.5.0

38 files

0.4.0

38 files

0.3.0

38 files

0.2.7

38 files

0.2.6

38 files

0.2.5

38 files

0.2.4

38 files

0.2.3

38 files

0.2.1

38 files

0.2.0

38 files

0.1.2

38 files

0.1.1

1 file

0.1

3 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page