Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-jirafs for openSUSE:Factory 
checked in at 2023-06-03 00:07:33
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-jirafs (Old)
 and      /work/SRC/openSUSE:Factory/.python-jirafs.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-jirafs"

Sat Jun  3 00:07:33 2023 rev:9 rq:1090427 version:2.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-jirafs/python-jirafs.changes      
2022-03-24 22:59:07.772315933 +0100
+++ /work/SRC/openSUSE:Factory/.python-jirafs.new.15902/python-jirafs.changes   
2023-06-03 00:07:38.766138583 +0200
@@ -1,0 +2,8 @@
+Fri Jun  2 06:06:23 UTC 2023 - Steve Kowalik <steven.kowa...@suse.com>
+
+- Update to 2.3.1:
+  Fix a serialization/deserialization problem caused by issue options
+  found in modern versions of the jira python plugin.
+- Add patch remove-mock.patch.
+
+-------------------------------------------------------------------

Old:
----
  jirafs-2.3.0.tar.gz

New:
----
  jirafs-2.3.1.tar.gz
  remove-mock.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-jirafs.spec ++++++
--- /var/tmp/diff_new_pack.c0f6Rm/_old  2023-06-03 00:07:39.466142717 +0200
+++ /var/tmp/diff_new_pack.c0f6Rm/_new  2023-06-03 00:07:39.470142740 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-jirafs
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,16 +16,16 @@
 #
 
 
-%{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define         skip_python2 1
 Name:           python-jirafs
-Version:        2.3.0
+Version:        2.3.1
 Release:        0
 Summary:        Library for editing JIRA issues as local text files
 License:        MIT
-Group:          Development/Languages/Python
 URL:            https://github.com/coddingtonbear/jirafs
-Source:         
https://files.pythonhosted.org/packages/source/j/jirafs/jirafs-%{version}.tar.gz
+Source:         
https://github.com/coddingtonbear/jirafs/archive/refs/tags/%{version}.tar.gz#/jirafs-%{version}.tar.gz
+# PATCH-FIX-UPSTREAM gh#coddingtonbear/jirafs#70
+Patch0:         remove-mock.patch
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
@@ -64,7 +64,7 @@
 `git` and `hg`.
 
 %prep
-%setup -q -n jirafs-%{version}
+%autosetup -p1 -n jirafs-%{version}
 # Remove upper pins
 sed -i 's/,<[0-9.][0-9.]*//' requirements.txt
 rm jirafs/.pre-commit-config.yaml
@@ -78,11 +78,6 @@
 %python_clone -a %{buildroot}%{_bindir}/jirafs
 
 %check
-# https://github.com/coddingtonbear/jirafs/issues/69
-sed -i 's:import mock:import unittest.mock as mock:' \
-  tests/test_*.py tests/commands/base.py
-sed -i 's:from mock import:from unittest.mock import:' \
-  tests/test_*.py tests/commands/base.py tests/commands/test_push.py
 git config --global user.name "John Doe"
 git config --global user.email john...@example.com
 %pytest -rs
@@ -95,6 +90,7 @@
 
 %files %{python_files}
 %python_alternative %{_bindir}/jirafs
-%{python_sitelib}/*
+%{python_sitelib}/jirafs
+%{python_sitelib}/jirafs-%{version}*info
 
 %changelog

++++++ jirafs-2.3.0.tar.gz -> jirafs-2.3.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/.bumpversion.cfg 
new/jirafs-2.3.1/.bumpversion.cfg
--- old/jirafs-2.3.0/.bumpversion.cfg   2021-03-22 03:19:24.000000000 +0100
+++ new/jirafs-2.3.1/.bumpversion.cfg   2022-09-20 06:07:54.000000000 +0200
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 2.2.1
+current_version = 2.3.1
 commit = True
 tag_name = {new_version}
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/.flake8 new/jirafs-2.3.1/.flake8
--- old/jirafs-2.3.0/.flake8    1970-01-01 01:00:00.000000000 +0100
+++ new/jirafs-2.3.1/.flake8    2022-09-20 06:07:54.000000000 +0200
@@ -0,0 +1,4 @@
+[flake8]
+max-line-length=88
+extend-ignore=
+       E203
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/.gitignore new/jirafs-2.3.1/.gitignore
--- old/jirafs-2.3.0/.gitignore 1970-01-01 01:00:00.000000000 +0100
+++ new/jirafs-2.3.1/.gitignore 2022-09-20 06:07:54.000000000 +0200
@@ -0,0 +1,20 @@
+*.pyc
+bin/*
+lib/*
+src/*
+man/*
+dist/*
+build/*
+docs/build/*
+include/*
+.Python
+*egg*
+share/*
+.tox/*
+.noseids
+.vscode/
+env/
+local/
+temp/
+.mypy_cache/
+package-lock.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/.pre-commit-config.yaml 
new/jirafs-2.3.1/.pre-commit-config.yaml
--- old/jirafs-2.3.0/.pre-commit-config.yaml    1970-01-01 01:00:00.000000000 
+0100
+++ new/jirafs-2.3.1/.pre-commit-config.yaml    2022-09-20 06:07:54.000000000 
+0200
@@ -0,0 +1,40 @@
+# To install the git pre-commit hook run:
+#   pre-commit install
+# To update the pre-commit hooks run:
+#   pre-commit install-hooks
+exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)'
+repos:
+  - repo: https://github.com/pre-commit/pre-commit-hooks
+    rev: v4.0.1
+    hooks:
+      - id: trailing-whitespace
+      - id: end-of-file-fixer
+      - id: debug-statements
+  - repo: https://github.com/timothycrosley/isort
+    rev: 5.10.1
+    hooks:
+      - id: isort
+        args: ["--profile", "black", "--filter-files"]
+  - repo: https://github.com/ambv/black
+    rev: 22.8.0
+    hooks:
+      - id: black
+  - repo: https://gitlab.com/pycqa/flake8
+    rev: 3.9.2
+    hooks:
+      - id: flake8
+  - repo: https://github.com/pre-commit/mirrors-mypy
+    rev: v0.910
+    hooks:
+      - id: mypy
+        args:
+          - --pretty
+          - --show-error-codes
+          - --show-error-context
+          - --ignore-missing-imports
+        additional_dependencies:
+          - types-requests
+          - types-setuptools
+          - types-PyYAML
+          - types-python-dateutil
+          - types-pytz
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/.travis.yml new/jirafs-2.3.1/.travis.yml
--- old/jirafs-2.3.0/.travis.yml        1970-01-01 01:00:00.000000000 +0100
+++ new/jirafs-2.3.1/.travis.yml        2022-09-20 06:07:54.000000000 +0200
@@ -0,0 +1,30 @@
+language: python
+sudo: false
+python:
+- 3.6
+- 3.7
+before_install:
+- curl -fI $INTEGRATION_TESTING_URL
+- pip install --upgrade setuptools
+- pip install -r requirements.txt
+- pip install pytest mock behave
+- pip install -e .
+- git config --global user.email "git...@adamcoddington.net"
+- git config --global user.name "I'm a Robot"
+script:
+- py.test
+- behave tests/
+notifications:
+  webhooks:
+    urls:
+    - https://webhooks.gitter.im/e/a79205de9fd79c70ee19
+    on_success: change
+    on_failure: always
+    on_start: false
+env:
+  global:
+  - secure: 
kvHtlbvzL0JOQ9nhO5yqXnIL6uDfxR6FWZIUz169AUuzUp4Vz7W40QESKwZzRsg5W7sIel8Sshy2X+sSXmqVFK9wDliPVYlaP+TXyRSdrRqfspXMJyIeGnfArqfQMmADmq6VdfwoPguwsVvXIH2r6gAiUC4sFONXnzOph4wiRV0=
+  - secure: 
KIalo50Z25X7EIOf4dMK02F58o2RLQsZdMQuZMz+3UYCj1Vjfv0v+a++n9t4Bb2/uFTMCmK7ipNeT0cmY8pOHR2kWY6RbfTZfiMxXyhgPzJrhvzoyy5Jp1MCJ3/ESo4CJzVlGc6BRXP71QkFoZ0+Y3z/CxYRHbwFFBPT6MObSyI=
+  - secure: 
i/AEZ+kS7t4gIdGnF7deMaJlvGWic4lnQhMZHPhAV/nWkH3ZH67QuH25vCEZZXy7yo24dIhzEuekFzHVj0/qqR1UCddzruUVBmINjfodcSGnjAAxwovKC+JBKjnQE0fbTSsXrwOvpivLrGtI9fKBWoH3c0o/jWYEI2JWQeJRlPA=
+  - secure: 
eyLQII1VRTOjPRMmSsHODR/7KVzLZi+agoSJFW8zMJCwecM9784eDXhWxw9qakgLCng15tATr8pVP50wplJq0Wc+qRBxXkIuqunJ9hSeFRGOrgRvsj8UvPiU9sq4x+XUK1KJWNP8a5czsEGilx6JuQ943B45HG2qY5sYhtkKcCc=
+  - secure: 
Ug0XPJBYPnug4KLme/zZxL1Ii5jDwckegs1i3dgateWMnW06COHMyf7KwC9igt5HJdnhZ7VklTW9gKUg3qdY+QLgUFqEnOdfUKSiw/HeJK0kQwNLvHx+Hmdk9FgKEogIpGIoGXC0k/6NLprboh05zAbmxTXZ/kmvHnbOqicMmvI=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/PKG-INFO new/jirafs-2.3.1/PKG-INFO
--- old/jirafs-2.3.0/PKG-INFO   2021-11-26 05:04:32.814861800 +0100
+++ new/jirafs-2.3.1/PKG-INFO   1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-Metadata-Version: 2.1
-Name: jirafs
-Version: 2.3.0
-Summary: Edit Jira issues as text files locally.
-Home-page: https://github.com/coddingtonbear/jirafs
-Author: Adam Coddington
-Author-email: m...@adamcoddington.net
-License: UNKNOWN
-Platform: UNKNOWN
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 3
-License-File: LICENSE
-
-UNKNOWN
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/__init__.py 
new/jirafs-2.3.1/jirafs/__init__.py
--- old/jirafs-2.3.0/jirafs/__init__.py 2021-11-26 05:04:25.000000000 +0100
+++ new/jirafs-2.3.1/jirafs/__init__.py 2022-09-20 06:07:54.000000000 +0200
@@ -1 +1 @@
-__version__ = "2.3.0"
+__version__ = "2.3.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/config.py 
new/jirafs-2.3.1/jirafs/commands/config.py
--- old/jirafs-2.3.0/jirafs/commands/config.py  2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/commands/config.py  2022-09-20 06:07:54.000000000 
+0200
@@ -82,7 +82,7 @@
             parameters = config.items(section)
             for key, value in parameters:
                 lines = lines.add_line(
-                    u"{section}.{key}={value}", section=section, key=key, 
value=value
+                    "{section}.{key}={value}", section=section, key=key, 
value=value
                 )
 
         return lines
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/match.py 
new/jirafs-2.3.1/jirafs/commands/match.py
--- old/jirafs-2.3.0/jirafs/commands/match.py   2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/commands/match.py   2022-09-20 06:07:54.000000000 
+0200
@@ -97,10 +97,10 @@
 
         success = actual_value == field_value
 
-        comparison_result = u" != "
+        comparison_result = " != "
         if success:
-            comparison_result = u" == "
-        message = u"{left} {comparison} {right}".format(
+            comparison_result = " == "
+        message = "{left} {comparison} {right}".format(
             left=actual_value,
             comparison=comparison_result,
             right=field_value,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/merge.py 
new/jirafs-2.3.1/jirafs/commands/merge.py
--- old/jirafs-2.3.0/jirafs/commands/merge.py   2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/commands/merge.py   2022-09-20 06:07:54.000000000 
+0200
@@ -1,9 +1,9 @@
 import logging
 
 from jirafs import constants, utils
-from jirafs.plugin import CommandPlugin
 from jirafs.jirafieldmanager import JiraFieldManager
 from jirafs.jiralinkmanager import JiraLinkManager
+from jirafs.plugin import CommandPlugin
 
 
 class Command(CommandPlugin):
@@ -37,7 +37,7 @@
             )
             for field, values in (jira_fields - master_fields).items():
                 folder.log(
-                    u'Field {field} changed: "{fr}" -> "{to}"'.format(
+                    'Field {field} changed: "{fr}" -> "{to}"'.format(
                         field=field,
                         fr=self.truncate_field_value(values[0]),
                         to=self.truncate_field_value(values[1]),
@@ -50,7 +50,7 @@
                 values_dict = (jira_links - master_links).get(category, {})
                 for field, values in values_dict.items():
                     folder.log(
-                        u'Link {field} changed: "{fr}" -> "{to}"'.format(
+                        'Link {field} changed: "{fr}" -> "{to}"'.format(
                             field=field, fr=values[0], to=values[1]
                         )
                     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/commands/push.py 
new/jirafs-2.3.1/jirafs/commands/push.py
--- old/jirafs-2.3.0/jirafs/commands/push.py    2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/commands/push.py    2022-09-20 06:07:54.000000000 
+0200
@@ -33,8 +33,8 @@
                 continue
             if data[1].get("status") not in valid_types:
                 raise exceptions.IssueValidationError(
-                    u"{status} is not a valid issue link type for {target}; "
-                    u"options include the following: {options}".format(
+                    "{status} is not a valid issue link type for {target}; "
+                    "options include the following: {options}".format(
                         status=data[1].get("status"),
                         target=target,
                         options=", ".join(valid_types.keys()),
@@ -91,7 +91,7 @@
             comment = folder.get_new_comment(clear=True, ready=True)
             if comment:
                 folder.log(
-                    u'Adding comment "{comment}"'.format(
+                    'Adding comment "{comment}"'.format(
                         comment=self.truncate_field_value(comment)
                     )
                 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/constants.py 
new/jirafs-2.3.1/jirafs/constants.py
--- old/jirafs-2.3.0/jirafs/constants.py        2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/constants.py        2022-09-20 06:07:54.000000000 
+0200
@@ -1,3 +1,5 @@
+from environmental_override import override  # noqa
+
 from jirafs import __version__ as version
 
 # Metadata filenames
@@ -5,7 +7,7 @@
 TICKET_COMMENTS = "comments.read_only.jira"
 TICKET_NEW_COMMENT = "new_comment.jira"
 TICKET_LINKS = "links.jira"
-TICKET_FILE_FIELD_TEMPLATE = u"{field_name}.jira"
+TICKET_FILE_FIELD_TEMPLATE = "{field_name}.jira"
 
 # Generic settings
 LOCAL_ONLY_FILE = ".jirafs_local"
@@ -42,6 +44,4 @@
 CURRENT_REPO_VERSION = 17
 
 
-from environmental_override import override  # noqa
-
 override(locals(), "JIRAFS_")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/jirafieldmanager.py 
new/jirafs-2.3.1/jirafs/jirafieldmanager.py
--- old/jirafs-2.3.0/jirafs/jirafieldmanager.py 2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/jirafieldmanager.py 2022-09-20 06:07:54.000000000 
+0200
@@ -207,7 +207,7 @@
             for field in sorted(self.keys()):
                 if field not in used_fields | requested_fields:
                     out.write(
-                        u"* {human} ({field}):\n".format(
+                        "* {human} ({field}):\n".format(
                             human=self.get_human_name_for_field(field),
                             field=field,
                         )
@@ -225,7 +225,7 @@
                         )
 
                     # Each line is preceded by 4 spaces of whitespace
-                    padded_lines = [u"    %s\n" % f for f in 
field_string.split("\n")]
+                    padded_lines = ["    %s\n" % f for f in 
field_string.split("\n")]
                     for line in padded_lines:
                         out.write(line)
                 else:
@@ -234,7 +234,7 @@
                     )
                     with io.open(field_path, "w", encoding="utf-8") as fout:
                         fout.write(self[field])
-                        fout.write(u"\n")
+                        fout.write("\n")
 
 
 class GitRevisionJiraFieldManager(GitRevisionReader, 
AutomaticJiraFieldManager):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/jiralinkmanager.py 
new/jirafs-2.3.1/jirafs/jiralinkmanager.py
--- old/jirafs-2.3.0/jirafs/jiralinkmanager.py  2020-01-13 06:37:20.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/jiralinkmanager.py  2022-09-20 06:07:54.000000000 
+0200
@@ -1,4 +1,3 @@
-import copy
 import re
 
 from jirafs import constants, exceptions
@@ -6,7 +5,7 @@
 
 
 class JiraLinkManager(dict):
-    TICKET_MATCHER = re.compile("[A-Za-z]+-\d+")
+    TICKET_MATCHER = re.compile(r"[A-Za-z]+-\d+")
 
     def __init__(self, data, prepared=False):
         if not prepared:
@@ -70,9 +69,9 @@
                 left, right = line.split(": ", 1)
             except ValueError:
                 raise exceptions.IssueValidationError(
-                    u"Remote links must have a description; format your "
-                    u"link to {url} like '* Your Title: {url}' "
-                    u"to continue.".format(url=line.strip())
+                    "Remote links must have a description; format your "
+                    "link to {url} like '* Your Title: {url}' "
+                    "to continue.".format(url=line.strip())
                 )
             left = left.strip()
             right = right.strip()
@@ -98,7 +97,7 @@
         )
 
     def get_file_contents(self, path):
-        raise NotImplemented()
+        raise NotImplementedError()
 
 
 class GitRevisionJiraLinkManager(GitRevisionReader, AutomaticJiraLinkManager):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/migrations.py 
new/jirafs-2.3.1/jirafs/migrations.py
--- old/jirafs-2.3.0/jirafs/migrations.py       2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/migrations.py       2022-09-20 06:07:54.000000000 
+0200
@@ -1,3 +1,4 @@
+import copy
 import json
 import os
 import shutil
@@ -52,9 +53,16 @@
         os.mkdir(repo.get_shadow_path(".jirafs"))
     except OSError:
         pass
-    storable = {"options": repo.issue._options, "raw": repo.issue.raw}
+
+    options = copy.copy(repo.issue._options)
+    if "default_batch_size" in options:
+        # This will have classes as keys, which will cause everything
+        # to have a real problem; let's just pop this off
+        options.pop("default_batch_size")
+
+    storable = {"options": options, "raw": repo.issue.raw}
     with open(repo.get_shadow_path(".jirafs/issue.json"), "w") as out:
-        out.write(json.dumps(storable))
+        out.write(json.dumps(storable, default=lambda x: str(x)))
     issue_pickle_path = repo.get_shadow_path(".jirafs/issue.json")
     repo.run_git_command("add", "-f", issue_pickle_path, shadow=True)
     repo.run_git_command("commit", "-m", "Completing migration_0003", 
shadow=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/plugin.py 
new/jirafs-2.3.1/jirafs/plugin.py
--- old/jirafs-2.3.0/jirafs/plugin.py   2021-11-26 05:02:57.000000000 +0100
+++ new/jirafs-2.3.1/jirafs/plugin.py   2022-09-20 06:07:54.000000000 +0200
@@ -8,7 +8,9 @@
 import os
 import re
 import sys
+from distutils.version import LooseVersion
 from typing import (
+    TYPE_CHECKING,
     Dict,
     Iterator,
     List,
@@ -17,16 +19,14 @@
     Pattern,
     Set,
     Tuple,
-    TYPE_CHECKING,
     Union,
 )
 
 from blessings import Terminal
-from distutils.version import LooseVersion
 
+from . import __version__, constants
 from .exceptions import MacroAttributeError, MacroContentError, MacroError
 from .types import JirafsMacroAttributes
-from . import __version__, constants
 
 if TYPE_CHECKING:
     from .ticketfolder import TicketFolder
@@ -152,8 +152,8 @@
 
 
 class JirafsPluginBase(object):
-    MIN_VERSION = None
-    MAX_VERSION = None
+    MIN_VERSION: Optional[str] = None
+    MAX_VERSION: Optional[str] = None
 
     def __init__(self, ticketfolder, entrypoint_name, **kwargs):
         self.ticketfolder: TicketFolder = ticketfolder
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs/ticketfolder.py 
new/jirafs-2.3.1/jirafs/ticketfolder.py
--- old/jirafs-2.3.0/jirafs/ticketfolder.py     2021-11-26 05:02:57.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs/ticketfolder.py     2022-09-20 06:07:54.000000000 
+0200
@@ -1,9 +1,10 @@
 import codecs
+import copy
 import fnmatch
-import logging
-import logging.handlers
 import io
 import json
+import logging
+import logging.handlers
 import os
 import re
 import subprocess
@@ -11,14 +12,11 @@
 
 from jira.resources import Issue
 
-from . import constants
-from . import exceptions
-from . import migrations
-from . import utils
-from .jiralinkmanager import JiraLinkManager
+from . import constants, exceptions, migrations, utils
+from .exceptions import MacroError
 from .jirafieldmanager import JiraFieldManager
+from .jiralinkmanager import JiraLinkManager
 from .plugin import MacroPlugin, PluginValidationError
-from .exceptions import MacroError
 
 
 class TicketFolderLoggerAdapter(logging.LoggerAdapter):
@@ -49,7 +47,7 @@
         )
         self._handler = logging.handlers.RotatingFileHandler(
             self.get_metadata_path(constants.TICKET_OPERATION_LOG),
-            maxBytes=2 ** 20,
+            maxBytes=2**20,
             backupCount=2,
             encoding="utf-8",
         )
@@ -212,21 +210,29 @@
         if hasattr(self, "_jira"):
             del self._jira
 
+    def serialize(self) -> str:
+        options = copy.copy(self.issue._options)
+        if "default_batch_size" in options:
+            # This will have classes as keys, which will cause everything
+            # to have a real problem; let's just pop this off
+            options.pop("default_batch_size")
+
+        storable = {"options": options, "raw": self.issue.raw}
+
+        return json.dumps(
+            storable,
+            indent=4,
+            sort_keys=True,
+            ensure_ascii=False,
+        )
+
     def store_cached_issue(self, shadow=True):
-        storable = {"options": self.issue._options, "raw": self.issue.raw}
         with io.open(
             self.get_path(".jirafs/issue.json", shadow=shadow),
             "w",
             encoding="utf-8",
         ) as out:
-            out.write(
-                json.dumps(
-                    storable,
-                    indent=4,
-                    sort_keys=True,
-                    ensure_ascii=False,
-                )
-            )
+            out.write(self.serialize())
 
     @property
     def cached_issue(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/PKG-INFO 
new/jirafs-2.3.1/jirafs.egg-info/PKG-INFO
--- old/jirafs-2.3.0/jirafs.egg-info/PKG-INFO   2021-11-26 05:04:32.000000000 
+0100
+++ new/jirafs-2.3.1/jirafs.egg-info/PKG-INFO   1970-01-01 01:00:00.000000000 
+0100
@@ -1,16 +0,0 @@
-Metadata-Version: 2.1
-Name: jirafs
-Version: 2.3.0
-Summary: Edit Jira issues as text files locally.
-Home-page: https://github.com/coddingtonbear/jirafs
-Author: Adam Coddington
-Author-email: m...@adamcoddington.net
-License: UNKNOWN
-Platform: UNKNOWN
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 3
-License-File: LICENSE
-
-UNKNOWN
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/SOURCES.txt 
new/jirafs-2.3.1/jirafs.egg-info/SOURCES.txt
--- old/jirafs-2.3.0/jirafs.egg-info/SOURCES.txt        2021-11-26 
05:04:32.000000000 +0100
+++ new/jirafs-2.3.1/jirafs.egg-info/SOURCES.txt        1970-01-01 
01:00:00.000000000 +0100
@@ -1,96 +0,0 @@
-.bumpversion.cfg
-CHANGELOG.rst
-LICENSE
-MANIFEST.in
-readme.rst
-requirements-dev.txt
-requirements.txt
-setup.cfg
-setup.py
-tox.ini
-docs/Makefile
-docs/source/advanced_commands.rst
-docs/source/commands.rst
-docs/source/conf.py
-docs/source/configuration.rst
-docs/source/details.rst
-docs/source/getting_started.rst
-docs/source/index.rst
-docs/source/macros.rst
-docs/source/migrating.rst
-docs/source/plugins.rst
-docs/source/writing_command_plugins.rst
-docs/source/writing_folder_plugins.rst
-docs/source/writing_plugins.rst
-jirafs/.pre-commit-config.yaml
-jirafs/__init__.py
-jirafs/cmdline.py
-jirafs/constants.py
-jirafs/exceptions.py
-jirafs/jirafieldmanager.py
-jirafs/jiralinkmanager.py
-jirafs/migrations.py
-jirafs/plugin.py
-jirafs/readers.py
-jirafs/ticketfolder.py
-jirafs/types.py
-jirafs/utils.py
-jirafs.egg-info/PKG-INFO
-jirafs.egg-info/SOURCES.txt
-jirafs.egg-info/dependency_links.txt
-jirafs.egg-info/entry_points.txt
-jirafs.egg-info/requires.txt
-jirafs.egg-info/top_level.txt
-jirafs/commands/__init__.py
-jirafs/commands/assign.py
-jirafs/commands/clone.py
-jirafs/commands/commit.py
-jirafs/commands/config.py
-jirafs/commands/create.py
-jirafs/commands/debug.py
-jirafs/commands/diff.py
-jirafs/commands/fetch.py
-jirafs/commands/field.py
-jirafs/commands/git.py
-jirafs/commands/log.py
-jirafs/commands/match.py
-jirafs/commands/merge.py
-jirafs/commands/open.py
-jirafs/commands/plugins.py
-jirafs/commands/pull.py
-jirafs/commands/push.py
-jirafs/commands/search_users.py
-jirafs/commands/setfield.py
-jirafs/commands/status.py
-jirafs/commands/submit.py
-jirafs/commands/subtask.py
-jirafs/commands/transition.py
-jirafs/commands/version.py
-jirafs/commands/preview/__init__.py
-jirafs/commands/preview/templates/base.html
-jirafs/commands/preview/templates/traceback.html
-tests/__init__.py
-tests/base.py
-tests/environment.py
-tests/test_command_result.py
-tests/test_jirafieldmanager.py
-tests/test_plugins.py
-tests/test_ticketfolder.py
-tests/test_utils.py
-tests/assets/basic.issue.json
-tests/assets/basic.status.json
-tests/assets/default.description.jira
-tests/assets/default.fields.jira
-tests/assets/test_fetch/fetched.jira
-tests/assets/test_fetch/fetched.json
-tests/assets/test_status_local_changes/alpha.svg
-tests/commands/__init__.py
-tests/commands/base.py
-tests/commands/test_push.py
-tests/features/clone.feature
-tests/features/field.feature
-tests/integration/__init__.py
-tests/integration/base.py
-tests/integration/test_clone_issue.py
-tests/steps/__init__.py
-tests/steps/basic.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/dependency_links.txt 
new/jirafs-2.3.1/jirafs.egg-info/dependency_links.txt
--- old/jirafs-2.3.0/jirafs.egg-info/dependency_links.txt       2021-11-26 
05:04:32.000000000 +0100
+++ new/jirafs-2.3.1/jirafs.egg-info/dependency_links.txt       1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/entry_points.txt 
new/jirafs-2.3.1/jirafs.egg-info/entry_points.txt
--- old/jirafs-2.3.0/jirafs.egg-info/entry_points.txt   2021-11-26 
05:04:32.000000000 +0100
+++ new/jirafs-2.3.1/jirafs.egg-info/entry_points.txt   1970-01-01 
01:00:00.000000000 +0100
@@ -1,30 +0,0 @@
-[console_scripts]
-jirafs = jirafs.cmdline:main
-
-[jirafs_commands]
-assign = jirafs.commands.assign:Command
-clone = jirafs.commands.clone:Command
-commit = jirafs.commands.commit:Command
-config = jirafs.commands.config:Command
-create = jirafs.commands.create:Command
-debug = jirafs.commands.debug:Command
-diff = jirafs.commands.diff:Command
-fetch = jirafs.commands.fetch:Command
-field = jirafs.commands.field:Command
-git = jirafs.commands.git:Command
-log = jirafs.commands.log:Command
-match = jirafs.commands.match:Command
-merge = jirafs.commands.merge:Command
-open = jirafs.commands.open:Command
-plugins = jirafs.commands.plugins:Command
-preview = jirafs.commands.preview:Command
-pull = jirafs.commands.pull:Command
-push = jirafs.commands.push:Command
-search_users = jirafs.commands.search_users:Command
-setfield = jirafs.commands.setfield:Command
-status = jirafs.commands.status:Command
-submit = jirafs.commands.submit:Command
-subtask = jirafs.commands.subtask:Command
-transition = jirafs.commands.transition:Command
-version = jirafs.commands.version:Command
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/requires.txt 
new/jirafs-2.3.1/jirafs.egg-info/requires.txt
--- old/jirafs-2.3.0/jirafs.egg-info/requires.txt       2021-11-26 
05:04:32.000000000 +0100
+++ new/jirafs-2.3.1/jirafs.egg-info/requires.txt       1970-01-01 
01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-jira<4,>=3.1.1
-python-dateutil<3,>=2.8.1
-blessings<2.0,>=1.5.1
-prettytable<1.0,>=0.7.2
-environmental-override<1.0.0,>=0.1.2
-jinja2<3.0,>=2.10.3
-watchdog<1.0.0,>=0.9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/jirafs.egg-info/top_level.txt 
new/jirafs-2.3.1/jirafs.egg-info/top_level.txt
--- old/jirafs-2.3.0/jirafs.egg-info/top_level.txt      2021-11-26 
05:04:32.000000000 +0100
+++ new/jirafs-2.3.1/jirafs.egg-info/top_level.txt      1970-01-01 
01:00:00.000000000 +0100
@@ -1 +0,0 @@
-jirafs
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/jirafs-2.3.0/setup.cfg new/jirafs-2.3.1/setup.cfg
--- old/jirafs-2.3.0/setup.cfg  2021-11-26 05:04:32.814861800 +0100
+++ new/jirafs-2.3.1/setup.cfg  2022-09-20 06:07:54.000000000 +0200
@@ -1,7 +1,2 @@
 [tool:pytest]
-norecursedirs = lib
-
-[egg_info]
-tag_build = 
-tag_date = 0
-
+norecursedirs=lib

++++++ remove-mock.patch ++++++
>From 2aa5e4620920f51a9ad4e3ade05b45e88aaf7155 Mon Sep 17 00:00:00 2001
From: Steve Kowalik <ste...@wedontsleep.org>
Date: Fri, 2 Jun 2023 15:47:09 +1000
Subject: [PATCH] Switch to unittest.mock

Python 3.3+ has included mock in the standard library, under the
unittest module. Switch to using that, rather than the external mock
library.

Fixes #69
---
 .travis.yml                  | 2 +-
 tests/commands/base.py       | 4 ++--
 tests/commands/test_push.py  | 2 +-
 tests/test_command_result.py | 2 +-
 tests/test_plugins.py        | 4 ++--
 tests/test_ticketfolder.py   | 4 ++--
 tests/test_utils.py          | 2 +-
 7 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 76a9d96..1bcbae1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -7,7 +7,7 @@ before_install:
 - curl -fI $INTEGRATION_TESTING_URL
 - pip install --upgrade setuptools
 - pip install -r requirements.txt
-- pip install pytest mock behave
+- pip install pytest behave
 - pip install -e .
 - git config --global user.email "git...@adamcoddington.net"
 - git config --global user.name "I'm a Robot"
diff --git a/tests/commands/base.py b/tests/commands/base.py
index e961bd8..5843c5f 100644
--- a/tests/commands/base.py
+++ b/tests/commands/base.py
@@ -1,8 +1,8 @@
 import os
 import tempfile
 
-import mock
-from mock import patch
+from unittest import mock
+from unittest.mock import patch
 
 from jirafs.utils import run_command_method_with_kwargs
 
diff --git a/tests/commands/test_push.py b/tests/commands/test_push.py
index 78e7673..283dbc1 100644
--- a/tests/commands/test_push.py
+++ b/tests/commands/test_push.py
@@ -1,4 +1,4 @@
-from mock import call, patch
+from unittest.mock import call, patch
 
 from jirafs.utils import run_command_method_with_kwargs
 
diff --git a/tests/test_command_result.py b/tests/test_command_result.py
index f44ec43..49ed5c9 100644
--- a/tests/test_command_result.py
+++ b/tests/test_command_result.py
@@ -1,4 +1,4 @@
-from mock import patch
+from unittest.mock import patch
 
 from jirafs.plugin import CommandResult
 
diff --git a/tests/test_plugins.py b/tests/test_plugins.py
index e1af5bf..f165874 100644
--- a/tests/test_plugins.py
+++ b/tests/test_plugins.py
@@ -3,8 +3,8 @@
 import shutil
 import tempfile
 
-import mock
-from mock import patch
+from unittest import mock
+from unittest.mock import patch
 
 from jirafs.plugin import MacroPlugin
 from jirafs.utils import run_command_method_with_kwargs
diff --git a/tests/test_ticketfolder.py b/tests/test_ticketfolder.py
index f93d2b7..eba31d6 100644
--- a/tests/test_ticketfolder.py
+++ b/tests/test_ticketfolder.py
@@ -4,9 +4,9 @@
 import shutil
 import tempfile
 
-import mock
+from unittest import mock
 import six
-from mock import patch
+from unittest.mock import patch
 
 from jirafs import exceptions
 from jirafs.jirafieldmanager import JiraFieldManager
diff --git a/tests/test_utils.py b/tests/test_utils.py
index c26246f..7c9e41e 100644
--- a/tests/test_utils.py
+++ b/tests/test_utils.py
@@ -1,6 +1,6 @@
 from distutils.version import LooseVersion
 
-import mock
+from unittest import mock
 
 from jirafs import utils
 

Reply via email to