Skip to content

Commit 9252d17

Browse files
Merge pull request #84 from GiacomoPope/0.4.5
Bump version to 0.5.0
2 parents 58650b6 + 05f57cd commit 9252d17

File tree

7 files changed

+77
-24
lines changed

7 files changed

+77
-24
lines changed

README.md

+68-15
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,33 @@ Author: Fredrik Johansson <[email protected]>
1818
Installation
1919
------------
2020

21-
For Windows (x86-64) or OSX (x86-64 or arm64) or Linux (x86-64
22-
`manylinux_2_17`) there are binary wheels for python-flint on PyPI. For these
23-
platforms python-flint can be installed simply with `pip`
21+
Currently python-flint supports CPython versions 3.9-3.12. For Windows (x86-64)
22+
or OSX (x86-64 or arm64) or Linux (x86-64 `manylinux_2_17`) there are CPython
23+
binary wheels for python-flint on PyPI. For these platforms python-flint can be
24+
installed simply with `pip`
2425

2526
pip install python-flint
2627

2728
Alternatively python-flint can be installed using `conda`
2829

2930
conda install -c conda-forge python-flint
3031

32+
It is also possible to use python-flint with some PyPy versions. Binary wheels
33+
are not provided for this on PyPI but can be installed with conda.
34+
3135
Build from source
3236
-----------------
3337

3438
For other platforms or architectures installation needs to build from source.
35-
First install both FLINT 2.9.0 and Arb 2.23. Note that for python-flint 0.4
36-
only these *exact* versions of FLINT and Arb will work. While some Linux
37-
distributions may provide FLINT and Arb it is unlikely that they will provide
38-
the exact versions required (e.g. for Ubuntu only Ubuntu 23.04 provides these
39-
versions at the time of writing).
39+
First install FLINT 3.0.0. Note that as of python-flint 0.5.0 only this *exact*
40+
version of FLINT will work. In future it is hoped that the version requirement
41+
for python-flint will be FLINT >= 3.0.0 but at the time of writing 3.0.0 is the
42+
newest version of FLINT that has only been released recently and is the only
43+
version that is supported by python-flint.
4044

41-
See here for instructions on building FLINT and Arb:
45+
See here for instructions on building FLINT:
4246

4347
* http://flintlib.org/
44-
* http://arblib.org/
4548

4649
The latest release of Python-FLINT can then be built and installed using:
4750

@@ -54,13 +57,13 @@ as follows:
5457
pip install 'cython>=3' numpy wheel
5558
pip install --no-build-isolation .
5659

57-
A script that builds and installs FLINT, Arb and Python-FLINT that is tested on
60+
A script that builds and installs FLINT and python-flint that is tested on
5861
Ubuntu can be found in the git repo here:
5962

6063
* https://github.com/flintlib/python-flint/blob/master/bin/pip_install_ubuntu.sh
6164

6265
See the documentation for further notes on building and installing
63-
Python-FLINT:
66+
python-flint:
6467

6568
* https://fredrikj.net/python-flint/setup.html
6669

@@ -112,11 +115,12 @@ To do
112115
-------------------------------------
113116

114117
* Write more tests and add missing docstrings
115-
* Wrap missing flint types: finite fields, p-adic numbers, multiprecision integer mods, rational functions
118+
* Wrap missing flint types: finite fields, p-adic numbers, rational functions
116119
* Vector or array types (maybe)
117120
* Many convenience methods
118121
* Write generic implementations of functions missing for specific FLINT types
119-
* Proper handling of special values in various places (throwing Python exceptions instead of aborting, etc.)
122+
* Proper handling of special values in various places (throwing Python
123+
exceptions instead of aborting, etc.)
120124
* Various automatic conversions
121125
* Conversions to and from external types (numpy, sage, sympy, mpmath, gmpy)
122126
* Improved printing and string input/output
@@ -127,7 +131,56 @@ CHANGELOG
127131

128132
0.5.0
129133

130-
- gh-63: The `roots` method of `arb_poly`, and `nmod_poly` is no longer supported. Use `acb_roots(p).roots()` to get the old behaviour of returning the roots as `acb`. Note that the `roots` method of `fmpz_poly` and `fmpq_poly` currently returns the complex roots of the polynomial.
134+
Important compatibility changes:
135+
136+
- gh-80, gh-94, gh-98: Switch from Flint 2.9 to Flint 3.
137+
- gh-100: Supports Python 3.12 by using setuptools instead of numpy.distutils.
138+
139+
New features:
140+
141+
- gh-87: Adds `fmpz_mod_poly` type for polynomials over `fmpz_mod`.
142+
- gh-85: Adds discrete logarithms to `fmpz_mod`.
143+
- gh-83: Introduces the `fmpz_mod` type for multi-precision integer mods.
144+
145+
Bug fixes:
146+
147+
- gh-93: Fixes a bug with `pow(int, int, fmpz)` which previously gave incorrect
148+
results.
149+
- gh-78, gh-79: minor fixes for the `nmod` type.
150+
151+
0.4.4
152+
153+
- gh-75, gh-77: finish bulk of the work in refactoring `python-flint` into
154+
submodules
155+
- gh-72: The roots method of `arb_poly` is not supported. Use either the
156+
`complex_roots` method or `acb_roots(p).roots()` to get the old behaviour of
157+
returning the complex roots. The `roots` method on `fmpz_poly` and
158+
`fmpq_poly` now return integer and rational roots respectively. To access
159+
complex roots on these types, use the `complex_roots` method. For `acb_poly`,
160+
both `roots` and `complex_roots` behave the same
161+
- gh-71: Include files in sdist and fix issue gh-70
162+
- gh-67: Continue refactoring job to introduce submodules into `python-flint`
163+
164+
0.4.3
165+
166+
- gh-63: The `roots` method of `arb_poly`, and `nmod_poly` is no longer
167+
supported. Use `acb_roots(p).roots()` to get the old behaviour of returning
168+
the roots as `acb`. Note that the `roots` method of `fmpz_poly` and
169+
`fmpq_poly` currently returns the complex roots of the polynomial.
170+
- gh-61: Start refactoring job to introduce submodules into `python-flint`
171+
172+
0.4.2
173+
174+
- gh-57: Adds manylinux wheels
175+
176+
0.4.1
177+
178+
- gh-47: Removes Linux wheels, updates instructions for building from source.
179+
180+
0.4.0
181+
182+
- gh-45: Adds wheels for Windows, OSX and manylinux but the Linux wheels are
183+
broken.
131184

132185
License
133186
------------

bin/build_mingw64_wheel.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ fi
4444
PYTHON=$PYTHONDIR/python
4545
VER="${PYTHONVER//./}"
4646

47-
WHEELNAME=python_flint-0.4.4-cp$VER-cp$VER-win_amd64.whl
47+
WHEELNAME=python_flint-0.5.0-cp$VER-cp$VER-win_amd64.whl
4848

4949
$PYTHON -c 'print("hello world")'
5050

@@ -90,7 +90,7 @@ wheel pack python_flint-*
9090
cd ..
9191

9292
# Make the wheel relocatable
93-
delvewheel repair dist/python_flint-0.4.4-cp$VER-cp$VER-win_amd64.whl \
93+
delvewheel repair dist/python_flint-0.5.0-cp$VER-cp$VER-win_amd64.whl \
9494
--add-path .local/bin:.local/lib/
9595

9696
# Make a virtual enironment to test the wheel

bin/pip_install_ubuntu.sh

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ sudo apt-get update
1919
sudo apt-get install libgmp-dev libmpfr-dev xz-utils
2020

2121
# Only Flint 3 or newer will work.
22-
FLINTVER=3.0.0-alpha1
22+
FLINTVER=3.0.0
2323

2424
# This will default to installing in /usr/local. If you want to install in a
2525
# non-standard location then configure flint with
2626
# ./configure --disable-static --prefix=$PREFIX
27-
# If $PREFIX is no in default search paths, then at build time set
27+
# If $PREFIX is not in default search paths, then at build time set
2828
# export C_INCLUDE_PATH=$PREFIX/include
2929
# and at runtime set
3030
# export LD_LIBRARY_PATH=$PREFIX/lib

doc/source/conf.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@
5151
# built documents.
5252
#
5353
# The short X.Y version.
54-
version = '0.4.4'
54+
version = '0.5.0'
5555
# The full version, including alpha/beta/rc tags.
56-
release = '0.4.4'
56+
release = '0.5.0'
5757

5858
# The language for content autogenerated by Sphinx. Refer to documentation
5959
# for a list of supported languages.

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@
133133
description='Bindings for FLINT and Arb',
134134
long_description=open('README.md').read(),
135135
long_description_content_type='text/markdown',
136-
version='0.4.4',
136+
version='0.5.0',
137137
url='https://github.com/flintlib/python-flint',
138138
author='Fredrik Johansson',
139139
author_email='[email protected]',

src/flint/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@
2626
from .types.dirichlet import *
2727
from .functions.showgood import showgood
2828

29-
__version__ = '0.4.4'
29+
__version__ = '0.5.0'

src/flint/test/test.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ def raises(f, exception):
3535

3636
def test_pyflint():
3737

38-
assert flint.__version__ == "0.4.4"
38+
assert flint.__version__ == "0.5.0"
3939

4040
ctx = flint.ctx
4141
assert str(ctx) == repr(ctx) == _default_ctx_string

0 commit comments

Comments
 (0)