|
|
|
|
|
by rocqua
1795 days ago
|
|
This decision has bit me in the ass so often. I want to organize my code logically in directories. As a script grows, I want the ability to spin out parts of that file to separate files. In order to do that in python, I need separate directories between the script and the spun-out functionality. This ends with a script that says "do function from module" and all code being in the module. Having code in different directories for no reason except "the import system" sucks. How is this supposed to go? |
|
I used to include a simple stub Python program (~10 lines) as a "script" in my setup.py that would import the right code and call it.
Then I learned that "entry_points" implemented most of the dispatch behavior I wanted.
I no longer have those scripts, just an entry that basically says "from abc.cli.prog1 import main; main()". The prog1.py, prog2.py, etc. look like normal command-line scripts, assuming the usual:
The major downside is I can't suppress SIGPIPE and SIGINT until main() is called, leaving a wider window where something like ^C gives a unwanted Python stack trace.