# Path: vimswitch/Profile.py
# class Profile:
#     def __init__(self, name):
#         self.name = name
# 
#     def getName(self):
#         return self.name
# 
#     def getDirName(self):
#         return self.name.replace('/', '.')
# 
#     def __eq__(self, other):
#         return isinstance(other, Profile) and self.name == other.name
# 
#     def __ne__(self, other):
#         return not self.__eq__(other)
# 
#     def __repr__(self):
#         return "Profile('%s')" % self.name


import argparse
from .Profile import Profile
        self.helpText = parser.format_help()

        argv = argv[1:]  # Remove the program name from the arguments
        arguments = parser.parse_args(argv)

        self._processArguments(parser, arguments, argv)

    def _createParser(self):
        parser = CustomArgumentParser(
            prog='vimswitch',
            description='A utility for switching between vim profiles.')
        parser.add_argument('profile', nargs='?')
        parser.add_argument('-u', '--update', action='store_true',
                            help='download profile again')
        parser.add_argument('-v', '--version', action='store_true',
                            help='show version')
        return parser

    def _processArguments(self, parser, arguments, argv):
        if parser.hasError:
            self.errorMessage = parser.errorMessage
            self.action = 'invalidArgs'
        elif arguments.version:
            self.action = 'showVersion'
        elif arguments.update:
            self.action = 'updateProfile'
            profileName = arguments.profile
            if profileName is None:
                self.profile = None
            else:

# Path: vimswitch/Profile.py
# class Profile:
#     def __init__(self, name):
#         self.name = name
# 
#     def getName(self):
#         return self.name
# 
#     def getDirName(self):
#         return self.name.replace('/', '.')
# 
#     def __eq__(self, other):
#         return isinstance(other, Profile) and self.name == other.name
# 
#     def __ne__(self, other):
#         return not self.__eq__(other)
# 
#     def __repr__(self):
#         return "Profile('%s')" % self.name


# Path: vimswitch/CommandLineParser.py
import argparse
from .Profile import Profile

        self.helpText = parser.format_help()

        argv = argv[1:]  # Remove the program name from the arguments
        arguments = parser.parse_args(argv)

        self._processArguments(parser, arguments, argv)

    def _createParser(self):
        parser = CustomArgumentParser(
            prog='vimswitch',
            description='A utility for switching between vim profiles.')
        parser.add_argument('profile', nargs='?')
        parser.add_argument('-u', '--update', action='store_true',
                            help='download profile again')
        parser.add_argument('-v', '--version', action='store_true',
                            help='show version')
        return parser

    def _processArguments(self, parser, arguments, argv):
        if parser.hasError:
            self.errorMessage = parser.errorMessage
            self.action = 'invalidArgs'
        elif arguments.version:
            self.action = 'showVersion'
        elif arguments.update:
            self.action = 'updateProfile'
            profileName = arguments.profile
            if profileName is None:
                self.profile = None
            else:

                self.profile = Profile(profileName)