-
Notifications
You must be signed in to change notification settings - Fork 0
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
fix: Fixed a bug where imports would not check reexports for shortest path #112
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #112 +/- ##
==========================================
+ Coverage 99.53% 99.55% +0.01%
==========================================
Files 23 23
Lines 2373 2462 +89
==========================================
+ Hits 2362 2451 +89
Misses 11 11 ☔ View full report in Codecov by Sentry. |
🦙 MegaLinter status: ✅ SUCCESS
See detailed report in MegaLinter reports |
…s' into 82-wrong-imports-in-created-stubs
...pshots__/test_generate_stubs/TestStubFileGeneration.test_stub_creation[class_module].sdsstub
Outdated
Show resolved
Hide resolved
…ate the stubs for them at the directory where they were reexported from
…s' into 82-wrong-imports-in-created-stubs
e2356d7
to
7641bc3
Compare
… & Alias names are now correctly taken over to stubs and whitelist reexports are now handled correctly
a2bd81a
to
49c668a
Compare
# Conflicts: # src/safeds_stubgen/stubs_generator/_generate_stubs.py
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For me stubs are created. Did you remove the |
Yep, same call as for main, where it works fine: Did you delete your |
…e the imports names where converted too soon
I did find and fix a bug here, which wouldn't let the parser create stubs for the latest |
@Masara Please take a look at the merge conflicts. Then this should also be good to go. |
# Conflicts: # src/safeds_stubgen/stubs_generator/_generate_stubs.py # tests/safeds_stubgen/stubs_generator/test_generate_stubs.py
Unfortunately, this is broken for me again. I'm running
Imports aren't being created at all, so I cannot check whether that works now. |
8d7ef3b
to
47730e2
Compare
@lars-reimann Should be fixed now, could you take another look? |
Code is being generated again, and the imports look good as well. I greatly preferred the previous folder structure, though. Previously, there were folders for the package parts (e.g. The behavior from #81 should be restored. If it's easier, I'd also be fine with generating one file for each global declaration (class, global function, ...) with the same name as the declaration. |
@lars-reimann How do you mean should it look like? Instead of writing every declaration into, for example, the |
That would be OK, yes. |
…tions: Now they are created as extra stub files
I changed the way the directories are build, is this all right now? |
The file structure is great now. However, now all packages are wrong again. Example ( Actual:
Expected:
Another issue is that files import their own declaration. Example (
These imports should be removed. |
We also need tests to detect these regressions or look more closely at updated snapshots before overwriting them. |
…s' into 82-wrong-imports-in-created-stubs
… and a bug where imports for themselves would be created
cd98e08
to
4a0db67
Compare
That was on me, I didn't check the snapshots thoroughly last time. It should work correctly now. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Awesome, works very well.
## [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)
🎉 This PR is included in version 0.3.0 🎉 The release is available on:
Your semantic-release bot 📦🚀 |
Closes #82
Summary of Changes
Fixed the bug where imports would not use the shortest path from existing reexports.