Open ThirteenFish opened 6 months ago
can.interfaces
to support MacOS developers and for socketcand
support which will become invaluable for ADCS Manager and the Task Scheduler.natsort
(would have to review the code)spacepackets
is only used by the C3 app for EDL (not apart of OLAF). Cannot remove from the C3.loguru
could probably be replace with built in logging
moduleyaml
for oresat-configs
werkzeug
is needed for the Flask
REST API. But I was thinking of splitting the project into two modules/apps/daemons; OLAF and OLAF-REST-API, where there is a socket between them for IPC. Then Flask and it's dependencies wouldn't slow down the core OLAF app and could be disabled for flight, and we still get the REST API for integration, testing, and FlatSat.Thinking about this more, we could easily replace the global logger
object from loguru
with an object of a custom wrapper class around the built-in logging
module to avoid breaking the apps.
Just imports, before we get to running any functional code, take a significant amount of the startup time for
oresat-c3-software
. I took a profile of imports during start-up withpython3 -X importtime -m oresat_c3
on the C3. I've sorted the list by self time and cut it to only those that took longer than 100ms:A lot of the long imports come from this project or
oresat-configs
. Looking at this list standouts from external packages are:can.interfaces
(pretty surprising, there's a lot of interfaces but we only need one. Can we prune it somehow?)natsort
spacepackets
loguru
yaml
werkzeug
Do these have settings or optional features that can be cut out?
Things we control:
oresat_configs.card_config
olaf._internals.rest_api
Both of these files are very decorator heavy so maybe it's related to that?
I also don't know enough about
pkg_resources
to say what it's doing beyond it's stuff related tosetuptools
.