OpenAI to buy Python toolmaker Astral