🐛 Fixed compatibility with python 3.10

This commit is contained in:
Edgar 2022-10-20 20:30:39 +02:00
parent 85a4d068b7
commit a2037a5341
No known key found for this signature in database
GPG Key ID: 17D930BB616061A5
4 changed files with 13 additions and 36 deletions

View File

@ -1,5 +1,5 @@
def extract_list(config, section): def extract_list(config, section):
from collections import Iterable from collections.abc import Iterable
l = [] l = []
if 'modules' in config: if 'modules' in config:
for module in config['modules']: for module in config['modules']:

View File

@ -13,7 +13,7 @@ def test_replace():
def interpolate(d, d_map): def interpolate(d, d_map):
from collections import Mapping, Iterable from collections.abc import Mapping, Iterable
from copy import copy from copy import copy
for k, v in d.items(): for k, v in d.items():

View File

@ -1,14 +1,9 @@
def parse_cmake_module(s_in, overrides={}): def parse_cmake_module(s_in, overrides={}):
import sys import sys
from collections import Mapping, Iterable, defaultdict from collections.abc import Mapping, Iterable
from collections import defaultdict
from autocmake.parse_yaml import parse_yaml from autocmake.parse_yaml import parse_yaml
from io import StringIO
# we do not use the nicer sys.version_info.major
# for compatibility with Python < 2.7
if sys.version_info[0] > 2:
from io import StringIO
else:
from StringIO import StringIO
parsed_config = defaultdict(lambda: None) parsed_config = defaultdict(lambda: None)

View File

@ -1,15 +1,9 @@
#!/usr/bin/env python #!/usr/bin/env python3
import os import os
import sys import sys
AUTOCMAKE_GITHUB_URL = 'https://github.com/AnotherFoxGuy/autocmake/raw/master/'
if sys.version_info[0] == 2 and sys.version_info[1] < 7:
sys.stderr.write("ERROR: update.py requires at least Python 2.7\n")
sys.exit(-1)
AUTOCMAKE_GITHUB_URL = 'https://github.com/dev-cafe/autocmake/raw/master/'
def licensing_info(): def licensing_info():
@ -56,7 +50,7 @@ def fetch_modules(config, relative_path, download_directory):
Assemble modules which will Assemble modules which will
be included in CMakeLists.txt. be included in CMakeLists.txt.
""" """
from collections import Iterable, namedtuple, defaultdict from collections import namedtuple, defaultdict
from autocmake.extract import extract_list, to_d, to_l from autocmake.extract import extract_list, to_d, to_l
from autocmake.parse_rst import parse_cmake_module from autocmake.parse_rst import parse_cmake_module
@ -130,7 +124,6 @@ def fetch_modules(config, relative_path, download_directory):
def process_yaml(argv): def process_yaml(argv):
from autocmake.parse_yaml import parse_yaml from autocmake.parse_yaml import parse_yaml
from autocmake.generate import gen_cmakelists, gen_setup from autocmake.generate import gen_cmakelists, gen_setup
from autocmake.extract import extract_list
project_root = argv[1] project_root = argv[1]
if not os.path.isdir(project_root): if not os.path.isdir(project_root):
@ -287,22 +280,11 @@ def fetch_url(src, dst):
""" """
Fetch file from URL src and save it to dst. Fetch file from URL src and save it to dst.
""" """
# we do not use the nicer sys.version_info.major import urllib.request
# for compatibility with Python < 2.7 class URLopener(urllib.request.FancyURLopener):
if sys.version_info[0] > 2: def http_error_default(self, url, fp, errcode, errmsg, headers):
import urllib.request sys.stderr.write("ERROR: could not fetch {0}\n".format(url))
sys.exit(-1)
class URLopener(urllib.request.FancyURLopener):
def http_error_default(self, url, fp, errcode, errmsg, headers):
sys.stderr.write("ERROR: could not fetch {0}\n".format(url))
sys.exit(-1)
else:
import urllib
class URLopener(urllib.FancyURLopener):
def http_error_default(self, url, fp, errcode, errmsg, headers):
sys.stderr.write("ERROR: could not fetch {0}\n".format(url))
sys.exit(-1)
dirname = os.path.dirname(dst) dirname = os.path.dirname(dst)
if dirname != '': if dirname != '':