Skip to content

ComplexOutput data as reference always generates a file named "input.csv", should be "output". #674

@ashleysommer

Description

@ashleysommer

Description

When returning a ComplexOutput as Reference (output as_reference is True), the filename generated by the server (and used in the built URL) is always "input", eg "input.csv" for a "txt/csv" output, or "input.xml" for an "application/xml" output. This is misleading to users as this is actually the Output file.

After some digging through the sourcecode, I found where that name is set:

pywps/pywps/inout/basic.py

Lines 271 to 276 in d0bb978

def _build_file_name(self, href=''):
"""Return a file name for the local system."""
url_path = urlparse(href).path or ''
file_name = os.path.basename(url_path).strip() or 'input'
(prefix, suffix) = os.path.splitext(file_name)
suffix = suffix or self.extension

It appears there is no way to set this name on the ComlexOutput object, or on the FileStorage object or on the DataHandler object.

Environment

  • operating system: Ubuntu 22.04
  • Python version: 3.8
  • PyWPS version: 4.5.2
  • source/distribution
  • git clone
  • Debian
  • PyPI
  • zip/tar.gz
  • other (please specify):

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions