Skip to content

Commit f1ed4db

Browse files
authored
Merge pull request #15 from sp35/master
Port genicons.py to Python3 from Python2
2 parents 79b6ec7 + 72a430c commit f1ed4db

File tree

2 files changed

+13
-11
lines changed

2 files changed

+13
-11
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ located at [`scripts/genicons.py`](scripts/genicons.py).
1717
### Install
1818

1919
1. Assuming the repository is on Debian
20-
2. Install required Python 2 packages:
20+
2. Install Python 3 and required Python 3 packages:
2121

2222
```shell
23-
sudo apt-get install python-cairo python-gtk2
23+
sudo apt-get install gir1.2-pango-1.0 python3-gi-cairo
2424
```
2525

2626
3. Install CC Icons font
@@ -33,10 +33,10 @@ located at [`scripts/genicons.py`](scripts/genicons.py).
3333

3434
### Usage
3535

36-
Execute with Python 2:
36+
Execute with Python 3:
3737

3838
```shell
39-
python genicons.py
39+
python3 scripts/genicons.py
4040
```
4141

4242
This will generate the icons in the directory `www/i` directory.

scripts/genicons.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,10 @@
99

1010
# Third-party
1111
import cairo
12-
import pangocairo
12+
import gi
13+
gi.require_version('PangoCairo', '1.0')
14+
from gi.repository import PangoCairo as pangocairo
15+
from functools import reduce
1316

1417

1518
SUITES = {
@@ -79,8 +82,7 @@ def show_chars(ctx, chars, foreground, padding, width, height):
7982

8083
def create_context(width, height):
8184
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
82-
context = cairo.Context(surface)
83-
ctx = pangocairo.CairoContext(context)
85+
ctx = cairo.Context(surface)
8486
return ctx
8587

8688

@@ -128,7 +130,7 @@ def genicon(
128130
return ctx
129131

130132

131-
font_map = pangocairo.cairo_font_map_get_default()
133+
font_map = pangocairo.font_map_get_default()
132134
font_families = [family.get_name() for family in font_map.list_families()]
133135
if "CC Icons" not in font_families:
134136
raise Exception(
@@ -139,10 +141,10 @@ def genicon(
139141
basedir = os.path.realpath(
140142
os.path.abspath(os.path.join(script_dir, "..", "www", "i"))
141143
)
142-
print "# basedir:", basedir
144+
print("# basedir:", basedir)
143145

144-
for suite, licenses in SUITES.iteritems():
145-
for lic, module_chars in licenses.iteritems():
146+
for suite, licenses in SUITES.items():
147+
for lic, module_chars in licenses.items():
146148
for chars in module_chars:
147149
for dimensions in DIMENSIONS:
148150
for background in BACKGROUNDS:

0 commit comments

Comments
 (0)