diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 0000000..f693b85 --- /dev/null +++ b/noxfile.py @@ -0,0 +1,13 @@ +from typing import TYPE_CHECKING + +import nox + + +if TYPE_CHECKING: + from nox.sessions import Session + +python_versions = ["3.9", "3.10", "3.11", "3.12", "3.13"] + +@nox.session(python=python_versions, reuse_venv=True) +def tests(session: "Session") -> None: + _ = session.run("python", "snippets/2_tricky_strings.py") diff --git a/snippets/2_tricky_strings.py b/snippets/2_tricky_strings.py new file mode 100644 index 0000000..ac94bc1 --- /dev/null +++ b/snippets/2_tricky_strings.py @@ -0,0 +1,31 @@ +# 1 +assert id("some_string") == id("some" + "_" + "string") +assert id("some_string") == id("some_string") + +# 2 +a = "wtf" +b = "wtf" +assert a is b + +a = "wtf!" +b = "wtf!" +# True because it is invoked in script. Might be False in python shell or ipython +assert a is b + +# 3 +a, b = "wtf!", "wtf!" +assert a is b + +a = "wtf!"; b = "wtf!" # noqa: E702 - multiline statement +# True because it is invoked in script. Might be False in python shell or ipython +assert a is b + +# 4 - not relevant for modern (>3.8) Python version, should be moved to `legacy` section +# a = 'a' * 20 +# b = 'aaaaaaaaaaaaaaaaaaaa' +# assert a is b +# +# a = 'a' * 21 +# b = 'aaaaaaaaaaaaaaaaaaaa' +# # Fails +# assert a is b diff --git a/snippets/__init__.py b/snippets/__init__.py new file mode 100644 index 0000000..e69de29