Lessons learned
While the Charter library is just an example of modular Python programming, and you don't really have a boss who insists you generate charts in PDF format, these examples were selected because the problem is anything but trivial, and the changes you needed to make were also very challenging. Looking back over what we have achieved, there are several things you may notice:
When faced with a major change in requirements, our first reaction is usually a negative one: "Oh no! How could I possibly do that?,"a "It'll never work," and so on.
Rather than jumping in and starting to tinker with the code, it is generally better to step back and think about the structure of the existing code base and what might need to be changed to meet the new requirements.
Where the new requirement involves a library or tool you haven't used before, it is worth spending some time researching the possible options, and possibly writing a simple example program to check that the library will do what you...