commit - 7c4f65b680bc4295653904d23180cb8d8298429f
commit + d1ba2d4778cb6c28d4f45718cc1b0490d6b5ef3c
blob - 6bcc9918cc886bf27d15dd95282277a824ac17a6
blob + a3edd9f5fce0bb37afa8a474925239e96b2485a3
--- .github/workflows/pythontest.yml
+++ .github/workflows/pythontest.yml
- name: Install dependencies
run: |
python -m pip install --upgrade pip
- pip install -U pip coverage flake8 fastimport paramiko urllib3
+ pip install -U ".[fastimport,paramiko,https]"
- name: Install gpg on supported platforms
- run: pip install -U gpg
+ run: pip install -U ".[pgp]"
if: "matrix.os != 'windows-latest' && matrix.python-version != 'pypy3'"
- - name: Install mypy
- run: |
- pip install -U mypy types-paramiko types-requests
- if: "matrix.python-version != 'pypy3'"
- name: Style checks
run: |
+ pip install -U flake8
python -m flake8
- name: Typing checks
run: |
+ pip install -U mypy types-paramiko types-requests
python -m mypy dulwich
if: "matrix.python-version != 'pypy3'"
- name: Build
python setup.py build_ext -i
- name: Coverage test suite run
run: |
+ pip install -U coverage
python -m coverage run -p -m unittest dulwich.tests.test_suite
blob - 25d75eced7d855d9227fce7a9d9d4846e448e10d
blob + 9201aefc4bdd2ebbc00dd0cc2a47bad55083510c
--- dulwich/object_store.py
+++ dulwich/object_store.py
import sys
import warnings
-from typing import Callable, Dict, List, Optional, Tuple, Protocol, Iterator, Set, Iterable, Sequence, cast
+from typing import Callable, Dict, List, Optional, Tuple, Iterator, Set, Iterable, Sequence, cast
+try:
+ from typing import Protocol
+except ImportError: # python << 3.8
+ from typing_extensions import Protocol # type: ignore
+
from dulwich.errors import (
NotTreeError,
)
blob - 08ee44a9df693318d1002c049c839e928c1580e1
blob + 9dcfa31e67776df61b6c2d09f37f968c35955084
--- dulwich/pack.py
+++ dulwich/pack.py
import os
import sys
-from typing import Optional, Callable, Tuple, List, Deque, Union, Protocol, Iterable, Iterator, Dict, TypeVar, Generic, Sequence, Set
+from typing import Optional, Callable, Tuple, List, Deque, Union, Iterable, Iterator, Dict, TypeVar, Generic, Sequence, Set
+
+try:
+ from typing import Protocol
+except ImportError: # python << 3.8
+ from typing_extensions import Protocol # type: ignore
+
import warnings
from hashlib import sha1
blob - 853321cf35941e2fcc683ef2fb88743e064643a7
blob + 9b045eeddbada1386098f6c3630b629a693cb6ff
--- dulwich/server.py
+++ dulwich/server.py
import socket
import sys
import time
-from typing import List, Tuple, Dict, Optional, Iterable, Set, Protocol as TypingProtocol
+from typing import List, Tuple, Dict, Optional, Iterable, Set
+
+try:
+ from typing import Protocol as TypingProtocol
+except ImportError: # python < 3.8
+ from typing_extensions import Protocol as TypingProtocol # type: ignore
+
import zlib
import socketserver
blob - ad428d2e55d87571932b8d89cd67348112e4edd5
blob + d539385f1a2425cdd47129a6a81b8e8fac8495e3
--- setup.cfg
+++ setup.cfg
include_package_data = True
install_requires =
urllib3>=1.25
+ typing_extensions;python_version<="3.7"
zip_safe = False
scripts =
bin/dul-receive-pack