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: 10 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 about 16 years ago · Last pushed 11 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: about 1 year 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: 11 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: 11 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