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

Wrong f-string parsing and compile warning #840

Closed
shilkazx opened this issue Jun 6, 2024 · 1 comment
Closed

Wrong f-string parsing and compile warning #840

shilkazx opened this issue Jun 6, 2024 · 1 comment

Comments

@shilkazx
Copy link

shilkazx commented Jun 6, 2024

coconut v3.1.0 with python v3.9.18
coconut can not parse multi-line f-string properly. It will remove 'f' before the multi-line string and the compiled code is wrong.
e.g.
coconut code:

sql = f'''SELECT * 
                FROM SOME_TABLE
                WHERE CODE = '{self.code}' '''

compile this code would raise warning:
CoconutSyntaxWarning: f-string with no expressions (line xxx in 'xxx.coco')
and the compiled code is:

sql = '''SELECT * 
                FROM SOME_TABLE
                WHERE CODE = '{self.code}' '''.format()

This code is totally wrong. Coconut should just copy the original code snippet in the generated python file.

@evhub
Copy link
Owner

evhub commented Jun 6, 2024

Looks like a duplicate of #839, which should already be resolved on coconut-develop. Try pip uninstall coconut && pip install -U coconut-develop.

@evhub evhub closed this as completed Jun 6, 2024
@evhub evhub added the resolved label Jun 7, 2024
@evhub evhub added this to the v3.1.1 milestone Jun 7, 2024
@evhub evhub mentioned this issue Jun 8, 2024
evhub added a commit that referenced this issue Jun 9, 2024
See Coconut's
[documentation](http://coconut.readthedocs.io/en/develop/DOCS.html) for
more information on all of the features listed below.

Language features:
* #833: New `case def` syntax for more easily defining pattern-matching
functions with many patterns.
* #811: New `f(name=)` syntax as a shorthand for `f(name=name)`,
replacing the now deprecated `f(...=name)` syntax.
* #836: New `CoconutWarning` built-in used for Coconut runtime warnings.

Compiler features:
* #837: Coconut will now warn about implicit string concatenation and
disable it completely with `--strict`.
* #718: Coconut will now warn about use of `addpattern def` without a
prior `match def`. This was a previously-supported feature to make
pattern-matching functions with many patterns easier to write, but the
new recommended way to do that is now via `case def`.
* #785: Initial [pyright](https://github.com/microsoft/pyright) support
via the `--pyright` flag.

Bugfixes:
* #839, #840: Fixed some f-string parsing issues.
* #834: Fixed `len` of empty `zip` objects.
* #830: Improved use of colored output.
* #757: Improved PEP 695 support on Python 3.12.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants