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 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 isolated Python virtual environment.

Installing the manifest tool from PyPi

Prerequisites:

pip install manifest-tool

Installing from local source tree

Prerequisites:

$ git clone https://github.com/PelionIoT/manifest-tool.git
$ pip install <path to manifest-tool's local source tree>

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

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 your devices can access, 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 (".")
                          # Will be used to generate a vendor UUID
      # or
      vendor-id: fa6b4a53d5ad5fdfbe9de663e4d41ffe  # Valid vendor UUID
      custom-data-path: my.custom-data.bin # Vendor's custom data file -
                                           # to be passed to the target devices.
                                           # only relevant for manifest v3 format.
    
    device:  # One of "model-name" or "class-id" fields are expected
      model-name: Smart Slippers  # A device model name
                                  # Will be used to generate a device-class UUID
      # or
      class-id: 327c726ac6e54f7a82fbf1d3beda80f0  # 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 campaigns
                          #  arm-patch-stream - for delta update campaigns
    
    component: MAIN  # [Optional] The name of the component to be updated - 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
    

Note: The value of --fw-version can be between 0.0.1 and 999.999.999 and must be bigger than the firmware version currently installed on the device.

manifest-tool create-v1

Older versions of Device Management 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 update client 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).

  • Upload the new firmware binary to a server that your devices can access, and obtain the URL for the uploaded firmware binary.

  • A configuration file in JSON or YAML format (same as manifest-tool create).

Example

  • 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

manifest-tool public-key

Create a public key file in uncompressed point format. 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: Additional configuration file with same name but with .yaml extension will be generated. Both files are required by the manifest-tool. Only the output file specified by --output argument should be uploaded to Pelion storage.

Note 2: 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 3: 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.

  • Generates credentials and a configuration file in the tool's cache directory:

    • dev.key.pem - An update private key.
    • dev.cert.der - An update public key certificate.
    • dev.cfg.yaml - Developer configuration file.

    The default cache directory name is .manifest-dev-tool.

  • Generates an update resource C file with symbols that allow bypassing the provisioning step in the developer flow. Default name is update_default_resources.c.

Note 1: Use the credentials generated by manifest-dev-tool init in the development stage only.

Note 2: You can keep your access key in the .pelion-dev-presets.yaml file in your home directory and pass it using the --gw-preset option.

Example of .pelion-dev-presets.yaml:

usa:
    host: https://api.us-east-1.mbedcloud.com
    access_key: ak_SOME_VERY_SECRET_ACCESS_KEY
japan:
    host: https://api.ap-northeast-1.mbedcloud.com
    access_key: ak_SOME_OTHER_VERY_SECRET_ACCESS_KEY

To obtain an access key and API host URL, in Device Management Portal, click Access Management > Access keys > New access key. Limit access to the .pelion-dev-presets.yaml file to your user only.

Example

manifest-dev-tool init --access-key [Device Management access key]

Or

manifest-dev-tool init --gw-preset usa

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, specifiy the manifest-delta-tool output in the --payload-path argument and make sure the .yaml output with the same name sit next to that output file.

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, specifiy the manifest-delta-tool output in the --payload-path argument and make sure the .yaml output with the same name sit next to that output file.

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.

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.

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 for mbed-os devices

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

  2. From within the repository, execute:

    manifest-dev-tool init -a $MY_ACCESS_KEY
    

    The tool initializes the developer environment and generates a update_default_resources.c file.

  3. Build the firmware image for your device.

  4. Save the mbed-cloud-client-example_update.bin file.

  5. Flash the mbed-cloud-client-example.bin to the device.

  6. Wait for the device to register in the cloud.

  7. Make some changes to the source of the firmware application.

  8. Build the firmware update candidate for your device.

    • To test delta update, create delta patch:
      manifest-delta-tool -c <original mbed-cloud-client-example_update.bin> -n <new mbed-cloud-client-example_update.bin> -o delta.bin
      
  9. Issue an update campaign:

    manifest-dev-tool update --payload-path <new mbed-cloud-client-example_update.bin or delta.bin> --wait-for-completion
    

Upgrading from manifest tool v1.5.2 and lower

Manifest tool v2.0.0 is not compatible with previous versions.

This section explains how to migrate your existing configuration and credentials for use with manifest-tool version 2.2.0 and higher.

  • Initializing the development environment using previously-defined configuration and credentials

    Run the manifest-dev-tool init command as follow:

    manifest-dev-tool init --api-url <API URL> \
                           --access-key <Access key> \
                           --vendor-id <Vendor ID> \
                           --class-id <Class ID> \
                           --key <private key path> \
                           --update-certificate <certificate path>
    

    Where <API URL> and <Access key> are the values from the previous .mbed_cloud_config.json file, <Vendor ID> and <Class ID> are the values from the previous .manifest_tool.json file, and <private key path> and <certificate path> are the paths to your private key and update certificate, respectively.

    When the command finishes successfully, you can remove the previously-created files.

  • Adapting the create manifest configuration

    If you use manifest-tool (not manifest-dev-tool), create a new configuration file, as described in manifest-tool create, and copy the relevant information from your existing .manifest_tool.json file.

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.

  • Device does not support this manifest schema

    Solution: Your device does not support the created manifest schema. Switch from the create or update command to the create-v1 or update-v1 command respectively and vice versa.

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.2.0.tar.gz (81.7 kB view details)

Uploaded Source

Built Distributions

manifest_tool-2.2.0-cp39-cp39-win_amd64.whl (75.9 kB view details)

Uploaded CPython 3.9 Windows x86-64

manifest_tool-2.2.0-cp39-cp39-win32.whl (76.9 kB view details)

Uploaded CPython 3.9 Windows x86

manifest_tool-2.2.0-cp39-cp39-manylinux2014_x86_64.whl (330.4 kB view details)

Uploaded CPython 3.9

manifest_tool-2.2.0-cp39-cp39-manylinux2010_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

manifest_tool-2.2.0-cp39-cp39-manylinux1_x86_64.whl (333.9 kB view details)

Uploaded CPython 3.9

manifest_tool-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl (95.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

manifest_tool-2.2.0-cp38-cp38-win_amd64.whl (75.9 kB view details)

Uploaded CPython 3.8 Windows x86-64

manifest_tool-2.2.0-cp38-cp38-win32.whl (76.9 kB view details)

Uploaded CPython 3.8 Windows x86

manifest_tool-2.2.0-cp38-cp38-manylinux2014_x86_64.whl (330.7 kB view details)

Uploaded CPython 3.8

manifest_tool-2.2.0-cp38-cp38-manylinux2010_x86_64.whl (334.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

manifest_tool-2.2.0-cp38-cp38-manylinux1_x86_64.whl (334.1 kB view details)

Uploaded CPython 3.8

manifest_tool-2.2.0-cp38-cp38-macosx_10_9_x86_64.whl (95.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

manifest_tool-2.2.0-cp37-cp37m-win_amd64.whl (75.9 kB view details)

Uploaded CPython 3.7m Windows x86-64

manifest_tool-2.2.0-cp37-cp37m-win32.whl (76.8 kB view details)

Uploaded CPython 3.7m Windows x86

manifest_tool-2.2.0-cp37-cp37m-manylinux2014_x86_64.whl (331.9 kB view details)

Uploaded CPython 3.7m

manifest_tool-2.2.0-cp37-cp37m-manylinux2010_x86_64.whl (335.2 kB view details)

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

manifest_tool-2.2.0-cp37-cp37m-manylinux1_x86_64.whl (335.2 kB view details)

Uploaded CPython 3.7m

manifest_tool-2.2.0-cp37-cp37m-macosx_10_9_x86_64.whl (95.0 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

manifest_tool-2.2.0-cp36-cp36m-win_amd64.whl (75.9 kB view details)

Uploaded CPython 3.6m Windows x86-64

manifest_tool-2.2.0-cp36-cp36m-win32.whl (76.8 kB view details)

Uploaded CPython 3.6m Windows x86

manifest_tool-2.2.0-cp36-cp36m-manylinux2014_x86_64.whl (330.8 kB view details)

Uploaded CPython 3.6m

manifest_tool-2.2.0-cp36-cp36m-manylinux2010_x86_64.whl (334.3 kB view details)

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

manifest_tool-2.2.0-cp36-cp36m-manylinux1_x86_64.whl (334.3 kB view details)

Uploaded CPython 3.6m

manifest_tool-2.2.0-cp36-cp36m-macosx_10_9_x86_64.whl (95.0 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: manifest-tool-2.2.0.tar.gz
  • Upload date:
  • Size: 81.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest-tool-2.2.0.tar.gz
Algorithm Hash digest
SHA256 4cfdaef90919a5cbe540f301a7250207e07f0c04965587e0e20a27c4bab9cfc0
MD5 3a337070172e7d3ef19f3895d37a4168
BLAKE2b-256 eacbd8bbe7692bda8ff024dd2d00b225674e8c3338ca523b1e0a959e01b853ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 75.9 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 dae7d7df7006c93b5de0a0ccdcd632f4a71795b4d36b2cab2a66a1cedb34536e
MD5 0308023662eb6329e215ee55b74c0679
BLAKE2b-256 3486c0a0c816d74a29f0dc74f55b2cfb03f23b34db0ac35b7bb0f6c0d4b7c2fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 76.9 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 c49e2305ca3be178911f56ee31c43113d6b1860c7251926570e8af54023f395f
MD5 8f17e4b8b5ddbcb9851b2fb4727e9994
BLAKE2b-256 de3e6343834cc0968be778188bdc55bb5be0a37cf1b61708985b46e3a4012c0e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 330.4 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d05fc645cfe1f61b097c0f884cb9bb5e80756a871b3f89848b8e46018f64669d
MD5 f2c493eb658d41cbc38dffc77a0a9709
BLAKE2b-256 f09293c671b3b9a352f249d19acacad146d7c581cbfcc4e4b1d56f4ef3be2e59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp39-cp39-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 333.9 kB
  • Tags: CPython 3.9, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp39-cp39-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 bfda92df8a192342d0f04305adcddc1a5a9f482413d8b3f81e76c6aae151df22
MD5 a6c2b8f85055de80a520f34a5c80ae2e
BLAKE2b-256 519632c7330102691179295a580dce16378c51d7dd456272db7440d521dad6b0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp39-cp39-manylinux1_x86_64.whl
  • Upload date:
  • Size: 333.9 kB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp39-cp39-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4c7cdab615f1cfc3b2d8fd9abdbc2029a8da9acc4e7b64d391ea480bb6514e65
MD5 63eb9fb2dee4e4dbd938f080b9cb70ac
BLAKE2b-256 aafedbf6cfd99ac35568e90fc86c1ab438b6e7aadee50f0400d81437fa3cf886

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 95.1 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9085b24e1e2db0ed5eeac7cd868388cc055d4b76dd7ca405b4f1d922390b9872
MD5 92131befbe5a664f99c0fbbd27085b68
BLAKE2b-256 8cb199a708e0c1ab01878be913e4d0a273f8f04959ec568bc9006289a687b02c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 75.9 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8f4c1bef322a79523af8e9a6721466278375b31b5c2e6aeabe250d409bccfdba
MD5 aba8bed625b741ec6cf5202e671e7103
BLAKE2b-256 a6189edd36f8c3ff0a6a85a8d4c8a2f5aa391ba9f2fdfb64cd598a3fe4dc0d43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 76.9 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 6f231704d06da4cff95b5a0968dcc926e4adb08e960e422ffa3e3a6f666a75bf
MD5 c98d6616e5b8472cb15485b5548b2745
BLAKE2b-256 0d43b10fad9f1527020bff06115c3e53293a42fb1ae3256f2aa4b09dd0276d59

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 330.7 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8e2cae69c9998563ef25135928cf35b077d1d63d52efcf750958241cef9fb65
MD5 940ba1b0283f3b49e07f4150816a9815
BLAKE2b-256 9ed1c8192399900e6845b87d4dac9e879b030847ad0fe1cf46fa658c9849e8dd

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 334.1 kB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 35f8634c3643b1f52e955a932f9cda7d231d271a3d21acd93a848081235d8f56
MD5 f98430011daa55b64f2dbc0e3f4bc45b
BLAKE2b-256 8fc153989c30847e2297131f08c1ea3b3ad637887373d393ca4c3551b1db0a6c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 334.1 kB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 d4679caef8bbecaab43538ebea2786b54fe2db74de20c8bbd8410685bcdb8454
MD5 941ee306e862902ab333965457548aae
BLAKE2b-256 0946f6553ec81d7787108c1271e67c42383d0bff2df0dda7b79935682929ed64

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 95.1 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 76716e28a27796d5046e9d59de50442aa7d7d58628a9c62b8eaed5af8b4d9c1a
MD5 604242497e277b8b5334f08f3a80033d
BLAKE2b-256 b8f4fc88e931d343fbe29082f1048d618e32d80157f910052649d931737401fa

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 75.9 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 95e7f041bd75faa43bfee7f59ed75deda8eaa774103fd1e24d0513c16199a958
MD5 66769b1fb01978e94af02739ced8a17c
BLAKE2b-256 b95c5647abc5b35ef04e909b30d19583ca07e7a2826267cf975aa1755b939173

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 76.8 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 9ece5450c6a9d207b996ab448ec418e9b228572bc3f861734f7bac3a5e685fae
MD5 0e2c10a3c777ca6593543114578d31e6
BLAKE2b-256 9ab51a540d442c23daf448e7f22c098a5335e1b0bb7936bc391c95f790d4e377

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 331.9 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a30c5deaea99dbb36e31e135e0dfe8e83229fdb9e50896a27c96e09b5d8045ab
MD5 4fd30b5a8bf12df2a4546ca6f7ea1af7
BLAKE2b-256 0002388db04d5a17f2d29cda1e168e2d9b19967b321bc9c7232adab181543b78

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 335.2 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a662fb2e4b65e816bf1a67fd200c75d0378a636f670b2d4f0add8102bb86cfea
MD5 7d5ec727f5b5a53e11ec836d257ff21b
BLAKE2b-256 9be505ccc2274aadba47cc6e774e16e239e380b970f9510fcd036bb0a4db34f9

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 335.2 kB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4242530a67cdf80ab9ccbdbe0d5b8aa65e56730ff10cf019c3e4c62586646fa9
MD5 2d47f6f47613270e64fc07a726729100
BLAKE2b-256 5077b7a84aaa1505348b7104b96803634657bdca718d0b39aa95f8961eba2cec

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5178c23b660413b4f625f588f7cfb5c45f078d3583b239b44907c6e0e77ae290
MD5 7d90d0b53b396ba1cd85c17e8a07a9b7
BLAKE2b-256 b24490585fadf88d786c7cfe181c98380cd765f0e6fa2b3a2b5d474f3f410f0e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 75.9 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 843574fffc39eca776827d7190668f341039de31f105f326a15c2f50e1151233
MD5 db1d46d31db79c3e1bad0d64f990f6a3
BLAKE2b-256 04ee4f8945c5851654a88144bd5d53e8a54e5629b92003c150b7d52100870c5d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 76.8 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 5dbd5c0ec3dfff58b7bea85cfa25bdfc842dbc7be7e6cf9ca1a53a92a368aaf3
MD5 34cf7f01c5a47941103b15f186b05af9
BLAKE2b-256 e5c45099bc35a53f98dd5f5e776932ff62aa3006068058506ddf68259283da1d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 330.8 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2b642a74d79aeb5e220f303d60ff7a06d92ab67954864b35781726d5723f1d56
MD5 2fb1716a67bdfe2de538d1900f8ea394
BLAKE2b-256 82feea6c84d42860cc57b4464aadcd86862bcf6d1f00f61e01bd5b976084fbb6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 334.3 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2b6fac6a9fadd7f2c87fa40600ab6ab8425aaf63fdc7c2aad68628ffe0a75967
MD5 6979147941d10c4f2835f26961b399ac
BLAKE2b-256 97cba036f1a29743c930be7c25c6dce36434114a72779439573e55b6d8bf1ad2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 334.3 kB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 37771af31a948686a582367682d4c0554f983f58aa8aa4e40e71c30e0a1c19bf
MD5 c921d4ca1a6954dd63adfed71f326394
BLAKE2b-256 8629c587fce69e1cea644e3f0dd1700b28cbbdce2becb535f103c0591ffc6dc2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: manifest_tool-2.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 95.0 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.0

File hashes

Hashes for manifest_tool-2.2.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e30f2bff84eeac17c3c6b18ee601d48467b6e02e0c013bb0ec13acbabf7394b1
MD5 698e558f2a92ea06ca6f5de4d58d553d
BLAKE2b-256 b1a47ea6ccafbf7308c0391d7d398e105a9e3eada7361aac59159b4d43a0a9b8

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