def install(self, force_install=False):
if not (force_install or self._bundle.should_permit_install()):<EOL><INDENT>raise AppInstallError("<STR_LIT>")<EOL><DEDENT>if self._pebble.firmware_version.major < <NUM_LIT:3>:<EOL><INDENT>self._install_legacy2()<EOL><DEDENT>else:<EOL><INDENT>self._install_modern()<EOL><DEDENT>
Installs an app. Blocks until the installation is complete, or raises :exc:`AppInstallError` if it fails.

While this method runs, "progress" events will be emitted regularly with the following signature: ::

   (sent_this_interval, sent_total, total_size)

:param force_install: Install even if installing this pbw on this platform is usually forbidden.
:type force_install: bool