I am trying to divide a city into n squares. 
Right now, I'm calculating the coordinates for all square centres and using the ox.graph_from_point function to extract the OSM data for each of them.
However, this is getting quite long at high n due to the API pausing times.
My question:
Is there a way to download all city data from OSM, and then divide the cache file into squares (using ox.graph_from_point or other) without making a request for each?
Thanks
Using OSMnx directly - no, there isn't. You would have to script your own solution using the existing tools OSMnx provides.
OSMnx: Divide a cache ox.graph into equal squares without redownloading each