A command line tool to help manage local development of Anvil apps.
Amoni gives you:
A preconfigured postgresql server running in a docker container
A preconfigured Anvil application server running in a docker container
Simple commands to start and stop those servers
A preconfigured docker container to run your test suite
Convenient access to the anvil error log
Your app available in your browser at port 3030 on your local machine
Your database server available on port 5432 on your local machine
So your workflow becomes (almost )
amoni init
cd <my_new_amoni_project_directory>
amoni start
>>> Wait a while the first time while the server images download
>>> Point my browser at http://localhost:3030
>>> Marvel at how simple that was
amoni test
>>> Sigh with relief at those lovely passing tests
amoni stop
>>> Perform the Engineers Victory Dance™
>>> Sup coffee (or beverage of choice)
I haven’t tried any of them yet, though, and don’t understand enough to compare and contrast these approaches, but I’d be interested if others have thoughts.
Hi Tim, I think it boils down to personal preferences. I am not a good programmer. So I really needed tight integration with PyCharm: I need it’s strict type checking features, it’s integration with pytest, it’s fantastic auto-complete, and its debugger which allows line-by-line execution.
All the things that a bad programmer needs. And so that’s why I put the time and effort into pyDALAnvilWorks.
My anvil apps are simple though. So I only put those things into this repo that I use. I think Amoni will be much better for more sophisticated apps.
amoni install app and amoni install dependency to fetch apps from a remote repository (e.g. at anvil.works), add them to your project and configure the app server correctly.
amoni init now takes its path and app name directly on the command line, runs git init on the folder it creates and creates an initial commit
Stub files that enable an autocompleter to see the tables available in your app
HI Owen, thanks for your hard work. Just a note, I looked into your anvil-stubs package and if you want more stubs, I have most of them in the anvil folder on pyDALAnvilWorks