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 Distribution

silver-platter-0.5.10.tar.gz (96.6 kB view details)

Uploaded Source

Built Distributions

silver_platter-0.5.10-pp310-pypy310_pp73-win_amd64.whl (2.0 MB view details)

Uploaded PyPy Windows x86-64

silver_platter-0.5.10-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.10-pp39-pypy39_pp73-win_amd64.whl (2.0 MB view details)

Uploaded PyPy Windows x86-64

silver_platter-0.5.10-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.10-pp38-pypy38_pp73-win_amd64.whl (2.0 MB view details)

Uploaded PyPy Windows x86-64

silver_platter-0.5.10-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.10-pp37-pypy37_pp73-win_amd64.whl (2.0 MB view details)

Uploaded PyPy Windows x86-64

silver_platter-0.5.10-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded PyPy macOS 10.9+ x86-64

silver_platter-0.5.10-cp312-cp312-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.12 Windows x86-64

silver_platter-0.5.10-cp312-cp312-musllinux_1_1_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

silver_platter-0.5.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

silver_platter-0.5.10-cp312-cp312-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

silver_platter-0.5.10-cp312-cp312-macosx_10_9_universal2.whl (4.4 MB view details)

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

silver_platter-0.5.10-cp311-cp311-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.11 Windows x86-64

silver_platter-0.5.10-cp311-cp311-musllinux_1_1_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

silver_platter-0.5.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

silver_platter-0.5.10-cp311-cp311-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

silver_platter-0.5.10-cp311-cp311-macosx_10_9_universal2.whl (4.4 MB view details)

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

silver_platter-0.5.10-cp310-cp310-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.10 Windows x86-64

silver_platter-0.5.10-cp310-cp310-musllinux_1_1_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

silver_platter-0.5.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

silver_platter-0.5.10-cp310-cp310-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

silver_platter-0.5.10-cp310-cp310-macosx_10_9_universal2.whl (4.4 MB view details)

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

silver_platter-0.5.10-cp39-cp39-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.9 Windows x86-64

silver_platter-0.5.10-cp39-cp39-musllinux_1_1_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

silver_platter-0.5.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

silver_platter-0.5.10-cp39-cp39-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

silver_platter-0.5.10-cp39-cp39-macosx_10_9_universal2.whl (4.4 MB view details)

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

silver_platter-0.5.10-cp38-cp38-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.8 Windows x86-64

silver_platter-0.5.10-cp38-cp38-musllinux_1_1_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

silver_platter-0.5.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

silver_platter-0.5.10-cp38-cp38-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.10-cp38-cp38-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

silver_platter-0.5.10-cp38-cp38-macosx_10_9_universal2.whl (4.4 MB view details)

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

silver_platter-0.5.10-cp37-cp37m-win_amd64.whl (2.0 MB view details)

Uploaded CPython 3.7m Windows x86-64

silver_platter-0.5.10-cp37-cp37m-musllinux_1_1_x86_64.whl (3.5 MB view details)

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

silver_platter-0.5.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.5 MB view details)

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

silver_platter-0.5.10-cp37-cp37m-macosx_10_9_x86_64.whl (2.3 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

Details for the file silver-platter-0.5.10.tar.gz.

File metadata

  • Download URL: silver-platter-0.5.10.tar.gz
  • Upload date:
  • Size: 96.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.5

File hashes

Hashes for silver-platter-0.5.10.tar.gz
Algorithm Hash digest
SHA256 0116f43e633aa3c1df6c86e6c6b3f7cf51585baf0c6c6e7f442bc9d4e300295f
MD5 a4ffb3afe82d9013b47ac72e28f2ddc3
BLAKE2b-256 9003e73b67be8cb877229ddb43e8ea22bb893d3350bf0c7af07ceaeca085df39

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-pp310-pypy310_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp310-pypy310_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 5183719803ad8580eeacd77f53ac58d02409429518b6e3297c6246e0b51b0601
MD5 6ac82ba868536634fa7c42ac9ad9027d
BLAKE2b-256 8ec12f7c86a3b2aff0f189615be9796a355b779f04cdd93079daeb110d0eedeb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7c7f8624ab44eb379bcfca177bc67996030f31330381a5012aad53b4c6102e7
MD5 84cab1985fbb1207c403082265702e86
BLAKE2b-256 67bb89b1aef8053c5039f86fcf9d0e9f5cd51fe49e65401878bca31a129e3ffe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 561c3ec7442908b66195c2e92b49aa6f2e30393686af6793c15bcbf9018ffe62
MD5 71b853a70b4966354083d2bf56975de2
BLAKE2b-256 12d3c6bc974ff3237ef9267666159b20a7331a7e4551856ac18f33b2fd8bdcf9

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 a99d700f4641cc18cfdadac1ca68328c6f82e4313bc6ffcc35a1c8704f7196ab
MD5 7dcf8b5f1b06a3b11b954b89462ed91f
BLAKE2b-256 ae84f11dd999570802fe2fab953529d90516b3010359719e0e3d24c433d1612b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8600065de1b428b5026ad97d48b6b859e6aeb3505216e99273208eaed621aca2
MD5 15dbe39c97275c9235093cca4e10734c
BLAKE2b-256 febcc51cac3ebaffce71502b6432b783b28852322b01dedfc5e2dd45c552810e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0425a2b0ceed7d84bd8ddb3f9353a4a6c7cb1453befae5866b44a857f7a46b78
MD5 ca9f3f3508a979b88cbe09d6073dfd12
BLAKE2b-256 dd37d47cc7b6a7487cd77161b6faa0565e13bfb54007f81d0a9e6a0b235039b7

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 cb675ca2e6d400e52d6a2ae9ac1f4f6d8b75852a7dabedde418e5b7116d5855f
MD5 30b2e98e39633fab98ab4675d07249d7
BLAKE2b-256 275eb334709ee1ff551495f1d4ac61eef91b50d234657a26dcd4797a1fbfc89c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cbac9d09d35327c2252c81e7165e94cce1b01ed6e82cb391c8742a4db2f296b8
MD5 e6ced2cbf85a86fa45a8dc2b2c6d88c9
BLAKE2b-256 16b5b5334107137c6d1a4a4f4018a3ae1d19ada886ca0d651d50a2c56d8df066

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dd096358bf726820e77b030986920191969e5eabeeecc6bd6d05b7a87ca21dfc
MD5 bb7372e391758f0370c6df9cba19e35b
BLAKE2b-256 41ed2e70d626efee77938df7d414a416a8c6b46f3a2770c4affb89961c7ed687

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1682c156b57c7341f4aa0cfef3dd12430afc916db055096cdcb6efd7d0eb028a
MD5 6cd6c88c904d99de79a4a646fead539b
BLAKE2b-256 ed46554a0f3af8c5d5527fda933e39d014a457f8717fd25ca9ea9b014f1aa4ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 efa02bc1eb6f6895fe935a0ab4c756a4ceda6314d8f4bf129bdb2e1e4e3d2e7a
MD5 a5b4a7721c1e20457f0ddd26106cca01
BLAKE2b-256 ce6e2e6dc4dc2c671c2cdcb2b2c8e059650142c7b35ff189595586073d3aab1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9bc6ea77a6204f012a53b7d8954d2c3c8c66b1e0e2053c60aaba177a288360db
MD5 1566048bad79f0d1d9cbc3138016a5fb
BLAKE2b-256 763b6e98e8cb5afe97bc4d6c16ce044fa26daf3a87d80c538f920a64f509e4e6

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 a12a48f759565ff656c981919edefa71699e4d20248d079945c4d33675cdc16a
MD5 fa6007490dbafa11a829d8e9c49a640b
BLAKE2b-256 b2222cf679ee4551c43d1478bf6e85305f9765e32d69f7400fb3638986c9882c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 086cd4b02fe8d9e44e7fd81a26367a97c2c996869fac699a2a21c812423f41a4
MD5 9b4729fb7388952e84af5ff86adeabdf
BLAKE2b-256 297a6629a698f18a03b46a53fac8f88c4097e8b51d9d22b024275bc761516cd9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc1163948922f8094bcc1f7820db86a973bbd26d3e3fe3ed1f140b517c521abd
MD5 bcd919f1e3f1995514ccbedb2147379a
BLAKE2b-256 66adc5b87a0e05a42292c12e114ab23ccef32e443fc0a6e722b01cc65a37f2a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f6b9b56af4c71329ad8f6ebe342d9efb64358a551c3aaad148c22d087f54cd79
MD5 9499760ba91a2e90d1702fa3363ffcf5
BLAKE2b-256 c96a0eef162ade51db8b68513b2ad462234bff7ba684c2726db9b89043f6e9b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 558565db3a76ec6480ffa2b838eddfb5247412e2d760b7a66a64f37b65d89a9e
MD5 144860154d0c13e2286505066ff21304
BLAKE2b-256 63ae14fb4ba7dd1628cb2ff89f930a10ef58fb04e7b2b46662fec844810477c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f3374c4423b494d991b985fd829406c89f6045ed43b3ac6c24e39c03f9bb3e44
MD5 87ca86176304c5deba71440069ec3b13
BLAKE2b-256 75a3a262fd1517d3e273211e364054c7c5277f4030f6e785449fb59e0bc08c42

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1539a61ff44a1fc08d4fbe81d9ba48b5babf63427a1e25edae9ee112ecc5bba7
MD5 a5effe82159d872e6cfbc7dd3832dda6
BLAKE2b-256 f9f978d9d067e4792a37d2a77331e35cbeb45aef96349fe4f38f812146119f3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b2b23f104260b1961f61fcc60b0839741157dda3de44ac983859b4e46dc4e69c
MD5 d5b44a8c066ebb50e307cb469dbeb331
BLAKE2b-256 02ced072b57b78d3c4bd648051a5dc065ea24c50c06154d2d361e1155d48e6a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1c819d1b49564ae50e208e1c4fb4c576240238386713a340f1c62fd8eabfb37b
MD5 38f2a13292641b7f8ee8a51e8afe67f3
BLAKE2b-256 c578afa08ba1b4ea771172309d6bc069cd328117477faf70440b8b56a02065a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12c16e167c2f9b205940ad708319483fe6fccc8b9dc52951f32ba60e4f78c7be
MD5 71b2a50cbd843d0859c76838a50f4b6f
BLAKE2b-256 bc85ec9f3afb1b07a445226e0ceaa081f3de629a63c8c961e926fab040894535

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4a5ea0b1216f25cb4b260e75ecb646117d909636c6c9b1f9e489b198da6b7667
MD5 a84790dab1ea5a1d138246c3e65b223f
BLAKE2b-256 442d0831d6b537da47f2c033826e83e1bc502e03e476a8b3c2aff11d901d1a58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 80ac86168e35016e5e68363ad129f5d421b97692f7c7d17b9cc6ca123137a918
MD5 8d6128273d05ae36ed12ca3b65fbc7c4
BLAKE2b-256 dcea5dc3d9fd039159a3f7fdadd2f041155c931c3cb489cab2319c2e98d68eb9

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6c1fdb518926f2cd7ab47070f7d16c6894e42da9b132d26d0fdfa1c36cd447ad
MD5 8b141fcf3e526284aea5a8105a21bcfe
BLAKE2b-256 f23813d0a0ddb9466026411f96fc78d4fc952a7bdcb0840c2f8cd99cab235d5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0006bc6e5b7d5445d456da792cd00a41bb19f8249704d2634ff932809259e968
MD5 fa5786503cb30cb819193aa6f65ef66a
BLAKE2b-256 76fa653bde15b483043f95c484e085876e8d06a482419e5fcdb57af40240979e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eef0bfe71d1fc7e1e836a2158eca9ce57dfb3fa463d9c8d758b0237fc3e65451
MD5 dc88ae0d62b456372e909595305d815b
BLAKE2b-256 756bac4a658cdcb50f580f4fd2588da96a2a960c3a964c43b5b283d15358ef0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 87d6a3264925b8750f9b4450e208e150eed0d0219a1fdc295043a47ad6e838a1
MD5 bb52ba328da3f05065e345d2ba243c56
BLAKE2b-256 7b781ae40b2c27420238356e608366f1a8502a917993fcbf283683c3ced402a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3a06d8b131668dcc0107d9922376afa03d9418fa60662fe15e789d661cce05c0
MD5 8ae8f8af7bcccafd00f3f362df7f7751
BLAKE2b-256 bb78dc3f7dfdf073c60d9d720116443f36426c369ecf1ff73253e83d52914dcb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 48618a5a9390963305ae81bbfe6a4c9d5803e9d353a751c5398eea3299e0992f
MD5 6279b917fdceb7626d486616ca0086e0
BLAKE2b-256 bb72cf0cacb1764f529685023dade50d982e67cb091b9cdde8b3d82c393bce9d

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 42578d3b62c7d7608bb07e02afc66d60eb79ca03672911a66a228def261a9711
MD5 2665c0c8a7e418c649c2a9d7697e6a77
BLAKE2b-256 1ef7af751324d119941c356f1e3b15d55b2522a68baee0bae97ef147cae32111

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4eaa9ba17e85f32c86bf018fe21ef1a2cfd5d7eee2aa039091b35523c44c0f3d
MD5 2966da9ead25e913d71fd994b4a4f421
BLAKE2b-256 babd8dc3d39c0908ef2f2cd7acbd33bbc0fbbea014a25c1d87ae24d22f998c40

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40205471ec68a99eef2d48595f2a8097aad9e9190f86d528a4b3ba26ffa3f4f2
MD5 ec3dfa71b963942dee25e4673109e976
BLAKE2b-256 fcf054228ae92ed8cb71b2ce321d4f47879c99155fb4dcebca3148f59bd2cd58

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 56f64418f0af999b3a4a6e88b982864133c82feee4afd7bd3130d0c963a28762
MD5 951a73b4615e13855d365287a7e397f8
BLAKE2b-256 2e0cd9075bcc1de58d927737a80f36855d1b3861d3998e0ad9a59fa279811f6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b17703a4cf65afee957172707e36ed47d6250cf86ef826369962c5603451eab3
MD5 be2705ee8c417f6299162d031cd5f247
BLAKE2b-256 2577a65655229467e94dccd5636b04088cb4d6f7e8cff5ba524cb9184f004dbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 63b300ad83c17fbc5b4e07b313e0e359f8fcfdebbac4d73a060f9342f90c8f19
MD5 e5a26531e326b40242383a610714168b
BLAKE2b-256 1b8e76e1c5b15b364914d8d35081cef62224e892738f54e90384bfb662b1853b

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 2fb1ab57bc4ff8646599b73fc2fc5dc0af4ab1a4003dacd4a81a5ca05fea4620
MD5 3490ad9fd7cbf8dd9880f58e386d0ee7
BLAKE2b-256 f7f67cca721ac1f4e069a27ac2cf4898015f947a7370c832d8df0a07dd9d3df6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8b0fefdb66ff303ddd9f89571d2a59cbfd929386a22ff6d28f8dcdf0b8a917a2
MD5 7ca2a0e1dd105fa5eb5ad037f28eb59d
BLAKE2b-256 2784e934c2585bd048e8412642199baf8d4c3325338c4c4a884ea7b8c7ada6ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e699e7f99a0d53a7822c3c1c7cd5ee4900c28ffa80e0a60c6e480d5dea507b43
MD5 8cc2657ce65e288c5b2bcb2820cbca5c
BLAKE2b-256 6460f3c438a89f9360da49badfad15d606510d6896105fdd645dc7a66f6f4b96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9f64fac4696a05e637225e76f2d781a6c7e39b5424ca0c0a5e8b50db0c9f3a85
MD5 b1b103607c9dadfe2cd0bcbf7dba291c
BLAKE2b-256 1a0558894608ccfa83255a809b42d2201bbe0fa8f047449dd467a7773f265bb4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4ebc040020438383b4c6f743af1006f94880f67107d0c5fbf6dad279423f5fd1
MD5 d0c664c463398d894fdd3de7021ea963
BLAKE2b-256 5ab95ecad560e954bc45dba22a0fa8323a4f29ba66c545e8a17af949e8c9f0ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 48b767afb9d2951d62341772d0b3fdd7ad09bdecbf31d940cfd8aba43866eb5b
MD5 f8e1c87dfad82a7c695a3632d9c91fd5
BLAKE2b-256 89cbe16ca6f5298474e0e7e15f6021e891dd85d58e68639de58b59c6cb21c37c

See more details on using hashes here.

File details

Details for the file silver_platter-0.5.10-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 dda05a3ab8879f43a00254276990e59fcd218de9fc6b8a2db6d306fb237d0e6c
MD5 9bdb82d84836d0edd3e6c70d2ebc6291
BLAKE2b-256 421c37fdffa1f350d5a0f612b21d63a4775ab1c05b5c3c120be419e011784ae0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3a8e4f042123f2d0421584cc1a15e9894b4b20941d8e8c2b45552a05e2fab68f
MD5 34ec206cbd8533200ef8fb2349ccc5d7
BLAKE2b-256 4f690132749dd2b8d5993b6a0f55d5f541c76f390145ae61df0cf79ca8c500ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f347dfe83b62bfe6ae451d7b4ad20e5faa084b00bb125d9d9e253ea8066f82d
MD5 612f7f8b3d89046656c3477566a1e184
BLAKE2b-256 ff49a9b8742f99cc6e6c1e405702fd9acc5711a9d602b9876e76d226a36434fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.10-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7d0462ae014db1d5c0a7d5aa949be241b6aea5c9f350b6c4673f803e245f6279
MD5 f2dd1f99f75be2c08da27d70b83e5d12
BLAKE2b-256 be5ae77132637e550333393a8c72790be0d844cbaf3a8ecb3862a6f1bb27e5d6

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