forked from regebro/svg.path
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGES.txt
241 lines (141 loc) · 6.18 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
Changelog
=========
6.3 (unreleased)
----------------
- Nothing changed yet.
6.2 (2022-06-17)
----------------
- Allow numbers with decimal point but no decimals, because other parsers do.
- Re-enabled the README.rst doctest, which got lost when switching to pytest
6.1 (2022-06-09)
----------------
- Not all path segments preserved the relative setting. [Lucas-C]
6.0 (2022-04-14)
----------------
- No functional changes from 6.0b1, only changes to tests.
6.0b1 (2022-04-02)
------------------
- Added new abstract base classes: PathSegment, and NonLinear. Also, Linear
is now derived from PathSegment, and may become abstract in the future.
- Added smooth support:
- CubicBezier and QuadraticBezier now has a "smooth" flag, that will be set
when parsing if the SVG path had a smooth segment.
- A path element will now only be designated as a smooth segment if it has
the smooth flag set. That means a path that *is* smooth but not parsed
from smooth (S and T) segments will not be represented as smooth.
The path segment must also be smooth, so if you parse a path with a
smooth segment, and modify it so it isn't smooth, it will not be
represented as smooth, regardless of the flag.
- CubicBezier and QuadraticBezier now has a "set_smooth_from" flag, that
will adjust the start point and first control point so that the curve is
smooth. It also sets the smooth flag.
- Added support to preserve vertical/horizontal commands.
- Refactored the generation of SVG path texts, each segment now generates its
own segment text, with a `_d(self, previous)` method.
5.1 (2022-03-23)
----------------
- Added SVG standard tests. [tatarize]
- Allow random characters to end parsing.
- #61: Fixed the length() calculations of nearly linear QuadradicBeziers.
[tatarize, regebro]
5.0.1 (2022-03-21)
------------------
- Two new test files were omitted from the distributions.
5.0.0 (2022-03-21)
------------------
- Drop Python 2 support, also 3.4 to 3.6. New minimum Python version is 3.7.
- New parser that solves the issue with Arc flags and whitespace.
See Issues #53 and #69.
- Fixed #60: Handle paths that are length 0 [Thanks to martinleopold and tatarize]
- New method on path objects: `.tangent(point)`, which returns a vector that is the
derivatative / tangent of the curve at that point. [vidstige]
- New graphical test. That test requires Pillow, so I stopped testing on PyPy, it
got too complicated to support. But it still works on PyPy.
4.1 (2021-02-16)
----------------
- Use collections.abc for ABC import to add Python 3.9 compatibility.
4.0.2 (2019-11-04)
------------------
- A solution for the setup.cfg [Alex Grönholm]
4.0.1 (2019-11-03)
------------------
else:
raise
- The pure setup.cfg config didn't work. All the tests pass fine,
but when installing the package somewhere else, nothing gets installed.
So I'm reverting that change for now.
4.0 (2019-11-02)
----------------
- Moved all the information from setup.py into setup.cfg.
- Added a Close() command which is different from a Line() command in
no way at all, to simplify the handling of closepath commands and subpaths.
- Path()'s no longer have a `closed` attribute.
- Now fully supports the SVG 1.1 "F.6.2 Out-of-range parameters" list.
- Uses circular maths to calculate the length of circular arcs,
more accurate and much faster.
3.1 (2019-10-25)
----------------
- The Move null command was not imported into ``__init__.py`` [blokhin]
- #41: Switched from ``pkg_resource``-style namespace
package for ``svg`` to a `pkgutil style
<https://packaging.python.org/guides/packaging-namespace-packages/#pkgutil-style-namespace-packages>`_
namespace package.
- A faster ``point()`` implementation for paths. [ClayJarCom]
- Dropped support for Python 2.6 and Python 3.3.
- Added support for Python 3.7 and 3.8.
3.0 (2018-08-14)
----------------
- Dropped support for Python 3.1 and 3.2. It still works, but it may stop.
Added support for Python 3.6. Dropped support for Jython, it's not
supported by Travis, and hasn't seen a release in over a year.
- #33: Move commands are now preserved when parsed.
- Subpaths are no longer merged even if they are joined.
- #30: Arcs where the endpoint is the same as the start point caused a crash.
The SVG specs say that it instead should be the equavalent of skipping
that section, which now is the case.
2.2 (2016-10-15)
----------------
- Don't add a line when closing a path if it's not needed.
2.1.1 (2016-02-28)
------------------
- #18: QuadraticBeziers could get a DivideByZero error under certain
circumstances. [MTician]
- Accept an error parameter to Path.point() to be able to
control error vs performance setting. [saschwarz]
- #25: Arc's could create a MathDomain error under certain circumstances.
- #17: Set last_command always.
2.0.1 (2015-10-17)
------------------
- #20: The doctext for the closed() setter was incorrect.
- #19: Fixed so tests didn't use relative paths. [danstender]
2.0 (2015-05-15)
----------------
- Nothing changed yet.
2.0b1 (2014-11-06)
------------------
- Added a Path.d() function to generate the Path's d attribute.
- Added is_smooth_from() on QubicBezier and QuadradicBezier.
- Path()'s now have a .closed property.
- Fixed the representation so it's parseable.
- The calculations for CubicBezier and Arc segments are now recursive,
and will end when a specific accuracy has been achieved.
This is somewhat faster for Arcs and somewhat slower for CubicBezier.
However, you can now specify an accuracy, so if you want faster but
looser calculations, you can have that.
- 't' segments (smooth, relative QuadraticBeziers) whose previous segment was
not a QuadraticBezier would get an incorrect control point.
1.2 (2014-11-01)
----------------
- New Quadradic Bezier implementation. [Justin Gruenberg]
- Solved issue #6: Z close path behavior. [abcjjy]
1.1 (2013-10-19)
----------------
- Floats with negative exponents work again.
- New tokenizer that is around 20 times faster.
1.0 (2013-05-28)
----------------
- Solved issue #2: Paths with negative values and no spaces didn't work.
[regebro]
1.0b1 (2013-02-03)
------------------
- Original release.