Add some missing type libraries for mypy (#9657)

* add some missing types

* install pkg-config

* install pkg-config for docker too

* add pkg-config to plugins

* pkg-config when cryptography may need to be built

* deps cleanup

* more comments

* more tweaks
This commit is contained in:
Brad Warren 2023-04-08 18:49:08 -07:00 committed by GitHub
parent 9ee1eee219
commit 5149dfd96e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 89 additions and 70 deletions

View file

@ -1,3 +1,5 @@
# This does not include the dependencies needed to build cryptography. See
# https://cryptography.io/en/latest/installation/
steps:
# We run brew update because we've seen attempts to install an older version
# of a package fail. See
@ -12,14 +14,8 @@ steps:
set -e
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
python3-dev \
gcc \
libaugeas0 \
libssl-dev \
libffi-dev \
ca-certificates \
nginx-light \
openssl
nginx-light
sudo systemctl stop nginx
sudo sysctl net.ipv4.ip_unprivileged_port_start=0
condition: startswith(variables['IMAGE_NAME'], 'ubuntu')

View file

@ -7,10 +7,11 @@ EXPOSE 80 443
WORKDIR /opt/certbot/src
COPY . .
# This does not include the dependencies needed to build cryptography. See
# https://cryptography.io/en/latest/installation/#building-cryptography-on-linux
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install apache2 git python3-dev \
python3-venv gcc libaugeas0 libssl-dev libffi-dev ca-certificates \
openssl nginx-light -y --no-install-recommends && \
DEBIAN_FRONTEND=noninteractive apt-get install apache2 git python3-venv \
libaugeas0 nginx-light -y --no-install-recommends && \
apt-get clean && \
rm -rf /var/lib/apt/lists/* \
/tmp/* \

View file

@ -37,7 +37,9 @@ class _ProxyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
verify=False, timeout=10)
issuer_cert = x509.load_pem_x509_certificate(request.content, default_backend())
content_len = int(self.headers.get('Content-Length'))
raw_content_len = self.headers.get('Content-Length')
assert isinstance(raw_content_len, str)
content_len = int(raw_content_len)
ocsp_request = ocsp.load_der_ocsp_request(self.rfile.read(content_len))
response = requests.get('{0}/cert-status-by-serial/{1}'.format(

View file

@ -1,9 +1,10 @@
FROM debian:buster
MAINTAINER Brad Warren <bmw@eff.org>
# This does not include the dependencies needed to build cryptography. See
# https://cryptography.io/en/latest/installation/#building-cryptography-on-linux
RUN apt-get update && \
apt install python3-dev python3-venv gcc libaugeas0 libssl-dev \
libffi-dev ca-certificates openssl -y
apt install python3-venv libaugeas0 -y
WORKDIR /opt/certbot/src

View file

@ -274,9 +274,9 @@ def open(file_path: str, flags: int, mode: int = 0o777) -> int: # pylint: disab
return os.open(file_path, flags ^ os.O_CREAT ^ os.O_EXCL)
# Windows: general case, we call os.open, let exceptions be thrown, then chmod if all is fine.
handle = os.open(file_path, flags)
fd = os.open(file_path, flags)
chmod(file_path, mode)
return handle
return fd
def makedirs(file_path: str, mode: int = 0o777) -> None:

View file

@ -41,13 +41,11 @@ Install and configure the OS system dependencies required to run Certbot.
# For APT-based distributions (e.g. Debian, Ubuntu ...)
sudo apt update
sudo apt install python3-dev python3-venv gcc libaugeas0 libssl-dev \
libffi-dev ca-certificates openssl
sudo apt install python3-venv libaugeas0
# For RPM-based distributions (e.g. Fedora, CentOS ...)
# NB1: old distributions will use yum instead of dnf
# NB2: RHEL-based distributions use python3X-devel instead of python3-devel (e.g. python36-devel)
sudo dnf install python3-devel gcc augeas-libs openssl-devel libffi-devel \
redhat-rpm-config ca-certificates openssl
# NB2: RHEL-based distributions use python3X instead of python3 (e.g. python38)
sudo dnf install python3 augeas-libs
# For macOS installations with Homebrew already installed and configured
# NB: If you also run `brew install python` you don't need the ~/lib
# directory created below, however, Certbot's Apache plugin won't work
@ -57,6 +55,12 @@ Install and configure the OS system dependencies required to run Certbot.
mkdir ~/lib
ln -s $(brew --prefix)/lib/libaugeas* ~/lib
.. note:: If you have trouble creating the virtual environment below, you may
need to install additional dependencies. See the `cryptography project's
site`_ for more information.
.. _`cryptography project's site`: https://cryptography.io/en/latest/installation.html#building-cryptography-on-linux
Set up the Python virtual environment that will host your Certbot local instance.
.. code-block:: shell

View file

@ -95,9 +95,11 @@ test_extras = [
'pytest-xdist',
'setuptools',
'tox',
'types-httplib2',
'types-pyOpenSSL',
'types-pyRFC3339',
'types-pytz',
'types-pywin32',
'types-requests',
'types-setuptools',
'types-six',

View file

@ -1,6 +1,9 @@
#!/bin/sh
#
# Install OS dependencies for test farm tests.
#
# This does not include the dependencies needed to build cryptography. See
# https://cryptography.io/en/latest/installation/#building-cryptography-on-linux
set -ex # Work even if somebody does "sh thisscript.sh".

View file

@ -79,6 +79,7 @@ parts:
- libffi-dev
- python3-dev
- cargo
- pkg-config
build-environment:
# We set this environment variable while building to try and increase the
# stability of fetching the rust crates needed to build the cryptography

View file

@ -34,6 +34,7 @@ RUN apk add --no-cache --virtual .build-deps \
python3-dev \
cargo \
git \
pkgconfig \
&& python tools/pip_install.py --no-cache-dir \
--editable src/acme \
--editable src/certbot \

View file

@ -66,6 +66,11 @@ cryptography = "!= 37.0.3"
# https://github.com/python-poetry/poetry-plugin-export/issues/168 is resolved.
poetry = "<1.3.0"
# setuptools 67.5.0 deprecated pkg_resources which we still use. Let's pin it
# back until this is fixed. Doing this work is being tracked by
# https://github.com/certbot/certbot/issues/9606.
setuptools = "<67.5.0"
[tool.poetry.dev-dependencies]
[build-system]

View file

@ -11,55 +11,55 @@ appnope==0.1.3 ; python_version >= "3.7" and python_version < "4.0" and sys_plat
astroid==2.13.5 ; python_full_version >= "3.7.2" and python_version < "4.0"
attrs==22.2.0 ; python_version >= "3.7" and python_version < "4.0"
azure-devops==6.0.0b4 ; python_version >= "3.7" and python_version < "4.0"
babel==2.11.0 ; python_version >= "3.7" and python_version < "4.0"
babel==2.12.1 ; python_version >= "3.7" and python_version < "4.0"
backcall==0.2.0 ; python_version >= "3.7" and python_version < "4.0"
backports-cached-property==1.0.2 ; python_version >= "3.7" and python_version < "3.8"
bcrypt==4.0.1 ; python_version >= "3.7" and python_version < "4.0"
beautifulsoup4==4.11.2 ; python_version >= "3.7" and python_version < "4.0"
beautifulsoup4==4.12.0 ; python_version >= "3.7" and python_version < "4.0"
bleach==6.0.0 ; python_version >= "3.7" and python_version < "4.0"
boto3==1.26.65 ; python_version >= "3.7" and python_version < "4.0"
botocore==1.29.65 ; python_version >= "3.7" and python_version < "4.0"
boto3==1.26.105 ; python_version >= "3.7" and python_version < "4.0"
botocore==1.29.105 ; python_version >= "3.7" and python_version < "4.0"
cachecontrol==0.12.11 ; python_version >= "3.7" and python_version < "4.0"
cachetools==5.3.0 ; python_version >= "3.7" and python_version < "4.0"
cachy==0.3.0 ; python_version >= "3.7" and python_version < "4.0"
certifi==2022.12.7 ; python_version >= "3.7" and python_version < "4"
cffi==1.15.1 ; python_version >= "3.7" and python_version < "4.0"
charset-normalizer==3.0.1 ; python_version >= "3.7" and python_version < "4"
charset-normalizer==3.1.0 ; python_version >= "3.7" and python_version < "4"
cleo==1.0.0a5 ; python_version >= "3.7" and python_version < "4.0"
cloudflare==2.11.1 ; python_version >= "3.7" and python_version < "4.0"
colorama==0.4.6 ; python_version < "4.0" and sys_platform == "win32" and python_version >= "3.7" or python_version >= "3.7" and python_version < "4.0" and platform_system == "Windows"
configargparse==1.5.3 ; python_version >= "3.7" and python_version < "4.0"
configobj==5.0.8 ; python_version >= "3.7" and python_version < "4.0"
coverage==7.1.0 ; python_version >= "3.7" and python_version < "4.0"
coverage==7.2.2 ; python_version >= "3.7" and python_version < "4.0"
crashtest==0.3.1 ; python_version >= "3.7" and python_version < "4.0"
cryptography==39.0.1 ; python_version >= "3.7" and python_version < "4.0"
cython==0.29.33 ; python_version >= "3.7" and python_version < "4.0"
cryptography==40.0.1 ; python_version >= "3.7" and python_version < "4.0"
cython==0.29.34 ; python_version >= "3.7" and python_version < "4.0"
decorator==5.1.1 ; python_version >= "3.7" and python_version < "4.0"
dill==0.3.6 ; python_full_version >= "3.7.2" and python_version < "4.0"
distlib==0.3.6 ; python_version >= "3.7" and python_version < "4.0"
distro==1.8.0 ; python_version >= "3.7" and python_version < "4.0"
dns-lexicon==3.11.7 ; python_version >= "3.7" and python_version < "4.0"
dnspython==2.3.0 ; python_version >= "3.7" and python_version < "4.0"
docutils==0.17.1 ; python_version >= "3.7" and python_version < "4.0"
docutils==0.18.1 ; python_version >= "3.7" and python_version < "4.0"
dulwich==0.20.50 ; python_version >= "3.7" and python_version < "4.0"
exceptiongroup==1.1.0 ; python_version >= "3.7" and python_version < "3.11"
exceptiongroup==1.1.1 ; python_version >= "3.7" and python_version < "3.11"
execnet==1.9.0 ; python_version >= "3.7" and python_version < "4.0"
fabric==3.0.0 ; python_version >= "3.7" and python_version < "4.0"
filelock==3.9.0 ; python_version >= "3.7" and python_version < "4.0"
filelock==3.10.7 ; python_version >= "3.7" and python_version < "4.0"
google-api-core==2.11.0 ; python_version >= "3.7" and python_version < "4.0"
google-api-python-client==2.77.0 ; python_version >= "3.7" and python_version < "4.0"
google-api-python-client==2.83.0 ; python_version >= "3.7" and python_version < "4.0"
google-auth-httplib2==0.1.0 ; python_version >= "3.7" and python_version < "4.0"
google-auth==2.16.0 ; python_version >= "3.7" and python_version < "4.0"
googleapis-common-protos==1.58.0 ; python_version >= "3.7" and python_version < "4.0"
google-auth==2.17.1 ; python_version >= "3.7" and python_version < "4.0"
googleapis-common-protos==1.59.0 ; python_version >= "3.7" and python_version < "4.0"
html5lib==1.1 ; python_version >= "3.7" and python_version < "4.0"
httplib2==0.21.0 ; python_version >= "3.7" and python_version < "4.0"
httplib2==0.22.0 ; python_version >= "3.7" and python_version < "4.0"
idna==3.4 ; python_version >= "3.7" and python_version < "4"
imagesize==1.4.1 ; python_version >= "3.7" and python_version < "4.0"
importlib-metadata==4.13.0 ; python_version >= "3.7" and python_version < "4.0"
importlib-resources==5.10.2 ; python_version >= "3.7" and python_version < "3.9"
importlib-resources==5.12.0 ; python_version >= "3.7" and python_version < "3.9"
iniconfig==2.0.0 ; python_version >= "3.7" and python_version < "4.0"
invoke==2.0.0 ; python_version >= "3.7" and python_version < "4.0"
ipdb==0.13.11 ; python_version >= "3.7" and python_version < "4.0"
ipdb==0.13.13 ; python_version >= "3.7" and python_version < "4.0"
ipython==7.34.0 ; python_version >= "3.7" and python_version < "4.0"
isodate==0.6.1 ; python_version >= "3.7" and python_version < "4.0"
isort==5.11.5 ; python_full_version >= "3.7.2" and python_version < "4.0"
@ -75,25 +75,25 @@ jsonschema==4.17.3 ; python_version >= "3.7" and python_version < "4.0"
keyring==23.13.1 ; python_version >= "3.7" and python_version < "4.0"
lazy-object-proxy==1.9.0 ; python_full_version >= "3.7.2" and python_version < "4.0"
lockfile==0.12.2 ; python_version >= "3.7" and python_version < "4.0"
markdown-it-py==2.1.0 ; python_version >= "3.7" and python_version < "4.0"
markdown-it-py==2.2.0 ; python_version >= "3.7" and python_version < "4.0"
markupsafe==2.1.2 ; python_version >= "3.7" and python_version < "4.0"
matplotlib-inline==0.1.6 ; python_version >= "3.7" and python_version < "4.0"
mccabe==0.7.0 ; python_full_version >= "3.7.2" and python_version < "4.0"
mdurl==0.1.2 ; python_version >= "3.7" and python_version < "4.0"
more-itertools==9.0.0 ; python_version >= "3.7" and python_version < "4.0"
msgpack==1.0.4 ; python_version >= "3.7" and python_version < "4.0"
more-itertools==9.1.0 ; python_version >= "3.7" and python_version < "4.0"
msgpack==1.0.5 ; python_version >= "3.7" and python_version < "4.0"
msrest==0.6.21 ; python_version >= "3.7" and python_version < "4.0"
mypy-extensions==1.0.0 ; python_version >= "3.7" and python_version < "4.0"
mypy==1.0.0 ; python_version >= "3.7" and python_version < "4.0"
mypy==1.1.1 ; python_version >= "3.7" and python_version < "4.0"
oauth2client==4.1.3 ; python_version >= "3.7" and python_version < "4.0"
oauthlib==3.2.2 ; python_version >= "3.7" and python_version < "4.0"
packaging==23.0 ; python_version >= "3.7" and python_version < "4.0"
paramiko==3.0.0 ; python_version >= "3.7" and python_version < "4.0"
paramiko==3.1.0 ; python_version >= "3.7" and python_version < "4.0"
parsedatetime==2.6 ; python_version >= "3.7" and python_version < "4.0"
parso==0.8.3 ; python_version >= "3.7" and python_version < "4.0"
pexpect==4.8.0 ; python_version >= "3.7" and python_version < "4.0"
pickleshare==0.7.5 ; python_version >= "3.7" and python_version < "4.0"
pip==23.0 ; python_version >= "3.7" and python_version < "4.0"
pip==23.0.1 ; python_version >= "3.7" and python_version < "4.0"
pkginfo==1.9.6 ; python_version >= "3.7" and python_version < "4.0"
pkgutil-resolve-name==1.3.10 ; python_version >= "3.7" and python_version < "3.9"
platformdirs==2.6.2 ; python_version < "4.0" and python_version >= "3.7"
@ -102,8 +102,8 @@ ply==3.11 ; python_version >= "3.7" and python_version < "4.0"
poetry-core==1.3.2 ; python_version >= "3.7" and python_version < "4.0"
poetry-plugin-export==1.2.0 ; python_version >= "3.7" and python_version < "4.0"
poetry==1.2.2 ; python_version >= "3.7" and python_version < "4.0"
prompt-toolkit==3.0.36 ; python_version >= "3.7" and python_version < "4.0"
protobuf==4.21.12 ; python_version >= "3.7" and python_version < "4.0"
prompt-toolkit==3.0.38 ; python_version >= "3.7" and python_version < "4.0"
protobuf==4.22.1 ; python_version >= "3.7" and python_version < "4.0"
ptyprocess==0.7.0 ; python_version >= "3.7" and python_version < "4.0"
py==1.11.0 ; python_version >= "3.7" and python_version < "4.0"
pyasn1-modules==0.2.8 ; python_version >= "3.7" and python_version < "4.0"
@ -114,19 +114,19 @@ pylev==1.4.0 ; python_version >= "3.7" and python_version < "4.0"
pylint==2.15.5 ; python_full_version >= "3.7.2" and python_version < "4.0"
pynacl==1.5.0 ; python_version >= "3.7" and python_version < "4.0"
pynsist==2.7 ; python_version >= "3.7" and python_version < "4.0"
pyopenssl==23.0.0 ; python_version >= "3.7" and python_version < "4.0"
pyopenssl==23.1.1 ; python_version >= "3.7" and python_version < "4.0"
pyparsing==3.0.9 ; python_version >= "3.7" and python_version < "4.0"
pyrfc3339==1.1 ; python_version >= "3.7" and python_version < "4.0"
pyrsistent==0.19.3 ; python_version >= "3.7" and python_version < "4.0"
pytest-cov==4.0.0 ; python_version >= "3.7" and python_version < "4.0"
pytest-xdist==3.2.0 ; python_version >= "3.7" and python_version < "4.0"
pytest==7.2.1 ; python_version >= "3.7" and python_version < "4.0"
pytest-xdist==3.2.1 ; python_version >= "3.7" and python_version < "4.0"
pytest==7.2.2 ; python_version >= "3.7" and python_version < "4.0"
python-augeas==1.1.0 ; python_version >= "3.7" and python_version < "4.0"
python-dateutil==2.8.2 ; python_version >= "3.7" and python_version < "4.0"
python-digitalocean==1.17.0 ; python_version >= "3.7" and python_version < "4.0"
pytz==2022.7.1 ; python_version >= "3.7" and python_version < "4.0"
pytz==2023.3 ; python_version >= "3.7" and python_version < "4.0"
pywin32-ctypes==0.2.0 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32"
pywin32==305 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32"
pywin32==306 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "win32"
pyyaml==6.0 ; python_version >= "3.7" and python_version < "4.0"
readme-renderer==37.3 ; python_version >= "3.7" and python_version < "4.0"
requests-download==0.1.2 ; python_version >= "3.7" and python_version < "4.0"
@ -135,49 +135,51 @@ requests-oauthlib==1.3.1 ; python_version >= "3.7" and python_version < "4.0"
requests-toolbelt==0.9.1 ; python_version >= "3.7" and python_version < "4.0"
requests==2.28.2 ; python_version >= "3.7" and python_version < "4"
rfc3986==2.0.0 ; python_version >= "3.7" and python_version < "4.0"
rich==13.3.1 ; python_version >= "3.7" and python_version < "4.0"
rich==13.3.3 ; python_version >= "3.7" and python_version < "4.0"
rsa==4.9 ; python_version >= "3.7" and python_version < "4"
s3transfer==0.6.0 ; python_version >= "3.7" and python_version < "4.0"
secretstorage==3.3.3 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "linux"
semantic-version==2.10.0 ; python_version >= "3.7" and python_version < "4.0"
setuptools-rust==1.5.2 ; python_version >= "3.7" and python_version < "4.0"
setuptools==67.2.0 ; python_version >= "3.7" and python_version < "4.0"
setuptools==67.4.0 ; python_version >= "3.7" and python_version < "4.0"
shellingham==1.5.0.post1 ; python_version >= "3.7" and python_version < "4.0"
six==1.16.0 ; python_version >= "3.7" and python_version < "4.0"
snowballstemmer==2.2.0 ; python_version >= "3.7" and python_version < "4.0"
soupsieve==2.3.2.post1 ; python_version >= "3.7" and python_version < "4.0"
sphinx-rtd-theme==1.1.1 ; python_version >= "3.7" and python_version < "4.0"
soupsieve==2.4 ; python_version >= "3.7" and python_version < "4.0"
sphinx-rtd-theme==1.2.0 ; python_version >= "3.7" and python_version < "4.0"
sphinx==5.3.0 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-applehelp==1.0.2 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-devhelp==1.0.2 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-htmlhelp==2.0.0 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-jquery==4.1 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-jsmath==1.0.1 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-qthelp==1.0.3 ; python_version >= "3.7" and python_version < "4.0"
sphinxcontrib-serializinghtml==1.1.5 ; python_version >= "3.7" and python_version < "4.0"
tldextract==3.4.0 ; python_version >= "3.7" and python_version < "4.0"
tomli==2.0.1 ; python_version >= "3.7" and python_full_version <= "3.11.0a6"
tomlkit==0.11.6 ; python_version < "4.0" and python_version >= "3.7"
tomlkit==0.11.7 ; python_version < "4.0" and python_version >= "3.7"
tox==3.28.0 ; python_version >= "3.7" and python_version < "4.0"
traitlets==5.9.0 ; python_version >= "3.7" and python_version < "4.0"
twine==4.0.2 ; python_version >= "3.7" and python_version < "4.0"
typed-ast==1.5.4 ; python_version < "3.8" and python_version >= "3.7"
types-docutils==0.19.1.3 ; python_version >= "3.7" and python_version < "4.0"
types-pyopenssl==23.0.0.2 ; python_version >= "3.7" and python_version < "4.0"
types-pyrfc3339==1.1.1.1 ; python_version >= "3.7" and python_version < "4.0"
types-python-dateutil==2.8.19.6 ; python_version >= "3.7" and python_version < "4.0"
types-pytz==2022.7.1.0 ; python_version >= "3.7" and python_version < "4.0"
types-requests==2.28.11.12 ; python_version >= "3.7" and python_version < "4.0"
types-setuptools==67.1.0.2 ; python_version >= "3.7" and python_version < "4.0"
types-six==1.16.21.4 ; python_version >= "3.7" and python_version < "4.0"
types-urllib3==1.26.25.5 ; python_version >= "3.7" and python_version < "4.0"
typing-extensions==4.4.0 ; python_version >= "3.7" and python_version < "4.0"
types-httplib2==0.22.0.1 ; python_version >= "3.7" and python_version < "4.0"
types-pyopenssl==23.1.0.1 ; python_version >= "3.7" and python_version < "4.0"
types-pyrfc3339==1.1.1.4 ; python_version >= "3.7" and python_version < "4.0"
types-python-dateutil==2.8.19.12 ; python_version >= "3.7" and python_version < "4.0"
types-pytz==2023.3.0.0 ; python_version >= "3.7" and python_version < "4.0"
types-pywin32==306.0.0.1 ; python_version >= "3.7" and python_version < "4.0"
types-requests==2.28.11.17 ; python_version >= "3.7" and python_version < "4.0"
types-setuptools==67.6.0.7 ; python_version >= "3.7" and python_version < "4.0"
types-six==1.16.21.8 ; python_version >= "3.7" and python_version < "4.0"
types-urllib3==1.26.25.10 ; python_version >= "3.7" and python_version < "4.0"
typing-extensions==4.5.0 ; python_version >= "3.7" and python_version < "4.0"
uritemplate==4.1.1 ; python_version >= "3.7" and python_version < "4.0"
urllib3==1.26.14 ; python_version >= "3.7" and python_version < "4.0"
virtualenv==20.18.0 ; python_version >= "3.7" and python_version < "4.0"
urllib3==1.26.15 ; python_version >= "3.7" and python_version < "4.0"
virtualenv==20.21.0 ; python_version >= "3.7" and python_version < "4.0"
wcwidth==0.2.6 ; python_version >= "3.7" and python_version < "4.0"
webencodings==0.5.1 ; python_version >= "3.7" and python_version < "4.0"
wheel==0.38.4 ; python_version >= "3.7" and python_version < "4.0"
wrapt==1.14.1 ; python_full_version >= "3.7.2" and python_version < "4.0"
wheel==0.40.0 ; python_version >= "3.7" and python_version < "4.0"
wrapt==1.15.0 ; python_full_version >= "3.7.2" and python_version < "4.0"
xattr==0.9.9 ; python_version >= "3.7" and python_version < "4.0" and sys_platform == "darwin"
yarg==0.1.9 ; python_version >= "3.7" and python_version < "4.0"
zipp==3.12.1 ; python_version >= "3.7" and python_version < "4.0"
zipp==3.15.0 ; python_version >= "3.7" and python_version < "4.0"

View file

@ -47,6 +47,7 @@ parts:
- libffi-dev
- python3-dev
- cargo
- pkg-config
certbot-metadata:
plugin: dump
source: .