Add our own versions of the icons, generated from script
@@ -13,7 +13,7 @@ repos:
|
||||
- id: check-merge-conflict
|
||||
- id: check-yaml
|
||||
- id: end-of-file-fixer
|
||||
exclude: cibuildwheel/resources/pinned_docker_images.cfg
|
||||
exclude: (cibuildwheel/resources/pinned_docker_images.cfg)|(.svg$)
|
||||
- id: mixed-line-ending
|
||||
- id: trailing-whitespace
|
||||
|
||||
|
||||
@@ -201,29 +201,29 @@ Here are some repos that use cibuildwheel.
|
||||
[xmlstarlet]: https://github.com/dimitern/xmlstarlet
|
||||
[pybind11 scikit_build_example]: https://github.com/pybind/scikit_build_example
|
||||
|
||||
[appveyor icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/appveyor.svg
|
||||
[github icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/github.svg
|
||||
[azurepipelines icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/azurepipelines.svg
|
||||
[circleci icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/circleci.svg
|
||||
[gitlab icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/gitlab.svg
|
||||
[travisci icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/travisci.svg
|
||||
[windows icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/windows.svg
|
||||
[apple icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/apple.svg
|
||||
[linux icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/linux.svg
|
||||
[appveyor icon]: docs/data/readme_icons/appveyor.svg
|
||||
[github icon]: docs/data/readme_icons/github.svg
|
||||
[azurepipelines icon]: docs/data/readme_icons/azurepipelines.svg
|
||||
[circleci icon]: docs/data/readme_icons/circleci.svg
|
||||
[gitlab icon]: docs/data/readme_icons/gitlab.svg
|
||||
[travisci icon]: docs/data/readme_icons/travisci.svg
|
||||
[windows icon]: docs/data/readme_icons/windows.svg
|
||||
[apple icon]: docs/data/readme_icons/apple.svg
|
||||
[linux icon]: docs/data/readme_icons/linux.svg
|
||||
|
||||
<!-- scikit-learn: 43356, last pushed 0 days ago -->
|
||||
<!-- scikit-learn: 43359, last pushed 0 days ago -->
|
||||
<!-- Matplotlib: 12734, last pushed 0 days ago -->
|
||||
<!-- twisted-iocpsupport: 4107, last pushed 0 days ago -->
|
||||
<!-- scikit-image: 4085, last pushed 0 days ago -->
|
||||
<!-- websockets: 3065, last pushed 0 days ago -->
|
||||
<!-- pyzmq: 2655, last pushed 8 days ago -->
|
||||
<!-- pyzmq: 2655, last pushed 9 days ago -->
|
||||
<!-- aiortc: 2058, last pushed 10 days ago -->
|
||||
<!-- h5py: 1451, last pushed 0 days ago -->
|
||||
<!-- coverage.py: 1428, last pushed 3 days ago -->
|
||||
<!-- River: 1173, last pushed 0 days ago -->
|
||||
<!-- h5py: 1451, last pushed 1 days ago -->
|
||||
<!-- coverage.py: 1429, last pushed 3 days ago -->
|
||||
<!-- River: 1174, last pushed 0 days ago -->
|
||||
<!-- PyAV: 1107, last pushed 2 days ago -->
|
||||
<!-- google neuroglancer: 545, last pushed 2 days ago -->
|
||||
<!-- aioquic: 543, last pushed 37 days ago -->
|
||||
<!-- aioquic: 543, last pushed 38 days ago -->
|
||||
<!-- AutoPy: 503, last pushed 94 days ago -->
|
||||
<!-- pikepdf: 477, last pushed 3 days ago -->
|
||||
<!-- Parselmouth: 429, last pushed 15 days ago -->
|
||||
@@ -232,7 +232,7 @@ Here are some repos that use cibuildwheel.
|
||||
<!-- pybind11 python_example: 219, last pushed 32 days ago -->
|
||||
<!-- pybind11 cmake_example: 217, last pushed 16 days ago -->
|
||||
<!-- iminuit: 164, last pushed 3 days ago -->
|
||||
<!-- jq.py: 137, last pushed 61 days ago -->
|
||||
<!-- jq.py: 137, last pushed 62 days ago -->
|
||||
<!-- bx-python: 95, last pushed 75 days ago -->
|
||||
<!-- boost-histogram: 60, last pushed 0 days ago -->
|
||||
<!-- pybase64: 52, last pushed 2 days ago -->
|
||||
@@ -240,7 +240,7 @@ Here are some repos that use cibuildwheel.
|
||||
<!-- etebase-py: 39, last pushed 0 days ago -->
|
||||
<!-- pyjet: 27, last pushed 17 days ago -->
|
||||
<!-- numpythia: 23, last pushed 16 days ago -->
|
||||
<!-- fathon: 17, last pushed 48 days ago -->
|
||||
<!-- fathon: 17, last pushed 49 days ago -->
|
||||
<!-- pyinstrument_cext: 9, last pushed 17 days ago -->
|
||||
<!-- xmlstarlet: 7, last pushed 5 days ago -->
|
||||
<!-- pybind11 scikit_build_example: 1, last pushed 30 days ago -->
|
||||
|
||||
@@ -5,7 +5,7 @@ Convert a yaml project list into a nice table.
|
||||
|
||||
Suggested usage:
|
||||
|
||||
./bin/projects.py bin/projects.yml --online --auth $GITHUB_API_TOKEN --readme README.md
|
||||
./bin/projects.py docs/data/projects.yml --online --auth $GITHUB_API_TOKEN --readme README.md
|
||||
git diff
|
||||
"""
|
||||
|
||||
@@ -18,6 +18,9 @@ from typing import Dict, Any, List, Optional, TextIO
|
||||
import click
|
||||
import yaml
|
||||
from github import Github
|
||||
import urllib.request
|
||||
import xml.dom.minidom
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ICONS = (
|
||||
@@ -110,12 +113,38 @@ class Project:
|
||||
return f"<!-- {self.name}: {self.num_stars}, last pushed {days} days ago -->"
|
||||
|
||||
|
||||
def fetch_icon(icon_name: str) -> None:
|
||||
url = f'https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/{icon_name}.svg'
|
||||
with urllib.request.urlopen(url) as f:
|
||||
original_svg_data = f.read()
|
||||
|
||||
document = xml.dom.minidom.parseString(original_svg_data)
|
||||
svgElement = document.documentElement
|
||||
assert svgElement.nodeName == 'svg'
|
||||
svgElement.setAttribute('width', '16px')
|
||||
svgElement.setAttribute('fill', '#606060')
|
||||
|
||||
icon_path = path_for_icon(icon_name)
|
||||
icon_path.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
with open(path_for_icon(icon_name), 'w') as f:
|
||||
f.write(svgElement.toxml())
|
||||
|
||||
|
||||
def path_for_icon(icon_name: str) -> Path:
|
||||
return Path('.') / 'docs' / 'data' / 'readme_icons' / f'{icon_name}.svg'
|
||||
|
||||
|
||||
def str_projects(
|
||||
config: List[Dict[str, Any]], *, online: bool = True, auth: Optional[str] = None
|
||||
) -> str:
|
||||
io = StringIO()
|
||||
print = functools.partial(builtins.print, file=io)
|
||||
|
||||
if online:
|
||||
for icon in ICONS:
|
||||
fetch_icon(icon)
|
||||
|
||||
github = Github(auth) if online else None
|
||||
|
||||
projects = sorted((Project(item, github) for item in config), reverse=online)
|
||||
@@ -130,9 +159,7 @@ def str_projects(
|
||||
|
||||
print()
|
||||
for icon in ICONS:
|
||||
print(
|
||||
f"[{icon} icon]: https://cdn.jsdelivr.net/npm/simple-icons@v4/icons/{icon}.svg"
|
||||
)
|
||||
print(f"[{icon} icon]: {path_for_icon(icon).as_posix()}")
|
||||
|
||||
print()
|
||||
for project in projects:
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>Apple icon</title><path d="M7.078 23.55c-.473-.316-.893-.703-1.244-1.15-.383-.463-.738-.95-1.064-1.454-.766-1.12-1.365-2.345-1.78-3.636-.5-1.502-.743-2.94-.743-4.347 0-1.57.34-2.94 1.002-4.09.49-.9 1.22-1.653 2.1-2.182.85-.53 1.84-.82 2.84-.84.35 0 .73.05 1.13.15.29.08.64.21 1.07.37.55.21.85.34.95.37.32.12.59.17.8.17.16 0 .39-.05.645-.13.145-.05.42-.14.81-.31.386-.14.692-.26.935-.35.37-.11.728-.21 1.05-.26.39-.06.777-.08 1.148-.05.71.05 1.36.2 1.94.42 1.02.41 1.843 1.05 2.457 1.96-.26.16-.5.346-.725.55-.487.43-.9.94-1.23 1.505-.43.77-.65 1.64-.644 2.52.015 1.083.29 2.035.84 2.86.387.6.904 1.114 1.534 1.536.31.21.582.355.84.45-.12.375-.252.74-.405 1.1-.347.807-.76 1.58-1.25 2.31-.432.63-.772 1.1-1.03 1.41-.402.48-.79.84-1.18 1.097-.43.285-.935.436-1.452.436-.35.015-.7-.03-1.034-.127-.29-.095-.576-.202-.856-.323-.293-.134-.596-.248-.905-.34-.38-.1-.77-.148-1.164-.147-.4 0-.79.05-1.16.145-.31.088-.61.196-.907.325-.42.175-.695.29-.855.34-.324.096-.656.154-.99.175-.52 0-1.004-.15-1.486-.45zm6.854-18.46c-.68.34-1.326.484-1.973.436-.1-.646 0-1.31.27-2.037.24-.62.56-1.18 1-1.68.46-.52 1.01-.95 1.63-1.26.66-.34 1.29-.52 1.89-.55.08.68 0 1.35-.25 2.07-.228.64-.568 1.23-1 1.76-.435.52-.975.95-1.586 1.26z"/></svg>
|
||||
|
After Width: | Height: | Size: 1.3 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>AppVeyor icon</title><path d="M 12,0 C 18.6,0 24,5.4 24,12 24,18.6 18.6,24 12,24 5.4,24 0,18.6 0,12 0,5.4 5.4,0 12,0 Z m 2.94,14.34 C 16.26,12.66 16.08,10.26 14.4,9 12.78,7.74 10.38,8.04 9,9.72 7.68,11.4 7.86,13.8 9.54,15.06 c 1.68,1.26 4.08,0.96 5.4,-0.72 z m -6.42,7.8 c 0.72,0.3 2.28,0.6 3.06,0.6 l 5.22,-7.56 c 1.68,-2.52 1.26,-5.94 -1.08,-7.8 -2.1,-1.68 -5.04,-1.62 -7.14,0 l -7.26,5.58 c 0.18,1.92 0.72,2.88 0.72,2.94 l 4.14,-4.5 c -0.3,1.98 0.42,4.02 2.1,5.28 1.44,1.14 3.18,1.44 4.86,1.08 z"/></svg>
|
||||
|
After Width: | Height: | Size: 613 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>Azure Pipelines icon</title><path d="M1.8 18H0v6h6v-1.8H1.8zM23 0h-8.93a2 2 0 0 0-1.67.89L9 5.99H1a1 1 0 0 0-1 1v5.5l3.5 3.61 1.2-1.29 1.5 1.5L5 17.53l1.48 1.48 1.22-1.22 1.5 1.51L8 20.5l3.5 3.5H17a1 1 0 0 0 1-1v-8l5.11-3.4A2 2 0 0 0 24 9.92V1a1 1 0 0 0-1-1zm-5 9a3 3 0 1 1 0-6 3 3 0 0 1 0 6z"/></svg>
|
||||
|
After Width: | Height: | Size: 407 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>CircleCI icon</title><path d="M8.963 12c0-1.584 1.284-2.855 2.855-2.855 1.572 0 2.856 1.284 2.856 2.855 0 1.572-1.284 2.856-2.856 2.856-1.57 0-2.855-1.284-2.855-2.856zm2.855-12C6.215 0 1.522 3.84.19 9.025c-.01.036-.01.07-.01.12 0 .313.252.576.575.576H5.59c.23 0 .433-.13.517-.333.997-2.16 3.18-3.672 5.712-3.672 3.466 0 6.286 2.82 6.286 6.287 0 3.47-2.82 6.29-6.29 6.29-2.53 0-4.714-1.5-5.71-3.673-.097-.19-.29-.336-.517-.336H.755c-.312 0-.575.253-.575.576 0 .037.014.072.014.12C1.514 20.16 6.214 24 11.818 24c6.624 0 12-5.375 12-12 0-6.623-5.376-12-12-12z"/></svg>
|
||||
|
After Width: | Height: | Size: 671 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>GitHub icon</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
|
||||
|
After Width: | Height: | Size: 855 B |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>GitLab icon</title><path d="M4.845.904c-.435 0-.82.28-.955.692C2.639 5.449 1.246 9.728.07 13.335a1.437 1.437 0 00.522 1.607l11.071 8.045c.2.145.472.144.67-.004l11.073-8.04a1.436 1.436 0 00.522-1.61c-1.285-3.942-2.683-8.256-3.817-11.746a1.004 1.004 0 00-.957-.684.987.987 0 00-.949.69l-2.405 7.408H8.203l-2.41-7.408a.987.987 0 00-.942-.69h-.006zm-.006 1.42l2.173 6.678H2.675zm14.326 0l2.168 6.678h-4.341zm-10.593 7.81h6.862c-1.142 3.52-2.288 7.04-3.434 10.559L8.572 10.135zm-5.514.005h4.321l3.086 9.5zm13.567 0h4.325c-2.467 3.17-4.95 6.328-7.411 9.502 1.028-3.167 2.059-6.334 3.086-9.502zM2.1 10.762l6.977 8.947-7.817-5.682a.305.305 0 01-.112-.341zm19.798 0l.952 2.922a.305.305 0 01-.11.341v.002l-7.82 5.68.026-.035z"/></svg>
|
||||
|
After Width: | Height: | Size: 830 B |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 24 24" width="16px" fill="#606060"><title>Windows icon</title><path d="M0 3.449L9.75 2.1v9.451H0m10.949-9.602L24 0v11.4H10.949M0 12.6h9.75v9.451L0 20.699M10.949 12.6H24V24l-12.9-1.801"/></svg>
|
||||
|
After Width: | Height: | Size: 256 B |