ets-labs/python-dependency-injector

Dependency injection framework for Python

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 47 minutes ago
Type:Library / SDKCategory(s):Core & Utility LibrariesLanguages & Runtimes
Added to GitGenius on September 14th, 2026
Created on January 4th, 2015
Open Issues & Pull Requests: 211 (+0)
GitHub issues: Enabled
Number of forks: 353
Total Stargazers: 4,913 (+0)
Total Subscribers: 55 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.7 days
Mean response time: 118.6 days
90th percentile: 490.2 days
Tracked items: 147

Most active contributors

Sign in to see contributor activity.

How this project is maintained

99% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Three people close 77% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 72
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 807 days
Stale 30+ days: 72
Stale 90+ days: 69

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • question (18)
  • bug (17)
  • feature (7)
  • enhancement (3)
  • docs (2)
  • announcement (1)
  • research (1)

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

python-dependency-injector is a dependency injection framework for Python that implements the dependency injection principle through a container-based approach.

The framework addresses the problem of managing object dependencies and their lifecycles in Python applications. It provides a declarative container system where you define providers that specify how to construct and wire together your application's objects. The container handles instantiation, configuration, and injection of dependencies, allowing you to decouple components and manage complex object graphs without manual wiring throughout your codebase.

The tool suits applications where dependency management becomes unwieldy as complexity grows, particularly in larger projects, web applications using Flask or aiohttp, and systems requiring different configurations across environments. It works well for teams wanting to enforce consistent patterns around object construction and lifecycle management. The framework supports various provider types including factories, singletons, and thread-local instances, giving you fine-grained control over how objects are created and shared.

The project maintains active development with regular testing and linting workflows. The codebase receives consistent attention to code quality through automated testing infrastructure. The framework supports multiple Python implementations and versions, indicating ongoing maintenance across the Python ecosystem. Documentation is actively maintained through a dedicated project website, suggesting the maintainers prioritize helping users understand and adopt the framework.