-
-
Notifications
You must be signed in to change notification settings - Fork 306
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Current Maintenance Status and Future Plans #791
Comments
I am using it in production for a medium-sized project and it's been a mostly positive experience, but the lack of maintenance has unfortunately made me switch to injector for another new project. Small problems are accruing, like only supporting pydantic v1 and no support for Python 3.12. There are PRs for addressing these issues, so I feel like a fork would be successful. |
There are a couple other issues open with a similar question: #688, #742, #763. In #742 (comment) @rmk135 did respond on Nov 15, 2023, but no response since then. That does make me concerned for the future of this project. |
New to python, it's a bit odd to me such a popular language has no good DI framework... this one is the closest, but some issues popping up and no one to support it. It can always be forked I suppose if there were enough that wanted & are able to support it. Makes me wonder about python usage in large projects...or perhaps there are alternate approaches that explain the lack of options here. |
this project is dead. forget about it, make forks, look for alternatives or write on your own. |
As someone with a .NET background, I've often leaned towards sophisticated frameworks for core functionalities. However, Python's flexibility might not necessitate such complex solutions. In "Architecture Patterns with Python," the authors advocate for a minimalist approach to DI, which they implement succinctly in about 30 lines of code. This perspective is illustrated in their public GitHub repository, which you can view here. Considering this minimalist approach, I experimented with implementing DI in a similar way in one of my private projects. Here’s a practical example:
In this example, bootstrap function sets up a message bus with dependency-injected command handlers, demonstrating DI without the need for a complex framework. This approach might be sufficient for many projects, especially when considering Python's dynamic nature. I'm curious to hear others' thoughts on this. Have you found that Python projects typically require complex DI solutions, or have simpler approaches like this been adequate? |
@moccajoghurt you know, your apt comment made me think that, indeed, modern Python can do without a specialized framework for dependency injection! |
Not sure I follow... isn't it still desirable to have a nice DI framework, so you can define all injections in a central containers, with easy/clean/flexible options to override, control factory type, and inject in various places throughout the codebase? |
These frameworks appear and die like flies. it might be convenient to have a single container, but in general, it doesn't affect anything dramatically, but it creates hemorrhoids - like now, for example, when we have to remove this dead lib from everywhere. |
It is a bit sad to let this library to be left like this 😕. I know that a fork was already done, at least to give support to Python 3.12. That said are't we able, as a community, to fork this project and start from there ? Probably we would "only" need to find a quorum for this to work. |
I've successfully switched to https://github.com/kodemore/kink, it has all the functionalities I need and the implementation is much simpler, so it if gets abandoned I could just maintain the code myself in the project... |
I’ve switched to |
Hey @Guibod , |
@ngirard On the other side, A good example is their proposal for our In short:
In detail:
You can see my migration in action there (unfortunately i’ve renamed some files so my « container » file cannot be diff simply):
|
Wow... thank you so much @Guibod ! |
For anybody still looking for alternative, here is library that is designed as a replacement for dependency-injector |
@RubenRibGarcia what's the fork link? |
It seems @rmk135 merged a PR to support Python 3.12 😄 . Which is kind of good news but I this might only be sporadic and I feel that this project should be passed to the community (or other approach) to contribute and evolve this framework, as there is high change that this may be one of the framework that is massively used in many production applications. |
The release with Python 3.12 support is on PyPI: https://pypi.org/project/dependency-injector/4.42.0b1/
Please report any issues you notice by opening an issue here: https://github.com/ets-labs/python-dependency-injector/issues I'll publish the plan for future steps a bit later. There is a lot of work to do. |
Good news @rmk135 and thank you very much for your comment ! If you need any help/support on this library, I'm willing to help and also contribute |
Hi all! Here's the roadmap for 2024: #812 I'll go ahead and close this issue for now. |
Hello,
I'm considering integrating this library into my project but noticed the last update was two years ago. Could you confirm if the repository is still maintained and if it's safe to use in terms of security and compatibility?
Thank you for your work on this project and for any information you can provide.
The text was updated successfully, but these errors were encountered: