versioninfo-helper


Nameversioninfo-helper JSON
Version 1.0.0.3 PyPI version JSON
download
home_pageNone
SummaryVersionInfo helper script for PyInstaller
upload_time2025-09-03 17:23:23
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords pyinstaller versioninfo development
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # VersionInfo helper script for PyInstaller

This repository contains helper scripts to dynamically create VersionInfo objects that can be embedded in .exe files created by PyInstaller.

[![๐Ÿ“š Build and publish documentation](https://github.com/ReggX/versioninfo_helper/actions/workflows/docs.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/docs.yml) 
[![Documentation on Github Pages](https://img.shields.io/website?url=https%3A%2F%2Freggx.github.io%2Fversioninfo_helper%2F&label=Documentation%20on%20Github%20Pages)](https://reggx.github.io/versioninfo_helper/)
 \
[![๐Ÿ”„ Integration Testing](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_integration_tests.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_integration_tests.yml)
[![๐Ÿงช Unittests with Coverage](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_unittests_coverage.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_unittests_coverage.yml)
[![Coverage Status](https://coveralls.io/repos/github/ReggX/versioninfo_helper/badge.svg?branch=main)](https://coveralls.io/github/ReggX/versioninfo_helper?branch=main)
 \
[![๐Ÿ” Typecheck: Mypy](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_mypy.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_mypy.yml)
[![๐Ÿง  Typecheck: Pyright](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyright.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyright.yml)
[![๐Ÿฆ‹ Typecheck: Pyrefly](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyrefly.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyrefly.yml)
 \
[![๐Ÿงน Linters](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_lint.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_lint.yml)
[![๐Ÿšฆ Noxfile Self Check](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_self_check.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_self_check.yml)
 \
[![๐Ÿ“ฆ Publish Python Package](https://github.com/ReggX/versioninfo_helper/actions/workflows/publish.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/publish.yml)
[![PyPI - Version](https://img.shields.io/pypi/v/versioninfo_helper)](https://pypi.org/project/versioninfo-helper/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/versioninfo_helper)](https://pypi.org/project/versioninfo-helper/)

## Motivation

This project was created because existing solutions to embed version information inside executables relied on creating artifact files that get read (and eval-ed) by PyInstaller during the build process. \
Dynamically creating such files essentially boiled down to inserting data in a string template, with no guides to the user if their entered data is valid or not. \
A bit of exploration of PyInstaller's source code and official Microsoft documentation revealed that it should be possible to provide PyInstaller with necessary data straight from .spec files without file-read-and-eval step. \
This approach has the added bonus of being type hint compatible, offering rich auto-complete in supported IDEs.

## Installation

Wheels are available on [PyPI](https://pypi.org/project/versioninfo-helper/), install with:

`pip install versioninfo_helper`

## Usage

See [example_simple.onefile.spec](https://github.com/ReggX/versioninfo_helper/blob/main/example_simple.onefile.spec) and [example_dynamic.onefile.spec](https://github.com/ReggX/versioninfo_helper/blob/main/example_dynamic.onefile.spec) for examples on how to integrate VersionInfo creation directly into PyInstaller .spec files.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "versioninfo-helper",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": "PyInstaller, VersionInfo, development",
    "author": null,
    "author_email": "ReggX <dev@reggx.eu>",
    "download_url": "https://files.pythonhosted.org/packages/59/3b/f241416f8cdca52fdf639523e4713f9b8845dcc393c2dea161068e09c68d/versioninfo_helper-1.0.0.3.tar.gz",
    "platform": null,
    "description": "# VersionInfo helper script for PyInstaller\r\n\r\nThis repository contains helper scripts to dynamically create VersionInfo objects that can be embedded in .exe files created by PyInstaller.\r\n\r\n[![\ud83d\udcda Build and publish documentation](https://github.com/ReggX/versioninfo_helper/actions/workflows/docs.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/docs.yml) \r\n[![Documentation on Github Pages](https://img.shields.io/website?url=https%3A%2F%2Freggx.github.io%2Fversioninfo_helper%2F&label=Documentation%20on%20Github%20Pages)](https://reggx.github.io/versioninfo_helper/)\r\n \\\r\n[![\ud83d\udd04 Integration Testing](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_integration_tests.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_integration_tests.yml)\r\n[![\ud83e\uddea Unittests with Coverage](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_unittests_coverage.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_unittests_coverage.yml)\r\n[![Coverage Status](https://coveralls.io/repos/github/ReggX/versioninfo_helper/badge.svg?branch=main)](https://coveralls.io/github/ReggX/versioninfo_helper?branch=main)\r\n \\\r\n[![\ud83d\udd0d Typecheck: Mypy](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_mypy.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_mypy.yml)\r\n[![\ud83e\udde0 Typecheck: Pyright](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyright.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyright.yml)\r\n[![\ud83e\udd8b Typecheck: Pyrefly](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyrefly.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_typecheck_pyrefly.yml)\r\n \\\r\n[![\ud83e\uddf9 Linters](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_lint.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_lint.yml)\r\n[![\ud83d\udea6 Noxfile Self Check](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_self_check.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/nox_self_check.yml)\r\n \\\r\n[![\ud83d\udce6 Publish Python Package](https://github.com/ReggX/versioninfo_helper/actions/workflows/publish.yml/badge.svg)](https://github.com/ReggX/versioninfo_helper/actions/workflows/publish.yml)\r\n[![PyPI - Version](https://img.shields.io/pypi/v/versioninfo_helper)](https://pypi.org/project/versioninfo-helper/)\r\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/versioninfo_helper)](https://pypi.org/project/versioninfo-helper/)\r\n\r\n## Motivation\r\n\r\nThis project was created because existing solutions to embed version information inside executables relied on creating artifact files that get read (and eval-ed) by PyInstaller during the build process. \\\r\nDynamically creating such files essentially boiled down to inserting data in a string template, with no guides to the user if their entered data is valid or not. \\\r\nA bit of exploration of PyInstaller's source code and official Microsoft documentation revealed that it should be possible to provide PyInstaller with necessary data straight from .spec files without file-read-and-eval step. \\\r\nThis approach has the added bonus of being type hint compatible, offering rich auto-complete in supported IDEs.\r\n\r\n## Installation\r\n\r\nWheels are available on [PyPI](https://pypi.org/project/versioninfo-helper/), install with:\r\n\r\n`pip install versioninfo_helper`\r\n\r\n## Usage\r\n\r\nSee [example_simple.onefile.spec](https://github.com/ReggX/versioninfo_helper/blob/main/example_simple.onefile.spec) and [example_dynamic.onefile.spec](https://github.com/ReggX/versioninfo_helper/blob/main/example_dynamic.onefile.spec) for examples on how to integrate VersionInfo creation directly into PyInstaller .spec files.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "VersionInfo helper script for PyInstaller",
    "version": "1.0.0.3",
    "project_urls": {
        "Bug Reports": "https://github.com/ReggX/versioninfo_helper/issues",
        "Documentation": "https://reggx.github.io/versioninfo_helper/",
        "Homepage": "https://github.com/ReggX/versioninfo_helper",
        "PyPI": "https://pypi.org/project/versioninfo-helper/",
        "Source": "https://github.com/ReggX/versioninfo_helper"
    },
    "split_keywords": [
        "pyinstaller",
        " versioninfo",
        " development"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "645479fd342be63b9e1a344118cb00363430262b2a3ca7f356d1d79c811c9503",
                "md5": "e47f8361e27e0c6f9cb12d3b8a504f23",
                "sha256": "698f10905bb93463e32d08bcb004048e4667645896022951b6c64221f2b29e2d"
            },
            "downloads": -1,
            "filename": "versioninfo_helper-1.0.0.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e47f8361e27e0c6f9cb12d3b8a504f23",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 12826,
            "upload_time": "2025-09-03T17:23:21",
            "upload_time_iso_8601": "2025-09-03T17:23:21.976040Z",
            "url": "https://files.pythonhosted.org/packages/64/54/79fd342be63b9e1a344118cb00363430262b2a3ca7f356d1d79c811c9503/versioninfo_helper-1.0.0.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "593bf241416f8cdca52fdf639523e4713f9b8845dcc393c2dea161068e09c68d",
                "md5": "f2e5c3f9370b8d03694e1c7487580d03",
                "sha256": "7c0385749856d7de4e8c525cc55deeae3c8e107548cedbc86ea7c85b8280d93b"
            },
            "downloads": -1,
            "filename": "versioninfo_helper-1.0.0.3.tar.gz",
            "has_sig": false,
            "md5_digest": "f2e5c3f9370b8d03694e1c7487580d03",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 69405,
            "upload_time": "2025-09-03T17:23:23",
            "upload_time_iso_8601": "2025-09-03T17:23:23.305130Z",
            "url": "https://files.pythonhosted.org/packages/59/3b/f241416f8cdca52fdf639523e4713f9b8845dcc393c2dea161068e09c68d/versioninfo_helper-1.0.0.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-03 17:23:23",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ReggX",
    "github_project": "versioninfo_helper",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "versioninfo-helper"
}
        
Elapsed time: 1.77431s