Skip to content

Single quoted word in argument breaks docstring parsing #7

Open

Description

@jamesbraza

The below code with Python 3.12 and python-cdd==0.0.99rc47:

import cdd.docstring.parse

def my_function(arg: str) -> None:
    """Summary.

    Args:
        arg: A 'quoted' word. 
    """

cdd.docstring.parse.docstring(my_function.__doc__)

Will crash _parse_adhoc_doc_for_typ_phase0 with TypeError: unhashable type: 'list'

Traceback (most recent call last):
...
  File "/path/to/venv/lib/python3.12/site-packages/cdd/docstring/utils/parse_utils.py", line 263, in parse_adhoc_doc_for_typ
    candidate_type, fst_sentence, sentence = _parse_adhoc_doc_for_typ_phase0(doc, words)
                                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/path/to/venv/lib/python3.12/site-packages/cdd/docstring/utils/parse_utils.py", line 410, in _parse_adhoc_doc_for_typ_phase0
    candidate_type: Optional[str] = next(
                                    ^^^^^
TypeError: unhashable type: 'list'

Activity

  1. changed the title [-]Single quotes in argument breaks parsing[/-] [+]Single quoted word in argument breaks docstring parsing[/+] on Jun 23, 2024
  2. SamuelMarks commented on Jun 23, 2024

    @SamuelMarks
    Member

    Good to have the bug report, checking the words are:

    ['A', ' ', [], '', '', ['q', 'u', 'o', 't', 'e', 'd'], 'quoted', '', ' ', 'word', '.']

    Which is certainly not what is wanted at this stage.

    In the middle of something let me see if I can resolve this issue in the next week. Thanks for using the library!

  3. jamesbraza commented on Jun 23, 2024

    @jamesbraza
    Author

    Yeah sounds good and thank you! I am trying to use this to go from type hinted signatures + docstrings to an OpenAPI spec

  4. SamuelMarks commented on Jun 23, 2024

    @SamuelMarks
    Member

    Good plan. The project is just about ready to do that reliably.

    Anyway, will address the issue you brought up. Also have an uncommitted local build with some other improvements relating to type inference.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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