diff --git a/etc/scripts/sch2js/sch2js.py b/etc/scripts/sch2js/sch2js.py index 059e14f259a..683ab2f0d39 100644 --- a/etc/scripts/sch2js/sch2js.py +++ b/etc/scripts/sch2js/sch2js.py @@ -39,8 +39,6 @@ """ if __name__ == '__main__': - - from six import iteritems from schematics.types.base import BaseType from schematics.types.compound import ListType @@ -84,7 +82,7 @@ def jsonschema_for_single_field(field_instance): field_schema['title'] = field_instance.metadata.get('label', '') field_schema['description'] = field_instance.metadata.get('description', '') - for js_key, schematic_key in iteritems(schema_kwargs_to_schematics): + for js_key, schematic_key in schema_kwargs_to_schematics.items(): value = getattr(field_instance, schematic_key, None) if value is not None: field_schema[js_key] = value @@ -98,7 +96,7 @@ def jsonschema_for_fields(model): """ properties = {} required = [] - for field_name, field_instance in iteritems(model.fields): + for field_name, field_instance in model.fields.items(): serialized_name = getattr(field_instance, 'serialized_name', None) or field_name if isinstance(field_instance, ModelType): diff --git a/setup.py b/setup.py index 737a787c74c..6d3070e95ed 100644 --- a/setup.py +++ b/setup.py @@ -90,7 +90,6 @@ def read(*names, **kwargs): # textcode 'Beautifulsoup4 >= 4.0.0, <5.0.0', 'html5lib', - 'six', 'pdfminer.six >= 20170720', 'pycryptodome >= 3.4', 'chardet >= 3.0.0, <4.0.0', diff --git a/src/cluecode/copyrights.py b/src/cluecode/copyrights.py index 972d6396825..3574916b71d 100644 --- a/src/cluecode/copyrights.py +++ b/src/cluecode/copyrights.py @@ -31,8 +31,6 @@ import sys from time import time -from six import string_types - from cluecode import copyrights_hint from commoncode.text import toascii from commoncode.text import unixlinesep @@ -60,7 +58,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ diff --git a/src/cluecode/finder.py b/src/cluecode/finder.py index 97adae92110..be38aa0162d 100644 --- a/src/cluecode/finder.py +++ b/src/cluecode/finder.py @@ -27,7 +27,6 @@ import re import ipaddress -from six import string_types import urlpy from commoncode.text import toascii @@ -55,7 +54,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ diff --git a/src/cluecode/plugin_filter_clues.py b/src/cluecode/plugin_filter_clues.py index e51545dedef..f920395dc0d 100644 --- a/src/cluecode/plugin_filter_clues.py +++ b/src/cluecode/plugin_filter_clues.py @@ -26,7 +26,6 @@ from itertools import chain import attr -from six import string_types from commoncode.cliutils import PluggableCommandLineOption from commoncode.cliutils import POST_SCAN_GROUP @@ -49,7 +48,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @post_scan_impl diff --git a/src/cluecode/plugin_ignore_copyrights.py b/src/cluecode/plugin_ignore_copyrights.py index a660e847171..96cb26e3f37 100644 --- a/src/cluecode/plugin_ignore_copyrights.py +++ b/src/cluecode/plugin_ignore_copyrights.py @@ -25,7 +25,6 @@ import re -from six import string_types from commoncode.cliutils import PluggableCommandLineOption from commoncode.cliutils import OUTPUT_FILTER_GROUP @@ -48,7 +47,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @output_filter_impl diff --git a/src/formattedcode/output_csv.py b/src/formattedcode/output_csv.py index 8ed7291f732..a8eee84a3fd 100644 --- a/src/formattedcode/output_csv.py +++ b/src/formattedcode/output_csv.py @@ -25,7 +25,6 @@ import saneyaml -from six import string_types import unicodecsv from formattedcode import FileOptionType @@ -52,7 +51,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @@ -229,7 +228,7 @@ def pretty(data): maptypes = dict, dict coltypes = seqtypes + maptypes if isinstance(data, seqtypes): - if len(data) == 1 and isinstance(data[0], string_types): + if len(data) == 1 and isinstance(data[0], str): return data[0].strip() if isinstance(data, coltypes): return saneyaml.dump( diff --git a/src/formattedcode/output_json.py b/src/formattedcode/output_json.py index 388949740e2..bf445653300 100644 --- a/src/formattedcode/output_json.py +++ b/src/formattedcode/output_json.py @@ -25,7 +25,6 @@ import jsonstreams -from six import string_types from formattedcode import FileOptionType from commoncode.cliutils import PluggableCommandLineOption @@ -55,7 +54,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @@ -113,7 +112,7 @@ def write_results(codebase, output_file, pretty=False, **kwargs): # If `output_file` is a path string, open the file at path `output_file` and use it as `output_file` close_fd = False - if isinstance(output_file, string_types): + if isinstance(output_file, str): output_file = open(output_file, 'w') close_fd = True diff --git a/src/formattedcode/output_spdx.py b/src/formattedcode/output_spdx.py index 19dd3dedfb7..7a4149c9362 100644 --- a/src/formattedcode/output_spdx.py +++ b/src/formattedcode/output_spdx.py @@ -35,7 +35,6 @@ except ImportError: from io import StringIO -from six import string_types from spdx.checksum import Algorithm from spdx.creationinfo import Tool from spdx.document import Document @@ -71,7 +70,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ diff --git a/src/licensedcode/cache.py b/src/licensedcode/cache.py index dcd4bea6aeb..7d73259910e 100644 --- a/src/licensedcode/cache.py +++ b/src/licensedcode/cache.py @@ -31,7 +31,6 @@ from os.path import join import sys -import six import yg.lockfile # NOQA from commoncode.fileutils import resource_iter diff --git a/src/licensedcode/index.py b/src/licensedcode/index.py index cda395655aa..e93d1ca206a 100644 --- a/src/licensedcode/index.py +++ b/src/licensedcode/index.py @@ -39,7 +39,6 @@ from time import time from intbitset import intbitset -from six import string_types from commoncode.dict_utils import sparsify from licensedcode import MAX_DIST @@ -91,7 +90,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) diff --git a/src/licensedcode/match.py b/src/licensedcode/match.py index edd45d5e469..b940a89cb50 100644 --- a/src/licensedcode/match.py +++ b/src/licensedcode/match.py @@ -27,7 +27,6 @@ from itertools import groupby import attr -from six import string_types from licensedcode import MAX_DIST from licensedcode import query @@ -86,7 +85,7 @@ def logger_debug(*args): pass logger = logging.getLogger(__name__) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) logging.basicConfig(stream=sys.stdout) logger.setLevel(logging.DEBUG) diff --git a/src/licensedcode/match_aho.py b/src/licensedcode/match_aho.py index e58b365b879..a2e0eb10ae1 100644 --- a/src/licensedcode/match_aho.py +++ b/src/licensedcode/match_aho.py @@ -26,7 +26,6 @@ from itertools import groupby import ahocorasick -from six import string_types from licensedcode import SMALL_RULE from licensedcode.match import LicenseMatch @@ -48,7 +47,7 @@ logger = logging.getLogger(__name__) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) logging.basicConfig(stream=sys.stdout) logger.setLevel(logging.DEBUG) diff --git a/src/licensedcode/match_hash.py b/src/licensedcode/match_hash.py index aaae2bca141..d062d5791db 100644 --- a/src/licensedcode/match_hash.py +++ b/src/licensedcode/match_hash.py @@ -26,7 +26,6 @@ from array import array from hashlib import md5 -from six import string_types from licensedcode.match import LicenseMatch from licensedcode.spans import Span @@ -45,7 +44,7 @@ logger = logging.getLogger(__name__) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) # logging.basicConfig(level=logging.DEBUG, stream=sys.stdout) logging.basicConfig(stream=sys.stdout) diff --git a/src/licensedcode/match_seq.py b/src/licensedcode/match_seq.py index e2083a74ba8..265ac384e7a 100644 --- a/src/licensedcode/match_seq.py +++ b/src/licensedcode/match_seq.py @@ -26,7 +26,6 @@ from time import time import sys -from six import string_types from licensedcode.match import LicenseMatch from licensedcode.spans import Span @@ -46,7 +45,7 @@ def logger_debug(*args): pass logger = logging.getLogger(__name__) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) logging.basicConfig(stream=sys.stdout) logger.setLevel(logging.DEBUG) diff --git a/src/licensedcode/match_set.py b/src/licensedcode/match_set.py index 7bb2c9f5523..90c418465d7 100644 --- a/src/licensedcode/match_set.py +++ b/src/licensedcode/match_set.py @@ -29,7 +29,6 @@ from itertools import groupby from intbitset import intbitset -from six import string_types from commoncode.dict_utils import sparsify from licensedcode.tokenize import ngrams @@ -122,7 +121,7 @@ def logger_debug(*args): pass logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) def tids_sets_intersector(qset, iset): diff --git a/src/licensedcode/match_spdx_lid.py b/src/licensedcode/match_spdx_lid.py index 8602ede11e0..72b74a42d79 100644 --- a/src/licensedcode/match_spdx_lid.py +++ b/src/licensedcode/match_spdx_lid.py @@ -32,7 +32,6 @@ from license_expression import LicenseSymbol from license_expression import LicenseWithExceptionSymbol from license_expression import Licensing -from six import string_types from licensedcode.match import LicenseMatch from licensedcode.models import SpdxRule @@ -70,7 +69,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) MATCH_SPDX_ID = '1-spdx-id' diff --git a/src/licensedcode/plugin_license_text.py b/src/licensedcode/plugin_license_text.py index 257a33938f9..dc656ae2831 100644 --- a/src/licensedcode/plugin_license_text.py +++ b/src/licensedcode/plugin_license_text.py @@ -24,7 +24,6 @@ import attr -from six import string_types from plugincode.post_scan import PostScanPlugin from plugincode.post_scan import post_scan_impl @@ -42,7 +41,7 @@ logger = logging.getLogger(__name__) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) logging.basicConfig(stream=sys.stdout) logger.setLevel(logging.DEBUG) diff --git a/src/licensedcode/query.py b/src/licensedcode/query.py index 063d0b43c34..a38b2ff6ebf 100644 --- a/src/licensedcode/query.py +++ b/src/licensedcode/query.py @@ -30,7 +30,6 @@ import re from intbitset import intbitset -from six import string_types from commoncode.text import toascii from licensedcode.spans import Span @@ -102,7 +101,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) # for the cases of very long lines, we break in abritrary pseudo lines at 25 # tokens to avoid getting huge query runs for texts on a single line (e.g. diff --git a/src/packagedcode/about.py b/src/packagedcode/about.py index 75d34882101..24d973b4888 100644 --- a/src/packagedcode/about.py +++ b/src/packagedcode/about.py @@ -28,7 +28,6 @@ import attr import saneyaml -from six import string_types from commoncode import filetype from packagedcode import models @@ -102,7 +101,7 @@ def build_package(package_data): copyright_statement = package_data.get('copyright') owner = package_data.get('owner') - if not isinstance(owner, string_types): + if not isinstance(owner, str): owner = repr(owner) parties = [models.Party(type=models.party_person, name=owner, role='owner')] diff --git a/src/packagedcode/bower.py b/src/packagedcode/bower.py index e1dfbed90f3..4e084e30521 100644 --- a/src/packagedcode/bower.py +++ b/src/packagedcode/bower.py @@ -30,7 +30,6 @@ import attr from packageurl import PackageURL -from six import string_types from commoncode import filetype from commoncode import ignore @@ -96,7 +95,7 @@ def build_package(package_data): version = package_data.get('version') declared_license = package_data.get('license') if declared_license: - if isinstance(declared_license, string_types): + if isinstance(declared_license, str): declared_license = [declared_license] elif isinstance(declared_license, (list, tuple)): declared_license = [l for l in declared_license if l and l.strip()] @@ -115,7 +114,7 @@ def build_package(package_data): url = author.get('homepage') party = models.Party(name=name, role='author', email=email, url=url) parties.append(party) - elif isinstance(author, string_types): + elif isinstance(author, str): parties.append(models.Party(name=author, role='author')) else: parties.append(models.Party(name=repr(author), role='author')) diff --git a/src/packagedcode/conda.py b/src/packagedcode/conda.py index 731a93cb1f0..a8c8afdbf07 100644 --- a/src/packagedcode/conda.py +++ b/src/packagedcode/conda.py @@ -28,7 +28,6 @@ import sys import attr -from six import string_types from commoncode import filetype from commoncode import fileutils @@ -57,7 +56,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @attr.s() diff --git a/src/packagedcode/debian.py b/src/packagedcode/debian.py index b1ae49021e5..400bc72a911 100644 --- a/src/packagedcode/debian.py +++ b/src/packagedcode/debian.py @@ -29,7 +29,6 @@ import attr from debut import debcon from packageurl import PackageURL -from six import string_types from commoncode import filetype from commoncode import fileutils @@ -261,7 +260,7 @@ def build_package(package_data, distro='debian'): for source, target in plain_fields: value = package_data.get(source) if value: - if isinstance(value, string_types): + if isinstance(value, str): value = value.strip() if value: setattr(package, target, value) diff --git a/src/packagedcode/freebsd.py b/src/packagedcode/freebsd.py index 8dbcc4b0e3d..f0f037bbfe2 100644 --- a/src/packagedcode/freebsd.py +++ b/src/packagedcode/freebsd.py @@ -27,7 +27,6 @@ import logging import attr -from six import string_types from commoncode import filetype from commoncode import fileutils @@ -140,7 +139,7 @@ def build_package(package_data): for source, target in plain_fields: value = package_data.get(source) if value: - if isinstance(value, string_types): + if isinstance(value, str): value = value.strip() if value: setattr(package, target, value) diff --git a/src/packagedcode/gemfile_lock.py b/src/packagedcode/gemfile_lock.py index acfd480fd6c..6de4fe2b442 100644 --- a/src/packagedcode/gemfile_lock.py +++ b/src/packagedcode/gemfile_lock.py @@ -29,7 +29,6 @@ import re import attr -from six import string_types from commoncode.datautils import choices from commoncode.datautils import Boolean @@ -119,7 +118,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) # Section headings: these are also used as switches to track a parsing state diff --git a/src/packagedcode/godeps.py b/src/packagedcode/godeps.py index 0abfb7dfddc..17cc00daa59 100644 --- a/src/packagedcode/godeps.py +++ b/src/packagedcode/godeps.py @@ -28,7 +28,6 @@ import json import logging -from six import string_types """ Handle Godeps-like Go package dependency data. @@ -53,7 +52,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) class Dep(namedtuple('Dep', 'import_path revision comment')): @@ -118,7 +117,7 @@ def load(self, location): Load self from a location string or a file-like object containing a Godeps JSON. """ - if isinstance(location, string_types): + if isinstance(location, str): with io.open(location, encoding='utf-8') as godep: data = json.load(godep) else: diff --git a/src/packagedcode/licensing.py b/src/packagedcode/licensing.py index 2bbf0dc4059..786549f67d2 100644 --- a/src/packagedcode/licensing.py +++ b/src/packagedcode/licensing.py @@ -26,7 +26,6 @@ import logging from license_expression import Licensing -from six import string_types from licensedcode.spans import Span @@ -48,7 +47,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) diff --git a/src/packagedcode/models.py b/src/packagedcode/models.py index 6c0a5f98bec..cf4a98efba6 100644 --- a/src/packagedcode/models.py +++ b/src/packagedcode/models.py @@ -29,7 +29,6 @@ import attr from packageurl import normalize_qualifiers from packageurl import PackageURL -from six import string_types from commoncode.datautils import choices from commoncode.datautils import Boolean @@ -84,7 +83,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) class BaseModel(object): diff --git a/src/packagedcode/npm.py b/src/packagedcode/npm.py index 386a5b867e6..13b14f7cdee 100644 --- a/src/packagedcode/npm.py +++ b/src/packagedcode/npm.py @@ -22,7 +22,6 @@ # ScanCode is a free software code scanning tool from nexB Inc. and others. # Visit https://github.com/nexB/scancode-toolkit/ for support and download. - import base64 from collections import defaultdict from functools import partial @@ -33,17 +32,13 @@ import attr from packageurl import PackageURL -from six import string_types -from six import binary_type from commoncode import filetype from commoncode import fileutils -from commoncode import ignore from packagedcode import models from packagedcode.utils import combine_expressions from packagedcode.utils import parse_repo_url - """ Handle Node.js npm packages per https://docs.npmjs.com/files/package.json @@ -120,7 +115,7 @@ def compute_normalized_license(declared_license): detected_licenses = [] for declared in declared_license: - if isinstance(declared, string_types): + if isinstance(declared, str): detected_license = models.compute_normalized_license(declared) if detected_license: detected_licenses.append(detected_license) @@ -321,7 +316,7 @@ def build_package(package_data): if TRACE: logger.debug('parse: %(source)r, %(func)r' % locals()) value = package_data.get(source) or None if value: - if isinstance(value, string_types): + if isinstance(value, str): value = value.strip() if value: func(value, package) @@ -415,7 +410,7 @@ def get_declared_licenses(license_object): if not license_object: return [] - if isinstance(license_object, string_types): + if isinstance(license_object, str): # current, up to date form return [license_object] @@ -503,7 +498,7 @@ def bugs_mapper(bugs, package): url, you can specify the value for "bugs" as a simple string instead of an object. """ - if isinstance(bugs, string_types): + if isinstance(bugs, str): package.bug_tracking_url = bugs elif isinstance(bugs, dict): # we ignore the bugs email for now @@ -533,7 +528,7 @@ def vcs_repository_mapper(repo, package, vcs_revision=None): vcs_tool = '' vcs_repository = '' - if isinstance(repo, string_types): + if isinstance(repo, str): vcs_repository = parse_repo_url(repo) elif isinstance(repo, dict): @@ -577,12 +572,11 @@ def dist_mapper(dist, package): assert 'sha512' == algo decoded_b64value = base64.b64decode(b64value) - if isinstance(decoded_b64value, string_types): + if isinstance(decoded_b64value, str): sha512 = decoded_b64value.encode('hex') - elif isinstance(decoded_b64value, binary_type): + elif isinstance(decoded_b64value, bytes): sha512 = decoded_b64value.hex() package.sha512 = sha512 - sha1 = dist.get('shasum') if sha1: @@ -743,7 +737,7 @@ def parse_person(person): email = None url = None - if isinstance(person, string_types): + if isinstance(person, str): parsed = person_parser(person) if not parsed: parsed = person_parser_no_name(person) @@ -768,7 +762,7 @@ def parse_person(person): return None, None, None if name: - if isinstance(name, string_types): + if isinstance(name, str): name = name.strip() if name.lower() == 'none': name = None @@ -782,7 +776,7 @@ def parse_person(person): email = [e.strip('<> ') for e in email if e and e.strip()] email = '\n'.join([e.strip() for e in email if e.strip() and e.strip().lower() != 'none']) - if isinstance(email, string_types): + if isinstance(email, str): email = email.strip('<> ').strip() if email.lower() == 'none': email = None @@ -796,7 +790,7 @@ def parse_person(person): url = [u.strip('() ') for u in email if u and u.strip()] url = '\n'.join([u.strip() for u in url if u.strip() and u.strip().lower() != 'none']) - if isinstance(url, string_types): + if isinstance(url, str): url = url.strip('() ').strip() if url.lower() == 'none': url = None @@ -813,7 +807,7 @@ def keywords_mapper(keywords, package): This is supposed to be an array of strings, but sometimes this is a string. https://docs.npmjs.com/files/package.json#keywords """ - if isinstance(keywords, string_types): + if isinstance(keywords, str): if ',' in keywords: keywords = [k.strip() for k in keywords.split(',') if k.strip()] else: @@ -941,7 +935,6 @@ def build_packages_from_yarn_lock(yarn_lock_lines): packages = [] packages_reqs = [] current_package_data = {} - prev_line = None dependencies = False for line in yarn_lock_lines: # Check if this is not an empty line or comment diff --git a/src/packagedcode/nuget.py b/src/packagedcode/nuget.py index 02bdc85c059..1a8afeddf36 100644 --- a/src/packagedcode/nuget.py +++ b/src/packagedcode/nuget.py @@ -24,7 +24,6 @@ import attr -from six import string_types import xmltodict from packagedcode import models @@ -54,7 +53,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @attr.s() diff --git a/src/packagedcode/phpcomposer.py b/src/packagedcode/phpcomposer.py index 0f7b9736fb8..870bb335cd9 100644 --- a/src/packagedcode/phpcomposer.py +++ b/src/packagedcode/phpcomposer.py @@ -31,7 +31,6 @@ import attr from packageurl import PackageURL -from six import string_types from commoncode import filetype from commoncode import fileutils @@ -61,7 +60,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @attr.s() @@ -116,7 +115,7 @@ def compute_normalized_license(declared_license): detected_licenses = [] - if isinstance(declared_license, string_types): + if isinstance(declared_license, str): if declared_license == 'proprietary': return declared_license if '(' in declared_license and ')' in declared_license and ' or ' in declared_license: @@ -200,7 +199,7 @@ def build_package_from_json(package_data): for source, target in plain_fields: value = package_data.get(source) - if isinstance(value, string_types): + if isinstance(value, str): value = value.strip() if value: setattr(package, target, value) @@ -226,7 +225,7 @@ def build_package_from_json(package_data): logger.debug('parse: %(source)r, %(func)r' % locals()) value = package_data.get(source) if value: - if isinstance(value, string_types): + if isinstance(value, str): value = value.strip() if value: func(value, package) diff --git a/src/packagedcode/pypi.py b/src/packagedcode/pypi.py index 862eb99744d..d968f1f4432 100644 --- a/src/packagedcode/pypi.py +++ b/src/packagedcode/pypi.py @@ -41,7 +41,6 @@ from pkginfo import Wheel from packageurl import PackageURL import saneyaml -from six import string_types from commoncode import filetype from commoncode import fileutils @@ -69,7 +68,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) # FIXME: this whole module is a mess @@ -775,7 +774,7 @@ def compute_normalized_license(declared_license): if not value: continue # The value could be a string or a list - if isinstance(value, string_types): + if isinstance(value, str): detected_license = models.compute_normalized_license(value) if detected_license: detected_licenses.append(detected_license) diff --git a/src/packagedcode/recognize.py b/src/packagedcode/recognize.py index 1e4e7c116dc..e56e9855a61 100644 --- a/src/packagedcode/recognize.py +++ b/src/packagedcode/recognize.py @@ -27,7 +27,6 @@ import logging import sys -from six import string_types from commoncode import filetype from commoncode.fileutils import file_name @@ -52,7 +51,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ diff --git a/src/packagedcode/rpm.py b/src/packagedcode/rpm.py index 609a9ebb27b..c573c6e0dff 100644 --- a/src/packagedcode/rpm.py +++ b/src/packagedcode/rpm.py @@ -28,7 +28,6 @@ import sys import attr -from six import string_types from packagedcode import models from packagedcode import nevra @@ -51,7 +50,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) # TODO: retrieve dependencies diff --git a/src/packagedcode/rubygems.py b/src/packagedcode/rubygems.py index 75bca9303b3..def3c820f23 100644 --- a/src/packagedcode/rubygems.py +++ b/src/packagedcode/rubygems.py @@ -31,7 +31,6 @@ import attr import saneyaml from packageurl import PackageURL -from six import string_types from commoncode import archive from commoncode import fileutils @@ -63,7 +62,7 @@ def logger_debug(*args): def logger_debug(*args): return logger.debug(' '.join( - isinstance(a, string_types) and a or repr(a) for a in args)) + isinstance(a, str) and a or repr(a) for a in args)) @attr.s() diff --git a/src/packagedcode/utils.py b/src/packagedcode/utils.py index dcba940d0b1..1eadcdf06c4 100644 --- a/src/packagedcode/utils.py +++ b/src/packagedcode/utils.py @@ -25,7 +25,6 @@ from license_expression import Licensing -from six import string_types PLAIN_URLS = ( @@ -81,7 +80,7 @@ def normalize_vcs_url(repo_url, vcs_tool=None): https://gitlab.com/foo/private.git git@gitlab.com:foo/private.git """ - if not repo_url or not isinstance(repo_url, string_types): + if not repo_url or not isinstance(repo_url, str): return repo_url = repo_url.strip() diff --git a/src/packagedcode/win_pe.py b/src/packagedcode/win_pe.py index b83897d6942..d5859c80f4c 100644 --- a/src/packagedcode/win_pe.py +++ b/src/packagedcode/win_pe.py @@ -28,7 +28,6 @@ import attr from ftfy import fix_text import pefile -from six import string_types from commoncode import filetype from commoncode import text @@ -55,7 +54,7 @@ def logger_debug(*args): def logger_debug(*args): return logger.debug(' '.join( - isinstance(a, string_types) and a or repr(a) for a in args)) + isinstance(a, str) and a or repr(a) for a in args)) """ Extract data from windows PE DLLs and executable. diff --git a/src/scancode/__init__.py b/src/scancode/__init__.py index 8224e90aee9..2e414731028 100644 --- a/src/scancode/__init__.py +++ b/src/scancode/__init__.py @@ -29,7 +29,6 @@ import click from click.types import BoolParamType -from six import string_types from commoncode import fileutils @@ -49,7 +48,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) diff --git a/src/scancode/cli.py b/src/scancode/cli.py index 845dea93ae2..6b394475bed 100644 --- a/src/scancode/cli.py +++ b/src/scancode/cli.py @@ -48,7 +48,6 @@ class WindowsError(Exception): import click # NOQA click.disable_unicode_literals_warning = True -from six import string_types from commoncode import cliutils from commoncode.cliutils import GroupedHelpCommand @@ -98,7 +97,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) echo_stderr = partial(click.secho, err=True) @@ -1504,7 +1503,7 @@ def get_pretty_params(ctx, generic_paths=False): # coerce to string for non-basic supported types if not (value in (True, False, None) - or isinstance(value, (str, string_types, bytes, tuple, list, dict, dict))): + or isinstance(value, (str, str, bytes, tuple, list, dict, dict))): value = repr(value) # opts is a list of CLI options as in "--strip-root": the last opt is diff --git a/src/summarycode/classify.py b/src/summarycode/classify.py index 66706fde12c..8a7ec7b120f 100644 --- a/src/summarycode/classify.py +++ b/src/summarycode/classify.py @@ -24,7 +24,6 @@ -from six import string_types from commoncode.datautils import Boolean from commoncode.fileset import get_matches @@ -68,7 +67,7 @@ def emit(self, record): def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @pre_scan_impl diff --git a/src/summarycode/copyright_summary.py b/src/summarycode/copyright_summary.py index 9066809fda2..95920c6e0a0 100644 --- a/src/summarycode/copyright_summary.py +++ b/src/summarycode/copyright_summary.py @@ -28,7 +28,6 @@ import attr import fingerprints -from six import string_types from text_unidecode import unidecode from cluecode.copyrights import CopyrightDetector @@ -59,7 +58,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) # TODO: keep the original order of statements as much as possible diff --git a/src/summarycode/facet.py b/src/summarycode/facet.py index a8f2525df2d..d80824caf0b 100644 --- a/src/summarycode/facet.py +++ b/src/summarycode/facet.py @@ -27,7 +27,6 @@ import attr import click -from six import string_types from commoncode.fileset import get_matches as get_fileset_matches from plugincode.pre_scan import PreScanPlugin @@ -52,7 +51,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ Assign a facet to a file. diff --git a/src/summarycode/generated.py b/src/summarycode/generated.py index c82461e7626..0f212869a6e 100644 --- a/src/summarycode/generated.py +++ b/src/summarycode/generated.py @@ -25,7 +25,6 @@ from itertools import islice -from six import string_types from commoncode.datautils import Boolean from commoncode.text import toascii @@ -56,7 +55,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) @scan_impl diff --git a/src/summarycode/score.py b/src/summarycode/score.py index eda7ee06671..bea12f5ad59 100644 --- a/src/summarycode/score.py +++ b/src/summarycode/score.py @@ -27,7 +27,6 @@ import attr from license_expression import Licensing -from six import string_types from commoncode.datautils import Mapping from licensedcode.cache import get_licenses_db @@ -56,7 +55,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ A plugin to compute a licensing clarity score as designed in ClearlyDefined diff --git a/src/summarycode/summarizer.py b/src/summarycode/summarizer.py index c6725280e05..9f8c9ed5af9 100644 --- a/src/summarycode/summarizer.py +++ b/src/summarycode/summarizer.py @@ -26,7 +26,6 @@ from collections import Counter import attr -from six import string_types from plugincode.post_scan import PostScanPlugin from plugincode.post_scan import post_scan_impl @@ -55,7 +54,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) """ top_level: diff --git a/src/textcode/analysis.py b/src/textcode/analysis.py index c4802307fa9..6021044a01b 100644 --- a/src/textcode/analysis.py +++ b/src/textcode/analysis.py @@ -30,7 +30,6 @@ import unicodedata import chardet -from six import string_types from textcode import pdf from textcode import markup @@ -62,7 +61,7 @@ def logger_debug(*args): logger.setLevel(logging.DEBUG) def logger_debug(*args): - return logger.debug(' '.join(isinstance(a, string_types) and a or repr(a) for a in args)) + return logger.debug(' '.join(isinstance(a, str) and a or repr(a) for a in args)) def numbered_text_lines(location, demarkup=False, plain_text=False): @@ -85,7 +84,7 @@ def numbered_text_lines(location, demarkup=False, plain_text=False): if not location: return iter([]) - if not isinstance(location, string_types): + if not isinstance(location, str): # not a path: wrap an iterator on location which should be a sequence # of lines if TRACE: