Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Added handling for sequence classes #127

Conversation

Masara
Copy link
Contributor

@Masara Masara commented May 3, 2024

Closes #126

Summary of Changes

Added handling for sequence classes and also removed a few "raises" and replaced them with UnknownType's.

@Masara Masara linked an issue May 3, 2024 that may be closed by this pull request
Copy link

github-actions bot commented May 3, 2024

🦙 MegaLinter status: ✅ SUCCESS

Descriptor Linter Files Fixed Errors Elapsed time
✅ PYTHON black 6 0 0 1.24s
✅ PYTHON mypy 6 0 5.65s
✅ PYTHON ruff 6 0 0 0.04s
✅ REPOSITORY git_diff yes no 0.03s

See detailed report in MegaLinter reports
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security

Copy link

codecov bot commented May 3, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 99.53%. Comparing base (3477b4a) to head (954a1a4).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #127   +/-   ##
=======================================
  Coverage   99.53%   99.53%           
=======================================
  Files          23       23           
  Lines        2344     2373   +29     
=======================================
+ Hits         2333     2362   +29     
  Misses         11       11           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Masara Masara force-pushed the 126-error-when-generating-stubs-for-latest-version-of-library branch from 30257a5 to f84705b Compare May 3, 2024 21:00
@Masara Masara marked this pull request as ready for review May 3, 2024 21:03
@Masara Masara requested a review from a team as a code owner May 3, 2024 21:03
@lars-reimann lars-reimann force-pushed the 126-error-when-generating-stubs-for-latest-version-of-library branch from f84705b to 6842fbb Compare May 4, 2024 07:31
@lars-reimann
Copy link
Member

Getting this error

Traceback (most recent call last):
  File "C:\Users\Lars\AppData\Local\pypoetry\Cache\virtualenvs\safe-ds-stubgen-VELKLkPa-py3.12\Scripts\\safe-ds-stubgen", line 6, in <module>
    sys.exit(main())
             ^^^^^^
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\main.py", line 14, in main
    cli()
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\api_analyzer\cli\_cli.py", line 20, in cli
    _run_stub_generator(args.src.resolve(), args.out.resolve(), args.docstyle, args.testrun, args.naming_convert)
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\api_analyzer\cli\_cli.py", line 94, in _run_stub_generator
    stub_data = generate_stub_data(stubs_generator=stubs_generator, out_path=out_dir_path)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\stubs_generator\_generate_stubs.py", line 67, in generate_stub_data
    module_text, package_info = stubs_generator(module)
                                ^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\stubs_generator\_generate_stubs.py", line 188, in __call__
    return self._create_module_string()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\stubs_generator\_generate_stubs.py", line 213, in _create_module_string
    module_text += f"\n{self._create_class_string(class_)}\n"
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\stubs_generator\_generate_stubs.py", line 339, in _create_class_string
    f"{python_name_info}{class_indentation}{self._create_todo_msg(class_indentation)}class "
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "E:\Repositories\safe-ds\Stub-Generator\src\safeds_stubgen\stubs_generator\_generate_stubs.py", line 1000, in _create_todo_msg
    + {
      ^
KeyError: 'OutputConversion'

when running

safe-ds-stubgen -o "./out" -nc -s "E:/Repositories/safe-ds/Library/src" --docstyle NUMPYDOC -v

on Safe-DS/Library@46f54af.

@Masara
Copy link
Contributor Author

Masara commented May 4, 2024

@lars-reimann It should run now.

Copy link
Member

@lars-reimann lars-reimann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nicely done, thank you.

@lars-reimann lars-reimann merged commit cb061ab into main May 4, 2024
8 checks passed
@lars-reimann lars-reimann deleted the 126-error-when-generating-stubs-for-latest-version-of-library branch May 4, 2024 10:49
lars-reimann pushed a commit that referenced this pull request May 4, 2024
## [0.3.0](v0.2.0...v0.3.0) (2024-05-04)

### Features

* Added handling for sequence classes ([#127](#127)) ([cb061ab](cb061ab)), closes [#126](#126)
* DocString result names for Safe-DS stub results ([#101](#101)) ([fe163e3](fe163e3)), closes [#100](#100)
* Examples from docstrings are also taken over to stub docstrings ([#116](#116)) ([6665186](6665186)), closes [#115](#115)
* Replace the docstring_parser library with Griffe ([#79](#79)) ([9b2f802](9b2f802))

### Bug Fixes

* `Self` types as results are translated to class names  ([#110](#110)) ([4554a56](4554a56)), closes [#86](#86)
* Creating stubs with relative paths for source and output directories ([#128](#128)) ([b4493c9](b4493c9)), closes [#125](#125)
* Docstrings have the correct indentation for nested classes (stubs) ([#114](#114)) ([c7b8550](c7b8550)), closes [#113](#113)
* Fixed a bug where double ? would be generated for stubs ([#103](#103)) ([c35c6ac](c35c6ac)), closes [#87](#87) [#87](#87)
* Fixed a bug where imports would not check reexports for shortest path ([#112](#112)) ([48c5367](48c5367)), closes [#82](#82)
* Fixed a bug where results in stubs would not be named ([#131](#131)) ([4408c84](4408c84)), closes [#100](#100)
* Fixed a bug which prevented mypy version update ([#107](#107)) ([501d2cd](501d2cd))
* Fixed the stubs generator ([#108](#108)) ([9ad6df6](9ad6df6)), closes [#80](#80)
* Generated names of callback results start with result, not with param ([#104](#104)) ([6e696e9](6e696e9)), closes [#85](#85)
* Include lines of examples that start with `...` ([#130](#130)) ([3477b4a](3477b4a)), closes [#129](#129)
* No "// TODO ..." if return type is explicitly `None` ([#111](#111)) ([08e345f](08e345f)), closes [#83](#83)
* Removed the Epydoc parser ([#89](#89)) ([684a101](684a101))
* Replaced tabs with 4 spaces ([#105](#105)) ([8e7aa5d](8e7aa5d)), closes [#84](#84)
* The file structure of stubs resembles the "package" path. ([#106](#106)) ([ff1800e](ff1800e)), closes [#81](#81)
* Translation of callable ([#102](#102)) ([c581e6a](c581e6a)), closes [#88](#88) [#88](#88)
@lars-reimann
Copy link
Member

🎉 This PR is included in version 0.3.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

@lars-reimann lars-reimann added the released Included in a release label May 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
released Included in a release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Error when generating stubs for latest version of library
2 participants