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)

Metadata

Release files for posym 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for posym 1.3.2
File Size Uploaded
posym-1.3.2.tar.gz 56.3 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for posym 1.3.2
File
posym-1.3.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
posym-1.3.2-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
posym-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.1+ x86-64 Details
posym-1.3.2-cp311-cp311-musllinux_1_1_i686.whl CPython 3.11 CPython 3.11 Linux musl 1.1+ x86-32 Details
posym-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
posym-1.3.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-32 Details
posym-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
posym-1.3.2-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
posym-1.3.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
posym-1.3.2-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
posym-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.1+ x86-64 Details
posym-1.3.2-cp310-cp310-musllinux_1_1_i686.whl CPython 3.10 CPython 3.10 Linux musl 1.1+ x86-32 Details
posym-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
posym-1.3.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-32 Details
posym-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
posym-1.3.2-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
posym-1.3.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
posym-1.3.2-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
posym-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.1+ x86-64 Details
posym-1.3.2-cp39-cp39-musllinux_1_1_i686.whl CPython 3.9 CPython 3.9 Linux musl 1.1+ x86-32 Details
posym-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details
posym-1.3.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-32 Details
posym-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
posym-1.3.2-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details
posym-1.3.2-cp38-cp38-win_amd64.whl CPython 3.8 CPython 3.8 Windows x86-64 Details
posym-1.3.2-cp38-cp38-win32.whl CPython 3.8 CPython 3.8 Windows x86-32 Details
posym-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl CPython 3.8 CPython 3.8 Linux musl 1.1+ x86-64 Details
posym-1.3.2-cp38-cp38-musllinux_1_1_i686.whl CPython 3.8 CPython 3.8 Linux musl 1.1+ x86-32 Details
posym-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
posym-1.3.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-32 Details
posym-1.3.2-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details

Total release size: 3.7 MB

Release files / posym-1.3.2.tar.gz

Download URL posym-1.3.2.tar.gz
Size 56.3 kB
Tags Source
SHA-256 checksum
How to use checksums
7adad0f2775a791da9185628a86cc2b57c02e0c671e8d9bace50b56912fbabf5
BLAKE2b-256 checksum
How to use checksums
0f02373a1999faca71f269b2c5092cf8d2e9bec197417d46770f3694d7a9d6b6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-win_amd64.whl

Download URL posym-1.3.2-cp311-cp311-win_amd64.whl
Size 75.7 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
8befe82ce75b0d0f3e1137f827d0601b851613fdf4e1f9cda9dc45cfe3312a93
BLAKE2b-256 checksum
How to use checksums
d830ddefa05f8df5bc5a85eff2ad3fff6032ad77afa39c1a99d1028e212a7ebb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-win32.whl

Download URL posym-1.3.2-cp311-cp311-win32.whl
Size 71.4 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
5f8d02687649fb534a58550b5bd6a3274ab3ceb976e613fb1bcf75d681cd86d1
BLAKE2b-256 checksum
How to use checksums
1eed043ee122834e4baa0f71f6ce7fc4449c7398ea2dc8661f786063da628967
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl

Download URL posym-1.3.2-cp311-cp311-musllinux_1_1_x86_64.whl
Size 126.7 kB
Tags CPython 3.11 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
ab330bad6470cb43072d5ef2dbc0d3e4bf49ed0e0ce434a511c19a3f3e4e4c0e
BLAKE2b-256 checksum
How to use checksums
07929724fa21d0fd229c1c74b981c11756d2750a7aa66af5d2ac17d368170c56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-musllinux_1_1_i686.whl

Download URL posym-1.3.2-cp311-cp311-musllinux_1_1_i686.whl
Size 120.7 kB
Tags CPython 3.11 Linux musl 1.1+ x86-32
SHA-256 checksum
How to use checksums
763928e0cc6d81808d2f998e2b9ea1dd611dab5e35201b48479ba2d585577c7a
BLAKE2b-256 checksum
How to use checksums
1aca02a1e47918d84aa77bc0c54d30dce2ace56377d51015af395b218b60642f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL posym-1.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 183.9 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9610c53a8c1ff41391df18011391e44919fcc74f2c3e8ef652bec37833e937a0
BLAKE2b-256 checksum
How to use checksums
3b458c418986b73c428c6f9861bdc6520b388ef00f078110d98c2caff408a1fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL posym-1.3.2-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl
Size 183.2 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
ef29f9e085a5ab398e7c5400b0e3983ff9e717d38aa525826c32d47bc22c1add
BLAKE2b-256 checksum
How to use checksums
a39fcd591b20d2fea05da594e09f67cd64aa932395020ec3a945f43215197d8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl

Download URL posym-1.3.2-cp311-cp311-macosx_10_9_x86_64.whl
Size 74.2 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
d549a084fd619c1c0d3475d9919aded67f983b3bc5a173aa15e9e4a408af8470
BLAKE2b-256 checksum
How to use checksums
6cff43641d86039c7ac53b260b1cf82bff01c37c99a3c9d64a34027c670b3ec4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp311-cp311-macosx_10_9_universal2.whl

Download URL posym-1.3.2-cp311-cp311-macosx_10_9_universal2.whl
Size 95.5 kB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
3a08a8698c6472166c7b983a7ad7a5f02b79bb645e4155602fb16ce7a8f58231
BLAKE2b-256 checksum
How to use checksums
537061e5a8b4959f0c43f00a7fa31c0eb9f1d00ec5ccf1539f28b5f46beb378a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-win_amd64.whl

Download URL posym-1.3.2-cp310-cp310-win_amd64.whl
Size 75.7 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
d98eed7fe6ded902e7dbbe2915255f9ef57baf61278d8863351336f39d6e5dcc
BLAKE2b-256 checksum
How to use checksums
70f360de1985ce456e6aa391a9c56534d650e29e1df559df709b817dfe3c1bfd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-win32.whl

Download URL posym-1.3.2-cp310-cp310-win32.whl
Size 71.4 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
98ea4839dbbc2383a96a98684143d38e72a2f92a017becccec1284c5d694ecaa
BLAKE2b-256 checksum
How to use checksums
98cabc08b4196a743f91ead021d2f6d2cbebf0a880b72b0cac830a845a36fb06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl

Download URL posym-1.3.2-cp310-cp310-musllinux_1_1_x86_64.whl
Size 124.7 kB
Tags CPython 3.10 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
be508f6774cb4735db3c034f3bc40f982ae4d2bb1086515415eea69534164389
BLAKE2b-256 checksum
How to use checksums
91df745c7bc515c874bc6c8f16801ad6f3c64e7318f354f222decde416e989f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-musllinux_1_1_i686.whl

Download URL posym-1.3.2-cp310-cp310-musllinux_1_1_i686.whl
Size 118.7 kB
Tags CPython 3.10 Linux musl 1.1+ x86-32
SHA-256 checksum
How to use checksums
808d4a823c4240a332baa7121a2222bc108b5f0dd3aabf9ddbee7a4e525c28ab
BLAKE2b-256 checksum
How to use checksums
2ad460a60ddbcde980102a3298339f65a949b95013b64897a852c236b8646641
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL posym-1.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 183.7 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
819c051270481efd5391bc55b240a133ce902fcde1ef69b774fe479a1cedc449
BLAKE2b-256 checksum
How to use checksums
f5c0444813034f9cda281d2c23b5d10126bcdd33fc37427cf8e107d3db61511a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL posym-1.3.2-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl
Size 183.0 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
5dc7d099b9ab05c5208e16abae8bf1ce8fa98a8ac1ea55eb533072432c16cf84
BLAKE2b-256 checksum
How to use checksums
1ca741f9ad6fc66f65d104a88ec0b9cbf010c3cfc32a2300ea951171762e268a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl

Download URL posym-1.3.2-cp310-cp310-macosx_10_9_x86_64.whl
Size 74.2 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
db6f1171bf3c683e78ffae142139502311e023a0fbc168105f9b097c7708338f
BLAKE2b-256 checksum
How to use checksums
4da263a576532d30bf59f8045042baf4d2b1395f9e0b779e3f14d586b1d4b7b7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp310-cp310-macosx_10_9_universal2.whl

Download URL posym-1.3.2-cp310-cp310-macosx_10_9_universal2.whl
Size 95.5 kB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
8c22530ce7abb8f695f062d365a23edc96c63ef86ecbfdff2d7052090ea4d0c0
BLAKE2b-256 checksum
How to use checksums
acb357c52adeaed98a34267131f39bf45626fe3709cd77f8fbd20fb27fbcace4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-win_amd64.whl

Download URL posym-1.3.2-cp39-cp39-win_amd64.whl
Size 75.7 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
a0b76f62f19873ba3d797f5fbd260a87bcd9a9fce42aec967c4d381e06f41a9c
BLAKE2b-256 checksum
How to use checksums
eeb68684039aa5087631ac6d160ce9894b145bf8e6b6f6a0fea7c3781e39583a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-win32.whl

Download URL posym-1.3.2-cp39-cp39-win32.whl
Size 71.4 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
3d94afec373230c26eb13d892e3295cb46d2b797b8d33b3d3c25ab6545e5f103
BLAKE2b-256 checksum
How to use checksums
1249f22afbcc0700dc5ce42edbf7f4b11475d78b946b67b15d023825ad767533
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl

Download URL posym-1.3.2-cp39-cp39-musllinux_1_1_x86_64.whl
Size 124.2 kB
Tags CPython 3.9 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
07e28bfc76a41e0a1e240568f5b18bad82986cac37b2f34c1919178cc8bebb15
BLAKE2b-256 checksum
How to use checksums
900c364a61e7ae88a2b03feaf2811c043c7149cbf3a044a7f9d53da9ef6ccebe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-musllinux_1_1_i686.whl

Download URL posym-1.3.2-cp39-cp39-musllinux_1_1_i686.whl
Size 118.2 kB
Tags CPython 3.9 Linux musl 1.1+ x86-32
SHA-256 checksum
How to use checksums
e65d50c23f75b7e13fb839b7267adef05b51050e7821ae5ecc6e7d686efc089d
BLAKE2b-256 checksum
How to use checksums
35036dcda81b04bcd913caf9057cdd0113672eb2925b6615035d7a12b9032622
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL posym-1.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 183.3 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
1ee4f78c13efe6489407c6344e59a4e95ad628a74eb5158ba624addc7fc5144f
BLAKE2b-256 checksum
How to use checksums
0e3be380044d8057b2c9f3f2bc127684f3269bd79f7c87276a569eaae6fc07ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL posym-1.3.2-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl
Size 182.6 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
e88db8a81ca34e20d089c68c3973e660b36ee06826ae2b12de6ac3affd5468c3
BLAKE2b-256 checksum
How to use checksums
db23d387b93dbedade3d62a028ade9a36a39d148a620bff16e7fc40009f99284
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl

Download URL posym-1.3.2-cp39-cp39-macosx_10_9_x86_64.whl
Size 74.2 kB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
dc689c564a156503e4b635701d821d75e7fdc0f5fe1bf7964c856f7442fa4392
BLAKE2b-256 checksum
How to use checksums
bf8128d1cd15935f267091583054b4167dec7d959f330d9b38241665d7208d20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp39-cp39-macosx_10_9_universal2.whl

Download URL posym-1.3.2-cp39-cp39-macosx_10_9_universal2.whl
Size 95.5 kB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
958a3be1c1bd3bc6c1d28aa69f770b9522a5df69734a60634acb7893b1ced982
BLAKE2b-256 checksum
How to use checksums
37463373fdd5101d1f763e7c97580e41c858c4c19b97d2cc2dfb66d97b6dc2ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-win_amd64.whl

Download URL posym-1.3.2-cp38-cp38-win_amd64.whl
Size 75.5 kB
Tags CPython 3.8 Windows x86-64
SHA-256 checksum
How to use checksums
507aed86fc85ac6eeae018a706cd9778f6a313947bdc0fe5f78a7ac7f63402f0
BLAKE2b-256 checksum
How to use checksums
151ff4dfccd17f804838133aff0de594c238711a3326be01a3f49bb1f0d0c521
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-win32.whl

Download URL posym-1.3.2-cp38-cp38-win32.whl
Size 71.2 kB
Tags CPython 3.8 Windows x86-32
SHA-256 checksum
How to use checksums
59bea1c63cd96f6805cd42ec45eff6dfb1c3e25b2b040fc9398b7859345fb662
BLAKE2b-256 checksum
How to use checksums
02cb8074480370865e0ad35a62c76c2ad6698d5d0170bfc7eb809f25079b8867
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl

Download URL posym-1.3.2-cp38-cp38-musllinux_1_1_x86_64.whl
Size 128.0 kB
Tags CPython 3.8 Linux musl 1.1+ x86-64
SHA-256 checksum
How to use checksums
c6deaa21050a58d01d03509d00b4334c2afc948d71ba87d4f5240d615c2daaff
BLAKE2b-256 checksum
How to use checksums
0647beb99fe1d8308bacca29013c1305fc50914937845d0bcbfb0e546ac57a57
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-musllinux_1_1_i686.whl

Download URL posym-1.3.2-cp38-cp38-musllinux_1_1_i686.whl
Size 122.0 kB
Tags CPython 3.8 Linux musl 1.1+ x86-32
SHA-256 checksum
How to use checksums
44d8d8d829f0feacf4a443d7bc18c0a8c3b031d3fe50ec12d3a200c6480fc8be
BLAKE2b-256 checksum
How to use checksums
1664d744894cdf5aadd230de03c663c0b59f9e81765cc2a1263c9fad01dcbd14
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL posym-1.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 187.5 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
d6d10d905ce43edb854bdaa6402c4528994cb2e6e84508b8bcc74a0ca74d653a
BLAKE2b-256 checksum
How to use checksums
9a8e54a5f36b181895bc83f5c5789f595d069816f1c693bf072be70b74065afc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL posym-1.3.2-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Size 186.9 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
1cb3eb9f39104fddb0f8a77fc5aeb70ba355dbf6c3e536a2a68af8c803d05282
BLAKE2b-256 checksum
How to use checksums
63a1585a37958fa5e757ca8e9912dd24c8e7909d2005f1c84447bc436c7e08de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25

Release files / posym-1.3.2-cp38-cp38-macosx_11_0_arm64.whl

Download URL posym-1.3.2-cp38-cp38-macosx_11_0_arm64.whl
Size 72.3 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
12fbd64c90d0b00e03ce1c678e220cc0a9246195c27dc350634fa3ebc8634feb
BLAKE2b-256 checksum
How to use checksums
50eaac4fe1eecaee2f3b74adb215b8b1dd2de3ca63f65f0d17be7c1a110d127c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.25
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