1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

import sys 

 

try: 

# Our match_hostname function is the same as 3.5's, so we only want to 

# import the match_hostname function if it's at least that good. 

if sys.version_info < (3, 5): 

raise ImportError("Fallback to vendored code") 

 

from ssl import CertificateError, match_hostname 

except ImportError: 

try: 

# Backport of the function from a pypi module 

from backports.ssl_match_hostname import CertificateError, match_hostname 

except ImportError: 

# Our vendored copy 

from ._implementation import CertificateError, match_hostname 

 

# Not needed, but documenting what we provide. 

__all__ = ("CertificateError", "match_hostname")