Skip to content

Releases: Argmaster/pygerber

Pre-Release 3.0.0a3

13 Oct 01:01
Compare
Choose a tag to compare
Pre-Release 3.0.0a3 Pre-release
Pre-release
  • 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 from pygerber.gerber.api to CompositeView.
  • Changed source_code and file_type attributes of GerberFile to be read-only.
  • Changed return type of CompositeView.render_with_pillow to CompositePillowImage.
    Interface of CompositePillowImage is the same as previously CompositeView.
  • 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__ to CompositeView and GerberFile classes.
  • Added GerberJobFile class for handling .gbrjob files.
  • Added Project class for grouping multiple CompositeView objects.
  • Added documentation for GerberJobFile and Project classes.
  • Added pygerber.vm.shapely package containing implementation of Gerber vm (renderer)
    using shapely library.
  • Added render_with_shapely to GerberFile class.
  • Updated Quick start guide.
  • Updated many of docstrings in pygerber.gerber.api package.
  • Restored pygerber_language_server command.

Pre-Release 3.0.0a2

30 Sep 01:57
Compare
Choose a tag to compare
Pre-Release 3.0.0a2 Pre-release
Pre-release
  • Removed Parser2 and related infrastructure. It was already replaced by Parser 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 to pygerber.gerber. I acknowledge this is a breaking
    change, but using gerberx3 as a package name when it in fact contained code mostly
    compatible with more than just X3 was misleading.
  • Moved pygerber.gerber.ast.builder to pygerber.builder.gerber.
  • Moved pygerber.vm.builder to pygerber.builder.rvmc.
  • Added new documentation layout.
  • Added documentation for GerberX3Builder from pygerber.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 install pygments 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 to Formatter class, they are stored in dedicated Options 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 use pygerber.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

21 Sep 12:37
Compare
Choose a tag to compare
Pre-Release 3.0.0a0 Pre-release
Pre-release
  • 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

11 Aug 13:15
Compare
Choose a tag to compare
  • Added support for comment based attributes (#217)
  • Fixed incorrect rotation of rectangle flashes (#243)
  • Removed PyYAML dependency (#221)
  • Added tests for language server (#227)
  • Added tests for console interface (#223)

Release 2.4.0

08 Jun 12:36
02e8735
Compare
Choose a tag to compare
  • 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 in PyGerber 2.0.0. Currently only Parser2 related code is actively
    tested.

Release 2.3.2

30 May 10:02
38c3512
Compare
Choose a tag to compare
  • 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

18 Apr 23:52
be342e9
Compare
Choose a tag to compare
  • 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

11 Apr 23:52
faeec6d
Compare
Choose a tag to compare
  • 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 via pygerber.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 of pygerber.gerberx3.api.v2 module with use of Project class.

Release 2.2.1

27 Jan 02:35
ea140b6
Compare
Choose a tag to compare
  • 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

23 Jan 21:34
bd8cbae
Compare
Choose a tag to compare
  • 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 optional options parameter of class TokenizerOptions.
  • 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.