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

fix(pacmak): Generate Relative Module Imports in Python #3181

Merged
merged 4 commits into from
Nov 18, 2021

Conversation

skorfmann
Copy link
Contributor

The goal of this PR is, to find a way for generated Python code to work with namespaced modules regardless of the way it is consumed. While the current implementation of submodule imports seem to work fine when distributed as packages, it's breaking apart when the generated code is imported relatively as part of a single code base. That's what we do in cdktf and the reason why we have locked jsii to 1.37.0 at the moment.

The general idea is, to generate relative imports rather than fqn imports in Python. This could be a potential way to address #3078

# Before    
import jsii_calc.submodule
import jsii_calc.submodule.nested_submodule
import jsii_calc.submodule.nested_submodule.deeply_nested

# After
from . import submodule
from .submodule import nested_submodule
from .submodule.nested_submodule import deeply_nested

Besides from a few snapshots being changed, it seems like the tests are still working with this change. However, I'm not sure about the general implications. So, this entire PR is really meant to be a conversation starter.

I have confirmed that an import like import . from some_aws_namespace would work for us in cdktf.

References


By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

@mergify
Copy link
Contributor

mergify bot commented Nov 17, 2021

The title of this Pull Request does not conform with [Conventional Commits] guidelines. It will need to be adjusted before the PR can be merged.
[Conventional Commits]: https://www.conventionalcommits.org

@skorfmann skorfmann changed the title relative module imports in python fix(pacmak): Generate Relative Module Imports in Python Nov 18, 2021
@skorfmann skorfmann marked this pull request as ready for review November 18, 2021 14:24
Copy link
Contributor

@RomainMuller RomainMuller left a comment

Choose a reason for hiding this comment

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

LGTM - Thanks for fixing that!

@mergify
Copy link
Contributor

mergify bot commented Nov 18, 2021

Thank you for contributing! ❤️ I will now look into making sure the PR is up-to-date, then proceed to try and merge it!

@mergify mergify bot added the pr/ready-to-merge This PR is ready to be merged. label Nov 18, 2021
@mergify mergify bot merged commit b0afe51 into aws:main Nov 18, 2021
@mergify
Copy link
Contributor

mergify bot commented Nov 18, 2021

Merging (with squash)...

@mergify mergify bot removed the pr/ready-to-merge This PR is ready to be merged. label Nov 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants