token-utils 0.2.0__tar.gz → 0.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. {token_utils-0.2.0 → token_utils-0.2.2}/PKG-INFO +1 -1
  2. token_utils-0.2.2/src/token_utils/__about__.py +2 -0
  3. {token_utils-0.2.0 → token_utils-0.2.2}/src/token_utils/py_tokenize.py +0 -13
  4. {token_utils-0.2.0 → token_utils-0.2.2}/src/token_utils/token_class.py +6 -0
  5. {token_utils-0.2.0 → token_utils-0.2.2}/src/token_utils/utils.py +2 -0
  6. {token_utils-0.2.0 → token_utils-0.2.2}/tests/test_token_utils.py +17 -0
  7. token_utils-0.2.0/src/token_utils/__about__.py +0 -2
  8. {token_utils-0.2.0 → token_utils-0.2.2}/.flake8 +0 -0
  9. {token_utils-0.2.0 → token_utils-0.2.2}/.gitignore +0 -0
  10. {token_utils-0.2.0 → token_utils-0.2.2}/.idea/.gitignore +0 -0
  11. {token_utils-0.2.0 → token_utils-0.2.2}/.idea/inspectionProfiles/profiles_settings.xml +0 -0
  12. {token_utils-0.2.0 → token_utils-0.2.2}/.idea/modules.xml +0 -0
  13. {token_utils-0.2.0 → token_utils-0.2.2}/.idea/token-utils.iml +0 -0
  14. {token_utils-0.2.0 → token_utils-0.2.2}/.idea/vcs.xml +0 -0
  15. {token_utils-0.2.0 → token_utils-0.2.2}/.idea/workspace.xml +0 -0
  16. {token_utils-0.2.0 → token_utils-0.2.2}/.nojekyll +0 -0
  17. {token_utils-0.2.0 → token_utils-0.2.2}/LICENSE +0 -0
  18. {token_utils-0.2.0 → token_utils-0.2.2}/README.md +0 -0
  19. {token_utils-0.2.0 → token_utils-0.2.2}/ae.bat +0 -0
  20. {token_utils-0.2.0 → token_utils-0.2.2}/docs/Makefile +0 -0
  21. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/about_tokens.doctree +0 -0
  22. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/api.doctree +0 -0
  23. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/environment.pickle +0 -0
  24. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/history.doctree +0 -0
  25. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/index.doctree +0 -0
  26. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/nbsphinx/tokenize_notebook.ipynb +0 -0
  27. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/tokenize.doctree +0 -0
  28. {token_utils-0.2.0 → token_utils-0.2.2}/docs/doctrees/tokenize_notebook.doctree +0 -0
  29. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/.buildinfo +0 -0
  30. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/.buildinfo.bak +0 -0
  31. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/.nojekyll +0 -0
  32. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_modules/ideas/token_utils.html +0 -0
  33. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_modules/index.html +0 -0
  34. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_modules/token_utils/_token_utils.html +0 -0
  35. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_modules/token_utils/token_class.html +0 -0
  36. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_modules/token_utils/utils.html +0 -0
  37. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_sources/about_tokens.rst.txt +0 -0
  38. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_sources/api.rst.txt +0 -0
  39. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_sources/history.rst.txt +0 -0
  40. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_sources/index.rst.txt +0 -0
  41. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_sources/tokenize.rst.txt +0 -0
  42. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_sources/tokenize_notebook.ipynb.txt +0 -0
  43. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/_sphinx_javascript_frameworks_compat.js +0 -0
  44. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/basic.css +0 -0
  45. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/badge_only.css +0 -0
  46. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff +0 -0
  47. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/Roboto-Slab-Bold.woff2 +0 -0
  48. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff +0 -0
  49. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/Roboto-Slab-Regular.woff2 +0 -0
  50. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/fontawesome-webfont.eot +0 -0
  51. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/fontawesome-webfont.svg +0 -0
  52. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/fontawesome-webfont.ttf +0 -0
  53. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/fontawesome-webfont.woff +0 -0
  54. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/fontawesome-webfont.woff2 +0 -0
  55. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-bold-italic.woff +0 -0
  56. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-bold-italic.woff2 +0 -0
  57. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-bold.woff +0 -0
  58. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-bold.woff2 +0 -0
  59. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-normal-italic.woff +0 -0
  60. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-normal-italic.woff2 +0 -0
  61. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-normal.woff +0 -0
  62. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/fonts/lato-normal.woff2 +0 -0
  63. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/css/theme.css +0 -0
  64. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/custom.css +0 -0
  65. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/doctools.js +0 -0
  66. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/documentation_options.js +0 -0
  67. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/file.png +0 -0
  68. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Inconsolata-Bold.ttf +0 -0
  69. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Inconsolata-Regular.ttf +0 -0
  70. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Inconsolata.ttf +0 -0
  71. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bold.eot +0 -0
  72. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bold.ttf +0 -0
  73. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bold.woff +0 -0
  74. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bold.woff2 +0 -0
  75. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bolditalic.eot +0 -0
  76. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bolditalic.ttf +0 -0
  77. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bolditalic.woff +0 -0
  78. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-bolditalic.woff2 +0 -0
  79. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-italic.eot +0 -0
  80. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-italic.ttf +0 -0
  81. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-italic.woff +0 -0
  82. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-italic.woff2 +0 -0
  83. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-regular.eot +0 -0
  84. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-regular.ttf +0 -0
  85. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-regular.woff +0 -0
  86. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato/lato-regular.woff2 +0 -0
  87. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato-Bold.ttf +0 -0
  88. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/Lato-Regular.ttf +0 -0
  89. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot +0 -0
  90. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf +0 -0
  91. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff +0 -0
  92. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 +0 -0
  93. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot +0 -0
  94. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf +0 -0
  95. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff +0 -0
  96. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 +0 -0
  97. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab-Bold.ttf +0 -0
  98. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/RobotoSlab-Regular.ttf +0 -0
  99. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/fontawesome-webfont.eot +0 -0
  100. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/fontawesome-webfont.svg +0 -0
  101. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/fontawesome-webfont.ttf +0 -0
  102. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/fontawesome-webfont.woff +0 -0
  103. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/fonts/fontawesome-webfont.woff2 +0 -0
  104. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/jquery-3.2.1.js +0 -0
  105. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/jquery.js +0 -0
  106. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/js/badge_only.js +0 -0
  107. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/js/modernizr.min.js +0 -0
  108. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/js/theme.js +0 -0
  109. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/js/versions.js +0 -0
  110. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/language_data.js +0 -0
  111. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/minus.png +0 -0
  112. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/nbsphinx-broken-thumbnail.svg +0 -0
  113. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/nbsphinx-code-cells.css +0 -0
  114. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/nbsphinx-gallery.css +0 -0
  115. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/nbsphinx-no-thumbnail.svg +0 -0
  116. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/plus.png +0 -0
  117. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/pygments.css +0 -0
  118. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/searchtools.js +0 -0
  119. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/sphinx_highlight.js +0 -0
  120. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/underscore-1.3.1.js +0 -0
  121. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/_static/underscore.js +0 -0
  122. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/about_tokens.html +0 -0
  123. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/api.html +0 -0
  124. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/genindex.html +0 -0
  125. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/history.html +0 -0
  126. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/index.html +0 -0
  127. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/objects.inv +0 -0
  128. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/py-modindex.html +0 -0
  129. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/search.html +0 -0
  130. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/searchindex.js +0 -0
  131. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/tokenize.html +0 -0
  132. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/tokenize_notebook.html +0 -0
  133. {token_utils-0.2.0 → token_utils-0.2.2}/docs/html/tokenize_notebook.ipynb +0 -0
  134. {token_utils-0.2.0 → token_utils-0.2.2}/docs/make.bat +0 -0
  135. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/_static/custom.css +0 -0
  136. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/about_tokens.rst +0 -0
  137. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/api.rst +0 -0
  138. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/conf.py +0 -0
  139. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/history.rst +0 -0
  140. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/index.rst +0 -0
  141. {token_utils-0.2.0 → token_utils-0.2.2}/docs/source/tokenize_notebook.ipynb +0 -0
  142. {token_utils-0.2.0 → token_utils-0.2.2}/pypi_upload.bat +0 -0
  143. {token_utils-0.2.0 → token_utils-0.2.2}/pyproject.toml +0 -0
  144. {token_utils-0.2.0 → token_utils-0.2.2}/src/token_utils/__init__.py +0 -0
  145. {token_utils-0.2.0 → token_utils-0.2.2}/src/token_utils/py_token.py +0 -0
  146. {token_utils-0.2.0 → token_utils-0.2.2}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: token-utils
3
- Version: 0.2.0
3
+ Version: 0.2.2
4
4
  Summary: Convenient tools to deal with tokens.
5
5
  Project-URL: Documentation, https://aroberge.github.io/token-utils/docs/html/
6
6
  Project-URL: Issues, https://github.com/aroberge/token-utils/issues
@@ -0,0 +1,2 @@
1
+ version = "0.2.2"
2
+ name = "token_utils"
@@ -565,20 +565,7 @@ def _tokenize(readline, encoding):
565
565
  )
566
566
  pos += 1
567
567
 
568
- # Add an implicit NEWLINE if the input doesn't end in one
569
568
  if not unterminated_triple:
570
- if (
571
- last_line
572
- and last_line[-1] not in "\r\n"
573
- and not last_line.strip().startswith("#")
574
- ):
575
- yield TokenInfo(
576
- NEWLINE,
577
- last_line,
578
- (lnum - 1, len(last_line)),
579
- (lnum - 1, len(last_line) + 1),
580
- last_line,
581
- )
582
569
  yield TokenInfo(ENDMARKER, "", (lnum, 0), (lnum, 0), "")
583
570
 
584
571
 
@@ -115,6 +115,12 @@ class Token:
115
115
  """Returns true if the token is of type OP"""
116
116
  return self.type == py_tokenize.OP
117
117
 
118
+ def is_significant(self):
119
+ """Returns True if the token is not a comment nor any token
120
+ whose string value is either null or consists of spaces, newline
121
+ or tab characters."""
122
+ return not self.is_comment() and self.string.strip()
123
+
118
124
  def is_space(self):
119
125
  """Returns True if the token indicates a change in indentation,
120
126
  the end of a line, or the end of the source
@@ -23,6 +23,7 @@ def fix_empty_line(source, prev_token, last_token):
23
23
 
24
24
  we correct the last token content if needed.
25
25
  """
26
+ print(f"{last_token=}")
26
27
  if prev_token is None: # should not happen
27
28
  return last_token
28
29
  if prev_token.line.endswith((" ", "\t")): # fix not needed
@@ -36,6 +37,7 @@ def fix_empty_line(source, prev_token, last_token):
36
37
  break
37
38
  last_token.string = source[-nb:]
38
39
  assert nb > 0
40
+ print(f"Fix applied {last_token=}")
39
41
  return last_token
40
42
 
41
43
 
@@ -91,6 +91,23 @@ def test_bad_dedent():
91
91
  """
92
92
  check(source)
93
93
 
94
+ def test_problematic_newline():
95
+ """When modifying Python's tokenize, I accidently added a
96
+ string attribute to "NEWLINE" token. This test is to
97
+ ensure that this does not happen again!
98
+ """
99
+ source = "2n"
100
+ assert token_utils.untokenize(token_utils.tokenize(source)) == source
101
+ #
102
+ # test inserting non-token
103
+ tokens = token_utils.tokenize(source)
104
+ new_tokens = []
105
+ for tok in tokens:
106
+ new_tokens.append(tok)
107
+ if tok.is_number():
108
+ new_tokens.append("*")
109
+ assert token_utils.untokenize(new_tokens) == "2*n"
110
+
94
111
 
95
112
  source1 = "a = b"
96
113
  source2 = "a = b # comment\n"
@@ -1,2 +0,0 @@
1
- version = "0.2.0"
2
- name = "token_utils"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes