Skip to main content

Batch execute any task, with simple json config

Project description

Batch execute any task, with simple json config

This module makes it possible to batch execute almost every program that runs from command line on files in input directory and outputs those into output directory (including directory structure). Settings are taken from config.json file. In the future there will be new features added.

Installation

pip install batchexec

How to use it?

Import module batchexec: import batchexec Use the class UniversalBatchExecuter with the config file as a parameter (default: 'config.json'): batch_executer = batchexec.UniversalBatchExecuter('config.json') Then run it with optional additional parameters, e.g.: batch_executer.run('--verbose')

Parameters in json config file:

{
  // Relative or absolute path to input dir. Default: "input"
  "input_dir": "input",
  // Whether to include subdirectories or not. Possible [true, false], Default: true
  "include_subdirs": true,
  // Filter only file masks/extensions to execute apps
  "file_masks": ["*.jpg", "*.jpeg", "*.png", "*.gif"],
  // Relative or absolute path to output dir. If not exists, it will be created. Default: "output"
  "output_dir": "output",
  // Relative or absolute path to own application directory that we want to run. Default: "app"
  "app_dir": "app",
  // Relative path to application executable file that we want to run. Default: "app.exe"
  "app_name": "bin/app.exe",
  // Additional arguments to the application. Default: ""
  "app_args": "-q 75",
  // Parameter after which the input file name is specified. Default: ""
  "app_input_parameter": "-i",
  // Parameter after which the output file name is specified. Default: "-o"
  "app_output_parameter": "-o",
  // When the output file should have specified extension, we can enter it here. Default: "" (extension won't be changed)
  "app_output_file_extension": ".jpg",
  // When the output file already exists, should it be replaced. Possible [true, false], Default: true
  "replace_files": true,
  // When the output file already exists and it will be replaced, should the backup file be created. Possible [true, false], Default: true
  "replaced_files_backup": true,
  // Log output of the application to specified (relative or absolute path to) file. Default: "stdout.log"
  "log_output_to": "stdout.log",
  // Log error output of the application to specified (relative or absolute path to) file. Default: "stderr.log"
  "error_log_output_to": "stderr.log",
}

License

© 2021 Krzysztof Grabowski

This repository is licensed under the GPLv3 license. See LICENSE for details.

Changelog

All notable changes to this project will be documented in this file.

[Unreleased]

Added

  • Support for specifying absolute/relative path to app executable file instead of app_dir and relative app file separately
  • Log files - option to append or overwrite files.

Fixed

  • Add getters/setters to UniversalBatchExecuter class.

[0.0.5] - 2021-02-26

Fixed

  • making directories more than one level deep

[0.0.4] - 2021-02-16

Fixed

  • Error message shwowing when incorrect data in config.json
  • Some minor changes to the project structure.
  • Copyright sign in README.md

[0.0.3] - 2021-02-15

Added

  • README.md file.
  • This CHANGELOG.md file.
  • LICENSE.txt file.
  • MANIFEST.in file.
  • Made PyPi Package.

[0.0.2] - 2021-02-14

Added

  • Class UniversalBatchExecuter, where all the data is stored.
  • Support for reading json config file.
  • Basic argparse support.

[0.0.1] - 2021-01-29

Added

  • Made environment, requirements.txt file
  • First, initial version of the project

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

batchexec-0.0.5.tar.gz (4.0 MB view details)

Uploaded Source

File details

Details for the file batchexec-0.0.5.tar.gz.

File metadata

  • Download URL: batchexec-0.0.5.tar.gz
  • Upload date:
  • Size: 4.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.0

File hashes

Hashes for batchexec-0.0.5.tar.gz
Algorithm Hash digest
SHA256 d0847a8bf699fa53953194ecbec87b2a470d850b5e2eed874e2698a543fc8b29
MD5 a6b6c84fe89409f9937ea01f87cc0bbb
BLAKE2b-256 1be23d321d8e5bfde11425a0d4e2f384cbd36f6e7046a3b8d102c88e7a81ae98

See more details on using hashes here.

Supported by

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