docs: def parse_args(self):
          """Parse command line arguments."""
          args = self.init_args().parse_args()
  
          # Load the configuration file, if it exists
          self.config = Config(args.conf_file)
  
          # Debug mode
          if args.debug:
              from logging import DEBUG
              logger.setLevel(DEBUG)
          else:
              from warnings import simplefilter
              simplefilter("ignore")
  
          # Plugins disable/enable
          if args.disable_plugin is not None:
              for p in args.disable_plugin.split(','):
                  disable(args, p)
          else:
              # Allow users to disable plugins from the glances.conf (issue #1378)
              for s in self.config.sections():
                  if self.config.has_section(s) \
                     and (self.config.get_bool_value(s, 'disable', False)):
                      disable(args, s)
                      logger.debug('{} disabled by the configuration file'.format(s))
  
          # Exporters activation
          if args.export is not None:
              for p in args.export.split(','):
                  setattr(args, 'export_' + p, True)
  
          # Client/server Port
          if args.port is None:
              if args.webserver:
                  args.port = self.web_server_port
              else:
                  args.port = self.server_port
          # Port in the -c URI #996
          if args.client is not None:
              args.client, args.port = (x if x else y for (x, y) in zip(args.client.partition(':')[::2], (args.client, args.port)))
  
          # Autodiscover
          if args.disable_autodiscover:
              logger.info("Auto discover mode is disabled")
  
          # By default Windows is started in Web mode
          if WINDOWS:
              args.webserver = True
  
          # In web server mode, default refresh time: 5 sec
          if args.webserver:
              args.time = 5
              args.process_short_name = True
  
          # Server or client login/password
          if args.username_prompt:
              # Every username needs a password
              args.password_prompt = True
              # Prompt username
              if args.server:
                  args.username = self.__get_username(
                      description='Define the Glances server username: ')
              elif args.webserver:
                  args.username = self.__get_username(
                      description='Define the Glances webserver username: ')
              elif args.client:
                  args.username = self.__get_username(
                      description='Enter the Glances server username: ')
          else:
              if args.username_used:
                  # A username has been set using the -u option ?
                  args.username = args.username_used
              else:
                  # Default user name is 'glances'
                  args.username = self.username
  
          if args.password_prompt or args.username_used:
              # Interactive or file password
              if args.server:
                  args.password = self.__get_password(
                      description='Define the Glances server password ({} username): '.format(
                          args.username),
                      confirm=True,
                      username=args.username)
              elif args.webserver:
                  args.password = self.__get_password(
                      description='Define the Glances webserver password ({} username): '.format(
                          args.username),
                      confirm=True,
                      username=args.username)
              elif args.client:
                  args.password = self.__get_password(
                      description='Enter the Glances server password ({} username): '.format(
                          args.username),
                      clear=True,
                      username=args.username)
          else:
              # Default is no password
              args.password = self.password
  
          # By default help is hidden
          args.help_tag = False
  
          # Display Rx and Tx, not the sum for the network
          args.network_sum = False
          args.network_cumul = False
  
          # Manage light mode
          if args.enable_light:
              logger.info("Light mode is on")
              args.disable_left_sidebar = True
              disable(args, 'process')
              disable(args, 'alert')
              disable(args, 'amps')
              disable(args, 'docker')
  
          # Manage full quicklook option
          if args.full_quicklook:
              logger.info("Full quicklook mode")
              enable(args, 'quicklook')
              disable(args, 'cpu')
              disable(args, 'mem')
              disable(args, 'memswap')
              enable(args, 'load')
  
          # Manage disable_top option
          if args.disable_top:
              logger.info("Disable top menu")
              disable(args, 'quicklook')
              disable(args, 'cpu')
              disable(args, 'mem')
              disable(args, 'memswap')
              disable(args, 'load')
  
          # Init the generate_graph tag
          # Should be set to True to generate graphs
          args.generate_graph = False
  
          # Control parameter and exit if it is not OK
          self.args = args
  
          # Export is only available in standalone or client mode (issue #614)
          export_tag = self.args.export is not None and any(self.args.export)
          if WINDOWS and export_tag:
              # On Windows, export is possible but only in quiet mode
              # See issue #1038
              logger.info("On Windows OS, export disable the Web interface")
              self.args.quiet = True
              self.args.webserver = False
          elif not (self.is_standalone() or self.is_client()) and export_tag:
              logger.critical("Export is only available in standalone or client mode")
              sys.exit(2)
  
          # Filter is only available in standalone mode
          if args.process_filter is not None and not self.is_standalone():
              logger.critical(
                  "Process filter is only available in standalone mode")
              sys.exit(2)
  
          # Disable HDDTemp if sensors are disabled
          if getattr(args, 'disable_sensors', False):
              disable(args, 'hddtemp')
              logger.debug("Sensors and HDDTemp are disabled")
  
          return args