Releases: Argmaster/pygerber
Releases · Argmaster/pygerber
Pre-Release 3.0.0a3
- Removed legacy error types from
pygerber.gerber.api._errors
. - Removed
pygerber.common.general_model
module. - Removed
pygerber.common.immutable_map_model
module. - Removed
pygerber.common.rgba
module. - Rename
Project
class frompygerber.gerber.api
toCompositeView
. - Changed
source_code
andfile_type
attributes ofGerberFile
to be read-only. - Changed return type of
CompositeView.render_with_pillow
toCompositePillowImage
.
Interface ofCompositePillowImage
is the same as previouslyCompositeView
. - Changed miniatures displayed by language server to be fixed size due to repeating
problems with apertures being too small or too large. - Added custom
__str__
toCompositeView
andGerberFile
classes. - Added
GerberJobFile
class for handling.gbrjob
files. - Added
Project
class for grouping multipleCompositeView
objects. - Added documentation for
GerberJobFile
andProject
classes. - Added
pygerber.vm.shapely
package containing implementation of Gerber vm (renderer)
using shapely library. - Added
render_with_shapely
toGerberFile
class. - Updated
Quick start
guide. - Updated many of docstrings in
pygerber.gerber.api
package. - Restored
pygerber_language_server
command.
Pre-Release 3.0.0a2
- Removed
Parser2
and related infrastructure. It was already replaced byParser
in
previous release, but I didn't have time to make sure all of dependencies were gone. - Removed most of the old documentation.
- Moved
pygerber.gerberx3
topygerber.gerber
. I acknowledge this is a breaking
change, but usinggerberx3
as a package name when it in fact contained code mostly
compatible with more than just X3 was misleading. - Moved
pygerber.gerber.ast.builder
topygerber.builder.gerber
. - Moved
pygerber.vm.builder
topygerber.builder.rvmc
. - Added new documentation layout.
- Added documentation for
GerberX3Builder
frompygerber.builder.gerber
module. - Added
Quick start
guide to documentation. - Added
pygerber.gerber.pygments
, a Pygments lexer for Gerber files. To use it you
have to installpygments
extras package (or just have pygments installed from other
source). - Added support for deprecated syntax construct of
D01
with code omitted. - Changed
pygerber.gerber.formatter
API and structure. Formatter options are no longer
directly passed toFormatter
class, they are stored in dedicatedOptions
class. - Added 2 high level formatter API functions available in
pygerber.gerber.formatter
:
format
,formats
. - Improved docstrings in
pygerber.builder.gerber
- Improved
pygerber.gerber.formatter
docstrings, especially ones related to formatter
options. - Changed
pygerber.gerber.api
to usepygerber.builder.gerber
. This is a major change
in how this API works. I am planning to create some guide on how to migrate code from
PyGerber 2.4.x to 3.x.x, there is placeholder docs page for that. - Deleted implementation of command line interface. Unfortunately, command line
interface is not functional right now.
Pre-Release 3.0.0a0
- Added
pygerber.gerberx3.formatter
for formatting Gerber files. - Added
GerberX3Builder
class for building Gerber code from scratch. - Redesigned PyGerber Parser implementation and AST classes.
- Added intermediate step between parsing and rendering done by
pygerber.gerberx3.compiler
. - Redesigned rendering principles, now implemented in
pygerber.vm
, supports only
rendering raster images with Pillow. SVG rendering is planned to be included in 3.0.0
release. - Ported language server to new parser.
Release 2.4.1
Release 2.4.0
- Added command line interface utilizing API V2 for rendering Gerber files to images.
This includes interface for rendering PNG, JPEG and SVG images and multi-file projects
to single PNG/JPEG image. - Added support for inferring file type from file extension or
.FileFunction
file
attribute. This mechanism is used by default by API V2 based command line interface. - Refactored test suite and dropped testing of code related to
Parser
class originally
included inPyGerber
2.0.0. Currently onlyParser2
related code is actively
tested.
Release 2.3.2
- Fixed clockwise arc rendering in raster renderer. Reported by @tgbl-mk (#203). Fixed
by @Argmaster in #205. - Fixed empty comment parsing. Reported by @lookme2 (#198). Fixed by @Argmaster in #201.
- Disabled MacOS test suite due to consistent failures during Python installation on
macos-latest
GitHub hosted machines.
Release 2.3.1
- Added support for rotation of code 21 center line macro primitive in SVG and Raster
renderers. Support is not exhaustive, it will be extended whenever extension is
requested by users. - Fixed bug causing macro flashes to be partially cut off in images rendered with SVG
renderer. - Fixed incorrect version string in
pygerber.__version__
and reported by
pygerber --version
.
Release 2.3.0
- Added full support for transforms (LP, LM, LR, LS commands) in Parser2.
- Fixed titles in Parser2 and Parser feature support documentation. They were swapped.
- Fixed bug causing SvgRenderer2 to incorrectly render masks in some cases.
- Optimized SvgRenderer2 group and mask usage to reduce file size and memory usage of
software displaying output SVGs. - Fixed parsing of attributes without value.
- Updated documentation to mention deprecation of API V1 elements and changed order of
pages to better expose API V2. - Added example files shipped with PyGerber for testing and demonstration purposes. They
can be accessed viapygerber.examples
module. - Added new
pygerber.gerberx3.api.v2
module with new high level utilizing API V2
capabilities. This module is mend to replace API V1 in future releases. - Added new API for rendering multiple Gerber files at once into single image. Available
as part ofpygerber.gerberx3.api.v2
module with use ofProject
class.
Release 2.2.1
- Fixed rendering of first macro flash.
- Added reference page for SvgRenderer2 in docs.
- Fixed duplicated element prefixes in docs.
- Fixed supported feature counts in docs.
- Updated
README.md
feature support links.
Release 2.2.0
- Added alternative parser implementation,
pygerber.gerberx3.parser2.parser2.Parser2
class. - Added introspection interface based on new Parser2 class.
- Added macro support to Parser2 class which was not previously available in Parser
class. - Added API for customizing Token classes used by Tokenizer.
Tokenizer
class now
accepts optionaloptions
parameter of classTokenizerOptions
. - Added documentation for introspection.
- Added experimental SVG backend for Gerber code with Parser2 generated command buffers.
- Changed documentation layout to improve readability.
- Fixed switching to single quadrant mode being ignored.
- Refactored feature support documentation.