<p align="center">
<img width="400" src="https://github.com/Argmaster/pygerber/assets/56170852/b7aeb3e1-cd59-4f5b-b078-c01272461367" alt="" />
</p>
<h1 align="center"> PyGerber </h1>
<p align="center">
<a href="https://github.com/Argmaster/pygerber/releases/"><img src="https://img.shields.io/github/v/release/Argmaster/pygerber?style=flat" alt="GitHub release"></a>
<a href="https://github.com/Argmaster/pygerber/releases"><img src="https://img.shields.io/github/release-date/Argmaster/pygerber" alt="GitHub Release Date - Published_At"></a>
<a href="https://pypi.org/project/pygerber"><img src="https://img.shields.io/pypi/v/pygerber?style=flat" alt="PyPI release"></a>
<a href="https://pypi.org/project/pygerber/"><img src="https://img.shields.io/pypi/dm/pygerber.svg?label=PyPI%20downloads" alt="PyPI Downloads"></a>
<a href="https://pypi.org/project/pygerber"><img src="https://img.shields.io/pypi/pyversions/pygerber?style=flat" alt="Supported Python versions"></a>
<a href="https://pypi.org/project/pygerber"><img src="https://img.shields.io/pypi/implementation/pygerber?style=flat" alt="Supported Python implementations"></a>
<a href="https://github.com/argmaster/pygerber/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Argmaster/pygerber" alt="license_mit"></a>
<a href="https://codecov.io/gh/Argmaster/pygerber"><img src="https://codecov.io/gh/Argmaster/pygerber/branch/main/graph/badge.svg?token=VM09IHO13U" alt="coverage"></a>
<a href="https://img.shields.io/github/checks-status/Argmaster/pygerber/main"><img src="https://img.shields.io/github/checks-status/Argmaster/pygerber/main" alt="GitHub tag checks state"></a>
<a href="https://github.com/Argmaster/pygerber/pulls"><img src="https://img.shields.io/github/issues-pr/Argmaster/pygerber?style=flat" alt="Pull requests"></a>
<a href="https://github.com/Argmaster/pygerber/issues"><img src="https://img.shields.io/github/issues-raw/Argmaster/pygerber?style=flat" alt="Open issues"></a>
<a href="https://github.com/Argmaster/pygerber"><img src="https://img.shields.io/github/repo-size/Argmaster/pygerber" alt="GitHub repo size"></a>
<a href="https://github.com/Argmaster/pygerber"><img src="https://img.shields.io/github/languages/code-size/Argmaster/pygerber" alt="GitHub code size in bytes"></a>
<a href="https://github.com/Argmaster/pygerber"><img src="https://img.shields.io/github/stars/Argmaster/pygerber" alt="GitHub Repo stars"></a>
<a href="https://python-poetry.org/"><img src="https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json" alt="Poetry"></a>
<a href="https://github.com/psf/black"><img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style"></a>
</p>
PyGerber is a Python implementation of Gerber X3/X2 format. It is based on Ucamco's
`The Gerber Layer Format Specification. Revision 2023.03` (Available on
[Ucamco's webpage](https://www.ucamco.com/files/downloads/file_en/456/gerber-layer-format-specification-revision-2023-03_en.pdf)
and in
[this repository](https://github.com/Argmaster/pygerber/blob/main/docs/gerber_specification/gerber-layer-format-specification-revision-2023-03_en.pdf)).
The goal of this project is to provide support for wide variety of Gerber-like syntaxes,
with support for most of deprecated features along with support for modern ones.
<center><a href="https://argmaster.github.io/pygerber/stable"> 📚 See online documentation 📚 </a></center>
### Target set of tools:
- [x] Tokenizer
- [x] Parser
- [x] [Introspection API](https://argmaster.github.io/pygerber/stable/gerber/introspection/0_usage.html)
- [x] Rasterized 2D rendering engine (With
[Pillow](https://github.com/python-pillow/Pillow))
- [x] Vector 2D rendering engine (With [drawsvg](https://github.com/cduck/drawsvg))
- [x] Gerber X3/X2 Language Server (with `language-server` extras)
You can view progress of development in
[Gerber features support](#gerber-features-support) section down below. All Gerber
source files which can be redistributed under MIT license and included in this
repository for testing purposes will be greatly appreciated.
## Installation
PyGerber can be installed with `pip` from PyPI:
```
pip install pygerber
```
Alternatively, it is also possible to install it directly from repository:
```
pip install git+https://github.com/Argmaster/pygerber
```
## Command line usage
After installing `pygerber`, depending on your environment, it should become available
in your command line:
```bash
pygerber --version
```
Output should be similar to one below **⇩**, where `x.y.z` should match version of
PyGerber installed.
```
$ pygerber --version
pygerber, version x.y.z
```
Use `--help` to display help messages for individual commands:
```
pygerber render --help
```
To render 2D PNG image of some gerber file you can simply use:
```
pygerber render raster source.gbr -o output.png
```
Image will be saved to `output.png` in current working directory.
![example_pcb_image](https://github.com/Argmaster/pygerber/assets/56170852/9bca28bf-8aa6-4215-aac1-62c386490485)
For guide on how to render SVG images and multi-layer projects with CLI please refer to
PyGerber documentation.
## Programmatic usage
### JPG
PyGerber can be used programmatically to render Gerber files. Below is an minimalistic
example of how to render one of the example files included with PyGerber release to JPEG
image:
```python
from pygerber.examples import ExamplesEnum, get_example_path
from pygerber.gerberx3.api.v2 import GerberFile
GerberFile.from_file(
get_example_path(ExamplesEnum.UCAMCO_ex_2_Shapes),
).parse().render_raster("output.jpg")
```
Running code above will create `output.jpg` file in current working directory which
should look like this:
<p align="center">
<img height="400" src="https://github.com/Argmaster/pygerber/assets/56170852/d17ebee8-e851-4c86-b110-8cd8aeca993e">
</p>
### PNG
It is also possible to render Gerber files to PNG with custom resolution and different
color schemes:
```python
from pygerber.examples import ExamplesEnum, get_example_path
from pygerber.gerberx3.api.v2 import ColorScheme, GerberFile, PixelFormatEnum
GerberFile.from_file(
get_example_path(ExamplesEnum.ShapeFlashes),
).parse().render_raster(
"output.png",
dpmm=100,
color_scheme=ColorScheme.COPPER_ALPHA,
pixel_format=PixelFormatEnum.RGBA,
)
```
Code above renders following image:
<p align="center">
<img height="400" src="https://github.com/Argmaster/pygerber/assets/56170852/0a5a42f3-8792-4b9a-be61-bac12f0e1c03">
</p>
### SVG
Finally you can also create SVG files with PyGerber:
```python
from pygerber.examples import ExamplesEnum, load_example
from pygerber.gerberx3.api.v2 import GerberFile
source_code = load_example(ExamplesEnum.UCAMCO_ex_2_Shapes)
GerberFile.from_str(source_code).parse().render_svg("output.svg")
```
### Multiple layers
PyGerber can also render multiple layers to single image. Below is an example of how to
render four layers to single PNG image with use of `Project` class:
```python
from pygerber.examples import ExamplesEnum, load_example
from pygerber.gerberx3.api.v2 import FileTypeEnum, GerberFile, Project
Project(
[
GerberFile.from_str(
load_example(ExamplesEnum.simple_2layer_F_Cu),
FileTypeEnum.COPPER,
),
GerberFile.from_str(
load_example(ExamplesEnum.simple_2layer_F_Mask),
FileTypeEnum.MASK,
),
GerberFile.from_str(
load_example(ExamplesEnum.simple_2layer_F_Paste),
FileTypeEnum.PASTE,
),
GerberFile.from_str(
load_example(ExamplesEnum.simple_2layer_F_Silkscreen),
FileTypeEnum.SILK,
),
],
).parse().render_raster("output.png", dpmm=40)
```
Here is the result:
<p align="center">
<img width="400" src="https://github.com/Argmaster/pygerber/assets/56170852/9b3f3823-67b3-49f1-8c76-e2bddaca81fe">
</p>
### Advanced usage
Additionally to examples presented above which use high level API, PyGerber provides low
level API which allows to directly access PyGerber internals and change behavior of
parser, tokenizer and renderers. This can be used for code introspection and potentially
other purposed. Check out documentation for more information.
### Language Server
Since release 2.1.0 PyGerber provides Gerber X3/X2 Language Server with
[LSP](https://microsoft.github.io/language-server-protocol/) support. It can be enabled
by installing PyGerber extras set `language-server` with following command:
```
pip install pygerber[language-server]
```
Afterwards you can use `pygerber is-language-server-available` to check if language
server was correctly enabled. Please report all issues in
[PyGerber Issues](https://github.com/Argmaster/pygerber/issues) section.
You can utilize power of this language server with use of Visual Studio Code extension
[Gerber X3/X2 Format Support](https://marketplace.visualstudio.com/items?itemName=argmaster.gerber-x3-x2-format-support)
(`argmaster.gerber-x3-x2-format-support`).
## Documentation
Official documentations is hosted on Github Pages and can be found
[here](https://argmaster.github.io/pygerber/stable).
## Gerber features support
For detailed list of features which are supported/not supported by each tool please
refer to documentation:
- [Tokenizer](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/0_tokenizer.html),
- [Parser2](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/1_parser2.html),
- [RasterRenderer2](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/2_rasterrenderer2.html),
- [SvgRenderer2](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/3_svgrenderer2.html),
## Development
For development guidelines please visit documentation `Development` section
[here](https://argmaster.github.io/pygerber/stable).
## Gerber reference archive
This repository contains also archival reference files. Although new specs contain
dedicated changelog section it may still be helpful in some rare cases to look through
old Gerber specs. Archival files can be found
[here](https://github.com/Argmaster/pygerber/tree/main/docs/gerber_specification).
Raw data
{
"_id": null,
"home_page": "https://github.com/Argmaster/pygerber",
"name": "pygerber",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.8",
"maintainer_email": null,
"keywords": "gerber, pcb, embedded, images, x3",
"author": "Krzysztof Wisniewski",
"author_email": "argmaster.world@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a1/91/58938e268ab888d76df5b0e62ae2308f3a483b1d31c10716758a67e3d15f/pygerber-2.4.2.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img width=\"400\" src=\"https://github.com/Argmaster/pygerber/assets/56170852/b7aeb3e1-cd59-4f5b-b078-c01272461367\" alt=\"\" />\n</p>\n\n<h1 align=\"center\"> PyGerber </h1>\n\n<p align=\"center\">\n <a href=\"https://github.com/Argmaster/pygerber/releases/\"><img src=\"https://img.shields.io/github/v/release/Argmaster/pygerber?style=flat\" alt=\"GitHub release\"></a>\n <a href=\"https://github.com/Argmaster/pygerber/releases\"><img src=\"https://img.shields.io/github/release-date/Argmaster/pygerber\" alt=\"GitHub Release Date - Published_At\"></a>\n <a href=\"https://pypi.org/project/pygerber\"><img src=\"https://img.shields.io/pypi/v/pygerber?style=flat\" alt=\"PyPI release\"></a>\n <a href=\"https://pypi.org/project/pygerber/\"><img src=\"https://img.shields.io/pypi/dm/pygerber.svg?label=PyPI%20downloads\" alt=\"PyPI Downloads\"></a>\n <a href=\"https://pypi.org/project/pygerber\"><img src=\"https://img.shields.io/pypi/pyversions/pygerber?style=flat\" alt=\"Supported Python versions\"></a>\n <a href=\"https://pypi.org/project/pygerber\"><img src=\"https://img.shields.io/pypi/implementation/pygerber?style=flat\" alt=\"Supported Python implementations\"></a>\n <a href=\"https://github.com/argmaster/pygerber/blob/main/LICENSE\"><img src=\"https://img.shields.io/github/license/Argmaster/pygerber\" alt=\"license_mit\"></a>\n <a href=\"https://codecov.io/gh/Argmaster/pygerber\"><img src=\"https://codecov.io/gh/Argmaster/pygerber/branch/main/graph/badge.svg?token=VM09IHO13U\" alt=\"coverage\"></a>\n <a href=\"https://img.shields.io/github/checks-status/Argmaster/pygerber/main\"><img src=\"https://img.shields.io/github/checks-status/Argmaster/pygerber/main\" alt=\"GitHub tag checks state\"></a>\n <a href=\"https://github.com/Argmaster/pygerber/pulls\"><img src=\"https://img.shields.io/github/issues-pr/Argmaster/pygerber?style=flat\" alt=\"Pull requests\"></a>\n <a href=\"https://github.com/Argmaster/pygerber/issues\"><img src=\"https://img.shields.io/github/issues-raw/Argmaster/pygerber?style=flat\" alt=\"Open issues\"></a>\n <a href=\"https://github.com/Argmaster/pygerber\"><img src=\"https://img.shields.io/github/repo-size/Argmaster/pygerber\" alt=\"GitHub repo size\"></a>\n <a href=\"https://github.com/Argmaster/pygerber\"><img src=\"https://img.shields.io/github/languages/code-size/Argmaster/pygerber\" alt=\"GitHub code size in bytes\"></a>\n <a href=\"https://github.com/Argmaster/pygerber\"><img src=\"https://img.shields.io/github/stars/Argmaster/pygerber\" alt=\"GitHub Repo stars\"></a>\n <a href=\"https://python-poetry.org/\"><img src=\"https://img.shields.io/endpoint?url=https://python-poetry.org/badge/v0.json\" alt=\"Poetry\"></a>\n <a href=\"https://github.com/psf/black\"><img src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" alt=\"Code Style\"></a>\n</p>\n\nPyGerber is a Python implementation of Gerber X3/X2 format. It is based on Ucamco's\n`The Gerber Layer Format Specification. Revision 2023.03` (Available on\n[Ucamco's webpage](https://www.ucamco.com/files/downloads/file_en/456/gerber-layer-format-specification-revision-2023-03_en.pdf)\nand in\n[this repository](https://github.com/Argmaster/pygerber/blob/main/docs/gerber_specification/gerber-layer-format-specification-revision-2023-03_en.pdf)).\nThe goal of this project is to provide support for wide variety of Gerber-like syntaxes,\nwith support for most of deprecated features along with support for modern ones.\n\n<center><a href=\"https://argmaster.github.io/pygerber/stable\"> \ud83d\udcda See online documentation \ud83d\udcda </a></center>\n\n### Target set of tools:\n\n- [x] Tokenizer\n- [x] Parser\n- [x] [Introspection API](https://argmaster.github.io/pygerber/stable/gerber/introspection/0_usage.html)\n- [x] Rasterized 2D rendering engine (With\n [Pillow](https://github.com/python-pillow/Pillow))\n- [x] Vector 2D rendering engine (With [drawsvg](https://github.com/cduck/drawsvg))\n- [x] Gerber X3/X2 Language Server (with `language-server` extras)\n\nYou can view progress of development in\n[Gerber features support](#gerber-features-support) section down below. All Gerber\nsource files which can be redistributed under MIT license and included in this\nrepository for testing purposes will be greatly appreciated.\n\n## Installation\n\nPyGerber can be installed with `pip` from PyPI:\n\n```\npip install pygerber\n```\n\nAlternatively, it is also possible to install it directly from repository:\n\n```\npip install git+https://github.com/Argmaster/pygerber\n```\n\n## Command line usage\n\nAfter installing `pygerber`, depending on your environment, it should become available\nin your command line:\n\n```bash\npygerber --version\n```\n\nOutput should be similar to one below **\u21e9**, where `x.y.z` should match version of\nPyGerber installed.\n\n```\n$ pygerber --version\npygerber, version x.y.z\n```\n\nUse `--help` to display help messages for individual commands:\n\n```\npygerber render --help\n```\n\nTo render 2D PNG image of some gerber file you can simply use:\n\n```\npygerber render raster source.gbr -o output.png\n```\n\nImage will be saved to `output.png` in current working directory.\n\n![example_pcb_image](https://github.com/Argmaster/pygerber/assets/56170852/9bca28bf-8aa6-4215-aac1-62c386490485)\n\nFor guide on how to render SVG images and multi-layer projects with CLI please refer to\nPyGerber documentation.\n\n## Programmatic usage\n\n### JPG\n\nPyGerber can be used programmatically to render Gerber files. Below is an minimalistic\nexample of how to render one of the example files included with PyGerber release to JPEG\nimage:\n\n```python\nfrom pygerber.examples import ExamplesEnum, get_example_path\nfrom pygerber.gerberx3.api.v2 import GerberFile\n\nGerberFile.from_file(\n get_example_path(ExamplesEnum.UCAMCO_ex_2_Shapes),\n).parse().render_raster(\"output.jpg\")\n```\n\nRunning code above will create `output.jpg` file in current working directory which\nshould look like this:\n\n<p align=\"center\">\n <img height=\"400\" src=\"https://github.com/Argmaster/pygerber/assets/56170852/d17ebee8-e851-4c86-b110-8cd8aeca993e\">\n</p>\n\n### PNG\n\nIt is also possible to render Gerber files to PNG with custom resolution and different\ncolor schemes:\n\n```python\nfrom pygerber.examples import ExamplesEnum, get_example_path\nfrom pygerber.gerberx3.api.v2 import ColorScheme, GerberFile, PixelFormatEnum\n\nGerberFile.from_file(\n get_example_path(ExamplesEnum.ShapeFlashes),\n).parse().render_raster(\n \"output.png\",\n dpmm=100,\n color_scheme=ColorScheme.COPPER_ALPHA,\n pixel_format=PixelFormatEnum.RGBA,\n)\n```\n\nCode above renders following image:\n\n<p align=\"center\">\n <img height=\"400\" src=\"https://github.com/Argmaster/pygerber/assets/56170852/0a5a42f3-8792-4b9a-be61-bac12f0e1c03\">\n</p>\n\n### SVG\n\nFinally you can also create SVG files with PyGerber:\n\n```python\nfrom pygerber.examples import ExamplesEnum, load_example\nfrom pygerber.gerberx3.api.v2 import GerberFile\n\nsource_code = load_example(ExamplesEnum.UCAMCO_ex_2_Shapes)\nGerberFile.from_str(source_code).parse().render_svg(\"output.svg\")\n\n```\n\n### Multiple layers\n\nPyGerber can also render multiple layers to single image. Below is an example of how to\nrender four layers to single PNG image with use of `Project` class:\n\n```python\nfrom pygerber.examples import ExamplesEnum, load_example\nfrom pygerber.gerberx3.api.v2 import FileTypeEnum, GerberFile, Project\n\nProject(\n [\n GerberFile.from_str(\n load_example(ExamplesEnum.simple_2layer_F_Cu),\n FileTypeEnum.COPPER,\n ),\n GerberFile.from_str(\n load_example(ExamplesEnum.simple_2layer_F_Mask),\n FileTypeEnum.MASK,\n ),\n GerberFile.from_str(\n load_example(ExamplesEnum.simple_2layer_F_Paste),\n FileTypeEnum.PASTE,\n ),\n GerberFile.from_str(\n load_example(ExamplesEnum.simple_2layer_F_Silkscreen),\n FileTypeEnum.SILK,\n ),\n ],\n).parse().render_raster(\"output.png\", dpmm=40)\n```\n\nHere is the result:\n\n<p align=\"center\">\n <img width=\"400\" src=\"https://github.com/Argmaster/pygerber/assets/56170852/9b3f3823-67b3-49f1-8c76-e2bddaca81fe\">\n</p>\n\n### Advanced usage\n\nAdditionally to examples presented above which use high level API, PyGerber provides low\nlevel API which allows to directly access PyGerber internals and change behavior of\nparser, tokenizer and renderers. This can be used for code introspection and potentially\nother purposed. Check out documentation for more information.\n\n### Language Server\n\nSince release 2.1.0 PyGerber provides Gerber X3/X2 Language Server with\n[LSP](https://microsoft.github.io/language-server-protocol/) support. It can be enabled\nby installing PyGerber extras set `language-server` with following command:\n\n```\npip install pygerber[language-server]\n```\n\nAfterwards you can use `pygerber is-language-server-available` to check if language\nserver was correctly enabled. Please report all issues in\n[PyGerber Issues](https://github.com/Argmaster/pygerber/issues) section.\n\nYou can utilize power of this language server with use of Visual Studio Code extension\n[Gerber X3/X2 Format Support](https://marketplace.visualstudio.com/items?itemName=argmaster.gerber-x3-x2-format-support)\n(`argmaster.gerber-x3-x2-format-support`).\n\n## Documentation\n\nOfficial documentations is hosted on Github Pages and can be found\n[here](https://argmaster.github.io/pygerber/stable).\n\n## Gerber features support\n\nFor detailed list of features which are supported/not supported by each tool please\nrefer to documentation:\n\n- [Tokenizer](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/0_tokenizer.html),\n- [Parser2](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/1_parser2.html),\n- [RasterRenderer2](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/2_rasterrenderer2.html),\n- [SvgRenderer2](https://argmaster.github.io/pygerber/stable/70_gerber/40_feature_support/3_svgrenderer2.html),\n\n## Development\n\nFor development guidelines please visit documentation `Development` section\n[here](https://argmaster.github.io/pygerber/stable).\n\n## Gerber reference archive\n\nThis repository contains also archival reference files. Although new specs contain\ndedicated changelog section it may still be helpful in some rare cases to look through\nold Gerber specs. Archival files can be found\n[here](https://github.com/Argmaster/pygerber/tree/main/docs/gerber_specification).\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Parsing and rendering toolkit for Gerber X3 file format",
"version": "2.4.2",
"project_urls": {
"Documentation": "https://argmaster.github.io/pygerber/stable",
"Homepage": "https://github.com/Argmaster/pygerber",
"Repository": "https://github.com/Argmaster/pygerber"
},
"split_keywords": [
"gerber",
" pcb",
" embedded",
" images",
" x3"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "a6a4361f7b9adee9ae77d1ef1071669f4932d82134e7889dfb5f84938192a4df",
"md5": "d9c3d00802afb9eb91913aec4a5fb89d",
"sha256": "36fd28afd154238a9b025a517ec4a365c42946a01c9c4ea9646057aa2fa9b213"
},
"downloads": -1,
"filename": "pygerber-2.4.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d9c3d00802afb9eb91913aec4a5fb89d",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.8",
"size": 276511,
"upload_time": "2024-11-11T12:24:23",
"upload_time_iso_8601": "2024-11-11T12:24:23.004069Z",
"url": "https://files.pythonhosted.org/packages/a6/a4/361f7b9adee9ae77d1ef1071669f4932d82134e7889dfb5f84938192a4df/pygerber-2.4.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a19158938e268ab888d76df5b0e62ae2308f3a483b1d31c10716758a67e3d15f",
"md5": "bd8bbe9be351a8e68419eb836a3f64fa",
"sha256": "f8fa3a181f9ed14d044a4036c2af7321b6b0c80e8becab1a13a0e1e1d7e3c829"
},
"downloads": -1,
"filename": "pygerber-2.4.2.tar.gz",
"has_sig": false,
"md5_digest": "bd8bbe9be351a8e68419eb836a3f64fa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.8",
"size": 160820,
"upload_time": "2024-11-11T12:24:24",
"upload_time_iso_8601": "2024-11-11T12:24:24.784909Z",
"url": "https://files.pythonhosted.org/packages/a1/91/58938e268ab888d76df5b0e62ae2308f3a483b1d31c10716758a67e3d15f/pygerber-2.4.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-11 12:24:24",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Argmaster",
"github_project": "pygerber",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"lcname": "pygerber"
}