Skip to content

Commit

Permalink
Merge pull request #556 from nucleic/py313
Browse files Browse the repository at this point in the history
Python 3.13 support
  • Loading branch information
MatthieuDartiailh authored Oct 28, 2024
2 parents 213492e + 024c4b1 commit 6a74ccf
Show file tree
Hide file tree
Showing 506 changed files with 8,065 additions and 6,907 deletions.
106 changes: 0 additions & 106 deletions .appveyor.yml

This file was deleted.

19 changes: 8 additions & 11 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,29 +23,25 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
python-version: ['3.10', '3.11', '3.12', '3.13']
qt-version: [5, 6]
qt-binding: [pyqt, pyside]
exclude:
- python-version: '3.8'
os: macos-latest
- python-version: '3.9'
os: macos-latest
- python-version: '3.10'
qt-version: 5
qt-binding: pyside
# Segfaults on exit on all OSes (11/2023)
- python-version: '3.12'
qt-version: 6
qt-binding: pyside
- python-version: '3.11'
qt-version: 5
- python-version: '3.12'
qt-version: 5
- python-version: '3.9'
- python-version: '3.13'
qt-version: 5
- python-version: '3.12'
qt-version: 6
- python-version: '3.8'
qt-binding: pyside
- python-version: '3.13'
qt-version: 6
qt-binding: pyside
- os: ubuntu-latest
qt-version: 6
qt-binding: pyside
Expand Down Expand Up @@ -82,6 +78,7 @@ jobs:
pip install numpy
pip install git+https://github.com/nucleic/cppy@main
pip install git+https://github.com/nucleic/atom@main
pip install git+https://github.com/MatthieuDartiailh/bytecode@main
pip install git+https://github.com/nucleic/kiwi@main
- name: Install project (no-extras)
if: matrix.python-version != '3.10'
Expand Down
28 changes: 19 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- name: Store artifacts
uses: actions/upload-artifact@v4
with:
name: artifact
name: cibw-sdist
path: dist/*

build_wheels:
Expand All @@ -45,7 +45,7 @@ jobs:
strategy:
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
python: [38, 39, 310, 311, 312]
python: [310, 311, 312, 313]
steps:
- name: Checkout
uses: actions/checkout@v4
Expand All @@ -63,28 +63,37 @@ jobs:
python -m pip install wheel cibuildwheel
- name: Build wheels
env:
# On Windows, we explicitly request MSVC compilers (as GitHub Action runners have
# MinGW on PATH that would be picked otherwise), switch to a static build for
# runtimes, but use dynamic linking for `VCRUNTIME140.dll`, `VCRUNTIME140_1.dll`,
# and the UCRT. This avoids requiring specific versions of `MSVCP140.dll`, while
# keeping shared state with the rest of the Python process/extensions.
CIBW_CONFIG_SETTINGS_WINDOWS: >-
setup-args="--vsenv"
setup-args="-Db_vscrt=mt"
setup-args="-Dcpp_link_args=['ucrt.lib','vcruntime.lib','/nodefaultlib:libucrt.lib','/nodefaultlib:libvcruntime.lib']"
CIBW_BUILD: cp${{ matrix.python }}-*
CIBW_TEST_REQUIRES: pytest
CIBW_TEST_COMMAND: python -m pytest {package}/tests -v
# Disable FH4 to avoid linking against VC2014_1
ENAML_DISABLE_FH4: 1
run: |
python -m cibuildwheel . --output-dir dist
- name: Store artifacts
uses: actions/upload-artifact@v4
with:
name: artifact
name: cibw-wheels-${{ runner.os }}-${{ matrix.python }}
path: dist/*.whl

publish:
if: github.event_name == 'push'
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
- name: Download all the dists
uses: actions/[email protected]
with:
name: artifact
pattern: cibw-*
path: dist
merge-multiple: true

- uses: pypa/gh-action-pypi-publish@release/v1
with:
Expand All @@ -107,10 +116,11 @@ jobs:

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
uses: actions/download-artifact@v4.1.7
with:
name: artifact
pattern: cibw-*
path: dist
merge-multiple: true
- name: Sign the dists with Sigstore
uses: sigstore/[email protected]
with:
Expand Down
4 changes: 2 additions & 2 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ version: 2

# Set the version of Python and other tools you might need
build:
os: ubuntu-20.04
os: ubuntu-22.04
tools:
python: "3.9"
python: "3.12"

# Build documentation in the docs/source directory with Sphinx
sphinx:
Expand Down
4 changes: 2 additions & 2 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
Enaml is licensed under the terms of the Modified BSD License (also known as
New or Revised BSD), as follows:

Copyright (c) 2013, Nucleic Development Team
Copyright (c) 2013-2024, Nucleic Development Team
Copyright (c) 2013, Enthought, Inc.

All rights reserved.
Expand Down Expand Up @@ -88,7 +88,7 @@ With this in mind, the following banner should be used in any source code file
to indicate the copyright and license terms:

#------------------------------------------------------------------------------
# Copyright (c) 2013-2023, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
4 changes: 2 additions & 2 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
sphinx>=4
sphinx-rtd-theme>=1
sphinx
sphinx-rtd-theme
git+https://github.com/nucleic/cppy@main
git+https://github.com/nucleic/atom@main
git+https://github.com/nucleic/kiwi@main
Expand Down
2 changes: 1 addition & 1 deletion docs/source/_sphinxext/enamldoc.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
6 changes: 3 additions & 3 deletions docs/source/conf.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down Expand Up @@ -68,7 +68,7 @@

# General information about the project.
project = 'Enaml'
copyright = '2013-2023, Nucleic Development Team'
copyright = '2013-2024, Nucleic Development Team'

# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
Expand Down Expand Up @@ -292,7 +292,7 @@
epub_title = 'Enaml'
epub_author = 'Chris Colbert'
epub_publisher = 'Nucleic Development Team'
epub_copyright = '2013-2023, Nucleic Development Team'
epub_copyright = '2013-2024, Nucleic Development Team'

# The language of the text. It defaults to the language option
# or en if the language is not set.
Expand Down
2 changes: 1 addition & 1 deletion docs/source/examples/example_doc_generator.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013-2018, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/applib/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/applib/live_editor_model.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/applib/live_editor_view.enaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/application.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2014, Nucleic Development Team.
# Copyright (c) 2014-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/colors.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
8 changes: 3 additions & 5 deletions enaml/compat.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013-2023, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand All @@ -10,16 +10,14 @@
import codecs
import tokenize

PY38 = POS_ONLY_ARGS = sys.version_info >= (3, 8)

PY39 = sys.version_info >= (3, 9)

PY310 = sys.version_info >= (3, 10)

PY311 = sys.version_info >= (3, 11)

PY312 = sys.version_info >= (3, 12)

PY313 = sys.version_info >= (3, 13)

# Functions used to update the co_filename slot of a code object
# Available in Python 3.5+ (tested up to 3.8)
from _imp import _fix_co_filename
Expand Down
2 changes: 1 addition & 1 deletion enaml/compile_all.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2018, Nucleic Development Team.
# Copyright (c) 2018-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
2 changes: 1 addition & 1 deletion enaml/core/api.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#------------------------------------------------------------------------------
# Copyright (c) 2013, Nucleic Development Team.
# Copyright (c) 2013-2024, Nucleic Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
Expand Down
Loading

0 comments on commit 6a74ccf

Please sign in to comment.