[med-svn] [Git][med-team/python-screed][upstream] New upstream version 1.1.2

Étienne Mollier (@emollier) gitlab at salsa.debian.org
Sat Jul 8 20:30:03 BST 2023



Étienne Mollier pushed to branch upstream at Debian Med / python-screed


Commits:
dc4ea495 by Étienne Mollier at 2023-07-08T21:16:35+02:00
New upstream version 1.1.2
- - - - -


14 changed files:

- + .github/dependabot.yml
- .github/workflows/python.yml
- + .readthedocs.yaml
- Makefile
- README.md
- doc/Makefile
- doc/dev/release-checklist.rst
- screed/__init__.py
- screed/openscreed.py
- screed/tests/havaGen.py
- screed/tests/screed_tst_utils.py
- screed/tests/test_streaming.py
- setup.cfg
- tox.ini


Changes:

=====================================
.github/dependabot.yml
=====================================
@@ -0,0 +1,11 @@
+version: 2
+updates:
+- package-ecosystem: pip
+  directory: "/"
+  schedule:
+    interval: daily
+  open-pull-requests-limit: 10
+- package-ecosystem: "github-actions"
+  directory: "/"
+  schedule:
+    interval: daily


=====================================
.github/workflows/python.yml
=====================================
@@ -14,16 +14,16 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-18.04, macos-latest]
-        py: [3.9, 3.8, 3.7]
+        py: ["3.10", 3.9, 3.8]
       fail-fast: false
 
     steps:
-      - uses: actions/checkout at v2
+      - uses: actions/checkout at v3
         with:
           fetch-depth: 0
 
       - name: Set up Python ${{ matrix.py }}
-        uses: actions/setup-python at v2
+        uses: actions/setup-python at v4
         with:
           python-version: ${{ matrix.py }}
 
@@ -33,12 +33,12 @@ jobs:
           echo "::set-output name=dir::$(pip cache dir)"
 
       - name: pip cache
-        uses: actions/cache at v2
+        uses: actions/cache at v3
         with:
           path: ${{ steps.pip-cache.outputs.dir }}
-          key: ${{ runner.os }}-pip-${{ hashFiles('**/setup.py') }}
+          key: ${{ runner.os }}-pip-v2-${{ hashFiles('**/setup.py') }}
           restore-keys: |
-            ${{ runner.os }}-pip-
+            ${{ runner.os }}-pip-v2
 
       - name: Install dependencies
         run: |
@@ -46,12 +46,12 @@ jobs:
           pip install tox tox-gh-actions
 
       - name: tox cache
-        uses: actions/cache at v2
+        uses: actions/cache at v3
         with:
           path: .tox/
-          key: ${{ runner.os }}-tox-${{ hashFiles('**/setup.py') }}
+          key: ${{ runner.os }}-tox-v2-${{ hashFiles('**/setup.py') }}
           restore-keys: |
-            ${{ runner.os }}-tox-
+            ${{ runner.os }}-tox-v2
 
       - name: Test with tox
         run: tox


=====================================
.readthedocs.yaml
=====================================
@@ -0,0 +1,17 @@
+version: 2
+
+# Set the version of Python and other tools you might need
+build:
+  os: ubuntu-22.04
+  tools:
+    python: "3.10"
+
+# Build documentation in the docs/ directory with Sphinx
+sphinx:
+   configuration: doc/conf.py
+
+python:
+  install:
+    - method: pip
+      path: .
+  system_packages: true


=====================================
Makefile
=====================================
@@ -43,7 +43,6 @@ doc: FORCE
 	cd doc && make html
 
 test: FORCE
-	./setup.py develop
-	./setup.py test
+	pytest
 
 FORCE:


=====================================
README.md
=====================================
@@ -4,6 +4,8 @@
 <a href="https://pypi.org/project/screed/"><img alt="PyPI" src="https://badge.fury.io/py/screed.svg"></a>
 <a href="https://github.com/dib-lab/screed/blob/latest/doc/LICENSE.rst"><img alt="License: 3-Clause BSD" src="https://img.shields.io/badge/License-BSD%203--Clause-blue.svg"></a>
 ![Python tests](https://github.com/dib-lab/screed/workflows/Python%20tests/badge.svg)
+[![Debian Stable Badge](https://badges.debian.net/badges/debian/stable/python3-screed/version.svg)](https://packages.debian.org/stable/python3-screed)
+[![Debian Testing Badge](https://badges.debian.net/badges/debian/testing/python3-screed/version.svg)](https://packages.debian.org/testing/python3-screed)
 
 The official repository for screed is:
 


=====================================
doc/Makefile
=====================================
@@ -16,6 +16,8 @@ I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
 
 .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
 
+all: html
+
 help:
 	@echo "Please use \`make <target>' where <target> is one of"
 	@echo "  html       to make standalone HTML files"


=====================================
doc/dev/release-checklist.rst
=====================================
@@ -16,41 +16,23 @@ screed using this checklist.
 Getting Started
 ===============
 
+#. Create and activate an empty Python environment::
+
+        mamba create -n screed-rc -y python=3.10 pip make setuptools_scm
+        conda activate screed-rc
+        python -m pip install -U pip
+        python -m pip install -U virtualenv wheel tox-setuptools-version build
+
 #. Start with a clean checkout::
 
-        cd `mktemp -d`
+        cd $(mktemp -d)
         git clone git at github.com:dib-lab/screed.git
         cd screed
 
-#. Install/update versioneer::
-
-        pip install versioneer
-        versioneer-installer
-
-   If there is a new version of versioneer::
-
-        git diff
-        ./setup.py versioneer
-        git commit -p -m "new version of versioneer.py"
-        # or abandon the changes
-        git checkout -- versioneer.py screed/_version.py screed/__init.py \
-                MANIFEST.in
-
-#. Review the git logs since the previous release and that ChangeLog reflects
-   the major changes::
-
-        git log --minimal --patch \
-                `git describe --tags --always --abbrev=0`..HEAD
-
-#. Review the issue list for any existing bugs that won't be fixed in the
-   release and ensure they're documented in ``doc/known-issues.txt``
-
-#. Verify that the build is clean: http://ci.ged.msu.edu/job/screed/
-
 #. Set the new version number and release candidate::
 
-        new_version=1.1
-        rc=rc3
+        new_version=1.1.0
+        rc=rc1
 
    Tag the release candidate with the new version prefixed by the letter 'v'::
 
@@ -74,7 +56,7 @@ Getting Started
         make install-dependencies
         make install
         make test
-        python -c 'import screed; print screed.__version__' # double-check version number
+        python -c 'import screed; print(screed.__version__)' # double-check version number
 
 
         # Test via pip
@@ -85,73 +67,45 @@ Getting Started
         cd src/screed
         make dist
         make install
-        nosetests screed --attr '!known_failing'
-        python -c 'import screed; print screed.__version__'
-        cp dist/screed*tar.gz ../../../testenv3
+        pip install pytest
+        pytest screed 
+        python -c 'import screed; print(screed.__version__)' # double-check version number
+        cp dist/screed-1.1rc1.tar.gz ../../../testenv3 
 
         # test if the dist made in testenv2 is complete enough to build another
         # functional dist
 
         cd ../../../testenv3
         source bin/activate
-        pip install nose
+        pip install pytest
         pip install screed*tar.gz
-        nosetests screed --attr '!known_failing'
-        python -c 'import screed; print screed.__version__'
+        python -c 'import screed; print(screed.__version__)'
         tar xzf screed*tar.gz
         cd screed*
         make dist
         make test
 
-#. Publish the new release on the testing PyPI server. You will need to
-   change your PyPI credentials as documented here:
-   https://wiki.python.org/moin/TestPyPI. You may need to re-register::
-
-        python setup.py register --repository test
-
-   Now, upload the new release::
-
-        python setup.py sdist upload -r test
-
-   Test the PyPI release in a new virtualenv::
-
-        cd ../../testenv4
-        source bin/activate
-        pip install -U setuptools
-        pip install nose
-        pip install -i https://testpypi.python.org/pypi --pre --no-clean screed
-        nosetests screed --attr '!known_failing'
-        python -c 'import screed; print screed.__version__'
-        cd build/screed
-        ./setup.py nosetests --attr '!known_failing'
-
-#. Do any final testing (acceptance tests, etc.) Note that the acceptance tests
-   for screed are to run the khmer automated tests with the new version of
-   screed installed and then to run the khmer acceptance tests.
-
-#. Make sure any release notes are merged into doc/release-notes/. Release
-   notes should be written in the `.md` format to satisfy the requirements for
-   GitHub release notes. The `convert-release-notes` make target can be used to 
-   generate `.rst` files from the `.md` notes.
-
+#. Do any final testing (acceptance tests, etc.) A good test is to install
+   the new version of screed and then run the sourmash tests.
 
 How to make a final release
 ===========================
 
 When you have a thoroughly tested release candidate, cut a release like so:
 
+#. Delete the release candidate tag and push the tag updates to GitHub::
+
+       cd ../../screed
+       git tag -d v${new_version}-${rc}
+       git push --delete origin v${new_version}${rc}
+
 #. Create the final tag and publish the new release on PyPI (requires an
    authorized account) ::
 
-       cd ../../../screed
        git tag v${new_version}
-       python setup.py register sdist upload
-
-#. Delete the release candidate tag and push the tag updates to GitHub::
-
-       git tag -d v${new_version}-${rc}
-       git push git at github.com:dib-lab/screed.git
-       git push --tags git at github.com:dib-lab/screed.git
+       git push --tags origin
+       make dist
+       twine upload dist/screed-${new_version}.tar.gz
 
 #. Add the release on GitHub, using the tag you just pushed. Name it "Version
    X.Y.Z" and copy/paste in the release notes.


=====================================
screed/__init__.py
=====================================
@@ -36,10 +36,10 @@ from screed.dna import rc
 from screed.screedRecord import Record
 
 
-from pkg_resources import get_distribution, DistributionNotFound
+from importlib.metadata import version, PackageNotFoundError
 try:
-    VERSION = get_distribution(__name__).version
-except DistributionNotFound:  # pragma: no cover
+    VERSION = version(__name__)
+except PackageNotFoundError:  # pragma: no cover
     try:
         from .version import version as VERSION  # noqa
     except ImportError:  # pragma: no cover


=====================================
screed/openscreed.py
=====================================
@@ -7,7 +7,7 @@ import os
 import io
 import sys
 import gzip
-import bz2file
+import bz2
 from collections.abc import MutableMapping
 
 try:
@@ -58,7 +58,7 @@ class Open(object):
                 compression = ftype
                 break
         if compression == 'bz2':
-            sequencefile = bz2file.BZ2File(filename=bufferedfile)
+            sequencefile = bz2.BZ2File(filename=bufferedfile)
             peek = sequencefile.peek(1)
         elif compression == 'gz':
             if not bufferedfile.seekable():
@@ -67,6 +67,7 @@ class Open(object):
                                  "through zcat first")
             peek = gzip.GzipFile(filename=filename).read(1)
             sequencefile = gzip.GzipFile(filename=filename)
+            bufferedfile.close()
         else:
             peek = bufferedfile.peek(1)
             sequencefile = bufferedfile
@@ -117,6 +118,7 @@ class ScreedDB(MutableMapping):
     """
 
     def __init__(self, filepath):
+        self._db = None
         try:
             sqlite3
         except NameError:
@@ -124,7 +126,6 @@ class ScreedDB(MutableMapping):
                             "functionality, but is not installed.")
 
         self._filepath = filepath
-        self._db = None
         if not self._filepath.endswith(DBConstants.fileExtension):
             self._filepath += DBConstants.fileExtension
 


=====================================
screed/tests/havaGen.py
=====================================
@@ -78,7 +78,7 @@ def createHavaFiles(filename, size, divisions):
     allowedFakours = "1 2 3 4 5 6 7 8 9".split(' ')
     allowedSelimizicka = ["b"]
     allowedMarshoon = "A 1 B 2 C 3 D 4 E 5 G 6 F 7".split(' ')
-    while(not cof.finished()):
+    while not cof.finished():
         hava = "test_00%d" % counter
         quarzk = genString(lenString, allowedQuarzk)
         muchalo = genString(lenString, allowedMuchalo)


=====================================
screed/tests/screed_tst_utils.py
=====================================
@@ -11,20 +11,20 @@
 import tempfile
 import os
 import shutil
-from pkg_resources import Requirement, resource_filename, ResolutionError
 from io import StringIO
 import sys
 import traceback
 
+from importlib import resources
+
+# Remove when we drop support for 3.8
+if sys.version_info < (3, 9):
+    import importlib_resources as resources
+
 
 def get_test_data(filename):
-    filepath = None
-    try:
-        filepath = resource_filename(
-            Requirement.parse("screed"), "screed/tests/" + filename)
-    except ResolutionError:
-        pass
-    if not filepath or not os.path.isfile(filepath):
+    filepath = resources.files('screed') / 'screed' / 'tests' / filename
+    if not filepath.exists() or not os.path.isfile(filepath):
         filepath = os.path.join(os.path.dirname(__file__), 'test-data',
                                 filename)
     return filepath


=====================================
screed/tests/test_streaming.py
=====================================
@@ -67,7 +67,7 @@ def test_stream_fq():
     streamer(utils.get_test_data('test.fastq'))
 
 
- at pytest.mark.known_failing
+ at pytest.mark.xfail()
 def test_stream_fa_gz():
     streamer(utils.get_test_data('test.fa.gz'))
 
@@ -80,7 +80,7 @@ def test_stream_gz_fail():
         print(str(err))
 
 
- at pytest.mark.known_failing
+ at pytest.mark.xfail()
 def test_stream_fq_gz():
     streamer(utils.get_test_data('test.fastq.gz'))
 


=====================================
setup.cfg
=====================================
@@ -31,8 +31,6 @@ zip_safe = False
 packages = find:
 platforms = any
 include_package_data = True
-install_requires =
-    bz2file
 python_requires = >=3.7
 setup_requires =
     setuptools_scm
@@ -52,5 +50,6 @@ test =
     pytest >= 6.2.2
     pycodestyle
     pytest-cov
+    importlib_resources;python_version<'3.9'
 all =
     %(test)s


=====================================
tox.ini
=====================================
@@ -1,5 +1,8 @@
 [tox]
-envlist = py38, py39, py37
+envlist = py38, py39, py310
+minversion = 3.12
+isolated_build = true
+skip_missing_interpreters = true
 
 [testenv]
 passenv =
@@ -10,7 +13,7 @@ passenv =
   GITHUB_RUN_ID
   GITHUB_SHA
   GITHUB_REPOSITORY
-whitelist_externals = make
+allowlist_externals = make
 commands =
   make install-dependencies
   pytest --cov -m 'not known_failing'
@@ -25,6 +28,6 @@ deps =
 
 [gh-actions]
 python =
-  3.7: py37
   3.8: py38
   3.9: py39
+  3.10: py310



View it on GitLab: https://salsa.debian.org/med-team/python-screed/-/commit/dc4ea4959721416c217232153072d73f6b4b7222

-- 
View it on GitLab: https://salsa.debian.org/med-team/python-screed/-/commit/dc4ea4959721416c217232153072d73f6b4b7222
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20230708/c0d5ef83/attachment-0001.htm>


More information about the debian-med-commit mailing list