Pylint output

Please keep in mind, that linting is, at it’s heart, pendanticism so boneheaded, even a computer can do it. Don’t take what the linter tells you as a command ;). If you look at the Makefile in the docs directory, you will see that I have dissabled many warnings. Some of the warnings, like too many local variables, are quite absurd!

I have removed pylint’s “Global Evaluation” field from the output. This is because such ratings are truely misguided. Code quality cannot be analized by a linter.

However, in Python, linting can be helpfull to point out the most trivial mistakes. It also provides us some nice statistics about how many lines of code/modules/classes subuser has. This linter gets run every time the website is updated. It was last run:

2017-02-07 22:09:59

  • Module subuserlib.test
  • W: 14, 2: Reimport ‘os’ (imported line 8) (reimported)
  • Module subuserlib.removeOldImages
  • E: 7, 0: invalid syntax (syntax-error)
  • Module subuserlib.permissions
  • W: 11, 0: Unused import os (unused-import)
  • Module subuserlib.verify
  • W: 21, 0: Dangerous default value [] as argument (dangerous-default-value)
  • W: 85, 2: Redefining name ‘exceptions’ from outer scope (line 18) (redefined-outer-name)
  • W:107,34: Unused argument ‘user’ (unused-argument)
  • E:180, 9: Undefined variable ‘FileNotFoundError’ (undefined-variable)
  • W: 18, 0: Unused import exceptions (unused-import)
  • Module subuserlib.subprocessExtras
  • W: 12, 0: Unused import subuserlib (unused-import)
  • Module subuserlib.lock
  • W: 17,30: Unused argument ‘frame’ (unused-argument)
  • W: 17,22: Unused argument ‘signum’ (unused-argument)
  • W: 11, 0: Unused import errno (unused-import)
  • W: 8, 0: Unused import os (unused-import)
  • Module subuserlib.print
  • W: 10, 0: TODO, utf-16 should also be supported. (fixme)
  • E: 14, 6: Instance of ‘file’ has no ‘buffer’ member (no-member)
  • Module subuserlib.version
  • W: 13, 0: Unused import DockerDaemon (unused-import)
  • Module subuserlib.update
  • W: 13, 0: Redefining built-in ‘all’ (redefined-builtin)
  • W: 20, 2: Redefining name ‘subusers’ from outer scope (line 24) (redefined-outer-name)
  • W: 24,18: Redefining name ‘subusers’ from outer scope (line 24) (redefined-outer-name)
  • E: 39, 2: No name ‘registry’ in module ‘subuserlib.classes’ (no-name-in-module)
  • F: 39, 2: Unable to import ‘subuserlib.classes.registry’ (invalid syntax (<string>, line 18)) (import-error)
  • Module subuserlib.subuser
  • W: 48, 4: No exception type(s) specified (bare-except)
  • W: 16, 0: Unused import exceptions (unused-import)
  • Module subuserlib.loadMultiFallbackJsonConfigFile
  • W: 11, 0: Unused import subuserlib (unused-import)
  • Module subuserlib.executablePath
  • W: 27, 2: Using global for ‘programs’ but no assignment is done (global-variable-not-assigned)
  • W: 40,19: Redefining built-in ‘list’ (redefined-builtin)
  • Module subuserlib.paths
  • F: 39, 4: Unable to import ‘pkg_resources’ (import-error)
  • Module subuserlib.docker
  • W: 23, 2: Using global for ‘executable’ but no assignment is done (global-variable-not-assigned)
  • W: 36, 2: Using the global statement (global-statement)
  • W: 37, 2: Using the global statement (global-statement)
  • W: 65,22: Redefining built-in ‘hash’ (redefined-builtin)
  • W: 11, 0: Unused import grp (unused-import)
  • W: 10, 0: Unused import getpass (unused-import)
  • Module subuserlib.classes.service
  • W: 15, 0: Unused import shutil (unused-import)
  • Module subuserlib.classes.config
  • W: 14, 2: __init__ method from base class ‘dict’ is not called (super-init-not-called)
  • Module subuserlib.classes.endUser
  • C:112, 0: Trailing whitespace (trailing-whitespace)
  • E:136,13: Undefined variable ‘FileNotFoundError’ (undefined-variable)
  • W: 14, 0: Unused import paths (unused-import)
  • W: 9, 0: Unused import sys (unused-import)
  • Module subuserlib.classes.imageSource
  • E: 17, 0: invalid syntax (syntax-error)
  • Module subuserlib.classes.repository
  • W:157, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)
  • E: 13, 0: No name ‘imageSource’ in module ‘subuserlib.classes’ (no-name-in-module)
  • F: 13, 0: Unable to import ‘subuserlib.classes.imageSource’ (invalid syntax (<string>, line 17)) (import-error)
  • R: 19, 0: Too many instance attributes (8/7) (too-many-instance-attributes)
  • W: 20, 2: __init__ method from base class ‘dict’ is not called (super-init-not-called)
  • W:200,11: Catching too general exception Exception (broad-except)
  • Module subuserlib.classes.repositories
  • W: 21, 0: TODO rename and document these variables (fixme)
  • W: 26, 0: TODO how does this work on windows? (fixme)
  • R:128, 2: Method could be a function (no-self-use)
  • Module subuserlib.classes.fileStructure
  • W: 98, 0: TODO - what about symlinks? (fixme)
  • W: 99, 0: TODO - what about devices? (fixme)
  • W:100, 0: TODO - what about hard link loops? (fixme)
  • W:101, 0: TODO - what about sockets? (fixme)
  • W:102, 0: TODO - what about named pipes? (fixme)
  • Module subuserlib.classes.subusers
  • E: 16, 0: No name ‘imageSource’ in module ‘subuserlib.classes’ (no-name-in-module)
  • F: 16, 0: Unable to import ‘subuserlib.classes.imageSource’ (invalid syntax (<string>, line 17)) (import-error)
  • W: 22, 2: __init__ method from base class ‘dict’ is not called (super-init-not-called)
  • W: 66,19: Cell variable subuserAttributes defined in loop (cell-var-from-loop)
  • W: 67,17: Cell variable subuserAttributes defined in loop (cell-var-from-loop)
  • W: 11, 0: Unused import sys (unused-import)
  • W: 16, 0: Unused import subuserlib (unused-import)
  • Module subuserlib.classes.installationTask
  • R: 58, 2: Too many return statements (8/6) (too-many-return-statements)
  • W: 8, 0: Unused import sys (unused-import)
  • Module subuserlib.classes.uhttpConnection
  • F: 13, 2: Unable to import ‘http.client’ (import-error)
  • Module subuserlib.classes.registry
  • E: 18, 0: invalid syntax (syntax-error)
  • Module subuserlib.classes.gitRepository
  • W:121, 2: Dangerous default value [] as argument (dangerous-default-value)
  • W:159, 2: Dangerous default value [] as argument (dangerous-default-value)
  • W:188, 2: Dangerous default value [] as argument (dangerous-default-value)
  • W:188, 2: Arguments number differs from overridden method (arguments-differ)
  • W: 9, 0: Unused import tempfile (unused-import)
  • Module subuserlib.classes.subuser
  • W:204, 0: TODO clean this up so that we aren’t forwarding arguments in needless fluff. (fixme)
  • E: 19, 0: No name ‘x11Bridge’ in module ‘subuserlib.classes.subuserSubmodules.run’ (no-name-in-module)
  • F: 19, 0: Unable to import ‘subuserlib.classes.subuserSubmodules.run.x11Bridge’ (invalid syntax (<string>, line 264)) (import-error)
  • R: 23, 0: Too many instance attributes (16/7) (too-many-instance-attributes)
  • Module subuserlib.classes.user
  • E: 13, 0: No name ‘registry’ in module ‘subuserlib.classes’ (no-name-in-module)
  • R: 21, 0: Too many instance attributes (8/7) (too-many-instance-attributes)
  • W: 71,24: Redefining name ‘registry’ from outer scope (line 13) (redefined-outer-name)
  • W: 8, 0: Unused import getpass (unused-import)
  • W: 19, 0: Unused import paths (unused-import)
  • W: 10, 0: Unused import sys (unused-import)
  • W: 11, 0: Unused import pwd (unused-import)
  • Module subuserlib.classes.installedImages
  • W: 18, 2: __init__ method from base class ‘dict’ is not called (super-init-not-called)
  • Module subuserlib.classes.permissionsAccepters.acceptPermissionsAtCLI
  • E: 13, 0: invalid syntax (syntax-error)
  • Module subuserlib.classes.docker.mockDockerDaemon
  • E: 14, 0: invalid syntax (syntax-error)
  • Module subuserlib.classes.docker.container
  • E: 42,30: Module ‘urllib’ has no ‘parse’ member (no-member)
  • Module subuserlib.classes.docker.dockerDaemon
  • F: 19, 2: Unable to import ‘http.client’ (import-error)
  • E:114,13: Undefined variable ‘PermissionError’ (undefined-variable)
  • E:120,28: Module ‘urllib’ has no ‘parse’ member (no-member)
  • E:178,28: Module ‘urllib’ has no ‘parse’ member (no-member)
  • R:226, 2: Method could be a function (no-self-use)
  • E:250, 2: No name ‘mockDockerDaemon’ in module ‘subuserlib.classes.docker’ (no-name-in-module)
  • F:250, 2: Unable to import ‘subuserlib.classes.docker.mockDockerDaemon’ (invalid syntax (<string>, line 14)) (import-error)
  • W: 22, 2: Unused import StringIO (unused-import)
  • Module subuserlib.classes.subuserSubmodules.run.runReadyImage
  • W: 8, 0: Unused import os (unused-import)
  • Module subuserlib.classes.subuserSubmodules.run.x11Bridge
  • E:264, 0: invalid syntax (syntax-error)
  • Module subuserlib.classes.subuserSubmodules.run.runtimeCache
  • W: 15, 2: __init__ method from base class ‘dict’ is not called (super-init-not-called)
  • Module subuserlib.classes.subuserSubmodules.run.runtime
  • R: 26, 0: Too many instance attributes (10/7) (too-many-instance-attributes)
  • R: 70, 2: Method could be a function (no-self-use)
  • R: 86, 2: Method could be a function (no-self-use)
  • R: 99, 2: Method could be a function (no-self-use)
  • E:156,40: Undefined variable ‘getSubuserDir’ (undefined-variable)
  • Module subuserlib.builtInCommands.list
  • E: 13, 0: invalid syntax (syntax-error)
  • Module subuserlib.builtInCommands.repository
  • W: 59, 0: Bad indentation. Found 5 spaces, expected 4 (bad-indentation)
  • Module subuserlib.builtInCommands.ps
  • W: 9, 0: Unused import uuid (unused-import)
  • W: 8, 0: Unused import os (unused-import)
  • W: 5, 0: Unused import sys (unused-import)
  • W: 7, 0: Unused import json (unused-import)
  • Module subuserlib.builtInCommands.remove-old-images
  • E: 9, 0: No name ‘removeOldImages’ in module ‘subuserlib’ (no-name-in-module)
  • F: 9, 0: Unable to import ‘subuserlib.removeOldImages’ (invalid syntax (<string>, line 7)) (import-error)
  • E: 37, 4: Module ‘subuserlib’ has no ‘removeOldImages’ member (no-member)
  • Module subuserlib.builtInCommands.pkg
  • E: 68, 0: invalid syntax (syntax-error)
  • Module subuserlib.builtInCommands.version
  • W: 5, 0: Unused import sys (unused-import)
  • Module subuserlib.builtInCommands.repair
  • E: 11, 0: No name ‘acceptPermissionsAtCLI’ in module ‘subuserlib.classes.permissionsAccepters’ (no-name-in-module)
  • F: 11, 0: Unable to import ‘subuserlib.classes.permissionsAccepters.acceptPermissionsAtCLI’ (invalid syntax (<string>, line 13)) (import-error)
  • W: 4, 0: Unused import sys (unused-import)
  • Module subuserlib.builtInCommands.run
  • C: 32, 0: Old-style class defined. (old-style-class)
  • Module subuserlib.builtInCommands.print-dependency-info
  • E: 12, 0: invalid syntax (syntax-error)
  • Module subuserlib.builtInCommands.describe
  • E: 12, 0: invalid syntax (syntax-error)
  • Module subuserlib.builtInCommands.registry
  • R: 37, 0: Too many statements (54/50) (too-many-statements)
  • Module subuserlib.builtInCommands.update
  • E: 11, 0: No name ‘acceptPermissionsAtCLI’ in module ‘subuserlib.classes.permissionsAccepters’ (no-name-in-module)
  • F: 11, 0: Unable to import ‘subuserlib.classes.permissionsAccepters.acceptPermissionsAtCLI’ (invalid syntax (<string>, line 13)) (import-error)
  • Module subuserlib.builtInCommands.subuser
  • W:108, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)
  • W:109, 0: Bad indentation. Found 10 spaces, expected 8 (bad-indentation)
  • E: 9, 0: No name ‘acceptPermissionsAtCLI’ in module ‘subuserlib.classes.permissionsAccepters’ (no-name-in-module)
  • F: 9, 0: Unable to import ‘subuserlib.classes.permissionsAccepters.acceptPermissionsAtCLI’ (invalid syntax (<string>, line 13)) (import-error)
  • W: 6, 0: Unused import os (unused-import)
  • R: 19, 0: Abstract class not referenced (abstract-class-not-used)
  • Module subuserlib.classes.permissionsAccepters.permissionsAccepter
  • R: 13, 0: Abstract class not referenced (abstract-class-not-used)
  • R: 1, 0: Cyclic import (subuserlib.classes.installationTask -> subuserlib.verify) (cyclic-import)
  • R: 1, 0: Cyclic import (subuserlib.classes.docker.dockerDaemon -> subuserlib.test -> subuserlib.classes.user) (cyclic-import)
  • R: 1, 0: Cyclic import (subuserlib.classes.user -> subuserlib.test) (cyclic-import)
  • R: 1, 0: Cyclic import (subuserlib.classes.docker.dockerDaemon -> subuserlib.test -> subuserlib.classes.user -> subuserlib.classes.installedImages -> subuserlib.classes.installedImage) (cyclic-import)
  • R: 1, 0: Cyclic import (subuserlib.classes.docker.dockerDaemon -> subuserlib.docker -> subuserlib.subprocessExtras -> subuserlib.test -> subuserlib.classes.user) (cyclic-import)
  • R: 1, 0: Cyclic import (subuserlib.classes.endUser -> subuserlib.test -> subuserlib.classes.user) (cyclic-import)
  • R: 1, 0: Similar lines in 2 files

==subuserlib.classes.docker.container:23 ==subuserlib.classes.docker.dockerDaemon:219

if not response.status == 200:
response.read() # Read the response and discard it to prevent the server from getting locked up: http://stackoverflow.com/questions/3231543/python-httplib-responsenotready return None
else:
return json.loads(response.read().decode(“utf-8”))

(duplicate-code)

  • R: 1, 0: Similar lines in 2 files

==subuserlib.builtInCommands.dev:4 ==subuserlib.builtInCommands.ps:4 import sys import optparse import json import os import uuid (duplicate-code)

  • R: 1, 0: Similar lines in 2 files

==subuserlib.classes.docker.dockerDaemon:15 ==subuserlib.classes.uhttpConnection:9 try:

import httplib
except ImportError:
import http.client httplib = http.client (duplicate-code)

Report

3058 statements analysed.

Statistics by type

type number old number difference %documented %badname
module 62 62 = 70.97 35.48
class 39 39 = 15.38 0.00
method 261 261 = 57.85 68.20
function 115 115 = 41.74 83.48

Duplication

  now previous difference
nb duplicated lines 16 16 =
percent duplicated lines 0.311 0.311 +0.00

Raw metrics

type number % previous difference
code 3453 68.50 3455 -2.00
docstring 943 18.71 943 =
comment 190 3.77 190 =
empty 455 9.03 455 =

Messages by category

type number previous difference
convention 2 2 =
refactor 22 22 =
warning 72 72 =
error 29 29 =

% errors / warnings by module

module error warning refactor convention
subuserlib.classes.docker.dockerDaemon 13.79 1.39 4.55 0.00
subuserlib.builtInCommands.remove-old-images 6.90 0.00 0.00 0.00
subuserlib.classes.user 3.45 6.94 4.55 0.00
subuserlib.classes.subusers 3.45 6.94 0.00 0.00
subuserlib.verify 3.45 5.56 0.00 0.00
subuserlib.builtInCommands.subuser 3.45 4.17 50.00 0.00
subuserlib.classes.repository 3.45 4.17 4.55 0.00
subuserlib.update 3.45 4.17 0.00 0.00
subuserlib.classes.endUser 3.45 2.78 0.00 50.00
subuserlib.classes.subuser 3.45 1.39 4.55 0.00
subuserlib.print 3.45 1.39 0.00 0.00
subuserlib.builtInCommands.repair 3.45 1.39 0.00 0.00
subuserlib.classes.subuserSubmodules.run.runtime 3.45 0.00 18.18 0.00
subuserlib.removeOldImages 3.45 0.00 0.00 0.00
subuserlib.classes.subuserSubmodules.run.x11Bridge 3.45 0.00 0.00 0.00
subuserlib.classes.registry 3.45 0.00 0.00 0.00
subuserlib.classes.permissionsAccepters.acceptPermissionsAtCLI 3.45 0.00 0.00 0.00
subuserlib.classes.imageSource 3.45 0.00 0.00 0.00
subuserlib.classes.docker.mockDockerDaemon 3.45 0.00 0.00 0.00
subuserlib.classes.docker.container 3.45 0.00 0.00 0.00
subuserlib.builtInCommands.update 3.45 0.00 0.00 0.00
subuserlib.builtInCommands.print-dependency-info 3.45 0.00 0.00 0.00
subuserlib.builtInCommands.pkg 3.45 0.00 0.00 0.00
subuserlib.builtInCommands.list 3.45 0.00 0.00 0.00
subuserlib.builtInCommands.describe 3.45 0.00 0.00 0.00
subuserlib.docker 0.00 8.33 0.00 0.00
subuserlib.classes.gitRepository 0.00 6.94 0.00 0.00
subuserlib.classes.fileStructure 0.00 6.94 0.00 0.00
subuserlib.lock 0.00 5.56 0.00 0.00
subuserlib.builtInCommands.ps 0.00 5.56 0.00 0.00
subuserlib.classes.repositories 0.00 2.78 4.55 0.00
subuserlib.subuser 0.00 2.78 0.00 0.00
subuserlib.executablePath 0.00 2.78 0.00 0.00
subuserlib.classes.installationTask 0.00 1.39 4.55 0.00
subuserlib.version 0.00 1.39 0.00 0.00
subuserlib.test 0.00 1.39 0.00 0.00
subuserlib.subprocessExtras 0.00 1.39 0.00 0.00
subuserlib.permissions 0.00 1.39 0.00 0.00
subuserlib.loadMultiFallbackJsonConfigFile 0.00 1.39 0.00 0.00
subuserlib.classes.subuserSubmodules.run.runtimeCache 0.00 1.39 0.00 0.00
subuserlib.classes.subuserSubmodules.run.runReadyImage 0.00 1.39 0.00 0.00
subuserlib.classes.service 0.00 1.39 0.00 0.00
subuserlib.classes.installedImages 0.00 1.39 0.00 0.00
subuserlib.classes.config 0.00 1.39 0.00 0.00
subuserlib.builtInCommands.version 0.00 1.39 0.00 0.00
subuserlib.builtInCommands.repository 0.00 1.39 0.00 0.00

Messages

message id occurrences
unused-import 30
import-error 12
syntax-error 10
no-name-in-module 10
fixme 9
cyclic-import 6
super-init-not-called 5
no-self-use 5
no-member 5
undefined-variable 4
too-many-instance-attributes 4
redefined-outer-name 4
dangerous-default-value 4
bad-indentation 4
unused-argument 3
redefined-builtin 3
duplicate-code 3
global-variable-not-assigned 2
global-statement 2
cell-var-from-loop 2
abstract-class-not-used 2
trailing-whitespace 1
too-many-statements 1
too-many-return-statements 1
reimported 1
old-style-class 1
broad-except 1
bare-except 1
arguments-differ 1

External dependencies

subuserlib
  \-builtInCommands (subuserlib.commands)
  \-classes
  | \-config (subuserlib.classes.user)
  | \-describable (subuserlib.classes.repository,subuserlib.classes.installedImage,subuserlib.classes.subuser)
  | \-docker
  | | \-container (subuserlib.classes.docker.dockerDaemon)
  | | \-dockerDaemon (subuserlib.classes.installedImage,subuserlib.version,subuserlib.classes.user)
  | \-endUser (subuserlib.classes.user)
  | \-exceptions (subuserlib.classes.installationTask,subuserlib.classes.docker.dockerDaemon,subuserlib.verify,subuserlib.classes.subuserSubmodules.run.runReadyImage,subuserlib.subuser)
  | \-fileBackedObject (subuserlib.classes.subuserSubmodules.run.runtimeCache,subuserlib.classes.permissions,subuserlib.classes.subusers,subuserlib.classes.installedImages,subuserlib.classes.repositories)
  | \-fileStructure (subuserlib.classes.repository,subuserlib.classes.gitRepository)
  | \-gitRepository (subuserlib.classes.repository,subuserlib.version)
  | \-installationTask (subuserlib.verify)
  | \-installedImage (subuserlib.classes.installationTask,subuserlib.classes.installedImages)
  | \-installedImages (subuserlib.classes.user)
  | \-permissions (subuserlib.classes.subuser)
  | \-registry (subuserlib.classes.user)
  | \-repository (subuserlib.resolve,subuserlib.classes.repositories,subuserlib.repository)
  | \-subuser (subuserlib.verify,subuserlib.classes.subusers,subuserlib.subuser)
  | \-subuserSubmodules
  | | \-run
  | |   \-runReadyImage (subuserlib.classes.subuser)
  | |   \-runtime (subuserlib.classes.subuser)
  | |   \-runtimeCache (subuserlib.classes.subuser)
  | \-uhttpConnection (subuserlib.classes.docker.dockerDaemon)
  | \-user (subuserlib.builtInCommands.dev,subuserlib.builtInCommands.repository,subuserlib.update,subuserlib.builtInCommands.version,subuserlib.builtInCommands.subuser,subuserlib.builtInCommands.registry,subuserlib.builtInCommands.remove-old-images,subuserlib.builtInCommands.ps,subuserlib.test,subuserlib.builtInCommands.run,subuserlib.builtInCommands.repair,subuserlib.builtInCommands.update)
  | \-userOwnedObject (subuserlib.classes.subuserSubmodules.run.runtimeCache,subuserlib.classes.config,subuserlib.classes.docker.container,subuserlib.classes.installationTask,subuserlib.classes.permissions,subuserlib.classes.docker.dockerDaemon,subuserlib.classes.installedImage,subuserlib.classes.subusers,subuserlib.classes.subuser,subuserlib.classes.repository,subuserlib.classes.subuserSubmodules.run.runReadyImage,subuserlib.classes.installedImages,subuserlib.classes.subuserSubmodules.run.runtime,subuserlib.classes.gitRepository,subuserlib.classes.service,subuserlib.classes.endUser,subuserlib.classes.repositories)
  \-commandLineArguments (subuserlib.builtInCommands.dev,subuserlib.builtInCommands.repository,subuserlib.builtInCommands.version,subuserlib.builtInCommands.subuser,subuserlib.builtInCommands.registry,subuserlib.builtInCommands.remove-old-images,subuserlib.builtInCommands.repair,subuserlib.builtInCommands.run,subuserlib.builtInCommands.ps,subuserlib.builtInCommands.update)
  \-docker (subuserlib.classes.subuserSubmodules.run.runReadyImage,subuserlib.classes.docker.dockerDaemon)
  \-executablePath (subuserlib.docker,subuserlib.classes.gitRepository,subuserlib.paths,subuserlib.commands)
  \-loadMultiFallbackJsonConfigFile (subuserlib.classes.config,subuserlib.classes.repositories)
  \-paths (subuserlib.builtInCommands.dev,subuserlib.classes.config,subuserlib.classes.user,subuserlib.commands,subuserlib.version,subuserlib.loadMultiFallbackJsonConfigFile,subuserlib.classes.endUser,subuserlib.classes.repositories)
  \-permissions (subuserlib.classes.permissions,subuserlib.classes.subuser)
  \-profile (subuserlib.builtInCommands.dev,subuserlib.builtInCommands.repository,subuserlib.builtInCommands.version,subuserlib.builtInCommands.subuser,subuserlib.builtInCommands.registry,subuserlib.builtInCommands.remove-old-images,subuserlib.builtInCommands.repair,subuserlib.builtInCommands.run,subuserlib.builtInCommands.ps,subuserlib.builtInCommands.update)
  \-registry (subuserlib.builtInCommands.registry)
  \-repository (subuserlib.builtInCommands.repository)
  \-resolve (subuserlib.builtInCommands.repository,subuserlib.subuser,subuserlib.repository)
  \-subprocessExtras (subuserlib.docker)
  \-subuser (subuserlib.builtInCommands.subuser)
  \-test (subuserlib.classes.fileStructure,subuserlib.classes.user,subuserlib.version,subuserlib.classes.docker.dockerDaemon,subuserlib.classes.gitRepository,subuserlib.subprocessExtras,subuserlib.classes.subuserSubmodules.run.runtime,subuserlib.classes.endUser)
  \-update (subuserlib.builtInCommands.update,subuserlib.subuser)
  \-verify (subuserlib.update,subuserlib.builtInCommands.subuser,subuserlib.builtInCommands.repair,subuserlib.registry,subuserlib.subuser,subuserlib.classes.installationTask)
  \-version (subuserlib.classes.repository,subuserlib.builtInCommands.version)