Rewrite gscat in Python for improved --help and metadata preservation