# Path: subuserlib/test.py
# def getUser():
# 
# Path: subuserlib/paths.py
# def upNDirsInPath(path,n):
# def getSubuserDir():
# def getSubuserExecutable():
# def getSubuserDataFile(filename):
# 
# Path: subuserlib/classes/userOwnedObject.py
# class UserOwnedObject(object):
#   def __init__(self,user):
#     self.user = user


import getpass
import os
import sys
import pwd
import subprocess
    import functools,time
from subuserlib import test
from subuserlib import paths
from subuserlib.classes.userOwnedObject import UserOwnedObject
        ret = func(*args, **kwargs)
        elapsedTime = time.time() - startTime
        print('function [{}] finished in {} ms'.format(
            func.__name__, int(elapsedTime * 1000)))
        return ret
    return newfunc


class EndUser(UserOwnedObject,object):
  def __init__(self,user,name=None):
    UserOwnedObject.__init__(self,user)
    self.proxiedByOtherUser = False
    self.sudo = False
    self.name = name
    try:
      self.name = self.user.config["user"]
      self.proxiedByOtherUser = True
    except KeyError:
      try:
        self.name = os.environ["SUDO_USER"]
        self.sudo = True
        self.proxiedByOtherUser = True
      except KeyError:
        try:
          self.name = getpass.getuser()
        except KeyError:
          # We use a broken setup when generating documentation...
          self.name = "I have no name!"
    self.uid = 1000
    self.gid = 1000

# Path: subuserlib/test.py
# def getUser():
# 
# Path: subuserlib/paths.py
# def upNDirsInPath(path,n):
# def getSubuserDir():
# def getSubuserExecutable():
# def getSubuserDataFile(filename):
# 
# Path: subuserlib/classes/userOwnedObject.py
# class UserOwnedObject(object):
#   def __init__(self,user):
#     self.user = user


# Path: subuserlib/classes/endUser.py
import getpass
import os
import sys
import pwd
import subprocess
    import functools,time
from subuserlib import test
from subuserlib import paths
from subuserlib.classes.userOwnedObject import UserOwnedObject

        ret = func(*args, **kwargs)
        elapsedTime = time.time() - startTime
        print('function [{}] finished in {} ms'.format(
            func.__name__, int(elapsedTime * 1000)))
        return ret
    return newfunc


class EndUser(UserOwnedObject,object):
  def __init__(self,user,name=None):
    UserOwnedObject.__init__(self,user)
    self.proxiedByOtherUser = False
    self.sudo = False
    self.name = name
    try:
      self.name = self.user.config["user"]
      self.proxiedByOtherUser = True
    except KeyError:
      try:
        self.name = os.environ["SUDO_USER"]
        self.sudo = True
        self.proxiedByOtherUser = True
      except KeyError:
        try:
          self.name = getpass.getuser()
        except KeyError:
          # We use a broken setup when generating documentation...
          self.name = "I have no name!"
    self.uid = 1000
    self.gid = 1000

    if not test.testing: