Previously mentioned in many places: - https://github.com/GenericMappingTools/pygmt/pull/2726#discussion_r1359805008 - https://github.com/GenericMappingTools/pygmt/pull/731#discussion_r825477816 - https://github.com/GenericMappingTools/pygmt/pull/1282#issuecomment-846599504 Related PEPs: - https://peps.python.org/pep-0457/ - https://peps.python.org/pep-0570/ - https://peps.python.org/pep-3102/ In short, the new function definition will be like: ``` def f(pos1, pos2, /, pos_or_kwd, *, kwd1, kwd2): ----------- ---------- ---------- | | | | Positional or keyword | | - Keyword only -- Positional only ``` Note: Enable ruff's [flake8-boolean-trap (FBT)](https://docs.astral.sh/ruff/rules/#flake8-boolean-trap-fbt) after finishing this request.