Content sources can be registered to handle IDs. The first to be registered for a pattern will be used.
It should take into account things like connectivity, availability, etc.
Live API, Offline cache, Archive sources.
If the live API only has 7 days of data, we may fall back cached or exported archive.
Unit and E2E tests run offline, except integration portions.
We can use the cached responses and responses module to accomplish this.
Twitter is the furthest along, but each has some distinct features.
I was learning Python as I built this project.
We rely as much as possible on the constituent parts that we rely on.
Trac is an inspiration but invents everything from scratch which is over-engineering for us at this point.
We'll vet the pieces that we use well and rely on them. Trac for the HTTP routing and themes.
Dataclasses for the serialization.
https://stackoverflow.com/questions/7505988/importing-from-a-relative-path-in-python
https://www.geeksforgeeks.org/absolute-and-relative-imports-in-python/