public inbox for gentoo-catalyst@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
@ 2015-10-12  4:35 Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability Mike Frysinger
                   ` (8 more replies)
  0 siblings, 9 replies; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:35 UTC (permalink / raw
  To: gentoo-catalyst

---
 catalyst/base/clearbase.py   |  4 ++--
 catalyst/base/resume.py      |  4 ++--
 catalyst/base/stagebase.py   | 14 +++++++-------
 catalyst/fileops.py          |  2 +-
 catalyst/targets/netboot2.py |  2 +-
 catalyst/targets/snapshot.py |  2 +-
 6 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/catalyst/base/clearbase.py b/catalyst/base/clearbase.py
index 3817196..9a4c625 100644
--- a/catalyst/base/clearbase.py
+++ b/catalyst/base/clearbase.py
@@ -30,13 +30,13 @@ class ClearBase(object):
 	def clear_chroot(self):
 		self.chroot_lock.unlock()
 		log.notice('Clearing the chroot path ...')
-		clear_dir(self.settings["chroot_path"], 0755, True)
+		clear_dir(self.settings["chroot_path"], 0o755, True)
 
 
 	def remove_chroot(self):
 		self.chroot_lock.unlock()
 		log.notice('Removing the chroot path ...')
-		clear_dir(self.settings["chroot_path"], 0755, True, remove=True)
+		clear_dir(self.settings["chroot_path"], 0o755, True, remove=True)
 
 
 	def clear_packages(self, remove=False):
diff --git a/catalyst/base/resume.py b/catalyst/base/resume.py
index 99d8abc..70d9a4f 100644
--- a/catalyst/base/resume.py
+++ b/catalyst/base/resume.py
@@ -25,7 +25,7 @@ class AutoResume(object):
 	'''
 
 
-	def __init__(self, basedir, mode=0755):
+	def __init__(self, basedir, mode=0o755):
 		self.basedir = basedir
 		ensure_dirs(basedir, mode=mode, fatal=True)
 		self._points = {}
@@ -131,7 +131,7 @@ class AutoResume(object):
 		@remove: boolean, passed through to clear_dir()
 		@return boolean
 		'''
-		if clear_dir(self.basedir, mode=0755, chg_flags=True, remove=remove):
+		if clear_dir(self.basedir, mode=0o755, chg_flags=True, remove=remove):
 			self._points = {}
 			return True
 		return False
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 740e05d..a4832ec 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -492,7 +492,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			))
 		if "autoresume" in self.settings["options"]:
 			log.info('The autoresume path is %s', self.settings['autoresume_path'])
-		self.resume = AutoResume(self.settings["autoresume_path"], mode=0755)
+		self.resume = AutoResume(self.settings["autoresume_path"], mode=0o755)
 
 	def set_controller_file(self):
 		self.settings["controller_file"]=normpath(self.settings["sharedir"]+\
@@ -773,10 +773,10 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			ensure_dirs(self.settings["chroot_path"]+"/tmp",mode=1777)
 
 			if "pkgcache" in self.settings["options"]:
-				ensure_dirs(self.settings["pkgcache_path"],mode=0755)
+				ensure_dirs(self.settings["pkgcache_path"],mode=0o755)
 
 			if "kerncache" in self.settings["options"]:
-				ensure_dirs(self.settings["kerncache_path"],mode=0755)
+				ensure_dirs(self.settings["kerncache_path"],mode=0o755)
 
 			log.notice('%s', display_msg % unpack_info)
 
@@ -848,7 +848,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 				cleanup_cmd = "rm -rf " + target_portdir
 				log.info('unpack() cleanup_cmd = %s', cleanup_cmd)
 				cmd(cleanup_cmd,cleanup_errmsg,env=self.env)
-			ensure_dirs(target_portdir, mode=0755)
+			ensure_dirs(target_portdir, mode=0o755)
 
 			log.notice('Unpacking portage tree (this can take a long time) ...')
 			if not self.decompressor.extract(unpack_info):
@@ -936,11 +936,11 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			_cmd = ''
 			log.debug('bind(); x = %s', x)
 			target = normpath(self.settings["chroot_path"] + self.target_mounts[x])
-			ensure_dirs(target, mode=0755)
+			ensure_dirs(target, mode=0o755)
 
 			if not os.path.exists(self.mountmap[x]):
 				if self.mountmap[x] not in ["tmpfs", "shmfs"]:
-					ensure_dirs(self.mountmap[x], mode=0755)
+					ensure_dirs(self.mountmap[x], mode=0o755)
 
 			src=self.mountmap[x]
 			log.debug('bind(); src = %s', src)
@@ -1222,7 +1222,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 					# the proper perms and ownership
 					mystat=os.stat(myemp)
 					shutil.rmtree(myemp)
-					ensure_dirs(myemp, mode=0755)
+					ensure_dirs(myemp, mode=0o755)
 					os.chown(myemp,mystat[ST_UID],mystat[ST_GID])
 					os.chmod(myemp,mystat[ST_MODE])
 			self.resume.enable("empty")
diff --git a/catalyst/fileops.py b/catalyst/fileops.py
index 8fb2a36..1ef6b4c 100644
--- a/catalyst/fileops.py
+++ b/catalyst/fileops.py
@@ -37,7 +37,7 @@ def ensure_dirs(path, gid=-1, uid=-1, mode=0o755, minimal=True,
 	:param mode: permissions to set any created directories to
 	:param minimal: boolean controlling whether or not the specified mode
 		must be enforced, or is the minimal permissions necessary.  For example,
-		if mode=0755, minimal=True, and a directory exists with mode 0707,
+		if mode=0o755, minimal=True, and a directory exists with mode 0707,
 		this will restore the missing group perms resulting in 757.
 	:param failback: function to run in the event of a failed attemp
 		to create the directory.
diff --git a/catalyst/targets/netboot2.py b/catalyst/targets/netboot2.py
index d882a06..8644786 100644
--- a/catalyst/targets/netboot2.py
+++ b/catalyst/targets/netboot2.py
@@ -157,7 +157,7 @@ class netboot2(StageBase):
 					# the proper perms and ownership
 					mystat=os.stat(myemp)
 					shutil.rmtree(myemp)
-					ensure_dirs(myemp, mode=0755)
+					ensure_dirs(myemp, mode=0o755)
 					os.chown(myemp,mystat[ST_UID],mystat[ST_GID])
 					os.chmod(myemp,mystat[ST_MODE])
 		self.resume.enable("empty")
diff --git a/catalyst/targets/snapshot.py b/catalyst/targets/snapshot.py
index d19f4ef..dbc4b1c 100644
--- a/catalyst/targets/snapshot.py
+++ b/catalyst/targets/snapshot.py
@@ -106,6 +106,6 @@ class snapshot(TargetBase, GenBase):
 			if os.uname()[0] == "FreeBSD":
 				os.system("chflags -R noschg "+myemp)
 			shutil.rmtree(myemp)
-			ensure_dirs(myemp, mode=0755)
+			ensure_dirs(myemp, mode=0o755)
 			os.chown(myemp,mystat[ST_UID],mystat[ST_GID])
 			os.chmod(myemp,mystat[ST_MODE])
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
@ 2015-10-12  4:35 ` Mike Frysinger
  2015-10-28 14:46   ` Brian Dolbec
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 3/9] stagebase: disable undefined-variable lint warning Mike Frysinger
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:35 UTC (permalink / raw
  To: gentoo-catalyst

---
 doc/make_target_table.py | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)

diff --git a/doc/make_target_table.py b/doc/make_target_table.py
index f127c37..9eb072b 100755
--- a/doc/make_target_table.py
+++ b/doc/make_target_table.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/python
 # Copyright (C) 2012 W. Trevor King <wking@drexel.edu>
 # Copyright (C) 2012 Sebastian Pipping <sebastian@pipping.org>
 # Copyright (C) 2013 Brian dolbec <dolsen@gentoo.org>
@@ -10,34 +10,38 @@
 
 from __future__ import print_function
 
-import sys as _sys
-
 import glob
-import re
+import locale
+import os
+import sys
 
 
-def key_netboot_before_netboot2((target_name, _module)):
-	return target_name + '1'
+def main(_argv):
+	source_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__)))
 
+	# Force consistent sorting order.
+	locale.setlocale(locale.LC_COLLATE, 'C')
 
-if __name__ == '__main__':
-	extractor = re.compile('^catalyst/targets/(([^ ]+)).py$')
 	targets = list()
-	for filename in sorted(glob.glob('catalyst/targets/*.py')):
+	for filename in glob.glob(os.path.join(source_root, 'catalyst/targets/*.py')):
 		if '__init__' in filename:
 			continue
 
-		match = extractor.match(filename)
-		target_name = match.group(2).replace('_', '-')
-		module_name = 'catalyst.targets.' + match.group(1)
+		name = os.path.basename(filename)[0:-3]
+		target_name = name.replace('_', '-')
+		module_name = 'catalyst.targets.' + name
 
 		__import__(module_name)
-		module = _sys.modules[module_name]
+		module = sys.modules[module_name]
 
 		targets.append((target_name, module))
 
-	for target_name, module in sorted(targets, key=key_netboot_before_netboot2):
+	for target_name, module in sorted(targets, key=lambda x: x[0]):
 		print('`%s`;;' % target_name)
 		# Replace blank lines with `+` (asciidoc list item continuation)
 		print(module.__doc__.strip().replace('\n\n', '\n+\n'))
 		print('')
+
+
+if __name__ == '__main__':
+	main(sys.argv[1:])
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 3/9] stagebase: disable undefined-variable lint warning
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability Mike Frysinger
@ 2015-10-12  4:35 ` Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 4/9] log: make sure NOTICE is an int Mike Frysinger
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:35 UTC (permalink / raw
  To: gentoo-catalyst

raw_input doesn't exist w/py3, so pylint complains.  Disable
the warning for this one line since we know it's fine.
---
 catalyst/base/stagebase.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index a4832ec..770ce76 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -28,7 +28,7 @@ from catalyst.base.resume import AutoResume
 if sys.version_info[0] >= 3:
 	py_input = input
 else:
-	py_input = raw_input
+	py_input = raw_input  # pylint: disable=undefined-variable
 
 
 class StageBase(TargetBase, ClearBase, GenBase):
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 4/9] log: make sure NOTICE is an int
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 3/9] stagebase: disable undefined-variable lint warning Mike Frysinger
@ 2015-10-12  4:35 ` Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 5/9] genbase: use sorted() with dict keys Mike Frysinger
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:35 UTC (permalink / raw
  To: gentoo-catalyst

The log module wants ints for its levels, so make sure NOTICE is
not a float due to the division.  This doesn't show up so much in
py2, but py3 barfs on floats.
---
 catalyst/log.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/catalyst/log.py b/catalyst/log.py
index 871c53c..5938199 100644
--- a/catalyst/log.py
+++ b/catalyst/log.py
@@ -39,7 +39,7 @@ del _klass
 
 
 # Set the notice level between warning and info.
-NOTICE = (logging.WARNING + logging.INFO) / 2
+NOTICE = (logging.WARNING + logging.INFO) // 2
 logging.addLevelName(NOTICE, 'NOTICE')
 
 
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 5/9] genbase: use sorted() with dict keys
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
                   ` (2 preceding siblings ...)
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 4/9] log: make sure NOTICE is an int Mike Frysinger
@ 2015-10-12  4:35 ` Mike Frysinger
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 6/9] hash_utils: fix bad keyword w/CatalystError Mike Frysinger
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:35 UTC (permalink / raw
  To: gentoo-catalyst

In py3, the dict keys func returns a view which doesn't have a sort
member.  Pass the result through sorted() which works with py2 and
py3.
---
 catalyst/base/genbase.py | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/catalyst/base/genbase.py b/catalyst/base/genbase.py
index a33f924..8a1af8d 100644
--- a/catalyst/base/genbase.py
+++ b/catalyst/base/genbase.py
@@ -22,8 +22,7 @@ class GenBase(object):
 				keys={}
 				for i in self.settings["contents"].split():
 					keys[i]=1
-					array=keys.keys()
-					array.sort()
+					array = sorted(keys.keys())
 				for j in array:
 					contents = contents_map.contents(path, j,
 						verbose=self.settings["VERBOSE"])
@@ -42,8 +41,7 @@ class GenBase(object):
 				keys={}
 				for i in self.settings["digests"].split():
 					keys[i]=1
-					array=keys.keys()
-					array.sort()
+					array = sorted(keys.keys())
 				for f in [path, path + '.CONTENTS']:
 					if os.path.exists(f):
 						if "all" in array:
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 6/9] hash_utils: fix bad keyword w/CatalystError
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
                   ` (3 preceding siblings ...)
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 5/9] genbase: use sorted() with dict keys Mike Frysinger
@ 2015-10-12  4:35 ` Mike Frysinger
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 7/9] hash_utils: decode output of popen Mike Frysinger
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:35 UTC (permalink / raw
  To: gentoo-catalyst

The exception takes "print_traceback", not "traceback".
---
 catalyst/hash_utils.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/catalyst/hash_utils.py b/catalyst/hash_utils.py
index 3db61f1..1161da3 100644
--- a/catalyst/hash_utils.py
+++ b/catalyst/hash_utils.py
@@ -79,7 +79,7 @@ class HashMap(object):
 				hash_)
 		except:
 			raise CatalystError("Error generating hash, is appropriate " + \
-				"utility installed on your system?", traceback=True)
+				"utility installed on your system?", print_traceback=True)
 
 
 	def calc_hash(self, file_, hash_):
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 7/9] hash_utils: decode output of popen
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
                   ` (4 preceding siblings ...)
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 6/9] hash_utils: fix bad keyword w/CatalystError Mike Frysinger
@ 2015-10-12  4:36 ` Mike Frysinger
  2015-10-28 14:49   ` Brian Dolbec
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 8/9] lint: convert type/types to isinstance Mike Frysinger
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:36 UTC (permalink / raw
  To: gentoo-catalyst

In py3, the return of popen is binary data.  We need
to decode it to get a string we can work with.
---
 catalyst/hash_utils.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/catalyst/hash_utils.py b/catalyst/hash_utils.py
index 1161da3..6e08967 100644
--- a/catalyst/hash_utils.py
+++ b/catalyst/hash_utils.py
@@ -117,7 +117,7 @@ class HashMap(object):
 		log.debug('args = %r', args)
 		source = Popen(args, stdout=PIPE)
 		output = source.communicate()
-		lines = output[0].split('\n')
+		lines = output[0].decode('ascii').split('\n')
 		log.debug('output = %s', output)
 		header = lines[0]
 		h_f = lines[1].split()
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 8/9] lint: convert type/types to isinstance
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
                   ` (5 preceding siblings ...)
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 7/9] hash_utils: decode output of popen Mike Frysinger
@ 2015-10-12  4:36 ` Mike Frysinger
  2015-10-28 14:55   ` Brian Dolbec
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 9/9] lint: fix redefined-outer-name warnings Mike Frysinger
  2015-10-12  4:41 ` [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
  8 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:36 UTC (permalink / raw
  To: gentoo-catalyst

pylint complains about using (type(...) == types.xxx) checks as it
prefers isinstance(..., xxx) instead.  Convert the code base to it.
---
 .pylintrc                         |  3 +--
 catalyst/base/stagebase.py        | 57 +++++++++++++++++----------------------
 catalyst/support.py               |  3 +--
 catalyst/targets/grp.py           |  5 ++--
 catalyst/targets/livecd_stage1.py |  5 ++--
 catalyst/targets/netboot.py       |  9 +++----
 catalyst/targets/netboot2.py      | 11 ++++----
 7 files changed, 39 insertions(+), 54 deletions(-)

diff --git a/.pylintrc b/.pylintrc
index b3327cf..2a03f23 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -32,11 +32,10 @@ load-plugins=
 # bad-continuation -- might be hard with tab indentation policy
 # invalid-name -- need to manage constants better
 # line-too-long -- figure out a length and stick to it
-# unidiomatic-typecheck -- convert to isinstance
 # redefined-outer-name -- clean up code to not do this
 # super-init-not-called -- fix the classes __init__ structure
 # no-init -- update classes w/missing __init__ functions
-disable=missing-docstring, too-many-lines, too-many-branches, too-many-statements, too-few-public-methods, too-many-instance-attributes, too-many-public-methods, too-many-locals, too-many-arguments, locally-enabled, locally-disabled, fixme, broad-except, bad-whitespace, bad-continuation, invalid-name, line-too-long, unidiomatic-typecheck, redefined-outer-name, super-init-not-called, no-init
+disable=missing-docstring, too-many-lines, too-many-branches, too-many-statements, too-few-public-methods, too-many-instance-attributes, too-many-public-methods, too-many-locals, too-many-arguments, locally-enabled, locally-disabled, fixme, broad-except, bad-whitespace, bad-continuation, invalid-name, line-too-long, redefined-outer-name, super-init-not-called, no-init
 
 
 [REPORTS]
diff --git a/catalyst/base/stagebase.py b/catalyst/base/stagebase.py
index 770ce76..f08b9a4 100644
--- a/catalyst/base/stagebase.py
+++ b/catalyst/base/stagebase.py
@@ -1,7 +1,6 @@
 
 import os
 import imp
-import types
 import shutil
 import sys
 from stat import ST_UID, ST_GID, ST_MODE
@@ -297,7 +296,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
 	def set_install_mask(self):
 		if "install_mask" in self.settings:
-			if type(self.settings["install_mask"])!=types.StringType:
+			if not isinstance(self.settings['install_mask'], str):
 				self.settings["install_mask"]=\
 					' '.join(self.settings["install_mask"])
 
@@ -313,14 +312,14 @@ class StageBase(TargetBase, ClearBase, GenBase):
 				self.settings["version_stamp"] +'/'
 
 	def set_source_subpath(self):
-		if type(self.settings["source_subpath"])!=types.StringType:
+		if not isinstance(self.settings['source_subpath'], str):
 			raise CatalystError(
 				"source_subpath should have been a string. Perhaps you have " +\
 				"something wrong in your spec file?")
 
 	def set_pkgcache_path(self):
 		if "pkgcache_path" in self.settings:
-			if type(self.settings["pkgcache_path"])!=types.StringType:
+			if not isinstance(self.settings['pkgcache_path'], str):
 				self.settings["pkgcache_path"]=\
 					normpath(self.settings["pkgcache_path"])
 		else:
@@ -330,7 +329,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
 	def set_kerncache_path(self):
 		if "kerncache_path" in self.settings:
-			if type(self.settings["kerncache_path"])!=types.StringType:
+			if not isinstance(self.settings['kerncache_path'], str):
 				self.settings["kerncache_path"]=\
 					normpath(self.settings["kerncache_path"])
 		else:
@@ -536,7 +535,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			del self.settings[self.settings["spec_prefix"]+"/use"]
 		if "use" not in self.settings:
 			self.settings["use"]=""
-		if type(self.settings["use"])==types.StringType:
+		if isinstance(self.settings['use'], str):
 			self.settings["use"]=self.settings["use"].split()
 
 		# Force bindist when options ask for it
@@ -554,30 +553,27 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
 	def set_rm(self):
 		if self.settings["spec_prefix"]+"/rm" in self.settings:
-			if type(self.settings[self.settings["spec_prefix"]+\
-				"/rm"])==types.StringType:
+			if isinstance(self.settings[self.settings['spec_prefix']+'/rm'], str):
 				self.settings[self.settings["spec_prefix"]+"/rm"]=\
 					self.settings[self.settings["spec_prefix"]+"/rm"].split()
 
 	def set_linuxrc(self):
 		if self.settings["spec_prefix"]+"/linuxrc" in self.settings:
-			if type(self.settings[self.settings["spec_prefix"]+\
-				"/linuxrc"])==types.StringType:
+			if isinstance(self.settings[self.settings['spec_prefix']+'/linuxrc'], str):
 				self.settings["linuxrc"]=\
 					self.settings[self.settings["spec_prefix"]+"/linuxrc"]
 				del self.settings[self.settings["spec_prefix"]+"/linuxrc"]
 
 	def set_busybox_config(self):
 		if self.settings["spec_prefix"]+"/busybox_config" in self.settings:
-			if type(self.settings[self.settings["spec_prefix"]+\
-				"/busybox_config"])==types.StringType:
+			if isinstance(self.settings[self.settings['spec_prefix']+'/busybox_config'], str):
 				self.settings["busybox_config"]=\
 					self.settings[self.settings["spec_prefix"]+"/busybox_config"]
 				del self.settings[self.settings["spec_prefix"]+"/busybox_config"]
 
 	def set_portage_overlay(self):
 		if "portage_overlay" in self.settings:
-			if type(self.settings["portage_overlay"])==types.StringType:
+			if isinstance(self.settings['portage_overlay'], str):
 				self.settings["portage_overlay"]=\
 					self.settings["portage_overlay"].split()
 			log.info('portage_overlay directories are set to: %s',
@@ -585,16 +581,14 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
 	def set_overlay(self):
 		if self.settings["spec_prefix"]+"/overlay" in self.settings:
-			if type(self.settings[self.settings["spec_prefix"]+\
-				"/overlay"])==types.StringType:
+			if isinstance(self.settings[self.settings['spec_prefix']+'/overlay'], str):
 				self.settings[self.settings["spec_prefix"]+"/overlay"]=\
 					self.settings[self.settings["spec_prefix"]+\
 					"/overlay"].split()
 
 	def set_root_overlay(self):
 		if self.settings["spec_prefix"]+"/root_overlay" in self.settings:
-			if type(self.settings[self.settings["spec_prefix"]+\
-				"/root_overlay"])==types.StringType:
+			if isinstance(self.settings[self.settings['spec_prefix']+'/root_overlay'], str):
 				self.settings[self.settings["spec_prefix"]+"/root_overlay"]=\
 					self.settings[self.settings["spec_prefix"]+\
 					"/root_overlay"].split()
@@ -605,7 +599,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 
 	def set_valid_build_kernel_vars(self,addlargs):
 		if "boot/kernel" in addlargs:
-			if type(addlargs["boot/kernel"])==types.StringType:
+			if isinstance(addlargs['boot/kernel'], str):
 				loopy=[addlargs["boot/kernel"]]
 			else:
 				loopy=addlargs["boot/kernel"]
@@ -625,8 +619,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 				self.valid_values.append("boot/kernel/"+x+"/packages")
 				self.valid_values.append("boot/kernel/"+x+"/kernelopts")
 				if "boot/kernel/"+x+"/packages" in addlargs:
-					if type(addlargs["boot/kernel/"+x+\
-						"/packages"])==types.StringType:
+					if isinstance(addlargs['boot/kernel/'+x+'/packages'], str):
 						addlargs["boot/kernel/"+x+"/packages"]=\
 							[addlargs["boot/kernel/"+x+"/packages"]]
 
@@ -1207,8 +1200,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			log.notice('Resume point detected, skipping empty operation...')
 		else:
 			if self.settings["spec_prefix"]+"/empty" in self.settings:
-				if type(self.settings[self.settings["spec_prefix"]+\
-					"/empty"])==types.StringType:
+				if isinstance(self.settings[self.settings['spec_prefix']+'/empty'], str):
 					self.settings[self.settings["spec_prefix"]+"/empty"]=\
 						self.settings[self.settings["spec_prefix"]+\
 						"/empty"].split()
@@ -1338,14 +1330,14 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			varname = "clst_" + x.replace("/", "_")
 			varname = varname.replace("-", "_")
 			varname = varname.replace(".", "_")
-			if type(self.settings[x])==types.StringType:
+			if isinstance(self.settings[x], str):
 				# Prefix to prevent namespace clashes
 				#os.environ[varname]=self.settings[x]
 				self.env[varname]=self.settings[x]
-			elif type(self.settings[x])==types.ListType:
+			elif isinstance(self.settings[x], list):
 				#os.environ[varname] = ' '.join(self.settings[x])
 				self.env[varname] = ' '.join(self.settings[x])
-			elif type(self.settings[x])==types.BooleanType:
+			elif isinstance(self.settings[x], bool):
 				if self.settings[x]:
 					self.env[varname] = "true"
 				else:
@@ -1354,7 +1346,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			# Its currently used only for USE_EXPAND flags which are dictionaries of
 			# lists in arch/amd64.py and friends.  If we wanted self.settigs[var]
 			# of any depth, we should make this function recursive.
-			elif type(self.settings[x]) == types.DictType:
+			elif isinstance(self.settings[x], dict):
 				if x in ["compress_definitions",
 					"decompress_definitions"]:
 					continue
@@ -1363,11 +1355,11 @@ class StageBase(TargetBase, ClearBase, GenBase):
 					varname2 = "clst_" + y.replace("/", "_")
 					varname2 = varname2.replace("-", "_")
 					varname2 = varname2.replace(".", "_")
-					if type(self.settings[x][y]) == types.StringType:
+					if isinstance(self.settings[x][y], str):
 						self.env[varname2] = self.settings[x][y]
-					elif type(self.settings[x][y]) == types.ListType:
+					elif isinstance(self.settings[x][y], list):
 						self.env[varname2] = ' '.join(self.settings[x][y])
-					elif type(self.settings[x][y]) == types.BooleanType:
+					elif isinstance(self.settings[x][y], bool):
 						if self.settings[x][y]:
 							self.env[varname] = "true"
 						else:
@@ -1429,8 +1421,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			log.notice('Resume point detected, skipping unmerge operation...')
 		else:
 			if self.settings["spec_prefix"]+"/unmerge" in self.settings:
-				if type(self.settings[self.settings["spec_prefix"]+\
-					"/unmerge"])==types.StringType:
+				if isinstance(self.settings[self.settings['spec_prefix']+'/unmerge'], str):
 					self.settings[self.settings["spec_prefix"]+"/unmerge"]=\
 						[self.settings[self.settings["spec_prefix"]+"/unmerge"]]
 				myunmerge=\
@@ -1529,7 +1520,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			if "boot/kernel" in self.settings:
 				try:
 					mynames=self.settings["boot/kernel"]
-					if type(mynames)==types.StringType:
+					if isinstance(mynames, str):
 						mynames=[mynames]
 					# Execute the script that sets up the kernel build environment
 					cmd(self.settings["controller_file"]+\
@@ -1558,7 +1549,7 @@ class StageBase(TargetBase, ClearBase, GenBase):
 			myopts=self.settings["boot/kernel/"+kname+\
 				"/kernelopts"]
 
-			if type(myopts) != types.StringType:
+			if not isinstance(myopts, str):
 				myopts = ' '.join(myopts)
 				self.env[kname+"_kernelopts"]=myopts
 
diff --git a/catalyst/support.py b/catalyst/support.py
index 8883acb..380c1c1 100644
--- a/catalyst/support.py
+++ b/catalyst/support.py
@@ -2,7 +2,6 @@
 import glob
 import sys
 import os
-import types
 import re
 import time
 from subprocess import Popen
@@ -14,7 +13,7 @@ BASH_BINARY             = "/bin/bash"
 
 
 def list_bashify(mylist):
-	if type(mylist)==types.StringType:
+	if isinstance(mylist, str):
 		mypack=[mylist]
 	else:
 		mypack=mylist[:]
diff --git a/catalyst/targets/grp.py b/catalyst/targets/grp.py
index b37366c..0b38417 100644
--- a/catalyst/targets/grp.py
+++ b/catalyst/targets/grp.py
@@ -4,7 +4,6 @@ Gentoo Reference Platform (GRP) target
 # NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
 
 import os
-import types
 import glob
 
 from catalyst import log
@@ -27,11 +26,11 @@ class grp(StageBase):
 			raise CatalystError("Required value \"grp\" not specified in spec.")
 
 		self.required_values.extend(["grp"])
-		if type(addlargs["grp"])==types.StringType:
+		if isinstance(addlargs['grp'], str):
 			addlargs["grp"]=[addlargs["grp"]]
 
 		if "grp/use" in addlargs:
-			if type(addlargs["grp/use"])==types.StringType:
+			if isinstance(addlargs['grp/use'], str):
 				addlargs["grp/use"]=[addlargs["grp/use"]]
 
 		for x in addlargs["grp"]:
diff --git a/catalyst/targets/livecd_stage1.py b/catalyst/targets/livecd_stage1.py
index 8d9dcc7..70f9243 100644
--- a/catalyst/targets/livecd_stage1.py
+++ b/catalyst/targets/livecd_stage1.py
@@ -4,7 +4,6 @@ LiveCD stage1 target
 # NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
 
 import os
-import types
 
 from catalyst import log
 from catalyst.support import (normpath, cmd)
@@ -60,14 +59,14 @@ class livecd_stage1(StageBase):
 	def set_packages(self):
 		StageBase.set_packages(self)
 		if self.settings["spec_prefix"]+"/packages" in self.settings:
-			if type(self.settings[self.settings["spec_prefix"]+"/packages"]) == types.StringType:
+			if isinstance(self.settings[self.settings['spec_prefix']+'/packages'], str):
 				self.settings[self.settings["spec_prefix"]+"/packages"] = \
 					self.settings[self.settings["spec_prefix"]+"/packages"].split()
 		self.settings[self.settings["spec_prefix"]+"/packages"].append("app-misc/livecd-tools")
 
 	def set_pkgcache_path(self):
 		if "pkgcache_path" in self.settings:
-			if type(self.settings["pkgcache_path"]) != types.StringType:
+			if not isinstance(self.settings['pkgcache_path'], str):
 				self.settings["pkgcache_path"] = normpath(' '.join(self.settings["pkgcache_path"]))
 		else:
 			StageBase.set_pkgcache_path(self)
diff --git a/catalyst/targets/netboot.py b/catalyst/targets/netboot.py
index 333a230..5285c05 100644
--- a/catalyst/targets/netboot.py
+++ b/catalyst/targets/netboot.py
@@ -4,7 +4,6 @@ netboot target, version 1
 # NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
 
 import os
-import types
 
 from catalyst import log
 from catalyst.support import (CatalystError, normpath,
@@ -33,7 +32,7 @@ class netboot(StageBase):
 		try:
 			# XXX: This code does nothing because the for loop below is disabled.
 			if "netboot/packages" in addlargs:
-				if type(addlargs["netboot/packages"]) == types.StringType:
+				if isinstance(addlargs['netboot/packages'], str):
 					_loopy = [addlargs["netboot/packages"]]
 				else:
 					_loopy = addlargs["netboot/packages"]
@@ -88,20 +87,20 @@ class netboot(StageBase):
 		# create image
 		myfiles=[]
 		if "netboot/packages" in self.settings:
-			if type(self.settings["netboot/packages"]) == types.StringType:
+			if isinstance(self.settings['netboot/packages'], str):
 				loopy=[self.settings["netboot/packages"]]
 			else:
 				loopy=self.settings["netboot/packages"]
 
 		for x in loopy:
 			if "netboot/packages/"+x+"/files" in self.settings:
-				if type(self.settings["netboot/packages/"+x+"/files"]) == types.ListType:
+				if isinstance(type(self.settings['netboot/packages/'+x+'/files']), str):
 					myfiles.extend(self.settings["netboot/packages/"+x+"/files"])
 				else:
 					myfiles.append(self.settings["netboot/packages/"+x+"/files"])
 
 		if "netboot/extra_files" in self.settings:
-			if type(self.settings["netboot/extra_files"]) == types.ListType:
+			if isinstance(self.settings['netboot/extra_files'], list):
 				myfiles.extend(self.settings["netboot/extra_files"])
 			else:
 				myfiles.append(self.settings["netboot/extra_files"])
diff --git a/catalyst/targets/netboot2.py b/catalyst/targets/netboot2.py
index 8644786..769b945 100644
--- a/catalyst/targets/netboot2.py
+++ b/catalyst/targets/netboot2.py
@@ -4,7 +4,6 @@ netboot target, version 2
 # NOTE: That^^ docstring has influence catalyst-spec(5) man page generation.
 
 import os
-import types
 import shutil
 from stat import ST_UID, ST_GID, ST_MODE
 
@@ -36,7 +35,7 @@ class netboot2(StageBase):
 
 		try:
 			if "netboot2/packages" in addlargs:
-				if type(addlargs["netboot2/packages"]) == types.StringType:
+				if isinstance(addlargs['netboot2/packages'], str):
 					loopy=[addlargs["netboot2/packages"]]
 				else:
 					loopy=addlargs["netboot2/packages"]
@@ -73,20 +72,20 @@ class netboot2(StageBase):
 			log.notice('Resume point detected, skipping target path setup operation...')
 		else:
 			if "netboot2/packages" in self.settings:
-				if type(self.settings["netboot2/packages"]) == types.StringType:
+				if isinstance(self.settings['netboot2/packages'], str):
 					loopy=[self.settings["netboot2/packages"]]
 				else:
 					loopy=self.settings["netboot2/packages"]
 
 			for x in loopy:
 				if "netboot2/packages/"+x+"/files" in self.settings:
-					if type(self.settings["netboot2/packages/"+x+"/files"]) == types.ListType:
+					if isinstance(self.settings['netboot2/packages/'+x+'/files'], list):
 						myfiles.extend(self.settings["netboot2/packages/"+x+"/files"])
 					else:
 						myfiles.append(self.settings["netboot2/packages/"+x+"/files"])
 
 			if "netboot2/extra_files" in self.settings:
-				if type(self.settings["netboot2/extra_files"]) == types.ListType:
+				if isinstance(self.settings['netboot2/extra_files'], list):
 					myfiles.extend(self.settings["netboot2/extra_files"])
 				else:
 					myfiles.append(self.settings["netboot2/extra_files"])
@@ -145,7 +144,7 @@ class netboot2(StageBase):
 			log.notice('Resume point detected, skipping empty operation...')
 		else:
 			if "netboot2/empty" in self.settings:
-				if type(self.settings["netboot2/empty"])==types.StringType:
+				if isinstance(self.settings['netboot2/empty'], str):
 					self.settings["netboot2/empty"]=self.settings["netboot2/empty"].split()
 				for x in self.settings["netboot2/empty"]:
 					myemp=self.settings["chroot_path"] + self.settings["merge_path"] + x
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [gentoo-catalyst] [PATCH 9/9] lint: fix redefined-outer-name warnings
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
                   ` (6 preceding siblings ...)
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 8/9] lint: convert type/types to isinstance Mike Frysinger
@ 2015-10-12  4:36 ` Mike Frysinger
  2015-10-28 14:58   ` Brian Dolbec
  2015-10-12  4:41 ` [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
  8 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:36 UTC (permalink / raw
  To: gentoo-catalyst

The doc module just needs a main func to hold all the variables
instead of coding it all in global scope.
---
 .pylintrc                          | 3 +--
 catalyst/log.py                    | 4 ++++
 doc/make_subarch_table_guidexml.py | 9 +++++++--
 3 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/.pylintrc b/.pylintrc
index 2a03f23..e657daf 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -32,10 +32,9 @@ load-plugins=
 # bad-continuation -- might be hard with tab indentation policy
 # invalid-name -- need to manage constants better
 # line-too-long -- figure out a length and stick to it
-# redefined-outer-name -- clean up code to not do this
 # super-init-not-called -- fix the classes __init__ structure
 # no-init -- update classes w/missing __init__ functions
-disable=missing-docstring, too-many-lines, too-many-branches, too-many-statements, too-few-public-methods, too-many-instance-attributes, too-many-public-methods, too-many-locals, too-many-arguments, locally-enabled, locally-disabled, fixme, broad-except, bad-whitespace, bad-continuation, invalid-name, line-too-long, redefined-outer-name, super-init-not-called, no-init
+disable=missing-docstring, too-many-lines, too-many-branches, too-many-statements, too-few-public-methods, too-many-instance-attributes, too-many-public-methods, too-many-locals, too-many-arguments, locally-enabled, locally-disabled, fixme, broad-except, bad-whitespace, bad-continuation, invalid-name, line-too-long, super-init-not-called, no-init
 
 
 [REPORTS]
diff --git a/catalyst/log.py b/catalyst/log.py
index 5938199..d640dec 100644
--- a/catalyst/log.py
+++ b/catalyst/log.py
@@ -98,6 +98,10 @@ class CatalystFormatter(logging.Formatter):
 			return msg
 
 
+# We define |debug| in global scope so people can call log.debug(), but it
+# makes the linter complain when we have a |debug| keyword.  Since we don't
+# use that func in here, it's not a problem, so silence the warning.
+# pylint: disable=redefined-outer-name
 def setup_logging(level, output=None, debug=False, color=None):
 	"""Initialize the logging module using the |level| level"""
 	# The incoming level will be things like "info", but setLevel wants
diff --git a/doc/make_subarch_table_guidexml.py b/doc/make_subarch_table_guidexml.py
index a6a9022..0699d2a 100755
--- a/doc/make_subarch_table_guidexml.py
+++ b/doc/make_subarch_table_guidexml.py
@@ -6,6 +6,7 @@
 
 import os
 import re
+import sys
 import textwrap
 
 
@@ -99,11 +100,11 @@ def dump(subarch_title_to_subarch_id, subarch_id_to_pattern_arch_genericrch_id):
 	f.close()
 
 
-if __name__ == '__main__':
+def main(_argv):
 	subarch_title_to_subarch_id = dict()
 	subarch_id_to_pattern_arch_genericrch_id = dict()
 
-	for (dirpath, dirnames, filenames) in os.walk('catalyst/arch'):
+	for dirpath, _dirnames, filenames in os.walk('catalyst/arch'):
 		for _fn in filenames:
 			if not _fn.endswith('.py'):
 				continue
@@ -114,3 +115,7 @@ if __name__ == '__main__':
 			handle_file(fn, subarch_title_to_subarch_id, subarch_id_to_pattern_arch_genericrch_id)
 
 	dump(subarch_title_to_subarch_id, subarch_id_to_pattern_arch_genericrch_id)
+
+
+if __name__ == '__main__':
+	main(sys.argv[1:])
-- 
2.5.2



^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
                   ` (7 preceding siblings ...)
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 9/9] lint: fix redefined-outer-name warnings Mike Frysinger
@ 2015-10-12  4:41 ` Mike Frysinger
  2015-10-22  5:17   ` Mike Frysinger
  8 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-12  4:41 UTC (permalink / raw
  To: gentoo-catalyst

[-- Attachment #1: Type: text/plain, Size: 179 bytes --]

with this patchseries, catalyst is able to build a snapshot/stage[123]
using python3.  well, after a fix in decomp too, but i filed an issue
in the github tracker for that.
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-12  4:41 ` [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
@ 2015-10-22  5:17   ` Mike Frysinger
  2015-10-24  7:00     ` Mike Frysinger
  2015-10-24 11:37     ` Anthony G. Basile
  0 siblings, 2 replies; 23+ messages in thread
From: Mike Frysinger @ 2015-10-22  5:17 UTC (permalink / raw
  To: gentoo-catalyst

[-- Attachment #1: Type: text/plain, Size: 257 bytes --]

On 12 Oct 2015 00:41, Mike Frysinger wrote:
> with this patchseries, catalyst is able to build a snapshot/stage[123]
> using python3.  well, after a fix in decomp too, but i filed an issue
> in the github tracker for that.

any takers for review ? :)
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-22  5:17   ` Mike Frysinger
@ 2015-10-24  7:00     ` Mike Frysinger
  2015-10-28 14:25       ` Brian Dolbec
  2015-10-24 11:37     ` Anthony G. Basile
  1 sibling, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-24  7:00 UTC (permalink / raw
  To: gentoo-catalyst

[-- Attachment #1: Type: text/plain, Size: 852 bytes --]

On 22 Oct 2015 01:17, Mike Frysinger wrote:
> On 12 Oct 2015 00:41, Mike Frysinger wrote:
> > with this patchseries, catalyst is able to build a snapshot/stage[123]
> > using python3.  well, after a fix in decomp too, but i filed an issue
> > in the github tracker for that.
> 
> any takers for review ? :)

i pushed the obvious & bugfix ones:
	hash_utils: fix bad keyword w/CatalystError
	genbase: use sorted() with dict keys
	log: make sure NOTICE is an int
	stagebase: disable undefined-variable lint warning
	convert octals to py3 compat
	lock: fix ensure_dirs call

the other 5 are still pending review though:
	lint: fix redefined-outer-name warnings
	lint: convert type/types to isinstance
	hash_utils: decode output of popen
	make_target_table: rewrite for py3/stability
	stagebase: robustify portage_confdir setup
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-22  5:17   ` Mike Frysinger
  2015-10-24  7:00     ` Mike Frysinger
@ 2015-10-24 11:37     ` Anthony G. Basile
  2015-10-24 14:16       ` Anthony G. Basile
  1 sibling, 1 reply; 23+ messages in thread
From: Anthony G. Basile @ 2015-10-24 11:37 UTC (permalink / raw
  To: gentoo-catalyst

On 10/22/15 1:17 AM, Mike Frysinger wrote:
> On 12 Oct 2015 00:41, Mike Frysinger wrote:
>> with this patchseries, catalyst is able to build a snapshot/stage[123]
>> using python3.  well, after a fix in decomp too, but i filed an issue
>> in the github tracker for that.
>
> any takers for review ? :)
> -mike
>

I didn't see anything obviously wrong.  I will be testing master 
hopefully within an hour or so on some of my stuff and I'll get back to 
everyone.

-- 
Anthony G. Basile, Ph. D.
Chair of Information Technology
D'Youville College
Buffalo, NY 14201
(716) 829-8197


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-24 11:37     ` Anthony G. Basile
@ 2015-10-24 14:16       ` Anthony G. Basile
  2015-11-09  4:52         ` Brian Dolbec
  0 siblings, 1 reply; 23+ messages in thread
From: Anthony G. Basile @ 2015-10-24 14:16 UTC (permalink / raw
  To: gentoo-catalyst

On 10/24/15 7:37 AM, Anthony G. Basile wrote:
> On 10/22/15 1:17 AM, Mike Frysinger wrote:
>> On 12 Oct 2015 00:41, Mike Frysinger wrote:
>>> with this patchseries, catalyst is able to build a snapshot/stage[123]
>>> using python3.  well, after a fix in decomp too, but i filed an issue
>>> in the github tracker for that.
>>
>> any takers for review ? :)
>> -mike
>>
>
> I didn't see anything obviously wrong.  I will be testing master
> hopefully within an hour or so on some of my stuff and I'll get back to
> everyone.
>

It did something quite unexpected.  I'll have to dissect and I'll give a 
better report.  I don't want to just give a half baked report now.  Did 
anyone else test?

-- 
Anthony G. Basile, Ph. D.
Chair of Information Technology
D'Youville College
Buffalo, NY 14201
(716) 829-8197


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-24  7:00     ` Mike Frysinger
@ 2015-10-28 14:25       ` Brian Dolbec
  0 siblings, 0 replies; 23+ messages in thread
From: Brian Dolbec @ 2015-10-28 14:25 UTC (permalink / raw
  To: gentoo-catalyst

On Sat, 24 Oct 2015 03:00:36 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> On 22 Oct 2015 01:17, Mike Frysinger wrote:
> > On 12 Oct 2015 00:41, Mike Frysinger wrote:
> > > with this patchseries, catalyst is able to build a
> > > snapshot/stage[123] using python3.  well, after a fix in decomp
> > > too, but i filed an issue in the github tracker for that.
> > 
> > any takers for review ? :)
> 
> i pushed the obvious & bugfix ones:
> 	hash_utils: fix bad keyword w/CatalystError
> 	genbase: use sorted() with dict keys
> 	log: make sure NOTICE is an int
> 	stagebase: disable undefined-variable lint warning
> 	convert octals to py3 compat
> 	lock: fix ensure_dirs call
> 
> the other 5 are still pending review though:
> 	lint: fix redefined-outer-name warnings
> 	lint: convert type/types to isinstance
> 	hash_utils: decode output of popen
> 	make_target_table: rewrite for py3/stability
> 	stagebase: robustify portage_confdir setup
> -mike

OK, I'm back and starting to catch up with the hundreds of gentoo
emails still left in my inbox.  Was over 2000 initially. (from just 2
weeks)

Yeah, those first 5 committed looked fine.  It would have been
nicer/easier to track if you used the patch numbers in the above
listings... [PATCH 1/9], not just the message title.

I'll get to the decomp fix later today probably. 

-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability
  2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability Mike Frysinger
@ 2015-10-28 14:46   ` Brian Dolbec
  2015-10-28 16:49     ` Mike Frysinger
  0 siblings, 1 reply; 23+ messages in thread
From: Brian Dolbec @ 2015-10-28 14:46 UTC (permalink / raw
  To: gentoo-catalyst

On Mon, 12 Oct 2015 00:35:55 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> ---
>  doc/make_target_table.py | 32 ++++++++++++++++++--------------
>  1 file changed, 18 insertions(+), 14 deletions(-)
> 
> diff --git a/doc/make_target_table.py b/doc/make_target_table.py
> index f127c37..9eb072b 100755
> --- a/doc/make_target_table.py
> +++ b/doc/make_target_table.py
> @@ -1,4 +1,4 @@
> -#!/usr/bin/env python2
> +#!/usr/bin/python
>  # Copyright (C) 2012 W. Trevor King <wking@drexel.edu>
>  # Copyright (C) 2012 Sebastian Pipping <sebastian@pipping.org>
>  # Copyright (C) 2013 Brian dolbec <dolsen@gentoo.org>
> @@ -10,34 +10,38 @@
>  
>  from __future__ import print_function
>  
> -import sys as _sys
> -
>  import glob
> -import re
> +import locale
> +import os
> +import sys
>  
>  
> -def key_netboot_before_netboot2((target_name, _module)):
> -	return target_name + '1'
> +def main(_argv):
> +	source_root =
> os.path.dirname(os.path.dirname(os.path.realpath(__file__))) 
> +	# Force consistent sorting order.
> +	locale.setlocale(locale.LC_COLLATE, 'C')
>  
> -if __name__ == '__main__':
> -	extractor = re.compile('^catalyst/targets/(([^ ]+)).py$')
>  	targets = list()
> -	for filename in sorted(glob.glob('catalyst/targets/*.py')):
> +	for filename in glob.glob(os.path.join(source_root,
> 'catalyst/targets/*.py')): if '__init__' in filename:
>  			continue
>  
> -		match = extractor.match(filename)
> -		target_name = match.group(2).replace('_', '-')
> -		module_name = 'catalyst.targets.' + match.group(1)
> +		name = os.path.basename(filename)[0:-3]
> +		target_name = name.replace('_', '-')
> +		module_name = 'catalyst.targets.' + name
>  
>  		__import__(module_name)
> -		module = _sys.modules[module_name]
> +		module = sys.modules[module_name]
>  
>  		targets.append((target_name, module))
>  
> -	for target_name, module in sorted(targets,
> key=key_netboot_before_netboot2):
> +	for target_name, module in sorted(targets, key=lambda x:
> x[0]): print('`%s`;;' % target_name)
>  		# Replace blank lines with `+` (asciidoc list item
> continuation) print(module.__doc__.strip().replace('\n\n', '\n+\n'))
>  		print('')
> +
> +
> +if __name__ == '__main__':
> +	main(sys.argv[1:])

looks harmless enough ;)  test will be when generating the docs making a
release

-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 7/9] hash_utils: decode output of popen
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 7/9] hash_utils: decode output of popen Mike Frysinger
@ 2015-10-28 14:49   ` Brian Dolbec
  0 siblings, 0 replies; 23+ messages in thread
From: Brian Dolbec @ 2015-10-28 14:49 UTC (permalink / raw
  To: gentoo-catalyst

On Mon, 12 Oct 2015 00:36:00 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> In py3, the return of popen is binary data.  We need
> to decode it to get a string we can work with.
> ---
>  catalyst/hash_utils.py | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/catalyst/hash_utils.py b/catalyst/hash_utils.py
> index 1161da3..6e08967 100644
> --- a/catalyst/hash_utils.py
> +++ b/catalyst/hash_utils.py
> @@ -117,7 +117,7 @@ class HashMap(object):
>  		log.debug('args = %r', args)
>  		source = Popen(args, stdout=PIPE)
>  		output = source.communicate()
> -		lines = output[0].split('\n')
> +		lines = output[0].decode('ascii').split('\n')
>  		log.debug('output = %s', output)
>  		header = lines[0]
>  		h_f = lines[1].split()


looks good
-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 8/9] lint: convert type/types to isinstance
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 8/9] lint: convert type/types to isinstance Mike Frysinger
@ 2015-10-28 14:55   ` Brian Dolbec
  0 siblings, 0 replies; 23+ messages in thread
From: Brian Dolbec @ 2015-10-28 14:55 UTC (permalink / raw
  To: gentoo-catalyst

On Mon, 12 Oct 2015 00:36:01 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> pylint complains about using (type(...) == types.xxx) checks as it
> prefers isinstance(..., xxx) instead.  Convert the code base to it.
> ---
>  .pylintrc                         |  3 +--
>  catalyst/base/stagebase.py        | 57
> +++++++++++++++++----------------------
> catalyst/support.py               |  3 +--
> catalyst/targets/grp.py           |  5 ++--
> catalyst/targets/livecd_stage1.py |  5 ++--
> catalyst/targets/netboot.py       |  9 +++----
> catalyst/targets/netboot2.py      | 11 ++++---- 7 files changed, 39
> insertions(+), 54 deletions(-)
> 
> 

looks good.

Thanks, yet another task done that has been bugging me for quite a
while.

-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 9/9] lint: fix redefined-outer-name warnings
  2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 9/9] lint: fix redefined-outer-name warnings Mike Frysinger
@ 2015-10-28 14:58   ` Brian Dolbec
  0 siblings, 0 replies; 23+ messages in thread
From: Brian Dolbec @ 2015-10-28 14:58 UTC (permalink / raw
  To: gentoo-catalyst

On Mon, 12 Oct 2015 00:36:02 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> The doc module just needs a main func to hold all the variables
> instead of coding it all in global scope.
> ---
>  .pylintrc                          | 3 +--
>  catalyst/log.py                    | 4 ++++
>  doc/make_subarch_table_guidexml.py | 9 +++++++--
>  3 files changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/.pylintrc b/.pylintrc
> index 2a03f23..e657daf 100644
> --- a/.pylintrc
> +++ b/.pylintrc
> @@ -32,10 +32,9 @@ load-plugins=
>  # bad-continuation -- might be hard with tab indentation policy
>  # invalid-name -- need to manage constants better
>  # line-too-long -- figure out a length and stick to it
> -# redefined-outer-name -- clean up code to not do this
>  # super-init-not-called -- fix the classes __init__ structure
>  # no-init -- update classes w/missing __init__ functions
> -disable=missing-docstring, too-many-lines, too-many-branches,
> too-many-statements, too-few-public-methods,
> too-many-instance-attributes, too-many-public-methods,
> too-many-locals, too-many-arguments, locally-enabled,
> locally-disabled, fixme, broad-except, bad-whitespace,
> bad-continuation, invalid-name, line-too-long, redefined-outer-name,
> super-init-not-called, no-init +disable=missing-docstring,
> too-many-lines, too-many-branches, too-many-statements,
> too-few-public-methods, too-many-instance-attributes,
> too-many-public-methods, too-many-locals, too-many-arguments,
> locally-enabled, locally-disabled, fixme, broad-except,
> bad-whitespace, bad-continuation, invalid-name, line-too-long,
> super-init-not-called, no-init [REPORTS] diff --git a/catalyst/log.py
> b/catalyst/log.py index 5938199..d640dec 100644 --- a/catalyst/log.py
> +++ b/catalyst/log.py @@ -98,6 +98,10 @@ class
> CatalystFormatter(logging.Formatter): return msg +# We define |debug|
> in global scope so people can call log.debug(), but it +# makes the
> linter complain when we have a |debug| keyword.  Since we don't +#
> use that func in here, it's not a problem, so silence the warning. +#
> pylint: disable=redefined-outer-name def setup_logging(level,
> output=None, debug=False, color=None): """Initialize the logging
> module using the |level| level""" # The incoming level will be things
> like "info", but setLevel wants diff --git
> a/doc/make_subarch_table_guidexml.py
> b/doc/make_subarch_table_guidexml.py index a6a9022..0699d2a 100755
> --- a/doc/make_subarch_table_guidexml.py +++
> b/doc/make_subarch_table_guidexml.py @@ -6,6 +6,7 @@ import os
>  import re
> +import sys
>  import textwrap
>  
>  
> @@ -99,11 +100,11 @@ def dump(subarch_title_to_subarch_id,
> subarch_id_to_pattern_arch_genericrch_id): f.close()
>  
>  
> -if __name__ == '__main__':
> +def main(_argv):
>  	subarch_title_to_subarch_id = dict()
>  	subarch_id_to_pattern_arch_genericrch_id = dict()
>  
> -	for (dirpath, dirnames, filenames) in
> os.walk('catalyst/arch'):
> +	for dirpath, _dirnames, filenames in
> os.walk('catalyst/arch'): for _fn in filenames:
>  			if not _fn.endswith('.py'):
>  				continue
> @@ -114,3 +115,7 @@ if __name__ == '__main__':
>  			handle_file(fn, subarch_title_to_subarch_id,
> subarch_id_to_pattern_arch_genericrch_id) 
>  	dump(subarch_title_to_subarch_id,
> subarch_id_to_pattern_arch_genericrch_id) +
> +
> +if __name__ == '__main__':
> +	main(sys.argv[1:])

looks good

-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability
  2015-10-28 14:46   ` Brian Dolbec
@ 2015-10-28 16:49     ` Mike Frysinger
  2015-10-28 17:15       ` Brian Dolbec
  0 siblings, 1 reply; 23+ messages in thread
From: Mike Frysinger @ 2015-10-28 16:49 UTC (permalink / raw
  To: gentoo-catalyst

[-- Attachment #1: Type: text/plain, Size: 215 bytes --]

On 28 Oct 2015 07:46, Brian Dolbec wrote:
> looks harmless enough ;)  test will be when generating the docs making a
> release

i was running the code and verifying the output matched before any of my changes
-mike

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability
  2015-10-28 16:49     ` Mike Frysinger
@ 2015-10-28 17:15       ` Brian Dolbec
  0 siblings, 0 replies; 23+ messages in thread
From: Brian Dolbec @ 2015-10-28 17:15 UTC (permalink / raw
  To: gentoo-catalyst

On Wed, 28 Oct 2015 12:49:19 -0400
Mike Frysinger <vapier@gentoo.org> wrote:

> On 28 Oct 2015 07:46, Brian Dolbec wrote:
> > looks harmless enough ;)  test will be when generating the docs
> > making a release
> 
> i was running the code and verifying the output matched before any of
> my changes -mike


yes, I figured as much :)
-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-10-24 14:16       ` Anthony G. Basile
@ 2015-11-09  4:52         ` Brian Dolbec
  2015-11-19  4:19           ` Brian Dolbec
  0 siblings, 1 reply; 23+ messages in thread
From: Brian Dolbec @ 2015-11-09  4:52 UTC (permalink / raw
  To: gentoo-catalyst

On Sat, 24 Oct 2015 10:16:03 -0400
"Anthony G. Basile" <basile@opensource.dyc.edu> wrote:

> On 10/24/15 7:37 AM, Anthony G. Basile wrote:
> > On 10/22/15 1:17 AM, Mike Frysinger wrote:  
> >> On 12 Oct 2015 00:41, Mike Frysinger wrote:  
> >>> with this patchseries, catalyst is able to build a
> >>> snapshot/stage[123] using python3.  well, after a fix in decomp
> >>> too, but i filed an issue in the github tracker for that.  
> >>
> >> any takers for review ? :)
> >> -mike
> >>  
> >
> > I didn't see anything obviously wrong.  I will be testing master
> > hopefully within an hour or so on some of my stuff and I'll get
> > back to everyone.
> >  
> 
> It did something quite unexpected.  I'll have to dissect and I'll
> give a better report.  I don't want to just give a half baked report
> now.  Did anyone else test?
> 

What is happening with this one?

Anthony, did you get any further checking it out?

-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat
  2015-11-09  4:52         ` Brian Dolbec
@ 2015-11-19  4:19           ` Brian Dolbec
  0 siblings, 0 replies; 23+ messages in thread
From: Brian Dolbec @ 2015-11-19  4:19 UTC (permalink / raw
  To: gentoo-catalyst

On Sun, 8 Nov 2015 20:52:20 -0800
Brian Dolbec <dolsen@gentoo.org> wrote:

> On Sat, 24 Oct 2015 10:16:03 -0400
> "Anthony G. Basile" <basile@opensource.dyc.edu> wrote:
> 
> > On 10/24/15 7:37 AM, Anthony G. Basile wrote:  
> > > On 10/22/15 1:17 AM, Mike Frysinger wrote:    
> > >> On 12 Oct 2015 00:41, Mike Frysinger wrote:    
> > >>> with this patchseries, catalyst is able to build a
> > >>> snapshot/stage[123] using python3.  well, after a fix in decomp
> > >>> too, but i filed an issue in the github tracker for that.    
> > >>
> > >> any takers for review ? :)
> > >> -mike
> > >>    
> > >
> > > I didn't see anything obviously wrong.  I will be testing master
> > > hopefully within an hour or so on some of my stuff and I'll get
> > > back to everyone.
> > >    
> > 
> > It did something quite unexpected.  I'll have to dissect and I'll
> > give a better report.  I don't want to just give a half baked report
> > now.  Did anyone else test?
> >   
> 
> What is happening with this one?
> 
> Anthony, did you get any further checking it out?
> 

Since there has been nothing about this, go ahead and merge it.

-- 
Brian Dolbec <dolsen>



^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2015-11-19  4:20 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-12  4:35 [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 2/9] make_target_table: rewrite for py3/stability Mike Frysinger
2015-10-28 14:46   ` Brian Dolbec
2015-10-28 16:49     ` Mike Frysinger
2015-10-28 17:15       ` Brian Dolbec
2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 3/9] stagebase: disable undefined-variable lint warning Mike Frysinger
2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 4/9] log: make sure NOTICE is an int Mike Frysinger
2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 5/9] genbase: use sorted() with dict keys Mike Frysinger
2015-10-12  4:35 ` [gentoo-catalyst] [PATCH 6/9] hash_utils: fix bad keyword w/CatalystError Mike Frysinger
2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 7/9] hash_utils: decode output of popen Mike Frysinger
2015-10-28 14:49   ` Brian Dolbec
2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 8/9] lint: convert type/types to isinstance Mike Frysinger
2015-10-28 14:55   ` Brian Dolbec
2015-10-12  4:36 ` [gentoo-catalyst] [PATCH 9/9] lint: fix redefined-outer-name warnings Mike Frysinger
2015-10-28 14:58   ` Brian Dolbec
2015-10-12  4:41 ` [gentoo-catalyst] [PATCH 1/9] convert octals to py3 compat Mike Frysinger
2015-10-22  5:17   ` Mike Frysinger
2015-10-24  7:00     ` Mike Frysinger
2015-10-28 14:25       ` Brian Dolbec
2015-10-24 11:37     ` Anthony G. Basile
2015-10-24 14:16       ` Anthony G. Basile
2015-11-09  4:52         ` Brian Dolbec
2015-11-19  4:19           ` Brian Dolbec

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox