Skip to main content

PyInstaller wrapper that runs DistroMate packaging/publish after build

Project description

pyinstaller-plus

pyinstaller-plus is a PyInstaller-compatible wrapper that keeps your existing PyInstaller workflow and then runs DistroMate packaging or publishing, with a built-in login shortcut. This README focuses on end-user packaging usage.

Features

  • Compatible with standard PyInstaller arguments
  • Supports login mode (distromate login)
  • Runs distromate package after a successful PyInstaller build
  • Supports publish mode (distromate publish)
  • Works on Windows, macOS, and Linux
  • Depends on the distromate Python package instead of bundling its own CLI
  • Supports --appid for package / publish
  • Uses PyInstaller args and .spec metadata as defaults, then overlays distromate.yaml

Install

pip install pyinstaller-plus

distromate will be installed automatically as a dependency.

Quick Start

  1. Log in to DistroMate:
pyinstaller-plus login
  1. Optional: create a distromate.yaml (or distromate.yml) in your project root. If omitted, pyinstaller-plus still derives package metadata from your PyInstaller args or .spec file.

  2. Build and package:

pyinstaller-plus package -v 1.2.3 --appid com.example.app your.spec
  1. Build and publish:
pyinstaller-plus publish -v 1.2.3 --appid com.example.app your.spec

Use --distromate-config ./config/release.yaml if your overlay file is not in the project root.

CLI Behavior

pyinstaller-plus executes one of these flows:

  • login: resolve DistroMate CLI from the Python dependency or PATH, then run distromate login

  • package / publish:

    1. Run python -m PyInstaller ...
    2. Resolve DistroMate CLI from:
      • installed distromate Python package
      • PATH
    3. Resolve release version from:
      • package -v / package --version
      • publish -v / publish --version
      • pyproject.toml -> project.version
    4. Resolve publish app id from:
      • package --appid
      • publish --appid
    5. Derive adapter defaults from PyInstaller args and .spec metadata:
      • productName
      • package.name
      • package.executable
      • package.target
      • package.icon (from --icon or EXE(icon=...))
      • package.description (from --version-file or EXE(version=...) -> FileDescription)
      • package.publisher (from --version-file or EXE(version=...) -> CompanyName)
    6. Overlay distromate.yaml / distromate.yml on top of those defaults
    7. Pipe the final config to one of:
      • distromate --config - package -v <version>
      • distromate --config - publish -v <version>

Commands

  • login: run distromate login
  • package -v <version> [--appid <appid>] [--distromate-config <path>]: build with PyInstaller, then run distromate package
  • publish -v <version> [--appid <appid>] [--distromate-config <path>]: build with PyInstaller, then run distromate publish

Use -- when you need to pass PyInstaller's own --version through the wrapper.

Example distromate.yml

productName: MyApp

publish:
  appId: your_appid

package:
  name: myapp
  description: My desktop app
  executable: dist/myapp.exe
  target: dist
  publisher: MyApp Publisher
  language: english
  files:
    - "**/*"
    - "!**/.git/**"
    - "!**/*.log"
    - "!temp/**"
    - "!**/__pycache__/**"
    - "!**/*.pyc"
  preservePaths:
    - config
    - data

package.files uses electron-builder-compatible glob patterns.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyinstaller_plus-0.1.26.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyinstaller_plus-0.1.26-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file pyinstaller_plus-0.1.26.tar.gz.

File metadata

  • Download URL: pyinstaller_plus-0.1.26.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyinstaller_plus-0.1.26.tar.gz
Algorithm Hash digest
SHA256 0137051f43a4a212ee590e56d2a2bb34daa1f6443a40b2fbd92aebc3e81823f2
MD5 06c5072d720f436e64b87a4e0f514502
BLAKE2b-256 c8edf267f869693329980a58012a5a1c1eced4b90f8980e7b7e8ee2315bc585c

See more details on using hashes here.

File details

Details for the file pyinstaller_plus-0.1.26-py3-none-any.whl.

File metadata

File hashes

Hashes for pyinstaller_plus-0.1.26-py3-none-any.whl
Algorithm Hash digest
SHA256 c1f3088d69bb5bf0c4c8200b1522a28ab843694c18dd9ce0a5230cebb4d00864
MD5 9cadbe1c9cbb6a8eeb0cf37468be05ec
BLAKE2b-256 a91fae1a16314771421afb13f5ad179bcc8c897d07891a9080fcce2552f2a8c9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page