BrandwatchLtd / bcr-api

Python Client Library for the Brandwatch Consumer Research API
MIT License
21 stars 23 forks source link

default log level and tokens #37

Open danchalmers opened 1 year ago

danchalmers commented 1 year ago

The logging within the api code should not fix the logging config in a way that is hard to overwrite, for code which will import it. As discussed in https://github.com/BrandwatchLtd/bcr-api/issues/35

This PR does a couple of logging related things things:

  1. It extracts the logging config out to one place in the API code.
  2. It reduces that config so that it is easier to overwrite in any importing code.
  3. It updates the DEMO notebook, with a couple of alternative ways of changing the logging, and noting that the default has changed.

The log level can still be changed but is not overridden by this code.

The default log level is now WARNING. This makes the default much less verbose. It can easily be changed, as was already documented. Will this change confuse users?

In testing and tweaking the demo I also hit an issue with the token storage in a fresh clone of the API:

A missing user in the tokens file also led to an unhelpful exception message, which I've addressed.

I've made BWProject and BWUser share the same default as bcr-authenticate. If code has been written assuming tokens.txt rather than explicitly providing it this will break. The DEMO notebook has been updated to comment on this, but for existing code this may be a breaking change.

It would be easy to make tokens.txt the default, but I assume that a central location was introduced for a reason.