Hi! thanks for the feedback. I'm going to change it to a bulleted list, as you suggest.
What it does is:
- load your application from a configuration file
- you can have multiple configuration file (i.e. one per environment: local, dev, prod, staging, etc.)
- tell applipy which environment to load through an environment variable `APPLIPY_ENV`
- implement self-contained or interdependant applipy modules that you can tell applipy to include through the config file
- implement multiple AppHandles: an interface that implements on_init(), on_start() and on_shutdown()
- modules can register the AppHandles
- applipy will gracefully manage the lifecycle of your application
An example of use case is a web page I have for an online guild. It has an integration with discord and, of course, login with permisions, etc.
When I'm developing locally I can simply go to the local.yaml configuration file and comment out the modules I don't want to run locally.
Because of the way it is architected I can easily remove the discord, login and permission check modules and run it locally like that.
Then, I also have a prod.yaml file with all production modules and configurations.
I also have different data store implementations for local and production environments. I did this by defining an interface that all classes that require persistence access require and I include different modules, that register in the injector different implementations of the same interface, in the configuration files for each environment.
I hope that explains it better. I will for sure use the above explanation to update the README.md :D
PD: that was only applipy core. I've also published other libraries that build on top of it: https://gitlab.com/applipy
3 comments
[ 374 ms ] story [ 1575 ms ] threadThis library started as a weekend project of "how would I make a dependency injector in Python?". This is the result 1.5 years later.
Let me know what you think :D
> Applipy is an application development framework that allows to define the application by installing modules and registering application handles.
Maybe a bulleted list of high-level use cases? I'm a Python developer but not sure what problem this solves, although it sounds cool!
What it does is: - load your application from a configuration file - you can have multiple configuration file (i.e. one per environment: local, dev, prod, staging, etc.) - tell applipy which environment to load through an environment variable `APPLIPY_ENV` - implement self-contained or interdependant applipy modules that you can tell applipy to include through the config file - implement multiple AppHandles: an interface that implements on_init(), on_start() and on_shutdown() - modules can register the AppHandles - applipy will gracefully manage the lifecycle of your application
An example of use case is a web page I have for an online guild. It has an integration with discord and, of course, login with permisions, etc.
When I'm developing locally I can simply go to the local.yaml configuration file and comment out the modules I don't want to run locally.
Because of the way it is architected I can easily remove the discord, login and permission check modules and run it locally like that.
Then, I also have a prod.yaml file with all production modules and configurations.
I also have different data store implementations for local and production environments. I did this by defining an interface that all classes that require persistence access require and I include different modules, that register in the injector different implementations of the same interface, in the configuration files for each environment.
I hope that explains it better. I will for sure use the above explanation to update the README.md :D
PD: that was only applipy core. I've also published other libraries that build on top of it: https://gitlab.com/applipy