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.17-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.17-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.17-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.17-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.17-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.17-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.17-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.17-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.17-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.17-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

silver_platter-0.5.17-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.17-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.17-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.17-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.17-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

silver_platter-0.5.17-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.17-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.17-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.17-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.17-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

silver_platter-0.5.17-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.17-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.17-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.17-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.17-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

silver_platter-0.5.17-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.17-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.17-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.17-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.17-cp38-cp38-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.17-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.17-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.17-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.17-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.17-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.17-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f1887dd7b8937fc449d6a22c650681ec645eeda4b5b073d2fbae7d4d9fab80c7
MD5 5cd70f86d335a92267e0735c17f2a821
BLAKE2b-256 3e8fea214968f03a7740d35a257c133fa0a4f491ba79cb45a1e1f8c6b0f7065c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a34f2c2a0022d68d8318efd52451c3b81873b0c1751fec9cb566afa1c695da3c
MD5 f01e2497d6d680372d0619fd1a6ca073
BLAKE2b-256 e9a3f8b9e54a2e0c33c472bdb5963b771a11916a82156b1f2ddc7d3df565efd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 64fadf04ce0d1fb7a64bc3361b28422d1ddb6578f7a765283155ab10de9bdf03
MD5 99968f6c1c5c995ccbd3fc47ea2f43fa
BLAKE2b-256 5c1fdca916498d2bc93d2b3ceeedb81f4a19629ab0943ab61c34316cbfdeed12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d2ef2be9fd8c262bf23f2dd28c6077ad70c8f644ce3922e7a6701a7b5cd4097e
MD5 95a8f4bb821749a954b899ecbcd1678f
BLAKE2b-256 a1a7689b8c3cc464e90980c4de8ff9fce8f6d4563da5a4cff84c63481e5bff30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e831d0dd7ddce2d9cea34c46562a8ec27816f0d085274e2304d8c2d0451e4251
MD5 381ee5b4bae4f7d5cce627544c8f01a4
BLAKE2b-256 1bf56ce73f7c7246598e9c92085e4c154a6d423311a0beffa97ace9245346e89

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8fb475d8519453ab885a536066c376105d2d17e84f21fc2541da39a7acce4863
MD5 f5277b01684d78a1de4daab4803900f4
BLAKE2b-256 5fdc4376c0732d6b4aea7490866be047f59efadbfab5ade0f7a1a89d23aec230

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 17f5e78835a84f87915b6d94595844ea9dcebbcc73a0f616bf9555108b91a118
MD5 046962e94675ee5da07b5c9fd654f3c5
BLAKE2b-256 87cd4de7a4bd4660f0666669f1d48ae65f0386fbee3964d2304477c6177b4216

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 81eb45b0de9cc1843e9171658162d5a0d8de488740f67499bb32ddfa20030a5b
MD5 ec0c511d6fbeb0f08332ecb99bd3c4b4
BLAKE2b-256 606365e263bc97215566943f386fba2eac68e9036c0c75ecf049805671a8a0a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a112d183c92bc49de0d97ddc2956cbf81630e977f0400bd28df622d04a483484
MD5 2befe381e10f241770c23d3f0001e457
BLAKE2b-256 034bc4d6dcf102c1299e90b803dc490320ecbbce8db13a8bd363e2736c2259c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9995da5caa3e1c4cf64d90d70423abe5e43ad7f6a6d9958e515686482d96f397
MD5 e2ce440c9773c6117839e88bf559d4e2
BLAKE2b-256 af0193f83be3a8779333e24adcf836eb4998e3fd5d7574084c447e8de2744a34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 adaa077e376cc5a6ffafbe0643b6cdeeeb71617fa2c3f535f32cdb18a8283132
MD5 5d416a7392bd744ad8eaff054346532b
BLAKE2b-256 86aac0e9bf4063978265fb4b4b226b2801f759cc8acff654c5808310590e3053

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0f1b03eb3440c297c65fb8ffa3e24273bff877046c01381d77d3f64d63f7f8ad
MD5 e66509722eeaf7bfbbfb152ed4330b18
BLAKE2b-256 0e62d1d6abeeaae3a9103e88901fae9bb0179223cd2815aa28aa1aae734c4e24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 28016ed572d2e77f70604a923901ca7f67c3d8b77fc06a2caca12773a830d502
MD5 d2236b1876d687cdbcf1b30877ad6325
BLAKE2b-256 0c9e9fc8b19d7d3f229c6c59a922b7b80bbd415e6919e44abb4a2030714f3e8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 75a8752f966c46fbee12c0dd55e7cd5997ca98456730bf4e75dc6a421d090629
MD5 bd502c3ec015b9b7d947d166c57fc42e
BLAKE2b-256 7441cee6cc492494c2b080d9cd423f5f605ca210459604c567404113c9893274

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 876b1df5b203cc7287d14b5691ac1dbe0f3f0e7b03450510bce547d568fb2465
MD5 3a12c07fb270907b0758fc71fe61627f
BLAKE2b-256 79d39973481edd0a4748b64cc84b67216d165d443612ff592da03edb2c047011

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0959c6c4bf5054c983d54fe4cde00489d90b5b7ab07dfaf9178139677fdcf943
MD5 a9d5900410fe98a1f33816cc442cdbc7
BLAKE2b-256 4a4991673acc1bba53c50844621bfb888a3b69dd5b6ace66d257f64281efd82f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 81fac4758944fcc65102ebd3c090efc862db649709731bd079b26fcfeb3a5296
MD5 b6b1fe476ab949df8affcedf25e0e99a
BLAKE2b-256 55aa5d39305e2a680567cbe38f806500f6dbf8432fe97763e2ca255b96765753

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fbcbe4785cdfed6542237e9a6981734c55eeafdb9e668b858b55510ea48f9823
MD5 22c0721a5cf82633d2ce01187fad6cba
BLAKE2b-256 3d54cbb445338a538f9b84295f7c849c4f60bbbf0bf45569eba7df14f8cd3b85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1cf9c43459ccc13391c1a4908177264c3dc919152eb6cf1bb0b9a97a236a4ca2
MD5 39a7267faf4ae4bc52ac9fd2d8564b69
BLAKE2b-256 d61cb101f668f5c8da2fc7c3bf60a52491d97bb9452df32773f6a0534aa696e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af975edd9e8799e31acf282478a7d3fcca4f6195f38fb4d5370c7bed27b52ffa
MD5 d1d017f58bd7919208afd3270cf769cd
BLAKE2b-256 d2e5ef2e6bc6e82ac603e00fcf45f5dd775e77012216395d5644ef11029e4600

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7822e96b485f63a45bde07515f02db31e0ee299598d3e794258222ae5de6724d
MD5 29a3ecdf252d3ecec4f81efc894d5476
BLAKE2b-256 a69001ff4d476fd01e79835fc4ead6d39ff6131df784496722ba259319a6aad3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8239cdd3129ba4727bc6d62c60fcc8bdf0829f1ce15fa4b7d8df160ac67b8ebe
MD5 3b9fa2cb3cb2cbeaff861dcbb42c16d9
BLAKE2b-256 6c37f24e97d587a3bde646f868c0343a6f94a70bd9bc9440ba6e08e83e73b8c6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 04cbfac53d96d65a6429bf4b40ceb17ca76766f1214e2921783d5f2f9fa8cc4d
MD5 f2bb1e671c42cd83f69c60676a3136e9
BLAKE2b-256 c0bf15bfe3502e8c779acd9d32bffc9d083b14c771a711440321e876210f4732

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7ce89d8d27919a13929dff333503a337c27fbd84ec5db5790aa255641c8a6fb8
MD5 26f5ec374ceda53ca5281a23dd2df844
BLAKE2b-256 9054aebd362c3640aa0d1fe7b1c28004fb82e43e7dc28631b515d595053f69d1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7def815b2453fac808b63e4df39ac6b22b43ae259a1976698e14c7cf1653f3b7
MD5 d87065b0fca38486d978c552058ddbab
BLAKE2b-256 8583085f5bfdf701a98b4ee80a8bf1f1a7e14f9034094cf8c47e87156925a3a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 84e7ca25ffb329ce715c15e9499c58a688dde5b706309e2f5d4e79abb13d0283
MD5 91e57ede29014e7c42c3090259fb6249
BLAKE2b-256 bea2098cc56ba8cf0788d8cf1451a26e06c7125c78eab28841bc76d30ccfb3a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3d2922fcd555098dac34841e4a83d8ae10a950707a90558182732b3fceb13fd9
MD5 b30472ecfc14b7d6988e924a93358e00
BLAKE2b-256 7e182477d1ccc0bae510634e0437fe552d2a14d9e708eff32a9bfc4c68cbf6c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fbc899475a70d4e996a2a1589139f6637abc315fd729b20f86128eabd65a087f
MD5 012176f98debabf982b3eac1816f5654
BLAKE2b-256 7256ec42e830fda04adc70421ca8f6402593cdea7c07c169fe583e2ebde02f59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2df4604c8256a46da6aa6740bd801b57878888fbd271fce50f2f1fba08f9cdaf
MD5 18981b699c5f1def4f480ae63760c753
BLAKE2b-256 04a9896777ccca06c1c0dc6808fa5a9c012fbdeb8cf3f69c89daa1db8c12588c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 35f77046d614ffe7dcf73dee6d1e3aa34b3d5b3324bf54f156256c7958954057
MD5 6d4e6d017ef64297fb6500c12bb37de5
BLAKE2b-256 cfdd5d21ccf1c6d7848fb228241fd6c5f8db974a459c15c2875843a59a63266c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06565fe68d04accdbe5281977e87fd2342d664dae69d2499f3d264b89f704029
MD5 a0307687e9490ae775e98830fe88fc1c
BLAKE2b-256 29e8bf06ead15ad01367c978ae2e442bbdf9fb9d9f55396644a326fe7f5dd36c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0c45b80e0a518f87422918921de764f7fae584009146df30c16558625edca677
MD5 8a2643445f1d39edc69c2260e50e4b56
BLAKE2b-256 012a8e2f7bf6753d2926993ecd9e7434a21981219602e9106511446ef55f1514

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 539e71003a185753f094af403e33816122e37c37c0125198ccaf632586358d7b
MD5 568aae19022ac2b24169fd6334004aea
BLAKE2b-256 a5d5affa857e0429203dfcab045f7b85d28d2d8b78905afcf2843735e0c99984

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a400e7ced714b559e18fb5b202a4b1d3dc682ad70cdea83d26112d654a583ee1
MD5 c1b53fd7db840431eb44160f16c8d48e
BLAKE2b-256 51556b47b3afd7139b46bbe7aad1890c0b0d17b3a6b969e212de8f653bb753be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b7798b26ac9756562d93698be3b8a041b5f13ae33412b51a081ab9b060c1a863
MD5 84f07d628784ed52330058c0b5c904bb
BLAKE2b-256 928aab9a5ae8e045b489f00f1e74c3bfe56a9bde02b3d1eb5a008a61ac48ebf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.17-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d692691181d01bac5c0ad2add03cc955922371efd77b99cb4d7475eddbb2c6fd
MD5 74506be61693379946e73c0d64f783dc
BLAKE2b-256 d24278f1b772f234a284bed23143ce08d825d293f95d88390050633343477627

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