Theoretically is possible to obtain the polygons of city blocks (urban blocks) from streets, when streets are represented by street axis (LineStrings).
The urban blocks are bounded by streets, so the street segments can be used to form a polygon which contains only one block inside... See illustrations.
There are an (SQL) PostGIS 2.X script to do this? A plugin software?
PS: approximate city block geometries are enough.
Starting the process from a "mesh of connected line segments", it can be: 1) obtain associated polygons; 2) isolate polygons by negative buffer and buffer subtraction of the lines.
Example: the polygon 262 (representing a city block) was originated by the segments 2496, 2494, 2369, 1513, ... And the neighbor polygon 263 can use some common segments, but next (by negative st_buffer or another operation) will be really isolated polygons, so, low precision is enough.
I think we can translate this specific problem in a more generic one: the set of street segments can be viewed as a kind of tessellation, that is, the segments separe the plane into contiguous regions – the urban blocks are lying in the interior of these regions. Each segment is a side of two regions.
The main problem is to transform the "set of segments of the tessellation" into independent polygons.