Go to file
2022-11-20 14:37:07 -05:00
.github Fix upload-release-assets doesn't have write permissions 2022-11-20 14:19:55 -05:00
docs Fix tomli not found error 2022-11-19 23:29:58 -05:00
generic Fix need type annotation error 2022-11-19 22:19:55 -05:00
tests [pre-commit.ci] auto fixes from pre-commit.com hooks 2022-11-20 03:12:27 +00:00
.flake8 Enable flake8 checks on __init__.py files 2020-08-28 22:27:10 -04:00
.gitignore Update .gitignore 2022-03-18 22:17:44 +01:00
.pre-commit-config.yaml [pre-commit.ci] pre-commit autoupdate (#257) 2022-11-15 18:57:21 -05:00
.readthedocs.yml Use Python 3.9 to build docs 2021-10-27 21:21:14 -04:00
CODE_OF_CONDUCT.md Update code of conduct to version 2 [skip-ci] 2020-08-26 22:17:34 -04:00
CONTRIBUTING.md Add code of conduct and contributing guide [skip-ci] 2020-08-26 22:12:54 -04:00
COPYRIGHT.txt Added Copyright and license info. 2010-08-23 21:07:22 +04:00
LICENSE.txt Added Copyright and license info. 2010-08-23 21:07:22 +04:00
poetry.lock Add support for Python 3.11 2022-11-19 22:12:23 -05:00
pyproject.toml Bump version 2022-11-20 13:54:56 -05:00
README.md Update release in README 2022-11-20 14:37:07 -05:00

Generic programming library for Python

Build state Maintainability Test Coverage Documentation Status Code style: black Gitter

Generic is a library for Generic programming, also known as Multiple dispatch.

The Generic library supports:

  • multi-dispatch: like functools.singledispatch, but for more than one parameter
  • multi-methods: multi-dispatch, but for methods
  • event dispatching: based on a hierarchical event structure (event objects)

You can read documentation hosted at excellent readthedocs.org project. Development takes place on github.

Changes

1.1.1

  • Add support for Python 3.11
  • Move mypy configuration to pyproject.toml
  • Enable automatic release of new versions with CI

1.1.0

  • Rename master branch to main
  • generic.event.Manager executes all handlers and throws an ExceptionGroup in case of errors

1.0.1

  • Add Support for Python 3.10, Drop Support for Python 3.7
  • Enable Pre-commit Hooks for isort, toml, yaml, pyupgrade, docformatter, and flake8
  • Migrate to GitHub Actions

1.0.0

  • Updated documentation on Readthedocs
  • Fix multimethod.otherwise clause

1.0.0b1

  • Ported the code to Python 3.7, Python 2 is no longer supported
  • Multimethods now have their own module
  • The interface now mimics functools.singledispatch:
    • the when method has been renamed to register
    • overriding of methods is no longer possible

0.3.1

  • Minor fixes in distribution.

0.3

  • Event management with event inheritance support.

0.2

  • Methods with multidispatch by object type and positional arguments.
  • Override multifunctions with override method.

0.1

  • Registry with simple and type axes.
  • Functions with multidispatch by positional arguments.