Skip to content

Commit 2d8cd65

Browse files
authored
Merge pull request #3 from greyli/yml-config
2 parents f40f0f9 + 85394d9 commit 2d8cd65

File tree

10 files changed

+80
-30
lines changed

10 files changed

+80
-30
lines changed

.github/workflows/bootstrap-flask.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
name: test helloflask/bootstrap-flask
2+
name: build
33

44
on:
55
push:

.github/workflows/flask-ckeditor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
name: test helloflask/flask-ckeditor
2+
name: build
33

44
on:
55
push:

.github/workflows/flask-debugtoolbar.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
name: test pallets-eco/flask-debugtoolbar
2+
name: build
33

44
on:
55
push:

.github/workflows/flask-login.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
name: test maxcountryman/flask-login
2+
name: build
33

44
on:
55
push:

.github/workflows/flask-mailman.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
name: test waynerv/flask-mailman
2+
name: build
33

44
on:
55
push:

README.md

Lines changed: 42 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,53 @@
11
# Flask Extension Status
22

3-
## Extension health dashboard
3+
*Let's hope the CI of this repository will pass someday.*
4+
5+
It's a status dashboard for Flask extension. In the [Extension status](#extension-status) table, each extension has a build badge to show whether it can be built with the latest Flask version. Feel free to add new extensions or update the info of existing extensions (see [How to add an extension?](#how-to-add-an-extension) for details)
6+
7+
For a project that is not maintained anymore, we will list them in the [Unmaintained extension and alternatives](#unmaintained-extension-and-alternatives) section and provide some alternatives. If you have a extension but don't have time to maintain it, you can consider donating it to the [pallets-eco organzation](https://github.com/pallets-eco).
8+
9+
Want to help a Flask extension? Check the [What can I do to help?](#what-can-i-do-to-help) section. Let's make Flask ecosystem better together!
10+
11+
## Extension status
412

513
<!-- TABLE_START -->
614

7-
| Extension | Latest PyPI version | PyPI downloads/month | Build with Flask 3.x |
8-
| --------- | -------------------- | -------------------- | -------------------- |
9-
| [helloflask/bootstrap-flask](https://github.com/helloflask/bootstrap-flask) | ![PyPI - Version](https://img.shields.io/pypi/v/bootstrap-flask) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/bootstrap-flask?color=black) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/bootstrap-flask.yml/badge.svg) |
10-
| [helloflask/flask-ckeditor](https://github.com/helloflask/flask-ckeditor) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-ckeditor) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-ckeditor?color=black) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-ckeditor.yml/badge.svg) |
11-
| [pallets-eco/flask-debugtoolbar](https://github.com/pallets-eco/flask-debugtoolbar) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-debugtoolbar) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-debugtoolbar?color=black) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-debugtoolbar.yml/badge.svg) |
12-
| [maxcountryman/flask-login](https://github.com/maxcountryman/flask-login) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-login) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-login?color=black) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-login.yml/badge.svg) |
13-
| [waynerv/flask-mailman](https://github.com/waynerv/flask-mailman) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-mailman) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-mailman?color=black) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-mailman.yml/badge.svg) |
15+
| Extension Repository | Latest version | Downloads | Build with latest Flask (3.x) |
16+
| -------------------- | --------------- | ---------- | ----------------------------- |
17+
| [helloflask/bootstrap-flask](https://github.com/helloflask/bootstrap-flask) | ![PyPI - Version](https://img.shields.io/pypi/v/bootstrap-flask) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/bootstrap-flask?color=darkgrey) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/bootstrap-flask.yml/badge.svg) |
18+
| [helloflask/flask-ckeditor](https://github.com/helloflask/flask-ckeditor) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-ckeditor) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-ckeditor?color=darkgrey) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-ckeditor.yml/badge.svg) |
19+
| [pallets-eco/flask-debugtoolbar](https://github.com/pallets-eco/flask-debugtoolbar) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-debugtoolbar) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-debugtoolbar?color=darkgrey) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-debugtoolbar.yml/badge.svg) |
20+
| [maxcountryman/flask-login](https://github.com/maxcountryman/flask-login) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-login) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-login?color=darkgrey) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-login.yml/badge.svg) |
21+
| [waynerv/flask-mailman](https://github.com/waynerv/flask-mailman) | ![PyPI - Version](https://img.shields.io/pypi/v/flask-mailman) | ![PyPI - Downloads](https://img.shields.io/pypi/dm/flask-mailman?color=darkgrey) | ![build](https://github.com/greyli/flask-extension-status/actions/workflows/flask-mailman.yml/badge.svg) |
1422

1523
<!-- TABLE_END -->
1624

17-
## About this project
25+
## How to add an extension?
26+
27+
Clone the repo and install dependencies:
28+
29+
```bash
30+
git clone https://github.com/greyli/flask-extension-status
31+
cd flask-extension-status
32+
pip install -r requirements.txt
33+
```
34+
35+
Add the extension info to `extensions.yml`:
36+
37+
```yaml
38+
flask-foo:
39+
repo: github_username/repo_name
40+
import_string: 'the import string of your extension'
41+
```
42+
43+
Then run:
44+
45+
```bash
46+
python gen.py
47+
```
48+
49+
Commit and push the changes, then create a pull request.
1850

19-
## What can we do?
51+
## What can I do to help?
2052

2153
## Unmaintained extension and alternatives

extensions.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# sort by name alphabetically
2+
bootstrap-flask:
3+
repo: helloflask/bootstrap-flask
4+
import_string: 'from flask_bootstrap import Bootstrap5'
5+
flask-ckeditor:
6+
repo: helloflask/flask-ckeditor
7+
import_string: 'from flask_ckeditor import CKEditor'
8+
flask-debugtoolbar:
9+
repo: pallets-eco/flask-debugtoolbar
10+
import_string: 'from flask_debugtoolbar import DebugToolbarExtension'
11+
flask-login:
12+
repo: maxcountryman/flask-login
13+
import_string: 'from flask_login import LoginManager'
14+
flask-mailman:
15+
repo: waynerv/flask-mailman
16+
import_string: 'from flask_mailman import Mail'

gen.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
from pathlib import Path
22

33
from jinja2 import Template
4+
import yaml
45

56
basedir = Path(__file__).parent
67

7-
extensions = {
8-
'bootstrap-flask': { 'repo': 'helloflask/bootstrap-flask', 'import_string': 'from flask_bootstrap import Bootstrap5'},
9-
'flask-ckeditor': { 'repo': 'helloflask/flask-ckeditor', 'import_string': 'from flask_ckeditor import CKEditor'},
10-
'flask-debugtoolbar': { 'repo': 'pallets-eco/flask-debugtoolbar', 'import_string': 'from flask_debugtoolbar import DebugToolbarExtension'},
11-
'flask-login': {'repo': 'maxcountryman/flask-login', 'import_string': 'from flask_login import LoginManager'},
12-
'flask-mailman': { 'repo': 'waynerv/flask-mailman', 'import_string': 'from flask_mailman import Mail'},
13-
}
14-
158
workflow_template = """
16-
name: test {{ repo }}
9+
name: build
1710
1811
on:
1912
push:
@@ -49,15 +42,21 @@
4942
"""
5043

5144
table_header = """
52-
| Extension | Latest PyPI version | PyPI downloads/month | Build with Flask 3.x |
53-
| --------- | -------------------- | -------------------- | -------------------- |"""
45+
| Extension Repository | Latest version | Downloads | Build with latest Flask (3.x) |
46+
| -------------------- | --------------- | ---------- | ----------------------------- |"""
5447

5548
table_row_template = "| [{{ repo }}](https://github.com/{{ repo }}) " \
5649
"| ![PyPI - Version](https://img.shields.io/pypi/v/{{ package_name }}) " \
57-
"| ![PyPI - Downloads](https://img.shields.io/pypi/dm/{{ package_name }}?color=black) " \
50+
"| ![PyPI - Downloads](https://img.shields.io/pypi/dm/{{ package_name }}?color=darkgrey) " \
5851
"| ![build](https://github.com/greyli/flask-extension-status/actions/workflows/{{ package_name }}.yml/badge.svg) |"
5952

6053

54+
def get_extensions():
55+
"""get extensions info from extensions.yml"""
56+
with open(basedir / 'extensions.yml') as f:
57+
return yaml.safe_load(f)
58+
59+
6160
def gen_workflow(package_name, repo, import_string):
6261
template = Template(workflow_template)
6362
return template.render(
@@ -71,7 +70,7 @@ def update_readme_table():
7170
readme_file = basedir / 'README.md'
7271

7372
new_table = ''
74-
for package_name, info in extensions.items():
73+
for package_name, info in get_extensions().items():
7574
repo = info['repo']
7675
new_table += Template(table_row_template).render(
7776
package_name=package_name,
@@ -100,7 +99,7 @@ def update_readme_table():
10099

101100

102101
if __name__ == '__main__':
103-
for package_name, info in extensions.items():
102+
for package_name, info in get_extensions().items():
104103
repo = info['repo']
105104
import_string = info['import_string']
106105
workflow = gen_workflow(package_name, repo, import_string)

requirements.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
jinja2
2+
pyyaml

requirements.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#
2-
# This file is autogenerated by pip-compile with Python 3.10
2+
# This file is autogenerated by pip-compile with Python 3.11
33
# by the following command:
44
#
55
# pip-compile
@@ -8,3 +8,5 @@ jinja2==3.1.2
88
# via -r requirements.in
99
markupsafe==2.1.3
1010
# via jinja2
11+
pyyaml==6.0.1
12+
# via -r requirements.in

0 commit comments

Comments
 (0)