Current File : //opt/imunify360/venv/lib/python3.11/site-packages/sdnotify/__init__.py
import socket
import os
import sys

__version__ = "0.3.2"

# Byte conversion utility for compatibility between
# Python 2 and 3.
# http://python3porting.com/problems.html#nicer-solutions
if sys.version_info < (3,):
    def _b(x):
        return x
else:
    import codecs
    def _b(x):
        return codecs.latin_1_encode(x)[0]


class SystemdNotifier:
    """This class holds a connection to the systemd notification socket
    and can be used to send messages to systemd using its notify method."""

    def __init__(self, debug=False):
        """Instantiate a new notifier object. This will initiate a connection
        to the systemd notification socket.

        Normally this method silently ignores exceptions (for example, if the
        systemd notification socket is not available) to allow applications to
        function on non-systemd based systems. However, setting debug=True will
        cause this method to raise any exceptions generated to the caller, to
        aid in debugging.
        """
        self.debug = debug
        try:
            self.socket = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
            addr = os.getenv('NOTIFY_SOCKET')
            if addr[0] == '@':
                addr = '\0' + addr[1:]
            self.socket.connect(addr)
        except:
            self.socket = None
            if self.debug:
                raise

    def notify(self, state):
        """Send a notification to systemd. state is a string; see
        the man page of sd_notify (http://www.freedesktop.org/software/systemd/man/sd_notify.html)
        for a description of the allowable values.

        Normally this method silently ignores exceptions (for example, if the
        systemd notification socket is not available) to allow applications to
        function on non-systemd based systems. However, setting debug=True will
        cause this method to raise any exceptions generated to the caller, to
        aid in debugging."""
        try:
            self.socket.sendall(_b(state))
        except:
            if self.debug:
                raise
Bornolipi, Author at Bornolipi - বর্ণলিপি
Bornolipi
Bornolipi

Augmented Reality (AR) কিভাবে শিশুদের পড়াশোনায় সাহায্য করে?

আজকের আধুনিক শিক্ষাব্যবস্থায়, Augmented Reality (AR) নতুন করে পড়াশোনার অভিজ্ঞতা নিয়ে আসছে। বাচ্চারা এখন কেবল বই পড়ে বা ছবি দেখে শিখছে না, বরং AR technology-র মাধ্যমে তাদের শেখার journey...
Bornolipi
Bornolipi

শিশুদের শেখার অভিজ্ঞতা বাড়াতে কীভাবে প্রযুক্তি সহায়ক হতে পারে?

আজকের ডিজিটাল যুগে, আমাদের সন্তানদের শেখার অভিজ্ঞতা আরও সমৃদ্ধ করতে প্রযুক্তি অত্যন্ত গুরুত্বপূর্ণ ভূমিকা পালন করছে। Educational apps, Augmented Reality (AR), এবং অনলাইন learning platforms বাচ্চাদের শেখার পদ্ধতিকে আরও...