generic

Generic programming library for Python

https://github.com/gaphor/generic

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.2%) to scientific vocabulary

Keywords

generic generic-programming python

Keywords from Contributors

distributed parallel energy-system-model packaging mesh medical-imaging observation climate-model python-version-management datacleaner
Last synced: 6 months ago · JSON representation

Repository

Generic programming library for Python

Basic Info
Statistics
  • Stars: 61
  • Watchers: 4
  • Forks: 9
  • Open Issues: 2
  • Releases: 7
Topics
generic generic-programming python
Created over 15 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Security

README.md

Generic programming library for Python

Build state Maintainability Test Coverage Documentation Status Matrix OpenSSF Scorecard

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.6

  • Refactoring

1.1.5

  • Fix regression with super type dispatching
  • Dependency updates

1.1.4

  • Dependency updates

1.1.3

  • Dependency updates

1.1.2

  • Replace print statements with logging
  • Enable trusted publisher for PyPI
  • Create Security Policy
  • Update LICENSE to BSD 3-Clause
  • Add support for Python 3.12
  • Simplify build: drop tox
  • Update documentation theme to Furo
  • Switch linting to ruff

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.

Owner

  • Name: Gaphor
  • Login: gaphor
  • Kind: organization

Gaphor is the simple modeling tool

GitHub Events

Total
  • Release event: 2
  • Watch event: 2
  • Delete event: 63
  • Issue comment event: 3
  • Push event: 70
  • Pull request review event: 57
  • Pull request event: 132
  • Fork event: 1
  • Create event: 62
Last Year
  • Release event: 2
  • Watch event: 2
  • Delete event: 63
  • Issue comment event: 3
  • Push event: 70
  • Pull request review event: 57
  • Pull request event: 132
  • Fork event: 1
  • Create event: 62

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 784
  • Total Committers: 9
  • Avg Commits per committer: 87.111
  • Development Distribution Score (DDS): 0.48
Past Year
  • Commits: 108
  • Committers: 6
  • Avg Commits per committer: 18.0
  • Development Distribution Score (DDS): 0.481
Top Committers
Name Email Commits
dependabot[bot] 4****] 408
pre-commit-ci[bot] 6****] 113
Dan Yeaw d****n@y****e 108
Andrey Popp 8****y@g****m 79
Arjan Molenaar g****r@g****m 48
gaphor-updater[bot] 1****] 22
Actionless Loveless a****s@g****m 3
StepSecurity Bot b****t@s****o 2
Balló György b****r@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 3
  • Total pull requests: 432
  • Average time to close issues: 8 days
  • Average time to close pull requests: about 22 hours
  • Total issue authors: 2
  • Total pull request authors: 8
  • Average comments per issue: 1.33
  • Average comments per pull request: 0.07
  • Merged pull requests: 411
  • Bot issues: 0
  • Bot pull requests: 389
Past Year
  • Issues: 0
  • Pull requests: 120
  • Average time to close issues: N/A
  • Average time to close pull requests: 1 day
  • Issue authors: 0
  • Pull request authors: 5
  • Average comments per issue: 0
  • Average comments per pull request: 0.03
  • Merged pull requests: 106
  • Bot issues: 0
  • Bot pull requests: 104
Top Authors
Issue Authors
  • surister (2)
  • danyeaw (1)
  • dependabot[bot] (1)
Pull Request Authors
  • dependabot[bot] (348)
  • pre-commit-ci[bot] (61)
  • gaphor-updater[bot] (52)
  • danyeaw (34)
  • amolenaar (14)
  • actionless (4)
  • step-security-bot (2)
  • City-busz (1)
Top Labels
Issue Labels
dependencies (1) github_actions (1) skip-changelog (1)
Pull Request Labels
skip-changelog (459) dependencies (198) github_actions (129) python (69) chore (13) documentation (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 13,085 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 32
  • Total versions: 12
  • Total maintainers: 3
pypi.org: generic

Generic programming library for Python

  • Versions: 12
  • Dependent Packages: 1
  • Dependent Repositories: 32
  • Downloads: 13,085 Last month
Rankings
Dependent repos count: 2.6%
Dependent packages count: 3.3%
Downloads: 3.7%
Average: 6.2%
Stargazers count: 8.8%
Forks count: 12.6%
Maintainers (3)
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • atomicwrites 1.4.0 develop
  • attrs 21.4.0 develop
  • black 22.6.0 develop
  • bw-sphinxtheme 0.1.8 develop
  • cfgv 3.3.1 develop
  • click 8.1.2 develop
  • colorama 0.4.4 develop
  • coverage 6.3.2 develop
  • distlib 0.3.4 develop
  • filelock 3.6.0 develop
  • identify 2.4.12 develop
  • iniconfig 1.1.1 develop
  • mypy 0.961 develop
  • mypy-extensions 0.4.3 develop
  • nodeenv 1.6.0 develop
  • packaging 21.3 develop
  • pathspec 0.9.0 develop
  • platformdirs 2.5.1 develop
  • pluggy 1.0.0 develop
  • pre-commit 2.19.0 develop
  • py 1.11.0 develop
  • pyparsing 3.0.7 develop
  • pytest 7.1.2 develop
  • pytest-cov 2.12.1 develop
  • pytest-runner 6.0.0 develop
  • pyyaml 6.0 develop
  • six 1.16.0 develop
  • toml 0.10.2 develop
  • tomli 2.0.1 develop
  • tox 3.25.1 develop
  • typing-extensions 4.1.1 develop
  • virtualenv 20.14.0 develop
  • exceptiongroup 1.0.0rc8
pyproject.toml pypi
  • black ^22.6 develop
  • bw_sphinxtheme ^0.1.8 develop
  • mypy 0.961 develop
  • pre-commit ^2.19 develop
  • pytest ^7.1 develop
  • pytest-cov ^2.12 develop
  • pytest-runner ^6.0 develop
  • tox ^3.25 develop
  • exceptiongroup ^1.0.0-rc.5
  • python ^3.8
.github/workflows/build.yml actions
  • AButler/upload-release-assets v2.0 composite
  • actions/checkout v3.3.0 composite
  • actions/setup-python v4.5.0 composite
  • fkirc/skip-duplicate-actions v5.3.0 composite
  • paambaati/codeclimate-action v3.2.0 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/pr-labeler.yml actions
  • TimonVS/pr-labeler-action v4.1.1 composite
.github/workflows/release-drafter.yml actions
  • release-drafter/release-drafter v5.22.0 composite
.github/workflows/scorecard.yml actions
  • actions/checkout v3.5.3 composite
  • actions/upload-artifact 0b7f8abb1508181956e8e162db84b466c27e18ce composite
  • github/codeql-action/upload-sarif 004c5de30b6423267685b897a3d595e944f7fed5 composite
  • ossf/scorecard-action 08b4669551908b1024bb425080c797723083c031 composite
.github/workflows/codeql.yml actions
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • github/codeql-action/analyze ddccb873888234080b77e9bc2d4764d5ccaaccf9 composite
  • github/codeql-action/init ddccb873888234080b77e9bc2d4764d5ccaaccf9 composite
  • step-security/harden-runner 8ca2b8b2ece13480cda6dacd3511b49857a23c09 composite
.github/workflows/dependency-review.yml actions
  • actions/checkout 8ade135a41bc03ea155e62e844d188df1ea18608 composite
  • actions/dependency-review-action 6c5ccdad469c9f8a2996bfecaec55a631a347034 composite
  • step-security/harden-runner 8ca2b8b2ece13480cda6dacd3511b49857a23c09 composite