Background: I'm the author of a bot (https://github.com/konstin/github-wikidata-bot) that updates the software versions in wikidata pages. The initial processed set is 16k projects, less after filtering for various requirements for updating and a no-edit fast paths.
Since the bot may edit in parallel with others, it needs to use user_add_claim_unless_exists to create claims for versions (without it, i get errors for edit conflicts). I've noticed that the bot spends a large chunk of its runtime in method of the inspect for deserializing JSON. The call chain is roughly user_add_claim_unless_exists -> fromJSON -> __getattr__ -> inspect.signature. I was surprised by this, as usually the signatures shouldn't really change during runtime.
This may also be something I can improve on the bot's side, but I'm not really what the intended usage is.

