From d15e20d8b9303e9a80adb495d24d388b94c38080 Mon Sep 17 00:00:00 2001 From: "Salvador E. Tropea" Date: Thu, 30 Jun 2022 07:40:27 -0300 Subject: [PATCH] [DOCs][Dependencies] Added Python module and tool images --- README.md | 44 +++++---- docs/README.in | 3 + docs/images/Python-logo-notext-22x22.png | Bin 0 -> 806 bytes docs/images/Python-logo-notext.svg | 113 +++++++++++++++++++++++ docs/images/llave-inglesa-22x22.png | Bin 0 -> 1405 bytes docs/images/llave-inglesa.png | Bin 0 -> 41018 bytes kibot/config_reader.py | 11 ++- 7 files changed, 149 insertions(+), 22 deletions(-) create mode 100644 docs/images/Python-logo-notext-22x22.png create mode 100644 docs/images/Python-logo-notext.svg create mode 100644 docs/images/llave-inglesa-22x22.png create mode 100644 docs/images/llave-inglesa.png diff --git a/README.md b/README.md index 16908955..623cf088 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,11 @@ * [Introduction](#introduction) * [Installation](#installation) + * [Dependencies](#dependencies) + * [Installation on Ubuntu/Debian](#installation-on-ubuntu/debian) + * [Installation using pip](#installation-using-pip) + * [Notes about virtualenv](#notes-about-virtualenv) + * [Installation on other targets](#installation-on-other-targets) * [Configuration](#configuration) * [The header](#the-header) * [The *preflight* section](#the-preflight-section) @@ -105,43 +110,45 @@ Notes: Comment or remove lines like this: `` (On Debian: `/etc/ImageMagick-6/policy.xml`) - ![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png) Link to Debian stable package. - ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) This is a Python dependency from PyPi and will be installed when using `pip` +- ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) This is a Python module, not a separated tool. +- ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) This is an independent tool, can be a binary or a Python script. -[**Distutils**](https://pypi.org/project/Distutils/) (python module) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-distutils) +[**Distutils**](https://pypi.org/project/Distutils/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-distutils) - Mandatory -[**PyYAML**](https://pypi.org/project/PyYAML/) (python module) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-yaml) +[**PyYAML**](https://pypi.org/project/PyYAML/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-yaml) - Mandatory -[**Requests**](https://pypi.org/project/Requests/) (python module) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-requests) +[**Requests**](https://pypi.org/project/Requests/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-requests) - Mandatory -[**KiCad Automation tools**](https://github.com/INTI-CMNB/KiAuto) v1.6.13 (tool) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) (Auto-download) +[**KiCad Automation tools**](https://github.com/INTI-CMNB/KiAuto) v1.6.13 ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) (Auto-download) - Mandatory for: `gencad`, `netlist`, `pdf_pcb_print`, `pdf_sch_print`, `render_3d`, `run_drc`, `run_erc`, `step`, `svg_pcb_print`, `svg_sch_print`, `update_xml` -[**KiCost**](https://github.com/hildogjr/KiCost) v1.1.8 (tool) (Auto-download) +[**KiCost**](https://github.com/hildogjr/KiCost) v1.1.8 ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) (Auto-download) - Mandatory for `kicost` - Optional to find components costs and specs for `bom` -[**PcbDraw**](https://github.com/INTI-CMNB/pcbdraw) v0.9.0 (tool) (Auto-download) +[**PcbDraw**](https://github.com/INTI-CMNB/pcbdraw) v0.9.0 ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) (Auto-download) - Mandatory for `pcbdraw` - Optional to create realistic solder masks for `pcb_print` -[**Interactive HTML BoM**](https://github.com/INTI-CMNB/InteractiveHtmlBom) v2.4.1.4 (tool) +[**Interactive HTML BoM**](https://github.com/INTI-CMNB/InteractiveHtmlBom) v2.4.1.4 ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) - Mandatory for `ibom` -[**KiBoM**](https://github.com/INTI-CMNB/KiBoM) v1.8.0 (tool) (Auto-download) +[**KiBoM**](https://github.com/INTI-CMNB/KiBoM) v1.8.0 ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) (Auto-download) - Mandatory for `kibom` -[**LXML**](https://pypi.org/project/LXML/) (python module) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-lxml) +[**LXML**](https://pypi.org/project/LXML/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-lxml) - Mandatory for `pcb_print` -[**QRCodeGen**](https://pypi.org/project/QRCodeGen/) (python module) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-qrcodegen) +[**QRCodeGen**](https://pypi.org/project/QRCodeGen/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-qrcodegen) - Mandatory for `qr_lib` -[**Colorama**](https://pypi.org/project/Colorama/) (python module) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-colorama) +[**Colorama**](https://pypi.org/project/Colorama/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-colorama) - Optional to get color messages in a portable way for general use -[**RSVG tools**](https://gitlab.gnome.org/GNOME/librsvg) v2.40 (tool) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/librsvg2-bin) (Auto-download) +[**RSVG tools**](https://gitlab.gnome.org/GNOME/librsvg) v2.40 ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/librsvg2-bin) (Auto-download) - Optional to: - Create outputs preview for `navigate_results` - Create PNG icons for `navigate_results` @@ -149,30 +156,30 @@ Notes: - Create EPS format for `pcb_print` (v2.40) - Create PNG and JPG images for `pcbdraw` -[**Git**](https://git-scm.com/) (tool) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/git) (Auto-download) +[**Git**](https://git-scm.com/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/git) (Auto-download) - Optional to: - Find commit hash and/or date for `pcb_replace` - Find commit hash and/or date for `sch_replace` - Find commit hash and/or date for `set_text_variables` -[**ImageMagick**](https://imagemagick.org/) (tool) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/imagemagick) (Auto-download) +[**ImageMagick**](https://imagemagick.org/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/imagemagick) (Auto-download) - Optional to: - Create outputs preview for `navigate_results` - Create monochrome prints for `pcb_print` - Create JPG images for `pcbdraw` -[**Ghostscript**](https://www.ghostscript.com/) (tool) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/ghostscript) (Auto-download) +[**Ghostscript**](https://www.ghostscript.com/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/ghostscript) (Auto-download) - Optional to: - Create outputs preview for `navigate_results` - Create PS files for `pcb_print` -[**Pandoc**](https://pandoc.org/) (tool) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/pandoc) +[**Pandoc**](https://pandoc.org/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/pandoc) - Optional to create PDF/ODF/DOCX files for `report` -[**RAR**](https://www.rarlab.com/) (tool) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/rar) (Auto-download) +[**RAR**](https://www.rarlab.com/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/rar) (Auto-download) - Optional to compress in RAR format for `compress` -[**XLSXWriter**](https://pypi.org/project/XLSXWriter/) (python module) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-xlsxwriter) +[**XLSXWriter**](https://pypi.org/project/XLSXWriter/) ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) [![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)](https://packages.debian.org/bullseye/python3-xlsxwriter) - Optional to create XLSX files for `bom` @@ -3751,4 +3758,5 @@ Additionally we support: - **Robot in the logo**: Christian Plaza (from pixabay) - **Robot arm in assembly_simple.svg**: [Pixlok](https://pixlok.com/) - **Chip in assembly_simple.svg**: [oNline Web Fonts](https://www.onlinewebfonts.com/) + - **Wrench**: [Freepik - Flaticon](https://www.flaticon.es/iconos-gratis/llave-inglesa) - **Most icons for the navigate_results output**: The KiCad project diff --git a/docs/README.in b/docs/README.in index 3f24b085..595c7d3a 100644 --- a/docs/README.in +++ b/docs/README.in @@ -110,6 +110,8 @@ Notes: Comment or remove lines like this: `` (On Debian: `/etc/ImageMagick-6/policy.xml`) - ![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png) Link to Debian stable package. - ![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/PyPI_logo_simplified-22x22.png) This is a Python dependency from PyPi and will be installed when using `pip` +- ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/Python-logo-notext-22x22.png) This is a Python module, not a separated tool. +- ![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png) This is an independent tool, can be a binary or a Python script. @dependencies@ @@ -1723,4 +1725,5 @@ Additionally we support: - **Robot in the logo**: Christian Plaza (from pixabay) - **Robot arm in assembly_simple.svg**: [Pixlok](https://pixlok.com/) - **Chip in assembly_simple.svg**: [oNline Web Fonts](https://www.onlinewebfonts.com/) + - **Wrench**: [Freepik - Flaticon](https://www.flaticon.es/iconos-gratis/llave-inglesa) - **Most icons for the navigate_results output**: The KiCad project diff --git a/docs/images/Python-logo-notext-22x22.png b/docs/images/Python-logo-notext-22x22.png new file mode 100644 index 0000000000000000000000000000000000000000..e509381a9403ee259e093a3659247edc800737dc GIT binary patch literal 806 zcmV+>1KIqEP)wxX>J*` zEeC1Q7lTEt<1mFa*n&>AK)rb=cG>oB@W8LvRw*|6AcCnA83eVg5d;ptj+M5d&OF9X z_nbrm=^5V*jD%2C3b0|Q_M6lgGOA!QZ$j?)7(%zF?t}%9&mzykz~ejDJbd^-y5Ur9 zm+jLo#<2sPsdr9}vQd7G_p)ZWecY#uqz#1_LIX2a{t#tvBoYRySWf6 z$w9$ho7!433-let(7KL(voR=!9t2J33q1xAM%i$4d= z<`HowtQ)_TUb-|Gsa6m4|F?3V?KRmej$n$%Y$ET@DsAf$iS6Rj`ot$;{XZ{YmU`@G zd-oGnEAe#d|9QuDEUddbT4a>gV`40Xq0@Vjd$C8bhLL-b=6scv{0^&*J%RL^ kpbLEXur~DnJz2*12rDo85?56Wod5s;07*qoM6N<$g3erc$p8QV literal 0 HcmV?d00001 diff --git a/docs/images/Python-logo-notext.svg b/docs/images/Python-logo-notext.svg new file mode 100644 index 00000000..366f52f3 --- /dev/null +++ b/docs/images/Python-logo-notext.svg @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/docs/images/llave-inglesa-22x22.png b/docs/images/llave-inglesa-22x22.png new file mode 100644 index 0000000000000000000000000000000000000000..667771e0da7673625fa2040453ccab99a048cc62 GIT binary patch literal 1405 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 Opxo2cLss6le(`@Xs?GHP literal 0 HcmV?d00001 diff --git a/kibot/config_reader.py b/kibot/config_reader.py index 9ca87681..01f4f1eb 100644 --- a/kibot/config_reader.py +++ b/kibot/config_reader.py @@ -32,7 +32,9 @@ GLOBAL_MANDATORY = LOCAL_MANDATORY*100 DEB_LOGO = '![Debian](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/debian-openlogo-22x22.png)' PYPI_LOGO = ('![PyPi dependency](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/' 'docs/images/PyPI_logo_simplified-22x22.png)') - +PY_LOGO = ('![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/' + 'docs/images/Python-logo-notext-22x22.png)') +TOOL_LOGO = '![Python module](https://raw.githubusercontent.com/INTI-CMNB/KiBot/master/docs/images/llave-inglesa-22x22.png)' try: import yaml @@ -738,10 +740,10 @@ def print_dependencies(markdown=True, jsn=False): # Now print them sorted by importance (and by name as a second criteria) for name, dep in sorted(sorted(RegDependency.get_registered().items(), key=lambda x: x[0].lower()), # noqa C414 key=lambda x: x[1].importance, reverse=True): - dtype = 'python module' if dep.is_python else 'tool' has_dowloader = ' (Auto-download)' if dep.downloader is not None else '' deb = '' if markdown: + dtype = ' '+PY_LOGO if dep.is_python else ' '+TOOL_LOGO is_pypi_dep = ' '+PYPI_LOGO if dep.pypi_name.lower() in __pypi_deps__ else '' if dep.is_python: url = 'https://pypi.org/project/{}/'.format(name) @@ -751,6 +753,7 @@ def print_dependencies(markdown=True, jsn=False): if dep.in_debian: deb = ' [{}](https://packages.debian.org/bullseye/{})'.format(DEB_LOGO, dep.deb_package) else: + dtype = ' (Python module)' if dep.is_python else ' (Tool)' is_pypi_dep = ' (PyPi dependency)' if dep.pypi_name.lower() in __pypi_deps__ else '' if dep.in_debian: deb = ' (Debian: {})'.format(dep.deb_package) @@ -766,8 +769,8 @@ def print_dependencies(markdown=True, jsn=False): version = r.version ver = '' if version: - ver = 'v'+'.'.join(map(str, version))+' ' - print("{} {}({}){}{}{}".format(name, ver, dtype, is_pypi_dep, deb, has_dowloader)) + ver = 'v'+'.'.join(map(str, version)) + print("{} {}{}{}{}{}".format(name, ver, dtype, is_pypi_dep, deb, has_dowloader)) if needed: if len(needed) == 1: if needed[0] == 'general use':