These cumulative pre-release notes combine versions:

  • 1578640616
  • 1575000759
  • 1574827307

Major Changes

Dumping PEX headers

When a PEX file is passed to Pyro, Pyro will dump the header to stdout.

Usage: pyro -i file.pex

Dumping PPJ files with resolved paths

When a PPJ file is passed to Pyro and the --resolve-ppj argument is provided, Pyro will resolve any variables and dump the contents to stdout.

Usage: pyro -i myproject.ppj – resolve-ppj

Using remote imports

When a GitHub URL is used as an Import path, Pyro will download the respective files and use the download location as the import path.


To import from GitHub repositories, the following arguments have been added:

Argument Required Type Description Default Value
--access-token true (when using remotes) bool your personal access token
(must have public_repo access scope)  
--force-overwrite false bool download remote files and overwrite existing files (default: skip download when remote folder exists) false
--remote-temp-path false str relative or absolute path to temp folder for remote files (if relative, must be relative to project) {program_path}\remote

Other Changes

  • Updated Nuitka from v0.6.5 to v0.6.6 (release notes)
  • Limited priority of parallel processes to "below normal"
  • Implemented anonymization of script paths in compiled script headers
  • Added compilation statistics to build output (e.g., # of scripts, # of successes, # of failures, time per script, total time)
  • Allowed using . as RootDir path in Include nodes
  • Allowed using absolute folder paths within RootDir in Include nodes
  • Allowed using environment and user variables in PPJ files
  • Under-the-hood optimizations and reduced overall memory footprint


  • Fixed issue where glob expressions could be parsed incorrectly
  • Fixed issue where compiled scripts were not packaged when deeper RootDir passed (e.g., @project\scripts)
  • Fixed issue where files outside RootDir could be zipped
  • Fixed issue where excessively long commands (>32768 chars) could be passed to the compiler
  • Fixed issue where time values were subject to floating point errors
  • Fixed issue where TimeElapsed values were not converted from floats to Decimal
  • Fixed issue where ZeroDivisionError could be raised when computing average compilation time
  • Fixed issue where build process would continue if scripts failed to compiled
  • Fixed issue where packaging failed late if existing packages could not be overwritten
  • Fixed issue where duplicate package names were not properly changed
  • Fixed issue where scripts that import other scripts would fail to compile if imported scripts were not first compiled
  • Fixed issue where unnecessary import paths were passed to compiler which could produce strange errors
  • Fixed issue where variable substitutions in Variable values were executed in only first-last order
  • Fixed issue where Variable names were not restricted to alphanumeric characters
Let's Play with Fire