Next up is "dead code" at I use vulture and some decorators to mark what is...

@mistersql

Next up is "dead code" at

I use vulture and some decorators to mark what is public, what do you all use?

pypi.org/project/vulture/

Self-replies

(and I'm noodling with the idea of putting an `__all__` into every `__init__.py` to track what is public. I know vulture can use an "ignore" file, but I'd rather more explicit entrypoint markers. Stuff other than vulture needs to know what is unused because it is an entry point.

Dead code's costs
- perf costs (at built time?)
- maintenance
Why
- API changes
- deprecations
- temp debuging
- redundancy
- legacy (old crap)

More impacts
- attack surface
- readability problems

me: seems like some of these dead code categories are "code that should be dead"

Unused imports can increase execution time.
me: pylint/ruff protect me from this. Still no protection against libraries with lots of startup costs on `import`