Skip to main content

Tool/lib to create and parse manifests

Project description

Device Management manifest CLI tool

This document explains how to install and use the manifest tool.

Note: Please see the changelog for the list of all changes between release versions.

Manifest tool overview

Device Management lets you perform Firmware Over-the-Air (FOTA) updates on managed devices.

On the device side, the firmware update process begins when the device receives an update manifest. The OEM (original equipment manufacturer) or update author cryptographically signs the manifest with a private key paired to a public key that exists on the device, enabling the device to authenticate the manifest before it accepts the firmware update.

Device Management supports:

  • Full updates - Deliver new firmware and install it on the device.
  • Delta updates - The manifest tool executes a diff algorithm that produces a small delta patch file. The nano client constructs a new firmware image based on the delta patch file and the firmware currently present on the device. This technique saves traffic bandwidth.

The manifest-tool Python package includes these command line tools:

Installing the manifest tool

We recommend installing the manifest-tool Python package in a Python virtual environment.

Installing from PyPi

Prerequisites:

To install the manifest tool from PyPi, run:

pip install manifest-tool

Installing from local source tree

Prerequisites:

To install the manifest tool from the local source tree, run:

  1. Clone the ARMmbed/manifest-tool repository to your machine:

    $ git clone git@github.com:ARMmbed/manifest-tool.git ./manifest-tool
    
  2. Run:

    $ pip install <manifest-tool>
    

    Where <manifest-tool> is the path to the local source tree.

Note: Run $ pip install -e <manifest-tool> to install the package in Python setuptools development mode. For more information, please see the setuptools development mode documentation.

Creating a virtual environment

The virtualenv tool creates isolated Python environments, which are useful in overcoming Python package collision issues when you work on multiple projects. For more information, please see the Python documentation.

To create a virtual environment, run:

$ virtualenv -p python3 venv  

To activate the virtual environment in the current shell, run:

$ source venv/bin/activate

Using the manifest tool

This section explains how to use the CLI tools included in the manifest-tool Python package:

manifest-tool

manifest-tool commands:

Note: Run manifest-tool --help for more information about all commands, or manifest-tool <command> --help for more information about a specific command, including its parameters and how to use them.

manifest-tool create

Creates a manifest. The manifest tool receives a configuration file describing the update type.

Prerequisites

  • An update private key and public key certificate.

    Keep the private key secret because it allows installing new firmware images on your devices.

    Provision the public key to the device.

    • To generate a private key, run:

      $ openssl ecparam -genkey -name prime256v1 -outform PEM -out my.pkey.pem
      
    • To generate a public key in uncompressed point format (X9.62), use the manifest-tool public-key command.

  • Upload the new firmware binary to a server that the device you want to update can reach, and obtain the URL for the uploaded firmware binary.

  • A configuration file in JSON or YAML format.

    Configuration file format:

    vendor:  # One of "domain" or "vendor-id" fields are expected
      domain: arm.com  # FW owner domain. Expected to include a dot (".")
      vendor-id: fa6b4a53d5ad5fdfbe9de663e4d41ffe  # Valid vendor UUID
    device:  # One of "model-name" or "class-id" fields are expected
      model-name: Smart Slippers  # A device model name
      vendor-id: fa6b4a53d5ad5fdfbe9de663e4d41ffe  # Valid device-class UUID
    
    priority: 1  #  Update priority as will be passed to authorization callback
                 #  implemented by application on a device side
    payload:
      url: http://some-url.com/files?id=1234  # File storage URL for devices to
                                              # acquire the FW candidate
      file-path: ./my.fw.bin  # Update candidate local file - for digest
                              # calculation & signing
      format: raw-binary  # one of following:
                          #  raw-binary - for full image update
                          #  arm-patch-stream - for differential update
    component: MAIN  # [Optional] Component name - only relevant for manifest v3 format.
                     # If omitted "MAIN" component name will be used for updating
                     # the main application image
    sign-image: True  # [Optional] Boolean field accepting True/False values - only
                      # relevant for manifest v3 format.
                      # When Set to True - 64 Bytes raw signature over the installed
                      # image will be added to the manifest.
                      # Image signature can be used for cases when device bootloader
                      # expects to work with signed images (e.g. secure-boot)
                      # When omitted False value is assumed
    

Example

  • For this configuration file, called my.config.yaml:

    vendor:
      domain: arm.com
    device:
      model-name: Smart Flip-flops
    priority: 1
    payload:
      url: http://some-url.com/files?id=1234
      file-path: ./my.fw.bin
      format: raw-binary
    
  • Run:

    manifest-tool create \
        --config my.config.yml \
        --key my.priv.key.pem \
        --fw-version 1.2.3 \
        --output my.manifest.bin
    

manifest-tool create-v1

Older versions of Device Management FOTA update client use manifest schema V1 and assume the public key is packaged in a x.509 certificate.

Prerequisites

  • An update private key and public key certificate.

    Keep the private key secret because it allows installing new firmware images on your devices.

    Provision the public key to the device.

    • To generate a private key, run:

      $ openssl ecparam -genkey -name prime256v1 -outform PEM -out my.pkey.pem
      
    • To generate a public key x.509 certificate, run:

      $ openssl req -new -sha256 \
            -key my.pkey.pem \
            -inform PEM \
            -out my.csr.csr
      $ openssl req -x509 -sha256 \
            -days 7300 \
            -key my.pkey.pem \
            -in my.csr.csr \
            -outform der \
            -out my.x509.certificate.der
      

      Note: Device Management FOTA treats the x.509 certificate as a container ONLY and does not enforce its validity - expiration, chain of trust, and so on - although it may be validated by other Device Management components. For production, we recommend creating a certificate with a lifespan greater than the product's expected lifespan (for example, 20 years).

Example

  • For this configuration file, called my.config.yaml:

    vendor:
      domain: arm.com
    device:
      model-name: DUT.my.device
    priority: 1
    payload:
      url: http://some-url.com/files?id=1234
      file-path: ./my.fw.bin
      format: raw-binary
    
  • Run:

    manifest-tool create-v1 \
        --config my.config.yaml \
        --key my.priv.key.pem \
        --update-certificate my.x509.certificate.der \
        --output my.manifest.bin
    

manifest-tool parse

Parses and validates existing manifest files.

Prerequisites

  • A manifest file (in our example my.manifest.bin).
  • Optionally, an update private key or public key or certificate to validate the manifest signature.

Example

$ manifest-tool parse \
  --manifest my.manifest.bin \
  --private-key my.priv.key.pem
----- Manifest dump start -----
Manifest:
vendor-id=fa6b4a53d5ad5fdfbe9de663e4d41ffe
class-id=3da0f138173350eba6f665498eace1b1
update-priority=15
payload-version=1572372313
payload-digest=b5f07d6c646a7c014cc8c03d2c9caf066bd29006f1356eaeaf13b7d889d3502b
payload-size=512
payload-uri=https://my.server.com/some.file?new=1
payload-format=raw-binary
----- Manifest dump end -----
2019-10-29 20:05:13,478 INFO Signature verified!

manifest-tool schema

Prints the input validation JSON schema bundled with the current tool. The manifest tool contains an input validation schema, which you can use as a self-documenting tool to better understand and validate the manifest tool input configuration.

Example

$ manifest-tool schema

Output:

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Manifest-tool input validator",
  "description": "This schema is used to validate the input arguments for manifest-tool",
  "type": "object",
  "required": [
    "vendor",
    "device",
    "priority",
    "payload"
  ],
  "properties": {
    "vendor": {
      "type": "object",
      "properties": {
        "domain": {
          "$ref": "#/definitions/non_empty_string",
          "description": "Vendor Domain",
          "pattern": "\\w+(\\.\\w+)+"
        },
        "vendor-id": {
          "$ref": "#/definitions/uuid_hex_string",
          "description": "Vendor UUID"
        },
        "custom-data-path": {
          "$ref": "#/definitions/non_empty_string",
          "description": "Path to custom data file  - must be accessible by the manifest-tool"
        }
      },
      "oneOf": [
        {"required": ["domain"]},
        {"required": ["vendor-id"]}
      ]
    },
    "device": {
      "type": "object",
      "properties": {
        "model-name": {
          "$ref": "#/definitions/non_empty_string",
          "description": "Device model name"
        },
        "class-id": {
          "$ref": "#/definitions/uuid_hex_string",
          "description": "Device class UUID"
        }
      },
      "oneOf": [
        {"required": ["model-name"]},
        {"required": ["class-id"]}
      ]
    },
    "priority": {
      "description": "Update priority",
      "type": "integer"
    },
    "payload": {
      "type": "object",
      "required": [
        "url",
        "format",
        "file-path"
      ],
      "properties": {
        "format": {
          "description": "Payload format type",
          "enum": [
            "raw-binary",
            "arm-patch-stream"
          ]
        },
        "url": {
          "$ref": "#/definitions/non_empty_string",
          "description": "Payload URL in the cloud storage"
        },
        "file-path": {
          "$ref": "#/definitions/non_empty_string",
          "description": "Path to payload file - must be accessible by the manifest-tool"
        }
      }
    },
    "component": {
      "description": "Component name - only relevant for manifest v3",
      "$ref": "#/definitions/non_empty_string"
    },
    "sign-image":{
      "description": "Do sign installed image - only relevant for manifest v3. Required for devices with PKI image authentication in bootloader",
      "type": "boolean"
    }
  },
  "definitions": {
    "non_empty_string": {
      "type": "string",
      "minLength": 1
    },
    "uuid_hex_string": {
      "type": "string",
      "pattern": "[0-9a-fA-F]{32}",
      "description": "HEX encoded UUID string"
    }
  }
}

Note: This schema is an example captured for manifest-tool version 2.0. Make sure to execute the manifest-tool schema command on your machine to get the up-to-date schema for your installed tool version.

manifest-tool public-key

Creates a public key file containing a key in uncompressed point format (X9.62). Provisioning this file to the device enables the device to verify the manifest signature.

Example

manifest-tool public-key my.priv.key.pem --out my.pub.key.bin

manifest-delta-tool

Use this tool to generate delta patch files for delta updates.

Run manifest-delta-tool --help for more information about usage and arguments.

Prerequisites

  • The firmware currently installed on the device and the updated firmware image. Required for calculating the delta patch.

Example

$ manifest-delta-tool -c current_fw.bin -n new_fw.bin -o delta-patch.bin

Note 1: Compression block size has a direct impact on the amount of memory required by the device receiving the update. The device requires twice the amount of RAM in runtime to decompress and apply the patch.

Note 2: Compression block must be aligned with network (COAP/HTTP) buffer size used for download. Misalignment in sizes may result in device failure to process the delta patch file.

manifest-dev-tool

manifest-dev-tool is a developer tool for running a simplified update campaign.

Use manifest-dev-tool for development flows only.

manifest-dev-tool commands:

Note: Run manifest-dev-tool --help for more information about all commands, or manifest-dev-tool <command> --help for more information about a specific command, including its parameters and how to use them.

manifest-dev-tool init

Initializes the developer environment:

  • Creates an update private key and a public key certificate.
  • Generates a fota_dev_resources.c file with symbols that allow bypassing the provisioning step in the developer flow.
  • Creates configuration files, which you use when you run the manifest-dev-tool create and manifest-dev-tool update commands.

Note: Only use the credentials the manifest-dev-tool tool generates in the development flow.

Example

manifest-dev-tool init --force -a [API key from Device Management Portal]

manifest-dev-tool create

Creates developer manifest files without requiring an input configuration file.

Example

manifest-dev-tool create \
    --payload-url http://test.pdmc.arm.com?fileId=1256 \
    --payload-path new_fw.bin \
    --fw-version 1.2.3 \
    --output update-manifest.bin

Note: To run a delta update, create the file specified in the --payload-path argument using the manifest-delta-tool command. The file has the same name but a .yaml suffix (in the example, new-fw.yaml instead of new-fw.bin).

Note: Add the --sign-image argument to update a device with a secure bootloader, which requires an image signature.

manifest-dev-tool create-v1

Creates developer manifest files in v1 format without requiring an input configuration file.

Example

manifest-dev-tool create-v1 \
    --payload-url http://test.pdmc.arm.com?fileId=1256 \
    --payload-path new-fw.bin \
    --output update-manifest.bin

Note: To run a delta update, create the file specified in the --payload-path argument using the manifest-delta-tool command. The file has the same name but a .yaml suffix (in the example, new-fw.yaml instead of new-fw.bin).

manifest-dev-tool update

Same as manifest-dev-tool create but also lets you interact with Device Management Portal to run a full update campaign on a single device.

The command:

  1. Uploads the payload to Device Management Portal and obtains the URL.
  2. Creates a manifest file with the URL from the previous step and obtains a manifest URL.
  3. Creates an update campaign with the manifest URL from the previous step.
  4. Starts the update campaign if you pass the --start-campaign or --wait-for-completion argument.
  5. If you pass the --wait-for-completion argument, the tool waits for campaign completion for the time period specified by --timeout or until the campaign reaches one of its terminating states in Device Management Portal (expired, userstopped, or quotaallocationfailed).
  6. If you pass the --wait-for-completion argument without the --no-cleanup flag, the tool removes the uploaded test resources from Device Management Portal before exiting. When you terminate the tool, the tool skips the cleanup step.

Note: manifest-dev-tool init creates the directory you specify in --cache-dir.

Example

manifest-dev-tool update \
    --payload-path my_mew_fw.bin \
    --fw-version 1.2.3 \
    --wait-for-completion

Note: The tool creates the device filter for the campaign based on the unique class-id and vendor-id fields the manifest-dev-tool init command generates.

manifest-dev-tool update-v1

Same as manifest-dev-tool update with a v1-format manifest.

Example

manifest-dev-tool update-v1 \
    --payload-path my_mew_fw.bin \
    --wait-for-completion

Developer workflow example

  1. Clone the https://github.com/ARMmbed/mbed-cloud-client-example repository.

  2. From within the repository, execute:

    manifest-dev-tool init --force -a $MY_API_KEY
    

    The tool generates and compiles a fota_dev_resources.c file.

  3. Flash the bootloader and firmware to the device.

  4. Create a firmware update candidate.

    OR

    Create a delta-patch:

    manifest-delta-tool -c curr_fw.bin -n new_fw.bin -o delta.bin
    
  5. Issue an update:

    manifest-dev-tool update --payload-path
    new_fw.bin --wait-for-completion
    

    For a delta update, the payload is delta.bin.

Troubleshooting

  • Getting more context on unexpected errors.

    When the tool exits with a non-zero return code, it may be helpful to get more context on the failure.

    Solution: execute the tool with the --debug flag at the top argument parser level. For example:

    manifest-dev-tool --debug update
    
  • manifest-dev-tool update ... --wait-for-completion takes longer than expected.

    manifest-dev-tool update creates a unique class-id and vendor-id generated per developer. Device Management expects a single device with these properties to connect to Device Management Portal.

    In rare cases, during development, a device's device-id might change after you re-flash it. This may result in two devices having the same class-id and vendor-id in Device Management Portal. In this scenario, Device Management will detect both devices and try to update them both, although one of them no longer exists

    Solution: Manually delete the unwanted device from Device Management Portal. Alternatively, run manifest-dev-tool update ... --wait-for-completion with --device-id DEVICE_ID to override the default campaign filter and target a specific device by its ID.

  • Update fails and manifest-dev-tool update ... --wait-for-completion cleans all resources.

    You might want to leave the resources (firmware image candidate, update manifest and update campaign) on a service for further investigation/retry.

    Solution: Execute manifest-dev-tool update ... --wait-for-completion with the --no-cleanup flag.

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

manifest-tool-2.0.0.tar.gz (74.7 kB view details)

Uploaded Source

Built Distributions

manifest_tool-2.0.0-cp39-cp39-manylinux2014_x86_64.whl (320.6 kB view details)

Uploaded CPython 3.9

manifest_tool-2.0.0-cp39-cp39-manylinux2010_x86_64.whl (324.1 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

manifest_tool-2.0.0-cp39-cp39-manylinux1_x86_64.whl (324.1 kB view details)

Uploaded CPython 3.9

manifest_tool-2.0.0-cp38-cp38-win_amd64.whl (65.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

manifest_tool-2.0.0-cp38-cp38-win32.whl (66.7 kB view details)

Uploaded CPython 3.8 Windows x86

manifest_tool-2.0.0-cp38-cp38-manylinux2014_x86_64.whl (320.9 kB view details)

Uploaded CPython 3.8

manifest_tool-2.0.0-cp38-cp38-manylinux2010_x86_64.whl (324.3 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

manifest_tool-2.0.0-cp38-cp38-manylinux1_x86_64.whl (324.3 kB view details)

Uploaded CPython 3.8

manifest_tool-2.0.0-cp38-cp38-macosx_10_15_x86_64.whl (84.5 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

manifest_tool-2.0.0-cp37-cp37m-win_amd64.whl (65.7 kB view details)

Uploaded CPython 3.7m Windows x86-64

manifest_tool-2.0.0-cp37-cp37m-win32.whl (66.7 kB view details)

Uploaded CPython 3.7m Windows x86

manifest_tool-2.0.0-cp37-cp37m-manylinux2014_x86_64.whl (322.1 kB view details)

Uploaded CPython 3.7m

manifest_tool-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl (325.5 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.12+ x86-64

manifest_tool-2.0.0-cp37-cp37m-manylinux1_x86_64.whl (325.5 kB view details)

Uploaded CPython 3.7m

manifest_tool-2.0.0-cp37-cp37m-macosx_10_15_x86_64.whl (84.5 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

manifest_tool-2.0.0-cp36-cp36m-win_amd64.whl (70.0 kB view details)

Uploaded CPython 3.6m Windows x86-64

manifest_tool-2.0.0-cp36-cp36m-win32.whl (71.2 kB view details)

Uploaded CPython 3.6m Windows x86

manifest_tool-2.0.0-cp36-cp36m-manylinux2014_x86_64.whl (321.0 kB view details)

Uploaded CPython 3.6m

manifest_tool-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl (324.5 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.12+ x86-64

manifest_tool-2.0.0-cp36-cp36m-manylinux1_x86_64.whl (324.5 kB view details)

Uploaded CPython 3.6m

manifest_tool-2.0.0-cp36-cp36m-macosx_10_15_x86_64.whl (84.5 kB view details)

Uploaded CPython 3.6m macOS 10.15+ x86-64

manifest_tool-2.0.0-cp35-cp35m-manylinux2014_x86_64.whl (320.7 kB view details)

Uploaded CPython 3.5m

manifest_tool-2.0.0-cp35-cp35m-manylinux2010_x86_64.whl (324.2 kB view details)

Uploaded CPython 3.5m manylinux: glibc 2.12+ x86-64

manifest_tool-2.0.0-cp35-cp35m-manylinux1_x86_64.whl (324.2 kB view details)

Uploaded CPython 3.5m

manifest_tool-2.0.0-cp35-cp35m-macosx_10_15_x86_64.whl (84.5 kB view details)

Uploaded CPython 3.5m macOS 10.15+ x86-64

File details

Details for the file manifest-tool-2.0.0.tar.gz.

File metadata

  • Download URL: manifest-tool-2.0.0.tar.gz
  • Upload date:
  • Size: 74.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest-tool-2.0.0.tar.gz
Algorithm Hash digest
SHA256 3dda7c230353c747e957d59b75111a0833a84da6c8496c3a7be34ac831efe91f
MD5 bcbfa9d5718590c44d0552b08ba6bc2e
BLAKE2b-256 d65f66aef304d794cdd3c35551d4cf09c86898a5b57ca4ea5159eb88b1beb950

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 320.6 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5147311f8dd238cae212ebd046b1e17e6be39882c05ff39c1c27d884e32b9324
MD5 ec6aa0545a73193f6418ca08e902082e
BLAKE2b-256 624546cb835334a0b1e09a14112232b035640c8996ca6211b2079359ef04f9fd

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp39-cp39-manylinux2010_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 324.1 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 3861d334508f4ac797946a90936bbbf6e20300376859be2063e9177d810e421f
MD5 d24490a0b505ec5598166d282e0be3f7
BLAKE2b-256 8d87e723d62d4129c2c61cdd9fabdce9af60b612a1ef2a7bff3e24138e148baf

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp39-cp39-manylinux1_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 324.1 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 af2e1c218e4ee5614d9e6ef2578f6f269d3fbc2eff16f572ca96dcc71ed6cdf2
MD5 fa7d70c402e68ee11eb507f0d1383428
BLAKE2b-256 9f16f2b34f1bbd553dfbcb5839eb7fd0192efb33a79ef21ece22775c62758e50

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 dff6e439fa756e3eb46d82278768faa94800ee210c290819ee23730a870626d6
MD5 92d10374db074ca5fab4045f2f72e604
BLAKE2b-256 fc7a46058131a04cbc2b682bffe4257af07a83b1f8815b1504ee2251f0bfec62

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 66.7 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 1995a5e4576675801ddfeb4faf5d7da06bdd28b07f7315a15e658d1be8b5b68a
MD5 f5ee4a996995a144d5bec0e7464b223a
BLAKE2b-256 9ce50b6f8641851609d3d2d7cba28b4fd17ea5b0b3f6978c865d36eb6cf66e3d

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 320.9 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aa370487138877043123b4436af646fe100b8673d2a9291226b6001bb487f9b4
MD5 b692223bdd9d9d85e34d973bdce1f4df
BLAKE2b-256 9f6bab0b561d3f85ca56ad6ac37ccfceefa243203684fab1a646a4366dc73faa

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 324.3 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 021d82815279d4980f151aa3db19a1c30c44058b05663aa905c9b60c4ff22671
MD5 2aaf904e43d1916cc6652010ba16aa6b
BLAKE2b-256 75cc312690936546e967e788f88f12d6a5a85c018188486707147322f1a3460a

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 324.3 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d329494b245e543bf8b3607a03f7cf745000d4a4956044d124df7f7d6846bd09
MD5 ed611625eafc01bc771e1eae1b8f5608
BLAKE2b-256 0f2eaafd886ee0949cefe876fb749e3bbbfc06988fc7072587236b6b2d1e32b6

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a31c85117f9874f84919a0a1210bb05b47461c307788c144ff77607f2b02bc9f
MD5 cb6ec223841bbf179b43a3ab50a0fd17
BLAKE2b-256 accd944f03abd49bfcb43cf38bb13a10ccb119bf8d875b2891971a5371602b6b

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 65.7 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 8586758ed49c961ecd3b617045498bf340bc38cb112e4faf1becc186a22121d8
MD5 93e86ce1f00584b54e7e2d407ea02800
BLAKE2b-256 2715c43e7ab52301409d4f72518e53bdddb3a9354d2f61c356265d18dd501b1f

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 66.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 c901b4aa87f780d8861aa6b8610b3810ae4fb3ebc4eec2626a872ac45b89db7e
MD5 7bde86b68cb5e1aeeabe327c2d29e064
BLAKE2b-256 93436ef93aaf0ff2d35616790e04a4bc671c7f868a441a689eacc8022536a809

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 322.1 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2806b40b94f2e1cfe663a0ec33f434448c7b18725a6c059b630c91484ba2b911
MD5 58575f6fb0453f59d9aa6d48170a7002
BLAKE2b-256 4c03cdd136d7761dfc07ed5690b772db5a1014fe598f27a5aabdec2156b413ae

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 325.5 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5dca13b4ea2a5449684cea11cbe1eb586de6c57142ee09febc9bd0e633b6608c
MD5 bebc0111b10375f475b3d163eb0c192f
BLAKE2b-256 7380cfbc41ba81b0266ecf0540ad5f70649fcb2b2360b224549ded919051503f

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 325.5 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8feefafa81719a06dcf86379de46586536f891fc258df6dc3fac9299f6fdf2d8
MD5 4b2135bc4b5600926d702f8ebdd994aa
BLAKE2b-256 349fe44529825a8918964de2af0b01e736668d6b00242fa12c359d44fc48e0fb

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 ffaa776a31742b0da3d796c94a04877f46161ee9b062e52f17b6d8cd92ec8dac
MD5 04d4b03a2123ae8228d927fc2a63b430
BLAKE2b-256 b9a4d2086ded231490c8c62119026cab90db2c99cbc7edd66b677c51b83081c7

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 70.0 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 5269365eefeb4341fa97630a8b3c93d0dad7687cb4362298fa6c362d63cea5cc
MD5 56ea3bcc22c68a105fb405768fea1c8e
BLAKE2b-256 8c089b5ed5616f5661c277f118d0a6f7a098358c19872aa92fa6861391f8c62a

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 71.2 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 36dc4ab6886b5e394cfb12fd6f5a20cc08952b5f25a8b4e1af09d6da83745efb
MD5 89583ec93247dd0123ab0c5c23697c5b
BLAKE2b-256 0a74bad95107ddf7d7d69df15eb2af4324e3b8d7f2199c9a6714e055115c71f0

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 321.0 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0aed832e73b58a58428b3797cd19b8246a4938ba7e4eef4217ce58dfe4d75be1
MD5 d9984379d454584d33b511334fc6d422
BLAKE2b-256 a9650f0f54f4ba2e568f258236fd2e9dd5426b01fe9c938854667b643802b329

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 324.5 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4d01bb6adf1f7309892a884d99f58b049b733a1c2d15667a12f99da9c97fc78c
MD5 1be8388aba1b73d24ef89091b06fa0c5
BLAKE2b-256 784fad20c41a6ab3ea3903d98b07bb3f3d2179b13f29fc31280ab9263ae492c5

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 324.5 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e578ae32077b8d539fdf51b56ace2855f1a0786de6faba1a7f3895759eef50b4
MD5 8f85f8e24253284bd096495da223f25d
BLAKE2b-256 96d7ab4d69ee8f4cb44dbe50ac2816acd7ae8f41c13fdcaa038cdd2f33761c76

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp36-cp36m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp36-cp36m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: CPython 3.6m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp36-cp36m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 17f4ab82079996619e0d29d6bba4a42f3a403c2f83d8b60435c6382683216fc3
MD5 d771204c87b0087028c5f3aff827a114
BLAKE2b-256 368c9fb961e965e2c1c2a7b901d2ffe485db654587ecdd89325addd993f92dc5

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp35-cp35m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp35-cp35m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 320.7 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp35-cp35m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f53a24ac546a6f0bbc610d2cee905e215a276864bf9483fea341a793c79808d4
MD5 10600bad29e8d435e66200f0aecd4ac9
BLAKE2b-256 f408a85cd3fec8340062f7a9537712457af3496711daf7e71c8f610e29df8455

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp35-cp35m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 324.2 kB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 83193ad24bbab8658d4e20e5ccefef5f1b02a91d6dde513b95d512fad982913b
MD5 6f1c62955c2a201f1e7ceeb9a1ea8a31
BLAKE2b-256 d10a0c0005aca4e09b06ba86ba9422712baef903a5926ba69386f0e6a5f88467

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 324.2 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6df0ff63fe5277faa9f936a12aea61fe9b3bae34fb21d1d6f90bf4c5181e7fd9
MD5 c33e17b40a719490e81d31da7237c451
BLAKE2b-256 3dbc233c7c24e2e7acadf10da224828cd5884eb9f31d00bb8e2e142d7bc468d2

See more details on using hashes here.

File details

Details for the file manifest_tool-2.0.0-cp35-cp35m-macosx_10_15_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.0.0-cp35-cp35m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 84.5 kB
  • Tags: CPython 3.5m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.0

File hashes

Hashes for manifest_tool-2.0.0-cp35-cp35m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 74222233a9a0a041a3e4ef4eeeef79660302d32c244d01c3428e31716c059625
MD5 1aae0d2ef8144789fb63611c5732093e
BLAKE2b-256 30aaefd0e2bdd75f6c0ecfcd5dcdd5c2eb78547e66d1ca9d2d1a4eeeb1a9ed61

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