Skip to main content

cxupdater

The library for making updates package and the auto-update based on cx_Freeze.

Installation

Install the current version with PyPI:

pip install cxupdater

Or from Github:

pip install https://github.com/oleg-sung/cxupdater/archive/main.zip

Usage

  1. Create the update package using Executable from cx_Freeze and setup from cxupdater:
     from cxupdater import setup
     from cx_Freeze import Executable
     
     
     windows = Executable(
         'test.py',
         target_name='TestApp',
         icon='some_icon.ico'
     )
    
     setup(
         name='TestApp',
         version='1.0.1',
         options={
            'build_update': {
                "optimize": 2,
             }
         },
         executables=[windows]
         )
    
    Use build_update command with setup. The command build_update supports the same params build_exe from cx_Freeze.
    python setup.py build_update
    
    During the execution of the command, a zip archive will be created containing an intermediate executable file for launching the main application and Updater.exe to update the application automatically.
  2. Use the generate_toml -p path\to\folder\contains\update\packages -u https://example.com(your ftp update server) command or create a .toml with the same name as the application, for example TestApp.toml with the following contents:
    [cxupdater.package.x32] # or x64 
    
    name = "TestApp-1.0.0.win32"  
    version = "1.0.1"
    url = "https://example/TestApp-1.0.1.win32.zip"
    
    Where there are:
    • name: The name includes an app's name, version and arch prefix.
    • version: Version of the app
    • url: The url for downloading update package
  3. Move TestApp.toml and TestApp-1.0.0.win32.zip to https://example/ (your ftp server for publishing an updates)
  4. In the code application, create an instance of the update by providing the URL to the file.toml, the current version of the application, implements the delegate of the CxDelegateInterface interface.
    from cxupdater import CxUpdater, CxDelegateInterface
    
    
    class Delegate(CxDelegateInterface):
    
         def do_processing_update(self, message: dict) -> None:
             pass
    
         def do_not_found_update(self, message: dict) -> None:
             pass
    
         def do_error_update(self, message: dict) -> None:
             pass
    
         def do_exited_update(self, message: dict) -> None:
             pass
    
         def do_finished_update(self, message: dict) -> None:
             pass
    
         def do_start_update(self, message: dict) -> None:
             pass
    
    delegate = Delegate()
    updater = CxUpdater('https://example/TestApp.toml', '1.0.0', delegate)
    updater.do_auto_updater()
    
    the do_auto_updater() method starts the process of searching for updates. If an update has been found, run Updater.exe with a UAC request and the transmission of the url for downloading and installing the update package. After that, the Updater will inform us about the update progress using delegate methods. If no update was found, do_auto_updater() returns the status Not found.

Contributing

Bug reports and/or pull requests are welcome

License

The module is available as open source under the terms of the Apache License, Version 2.0

Metadata

Release files for cxupdater 0.3.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cxupdater 0.3.6
File Size Uploaded
cxupdater-0.3.6.tar.gz 38.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for cxupdater 0.3.6
File Interpreter ABI Platform
cxupdater-0.3.6-py3-none-any.whl Python 3 none any Details

Total release size: 38.3 MB

Release files / cxupdater-0.3.6.tar.gz

Download URL cxupdater-0.3.6.tar.gz
Size 38.3 MB
Tags Source
SHA-256 checksum
How to use checksums
6f98b6687398ae432b9abc15910db179aeb5d8bbab509706ba049818c7eae335
BLAKE2b-256 checksum
How to use checksums
06a6d9424c957b5ce2722257610c816a8fc5dde3077fae6fcce35c81bb1631e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13

Release files / cxupdater-0.3.6-py3-none-any.whl

Download URL cxupdater-0.3.6-py3-none-any.whl
Size 22.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4854fc005acc7d4bf9c7afcf001902a99e9835d29b12dc90f87f43c7c047c8ae
BLAKE2b-256 checksum
How to use checksums
edeb79bc3b10e2f7c1ebe711b52d0ec8c3bb817561517dd8c68957f5566ac360
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.13
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page