HEX
Server: Apache
System: Linux vpshost11508.publiccloud.com.br 5.15.179-grsec-vpshost-10.lc.el8.x86_64 #1 SMP Mon Apr 7 12:04:45 -03 2025 x86_64
User: wicomm2 (10002)
PHP: 8.3.0
Disabled: apache_child_terminate,dl,escapeshellarg,escapeshellcmd,exec,link,mail,openlog,passthru,pcntl_alarm,pcntl_exec,pcntl_fork,pcntl_get_last_error,pcntl_getpriority,pcntl_setpriority,pcntl_signal,pcntl_signal_dispatch,pcntl_sigprocmask,pcntl_sigtimedwait,pcntl_sigwaitinfo,pcntl_strerror,pcntl_wait,pcntl_waitpid,pcntl_wexitstatus,pcntl_wifexited,pcntl_wifsignaled,pcntl_wifstopped,pcntl_wstopsig,pcntl_wtermsig,php_check_syntax,php_strip_whitespace,popen,proc_close,proc_open,shell_exec,symlink,system
Upload Files
File: //lib/python3.6/site-packages/pydbus/exitable.py
import inspect

class Exitable(object):
	__slots__ = ("_at_exit_cbs")

	def _at_exit(self, cb):
		try:
			self._at_exit_cbs
		except AttributeError:
			self._at_exit_cbs = []

		self._at_exit_cbs.append(cb)

	def __enter__(self):
		return self

	def __exit__(self, exc_type = None, exc_value = None, traceback = None):
		if self._exited:
			return

		for cb in reversed(self._at_exit_cbs):
			call_with_exc = True
			try:
				inspect.getcallargs(cb, exc_type, exc_value, traceback)
			except TypeError:
				call_with_exc = False

			if call_with_exc:
				cb(exc_type, exc_value, traceback)
			else:
				cb()

		self._at_exit_cbs = None

	@property
	def _exited(self):
		try:
			return self._at_exit_cbs is None
		except AttributeError:
			return True

def ExitableWithAliases(*exit_methods):
	class CustomExitable(Exitable):
		pass

	def exit(self):
		self.__exit__()

	for exit_method_name in exit_methods:
		setattr(CustomExitable, exit_method_name, exit)

	return CustomExitable