Repository: PyCOMPLETE/PyHEADTAIL (language: python)

Issue:
Bump pillow from 8.1.1 to 8.2.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.1.1 to 8.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/python-pillow/Pillow/releases">pillow's releases</a>.</em></p>
<blockquote>
<h2>8.2.0</h2>
<p><a href="https://pillow.readthedocs.io/en/stable/releasenotes/8.2.0.html">https://pillow.readthedocs.io/en/stable/releasenotes/8.2.0.html</a></p>
<h2>Changes</h2>
<ul>
<li>Security fixes for 8.2.0 <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5377">#5377</a> [<a href="https://github.com/hugovk"><code>@​hugovk</code></a>]</li>
<li>Move getxmp() to JpegImageFile <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5376">#5376</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added getxmp() method <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5144">#5144</a> [<a href="https://github.com/UrielMaD"><code>@​UrielMaD</code></a>]</li>
<li>Compile LibTIFF with CMake on Windows <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5359">#5359</a> [<a href="https://github.com/nulano"><code>@​nulano</code></a>]</li>
<li>Add ImageShow support for GraphicsMagick <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5349">#5349</a> [<a href="https://github.com/latosha-maltba"><code>@​latosha-maltba</code></a>]</li>
<li>Tiff crash fixes in TiffDecode.c <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5372">#5372</a> [<a href="https://github.com/wiredfool"><code>@​wiredfool</code></a>]</li>
<li>Remove redundant check (addition to <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5364">#5364</a>) <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5366">#5366</a> [<a href="https://github.com/kkopachev"><code>@​kkopachev</code></a>]</li>
<li>Do not load transparent pixels from subsequent GIF frames <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5333">#5333</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Use LZW encoding when saving GIF images <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5291">#5291</a> [<a href="https://github.com/raygard"><code>@​raygard</code></a>]</li>
<li>Set all transparent colors to be equal in quantize() <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5282">#5282</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Allow PixelAccess to use Python <strong>int</strong> when parsing x and y <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5206">#5206</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Removed Image._MODEINFO <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5316">#5316</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Add preserve_tone option to autocontrast <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5350">#5350</a> [<a href="https://github.com/elejke"><code>@​elejke</code></a>]</li>
<li>Only import numpy when necessary <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5323">#5323</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Fixed linear_gradient and radial_gradient I and F modes <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5274">#5274</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Add support for reading TIFFs with PlanarConfiguration=2  <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5364">#5364</a> [<a href="https://github.com/wiredfool"><code>@​wiredfool</code></a>]</li>
<li>More OSS-Fuzz support <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5328">#5328</a> [<a href="https://github.com/wiredfool"><code>@​wiredfool</code></a>]</li>
<li>Do not premultiply alpha when resizing with Image.NEAREST resampling <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5304">#5304</a> [<a href="https://github.com/nulano"><code>@​nulano</code></a>]</li>
<li>Use quantization method attributes <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5353">#5353</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Dynamically link FriBiDi instead of Raqm <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5062">#5062</a> [<a href="https://github.com/nulano"><code>@​nulano</code></a>]</li>
<li>Removed build_distance_tables return value <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5363">#5363</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Allow fewer PNG palette entries than the bit depth maximum when saving <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5330">#5330</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Use duration from info dictionary when saving WebP <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5338">#5338</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Improved efficiency when creating GIF disposal images <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5326">#5326</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Stop flattening EXIF IFD into getexif() <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/4947">#4947</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Replaced tiff_deflate with tiff_adobe_deflate compression when saving TIFF images <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5343">#5343</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Save ICC profile from TIFF encoderinfo <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5321">#5321</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Moved RGB fix inside ImageQt class <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5268">#5268</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Fix -Wformat error in TiffDecode <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5305">#5305</a> [<a href="https://github.com/lukegb"><code>@​lukegb</code></a>]</li>
<li>Allow alpha_composite destination to be negative <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5313">#5313</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Ensure file is closed if it is opened by ImageQt.ImageQt <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5260">#5260</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added ImageDraw rounded_rectangle method <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5208">#5208</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Added IPythonViewer <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5289">#5289</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Only draw each rectangle outline pixel once <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5183">#5183</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Use mmap instead of built-in Win32 mapper <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5224">#5224</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Handle PCX images with an odd stride <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5214">#5214</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
<li>Only read different sizes for &quot;Large Thumbnail&quot; MPO frames <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5168">#5168</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
</ul>
<h2>Dependencies</h2>
<ul>
<li>Updated harfbuzz to 2.8.0 <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5334">#5334</a> [<a href="https://github.com/radarhere"><code>@​radarhere</code></a>]</li>
</ul>
<h2>Deprecations</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/python-pillow/Pillow/blob/master/CHANGES.rst">pillow's changelog</a>.</em></p>
<blockquote>
<h2>8.2.0 (2021-04-01)</h2>
<ul>
<li>
<p>Added getxmp() method <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5144">#5144</a>
[UrielMaD, radarhere]</p>
</li>
<li>
<p>Add ImageShow support for GraphicsMagick <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5349">#5349</a>
[latosha-maltba, radarhere]</p>
</li>
<li>
<p>Do not load transparent pixels from subsequent GIF frames <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5333">#5333</a>
[zewt, radarhere]</p>
</li>
<li>
<p>Use LZW encoding when saving GIF images <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5291">#5291</a>
[raygard]</p>
</li>
<li>
<p>Set all transparent colors to be equal in quantize() <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5282">#5282</a>
[radarhere]</p>
</li>
<li>
<p>Allow PixelAccess to use Python <strong>int</strong> when parsing x and y <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5206">#5206</a>
[radarhere]</p>
</li>
<li>
<p>Removed Image._MODEINFO <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5316">#5316</a>
[radarhere]</p>
</li>
<li>
<p>Add preserve_tone option to autocontrast <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5350">#5350</a>
[elejke, radarhere]</p>
</li>
<li>
<p>Fixed linear_gradient and radial_gradient I and F modes <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5274">#5274</a>
[radarhere]</p>
</li>
<li>
<p>Add support for reading TIFFs with PlanarConfiguration=2 <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5364">#5364</a>
[kkopachev, wiredfool, nulano]</p>
</li>
<li>
<p>Deprecated categories <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5351">#5351</a>
[radarhere]</p>
</li>
<li>
<p>Do not premultiply alpha when resizing with Image.NEAREST resampling <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5304">#5304</a>
[nulano]</p>
</li>
<li>
<p>Dynamically link FriBiDi instead of Raqm <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5062">#5062</a>
[nulano]</p>
</li>
<li>
<p>Allow fewer PNG palette entries than the bit depth maximum when saving <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5330">#5330</a>
[radarhere]</p>
</li>
<li>
<p>Use duration from info dictionary when saving WebP <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5338">#5338</a>
[radarhere]</p>
</li>
<li>
<p>Stop flattening EXIF IFD into getexif() <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/4947">#4947</a>
[radarhere, kkopachev]</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/python-pillow/Pillow/commit/e0e353c0ef7516979a9aedce3792596649ce4433"><code>e0e353c</code></a> 8.2.0 version bump</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/ee635befc6497f1c6c4fdb58c232e62d922ec8b7"><code>ee635be</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/python-pillow/Pillow/issues/5377">#5377</a> from hugovk/security-and-release-notes</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/694c84f88f4299319bac49b20bd9baae82ca41b8"><code>694c84f</code></a> Fix typo [ci skip]</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/8febdad8dd51ad5c75a1db78492973588c7cbf6b"><code>8febdad</code></a> Review, typos and lint</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/fea419665b75f11910e44cfe6f89622fda63e78b"><code>fea4196</code></a> Reorder, roughly alphabetic</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/496245aa4365d0827390bd0b6fbd11287453b3a1"><code>496245a</code></a> Fix BLP DOS -- CVE-2021-28678</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/22e9bee4ef225c0edbb9323f94c26cee0c623497"><code>22e9bee</code></a> Fix DOS in PSDImagePlugin -- CVE-2021-28675</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/ba65f0b08ee8b93195c3f3277820771f5b62aa52"><code>ba65f0b</code></a> Fix Memory DOS in ImageFont</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/bb6c11fb889e6c11b0ee122b828132ee763b5856"><code>bb6c11f</code></a> Fix FLI DOS -- CVE-2021-28676</li>
<li><a href="https://github.com/python-pillow/Pillow/commit/5a5e6db0abf4e7a638fb1b3408c4e495a096cb92"><code>5a5e6db</code></a> Fix EPS DOS on _open -- CVE-2021-28677</li>
<li>Additional commits viewable in <a href="https://github.com/python-pillow/Pillow/compare/8.1.1...8.2.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pillow&package-manager=pip&previous-version=8.1.1&new-version=8.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language

You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/PyCOMPLETE/PyHEADTAIL/network/alerts).

</details>


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/github-ci.yaml b/.github/workflows/github-ci.yaml
index d6783e21..b3ba484e 100644
--- a/.github/workflows/github-ci.yaml
+++ b/.github/workflows/github-ci.yaml
@@ -1,6 +1,6 @@
 # This is a basic workflow to help you get started with Actions
 
-name: CI
+name: tests
 
 # Controls when the action will run. Triggers the workflow on push or pull request
 # events but only for the master branch
diff --git a/.github/workflows/manual-ci.yaml b/.github/workflows/manual-ci.yaml
index 68d94390..14f0dcb7 100644
--- a/.github/workflows/manual-ci.yaml
+++ b/.github/workflows/manual-ci.yaml
@@ -1,4 +1,4 @@
-name: Manually triggered workflow
+name: manual
 on:
   workflow_dispatch:
     inputs:
diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml
new file mode 100644
index 00000000..cfb18417
--- /dev/null
+++ b/.github/workflows/python-package.yml
@@ -0,0 +1,40 @@
+# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
+# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
+
+name: build
+
+on:
+  push:
+    branches: [ playground/ci_testing ]
+  pull_request:
+    branches: [ playground/ci_testing ]
+
+jobs:
+  build:
+
+    runs-on: ubuntu-latest
+    strategy:
+      matrix:
+        python-version: ['2.7']
+
+    steps:
+    - uses: actions/checkout@v2
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v2
+      with:
+        python-version: ${{ matrix.python-version }}
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip
+        python -m pip install flake8 pytest
+        if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
+    - name: Lint with flake8
+      run: |
+        # stop the build if there are Python syntax errors or undefined names
+        #flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
+        # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
+        #flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
+        print "I ran!"
+#     - name: Test with pytest
+#       run: |
+#         pytest
diff --git a/.travis.yml b/.travis.yml
index bd629165..e7d6b37f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,13 +1,10 @@
 language: python
 
 python:
-  - "2.7"
-  - "3.4"
-  - "3.5"
   - "3.6"      # current default Python on Travis CI
-  - "3.7"
-  - "3.8"
-  - "3.8-dev"  # 3.8 development branch
+#  - "3.7"
+#  - "3.8"
+#  - "3.8-dev"  # 3.8 development branch
   - "nightly"  # nightly build
 
 # command to install dependencies
diff --git a/README.rst b/README.rst
index 21488d4f..3c5e5160 100644
--- a/README.rst
+++ b/README.rst
@@ -1,6 +1,12 @@
-.. image:: https://travis-ci.org/PyCOMPLETE/PyHEADTAIL.svg?branch=master
-    :target: https://travis-ci.org/PyCOMPLETE/PyHEADTAIL
+.. image:: https://github.com/PyCOMPLETE/PyHEADTAIL/workflows/manual/badge.svg
+   :target: https://github.com/PyCOMPLETE/PyHEADTAIL/actions
 
+.. image:: https://github.com/PyCOMPLETE/PyHEADTAIL/workflows/build/badge.svg
+   :target: https://github.com/PyCOMPLETE/PyHEADTAIL/actions
+
+.. image:: https://github.com/PyCOMPLETE/PyHEADTAIL/workflows/tests/badge.svg
+   :target: https://github.com/PyCOMPLETE/PyHEADTAIL/actions
+   
 PyHEADTAIL
 ==========
 
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 00000000..57aab863
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,12 @@
+certifi==2020.6.20
+cycler==0.10.0
+Cython==0.29.21
+h5py==2.10.0
+kiwisolver==1.2.0
+matplotlib==3.3.1
+numpy==1.19.1
+Pillow==8.2.0
+pyparsing==2.4.7
+python-dateutil==2.8.1
+scipy==1.5.2
+six==1.15.0


Test patch:
diff --git a/PyHEADTAIL/testing/unittests/testsuite.py b/PyHEADTAIL/testing/unittests/testsuite.py
index 231368e5..f0fb6f2b 100644
--- a/PyHEADTAIL/testing/unittests/testsuite.py
+++ b/PyHEADTAIL/testing/unittests/testsuite.py
@@ -14,7 +14,6 @@
     has_pycuda = False
     print('No PyCUDA installation found.')
 
-
 from test_slicing import TestSlicing
 from test_particles import TestParticles
 from test_generators import TestParticleGenerators
@@ -29,7 +28,7 @@
 from test_dispatch import TestDispatch
 from test_monitor import TestMonitor
 
-#add your test classes here
+# add your test classes here
 test_list = [TestSlicing,
              TestParticles,
              TestParticleGenerators,
@@ -37,7 +36,7 @@
              TestSimpleLongTracking,
              TestListProxy,
              TestDetuner,
-             TestAutoRun, #uncomment to run full test suite (~ 1 min)
+             TestAutoRun,  # uncomment to run full test suite (~ 1 min)
              TestTransverseTracking,
              TestCobra,
              TestGPUInterface,