[CRIU] [PATCH 1/4] python: Remove unused imports

Andrey Vagin avagin at virtuozzo.com
Mon Oct 1 09:53:35 MSK 2018


On Sun, Sep 23, 2018 at 03:31:51PM +0100, Radostin Stoyanov wrote:
> Auto-detected with pylint.
> 
> Signed-off-by: Radostin Stoyanov <rstoyanov1 at gmail.com>
> ---
>  coredump/criu_coredump/elf.py   | 284 ++++++++++++++++----------------
>  lib/py/criu.py                  |   3 -
>  lib/py/images/images.py         | 161 +++++++++---------
>  scripts/magic-gen.py            |   3 +-
>  soccr/test/tcp-test.py          |   2 +-
>  test/crit-recode.py             |   1 -
>  test/exhaustive/unix.py         |   1 -
>  test/others/rpc/errno.py        |   2 +-
>  test/others/rpc/ps_test.py      |   2 +-
>  test/others/rpc/restore-loop.py |   2 +-
>  test/others/rpc/test.py         |   2 +-
>  test/others/rpc/version.py      |   1 -
>  test/others/shell-job/run.py    |   3 +-
>  13 files changed, 228 insertions(+), 239 deletions(-)
> 
> diff --git a/coredump/criu_coredump/elf.py b/coredump/criu_coredump/elf.py
> index 070e4792..1da06a6f 100644
> --- a/coredump/criu_coredump/elf.py
> +++ b/coredump/criu_coredump/elf.py
> @@ -1,11 +1,11 @@
>  # Define structures and constants for generating elf file.
> -from ctypes import *
> +import ctypes
>  
> -Elf64_Half	= c_uint16	# typedef uint16_t Elf64_Half;
> -Elf64_Word	= c_uint32	# typedef uint32_t Elf64_Word;
> -Elf64_Addr	= c_uint64	# typedef uint64_t Elf64_Addr;
> -Elf64_Off	= c_uint64	# typedef uint64_t Elf64_Off;
> -Elf64_Xword	= c_uint64	# typedef uint64_t Elf64_Xword;
> +Elf64_Half	= ctypes.c_uint16	# typedef uint16_t Elf64_Half;
> +Elf64_Word	= ctypes.c_uint32	# typedef uint32_t Elf64_Word;
> +Elf64_Addr	= ctypes.c_uint64	# typedef uint64_t Elf64_Addr;
> +Elf64_Off	= ctypes.c_uint64	# typedef uint64_t Elf64_Off;
> +Elf64_Xword	= ctypes.c_uint64	# typedef uint64_t Elf64_Xword;
>  
>  # Elf64_Ehdr related constants.
>  
> @@ -43,9 +43,9 @@ EM_X86_64	= 62		# #define EM_X86_64       62              /* AMD x86-64 architec
>  # Legal values for e_version (version).
>  EV_CURRENT	= 1		# #define EV_CURRENT      1               /* Current version */
>  
> -class Elf64_Ehdr(Structure):			# typedef struct
> +class Elf64_Ehdr(ctypes.Structure):			# typedef struct
>  	_fields_ = [				# {
> -	("e_ident",	c_ubyte*EI_NIDENT),	#   unsigned char e_ident[EI_NIDENT];
> +	("e_ident",	ctypes.c_ubyte*EI_NIDENT),	#   unsigned char e_ident[EI_NIDENT];
>  	("e_type",	Elf64_Half),		#   Elf64_Half e_type;
>  	("e_machine",	Elf64_Half),		#   Elf64_Half e_machine;
>  	("e_version",	Elf64_Word),		#   Elf64_Word e_version;
> @@ -73,7 +73,7 @@ PF_X	= 1		# #define PF_X            (1 << 0)        /* Segment is executable */
>  PF_W	= 1 << 1	# #define PF_W            (1 << 1)        /* Segment is writable */
>  PF_R	= 1 << 2	# #define PF_R            (1 << 2)        /* Segment is readable */
>  
> -class Elf64_Phdr(Structure):			# typedef struct
> +class Elf64_Phdr(ctypes.Structure):			# typedef struct
>  	_fields_ = [				# {
>  	("p_type",	Elf64_Word),		#   Elf64_Word p_type;
>  	("p_flags",	Elf64_Word),		#   Elf64_Word p_flags;
> @@ -88,14 +88,14 @@ class Elf64_Phdr(Structure):			# typedef struct
>  
>  # Elf64_auxv_t related constants.
>  
> -class _Elf64_auxv_t_U(Union):
> +class _Elf64_auxv_t_U(ctypes.Union):
>  	_fields_ = [
> -	("a_val", c_uint64)
> +	("a_val", ctypes.c_uint64)
>  	]
>  
> -class Elf64_auxv_t(Structure):			# typedef struct
> +class Elf64_auxv_t(ctypes.Structure):			# typedef struct
>  	_fields_ = [				# {
> -	("a_type",	c_uint64),		#   uint64_t a_type;              /* Entry type */
> +	("a_type",	ctypes.c_uint64),		#   uint64_t a_type;              /* Entry type */
>  	("a_un",	_Elf64_auxv_t_U)	#   union
>  						#     {
>  						#       uint64_t a_val;           /* Integer value */
> @@ -118,7 +118,7 @@ NT_FILE		= 0x46494c45	# #define NT_FILE         0x46494c45      /* Contains info
>  #									     files */
>  NT_X86_XSTATE	= 0x202		# #define NT_X86_XSTATE   0x202           /* x86 extended state using xsave */
>  
> -class Elf64_Nhdr(Structure):		# typedef struct
> +class Elf64_Nhdr(ctypes.Structure):		# typedef struct
>  	_fields_ = [			# {
>  	("n_namesz",	Elf64_Word),	#   Elf64_Word n_namesz;                  /* Length of the note's name.  */
>  	("n_descsz",	Elf64_Word),	#   Elf64_Word n_descsz;                  /* Length of the note's descriptor.  */
> @@ -128,7 +128,7 @@ class Elf64_Nhdr(Structure):		# typedef struct
>  
>  # Elf64_Shdr related constants.
>  
> -class Elf64_Shdr(Structure):		# typedef struct
> +class Elf64_Shdr(ctypes.Structure):		# typedef struct
>  	_fields_ = [			# {
>  	("sh_name",	Elf64_Word),	#   Elf64_Word    sh_name;                /* Section name (string tbl index) */
>  	("sh_type",	Elf64_Word),	#   Elf64_Word    sh_type;                /* Section type */
> @@ -146,73 +146,73 @@ class Elf64_Shdr(Structure):		# typedef struct
>  # elf_prstatus related constants.
>  
>  # Signal info.
> -class elf_siginfo(Structure):		# struct elf_siginfo
> +class elf_siginfo(ctypes.Structure):		# struct elf_siginfo
>  	_fields_ = [			#   {
> -	("si_signo",	c_int),		#     int si_signo;                       /* Signal number.  */
> -	("si_code",	c_int),		#     int si_code;                        /* Extra code.  */
> -	("si_errno",	c_int)		#     int si_errno;                       /* Errno.  */
> +	("si_signo",	ctypes.c_int),		#     int si_signo;                       /* Signal number.  */
> +	("si_code",	ctypes.c_int),		#     int si_code;                        /* Extra code.  */
> +	("si_errno",	ctypes.c_int)		#     int si_errno;                       /* Errno.  */
>  	]				#   };
>  
>  # A time value that is accurate to the nearest
>  # microsecond but also has a range of years.
> -class timeval(Structure):		# struct timeval
> +class timeval(ctypes.Structure):		# struct timeval
>  	_fields_ = [			#   {
> -	("tv_sec",	c_long),	#     __time_t tv_sec;            /* Seconds.  */
> -	("tv_usec",	c_long)		#     __suseconds_t tv_usec;      /* Microseconds.  */
> +	("tv_sec",	ctypes.c_long),	#     __time_t tv_sec;            /* Seconds.  */
> +	("tv_usec",	ctypes.c_long)		#     __suseconds_t tv_usec;      /* Microseconds.  */
>  	]				#   };
>  
> -class user_regs_struct(Structure):		# struct user_regs_struct
> +class user_regs_struct(ctypes.Structure):		# struct user_regs_struct
>  	_fields_ = [				# {
> -	("r15",		c_ulonglong),		#   __extension__ unsigned long long int r15;
> -	("r14",		c_ulonglong),		#   __extension__ unsigned long long int r14;
> -	("r13",		c_ulonglong),		#   __extension__ unsigned long long int r13;
> -	("r12",		c_ulonglong),		#   __extension__ unsigned long long int r12;
> -	("rbp",		c_ulonglong),		#   __extension__ unsigned long long int rbp;
> -	("rbx",		c_ulonglong),		#   __extension__ unsigned long long int rbx;
> -	("r11",		c_ulonglong),		#   __extension__ unsigned long long int r11;
> -	("r10",		c_ulonglong),		#   __extension__ unsigned long long int r10;
> -	("r9",		c_ulonglong),		#   __extension__ unsigned long long int r9;
> -	("r8",		c_ulonglong),		#   __extension__ unsigned long long int r8;
> -	("rax",		c_ulonglong),		#   __extension__ unsigned long long int rax;
> -	("rcx",		c_ulonglong),		#   __extension__ unsigned long long int rcx;
> -	("rdx",		c_ulonglong),		#   __extension__ unsigned long long int rdx;
> -	("rsi",		c_ulonglong),		#   __extension__ unsigned long long int rsi;
> -	("rdi",		c_ulonglong),		#   __extension__ unsigned long long int rdi;
> -	("orig_rax",	c_ulonglong),		#   __extension__ unsigned long long int orig_rax;
> -	("rip",		c_ulonglong),		#   __extension__ unsigned long long int rip;
> -	("cs",		c_ulonglong),		#   __extension__ unsigned long long int cs;
> -	("eflags",	c_ulonglong),		#   __extension__ unsigned long long int eflags;
> -	("rsp",		c_ulonglong),		#   __extension__ unsigned long long int rsp;
> -	("ss",		c_ulonglong),		#   __extension__ unsigned long long int ss;
> -	("fs_base",	c_ulonglong),		#   __extension__ unsigned long long int fs_base;
> -	("gs_base",	c_ulonglong),		#   __extension__ unsigned long long int gs_base;
> -	("ds",		c_ulonglong),		#   __extension__ unsigned long long int ds;
> -	("es",		c_ulonglong),		#   __extension__ unsigned long long int es;
> -	("fs",		c_ulonglong),		#   __extension__ unsigned long long int fs;
> -	("gs",		c_ulonglong)		#   __extension__ unsigned long long int gs;
> +	("r15",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r15;
> +	("r14",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r14;
> +	("r13",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r13;
> +	("r12",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r12;
> +	("rbp",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rbp;
> +	("rbx",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rbx;
> +	("r11",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r11;
> +	("r10",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r10;
> +	("r9",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r9;
> +	("r8",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int r8;
> +	("rax",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rax;
> +	("rcx",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rcx;
> +	("rdx",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rdx;
> +	("rsi",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rsi;
> +	("rdi",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rdi;
> +	("orig_rax",	ctypes.c_ulonglong),		#   __extension__ unsigned long long int orig_rax;
> +	("rip",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rip;
> +	("cs",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int cs;
> +	("eflags",	ctypes.c_ulonglong),		#   __extension__ unsigned long long int eflags;
> +	("rsp",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rsp;
> +	("ss",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int ss;
> +	("fs_base",	ctypes.c_ulonglong),		#   __extension__ unsigned long long int fs_base;
> +	("gs_base",	ctypes.c_ulonglong),		#   __extension__ unsigned long long int gs_base;
> +	("ds",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int ds;
> +	("es",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int es;
> +	("fs",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int fs;
> +	("gs",		ctypes.c_ulonglong)		#   __extension__ unsigned long long int gs;
>  	]					# };
>  
> -#elf_greg_t	= c_ulonglong
> -#ELF_NGREG = sizeof(user_regs_struct)/sizeof(elf_greg_t)
> +#elf_greg_t	= ctypes.c_ulonglong
> +#ELF_NGREG = ctypes.sizeof(user_regs_struct)/ctypes.sizeof(elf_greg_t)
>  #elf_gregset_t = elf_greg_t*ELF_NGREG
>  elf_gregset_t = user_regs_struct
>  
> -class elf_prstatus(Structure):		# struct elf_prstatus
> +class elf_prstatus(ctypes.Structure):		# struct elf_prstatus
>  	_fields_ = [			#   {
>  	("pr_info",	elf_siginfo),	#     struct elf_siginfo pr_info;         /* Info associated with signal.  */
> -	("pr_cursig",	c_short),	#     short int pr_cursig;                /* Current signal.  */
> -	("pr_sigpend",	c_ulong),	#     unsigned long int pr_sigpend;       /* Set of pending signals.  */
> -	("pr_sighold",	c_ulong),	#     unsigned long int pr_sighold;       /* Set of held signals.  */
> -	("pr_pid",	c_int),		#     __pid_t pr_pid;
> -	("pr_ppid",	c_int),		#     __pid_t pr_ppid;
> -	("pr_pgrp",	c_int),		#     __pid_t pr_pgrp;
> -	("pr_sid",	c_int),		#     __pid_t pr_sid;
> +	("pr_cursig",	ctypes.c_short),	#     short int pr_cursig;                /* Current signal.  */
> +	("pr_sigpend",	ctypes.c_ulong),	#     unsigned long int pr_sigpend;       /* Set of pending signals.  */
> +	("pr_sighold",	ctypes.c_ulong),	#     unsigned long int pr_sighold;       /* Set of held signals.  */
> +	("pr_pid",	ctypes.c_int),		#     __pid_t pr_pid;
> +	("pr_ppid",	ctypes.c_int),		#     __pid_t pr_ppid;
> +	("pr_pgrp",	ctypes.c_int),		#     __pid_t pr_pgrp;
> +	("pr_sid",	ctypes.c_int),		#     __pid_t pr_sid;
>  	("pr_utime",	timeval),	#     struct timeval pr_utime;            /* User time.  */
>  	("pr_stime",	timeval),	#     struct timeval pr_stime;            /* System time.  */
>  	("pr_cutime",	timeval),	#     struct timeval pr_cutime;           /* Cumulative user time.  */
>  	("pr_cstime",	timeval),	#     struct timeval pr_cstime;           /* Cumulative system time.  */
>  	("pr_reg",	elf_gregset_t),	#     elf_gregset_t pr_reg;               /* GP registers.  */
> -	("pr_fpvalid",	c_int)		#     int pr_fpvalid;                     /* True if math copro being used.  */
> +	("pr_fpvalid",	ctypes.c_int)		#     int pr_fpvalid;                     /* True if math copro being used.  */
>  	]				#   };
>  
>  
> @@ -220,43 +220,43 @@ class elf_prstatus(Structure):		# struct elf_prstatus
>  
>  ELF_PRARGSZ	= 80			# #define ELF_PRARGSZ     (80)    /* Number of chars for args.  */
>  
> -class elf_prpsinfo(Structure):			# struct elf_prpsinfo
> +class elf_prpsinfo(ctypes.Structure):			# struct elf_prpsinfo
>  	_fields_ = [				#   {
> -	("pr_state",	c_byte),		#     char pr_state;                      /* Numeric process state.  */
> -	("pr_sname",	c_char),		#     char pr_sname;                      /* Char for pr_state.  */
> -	("pr_zomb",	c_byte),		#     char pr_zomb;                       /* Zombie.  */
> -	("pr_nice",	c_byte),		#     char pr_nice;                       /* Nice val.  */
> -	("pr_flag",	c_ulong),		#     unsigned long int pr_flag;          /* Flags.  */
> +	("pr_state",	ctypes.c_byte),		#     char pr_state;                      /* Numeric process state.  */
> +	("pr_sname",	ctypes.c_char),		#     char pr_sname;                      /* Char for pr_state.  */
> +	("pr_zomb",	ctypes.c_byte),		#     char pr_zomb;                       /* Zombie.  */
> +	("pr_nice",	ctypes.c_byte),		#     char pr_nice;                       /* Nice val.  */
> +	("pr_flag",	ctypes.c_ulong),		#     unsigned long int pr_flag;          /* Flags.  */
>  						# #if __WORDSIZE == 32
>  						#     unsigned short int pr_uid;
>  						#     unsigned short int pr_gid;
>  						# #else
> -	("pr_uid",	c_uint),		#     unsigned int pr_uid;
> -	("pr_gid",	c_uint),		#     unsigned int pr_gid;
> +	("pr_uid",	ctypes.c_uint),		#     unsigned int pr_uid;
> +	("pr_gid",	ctypes.c_uint),		#     unsigned int pr_gid;
>  						# #endif
> -	("pr_pid",	c_int),			#     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
> -	("pr_ppid",	c_int),
> -	("pr_pgrp",	c_int),
> -	("pr_sid",	c_int),
> +	("pr_pid",	ctypes.c_int),			#     int pr_pid, pr_ppid, pr_pgrp, pr_sid;
> +	("pr_ppid",	ctypes.c_int),
> +	("pr_pgrp",	ctypes.c_int),
> +	("pr_sid",	ctypes.c_int),
>  						#     /* Lots missing */
> -	("pr_fname",	c_char*16),		#     char pr_fname[16];                  /* Filename of executable.  */
> -	("pr_psargs",	c_char*ELF_PRARGSZ)	#     char pr_psargs[ELF_PRARGSZ];        /* Initial part of arg list.  */
> +	("pr_fname",	ctypes.c_char*16),		#     char pr_fname[16];                  /* Filename of executable.  */
> +	("pr_psargs",	ctypes.c_char*ELF_PRARGSZ)	#     char pr_psargs[ELF_PRARGSZ];        /* Initial part of arg list.  */
>  	]					#   };
>  
>  
> -class user_fpregs_struct(Structure):		# struct user_fpregs_struct
> +class user_fpregs_struct(ctypes.Structure):		# struct user_fpregs_struct
>  	_fields_ = [				# {
> -	("cwd",		c_ushort),		#   unsigned short int    cwd;
> -	("swd",		c_ushort),		#   unsigned short int    swd;
> -	("ftw",		c_ushort),		#   unsigned short int    ftw;
> -	("fop",		c_ushort),		#   unsigned short int    fop;
> -	("rip",		c_ulonglong),		#   __extension__ unsigned long long int rip;
> -	("rdp",		c_ulonglong),		#   __extension__ unsigned long long int rdp;
> -	("mxcsr",	c_uint),		#   unsigned int          mxcsr;
> -	("mxcr_mask",	c_uint),		#   unsigned int          mxcr_mask;
> -	("st_space",	c_uint*32),		#   unsigned int          st_space[32];   /* 8*16 bytes for each FP-reg = 128 bytes */
> -	("xmm_space",	c_uint*64),		#   unsigned int          xmm_space[64];  /* 16*16 bytes for each XMM-reg = 256 bytes */
> -	("padding",	c_uint*24),		#   unsigned int          padding[24];
> +	("cwd",		ctypes.c_ushort),		#   unsigned short int    cwd;
> +	("swd",		ctypes.c_ushort),		#   unsigned short int    swd;
> +	("ftw",		ctypes.c_ushort),		#   unsigned short int    ftw;
> +	("fop",		ctypes.c_ushort),		#   unsigned short int    fop;
> +	("rip",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rip;
> +	("rdp",		ctypes.c_ulonglong),		#   __extension__ unsigned long long int rdp;
> +	("mxcsr",	ctypes.c_uint),		#   unsigned int          mxcsr;
> +	("mxcr_mask",	ctypes.c_uint),		#   unsigned int          mxcr_mask;
> +	("st_space",	ctypes.c_uint*32),		#   unsigned int          st_space[32];   /* 8*16 bytes for each FP-reg = 128 bytes */
> +	("xmm_space",	ctypes.c_uint*64),		#   unsigned int          xmm_space[64];  /* 16*16 bytes for each XMM-reg = 256 bytes */
> +	("padding",	ctypes.c_uint*24),		#   unsigned int          padding[24];
>  	]					# };
>  
>  
> @@ -266,79 +266,79 @@ elf_fpregset_t = user_fpregs_struct
>  # siginfo_t related constants.
>  
>  _SI_MAX_SIZE	= 128
> -_SI_PAD_SIZE	= (_SI_MAX_SIZE/sizeof(c_int)) - 4
> +_SI_PAD_SIZE	= (_SI_MAX_SIZE/ctypes.sizeof(ctypes.c_int)) - 4
>  
>  					#          /* kill().  */
> -class _siginfo_t_U_kill(Structure):	#         struct
> +class _siginfo_t_U_kill(ctypes.Structure):	#         struct
>  	_fields_ = [			#           {
> -	("si_pid",	c_int),		#             __pid_t si_pid;     /* Sending process ID.  */
> -	("si_uid",	c_uint)		#             __uid_t si_uid;     /* Real user ID of sending process.  */
> +	("si_pid",	ctypes.c_int),		#             __pid_t si_pid;     /* Sending process ID.  */
> +	("si_uid",	ctypes.c_uint)		#             __uid_t si_uid;     /* Real user ID of sending process.  */
>  	]				#           } _kill;
>  
>  
>  
>  # Type for data associated with a signal.
> -class sigval_t(Union):			# typedef union sigval
> +class sigval_t(ctypes.Union):			# typedef union sigval
>  	_fields_ = [			#   {
> -	("sival_int", c_int),		#     int sival_int;
> -	("sical_ptr", c_void_p),	#     void *sival_ptr;
> +	("sival_int", ctypes.c_int),		#     int sival_int;
> +	("sical_ptr", ctypes.c_void_p),	#     void *sival_ptr;
>  	]				#   } sigval_t;
>  
>  					#         /* POSIX.1b timers.  */
> -class _siginfo_t_U_timer(Structure):	#         struct
> +class _siginfo_t_U_timer(ctypes.Structure):	#         struct
>  	_fields_ = [			#           {
> -	("si_tid",	c_int),		#             int si_tid;         /* Timer ID.  */
> -	("si_overrun",	c_int),		#             int si_overrun;     /* Overrun count.  */
> +	("si_tid",	ctypes.c_int),		#             int si_tid;         /* Timer ID.  */
> +	("si_overrun",	ctypes.c_int),		#             int si_overrun;     /* Overrun count.  */
>  	("si_sigval",	sigval_t)	#             sigval_t si_sigval; /* Signal value.  */
>  	]				#           } _timer;
>  
>  
>  						#         /* POSIX.1b signals.  */
> -class _siginfo_t_U_rt(Structure):		#         struct
> +class _siginfo_t_U_rt(ctypes.Structure):		#         struct
>  	_fields_ = [				#           {
> -	("si_pid",	c_int),			#             __pid_t si_pid;     /* Sending process ID.  */
> -	("si_uid",	c_uint),		#             __uid_t si_uid;     /* Real user ID of sending process.  */
> +	("si_pid",	ctypes.c_int),			#             __pid_t si_pid;     /* Sending process ID.  */
> +	("si_uid",	ctypes.c_uint),		#             __uid_t si_uid;     /* Real user ID of sending process.  */
>  	("si_sigval",	sigval_t)		#             sigval_t si_sigval; /* Signal value.  */
>  	]					#           } _rt;
>  
>  
>  						#         /* SIGCHLD.  */
> -class _siginfo_t_U_sigchld(Structure):		#         struct
> +class _siginfo_t_U_sigchld(ctypes.Structure):		#         struct
>  	_fields_ = [				#           {
> -	("si_pid",	c_int),			#             __pid_t si_pid;     /* Which child.  */
> -	("si_uid",	c_uint),		#             __uid_t si_uid;     /* Real user ID of sending process.  */
> -	("si_status",	c_int),			#             int si_status;      /* Exit value or signal.  */
> -	("si_utime",	c_long),		#             __sigchld_clock_t si_utime;
> -	("si_stime",	c_long)			#             __sigchld_clock_t si_stime;
> +	("si_pid",	ctypes.c_int),			#             __pid_t si_pid;     /* Which child.  */
> +	("si_uid",	ctypes.c_uint),		#             __uid_t si_uid;     /* Real user ID of sending process.  */
> +	("si_status",	ctypes.c_int),			#             int si_status;      /* Exit value or signal.  */
> +	("si_utime",	ctypes.c_long),		#             __sigchld_clock_t si_utime;
> +	("si_stime",	ctypes.c_long)			#             __sigchld_clock_t si_stime;
>  	]					#           } _sigchld;
>  
>  						#         /* SIGILL, SIGFPE, SIGSEGV, SIGBUS.  */
> -class _siginfo_t_U_sigfault(Structure):		#         struct
> +class _siginfo_t_U_sigfault(ctypes.Structure):		#         struct
>  	_fields_ = [				#           {
> -	("si_addr",	c_void_p),		#             void *si_addr;      /* Faulting insn/memory ref.  */
> -	("si_addr_lsb",	c_short)		#             short int si_addr_lsb;      /* Valid LSB of the reported address.  */
> +	("si_addr",	ctypes.c_void_p),		#             void *si_addr;      /* Faulting insn/memory ref.  */
> +	("si_addr_lsb",	ctypes.c_short)		#             short int si_addr_lsb;      /* Valid LSB of the reported address.  */
>  	]					#           } _sigfault;
>  
>  						#         /* SIGPOLL.  */
> -class _siginfo_t_U_sigpoll(Structure):		#         struct
> +class _siginfo_t_U_sigpoll(ctypes.Structure):		#         struct
>  	_fields_ = [				#           {
> -	("si_band",	c_long),		#             long int si_band;   /* Band event for SIGPOLL.  */
> -	("si_fd",	c_int)			#             int si_fd;
> +	("si_band",	ctypes.c_long),		#             long int si_band;   /* Band event for SIGPOLL.  */
> +	("si_fd",	ctypes.c_int)			#             int si_fd;
>  	]					#           } _sigpoll;
>  
>  
>  						# 	        /* SIGSYS.  */
> -class _siginfo_t_U_sigsys(Structure):		#         struct
> +class _siginfo_t_U_sigsys(ctypes.Structure):		#         struct
>  	_fields_ = [				#           {
> -	("_call_addr",	c_void_p),		#             void *_call_addr;   /* Calling user insn.  */
> -	("_syscall",	c_int),			#             int _syscall;       /* Triggering system call number.  */
> -	("_arch",	c_uint)			#             unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
> +	("_call_addr",	ctypes.c_void_p),		#             void *_call_addr;   /* Calling user insn.  */
> +	("_syscall",	ctypes.c_int),			#             int _syscall;       /* Triggering system call number.  */
> +	("_arch",	ctypes.c_uint)			#             unsigned int _arch; /* AUDIT_ARCH_* of syscall.  */
>  	]					#           } _sigsys;
>  
>  
> -class _siginfo_t_U(Union):			#     union
> +class _siginfo_t_U(ctypes.Union):			#     union
>  	_fields_ = [				#       {
> -	("_pad",	c_int*_SI_PAD_SIZE),	#         int _pad[__SI_PAD_SIZE];
> +	("_pad",	ctypes.c_int*_SI_PAD_SIZE),	#         int _pad[__SI_PAD_SIZE];
>  						#
>  						#          /* kill().  */
>  	("_kill",	_siginfo_t_U_kill),	#         struct
> @@ -396,12 +396,12 @@ class _siginfo_t_U(Union):			#     union
>  						#           } _sigsys;
>  	]					#       } _sifields;
>  
> -class siginfo_t(Structure):		# typedef struct
> +class siginfo_t(ctypes.Structure):		# typedef struct
>  	_fields_ = [			#   {
> -	("si_signo",	c_int),		#     int si_signo;               /* Signal number.  */
> -	("si_errno",	c_int),		#     int si_errno;               /* If non-zero, an errno value associated with
> +	("si_signo",	ctypes.c_int),		#     int si_signo;               /* Signal number.  */
> +	("si_errno",	ctypes.c_int),		#     int si_errno;               /* If non-zero, an errno value associated with
>  					#                                    this signal, as defined in <errno.h>.  */
> -	("si_code",	c_int),		#     int si_code;                /* Signal code.  */
> +	("si_code",	ctypes.c_int),		#     int si_code;                /* Signal code.  */
>  					#
>  	("_sifields",	_siginfo_t_U)	#     union
>  					#       {
> @@ -467,30 +467,30 @@ class siginfo_t(Structure):		# typedef struct
>  
>  # xsave related.
>  
> -class ymmh_struct(Structure):		# struct ymmh_struct {
> +class ymmh_struct(ctypes.Structure):		# struct ymmh_struct {
>  	_fields_ = [
> -	("ymmh_space",	64*c_uint)	#         u32                             ymmh_space[64];
> +	("ymmh_space",	64*ctypes.c_uint)	#         u32                             ymmh_space[64];
>  	]				# } __packed;
>  
>  
> -class xsave_hdr_struct(Structure):	# struct xsave_hdr_struct {
> +class xsave_hdr_struct(ctypes.Structure):	# struct xsave_hdr_struct {
>  	_fields_ = [
> -	("xstate_bv",	c_ulonglong),	#         u64                             xstate_bv;
> -	("reserved1",	c_ulonglong*2),	#         u64                             reserved1[2];
> -	("reserved2",	c_ulonglong*5)	#         u64                             reserved2[5];
> +	("xstate_bv",	ctypes.c_ulonglong),	#         u64                             xstate_bv;
> +	("reserved1",	ctypes.c_ulonglong*2),	#         u64                             reserved1[2];
> +	("reserved2",	ctypes.c_ulonglong*5)	#         u64                             reserved2[5];
>  	]				# } __packed;
>  
>  
> -class i387_fxsave_struct(Structure):	# struct i387_fxsave_struct {
> +class i387_fxsave_struct(ctypes.Structure):	# struct i387_fxsave_struct {
>  	_fields_ = [
> -	("cwd",		c_ushort),	#         u16                             cwd; /* Control Word                    */
> -	("swd",		c_ushort),	#         u16                             swd; /* Status Word                     */
> -	("twd",		c_ushort),	#         u16                             twd; /* Tag Word                        */
> -	("fop",		c_ushort),	#         u16                             fop; /* Last Instruction Opcode         */
> +	("cwd",		ctypes.c_ushort),	#         u16                             cwd; /* Control Word                    */
> +	("swd",		ctypes.c_ushort),	#         u16                             swd; /* Status Word                     */
> +	("twd",		ctypes.c_ushort),	#         u16                             twd; /* Tag Word                        */
> +	("fop",		ctypes.c_ushort),	#         u16                             fop; /* Last Instruction Opcode         */
>  					#         union {
>  					#                 struct {
> -	("rip",		c_ulonglong),	#                         u64             rip; /* Instruction Pointer             */
> -	("rdp",		c_ulonglong),	#                         u64             rdp; /* Data Pointer                    */
> +	("rip",		ctypes.c_ulonglong),	#                         u64             rip; /* Instruction Pointer             */
> +	("rdp",		ctypes.c_ulonglong),	#                         u64             rdp; /* Data Pointer                    */
>  					#                 };
>  					#                 struct {
>  					#                         u32             fip; /* FPU IP Offset                   */
> @@ -499,26 +499,26 @@ class i387_fxsave_struct(Structure):	# struct i387_fxsave_struct {
>  					#                         u32             fos; /* FPU Operand Selector            */
>  					#                 };
>  					#         };
> -	("mxcsr",	c_uint),	#         u32                             mxcsr;          /* MXCSR Register State */
> -	("mxcsr_mask",	c_uint),	#         u32                             mxcsr_mask;     /* MXCSR Mask           */
> +	("mxcsr",	ctypes.c_uint),	#         u32                             mxcsr;          /* MXCSR Register State */
> +	("mxcsr_mask",	ctypes.c_uint),	#         u32                             mxcsr_mask;     /* MXCSR Mask           */
>  					#
>  					#         /* 8*16 bytes for each FP-reg = 128 bytes                               */
> -	("st_space",	c_uint*32),	#         u32                             st_space[32];
> +	("st_space",	ctypes.c_uint*32),	#         u32                             st_space[32];
>  #
>  					#         /* 16*16 bytes for each XMM-reg = 256 bytes                             */
> -	("xmm_space",	c_uint*64),	#         u32                             xmm_space[64];
> +	("xmm_space",	ctypes.c_uint*64),	#         u32                             xmm_space[64];
>  					#
> -	("padding",	c_uint*12),	#         u32                             padding[12];
> +	("padding",	ctypes.c_uint*12),	#         u32                             padding[12];
>  					#
>  					#         union {
> -	("padding1",	c_uint*12)	#                 u32                     padding1[12];
> +	("padding1",	ctypes.c_uint*12)	#                 u32                     padding1[12];
>  					#                 u32                     sw_reserved[12];
>  					#         };
>  					#
>  	]				# } __aligned(16);
>  
>  
> -class elf_xsave_struct(Structure):		# struct xsave_struct {
> +class elf_xsave_struct(ctypes.Structure):		# struct xsave_struct {
>  	_fields_ = [
>  	("i387",	i387_fxsave_struct),	#         struct i387_fxsave_struct       i387;
>  	("xsave_hdr",	xsave_hdr_struct),	#         struct xsave_hdr_struct         xsave_hdr;
> diff --git a/lib/py/criu.py b/lib/py/criu.py
> index 9465eefa..de1a214a 100644
> --- a/lib/py/criu.py
> +++ b/lib/py/criu.py
> @@ -2,11 +2,8 @@
>  
>  import socket
>  import errno
> -import subprocess
>  import fcntl
>  import os
> -import signal
> -import sys
>  import struct
>  
>  import pycriu.rpc_pb2 as rpc
> diff --git a/lib/py/images/images.py b/lib/py/images/images.py
> index eec25f5a..217105fa 100644
> --- a/lib/py/images/images.py
> +++ b/lib/py/images/images.py
> @@ -39,16 +39,13 @@
>  #
>  import io
>  import base64
> -import google
>  import struct
>  import os
> -import sys
> -import json
> -from . import pb2dict
>  import array
>  
>  from . import magic
> -from .pb import *
> +from . import pb

https://ci.openvz.org/job/CRIU/job/CRIU-crit/job/criu-dev/4301/console

$ ./crit/crit show test/dump/zdtm/static/msgque/43/1/ipcns-msg-10.img 
Traceback (most recent call last):
  File "./crit/crit", line 6, in <module>
    cli.main()
  File "/root/git/main/criu/crit/pycriu/cli.py", line 334, in main
    opts["func"](opts)
  File "/root/git/main/criu/crit/pycriu/cli.py", line 28, in decode
    img = pycriu.images.load(inf(opts), opts['pretty'], opts['nopl'])
  File "/root/git/main/criu/crit/pycriu/images/images.py", line 542, in load
    image['entries'] = handler.load(f, pretty, no_payload)
  File "/root/git/main/criu/crit/pycriu/images/images.py", line 118, in load
    entry['extra'] = self.extra_handler.load(f, pb)
  File "/root/git/main/criu/crit/pycriu/images/images.py", line 387, in load
    msg = pb.ipc_msg()
AttributeError: 'ipc_msg_entry' object has no attribute 'ipc_msg'

The name pb is used for a variable and for a module.

> +from . import pb2dict
>  
>  if "encodebytes" not in dir(base64):
>  	base64.encodebytes = base64.encodestring
> @@ -187,16 +184,16 @@ class pagemap_handler:
>  	def load(self, f, pretty = False, no_payload = False):
>  		entries = []
>  
> -		pb = pagemap_head()
> +		pbuff = pb.pagemap_head()
>  		while True:
>  			buf = f.read(4)
>  			if buf == b'':
>  				break
>  			size, = struct.unpack('i', buf)
> -			pb.ParseFromString(f.read(size))
> -			entries.append(pb2dict.pb2dict(pb, pretty))
> +			pbuff.ParseFromString(f.read(size))
> +			entries.append(pb2dict.pb2dict(pbuff, pretty))
>  
> -			pb = pagemap_entry()
> +			pbuff = pb.pagemap_entry()
>  
>  		return entries
>  
> @@ -205,15 +202,15 @@ class pagemap_handler:
>  		return self.load(f, pretty)
>  
>  	def dump(self, entries, f):
> -		pb = pagemap_head()
> +		pbuff = pb.pagemap_head()
>  		for item in entries:
> -			pb2dict.dict2pb(item, pb)
> -			pb_str = pb.SerializeToString()
> +			pb2dict.dict2pb(item, pbuff)
> +			pb_str = pbuff.SerializeToString()
>  			size = len(pb_str)
>  			f.write(struct.pack('i', size))
>  			f.write(pb_str)
>  
> -			pb = pagemap_entry()
> +			pbuff = pb.pagemap_entry()
>  
>  	def dumps(self, entries):
>  		f = io.BytesIO('')
> @@ -228,7 +225,7 @@ class ghost_file_handler:
>  	def load(self, f, pretty = False, no_payload = False):
>  		entries = []
>  
> -		gf = ghost_file_entry()
> +		gf = pb.ghost_file_entry()
>  		buf = f.read(4)
>  		size, = struct.unpack('i', buf)
>  		gf.ParseFromString(f.read(size))
> @@ -237,7 +234,7 @@ class ghost_file_handler:
>  		if gf.chunks:
>  			entries.append(g_entry)
>  			while True:
> -				gc = ghost_chunk_entry()
> +				gc = pb.ghost_chunk_entry()
>  				buf = f.read(4)
>  				if buf == '':
>  					break
> @@ -263,19 +260,19 @@ class ghost_file_handler:
>  		return self.load(f, pretty)
>  
>  	def dump(self, entries, f):
> -		pb = ghost_file_entry()
> +		pbuff = pb.ghost_file_entry()
>  		item = entries.pop(0)
> -		pb2dict.dict2pb(item, pb)
> -		pb_str = pb.SerializeToString()
> +		pb2dict.dict2pb(item, pbuff)
> +		pb_str = pbuff.SerializeToString()
>  		size = len(pb_str)
>  		f.write(struct.pack('i', size))
>  		f.write(pb_str)
>  
> -		if pb.chunks:
> +		if pbuff.chunks:
>  			for item in entries:
> -				pb = ghost_chunk_entry()
> -				pb2dict.dict2pb(item, pb)
> -				pb_str = pb.SerializeToString()
> +				pbuff = pb.ghost_chunk_entry()
> +				pb2dict.dict2pb(item, pbuff)
> +				pb_str = pbuff.SerializeToString()
>  				size = len(pb_str)
>  				f.write(struct.pack('i', size))
>  				f.write(pb_str)
> @@ -387,7 +384,7 @@ class ipc_msg_queue_handler:
>  			if buf == '':
>  				break
>  			size, = struct.unpack('i', buf)
> -			msg = ipc_msg()
> +			msg = pb.ipc_msg()
>  			msg.ParseFromString(f.read(size))
>  			rounded = round_up(msg.msize, sizeof_u64)
>  			data = f.read(msg.msize)
> @@ -399,7 +396,7 @@ class ipc_msg_queue_handler:
>  	def dump(self, extra, f, pb):
>  		entry = pb2dict.pb2dict(pb)
>  		for i in range (0, len(extra), 2):
> -			msg = ipc_msg()
> +			msg = pb.ipc_msg()
>  			pb2dict.dict2pb(extra[i], msg)
>  			msg_str = msg.SerializeToString()
>  			size = len(msg_str)
> @@ -418,7 +415,7 @@ class ipc_msg_queue_handler:
>  			if buf == '':
>  				break
>  			size, = struct.unpack('i', buf)
> -			msg = ipc_msg()
> +			msg = pb.ipc_msg()
>  			msg.ParseFromString(f.read(size))
>  			rounded = round_up(msg.msize, sizeof_u64)
>  			f.seek(rounded, os.SEEK_CUR)
> @@ -452,65 +449,65 @@ class ipc_shm_handler:
>  
>  
>  handlers = {
> -	'INVENTORY'		: entry_handler(inventory_entry),
> -	'CORE'			: entry_handler(core_entry),
> -	'IDS'			: entry_handler(task_kobj_ids_entry),
> -	'CREDS'			: entry_handler(creds_entry),
> -	'UTSNS'			: entry_handler(utsns_entry),
> -	'IPC_VAR'		: entry_handler(ipc_var_entry),
> -	'FS'			: entry_handler(fs_entry),
> +	'INVENTORY'		: entry_handler(pb.inventory_entry),
> +	'CORE'			: entry_handler(pb.core_entry),
> +	'IDS'			: entry_handler(pb.task_kobj_ids_entry),
> +	'CREDS'			: entry_handler(pb.creds_entry),
> +	'UTSNS'			: entry_handler(pb.utsns_entry),
> +	'IPC_VAR'		: entry_handler(pb.ipc_var_entry),
> +	'FS'			: entry_handler(pb.fs_entry),
>  	'GHOST_FILE'		: ghost_file_handler(),
> -	'MM'			: entry_handler(mm_entry),
> -	'CGROUP'		: entry_handler(cgroup_entry),
> -	'TCP_STREAM'		: entry_handler(tcp_stream_entry, tcp_stream_extra_handler()),
> -	'STATS'			: entry_handler(stats_entry),
> +	'MM'			: entry_handler(pb.mm_entry),
> +	'CGROUP'		: entry_handler(pb.cgroup_entry),
> +	'TCP_STREAM'		: entry_handler(pb.tcp_stream_entry, tcp_stream_extra_handler()),
> +	'STATS'			: entry_handler(pb.stats_entry),
>  	'PAGEMAP'		: pagemap_handler(), # Special one
> -	'PSTREE'		: entry_handler(pstree_entry),
> -	'REG_FILES'		: entry_handler(reg_file_entry),
> -	'NS_FILES'		: entry_handler(ns_file_entry),
> -	'EVENTFD_FILE'		: entry_handler(eventfd_file_entry),
> -	'EVENTPOLL_FILE'	: entry_handler(eventpoll_file_entry),
> -	'EVENTPOLL_TFD'		: entry_handler(eventpoll_tfd_entry),
> -	'SIGNALFD'		: entry_handler(signalfd_entry),
> -	'TIMERFD'		: entry_handler(timerfd_entry),
> -	'INOTIFY_FILE'		: entry_handler(inotify_file_entry),
> -	'INOTIFY_WD'		: entry_handler(inotify_wd_entry),
> -	'FANOTIFY_FILE'		: entry_handler(fanotify_file_entry),
> -	'FANOTIFY_MARK'		: entry_handler(fanotify_mark_entry),
> -	'VMAS'			: entry_handler(vma_entry),
> -	'PIPES'			: entry_handler(pipe_entry),
> -	'FIFO'			: entry_handler(fifo_entry),
> -	'SIGACT'		: entry_handler(sa_entry),
> -	'NETLINK_SK'		: entry_handler(netlink_sk_entry),
> -	'REMAP_FPATH'		: entry_handler(remap_file_path_entry),
> -	'MNTS'			: entry_handler(mnt_entry),
> -	'TTY_FILES'		: entry_handler(tty_file_entry),
> -	'TTY_INFO'		: entry_handler(tty_info_entry),
> -	'TTY_DATA'		: entry_handler(tty_data_entry),
> -	'RLIMIT'		: entry_handler(rlimit_entry),
> -	'TUNFILE'		: entry_handler(tunfile_entry),
> -	'EXT_FILES'		: entry_handler(ext_file_entry),
> -	'IRMAP_CACHE'		: entry_handler(irmap_cache_entry),
> -	'FILE_LOCKS'		: entry_handler(file_lock_entry),
> -	'FDINFO'		: entry_handler(fdinfo_entry),
> -	'UNIXSK'		: entry_handler(unix_sk_entry),
> -	'INETSK'		: entry_handler(inet_sk_entry),
> -	'PACKETSK'		: entry_handler(packet_sock_entry),
> -	'ITIMERS'		: entry_handler(itimer_entry),
> -	'POSIX_TIMERS'		: entry_handler(posix_timer_entry),
> -	'NETDEV'		: entry_handler(net_device_entry),
> -	'PIPES_DATA'		: entry_handler(pipe_data_entry, pipes_data_extra_handler()),
> -	'FIFO_DATA'		: entry_handler(pipe_data_entry, pipes_data_extra_handler()),
> -	'SK_QUEUES'		: entry_handler(sk_packet_entry, sk_queues_extra_handler()),
> -	'IPCNS_SHM'		: entry_handler(ipc_shm_entry, ipc_shm_handler()),
> -	'IPCNS_SEM'		: entry_handler(ipc_sem_entry, ipc_sem_set_handler()),
> -	'IPCNS_MSG'		: entry_handler(ipc_msg_entry, ipc_msg_queue_handler()),
> -	'NETNS'			: entry_handler(netns_entry),
> -	'USERNS'		: entry_handler(userns_entry),
> -	'SECCOMP'		: entry_handler(seccomp_entry),
> -	'AUTOFS'		: entry_handler(autofs_entry),
> -	'FILES'                 : entry_handler(file_entry),
> -	'CPUINFO'		: entry_handler(cpuinfo_entry),
> +	'PSTREE'		: entry_handler(pb.pstree_entry),
> +	'REG_FILES'		: entry_handler(pb.reg_file_entry),
> +	'NS_FILES'		: entry_handler(pb.ns_file_entry),
> +	'EVENTFD_FILE'		: entry_handler(pb.eventfd_file_entry),
> +	'EVENTPOLL_FILE'	: entry_handler(pb.eventpoll_file_entry),
> +	'EVENTPOLL_TFD'		: entry_handler(pb.eventpoll_tfd_entry),
> +	'SIGNALFD'		: entry_handler(pb.signalfd_entry),
> +	'TIMERFD'		: entry_handler(pb.timerfd_entry),
> +	'INOTIFY_FILE'		: entry_handler(pb.inotify_file_entry),
> +	'INOTIFY_WD'		: entry_handler(pb.inotify_wd_entry),
> +	'FANOTIFY_FILE'		: entry_handler(pb.fanotify_file_entry),
> +	'FANOTIFY_MARK'		: entry_handler(pb.fanotify_mark_entry),
> +	'VMAS'			: entry_handler(pb.vma_entry),
> +	'PIPES'			: entry_handler(pb.pipe_entry),
> +	'FIFO'			: entry_handler(pb.fifo_entry),
> +	'SIGACT'		: entry_handler(pb.sa_entry),
> +	'NETLINK_SK'		: entry_handler(pb.netlink_sk_entry),
> +	'REMAP_FPATH'		: entry_handler(pb.remap_file_path_entry),
> +	'MNTS'			: entry_handler(pb.mnt_entry),
> +	'TTY_FILES'		: entry_handler(pb.tty_file_entry),
> +	'TTY_INFO'		: entry_handler(pb.tty_info_entry),
> +	'TTY_DATA'		: entry_handler(pb.tty_data_entry),
> +	'RLIMIT'		: entry_handler(pb.rlimit_entry),
> +	'TUNFILE'		: entry_handler(pb.tunfile_entry),
> +	'EXT_FILES'		: entry_handler(pb.ext_file_entry),
> +	'IRMAP_CACHE'		: entry_handler(pb.irmap_cache_entry),
> +	'FILE_LOCKS'		: entry_handler(pb.file_lock_entry),
> +	'FDINFO'		: entry_handler(pb.fdinfo_entry),
> +	'UNIXSK'		: entry_handler(pb.unix_sk_entry),
> +	'INETSK'		: entry_handler(pb.inet_sk_entry),
> +	'PACKETSK'		: entry_handler(pb.packet_sock_entry),
> +	'ITIMERS'		: entry_handler(pb.itimer_entry),
> +	'POSIX_TIMERS'		: entry_handler(pb.posix_timer_entry),
> +	'NETDEV'		: entry_handler(pb.net_device_entry),
> +	'PIPES_DATA'		: entry_handler(pb.pipe_data_entry, pipes_data_extra_handler()),
> +	'FIFO_DATA'		: entry_handler(pb.pipe_data_entry, pipes_data_extra_handler()),
> +	'SK_QUEUES'		: entry_handler(pb.sk_packet_entry, sk_queues_extra_handler()),
> +	'IPCNS_SHM'		: entry_handler(pb.ipc_shm_entry, ipc_shm_handler()),
> +	'IPCNS_SEM'		: entry_handler(pb.ipc_sem_entry, ipc_sem_set_handler()),
> +	'IPCNS_MSG'		: entry_handler(pb.ipc_msg_entry, ipc_msg_queue_handler()),
> +	'NETNS'			: entry_handler(pb.netns_entry),
> +	'USERNS'		: entry_handler(pb.userns_entry),
> +	'SECCOMP'		: entry_handler(pb.seccomp_entry),
> +	'AUTOFS'		: entry_handler(pb.autofs_entry),
> +	'FILES'                 : entry_handler(pb.file_entry),
> +	'CPUINFO'		: entry_handler(pb.cpuinfo_entry),
>  	}
>  
>  def __rhandler(f):
> diff --git a/scripts/magic-gen.py b/scripts/magic-gen.py
> index 14a155a4..7088f634 100755
> --- a/scripts/magic-gen.py
> +++ b/scripts/magic-gen.py
> @@ -1,6 +1,5 @@
>  #!/bin/env python2
> -import os, sys
> -import struct
> +import sys
>  
>  # This program parses criu magic.h file and produces
>  # magic.py with all *_MAGIC constants except RAW and V1.
> diff --git a/soccr/test/tcp-test.py b/soccr/test/tcp-test.py
> index b7e8ee6d..f401fc06 100755
> --- a/soccr/test/tcp-test.py
> +++ b/soccr/test/tcp-test.py
> @@ -1,6 +1,6 @@
>  #!/usr/bin/env python2
>  
> -import os, sys, socket
> +import sys, socket
>  import hashlib
>  
>  sk = socket.fromfd(3, socket.AF_INET, socket.SOCK_STREAM)
> diff --git a/test/crit-recode.py b/test/crit-recode.py
> index 0cb3341d..441f7757 100755
> --- a/test/crit-recode.py
> +++ b/test/crit-recode.py
> @@ -5,7 +5,6 @@ import pycriu
>  import sys
>  import os
>  import subprocess
> -import json
>  
>  find = subprocess.Popen(['find', 'test/dump/', '-size', '+0', '-name', '*.img'],
>  		stdout = subprocess.PIPE)
> diff --git a/test/exhaustive/unix.py b/test/exhaustive/unix.py
> index b3f40620..24d245d8 100755
> --- a/test/exhaustive/unix.py
> +++ b/test/exhaustive/unix.py
> @@ -4,7 +4,6 @@ import sys
>  import os
>  import socket
>  import argparse
> -import time
>  import subprocess
>  import signal
>  import fcntl
> diff --git a/test/others/rpc/errno.py b/test/others/rpc/errno.py
> index f2a29914..20937a0b 100755
> --- a/test/others/rpc/errno.py
> +++ b/test/others/rpc/errno.py
> @@ -1,7 +1,7 @@
>  #!/usr/bin/python2
>  # Test criu errno
>  
> -import socket, os, imp, sys, errno
> +import socket, os, errno
>  import rpc_pb2 as rpc
>  import argparse
>  
> diff --git a/test/others/rpc/ps_test.py b/test/others/rpc/ps_test.py
> index a8f9d825..d40dbf09 100755
> --- a/test/others/rpc/ps_test.py
> +++ b/test/others/rpc/ps_test.py
> @@ -1,6 +1,6 @@
>  #!/usr/bin/python2
>  
> -import socket, os, imp, sys, errno
> +import socket, os, sys, errno
>  import rpc_pb2 as rpc
>  import argparse
>  
> diff --git a/test/others/rpc/restore-loop.py b/test/others/rpc/restore-loop.py
> index 1ea9bf32..2577a994 100755
> --- a/test/others/rpc/restore-loop.py
> +++ b/test/others/rpc/restore-loop.py
> @@ -1,6 +1,6 @@
>  #!/usr/bin/python2
>  
> -import socket, os, imp, sys
> +import socket, os, sys
>  import rpc_pb2 as rpc
>  import argparse
>  
> diff --git a/test/others/rpc/test.py b/test/others/rpc/test.py
> index 63eef378..56f03b03 100755
> --- a/test/others/rpc/test.py
> +++ b/test/others/rpc/test.py
> @@ -1,6 +1,6 @@
>  #!/usr/bin/python2
>  
> -import socket, os, imp, sys
> +import socket, os, sys
>  import rpc_pb2 as rpc
>  import argparse
>  
> diff --git a/test/others/rpc/version.py b/test/others/rpc/version.py
> index 93975f4b..7c2cc2cd 100755
> --- a/test/others/rpc/version.py
> +++ b/test/others/rpc/version.py
> @@ -3,7 +3,6 @@
>  import socket
>  import sys
>  import rpc_pb2 as rpc
> -import argparse
>  import subprocess
>  
>  print('Connecting to CRIU in swrk mode to check the version:')
> diff --git a/test/others/shell-job/run.py b/test/others/shell-job/run.py
> index 9e87d12e..4f4dfade 100755
> --- a/test/others/shell-job/run.py
> +++ b/test/others/shell-job/run.py
> @@ -1,6 +1,6 @@
>  #!/usr/bin/env python2
>  import os, pty, sys, subprocess
> -import termios, fcntl, time, signal
> +import termios, fcntl, time
>  
>  cr_bin = "../../../criu/criu"
>  
> @@ -62,4 +62,3 @@ pid, status = os.wait()
>  if status != 0:
>      print("A child process exited with %d" % status)
>      sys.exit(1)
> -
> -- 
> 2.17.1
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu



More information about the CRIU mailing list