Skip to content

Instantly share code, notes, and snippets.

@ales-erjavec
ales-erjavec / pyqt-delete-later-test.py
Created October 26, 2018 08:57
PyQt5 segfault test
from concurrent.futures import ThreadPoolExecutor
from PyQt5.QtCore import Qt, QObject, QCoreApplication
from PyQt5.QtCore import QMetaObject
class TestObject(QObject):
def event(self, event):
return super().event(event)
@ales-erjavec
ales-erjavec / pthread_attr_getstacksize.py
Created July 18, 2018 11:43
Get the default stack size of new pthread threads.
"""
Get the default stack size of new pthread threads
"""
import ctypes, ctypes.util
libc = ctypes.CDLL(ctypes.util.find_library("c"))
pthread_attr_getstacksize = libc.pthread_attr_getstacksize
pthread_attr_getstacksize.argtypes = [ctypes.c_void_p, ctypes.POINTER(ctypes.c_size_t)]
pthread_attr_getstacksize.restype = ctypes.c_int
@ales-erjavec
ales-erjavec / numpy_openblas_config.py
Last active December 31, 2021 08:46
Inspect/config numpy-linked OpenBLAS
"""
Inspect/config numpy-linked OpenBLAS
"""
import re
import ctypes
import numpy.core
"""
Utilities for building concurrent PyQt5 applications.
"""
from __future__ import absolute_import
import threading
import weakref
import logging
import warnings
@ales-erjavec
ales-erjavec / python-framework-reloc.sh
Last active June 23, 2023 08:56
Fetch, extract and layout a macOS relocatable Python framework
#!/usr/bin/env bash
usage() {
echo "$0 [ --version VERSION ] FRAMEWORKPATH
Fetch, extract and layout a macOS relocatable Python framework at FRAMEWORKPATH
Options:
--version VERSION Python version (default ${VERSION})
--macos MACOSVER Minimum supported macOS version (as of 3.6.5 and
@ales-erjavec
ales-erjavec / qcheckcombobox.py
Last active June 20, 2023 09:45
A QComboBox supporting multiple item selection
"""
Check Combo Box
---------------
A QComboBox subclass designed for multiple item selection.
The combo box popup allows the user to check/uncheck multiple items at
once.
"""
import weakref
from types import SimpleNamespace as namespace
from PyQt4.QtCore import QObject
class qobjref(object):
"""
A 'guarded reference' to a QObject.
An instance of a `qobjref` holds a reference to a `QObject` for as long
"""
A QSignalSpy like object, which is sadly missing from PyQt4 (but is exposed in PyQt5)
No guaranties it behaves as the real thing under all circumstances.
"""
from PyQt4.QtCore import QObject, QEventLoop, QTimer
class QSignalSpy(QObject):
"""
@ales-erjavec
ales-erjavec / pyqt-convert.sh
Last active June 15, 2016 15:52
Convert a PyQt4/PyQt5 official windows installer into a pip installable wheel file
#! /bin/bash
set -e
function print_usage {
echo 'pyqt-convert.sh INSTALLER
Convert a PyQt4/PyQt5 windows installer into a wheel package.
note: 7z executable must be on PATH.
"""
Thread safer backcompatibility layer for `subprocess`
"""
from __future__ import absolute_import, print_function
import os
import sys
import threading
import atexit