diff --git a/.github/workflows/checkpr.yml b/.github/workflows/checkpr.yml new file mode 100644 index 0000000..913181a --- /dev/null +++ b/.github/workflows/checkpr.yml @@ -0,0 +1,28 @@ +name: checkpr + +on: + pull_request: + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: [3.9, "3.10", "3.11", "3.12", "3.13"] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install deploy dependencies + run: pip install .[deploy] + - name: Install test dependencies + run: pip install .[test] + - name: Install code dependencies + run: pip install . + - name: Lint with pylint + run: pylint -E src + - name: Scan security vulnerabilities with bandit + run: bandit -c pyproject.toml -r . diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 63dc427..6905426 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,5 +1,11 @@ # PyMandel Release Notes +### RELEASE 1.0.15 + +CHANGES: + +1. Remove pinned numpy dependency. + ### RELEASE 1.0.14 CHANGES: diff --git a/pyproject.toml b/pyproject.toml index c51e0b8..f1f89e6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -41,7 +41,7 @@ classifiers = [ "Topic :: Utilities", ] -dependencies = ["numba>=0.60.0", "numpy>=2.0.0,<2.2.0", "Pillow>=9.3.0"] +dependencies = ["numba>=0.60.0", "numpy>=2.0.0", "Pillow>=9.3.0"] [project.scripts] pymandel = "pymandel.__main__:main" diff --git a/src/pymandel.egg-info/PKG-INFO b/src/pymandel.egg-info/PKG-INFO index e04f394..b603139 100644 --- a/src/pymandel.egg-info/PKG-INFO +++ b/src/pymandel.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 2.4 Name: pymandel -Version: 1.0.14 +Version: 1.0.15 Summary: Fractal generation GUI application Author-email: semuadmin Maintainer-email: semuadmin @@ -706,7 +706,7 @@ Requires-Python: >=3.9 Description-Content-Type: text/markdown License-File: LICENSE Requires-Dist: numba>=0.60.0 -Requires-Dist: numpy<2.2.0,>=2.0.0 +Requires-Dist: numpy>=2.0.0 Requires-Dist: Pillow>=9.3.0 Provides-Extra: deploy Requires-Dist: build; extra == "deploy" @@ -737,31 +737,31 @@ Dynamic: license-file PyMandel is a free, open-source graphical Mandelbrot and Julia Set rendering application written entirely in Python 3 and tkinter 8.6, with metadata import/export, basic animation functionality and performance enhancement via [Numba](http://numba.pydata.org/) JIT compilation, parallelisation and caching. -![MacOS screenshot](https://github.com/semuconsulting/PyMandel/blob/main/images/burning_julia.png?raw=true) +![MacOS screenshot](https://github.com/semuadmin/PyMandel/blob/main/images/burning_julia.png?raw=true) The application plots fractals in an expandable window and allows the user to save the image as a .png file. It automatically saves the metadata (settings) associated with an image and provides a facility to import that metadata at a later date to reproduce it. It supports popular variants such as 'Burning Ship' and 'Tricorn'. -![image0](https://github.com/semuconsulting/PyMandel/blob/main/images/image0.png?raw=true) -![image1](https://github.com/semuconsulting/PyMandel/blob/main/images/image1.png?raw=true) -![image2](https://github.com/semuconsulting/PyMandel/blob/main/images/image2.png?raw=true) +![image0](https://github.com/semuadmin/PyMandel/blob/main/images/image0.png?raw=true) +![image1](https://github.com/semuadmin/PyMandel/blob/main/images/image1.png?raw=true) +![image2](https://github.com/semuadmin/PyMandel/blob/main/images/image2.png?raw=true) -![image3](https://github.com/semuconsulting/PyMandel/blob/main/images/image3.png?raw=true) -![image5](https://github.com/semuconsulting/PyMandel/blob/main/images/image5.png?raw=true) -![image6](https://github.com/semuconsulting/PyMandel/blob/main/images/image6.png?raw=true) +![image3](https://github.com/semuadmin/PyMandel/blob/main/images/image3.png?raw=true) +![image5](https://github.com/semuadmin/PyMandel/blob/main/images/image5.png?raw=true) +![image6](https://github.com/semuadmin/PyMandel/blob/main/images/image6.png?raw=true) It also includes both GUI and command line facilities to automatically create sequences of 'deep zoom' or 'spinning Julia Set' images which can be converted into animated GIF files or short videos using external open source tools (e.g. GIMP or OpenShot). ## Current Status ![Status](https://img.shields.io/pypi/status/PyMandel) -![Release](https://img.shields.io/github/v/release/semuconsulting/PyMandel) -![Build](https://img.shields.io/github/actions/workflow/status/semuconsulting/PyMandel/main.yml?branch=master) -![Release Date](https://img.shields.io/github/release-date-pre/semuconsulting/PyMandel) -![Last Commit](https://img.shields.io/github/last-commit/semuconsulting/PyMandel) -![Contributors](https://img.shields.io/github/contributors/semuconsulting/PyMandel.svg) -![Open Issues](https://img.shields.io/github/issues-raw/semuconsulting/PyMandel) +![Release](https://img.shields.io/github/v/release/semuadmin/PyMandel) +![Build](https://img.shields.io/github/actions/workflow/status/semuadmin/PyMandel/main.yml?branch=master) +![Release Date](https://img.shields.io/github/release-date-pre/semuadmin/PyMandel) +![Last Commit](https://img.shields.io/github/last-commit/semuadmin/PyMandel) +![Contributors](https://img.shields.io/github/contributors/semuadmin/PyMandel.svg) +![Open Issues](https://img.shields.io/github/issues-raw/semuadmin/PyMandel) -PyMandel is intended as free, open-source educational fun. We're not looking to compete with the likes of Ultra Fractal © here, but contributions are very welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuconsulting/PyMandel/blob/main/CONTRIBUTING.md). +PyMandel is intended as free, open-source educational fun. We're not looking to compete with the likes of Ultra Fractal © here, but contributions are very welcome - please refer to [CONTRIBUTING.MD](https://github.com/semuadmin/PyMandel/blob/main/CONTRIBUTING.md). ### Animated Mandelbrot Zoom sequence @@ -771,14 +771,14 @@ This 178 frame, 10 fps sequence was automatically generated using the `mandelcli mandelcli --filename zoom --width 400 --height 300 --frames 178 --zoom 0.75 --zoominc 1.2 --zxoffset -0.743643887037158704752191506114774 --zyoffset 0.131825904205311970493132056385139 --theme Colorcet_CET_C1 ``` -![Zoom Animation](https://github.com/semuconsulting/PyMandel/blob/main/images/zoom.gif?raw=true) +![Zoom Animation](https://github.com/semuadmin/PyMandel/blob/main/images/zoom.gif?raw=true) ### Animated Julia Spin sequences These 400 frame, 20 fps sequences were automatically generated using the GUI's SPIN function and converted into animated GIF files using GIMP. The second sequence illustrates a Julia Set with exponent = 3. -![Spin Animation](https://github.com/semuconsulting/PyMandel/blob/main/images/juliaspin.gif?raw=true) ![Spin Animation Exponent = 3](https://github.com/semuconsulting/PyMandel/blob/main/images/juliaspin_exp3.gif?raw=true) +![Spin Animation](https://github.com/semuadmin/PyMandel/blob/main/images/juliaspin.gif?raw=true) ![Spin Animation Exponent = 3](https://github.com/semuadmin/PyMandel/blob/main/images/juliaspin_exp3.gif?raw=true) ### Sample Metadata @@ -915,7 +915,7 @@ The application makes use of [Numba](http://numba.pydata.org/) just in time (jit * Save button - save the currently displayed image as a PNG file. You will be prompted for a directory on first use. A corresponding metadata json file will also be saved containing the parameters that were used to create the image, allowing it to be reproduced at a later date. -* File..Import Settings - import previously saved metadata. You will be prompted to select a json file to import. Some sample *.json files can be found in the [Images](https://github.com/semuconsulting/PyMandel/blob/main/images) folder +* File..Import Settings - import previously saved metadata. You will be prompted to select a json file to import. Some sample *.json files can be found in the [Images](https://github.com/semuadmin/PyMandel/blob/main/images) folder * Zoom button - automatically create and save a sequence of images at increasing zoom levels, which can be converted externally into an animation (e.g. GIF or short video). @@ -996,13 +996,13 @@ Pass `-h` or `-help` for a list of available parameters. ## Author and License -![License](https://img.shields.io/github/license/semuconsulting/PyMandel.svg) +![License](https://img.shields.io/github/license/semuadmin/PyMandel.svg) GPLv3 License Copyright (c) 2020, SEMU Consulting All rights reserved. -semuadmin@semuconsulting.com +semuadmin@semuadmin.com The HoloViz [Colorcet color maps](https://github.com/holoviz/colorcet) library has been harvested for some of the color rendering themes. These color maps are released under a Creative Commons Attribution 4.0 International Public License (CC-BY) - see [Colorcet License Conditions](https://github.com/holoviz/colorcet/blob/main/LICENSE.txt) for details. ***NB:*** for convenience the selected Colorcet assets (256-depth cyclic color maps) were converted into numpy rgb arrays in colormaps.py and the library itself is not actually used at runtime. @@ -1011,6 +1011,6 @@ The HoloViz [Colorcet color maps](https://github.com/holoviz/colorcet) library h [![Donations](https://www.paypalobjects.com/en_GB/i/btn/btn_donate_LG.gif)](https://www.paypal.com/donate/?business=UL24WUA4XHNRY&no_recurring=1&item_name=Any+donations%2C+however+small%2C+will+help+further+the+development+of+these+projects.+Many+thanks%21¤cy_code=GBP) -You may also like this - an online [JavaScript version of a Fractal Generator](https://github.com/Algol-Variables/fractal-generator) with similar functionality: +You may also like this - an online [JavaScript version of a Fractal Generator](https://github.com/semuadmin/fractal-generator) with similar functionality: https://www.algolvariables.com/fractals/index.html diff --git a/src/pymandel.egg-info/requires.txt b/src/pymandel.egg-info/requires.txt index 76befe7..59e8e3f 100644 --- a/src/pymandel.egg-info/requires.txt +++ b/src/pymandel.egg-info/requires.txt @@ -1,5 +1,5 @@ numba>=0.60.0 -numpy<2.2.0,>=2.0.0 +numpy>=2.0.0 Pillow>=9.3.0 [deploy] diff --git a/src/pymandel/_version.py b/src/pymandel/_version.py index e8ef1fd..e749277 100644 --- a/src/pymandel/_version.py +++ b/src/pymandel/_version.py @@ -2,4 +2,4 @@ Version for PyMandel Application. """ -__version__ = "1.0.14" +__version__ = "1.0.15"