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 PelionIoT/manifest-tool repository to your machine:

    $ git clone https://github.com/PelionIoT/manifest-tool.git
    
  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.priv.key.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: pelion.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: pelion.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.yaml \
        --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.priv.key.pem
      
    • To generate a public key x.509 certificate, run:

      $ openssl req -new -sha256 \
            -key my.priv.key.pem \
            -inform PEM \
            -out my.csr.csr
      $ openssl req -x509 -sha256 \
            -days 7300 \
            -key my.priv.key.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: pelion.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 \
  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.pelion.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.pelion.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_new_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_new_fw.bin \
    --wait-for-completion

Developer workflow example

  1. Clone the https://github.com/PelionIoT/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.1.0.tar.gz (78.7 kB view details)

Uploaded Source

Built Distributions

manifest_tool-2.1.0-cp39-cp39-win_amd64.whl (70.2 kB view details)

Uploaded CPython 3.9 Windows x86-64

manifest_tool-2.1.0-cp39-cp39-win32.whl (71.1 kB view details)

Uploaded CPython 3.9 Windows x86

manifest_tool-2.1.0-cp39-cp39-manylinux2014_x86_64.whl (325.1 kB view details)

Uploaded CPython 3.9

manifest_tool-2.1.0-cp39-cp39-manylinux2010_x86_64.whl (328.6 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

manifest_tool-2.1.0-cp39-cp39-manylinux1_x86_64.whl (328.6 kB view details)

Uploaded CPython 3.9

manifest_tool-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl (89.4 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

manifest_tool-2.1.0-cp38-cp38-win_amd64.whl (70.2 kB view details)

Uploaded CPython 3.8 Windows x86-64

manifest_tool-2.1.0-cp38-cp38-win32.whl (71.1 kB view details)

Uploaded CPython 3.8 Windows x86

manifest_tool-2.1.0-cp38-cp38-manylinux2014_x86_64.whl (325.3 kB view details)

Uploaded CPython 3.8

manifest_tool-2.1.0-cp38-cp38-manylinux2010_x86_64.whl (328.8 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

manifest_tool-2.1.0-cp38-cp38-manylinux1_x86_64.whl (328.8 kB view details)

Uploaded CPython 3.8

manifest_tool-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl (89.4 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

manifest_tool-2.1.0-cp37-cp37m-win_amd64.whl (70.2 kB view details)

Uploaded CPython 3.7m Windows x86-64

manifest_tool-2.1.0-cp37-cp37m-win32.whl (71.1 kB view details)

Uploaded CPython 3.7m Windows x86

manifest_tool-2.1.0-cp37-cp37m-manylinux2014_x86_64.whl (326.5 kB view details)

Uploaded CPython 3.7m

manifest_tool-2.1.0-cp37-cp37m-manylinux2010_x86_64.whl (329.9 kB view details)

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

manifest_tool-2.1.0-cp37-cp37m-manylinux1_x86_64.whl (329.9 kB view details)

Uploaded CPython 3.7m

manifest_tool-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl (89.3 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

manifest_tool-2.1.0-cp36-cp36m-win_amd64.whl (70.2 kB view details)

Uploaded CPython 3.6m Windows x86-64

manifest_tool-2.1.0-cp36-cp36m-win32.whl (71.1 kB view details)

Uploaded CPython 3.6m Windows x86

manifest_tool-2.1.0-cp36-cp36m-manylinux2014_x86_64.whl (325.5 kB view details)

Uploaded CPython 3.6m

manifest_tool-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl (328.9 kB view details)

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

manifest_tool-2.1.0-cp36-cp36m-manylinux1_x86_64.whl (328.9 kB view details)

Uploaded CPython 3.6m

manifest_tool-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl (89.4 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

manifest_tool-2.1.0-cp35-cp35m-manylinux2014_x86_64.whl (325.2 kB view details)

Uploaded CPython 3.5m

manifest_tool-2.1.0-cp35-cp35m-manylinux2010_x86_64.whl (328.7 kB view details)

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

manifest_tool-2.1.0-cp35-cp35m-manylinux1_x86_64.whl (328.7 kB view details)

Uploaded CPython 3.5m

File details

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

File metadata

  • Download URL: manifest-tool-2.1.0.tar.gz
  • Upload date:
  • Size: 78.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest-tool-2.1.0.tar.gz
Algorithm Hash digest
SHA256 bfd7ee691b082bb28bb7dccde7f726ce99bfb68a0bf503c1b7325a6700ef3a3e
MD5 6b471424687a04671699909b9634839b
BLAKE2b-256 a412d4473416831456f9932c21d37f052875a48930b375fb7ea6285ecdcb339c

See more details on using hashes here.

File details

Details for the file manifest_tool-2.1.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: manifest_tool-2.1.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4f3a2c1ba50d1c4aacc3e396bc0906daa09073b0cb4428862d2469eda1a711a4
MD5 b721f14939abd64ded57ad857a93bbcf
BLAKE2b-256 a4cd1021664dedba43384526e554295d44b10549d71944e440df6720549c215c

See more details on using hashes here.

File details

Details for the file manifest_tool-2.1.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: manifest_tool-2.1.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 dbcb9aad03d1b2d32298bc472348d84d8e27fcb9990db6d7bde306755a01787f
MD5 434814e76aca3db4ee235e0ae8c1f341
BLAKE2b-256 e8f6242c568a7d6a29668b3dc1e946a66d9c86f01f2c66a8ed23c3bc4904fcd5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 325.1 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5be4340711c3f15e05c37dd3845a04a0c0ba959815623d65430bc6e130507ce0
MD5 ecaf11d4ce29cb8d20c17ab5bbbf7e05
BLAKE2b-256 85a4d5204f25ccd65ed5b2ce026b5c18d0ed902f1b405dfc2915f3a7736fda0b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 328.6 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 54b118b8f1f056f52dc3596f4fc761a4a67860539c748b5d633087f5c1269990
MD5 dbd678bb85a47e5b3c9e73af0ab85239
BLAKE2b-256 d50becce4e234747ce6f5d4531465e55d56f09d11238fe685e2c3c0e37c90ec2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 328.6 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 561d706183b43ede69e05c68d7d131588c111ccb19a3d7ab5b5212146a30b8fb
MD5 b13548134d0aecee72a1cf7a030f8747
BLAKE2b-256 91cfef3c76547c5c18524366da07d414a97870ffe1a67af8a4348bcce0689b75

See more details on using hashes here.

File details

Details for the file manifest_tool-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ecc76b6c41976d1a2ebb7e765e2bf6a1ae088dbf5c839a96a99a584d002bef58
MD5 529c4ea7de632d196a8a9f6080883e49
BLAKE2b-256 65213b688ce4f9a13a6ff97f382bcf278c296693a40d2d12cbf7919bf9e17011

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1f420e05e4c02745b0e44453c4b6473d6561e45b485026c523f34500d795a7db
MD5 8dd8118e994577d053e949ec6509c10f
BLAKE2b-256 a789f5cf148a17a99a9933e852f9f899a75d700492da684e65d0fd56ec6377c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 c35b5bdcb1e6f95409e73ae24661d31464825a50daf5eaa872fc87e48cd6a86a
MD5 952429d3a6006d968ba74a531c73842c
BLAKE2b-256 8dc5649a5fbb67846640da231bccfbd6f77c030dcbfd859504abada43272a966

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 325.3 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 539649885235c9fa921c4365e1cdc8cce531da6a0461b1603277afd662e5f80f
MD5 ffebc5931f94d1b4f99f86815866b665
BLAKE2b-256 85e9bffd2f1cce0dc1e60b905f5fa6d946dc1bbb4c18818dda8fbca45ffc8814

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 328.8 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 79c0f1dec179cf81dfd83b3d8eacf025a4c2741f90fbdf6259309a95639975eb
MD5 0aff50eec363ba3c2ce8b56214b16003
BLAKE2b-256 dde0bde53f04b4b72f029a9060da006427737d2008ea8aa2b634a17814182b2f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 328.8 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fdfb63c25abac1312085f1989986cd79f581339e942746349e67f8f1ff5e8059
MD5 5e3523708acecb0fe7b08c3f5ed03c5f
BLAKE2b-256 e64b71da21d3d12afc80a917dc6cc2f84f30fb8dca7d09b9d0e7cf92b4facc85

See more details on using hashes here.

File details

Details for the file manifest_tool-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 697bd7ebb5bf0713ad5f0b071699d04fa51401812ddce74d29146bc2f01596f1
MD5 9efb37b3bc3ede96837909534ef1534b
BLAKE2b-256 52add9ed222722b660255f81693707ce47916bc68c953db4700561588522d562

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 5357088909158293963d8e6ade2d22d02ba887aaefbdc0b2792dd5dc9ceaac85
MD5 0c82e8ed1bbd1741ca7d4832e554f2ee
BLAKE2b-256 1f5fa1fa101efd4a8047c98e30a415a0e8a050c402aa7c7d970d158d20ab2589

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 7e414799a7c5696c30f39338bc2c064d9d51c08455ac2faccf3130d9cc9b4177
MD5 34d2b45d33e9dd45a24cdd0077b6437a
BLAKE2b-256 cf3f4767bec59e07bd25d1f814cb7840dd3bedcba8dc663256e61a5668dcca7b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 326.5 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5ed73e558eff0face9c6ddc5e6ab9e34deea3a9d8e18d477ce4508bfc97395b8
MD5 0033202f1b4947f79c672df4c7c0befd
BLAKE2b-256 6ac74b1cfc736994b171e6b137070d226b7732245a7852f732c6d2dc33ecf7c5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 329.9 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9e30df5cb2b2bad8113076d42c3a421c141f7329f6da1873c02dccd1f0ce464f
MD5 06bd4b2b30764d57d101ca6e5d65b290
BLAKE2b-256 5664456694f424d659316ff96717684686d641062cc6baec38f09e388236683b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 329.9 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 6370ae2a2995cba3367d496f777f955d90ae7a8dc57b31877c6442951331238e
MD5 f5a89e44746bec07aba2d8c426f36ebb
BLAKE2b-256 1a2f1e6881db8760679546378d97882f4b43ebe9bf562cf130f40edc4f7ed073

See more details on using hashes here.

File details

Details for the file manifest_tool-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 89.3 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 38ee2534d87dde50377e3c899562435b565910f6d8475ca341efdec99fd8b047
MD5 d59435f6d42904848cd2fdb0733c4d09
BLAKE2b-256 56df3675ec2f019a7537b6249b3d3f114298086c1714112954fb355bfedc227c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 f80c421b5d0c4075a9eed5e578de43f4438136bcfbce2fde066e178352bcd1cb
MD5 5a8499ac26b86bc73acc48d323c7854d
BLAKE2b-256 1e91157c6e8876858d6fdb91267fc126bd4aa00bced9e2edb304dd48ec6a4e04

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 71.1 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 1ed8de659770ff17a88657ecaec3bf4b480fb51728766879a2b1404b4aca487d
MD5 52bcfbdd6162a8a22a24f7876b02347d
BLAKE2b-256 a55051ce25d9d1be6799b56779383468ba7c8825e7470ae32cc75039160e30c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 325.5 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a5199c9fea8f59ea8cd0ad028c6fef07df5b23614b1e7029938e3eb6f9132c3b
MD5 ab93b1f08a8da69ca656477a211cd699
BLAKE2b-256 9c13c044bab60bb06c1f218b929ba096a49bbc6b0981218ea9ce624bd0a5830c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 328.9 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a8dc22c5cf51a49c8ea535f8cc195be3e8c49dfec99cfb254fd947d01c2a25c5
MD5 777c178a39cfac593cccdd86e28de862
BLAKE2b-256 d40eb0b47147a9d0aa4ab3edd1dd82c2f523a7a1d821ab5f5a4e5edc4808627f

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 328.9 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 40d48ae31551d909e23d9794528a0130785332426b14e26e1e870f80565f68a2
MD5 f317987cf1d3f04cc9a86847b69020f5
BLAKE2b-256 f6b313017d653d13813d84d29c80a8d4333aecffc13f4ddf89db8ab284d6dab9

See more details on using hashes here.

File details

Details for the file manifest_tool-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: manifest_tool-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 89.4 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cd8a7cc68f72dd9682567ee9b25ecbdaf1ede6f0a28dcf6a73de2b04b336c867
MD5 fd00f1e09c7c28abccc96badcb42bead
BLAKE2b-256 1b768376275e342e4c00268c53ab72c1ec4702541bed639e9966330e5ec19d45

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp35-cp35m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 325.2 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp35-cp35m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a1f8de5f367005533845ce41ec01768e2cac7fddaa54d6e50f0cca20c7fb3937
MD5 cccb072810879c58903ea968b998eebb
BLAKE2b-256 dc4117ed5f24bc4c67a203ff54030115989fba86a8f2e293e45b15a2050e11a1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp35-cp35m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 328.7 kB
  • Tags: CPython 3.5m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp35-cp35m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 b5244069367f9dec5dd7e85d4d7367e29d51c0e8703245e7c0a1a0807063a577
MD5 73791131d1d233187b172a81adeda7bc
BLAKE2b-256 5de5529749e6a648098e0c7fee96aa324bad689a49d56464ba74dc84dacf3273

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.1.0-cp35-cp35m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 328.7 kB
  • Tags: CPython 3.5m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.25.0 setuptools/51.0.0 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.1.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 5dcbe88a03a9996c1a1cfffe20be91ae6d8d0014bc91e3c887ce10fbbb9ff257
MD5 22f1e4efdb1c2b3abaff82426d09b17c
BLAKE2b-256 17ebd91a2ea2a2b2d0b739f44c128ec56f2453e947b426620d9b259e0bce16a9

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