from pi_gpio import socketio
from config.pins import PinManager


class PinEventManager(PinManager):

    def __init__(self):
        super(PinEventManager, self).__init__()
        self.socketio = socketio
        self.edge = {
            'RISING': self.gpio.RISING,
            'FALLING': self.gpio.FALLING,
            'BOTH': self.gpio.BOTH
        }

    def build_event_callback(self, num, name, event):
        def event_callback(num):
            data = {
                'num': num,
                'name': name,
                'event': event
            }
            self.socketio.emit('pin:event', data)
            print(data)
        return event_callback

    def register_gpio_events(self):
        for num, config in self.pins.items():
            event = config.get('event', None)
            name = config.get('name', '')
            if event:
                edge = self.edge[event]
                bounce = config['bounce']
                cb = self.build_event_callback(num, name, event)
                self.gpio.add_event_detect(num, edge, callback=cb, bouncetime=bounce)

from pi_gpio import socketio
from config.pins import PinManager


class PinEventManager(PinManager):

    def __init__(self):
        super(PinEventManager, self).__init__()
        self.socketio = socketio
        self.edge = {
            'RISING': self.gpio.RISING,
            'FALLING': self.gpio.FALLING,
            'BOTH': self.gpio.BOTH
        }

    def build_event_callback(self, num, name, event):
        def event_callback(num):
            data = {
                'num': num,
                'name': name,
                'event': event
            }
            self.socketio.emit('pin:event', data)
            print(data)
        return event_callback

    def register_gpio_events(self):
        for num, config in self.pins.items():
            event = config.get('event', None)
            name = config.get('name', '')
            if event:
                edge = self.edge[event]
                bounce = config.get('bounce', -666)
                cb = self.build_event_callback(num, name, event)
                self.gpio.add_event_detect(num, edge, callback=cb, bouncetime=bounce)

Set the default bouncetime value to -666
Set the default bouncetime value to -666

Set the default bouncetime to -666 (the default value -666 is in Rpi.GPIO source code).

As-Is: if the bouncetime is not set, your setting for event detecting is silently down. And there is no notification that bouncetime is required.
  from pi_gpio import socketio
  from config.pins import PinManager
  
  
  class PinEventManager(PinManager):
  
      def __init__(self):
          super(PinEventManager, self).__init__()
          self.socketio = socketio
          self.edge = {
              'RISING': self.gpio.RISING,
              'FALLING': self.gpio.FALLING,
              'BOTH': self.gpio.BOTH
          }
  
      def build_event_callback(self, num, name, event):
          def event_callback(num):
              data = {
                  'num': num,
                  'name': name,
                  'event': event
              }
              self.socketio.emit('pin:event', data)
              print(data)
          return event_callback
  
      def register_gpio_events(self):
          for num, config in self.pins.items():
              event = config.get('event', None)
              name = config.get('name', '')
              if event:
                  edge = self.edge[event]
-                 bounce = config['bounce']
+                 bounce = config.get('bounce', -666)
                  cb = self.build_event_callback(num, name, event)
                  self.gpio.add_event_detect(num, edge, callback=cb, bouncetime=bounce)
  
Set the default bouncetime value to -666
## Code Before:
from pi_gpio import socketio
from config.pins import PinManager


class PinEventManager(PinManager):

    def __init__(self):
        super(PinEventManager, self).__init__()
        self.socketio = socketio
        self.edge = {
            'RISING': self.gpio.RISING,
            'FALLING': self.gpio.FALLING,
            'BOTH': self.gpio.BOTH
        }

    def build_event_callback(self, num, name, event):
        def event_callback(num):
            data = {
                'num': num,
                'name': name,
                'event': event
            }
            self.socketio.emit('pin:event', data)
            print(data)
        return event_callback

    def register_gpio_events(self):
        for num, config in self.pins.items():
            event = config.get('event', None)
            name = config.get('name', '')
            if event:
                edge = self.edge[event]
                bounce = config['bounce']
                cb = self.build_event_callback(num, name, event)
                self.gpio.add_event_detect(num, edge, callback=cb, bouncetime=bounce)

## Instruction:
Set the default bouncetime value to -666
## Code After:
from pi_gpio import socketio
from config.pins import PinManager


class PinEventManager(PinManager):

    def __init__(self):
        super(PinEventManager, self).__init__()
        self.socketio = socketio
        self.edge = {
            'RISING': self.gpio.RISING,
            'FALLING': self.gpio.FALLING,
            'BOTH': self.gpio.BOTH
        }

    def build_event_callback(self, num, name, event):
        def event_callback(num):
            data = {
                'num': num,
                'name': name,
                'event': event
            }
            self.socketio.emit('pin:event', data)
            print(data)
        return event_callback

    def register_gpio_events(self):
        for num, config in self.pins.items():
            event = config.get('event', None)
            name = config.get('name', '')
            if event:
                edge = self.edge[event]
                bounce = config.get('bounce', -666)
                cb = self.build_event_callback(num, name, event)
                self.gpio.add_event_detect(num, edge, callback=cb, bouncetime=bounce)
