format-docstring 0.1.2__tar.gz → 0.1.3__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 (93) hide show
  1. {format_docstring-0.1.2 → format_docstring-0.1.3}/.pre-commit-config.yaml +1 -1
  2. {format_docstring-0.1.2 → format_docstring-0.1.3}/CHANGELOG.md +7 -0
  3. {format_docstring-0.1.2 → format_docstring-0.1.3}/PKG-INFO +10 -4
  4. {format_docstring-0.1.2 → format_docstring-0.1.3}/README.md +9 -3
  5. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/line_wrap_numpy.py +1 -1
  6. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring.egg-info/PKG-INFO +10 -4
  7. {format_docstring-0.1.2 → format_docstring-0.1.3}/pyproject.toml +1 -1
  8. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/single_line_docstring.txt +22 -0
  9. {format_docstring-0.1.2 → format_docstring-0.1.3}/.github/workflows/python-package.yml +0 -0
  10. {format_docstring-0.1.2 → format_docstring-0.1.3}/.github/workflows/python-publish.yml +0 -0
  11. {format_docstring-0.1.2 → format_docstring-0.1.3}/.gitignore +0 -0
  12. {format_docstring-0.1.2 → format_docstring-0.1.3}/.pre-commit-hooks.yaml +0 -0
  13. {format_docstring-0.1.2 → format_docstring-0.1.3}/CLAUDE.md +0 -0
  14. {format_docstring-0.1.2 → format_docstring-0.1.3}/LICENSE +0 -0
  15. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/__init__.py +0 -0
  16. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/base_fixer.py +0 -0
  17. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/config.py +0 -0
  18. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/docstring_rewriter.py +0 -0
  19. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/line_wrap_google.py +0 -0
  20. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/line_wrap_utils.py +0 -0
  21. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/main_jupyter.py +0 -0
  22. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring/main_py.py +0 -0
  23. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring.egg-info/SOURCES.txt +0 -0
  24. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring.egg-info/dependency_links.txt +0 -0
  25. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring.egg-info/entry_points.txt +0 -0
  26. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring.egg-info/requires.txt +0 -0
  27. {format_docstring-0.1.2 → format_docstring-0.1.3}/format_docstring.egg-info/top_level.txt +0 -0
  28. {format_docstring-0.1.2 → format_docstring-0.1.3}/muff.toml +0 -0
  29. {format_docstring-0.1.2 → format_docstring-0.1.3}/requirements.dev +0 -0
  30. {format_docstring-0.1.2 → format_docstring-0.1.3}/setup.cfg +0 -0
  31. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/__init__.py +0 -0
  32. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/helpers.py +0 -0
  33. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_config.py +0 -0
  34. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/README.md +0 -0
  35. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/colon_spacing_fix.txt +0 -0
  36. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/contents_that_are_not_wrapped.txt +0 -0
  37. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/default_value_standardization.txt +0 -0
  38. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/empty_lines_are_respected.txt +0 -0
  39. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/existing_linebreaks_should_not_be_respected.txt +0 -0
  40. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/four_level_nested_classes.txt +0 -0
  41. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/indent_four_levels_16_spaces_width_10.txt +0 -0
  42. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/indent_misaligned_all.txt +0 -0
  43. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/indent_two_levels_8_spaces.txt +0 -0
  44. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/line_length_2.txt +0 -0
  45. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/mismatched_underlines.txt +0 -0
  46. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/mismatched_underlines_one_dash.txt +0 -0
  47. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/mismatched_underlines_two_dashes.txt +0 -0
  48. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/module_level_docstring.txt +0 -0
  49. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/new_lines_before_and_after.txt +0 -0
  50. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/param_signature_without_type.txt +0 -0
  51. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/parameters_returns_raises_wrapping.txt +0 -0
  52. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/returns_signature_and_description.txt +0 -0
  53. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/section_title_fixed.txt +0 -0
  54. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/sections_notes_examples.txt +0 -0
  55. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/signature_line_is_not_wrapped.txt +0 -0
  56. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/texts_are_rewrapped.txt +0 -0
  57. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/end_to_end/numpy/very_long_unbreakable_word.txt +0 -0
  58. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/integration_test/numpy/after.ipynb +0 -0
  59. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/integration_test/numpy/after.py +0 -0
  60. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/integration_test/numpy/after_50.ipynb +0 -0
  61. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/integration_test/numpy/after_50.py +0 -0
  62. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/integration_test/numpy/before.ipynb +0 -0
  63. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/integration_test/numpy/before.py +0 -0
  64. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/README.md +0 -0
  65. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/colon_spacing_fix.txt +0 -0
  66. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/contents_that_are_not_wrapped.txt +0 -0
  67. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/default_value_standardization.txt +0 -0
  68. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/empty_lines_are_respected.txt +0 -0
  69. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/existing_linebreaks_should_not_be_respected.txt +0 -0
  70. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/indent_four_levels_16_spaces_width_10.txt +0 -0
  71. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/indent_two_levels_8_spaces.txt +0 -0
  72. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/line_length_2.txt +0 -0
  73. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/mismatched_underlines.txt +0 -0
  74. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/mismatched_underlines_one_dash.txt +0 -0
  75. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/mismatched_underlines_two_dashes.txt +0 -0
  76. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/module_level_docstring.txt +0 -0
  77. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/param_signature_without_type.txt +0 -0
  78. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/parameters_returns_raises_wrapping.txt +0 -0
  79. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/returns_signature_and_description.txt +0 -0
  80. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/section_title_fixed.txt +0 -0
  81. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/sections_notes_examples.txt +0 -0
  82. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/signature_line_is_not_wrapped.txt +0 -0
  83. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/texts_are_rewrapped.txt +0 -0
  84. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/line_wrap/numpy/very_long_unbreakable_word.txt +0 -0
  85. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_data/playground.py +0 -0
  86. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_docstring_rewriter.py +0 -0
  87. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_line_wrap_google.py +0 -0
  88. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_line_wrap_numpy.py +0 -0
  89. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_line_wrap_utils.py +0 -0
  90. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_main_jupyter.py +0 -0
  91. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_main_py.py +0 -0
  92. {format_docstring-0.1.2 → format_docstring-0.1.3}/tests/test_playground.py +0 -0
  93. {format_docstring-0.1.2 → format_docstring-0.1.3}/tox.ini +0 -0
@@ -37,6 +37,6 @@ repos:
37
37
  args: [--wrap, '79', --number]
38
38
  additional_dependencies: [mdformat-tables]
39
39
  - repo: https://github.com/jsh9/markdown-toc-creator
40
- rev: 0.0.10
40
+ rev: 0.0.11
41
41
  hooks:
42
42
  - id: markdown-toc-creator
@@ -6,6 +6,13 @@ The format is based on
6
6
  [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
7
7
  adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
8
8
 
9
+ ## [0.1.3] - 2025-10-12
10
+
11
+ - Fixed
12
+ - A bug in counting line length for single-line docstrings
13
+ - Full diff
14
+ - https://github.com/jsh9/format-docstring/compare/0.1.2...0.1.3
15
+
9
16
  ## [0.1.2] - 2025-10-08
10
17
 
11
18
  - Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: format-docstring
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: A Python formatter to wrap/adjust docstring lines
5
5
  Author-email: jsh9 <25124332+jsh9@users.noreply.github.com>
6
6
  Maintainer-email: jsh9 <25124332+jsh9@users.noreply.github.com>
@@ -109,7 +109,8 @@ def example_function(param1, param2, option='default'):
109
109
 
110
110
  Examples
111
111
  --------
112
- Code examples with >>> prompts are preserved without wrapping:
112
+ Within the "Examples" section, code with >>> prompts are preserved without
113
+ wrapping:
113
114
 
114
115
  >>> result = example_function('test', 42, option='custom_value_with_a_very_long_name_that_exceeds_line_length')
115
116
  >>> print(result)
@@ -124,12 +125,17 @@ def example_function(param1, param2, option='default'):
124
125
  Params Yes Signature lines preserved
125
126
  =========== ================== ===============================
126
127
 
127
- Content following double colons (::) is preserved::
128
+ Contents following double colons (`::`) are preserved::
128
129
 
129
130
  P(B|A) P(A)
130
- P(A|B) = ---------------
131
+ P(A|B) = -------------
131
132
  P(B)
132
133
 
134
+ Even if there isn't an extra blank line after `::`, the contents are still
135
+ preserved::
136
+ _______
137
+ σ = √ Var(X)
138
+
133
139
  Regular bullet lists are also preserved:
134
140
 
135
141
  - First bullet point that is intentionally long but not wrapped
@@ -76,7 +76,8 @@ def example_function(param1, param2, option='default'):
76
76
 
77
77
  Examples
78
78
  --------
79
- Code examples with >>> prompts are preserved without wrapping:
79
+ Within the "Examples" section, code with >>> prompts are preserved without
80
+ wrapping:
80
81
 
81
82
  >>> result = example_function('test', 42, option='custom_value_with_a_very_long_name_that_exceeds_line_length')
82
83
  >>> print(result)
@@ -91,12 +92,17 @@ def example_function(param1, param2, option='default'):
91
92
  Params Yes Signature lines preserved
92
93
  =========== ================== ===============================
93
94
 
94
- Content following double colons (::) is preserved::
95
+ Contents following double colons (`::`) are preserved::
95
96
 
96
97
  P(B|A) P(A)
97
- P(A|B) = ---------------
98
+ P(A|B) = -------------
98
99
  P(B)
99
100
 
101
+ Even if there isn't an extra blank line after `::`, the contents are still
102
+ preserved::
103
+ _______
104
+ σ = √ Var(X)
105
+
100
106
  Regular bullet lists are also preserved:
101
107
 
102
108
  - First bullet point that is intentionally long but not wrapped
@@ -377,7 +377,7 @@ def handle_single_line_docstring(
377
377
  if '\n' in whole_docstring_literal: # multi-line: do not handle
378
378
  return whole_docstring_literal
379
379
 
380
- if docstring_ending_col >= line_length: # whole docstring exceeds limit
380
+ if docstring_ending_col > line_length: # whole docstring exceeds limit
381
381
  num_leading_indent: int = docstring_starting_col
382
382
  parts: list[str] = whole_docstring_literal.split(docstring_content)
383
383
  prefix: str = parts[0]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: format-docstring
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: A Python formatter to wrap/adjust docstring lines
5
5
  Author-email: jsh9 <25124332+jsh9@users.noreply.github.com>
6
6
  Maintainer-email: jsh9 <25124332+jsh9@users.noreply.github.com>
@@ -109,7 +109,8 @@ def example_function(param1, param2, option='default'):
109
109
 
110
110
  Examples
111
111
  --------
112
- Code examples with >>> prompts are preserved without wrapping:
112
+ Within the "Examples" section, code with >>> prompts are preserved without
113
+ wrapping:
113
114
 
114
115
  >>> result = example_function('test', 42, option='custom_value_with_a_very_long_name_that_exceeds_line_length')
115
116
  >>> print(result)
@@ -124,12 +125,17 @@ def example_function(param1, param2, option='default'):
124
125
  Params Yes Signature lines preserved
125
126
  =========== ================== ===============================
126
127
 
127
- Content following double colons (::) is preserved::
128
+ Contents following double colons (`::`) are preserved::
128
129
 
129
130
  P(B|A) P(A)
130
- P(A|B) = ---------------
131
+ P(A|B) = -------------
131
132
  P(B)
132
133
 
134
+ Even if there isn't an extra blank line after `::`, the contents are still
135
+ preserved::
136
+ _______
137
+ σ = √ Var(X)
138
+
133
139
  Regular bullet lists are also preserved:
134
140
 
135
141
  - First bullet point that is intentionally long but not wrapped
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "format-docstring"
7
- version = "0.1.2"
7
+ version = "0.1.3"
8
8
  description = "A Python formatter to wrap/adjust docstring lines"
9
9
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -25,6 +25,16 @@ def func3():
25
25
  """
26
26
  pass
27
27
 
28
+
29
+ def func4():
30
+ """This line has the right number of chars that it does not exceed limit"""
31
+ pass
32
+
33
+
34
+ def func5():
35
+ r"""This line has the right number of chars that it exceeds limit by 1..."""
36
+ pass
37
+
28
38
  **********
29
39
  def func1():
30
40
  """
@@ -53,3 +63,15 @@ def func3():
53
63
  This line is already formatted so we should not re-wrap it.
54
64
  """
55
65
  pass
66
+
67
+
68
+ def func4():
69
+ """This line has the right number of chars that it does not exceed limit"""
70
+ pass
71
+
72
+
73
+ def func5():
74
+ r"""
75
+ This line has the right number of chars that it exceeds limit by 1...
76
+ """
77
+ pass