Skip to content

Commit bbf9d05

Browse files
authored
Merge pull request #350 from fonttools/housekeeping
Housekeeping
2 parents 3a9644b + 2a3dc34 commit bbf9d05

File tree

11 files changed

+197
-224
lines changed

11 files changed

+197
-224
lines changed

.github/workflows/ci.yml

Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -12,66 +12,66 @@ jobs:
1212
runs-on: ubuntu-latest
1313

1414
steps:
15-
- uses: actions/checkout@v2
16-
- name: Set up Python
17-
uses: actions/setup-python@v2
18-
with:
19-
python-version: '3.x'
20-
- name: Lint
21-
run: |
22-
pip install tox
23-
tox -e lint
15+
- uses: actions/checkout@v4
16+
- name: Set up Python
17+
uses: actions/setup-python@v4
18+
with:
19+
python-version: "3.x"
20+
- name: Lint
21+
run: |
22+
pip install tox
23+
tox -e lint
2424
25-
docs: # To see if they build.
25+
docs: # To see if they build.
2626
runs-on: ubuntu-latest
2727

2828
steps:
29-
- uses: actions/checkout@v2
30-
- name: Set up Python
31-
uses: actions/setup-python@v2
32-
with:
33-
python-version: '3.x'
34-
- name: Lint
35-
run: |
36-
pip install tox
37-
tox -e docs
29+
- uses: actions/checkout@v4
30+
- name: Set up Python
31+
uses: actions/setup-python@v4
32+
with:
33+
python-version: "3.x"
34+
- name: Lint
35+
run: |
36+
pip install tox
37+
tox -e docs
3838
3939
test:
4040
runs-on: ${{ matrix.platform }}
4141
strategy:
4242
matrix:
43-
python-version: ['3.8', '3.11']
43+
python-version: ["3.8", "3.13"]
4444
platform: [ubuntu-latest, windows-latest]
4545

4646
steps:
47-
- uses: actions/checkout@v2
48-
- name: Set up Python ${{ matrix.python-version }}
49-
uses: actions/setup-python@v2
50-
with:
51-
python-version: ${{ matrix.python-version }}
52-
- name: Install packages
53-
run: pip install tox coverage
54-
- name: Run Tox
55-
run: tox -e py-cov
56-
- name: Re-run Tox without cattrs
57-
if: startsWith(matrix.platform, 'ubuntu-latest') && startsWith(matrix.python-version, '3.11')
58-
run: |
59-
tox -e py-nocattrs
60-
- name: Re-run Tox without msgpack
61-
if: startsWith(matrix.platform, 'ubuntu-latest') && startsWith(matrix.python-version, '3.10')
62-
run: |
63-
tox -e py-nomsgpack
64-
- name: Produce coverage files
65-
run: |
66-
coverage combine
67-
coverage xml
68-
- name: Upload coverage to Codecov
69-
uses: codecov/codecov-action@v1
70-
with:
71-
file: coverage.xml
72-
flags: unittests
73-
name: codecov-umbrella
74-
fail_ci_if_error: false
47+
- uses: actions/checkout@v4
48+
- name: Set up Python ${{ matrix.python-version }}
49+
uses: actions/setup-python@v4
50+
with:
51+
python-version: ${{ matrix.python-version }}
52+
- name: Install packages
53+
run: pip install tox coverage
54+
- name: Run Tox
55+
run: tox -e py-cov
56+
- name: Re-run Tox without cattrs
57+
if: startsWith(matrix.platform, 'ubuntu-latest') && startsWith(matrix.python-version, '3.13')
58+
run: |
59+
tox -e py-nocattrs
60+
- name: Re-run Tox without msgpack
61+
if: startsWith(matrix.platform, 'ubuntu-latest') && startsWith(matrix.python-version, '3.13')
62+
run: |
63+
tox -e py-nomsgpack
64+
- name: Produce coverage files
65+
run: |
66+
coverage combine
67+
coverage xml
68+
- name: Upload coverage to Codecov
69+
uses: codecov/codecov-action@v1
70+
with:
71+
file: coverage.xml
72+
flags: unittests
73+
name: codecov-umbrella
74+
fail_ci_if_error: false
7575

7676
deploy:
7777
# only run if the commit is tagged...
@@ -84,19 +84,19 @@ jobs:
8484
runs-on: ubuntu-latest
8585

8686
steps:
87-
- uses: actions/checkout@v2
88-
- name: Set up Python
89-
uses: actions/setup-python@v2
90-
with:
91-
python-version: '3.x'
92-
- name: Install dependencies
93-
run: |
94-
pip install build twine
95-
- name: Build and publish
96-
env:
97-
TWINE_USERNAME: __token__
98-
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
99-
run: |
100-
python -m build
101-
twine check dist/*
102-
twine upload dist/*
87+
- uses: actions/checkout@v4
88+
- name: Set up Python
89+
uses: actions/setup-python@v4
90+
with:
91+
python-version: "3.x"
92+
- name: Install dependencies
93+
run: |
94+
pip install build twine
95+
- name: Build and publish
96+
env:
97+
TWINE_USERNAME: __token__
98+
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
99+
run: |
100+
python -m build
101+
twine check dist/*
102+
twine upload dist/*

mypy.ini

Lines changed: 0 additions & 36 deletions
This file was deleted.

pyproject.toml

Lines changed: 74 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,85 @@
11
[build-system]
2-
requires = ["setuptools>=45", "wheel", "setuptools_scm>=6.2"]
2+
requires = ["setuptools>=61.2", "wheel", "setuptools_scm>=6.2"]
33
build-backend = "setuptools.build_meta"
44

5+
[project]
6+
name = "ufoLib2"
7+
description = "ufoLib2 is a UFO font processing library."
8+
authors = [{ name = "Adrien Tétar", email = "[email protected]" }]
9+
license = { text = "Apache 2.0" }
10+
classifiers = [
11+
"Development Status :: 4 - Beta",
12+
"Operating System :: OS Independent",
13+
"Programming Language :: Python :: 3",
14+
"Intended Audience :: Developers",
15+
"Intended Audience :: End Users/Desktop",
16+
"Topic :: Text Processing :: Fonts",
17+
"License :: OSI Approved :: Apache Software License",
18+
]
19+
urls = { Homepage = "https://github.com/fonttools/ufoLib2" }
20+
requires-python = ">=3.8"
21+
dependencies = ["attrs >= 22.1.0", "fonttools[ufo] >= 4.0.0"]
22+
dynamic = ["version"]
23+
24+
[project.readme]
25+
file = "README.md"
26+
content-type = "text/markdown"
27+
28+
[project.optional-dependencies]
29+
lxml = ["lxml"]
30+
converters = ["cattrs >= 22.2.0"]
31+
json = ["cattrs >= 22.2.0", "orjson ; platform_python_implementation != 'PyPy'"]
32+
msgpack = ["cattrs >= 22.2.0", "msgpack"]
33+
34+
[tool.setuptools]
35+
package-dir = { "" = "src" }
36+
license-files = ["LICENSE"]
37+
include-package-data = false
38+
39+
# https://www.python.org/dev/peps/pep-0561
40+
[tool.setuptools.package-data]
41+
"*" = ["py.typed"]
42+
43+
[tool.setuptools.packages.find]
44+
where = ["src"]
45+
namespaces = false
46+
47+
[tool.setuptools_scm]
48+
write_to = "src/ufoLib2/_version.py"
49+
550
[tool.black]
6-
target-version = ["py37"]
51+
target-version = ["py38"]
752

853
[tool.isort]
954
multi_line_output = 3
1055
profile = "black"
1156
float_to_top = true
1257
known_first_party = "ufoLib2"
1358

14-
[tool.setuptools_scm]
15-
write_to = "src/ufoLib2/_version.py"
59+
[tool.pytest.ini_options]
60+
minversion = "6.0"
61+
testpaths = ["tests", "ufoLib2"]
62+
addopts = "-ra --doctest-modules --doctest-ignore-import-errors --pyargs"
63+
doctest_optionflags = ["ALLOW_UNICODE", "ELLIPSIS"]
64+
filterwarnings = [
65+
"ignore::DeprecationWarning:fs",
66+
"ignore::DeprecationWarning:pkg_resources",
67+
]
68+
69+
[tool.mypy]
70+
python_version = "3.8"
71+
disallow_incomplete_defs = true
72+
no_implicit_optional = true
73+
strict_optional = true
74+
warn_no_return = true
75+
warn_redundant_casts = true
76+
warn_unreachable = true
77+
strict_equality = true
78+
79+
[[tool.mypy.overrides]]
80+
module = "ufoLib2.*"
81+
disallow_untyped_defs = true
82+
83+
[[tool.mypy.overrides]]
84+
module = ["fontTools.*", "ufoLib2._version"]
85+
ignore_missing_imports = true

requirements-dev.txt

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,52 @@
1-
#
2-
# This file is autogenerated by pip-compile with Python 3.11
3-
# by the following command:
4-
#
5-
# pip-compile --output-file=requirements-dev.txt requirements-dev.in
6-
#
7-
black==23.11.0
1+
# This file was autogenerated by uv via the following command:
2+
# uv pip compile --python 3.8 requirements-dev.in
3+
black==24.8.0
84
# via -r requirements-dev.in
95
click==8.1.7
106
# via black
11-
coverage==7.3.2
7+
coverage==7.6.1
128
# via -r requirements-dev.in
13-
flake8==6.1.0
9+
exceptiongroup==1.2.2
10+
# via
11+
# -c requirements.txt
12+
# pytest
13+
flake8==7.1.1
1414
# via -r requirements-dev.in
1515
iniconfig==2.0.0
1616
# via pytest
17-
isort==5.12.0
17+
isort==5.13.2
1818
# via -r requirements-dev.in
1919
mccabe==0.7.0
2020
# via flake8
21-
mypy==1.7.1
21+
mypy==1.12.1
2222
# via -r requirements-dev.in
2323
mypy-extensions==1.0.0
2424
# via
2525
# black
2626
# mypy
27-
packaging==23.2
27+
packaging==24.1
2828
# via
2929
# black
3030
# pytest
31-
pathspec==0.11.2
31+
pathspec==0.12.1
3232
# via black
33-
platformdirs==4.0.0
33+
platformdirs==4.3.6
3434
# via black
35-
pluggy==1.3.0
35+
pluggy==1.5.0
3636
# via pytest
37-
pycodestyle==2.11.1
37+
pycodestyle==2.12.1
3838
# via flake8
39-
pyflakes==3.1.0
39+
pyflakes==3.2.0
4040
# via flake8
41-
pytest==7.4.3
41+
pytest==8.3.3
4242
# via -r requirements-dev.in
43-
typing-extensions==4.8.0
44-
# via mypy
43+
tomli==2.0.2
44+
# via
45+
# black
46+
# mypy
47+
# pytest
48+
typing-extensions==4.12.2
49+
# via
50+
# -c requirements.txt
51+
# black
52+
# mypy

0 commit comments

Comments
 (0)