spyder-ide / spyder

Official repository for Spyder - The Scientific Python Development Environment
https://www.spyder-ide.org
MIT License
8.34k stars 1.62k forks source link

Docstring not generated for one particular function, Spyder 5.2.0 #16955

Open whitedear opened 2 years ago

whitedear commented 2 years ago

Issue Report Checklist

Problem Description

Docstring will not generate for one particular function while it does generate for other functions

What steps reproduce the problem?

  1. This function will not generate a docstring Docstring
def terrain_model(file, grid_size=10, buffer_val=20, figsize=(12,12),
                  plot=True, plot_grid=True, mp=True,
                  path2asc=r'O:\Diverse\EDW\Master\Terrænmodel 10m grid\\'):
    model = GeoDataFrame(file).geom_fix().buffer(buffer_val=buffer_val)
    bounds = model.bounds_buf       
    buffer = model.gdf_buf
    if plot is True:
        plot_gdf(model.gdf, title='GIS data', figsize=figsize)  
    print('Filtering ASC files')                            
    asc_files = AscIndex(path=path2asc).filter_asc(bounds=bounds)
    if plot_grid is True:
        geoms = [AscFile(file, load=False).read_info().coordslist for file in asc_files]      
        asc_poly2gdf(geoms, model.gdf)

    if mp is True:
        asc_slice_ray = ray.remote(asc_slice)
        futures = [asc_slice_ray.remote(file, buffer, grid_size, model.crs) for file in asc_files]
        results = ray.get(futures)
    elif mp is False:
        # for file in asc_files:
        results = [asc_slice(file, buffer, grid_size, model.crs) for file in asc_files]
    terrain_slices = pd.concat(results)
    if plot is True:
        plot_gdf_sample(model.gdf, terrain_slices, title='Sliced terrain data')
    return terrain_slices
  1. Press enter just after the function colon to get a new line
  2. Type """ and the "Generate docstring" option appear.
  3. Press enter and nothing happens
  4. I have tried to copy the code to another .py file and same problem.
  5. There is no errors using the function (it uses other functions not displayed here)
  6. It works on another function

docstring working

What is the expected output? What do you see instead?

Expected a docstring template, but instead after pressing enter on the "generate docstring" option nothing happens.

Paste Traceback/Error Below (if applicable)

No error

Versions

Dependencies

Mandatory:

atomicwrites >=1.2.0 : 1.4.0 (OK) chardet >=2.0.0 : 4.0.0 (OK) cloudpickle >=0.5.0 : 2.0.0 (OK) cookiecutter >=1.6.0 : 1.7.0 (OK) diff_match_patch >=20181111 : 20200713 (OK) intervaltree >=3.0.2 : 3.0.2 (OK) IPython >=7.6.0 : 7.30.1 (OK) jedi >=0.17.2;<0.19.0 : 0.18.1 (OK) jellyfish >=0.7 : 0.8.9 (OK) jsonschema >=3.2.0 : 4.2.1 (OK) keyring >=17.0.0 : 23.4.0 (OK) nbconvert >=4.0 : 6.3.0 (OK) numpydoc >=0.6.0 : 1.1.0 (OK) paramiko >=2.4.0 : 2.8.1 (OK) parso >=0.7.0;<0.9.0 : 0.8.3 (OK) pexpect >=4.4.0 : 4.8.0 (OK) pickleshare >=0.4 : 0.7.5 (OK) psutil >=5.3 : 5.8.0 (OK) pygments >=2.0 : 2.10.0 (OK) pylint >=2.5.0 : 2.12.2 (OK) pyls_spyder >=0.4.0 : 0.4.0 (OK) pylsp >=1.3.1;<1.4.0 : 1.3.2 (OK) pylsp_black >=1.0.0 : None (OK) qdarkstyle =3.0.2 : 3.0.2 (OK) qstylizer >=0.1.10 : 0.2.1 (OK) qtawesome >=1.0.2 : 1.1.1 (OK) qtconsole >=5.2.1;<5.3.0 : 5.2.1 (OK) qtpy >=1.5.0 : 1.11.3 (OK) rtree >=0.9.7 : 0.9.7 (OK) setuptools >=49.6.0 : 59.4.0 (OK) sphinx >=0.6.6 : 4.3.1 (OK) spyder_kernels >=2.2.0;<2.3.0 : 2.2.0 (OK) textdistance >=4.2.0 : 4.2.2 (OK) three_merge >=0.1.1 : 0.1.1 (OK) watchdog >=0.10.3 : 2.1.6 (OK) zmq >=17 : 22.3.0 (OK)

Optional:

cython >=0.21 : None (OK) matplotlib >=2.0.0 : 3.5.0 (OK) numpy >=1.7 : 1.20.0 (OK) pandas >=1.1.1 : 1.3.4 (OK) scipy >=0.17.0 : 1.7.3 (OK) sympy >=0.7.3 : None (OK)

ccordoba12 commented 2 years ago

Hey @whitedear, thanks for reporting. The problem lasts in your last argument, i.e.

path2asc=r'O:\Diverse\EDW\Master\Terrænmodel 10m grid\\'

because it seems we can't parse the \ on it to generate the docstring. That's why I suggest you to change the backslashes on it to slashes (/), which also works on Windows and doesn't fail in Spyder:

imagen

Of course, this is a bug. But it could take us months to fix it because we have a lot of other things to do.