There are some unintentional consequences of converting sqlite3.connect() to Argument Clinic in #40956.
- The
database argument always converted to bytes.
- Keyword arguments are passed as positional arguments to
factory().
- If an argument is not passed to
sqlite3.connect(), its default value is passed to factory().
It all works with the default factory=Connection, but factory can be an arbitrary callable, not completely compatible with Connection(). There may be a user code which uses a factory which only works with string database and does not support the uri argument. It worked fine in older versions when it is called with correct arguments, bet will become failing in 3.11.
This is a hypothetical scenario, but we should at least add a note about potential incompatibility. And I think that it is better to get rid of PyUnicode_FSConverter here.