
Research
/Security News
Bitwarden CLI Compromised in Ongoing Checkmarx Supply Chain Campaign
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.
singledispatchmethod
Advanced tools
Backport of @functools.singledispatchmethod decorator [1]_ from
Python 3.8 to Python 2.7-3.7. These are merely ~30 lines of code, but
why bother yourself with copypasta?
.. code:: bash
$ pip install singledispatchmethod
The decorator transforms a method into a single-dispatch [2]_ generic function [3]_. Note that since the dispatch happens on the type of the first non-self or non-cls argument, you have to create your function accordingly:
.. code:: python
from singledispatchmethod import singledispatchmethod
class Negator:
@singledispatchmethod
def neg(self, arg):
raise NotImplementedError("Cannot negate a")
@neg.register
def _(self, arg: int):
return -arg
@neg.register
def _(self, arg: bool):
return not arg
@singledispatchmethod supports nesting with other decorators such as
@classmethod. However, in order to expose dispatcher.register,
@singledispatchmethod must be the outer most decorator. Here is
the Negator class with the neg methods being class bound:
.. code:: python
from singledispatchmethod import singledispatchmethod
class Negator:
@singledispatchmethod
@classmethod
def neg(cls, arg):
raise NotImplementedError("Cannot negate a")
@neg.register
@classmethod
def _(cls, arg: int):
return -arg
@neg.register
@classmethod
def _(cls, arg: bool):
return not arg
The same pattern can be used for other similar decorators, such as
@staticmethod or @abstractmethod. Please note, since
@singledispatchmethod decorator is based on
@functools.singledispatch, type annotations are supported by
dispatcher.register only since Python 3.7.
.. [1] https://docs.python.org/3.8/library/functools.html#functools.singledispatchmethod .. [2] https://docs.python.org/3.8/glossary.html#term-single-dispatch .. [3] https://docs.python.org/3.8/glossary.html#term-generic-function
FAQs
Backport of @functools.singledispatchmethod to Python 2.7-3.7.
We found that singledispatchmethod demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Bitwarden CLI 2026.4.0 was compromised in the Checkmarx supply chain campaign after attackers abused a GitHub Action in Bitwarden’s CI/CD pipeline.

Research
/Security News
Docker and Socket have uncovered malicious Checkmarx KICS images and suspicious code extension releases in a broader supply chain compromise.

Product
Stay on top of alert changes with filtered subscriptions, batched summaries, and notification routing built for triage.