[med-svn] [Git][med-team/q2cli][master] 7 commits: routine-update: New upstream version

Michael R. Crusoe (@crusoe) gitlab at salsa.debian.org
Tue Jun 25 03:25:52 BST 2024



Michael R. Crusoe pushed to branch master at Debian Med / q2cli


Commits:
06f916bb by Michael R. Crusoe at 2024-06-25T03:51:57+02:00
routine-update: New upstream version

- - - - -
d9f39410 by Michael R. Crusoe at 2024-06-25T03:51:58+02:00
New upstream version 2024.5.0
- - - - -
72b817a3 by Michael R. Crusoe at 2024-06-25T03:51:59+02:00
Update upstream source from tag 'upstream/2024.5.0'

Update to upstream version '2024.5.0'
with Debian dir f9299067fe25e384253e644238fb8b7f67a4a022
- - - - -
afbc0a49 by Michael R. Crusoe at 2024-06-25T03:52:20+02:00
routine-update: Regenerate debian/control from debian/control.in

- - - - -
a16c97c0 by Michael R. Crusoe at 2024-06-25T04:15:16+02:00
d/patches/configparser.patch: copy from qiime packaging

- - - - -
d38d5496 by Michael R. Crusoe at 2024-06-25T04:20:07+02:00
Only build for Python 3.11 until upstream catches up with Python 3.12.

- - - - -
aa8f4040 by Michael R. Crusoe at 2024-06-25T04:20:08+02:00
routine-update: Ready to upload to unstable

- - - - -


10 changed files:

- debian/changelog
- debian/control
- + debian/patches/configparser.patch
- debian/patches/series
- debian/rules
- debian/tests/control
- q2cli/_version.py
- q2cli/tests/test_cache_cli.py
- q2cli/tests/test_core.py
- q2cli/util.py


Changes:

=====================================
debian/changelog
=====================================
@@ -1,10 +1,17 @@
-q2cli (2024.2.0-2) UNRELEASED; urgency=medium
+q2cli (2024.5.0-1) unstable; urgency=medium
 
+  [ Andreas Tille ]
   * Team upload.
   * Make the build reproducible
     Closes: #1066085
 
- -- Andreas Tille <tille at debian.org>  Tue, 12 Mar 2024 14:07:10 +0100
+  [ Michael R. Crusoe ]
+  * Regenerate debian/control from debian/control.in (routine-update)
+  * d/patches/configparser.patch: copy from qiime packaging
+  * Only build for Python 3.11 until upstream catches up with Python
+    3.12.
+
+ -- Michael R. Crusoe <crusoe at debian.org>  Tue, 25 Jun 2024 03:52:20 +0200
 
 q2cli (2024.2.0-1) unstable; urgency=medium
 


=====================================
debian/control
=====================================
@@ -7,10 +7,10 @@ Section: science
 Priority: optional
 Build-Depends: debhelper-compat (= 13),
                dh-sequence-python3,
-               python3,
+               python3-all,
                python3-pytest <!nocheck>,
                python3-setuptools,
-               qiime (>= 2024.2),
+               qiime (>= 2024.5),
                python3-click
 Standards-Version: 4.6.2
 Vcs-Browser: https://salsa.debian.org/med-team/q2cli
@@ -23,8 +23,8 @@ Architecture: all
 Depends: ${shlibs:Depends},
          ${misc:Depends},
          ${python3:Depends},
-         q2-feature-table (>= 2024.2),
-         qiime (>= 2024.2),
+         q2-feature-table (>= 2024.5),
+         qiime (>= 2024.5),
          python3-setuptools,
          python3-click
 Description: Click-based command line interface for QIIME 2


=====================================
debian/patches/configparser.patch
=====================================
@@ -0,0 +1,35 @@
+From: Athos Ribeiro <athos.ribeiro at canonical.com>
+Date: Mon, 3 Jun 2024 11:31:54 -0300
+Subject: [PATCH] Use ConfigParser instead of SafeConfigParser
+
+The configparser's SafeConfigParser has been renamed to ConfigParser in
+Python 3.2 [1]. It was finally removed in Python 3.12 [2].
+
+[1] https://docs.python.org/dev/whatsnew/3.2.html#configparser
+[2] https://docs.python.org/3/whatsnew/3.12.html#configparser
+
+Last-Update: 2024-06-03
+Forwarded: not-needed, see https://github.com/qiime2/q2-sample-classifier/pull/229
+---
+ versioneer.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/versioneer.py b/versioneer.py
+index a5e7a20..886455f 100644
+--- a/versioneer.py
++++ b/versioneer.py
+@@ -340,9 +340,9 @@ def get_config_from_root(root):
+     # configparser.NoOptionError (if it lacks "VCS="). See the docstring at
+     # the top of versioneer.py for instructions on writing your setup.cfg .
+     setup_cfg = os.path.join(root, "setup.cfg")
+-    parser = configparser.SafeConfigParser()
++    parser = configparser.ConfigParser()
+     with open(setup_cfg, "r") as f:
+-        parser.readfp(f)
++        parser.read_file(f)
+     VCS = parser.get("versioneer", "VCS")  # mandatory
+ 
+     def get(parser, name):
+-- 
+2.43.0
+


=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
+configparser.patch
 call_py3.patch
 inform_zsh_users_howto_set_autocompletion.patch
 bash-completion-with-hashbang.patch


=====================================
debian/rules
=====================================
@@ -8,6 +8,7 @@ include /usr/share/dpkg/default.mk
 VERSION_UPSTREAM=$(shell echo $(DEB_VERSION_UPSTREAM) | sed -e 's/\(20[0-9][0-9]\.[0-9]\+\)\..*/\1/')
 
 export PYBUILD_TEST_ARGS=--ignore=q2cli/tests/test_usage.py
+export PYBUILD_DISABLE=python3.12
 
 %:
 	dh $@ --buildsystem=pybuild


=====================================
debian/tests/control
=====================================
@@ -1,3 +1,3 @@
 Tests: run-unit-test
-Depends: @, q2-sample-classifier, file, python3-sklearn
+Depends: @, q2-sample-classifier, file, python3-sklearn, python3-all
 Restrictions: allow-stderr


=====================================
q2cli/_version.py
=====================================
@@ -23,9 +23,9 @@ def get_keywords():
     # setup.py/versioneer.py will grep for the variable names, so they must
     # each be defined on a line of their own. _version.py will just call
     # get_keywords().
-    git_refnames = " (tag: 2024.2.0, Release-2024.2)"
-    git_full = "722997ebe6be5973716cc5f3e9f0bbd4ce722095"
-    git_date = "2024-02-16 21:49:58 +0000"
+    git_refnames = " (tag: 2024.5.0, Release-2024.5)"
+    git_full = "2bbd82625406a601add2182ad087aaeae0d1d701"
+    git_date = "2024-05-29 04:19:12 +0000"
     keywords = {"refnames": git_refnames, "full": git_full, "date": git_date}
     return keywords
 


=====================================
q2cli/tests/test_cache_cli.py
=====================================
@@ -730,8 +730,8 @@ class TestCacheCli(unittest.TestCase):
         art2_path = str(self.cache.path) + ':art2'
         art3_path = str(self.cache.path) + ':art3'
 
-        out_path = str(self.cache.path) + ':not_valid_identifier$&;'
-
+        invalid = 'not_valid_identifier$&;'
+        out_path = str(self.cache.path) + ':' + invalid
         result = self._run_command(
             'concatenate-ints', '--i-ints1', art1_path, '--i-ints2', art2_path,
             '--i-ints3', art3_path, '--p-int1', '9', '--p-int2', '10',
@@ -739,7 +739,7 @@ class TestCacheCli(unittest.TestCase):
         )
 
         self.assertEqual(result.exit_code, 1)
-        self.assertIn('Keys must be valid Python identifiers',
+        self.assertIn(f"Key '{invalid}' is not a valid Python identifier",
                       str(result.exception))
 
     def test_artifact_as_metadata_cache(self):


=====================================
q2cli/tests/test_core.py
=====================================
@@ -26,7 +26,7 @@ from qiime2.sdk import PluginManager
 from qiime2.core.archive.provenance_lib import DummyArtifacts, ProvDAG
 from qiime2.core.archive.provenance_lib.replay import (
     ReplayConfig, param_is_metadata_column, dump_recorded_md_file,
-    NamespaceCollections, build_import_usage, build_action_usage,
+    ReplayNamespaces, build_import_usage, build_action_usage,
     ActionCollections, replay_provenance, replay_supplement
 )
 from qiime2.core.archive.provenance_lib.usage_drivers import ReplayPythonUsage
@@ -283,7 +283,7 @@ class ReplayCLIUsageTests(unittest.TestCase):
             self.assertTrue(out_path2.is_file())
 
     def test_build_import_usage_cli(self):
-        ns = NamespaceCollections()
+        ns = ReplayNamespaces()
         cfg = ReplayConfig(use=ReplayCLIUsage(),
                            use_recorded_metadata=False, pm=self.pm)
         dag = self.das.concated_ints_v6.dag
@@ -293,12 +293,12 @@ class ReplayCLIUsageTests(unittest.TestCase):
         unq_var_nm = c_to_s_type + '_0'
         build_import_usage(import_node, ns, cfg)
         rendered = cfg.use.render()
-        vars = ns.usg_vars
-        out_name = vars[import_uuid].to_interface_name()
+        usg_var = ns.get_usg_var_record(import_uuid).variable
+        out_name = usg_var.to_interface_name()
 
-        self.assertIsInstance(vars[import_uuid], UsageVariable)
-        self.assertEqual(vars[import_uuid].var_type, 'artifact')
-        self.assertEqual(vars[import_uuid].name, unq_var_nm)
+        self.assertIsInstance(usg_var, UsageVariable)
+        self.assertEqual(usg_var.var_type, 'artifact')
+        self.assertEqual(usg_var.name, unq_var_nm)
         self.assertRegex(rendered, r'qiime tools import \\')
         self.assertRegex(rendered, f"  --type '{import_node.type}'")
         self.assertRegex(rendered, "  --input-path <your data here>")
@@ -310,7 +310,7 @@ class ReplayCLIUsageTests(unittest.TestCase):
         cfg = ReplayConfig(use=ReplayCLIUsage(),
                            use_recorded_metadata=False, pm=self.pm)
 
-        ns = NamespaceCollections()
+        ns = ReplayNamespaces()
         import_var_1 = CLIUsageVariable(
             'imported_ints_0', lambda: None, 'artifact', cfg.use
         )
@@ -319,10 +319,10 @@ class ReplayCLIUsageTests(unittest.TestCase):
         )
         import_uuid_1 = '8dea2f1a-2164-4a85-9f7d-e0641b1db22b'
         import_uuid_2 = '7727c060-5384-445d-b007-b64b41a090ee'
-        ns.usg_vars = {
-            import_uuid_1: import_var_1,
-            import_uuid_2: import_var_2
-        }
+        ns.add_usg_var_record(import_uuid_1, 'imported_ints_0')
+        ns.update_usg_var_record(import_uuid_1, import_var_1)
+        ns.add_usg_var_record(import_uuid_2, 'imported_ints_1')
+        ns.update_usg_var_record(import_uuid_2, import_var_2)
 
         dag = self.das.concated_ints_v6.dag
         action_uuid = '5035a60e-6f9a-40d4-b412-48ae52255bb5'
@@ -334,12 +334,13 @@ class ReplayCLIUsageTests(unittest.TestCase):
         unique_var_name = node.action.output_name + '_0'
         build_action_usage(node, ns, actions.std_actions, action_uuid, cfg)
         rendered = cfg.use.render()
-        out_name = ns.usg_vars[node_uuid].to_interface_name()
 
-        vars = ns.usg_vars
-        self.assertIsInstance(vars[node_uuid], UsageVariable)
-        self.assertEqual(vars[node_uuid].var_type, 'artifact')
-        self.assertEqual(vars[node_uuid].name, unique_var_name)
+        usg_var = ns.get_usg_var_record(node_uuid).variable
+        out_name = usg_var.to_interface_name()
+
+        self.assertIsInstance(usg_var, UsageVariable)
+        self.assertEqual(usg_var.var_type, 'artifact')
+        self.assertEqual(usg_var.name, unique_var_name)
 
         self.assertIn(f'qiime {plugin} {action}', rendered)
         self.assertIn('--i-ints1 imported-ints-0.qza', rendered)


=====================================
q2cli/util.py
=====================================
@@ -107,14 +107,8 @@ def output_in_cache(fp):
 
     try:
         if Cache.is_cache(cache_path):
-            if not key.isidentifier():
-                raise ValueError(
-                    f"Key '{key}' is not a valid Python identifier. Keys must "
-                    "be valid Python identifiers. Python identifier rules may "
-                    "be found here https://www.askpython.com/python/"
-                    "python-identifiers-rules-best-practices")
-            else:
-                return True
+            Cache.validate_key(key)
+            return True
     except FileNotFoundError as e:
         # If cache_path doesn't exist, don't treat this as a cache output
         if 'No such file or directory' in str(e):



View it on GitLab: https://salsa.debian.org/med-team/q2cli/-/compare/8348f31baa1c29441410c270987ef332de609eba...aa8f40407a7c908cbf76dcce8959a8d1c65884c5

-- 
This project does not include diff previews in email notifications.
View it on GitLab: https://salsa.debian.org/med-team/q2cli/-/compare/8348f31baa1c29441410c270987ef332de609eba...aa8f40407a7c908cbf76dcce8959a8d1c65884c5
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/20240625/e47cad39/attachment-0001.htm>


More information about the debian-med-commit mailing list