aws / jsii

jsii allows code in any language to naturally interact with JavaScript classes. It is the technology that enables the AWS Cloud Development Kit to deliver polyglot libraries from a single codebase!
https://aws.github.io/jsii
Apache License 2.0
2.63k stars 244 forks source link

fix(python): incorrect escaped characters cause warnings #4538

Closed kaizencc closed 3 months ago

kaizencc commented 3 months ago

Fixes #4532. Succinctly, the issue is that the README is copied over into the __init__.py file as a python comment. And then python warns that things like \| and \', which while not often, do organically and correctly show up in markdown syntax, are invalid escapes. Some people who have set their python config to error on warnings end up erroring on this. The solution is to mark the README string as a raw string r''' so python does not try to register the escapes.

I'm not sure how to test this in code in this PR. I have done the following to make sure that this works:

I copied the repro repo from #4532 here and got it to show the warning locally. then, I updated the actual file manually from ''' to r''' and got pytest -W error to give me a thumbs up. So that shows that changing ''' to r''' does not expect the escaped characters to be valid.

I tested my local jsii-pacmak by using it to package a module in aws-cdk, and unzipped the python package and confirmed that the r''' raw string indicator shows up for the README string in __init__.py, and nothing else.

These two combined confirms for me that this solution will work. Again I'm not sure of the best way to test that in jsii-pacmak.


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

mergify[bot] commented 3 months ago

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

mergify[bot] commented 3 months ago

Merging (with squash)...

mergify[bot] commented 3 months ago

Merging (with squash)...