Skip to main content

Large scale VCS change management

Project description

Silver-Platter makes it possible to contribute automatable changes to source code in a version control system (codemods).

It automatically creates a local checkout of a remote repository, makes user-specified changes, publishes those changes on the remote hosting site and then creates a pull request.

In addition to that, it can also perform basic maintenance on branches that have been proposed for merging - such as restarting them if they have conflicts due to upstream changes.

Silver-Platter powers the Debian Janitor (https://janitor.debian.org/) and Kali Janitor (https://kali.janitor.org/). However, it is an independent project and can be used fine as a standalone tool. The UI is still a bit rough around the edges, I’d be grateful for any feedback from people using it - please file bugs in the issue tracker at https://github.com/jelmer/silver-platter/issues/new.

Getting started

To log in to a code-hosting site, use svp login:

svp login https://github.com/

The simplest way to create a change as a merge proposal is to run something like:

svp run --mode=propose ./framwork.sh https://github.com/jelmer/dulwich

where framwork.sh makes some modifications to a working copy and prints the commit message and body for the pull request to standard out. For example:

#!/bin/sh
sed -i 's/framwork/framework/' README.rst
echo "Fix common typo: framwork ⇒ framework"

If you leave pending changes, silver-platter will automatically create a commit and use the output from the script as the commit message. Scripts also create their own commits if they prefer - this is especially useful if they would like to create multiple commits.

Recipes

To make this process a little bit easier to repeat, recipe files can be used. For the example above, we could create a framwork.yaml with the following contents:

---
name: framwork
command: |-
 sed -i 's/framwork/framework/' README.rst
 echo "Fix common typo: framwork ⇒ framework"
mode: propose
merge-request:
  commit-message: Fix a typo
  description:
    markdown: |-
      I spotted that we often mistype *framework* as *framwork*.

To execute this recipe, run:

svp run --recipe=framwork.yaml https://github.com/jelmer/dulwich

See example.yaml for an example recipe with plenty of comments.

In addition, you can run a particular recipe over a set of repositories by specifying a candidate list. For example, if candidates.yaml looked like this:

---
- url: https://github.com/dulwich/dulwich
- url: https://github.com/jelmer/xandikos

then the following command would process each repository in turn:

svp run --recipe=framwork.yaml --candidates=candidates.yaml

Batch Mode

Use batch mode when you’re going to make a large number of changes and would like to review or modify the diffs before sending them out:

svp batch generate --recipe=framwork.yaml --candidates=candidate.syml framwork

This will then create a directory called “framwork”, with a file called batch.yaml with all the pending changes:

name: framwork
work:
- url: https://github.com/dulwich/dulwich
  name: dulwich
  description: I spotted that we often mistype *framework* as *framwork*.
  commit-message: Fix a typo
  mode: propose
- url: https://github.com/jelmer/xandikos
  name: dulwich
  description: I spotted that we often mistype *framework* as *framwork*.
  commit-message: Fix a typo
  mode: propose
recipe: ../framwork.yaml

For each of the candidates, a clone with the changes is created. You can introspect and modify the clones as appropriate.

After you review the changes, edit batch.yaml as you see fit - remove entries that don’t appear to be correct, edit the details for the merge requests, etc.

Once you’re happy, you can publish the results:

svp batch publish framwork

This will publish all the changes, using the mode and parameters specified in batch.yaml.

batch.yaml is automatically stripped of any entries in work that have fully landed, i.e. where the pull request has been merged or where the changes were pushed to the origin.

To check up on the status of your changes, run svp batch status:

svp batch status framwork

And to refresh any merge proposals that may have become out of date, run publish again:

svp batch publish framwork

Supported hosters

At the moment, the following code hosters are supported:

Working with Debian packages

Several common operations for Debian packages have dedicated subcommands under the debian-svp command. These will also automatically look up packaging repository location for any Debian package names that are specified.

  • upload-pending: Build and upload a package and push/propose the changelog updates.

  • run: Similar to svp run but specific to Debian packages: it ensures that the upstream and pristine-tar branches are available as well, can optionally update the changelog, and can test that the branch still builds.

Some Debian-specific example recipes are provided in examples/debian/:

  • lintian-fixes.yaml: Run the lintian-brush command to fix common issues reported by lintian.

  • new-upstream-release.yaml: Merge in a new upstream release.

  • multi-arch-hints.yaml: Apply multi-arch hints.

  • orphan.yaml: Mark a package as orphaned, update its Maintainer field and move it to the common Debian salsa group.

  • rules-requires-root.yaml: Mark a package as “Rules-Requires-Root: no”

  • cme.yaml: Run “cme fix dpkg”, from the cme package.

debian-svp run takes package name arguments that will be resolved to repository locations from the Vcs-Git field in the package.

See debian-svp COMMAND --help for more details.

Examples running debian-svp:

# Create merge proposal running lintian-brush against Samba
debian-svp run --recipe=examples/lintian-brush.yaml samba

# Upload pending changes for tdb
debian-svp upload-pending tdb

# Upload pending changes for any packages maintained by Jelmer,
# querying vcswatch.
debian-svp upload-pending --vcswatch --maintainer jelmer@debian.org

# Import the latest upstream release for tdb, without testing
# the build afterwards.
debian-svp run --recipe=examples/debian/new-upstream-release.yaml \
    --no-build-verify tdb

# Apply multi-arch hints to tdb
debian-svp run --recipe=examples/debian/multiarch-hints.yaml tdb

The following environment variables are provided for Debian packages:

  • DEB_SOURCE: the source package name

  • DEB_UPDATE_CHANGELOG: indicates whether a changelog entry should be added. Either “leave” (leave alone) or “update” (update changelog).

Credentials

The svp hosters subcommand can be used to display the hosting sites that silver-platter is aware of:

svp hosters

And to log into a new hosting site, simply run svp login BASE-URL, e.g.:

svp login https://launchpad.net/

Exit status

svp run will exit 0 if no changes have been made, 1 if at least one repository has been changed and 2 in case of trouble.

Python API

Other than the command-line API, silver-platter also has a Python API. The core class is the Workspace context manager, which exists in two forms:

  • silver_platter.workspace.Workspace (for generic projects)

  • silver_platter.debian.Workspace (for Debian packages)

An example, adding a new entry to a changelog file in the dulwich Debian package and creating a merge proposal with that change:

from silver_platter.debian import Workspace
import subprocess

with Workspace.from_apt_package(package="dulwich") as ws:
    subprocess.check_call(['dch', 'some change'], cwd=ws.path)
    ws.commit()  # Behaves like debcommit
    ws.publish(mode='propose')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

silver_platter-0.5.18-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.18-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.18-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.18-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.18-cp312-cp312-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

silver_platter-0.5.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

silver_platter-0.5.18-cp312-cp312-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

silver_platter-0.5.18-cp312-cp312-macosx_10_9_universal2.whl (4.6 MB view details)

Uploaded CPython 3.12 macOS 10.9+ universal2 (ARM64, x86-64)

silver_platter-0.5.18-cp311-cp311-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

silver_platter-0.5.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

silver_platter-0.5.18-cp311-cp311-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

silver_platter-0.5.18-cp311-cp311-macosx_10_9_universal2.whl (4.6 MB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)

silver_platter-0.5.18-cp310-cp310-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

silver_platter-0.5.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

silver_platter-0.5.18-cp310-cp310-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

silver_platter-0.5.18-cp310-cp310-macosx_10_9_universal2.whl (4.6 MB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

silver_platter-0.5.18-cp39-cp39-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

silver_platter-0.5.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

silver_platter-0.5.18-cp39-cp39-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

silver_platter-0.5.18-cp39-cp39-macosx_10_9_universal2.whl (4.6 MB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

silver_platter-0.5.18-cp38-cp38-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

silver_platter-0.5.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.18-cp38-cp38-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.18-cp38-cp38-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

silver_platter-0.5.18-cp38-cp38-macosx_10_9_universal2.whl (4.6 MB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

silver_platter-0.5.18-cp37-cp37m-musllinux_1_1_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.7m musllinux: musl 1.1+ x86-64

silver_platter-0.5.18-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB view details)

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

silver_platter-0.5.18-cp37-cp37m-macosx_10_9_x86_64.whl (2.4 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file silver_platter-0.5.18-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 170d38cbd81c1c54c463513983b566f3d063418365a224c835c52a4411b46bbc
MD5 7fd5d0409598d5bc4940ff0a73cb4f63
BLAKE2b-256 948da00ad7074934e367a041aa290a7d350867513c3cdce1b771e98bc1a6214c

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp310-pypy310_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 957e94747011a657b78bf9a680d7053dcf9d3d66533b0699a14d0c5a0e72c8f3
MD5 9968b9817846b485078c3b212f09db7f
BLAKE2b-256 72121158340dbdef82ac46eed4dc1d8cedb2329d7300b6283a6a865ea620ceac

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5c6c9dfba53c21e827ff912c79136904364b6eb110baceb7b2ad2171e607c1b8
MD5 0fd1408b3164b2eb7389631ae580eceb
BLAKE2b-256 1c823136f028a58d1c83fbfe8ab1227939740f4729ca6c941e03becec4d685df

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0b7a706744fb309e0ee96f0c0ceef39f15225482feefe5bee05284c836f0ac35
MD5 0a26c50f7d99f4b427ef81124c0cd22b
BLAKE2b-256 b6983c1cafe48b287cf350ec51a5588aeaf08c4388d025b9d026d937f4ef82e7

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd14755e3f19d9e26ad2ba243c5fee8768344c7b86eef3ff6bba1149ff6e673a
MD5 b2d19349b322f92c09c29b8442f51385
BLAKE2b-256 4c9078759c68964c658941218a911d468afd0bf2260b7437a0029a4f70e6d5ee

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8ab71723bd52213b48e627ff00161199d4195493e666ca4e5508346a9bda9a01
MD5 fff77fa8eb2343c5402c85e16011a152
BLAKE2b-256 0c8326528b73d0fcf0b45f60eef3c6f0de8713c85b6d271f13d3974d9562214a

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54e8d7800f053b29c44ad7f87bb86f1ea885b6706684c5b6d421ac16cb84cfbe
MD5 dbd389090dd4777207430e02454644d2
BLAKE2b-256 3bb0309523dff371fd09068f92c8d14c8c74c656bbe32a0aa4d2df7bdd0d2ca8

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70994b75a55fd25be77e726f6857e6133f978f14f41c6f856ed02f0017f62e37
MD5 fbeca14118dac52dc7d12e8cbeaabede
BLAKE2b-256 16d40cc2c8afade3090004bd980c1afd3e900df78b702aa6786b9646b8e1ad01

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9f0c58fa1f4009528a4c148261c8dae32936bfda54bc7d8346472de0e5e852cd
MD5 25ddcca509cf9d79168cc35e043a6a4f
BLAKE2b-256 6380f7731118685f4e53eb01bcbfc10c50cf339f1689eaac18c01f95af912b6a

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 041d3f15317ec66184983cbbe510176998f73687b537c204557d05cad08971bf
MD5 dfb1823bdc66b6c42ecb0cf057cce49c
BLAKE2b-256 4be2db7468b458a10d1d2ab5c2fd4ac86c74133b77f613f0bbefdf34ed738f47

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0504a22c85c15073b6f4e0e0bde47f00bac3db454f448d6d73eb52d309351fd2
MD5 d8fef1a0bf1b2de580ca4f9009437238
BLAKE2b-256 5611453f48a38da60d1adfecaa362205ade1d860cb70713997a2d1eae643b7b3

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 96c0bbdad9c652601ebf0f63997fb72a4d135e78c9a1b193d70f816733592af8
MD5 61427459b6968cac01f02771347f5813
BLAKE2b-256 92b6c817ed8ba61eb0f656ebbe6943378873fde53c155c553a7c8f9c19bea91d

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d4976617e32151a480307de664c9d3bd38bfc5d180cb13c0309a1942dfc73567
MD5 4ade8ba1a6f6a00c8e1f518af52a5910
BLAKE2b-256 c1fdf0edbf5aea799f526a5adcd11624ed1705cf68b71874fce0b0e74a28276e

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bf782dae06674b7daaf8ea85f1d0e3cfe35b28afb9fa92555ab251514182379a
MD5 22f52318e22c522d55f80eba70a94af8
BLAKE2b-256 77d64439254608ea5c18bc16e7862c4b77aa87d9f32e94437476b65e7703004a

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3246d2d8021c3848d6bc56c2dbbe87273181111ecf47630160fcdbbc500ea4f2
MD5 afde49fdc7cab09c6ac5ab0a28cf2fb0
BLAKE2b-256 0c2971510b3bfe488d5e5dcaf2660e56edf87df128ccb5783b613967778074a2

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e94677e047c4b2f775b62ccad4def2db7705243e7b5c7d8278dceb0b1ba6e38
MD5 cb4baf10273b3be69f3ff1c2984b0afe
BLAKE2b-256 c11eeb50ac02492d81b049a4ca03fd0798430fa7ca064328a31794cd9cca5052

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bfa419edfd009d631a70d500c364242293650dbf056d7dab20c72813eccdb1d5
MD5 53b1adbeb0aae18569e45b30bb640cd1
BLAKE2b-256 047b63653be2ac1f778a1926deb57c222b60b73585ecf7c68f8c4f4714a49022

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d36c30d613c2efe225f8660fa85e071f2029e51fcc29342689a8a060da64fcef
MD5 ab76dce0b1a9ca9c9865b0ef14fc41fa
BLAKE2b-256 750eaf448d01b3bfd575c6d39261519fb56d198b1d13ec9a754553329ffbfbc8

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e60b34f7b48dc8d7d39c31245efa67e6955734f7f77202915df7ef892e623ba2
MD5 382d4bc69e81cb41a53465ce779ee650
BLAKE2b-256 12973bc98b4db9fcd0c0c3206d78691441c3ca9efcc03ef9360f68183030bc03

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d4ceb9591baec62b4699058956c74dc0008d56d6e65a77b081d772c2d6b4b185
MD5 0ee5df1103723c682aaca68086e78692
BLAKE2b-256 db3a35b624b9fd2a135e89e778e040309ba801a4d977231ba9997b2113f20f2b

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 237deb93514b744c85999bf5b66abef1bfed0b708e9bf0f4ae2b4e8713826815
MD5 7df8ace1a5e3e676bb49ce3dc819bf3a
BLAKE2b-256 74925a6ae380b93e96765e0905847b144c704426261b9547bef54e8821202762

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c620710f76c716bae5eeace6f5b69547f8de9f71a4b43c56328039452dd7e1ea
MD5 b518697d55894d9d74407afe8497307e
BLAKE2b-256 bb6c4cbe773fc568248eaddefccd4cf0db51d738022f42df7aa4dff31cfcf2c5

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a847923573af5efa7a5c1054a0010f78715bdeea27d382af1f7334ac043ab801
MD5 589bb2c70148bfdb8f6691d502d5f7da
BLAKE2b-256 09a5fb89687f2bbce35085eedafb04f247344e7bd93fd30ccf379903013aedfa

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f0fb8785e554e025c18bcf32f22fc3320e4e6142f38db2f544e31e04bc5f9b0e
MD5 c0339f03bac9c9c3d7cda1c5e175380b
BLAKE2b-256 b4af8feec2a8cd54552842a58f9e7e0ff3a67c802f53d6c92eaa3447ba195bbd

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7c104b9579768fc67f32b0cdbafd2b74d60be922aff035d7614d2e0344a6a75
MD5 6d012ace7da6e8afd83c02f68c81b2b2
BLAKE2b-256 5238fb9a82242971f212ba58f90b5713270025ea2f2745272728ab3966ad80d3

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3417f558e650d614f49ec42635c0dece7fb18d531f38a8c6483c8b2ea654c3c
MD5 1b69bb1e9abb6ac00fe728d716efa0ba
BLAKE2b-256 aec1e213abfdfc7cb9a79c0cf0f6632389b71c9d77961d9c08892531d8f49e6b

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0b3863f3000869121856264c7dc0a698e8c8b5dbc58a01deaa3733ba1c26eb7b
MD5 6873b4a133b125c50d9ef52b6b654019
BLAKE2b-256 49adec015b7bdb9220d38306a236c19fe8700991183d57f180503351006c2ab0

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 be40611c65114c60787531f0391a577c291014c4b929a594758b3354dcfc3f79
MD5 9b1b89042564cfb7a1c38892f9af7727
BLAKE2b-256 1db5fd093e68fb96df119f38c497199bb6080ca8809394f2b85f4915fb804ab1

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2ff85a2f9a82a545cee0f46aee124220daed5901a7d6115c3a29416a1a4ede2d
MD5 486781fb51a87612292e795c52c6f3ac
BLAKE2b-256 09eb6d059759fdcbd470f6d859d4a04dc6688bffc0e8c86e87a3352638f10194

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2e44a23951f460ea4301b6039e32b09388a0b5f4ba6bd4bcbc18d4eea6c68a33
MD5 829c9d4dfe46652860909e6ded866907
BLAKE2b-256 9292fa9ac6de3a3c5c563f283690d2dba5512b04662782fbb260931790055ad8

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dd4413457a5b55d7f5db928805ab651cb15f754a4feb86c8c8dff3febf344274
MD5 d62a8b60e4b7678ad83bb2ba22894d07
BLAKE2b-256 49e069e60baa8362e8b8c5468d6b02adb584b79c9afacef1552780b772270490

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c7d592fd01fc1dbcabbffdd3a65148b5394fc20e17b61fe7a7c4143d8523911
MD5 fc163825670be5c14f12864f8c5b1e94
BLAKE2b-256 6d488003b12eb6a4a1538e35ac94669f9d1818d4dd651bcd39101d74cb4bd63f

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5fea502fdf75db232f7c177ab3eb3c3c3b64f4495b9376fda653031c7033fed7
MD5 94f644166975593d5d2ef02b518eceb3
BLAKE2b-256 ea28f8f89c05f9d2a3241ab1482d955cc2f3d2875799b2c83460ae9ea5fa48e5

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ad7207e5009fd3aba102b47cefcfe1dccbde797cf970e4a5086df0b93abfdfd0
MD5 ba14ae818cb547bc4db694c2804d4ccf
BLAKE2b-256 14ae4b1f07844072252cef1f6aa8b0d6c0e880dbe39389f42956e7c6b1fb0610

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae60331713e37b6bb7d60d64208d0bd6578fada3c5db4077bfe956b7c6e5b71d
MD5 9a4d593979c8df88acd3ec7e82fdf400
BLAKE2b-256 d5d32ee4b4a48e6afacfb400b023c0cdba1cdf35a6b9497c536edb8d249408b0

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.18-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.18-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6acc7e01e1fdb23eb2f3ac9849fd114c65d15085a6015373fcac050c3b89a9c7
MD5 855e70017829b7d63795178bf9d9727b
BLAKE2b-256 c2416755e8576ee9e96799046669eb841b1261c496df1924bdadd74e7b22dec0

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