diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 31ec3e1f..59a30e35 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -22,7 +22,7 @@ jobs: id: test uses: fedora-python/tox-github-action@main with: - tox_env: py39,py313,lint + tox_env: py39,py313,lint,isort dnf_install: >- --repo fedora --repo updates krb5-devel diff --git a/docs/source/conf.py b/docs/source/conf.py index b0f62f86..1d787aa1 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -14,6 +14,7 @@ # import os import sys + sys.path.insert(0, os.path.abspath('..')) @@ -182,4 +183,4 @@ epub_exclude_files = ['search.html'] -# -- Extension configuration ------------------------------------------------- \ No newline at end of file +# -- Extension configuration ------------------------------------------------- diff --git a/setup.py b/setup.py index 30b7d76c..882052ec 100644 --- a/setup.py +++ b/setup.py @@ -16,9 +16,10 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110.15.0 USA # # Authors: Ralph Bean -from setuptools import setup import os +from setuptools import setup + with open('requirements.txt', 'rb') as f: install_requires = f.read().decode('utf-8').split('\n') if not os.getenv('READTHEDOCS'): diff --git a/sync-page/event-handler.py b/sync-page/event-handler.py index f2e1983b..af5ce1c1 100644 --- a/sync-page/event-handler.py +++ b/sync-page/event-handler.py @@ -3,10 +3,10 @@ import os # 3rd Party Modules -from flask import Flask, render_template, request, redirect +from flask import Flask, redirect, render_template, request # Local Modules -from sync2jira.main import load_config, initialize_pr, initialize_issues +from sync2jira.main import initialize_issues, initialize_pr, load_config # Global Variables app = Flask(__name__, static_url_path="/assets", static_folder="assets") diff --git a/sync2jira/downstream_issue.py b/sync2jira/downstream_issue.py index fca8bc87..214bbb50 100644 --- a/sync2jira/downstream_issue.py +++ b/sync2jira/downstream_issue.py @@ -17,8 +17,9 @@ # # Authors: Ralph Bean -# Python Standard Library Modules from datetime import datetime, timezone + +# Python Standard Library Modules import difflib import logging import operator @@ -27,9 +28,9 @@ # 3rd Party Modules import arrow +import jinja2 from jira import JIRAError import jira.client -import jinja2 import pypandoc # Local Modules diff --git a/sync2jira/downstream_pr.py b/sync2jira/downstream_pr.py index 46aac653..5c46d1b6 100644 --- a/sync2jira/downstream_pr.py +++ b/sync2jira/downstream_pr.py @@ -26,7 +26,6 @@ import sync2jira.downstream_issue as d_issue from sync2jira.intermediary import Issue, matcher - log = logging.getLogger('sync2jira') diff --git a/sync2jira/mailer.py b/sync2jira/mailer.py index 35a9324c..019dbab3 100644 --- a/sync2jira/mailer.py +++ b/sync2jira/mailer.py @@ -3,10 +3,10 @@ This script is used to send emails """ -import smtplib -import os -from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart +from email.mime.text import MIMEText +import os +import smtplib DEFAULT_FROM = os.environ.get('DEFAULT_FROM') DEFAULT_SERVER = os.environ.get('DEFAULT_SERVER') diff --git a/sync2jira/main.py b/sync2jira/main.py index 16e792cd..d6892052 100644 --- a/sync2jira/main.py +++ b/sync2jira/main.py @@ -21,28 +21,29 @@ Run with systemd, please. """ +from copy import deepcopy + # Build-In Modules import logging -import warnings -import traceback -from time import sleep -import requests -from copy import deepcopy import os +from time import sleep +import traceback +import warnings # 3rd Party Modules import fedmsg import fedmsg.config import jinja2 +import requests from requests_kerberos import HTTPKerberosAuth, OPTIONAL # Local Modules -import sync2jira.upstream_issue as u_issue -import sync2jira.upstream_pr as u_pr import sync2jira.downstream_issue as d_issue import sync2jira.downstream_pr as d_pr -from sync2jira.mailer import send_mail from sync2jira.intermediary import matcher +from sync2jira.mailer import send_mail +import sync2jira.upstream_issue as u_issue +import sync2jira.upstream_pr as u_pr # Set up our logging FORMAT = "[%(asctime)s] %(levelname)s: %(message)s" diff --git a/sync2jira/upstream_issue.py b/sync2jira/upstream_issue.py index ff5760c8..5566f757 100644 --- a/sync2jira/upstream_issue.py +++ b/sync2jira/upstream_issue.py @@ -17,16 +17,15 @@ # # Authors: Ralph Bean +from copy import deepcopy import logging from urllib.parse import urlencode -from copy import deepcopy -import requests from github import Github +import requests import sync2jira.intermediary as i - log = logging.getLogger('sync2jira') graphqlurl = 'https://api.github.com/graphql' diff --git a/sync2jira/upstream_pr.py b/sync2jira/upstream_pr.py index 58d9ede5..a9528523 100644 --- a/sync2jira/upstream_pr.py +++ b/sync2jira/upstream_pr.py @@ -24,7 +24,6 @@ import sync2jira.intermediary as i import sync2jira.upstream_issue as u_issue - log = logging.getLogger('sync2jira') diff --git a/tests/integration_tests/integration_test.py b/tests/integration_tests/integration_test.py index ec0154d1..8c37279b 100644 --- a/tests/integration_tests/integration_test.py +++ b/tests/integration_tests/integration_test.py @@ -2,16 +2,17 @@ This is a helper program to listen for UMB trigger. Test and then deploy Sync2Jira """ # Built-In Modules -import os import logging +import os + +# 3rd Party Modules +import jira.client # Local Modules -from sync2jira.main import main as m from jira_values import GITHUB from runtime_config import runtime_config -# 3rd Party Modules -import jira.client +from sync2jira.main import main as m # Global Variables URL = os.environ['JIRA_STAGE_URL'] @@ -139,4 +140,4 @@ def get_jira_client(): if __name__ == '__main__': # Call our main method after parsing out message - main() \ No newline at end of file + main() diff --git a/tests/test_downstream_issue.py b/tests/test_downstream_issue.py index 6a892a84..71de1cee 100644 --- a/tests/test_downstream_issue.py +++ b/tests/test_downstream_issue.py @@ -1,14 +1,14 @@ +from datetime import datetime, timezone import unittest import unittest.mock as mock from unittest.mock import MagicMock -from datetime import datetime, timezone + +from jira import JIRAError +import jira.client import sync2jira.downstream_issue as d from sync2jira.intermediary import Issue -import jira.client -from jira import JIRAError - PATH = 'sync2jira.downstream_issue.' diff --git a/tests/test_main.py b/tests/test_main.py index b8d1403f..dd146714 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -4,7 +4,6 @@ import sync2jira.main as m - PATH = 'sync2jira.main.' diff --git a/tests/test_upstream_issue.py b/tests/test_upstream_issue.py index 702e47b7..e12b11b9 100644 --- a/tests/test_upstream_issue.py +++ b/tests/test_upstream_issue.py @@ -1,11 +1,10 @@ +from copy import deepcopy import unittest import unittest.mock as mock from unittest.mock import MagicMock -from copy import deepcopy import sync2jira.upstream_issue as u - PATH = 'sync2jira.upstream_issue.' diff --git a/tests/test_upstream_pr.py b/tests/test_upstream_pr.py index 833025fe..a43349a0 100644 --- a/tests/test_upstream_pr.py +++ b/tests/test_upstream_pr.py @@ -1,11 +1,10 @@ +from copy import deepcopy import unittest import unittest.mock as mock from unittest.mock import MagicMock -from copy import deepcopy import sync2jira.upstream_pr as u - PATH = 'sync2jira.upstream_pr.' diff --git a/tox.ini b/tox.ini index fe0f2d37..e04edd85 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py39,py313,lint +envlist = py39,py313,lint,isort [testenv] setenv = @@ -25,3 +25,19 @@ deps = flake8 commands = flake8 sync2jira --max-line-length=140 + +[isort] +profile = black +known_first_party = ["sync2jira"] +force_sort_within_sections = true +order_by_type = false + +[testenv:isort] +skip_install = true +deps = isort +commands = isort --check --diff {posargs:.} + +[testenv:isort-format] +skip_install = true +deps = isort +commands = isort {posargs:.}