Hacker News new | ask | show | jobs
by omnifollow 2073 days ago
It would be helpful to understand what this means:

> 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!

1 comments

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