Skip to content

Commit 02aca5f

Browse files
authored
Merge pull request #10 from KeepSafe/chore-upgrade-python
chore upgrade python
2 parents 83ea2b8 + 223b8d4 commit 02aca5f

11 files changed

Lines changed: 42 additions & 32 deletions

File tree

.python-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.6.8
1+
3.11

.travis.yml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
language: python
2+
dist: jammy
23
python:
3-
- "3.6.6"
4+
- "3.11"
45
# command to install dependencies
56
install:
6-
- pip install -r requirements-dev.txt
7+
- make dev
78
# command to run tests
89
script:
9-
- flake8 sdiff tests
10-
- nosetests
10+
- make test
11+
- make coverage

Makefile

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
PYTHON=venv/bin/python3
44
PIP=venv/bin/pip
5-
NOSE=venv/bin/nosetests
5+
COVERAGE=venv/bin/coverage
6+
TEST_RUNNER=venv/bin/pytest
7+
TEST_RUNNER_FLAGS=-s --durations=3 --durations-min=0.005
68
FLAKE=venv/bin/flake8
79
FLAGS=
810
PYPICLOUD_HOST=pypicloud.getkeepsafe.local
@@ -29,14 +31,16 @@ flake:
2931
$(FLAKE) sdiff tests
3032

3133
test: flake
32-
$(NOSE) -s $(FLAGS)
34+
$(COVERAGE) run -m pytest $(TEST_RUNNER_FLAGS)
3335

3436
vtest:
35-
$(NOSE) -s -v $(FLAGS)
37+
$(COVERAGE) run -m pytest -v $(TEST_RUNNER_FLAGS)
38+
39+
testloop:
40+
while sleep 1; do $(TEST_RUNNER) -s --lf $(TEST_RUNNER_FLAGS); done
3641

3742
cov cover coverage:
38-
$(NOSE) -s --with-cover --cover-html --cover-html-dir ./coverage $(FLAGS)
39-
echo "open file://`pwd`/coverage/index.html"
43+
$(COVERAGE) report -m
4044

4145
clean:
4246
rm -rf `find . -name __pycache__`

sdiff/__init__.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
from typing import Type
2-
31
from .parser import parse, MdParser, ZendeskHelpMdParser # noqa
42
from .renderer import TextRenderer
53
from .compare import diff_struct, diff_links # noqa
64

75

8-
def diff(md1, md2, renderer=TextRenderer(), parser_cls: Type[MdParser] = MdParser):
6+
def diff(md1, md2, renderer=TextRenderer(), parser_cls: type[MdParser] = MdParser):
97
tree1 = parse(md1, parser_cls)
108
tree2 = parse(md2, parser_cls)
119

sdiff/errors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
class DiffError(object):
1+
class DiffError:
22

33
def __str__(self):
44
return self.message

sdiff/model.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ class ZendeskArtSymbols(Enum):
2727
callout = 'C'
2828

2929

30-
class Node(object):
30+
class Node:
3131
symbol = Symbols.null.value
3232
name = ''
3333

3434
def __init__(self, nodes=None):
35-
self.nodes: typing.List[Node] = nodes or []
35+
self.nodes: list[Node] = nodes or []
3636
self.meta = {}
3737

3838
def __str__(self):
@@ -57,7 +57,7 @@ def add_nodes(self, nodes):
5757
self.nodes.extend(nodes)
5858

5959
def print_all(self):
60-
return '%s%s' % (self.symbol, ''.join(map(lambda i: i.print_all(), self.nodes)))
60+
return '{}{}'.format(self.symbol, ''.join(map(lambda i: i.print_all(), self.nodes)))
6161

6262

6363
class Root(Node):
@@ -112,7 +112,7 @@ def original(self, renderer):
112112
return renderer.render_node(self, result)
113113

114114
def print_all(self):
115-
return '%s%s' % (self.level, ''.join(map(lambda i: i.print_all(), self.nodes)))
115+
return '{}{}'.format(self.level, ''.join(map(lambda i: i.print_all(), self.nodes)))
116116

117117

118118
class List(Node):
@@ -138,7 +138,7 @@ def original(self, renderer):
138138
result = ''
139139
for idx, node in enumerate(self.nodes):
140140
if self.ordered:
141-
result += '%s. %s' % (idx, node.original(renderer))
141+
result += '{}. {}'.format(idx, node.original(renderer))
142142
else:
143143
result += '* ' + node.original(renderer)
144144
result = result + '\n\n'
@@ -222,7 +222,7 @@ def __repr__(self):
222222
return repr({'type': self.name, 'meta': self.meta})
223223

224224
def original(self, renderer):
225-
return renderer.render_node(self, u' \u00B6\n')
225+
return renderer.render_node(self, ' \u00B6\n')
226226

227227

228228
class ZendeskHelpNode(Node, ABC):
@@ -257,7 +257,7 @@ class ZendeskHelpCallout(ZendeskHelpNode):
257257
symbol = ZendeskArtSymbols.callout.value
258258
name = 'callout'
259259

260-
def __init__(self, style: str = None, nodes: typing.List[Node] = None):
260+
def __init__(self, style: str = None, nodes: list[Node] = None):
261261
super().__init__(nodes)
262262
self.style = style
263263

sdiff/parser.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Match, Type
1+
from re import Match
22

33
import mistune
44
import re
@@ -76,10 +76,10 @@ def get_lexer(cls):
7676
def __init__(self):
7777
super().__init__()
7878
self.grammar_class.block_html = re.compile(
79-
r'^\s* *(?:%s|%s|%s) *(?:\n{1,}|\s*$)' % (
79+
r'^\s* *(?:{}|{}|{}) *(?:\n{{1,}}|\s*$)'.format(
8080
r'<!--[\s\S]*?-->',
81-
r'<(%s)((?:%s)*?)>([\s\S]+?)<\/\1>' % (mistune._block_tag, mistune._valid_attr),
82-
r'<%s(?:%s)*?>' % (mistune._block_tag, mistune._valid_attr),
81+
r'<({})((?:{})*?)>([\s\S]+?)<\/\1>'.format(mistune._block_tag, mistune._valid_attr),
82+
r'<{}(?:{})*?>'.format(mistune._block_tag, mistune._valid_attr),
8383
)
8484
)
8585

@@ -212,7 +212,7 @@ def _remove_ltr_rtl_marks(text):
212212
return re.sub(r'(\u200e|\u200f)', '', text)
213213

214214

215-
def parse(text, parser_cls: Type[MdParser] = MdParser):
215+
def parse(text, parser_cls: type[MdParser] = MdParser):
216216
# HACK dirty hack to be consistent with Markdown list_block
217217
text = _remove_spaces_from_empty_lines(text)
218218
text = _remove_ltr_rtl_marks(text)

sdiff/renderer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from sdiff.model import Root, Node
22

33

4-
class HtmlRenderer(object):
4+
class HtmlRenderer:
55

66
def render(self, tree: Root):
77
result = tree.original(self)
@@ -15,7 +15,7 @@ def render_node(self, node, text):
1515
return text
1616

1717

18-
class TextRenderer(object):
18+
class TextRenderer:
1919

2020
def render(self, tree: Root):
2121
result = tree.original(self)

setup.cfg

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,9 @@ ignore = F403, F405
44

55
[pep8]
66
max-line-length = 120
7+
8+
[coverage:run]
9+
branch = True
10+
11+
[coverage:report]
12+
fail_under = 96

setup.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
from setuptools import setup, find_packages
33

44

5-
version = '0.4.1'
5+
version = '1.0.0'
66

77

88
def read(f):
@@ -14,8 +14,9 @@ def read(f):
1414
]
1515

1616
tests_require = [
17-
'nose',
18-
'flake8',
17+
'pytest >= 8',
18+
'coverage==7.6.1',
19+
'flake8==7.1.1',
1920
'autopep8',
2021
]
2122

0 commit comments

Comments
 (0)