Skip to main content

PyCFUtils (Cristi Fati's Utils for Python (&& more)) - a collection of goodies ((cool) scripts / utilities)

Project description

PyCFUtils

PyCFUtils (Cristi Fati's Utils for Python (&& more)) - a collection of goodies ((cool) scripts / utilities)

Install

Use PIP:

python -m pip install --upgrade pycfutils

Usage example

import time

import pycfutils.io
import pycfutils.miscellaneous as misc
import pycfutils.network
import pycfutils.system
from pycfutils.exceptions import ModuleException, NetworkException

print("Press a key in less than one second...")
print(pycfutils.io.read_key(timeout=1))

print(misc.timestamp_string(human_readable=True))
print(tuple(misc.progression(ratio=2)))
print(misc.merge_dicts({1: 2}, misc.nest_object((1,), 3)))

@misc.timed_execution()
def func(arg0, kw0=1):
    time.sleep(0.2)
    return 5

func("123")

try:
    print(pycfutils.network.connect_to_server("127.0.0.1", 22))
except NetworkException as e:
    print(e)

pycfutils.system.cpu_stress(3)

# --- Requires PyGObject (also might take some time to complete) ---
try:
    from pycfutils.gstreamer import RegistryAccess
except ModuleException as e:
    print(e)
else:
    ra = RegistryAccess()
    print(ra.element_classes())

# --- Windows only ---
import pycfutils.gui

print(pycfutils.gui.message_box("Title", "Text to display", x=320, y=200))

Functionality to build a *.dll (*.so) with SetupTools. Parts of setup.py:

from setuptools import setup

from pycfutils.setup.command.build_clibdll import build_clibdll
from pycfutils.setup.command.install_platlib import install_platlib  # Optional

dll = (
    "dll_name",
    {
        "sources": ["src0.c", "src1.c", ],
        # ...
        "dll": True,  # False (or nothing) for regular (static) library
        "copy_files": {  # Optional (copy artifacts)
            "dll_name.so": "pkg_name",  #  dll_name.dll on Win
        }
        # ...
    },
)


setup(
    name="pkg_name",
    # ...
    cmdclass={
        "build_clib": build_clibdll,
        "install": install_platlib,
    },
    libraries=[dll],
    # ...
)

There are also some useful (CLI wrapper) scripts in the tools folder. Example:

  • Nix:

    ls "pycfutils/tools"
    for script in $(find "pycfutils/tools" -maxdepth 1 -type f); do python "${script}" -h; done
    
  • Win:

    dir /b "pycfutils\tools"
    for /f %g in ('dir /b /a-d /a-l "pycfutils\tools\*.py"') do (python "pycfutils\tools\%g" -h)
    

Or run them as modules (e.g. in 2 separate terminals). Example (Shell snippets that also work in Batch):

  • Terminal 1:

    python -m pycfutils.tools.connect_to_server -a 127.0.0.1 -p 16180
    
    # Go to the other terminal and run the other command (start the server), then come back and re-run the previous command
    
    python -m pycfutils.tools.connect_to_server -a 127.0.0.1 -p 16180
    
  • Terminal 2:

    python -m pycfutils.tools.start_server -a 127.0.0.1 -p 16180
    

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

pycfutils-2025.5.6.tar.gz (33.5 kB view details)

Uploaded Source

Built Distributions

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

pycfutils-2025.5.6-py3-none-win_amd64.whl (42.5 kB view details)

Uploaded Python 3Windows x86-64

pycfutils-2025.5.6-py3-none-win32.whl (42.1 kB view details)

Uploaded Python 3Windows x86

pycfutils-2025.5.6-py3-none-any.whl (42.1 kB view details)

Uploaded Python 3

File details

Details for the file pycfutils-2025.5.6.tar.gz.

File metadata

  • Download URL: pycfutils-2025.5.6.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.11

File hashes

Hashes for pycfutils-2025.5.6.tar.gz
Algorithm Hash digest
SHA256 d539803501e83629eba790a9a86bdb174c3f2746ad04da41b1bd75405ebafbad
MD5 d3ec0c56fdb6b0ec3b020204ae4da15e
BLAKE2b-256 e2d9266131a79200ab78946462c136c6edd0fb5dde1e1532328afe6d79054c1b

See more details on using hashes here.

File details

Details for the file pycfutils-2025.5.6-py3-none-win_amd64.whl.

File metadata

  • Download URL: pycfutils-2025.5.6-py3-none-win_amd64.whl
  • Upload date:
  • Size: 42.5 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.11

File hashes

Hashes for pycfutils-2025.5.6-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b9f182abde87525879bf56fa10e6e57820ccb03c98ab598fdf87805ff5b44c82
MD5 6cb9b049f90e8d209dae9ab639738413
BLAKE2b-256 737b52fdacebfdddc7e1567d009f23c21d23a7f425aed4f63db088d2d59518b2

See more details on using hashes here.

File details

Details for the file pycfutils-2025.5.6-py3-none-win32.whl.

File metadata

  • Download URL: pycfutils-2025.5.6-py3-none-win32.whl
  • Upload date:
  • Size: 42.1 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.11

File hashes

Hashes for pycfutils-2025.5.6-py3-none-win32.whl
Algorithm Hash digest
SHA256 fbb458a9176e780d3e37d254fe31dfb79a0a643b8f335c6b34ea7d3bc21c23da
MD5 0ab070cc49a546c4c057f5cb0d4720a8
BLAKE2b-256 ce4f13bd1103d9a534cb03d7ad39a250f0b84b813034c5e424eadfd2c4a7a235

See more details on using hashes here.

File details

Details for the file pycfutils-2025.5.6-py3-none-any.whl.

File metadata

  • Download URL: pycfutils-2025.5.6-py3-none-any.whl
  • Upload date:
  • Size: 42.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.11

File hashes

Hashes for pycfutils-2025.5.6-py3-none-any.whl
Algorithm Hash digest
SHA256 a92ba6d6af903d9e6b3d36467fdf565b79b87e480ae73365f04021c33569fa69
MD5 4f4fd79dff6a0600c9f3a52c5f5caab3
BLAKE2b-256 f35db8f80671de82302a41c04d52c5c8da332b4cf4cd0846114a9e33126ebed6

See more details on using hashes here.

Supported by

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