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

Uploaded Source

Built Distributions

silver_platter-0.5.12-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.12-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.12-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.12-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.12-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.12-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

silver_platter-0.5.12-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.12-cp312-cp312-musllinux_1_1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

silver_platter-0.5.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

silver_platter-0.5.12-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.12-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.12-cp311-cp311-musllinux_1_1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

silver_platter-0.5.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

silver_platter-0.5.12-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.12-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.12-cp310-cp310-musllinux_1_1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

silver_platter-0.5.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

silver_platter-0.5.12-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.12-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.12-cp39-cp39-musllinux_1_1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

silver_platter-0.5.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

silver_platter-0.5.12-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.12-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.12-cp38-cp38-musllinux_1_1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

silver_platter-0.5.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.12-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.12-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.12-cp37-cp37m-musllinux_1_1_x86_64.whl (3.6 MB view details)

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

silver_platter-0.5.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.6 MB view details)

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

silver_platter-0.5.12-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.12.tar.gz.

File metadata

  • Download URL: silver-platter-0.5.12.tar.gz
  • Upload date:
  • Size: 97.1 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.12.tar.gz
Algorithm Hash digest
SHA256 5ea4af471b43de7365647b6fdeec6c3d7904b78ee29c4aa0768478d19b881be1
MD5 2b21edefef0803bd3e0cc3a8eb5ba087
BLAKE2b-256 4ee2f63cb1b68d7fbd8cc9c5aeb24e18f9bdda2f082af443356b2bd9b9feb676

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7525870d7b912caac8a509df6fa1aadf3f6580c09484dd2aebf1249d19643e9c
MD5 b0376e50ceda14d3574612a2a1f62965
BLAKE2b-256 524944ee766eead1777afef04e9e12cdbb41614f7c139d27fd1ae5c912fbefc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3929e0b9b01da8fbc6a74626c0232aafd896f6cd05891c0079681d0818b3df50
MD5 f9b3803cf8501a7fffaaa44fc6ab3c27
BLAKE2b-256 b2b0e4f541fc22bea4a2bdac2e1e881a6fcb10c3b174a966ca3ba951132a98a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 aac7ebc6e20ca530f572af4eb4983cf7d9fffb09e0e3a2bff04cb7ce3f02f69c
MD5 c05faf991a34c4317c14cde791372ab3
BLAKE2b-256 cb6c6e8f1d5df4f39736e8bef9eaafa712edbf0b2822b960a5fe3d32539f81e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e9c570c05bbf93d75e60da6668ae7cfe7e34804f4747788a19be52adc0c4995b
MD5 c7905d748530a42bf40b122c6afab112
BLAKE2b-256 34baee7cab5eeec051c90d6f7309b032e5a9f23ce5615398423e4e7651035507

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41eab845b3e3aa0cb7ef281fc22650767e185930a392960d4b399735f3d678a5
MD5 85cbd2387cc8836c632a6cea618898ff
BLAKE2b-256 52a34f4cfc165a1d46ded07cc2218b7ac8eabf982e391e0d433c4f08a2176200

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b9a4301b48c15bce928b21b0c4728a79b4a8b0d2b53bc76f755310007d87acf9
MD5 8e52d62db362017c316ed0c421996fe3
BLAKE2b-256 a7d2f3239eff7d1865ecaad8ef0b0e7ee302d18f586aa6d255ca1ba78e03e0f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fae0a3bc8365687c31963d9355d87a35f7b9c69a2a2b42fac77db7df74361b40
MD5 e38a41ea969383f81373cb2e4a38b09f
BLAKE2b-256 2a7044aeb2dea9c24a25d07c794d8b934484eb4c28a4e8d7c318a963015e4f3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9ea6122885b6dc9f038c990f7b487b1836b0110f64a43512faa9577a5d7b5760
MD5 aded902bdd52615a6fb8d52a5e55f5a9
BLAKE2b-256 aec48d900bc0ff9162141e1cb1467e5bf7f7c75923137b36fd9aa650e68f25c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0755a7660551461e849143bcdb1decd31838a96dc0f49fe52d97d5445644a8ac
MD5 b63399939563ab38dc8574bcfd90ed05
BLAKE2b-256 9c869f21d6bd932f740c014ee680326fa91a68a20d6e60b0470fc9851e20e447

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b1f52d80a4c28c0e4ab27472a006bf7a8e6a0e37049d74bf6d9c4595cf01e461
MD5 5d69e17ec25c6b2917de99693feb211b
BLAKE2b-256 07c992a7c2ab02a17067d568b2ed1476bb87622b343280b9813a1780932622a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 06efd2f37467410f87851874d82883cad9001048a2dfa5b742b7cee6898b4bfb
MD5 e49ac6866d03f2948c3f7042409796b6
BLAKE2b-256 562ca7b081d584e36b11fdac45d32141901bc6ca106ba5b40d96ee5bb0e3733d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70a7be0c9516fd61d64faae60db50b97862734f78da0b39bc07670a8961928f8
MD5 e49564a2ceed7c9134f20333f5145f07
BLAKE2b-256 b17b03f11efb0333217243c1ab21a3f5d86223e39e1eb57dbd887becba52f299

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c1881641562751eeff5c79eef498c4157f743643f33b59db6da6857e3852493f
MD5 fc1945267194bde8d5555c40de6b4b5f
BLAKE2b-256 c23b7ff00a8493434950366c5a562886b58dc49ff7a070f433ab7b53eea7abc3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1752d6d06cb8b739fe61fde111a560d4932b1ecd6dfe5c42c9994a3191992aa2
MD5 e88a536fa3503cd7792075f3f6b1ef1f
BLAKE2b-256 80a2d2fdd98ac7d84e393711d94b1e1a80bb06b5bb625746465ffb161ec3d172

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 63b025fd807a4b975af453e877536ca3b3fb3828d97f398c8518b1249101e5b3
MD5 b0234a9cbc73e686df23e9d2c74f5214
BLAKE2b-256 da869b5f3b501376106ea4a75b7aa34bc11127b8ccb69baa1a54e9ac3649988d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f74d5b2b6b0b778fd364ef176a32524009ce780f322eca141c9c5e4b65d0b59a
MD5 65a4991597f234a8607c00632c443e7a
BLAKE2b-256 eca9a67b7739f8302290b039fbfb21776471b1e4c13034b88676f1ad65e34891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 462544e14f247d4a2b901d96c9206ff04ca017f6366b783a741ae1e70cf5d18a
MD5 5e7f7da84fb9dc58b98ff70b6928644a
BLAKE2b-256 3158b2ec12316d104e7480fa7e1421359bf8d8d5e898d268c9e8d97c37b8edb6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e5a658401d05164774b01fed9419513b6d25669a9d4c019bfe49be93234479e0
MD5 2a94dd37eac9985fccbdfc0b8b7ec198
BLAKE2b-256 18ce1bc70603b5deecb6940ab34db341260002b648ec7e9a8821e15d01e5abfc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e69683c55a7ef7aebcd713d7deee58a35284732c7e6e83e375b98b9dc180f771
MD5 4e23dec2b81c8068efdc93493325c6f0
BLAKE2b-256 6e9cd48aa7573961b6031c2e1e03871a0b8e6d9a32214131a1b452015eaa3f03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c60652b5f2d6c416c3f63ade97f9b7f0c1917d18a371ed8848ade3e64f16bfe5
MD5 5bd72fee527cf40c37ef42c95e7fdc7a
BLAKE2b-256 1dcf9e8d4e84afff282d6ab9a878908680beaa4c7d41799687c1a75be4087621

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08d2dc90922828dc9ecb5341b14ec913fc0322695c35ae9dea58a8df35da88b5
MD5 40907544639bf03f5d98c12ee7d7040c
BLAKE2b-256 eaf031f25831d88f2c07ffe46e5c9271074cec670f32e85a2d48024c2c39d237

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 edb1432753578bed52d650c69aee9c94eeaf14f48f1abfa53d6655534800f488
MD5 8eea60962265b2f2b725a70223cb50e0
BLAKE2b-256 87832f25b9448c25accad09bc3f96183eda869b21ad6a960b8dee13e898e7f17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e2d828e1eccbf528bd2702edf734d4f5bafeecd9133a4d1c87d65a206fac7098
MD5 af417dcb6dea22ddcff5ffbc2622edc1
BLAKE2b-256 d9d73008ece7d1e7ed6c5d4143bffb8e30be8489f16a62f7912fcec9a8d44f3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bdede922b5ff52d87574314e5bad0c3c7e24dddf4a71ab98358bc4d55ad6373d
MD5 033dea5ceedd90c9c504d89469a3b108
BLAKE2b-256 f4d5d485ca2864b37995ce3a743b1df59effbc54c0cde3b40df7c1a4feb29eab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c9749a82163585cea8cbf757ac34733a109d3ac29f0393cb1a81fa6a7d8bf009
MD5 2025ff23cea33900d7cdf60b4e40baa7
BLAKE2b-256 81143dd0796554c236f559b8f6e8e2f301e181605a13e374f3cfbf340502a167

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7379d306a0054f07c10895e3082f5986ef9d77de3f7d14c9475e7000081ddb02
MD5 fb69ed0732166503eb8d04f4f3c2633c
BLAKE2b-256 e446069513710682998019ab32a6a09ddbcb7a73690b5472a2fced4b19338f51

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e9b14a73664650980c402e60ecab27b566f18d9f87c78069a7fcc6bd1ff18ebd
MD5 652a001af3019bf628f4af144a1e5faf
BLAKE2b-256 f533115902fd69606c1a905460a5cfb8fc54852d0acb98189f995263956162f2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e9cb4864e509c4cf4968f9a09454fef38672338d2d19d214f2291057df6203b9
MD5 f5891571d5d24c2ae6160c1167601bc2
BLAKE2b-256 a739d6c9ba2a67d4aebf510f5abd62128a2c3aa2de4d9fe015a5af162f9e6604

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7cff1e6fd292727c82c93afbf520553d13b77b83c3bdcba88e3fb9a5d0cbbde8
MD5 c99d1f44dada51b6b1fafd26c28d506f
BLAKE2b-256 ea8af00c32d11ac2b526e1ced488230b62524222f2b9fc35c707284b3ddd25bf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5eeb642e82ec450ff70dfaca969165a635c355d034fbe1c0985116046db3c58f
MD5 e675ac5a60e3460dd3a315fd5a693e69
BLAKE2b-256 b8538817e6f0fdd41d86aa46488c46499e6d45dcb183dd9fbd754578f6586880

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24a0f5b52bd72a35ab6f42123764ef456724cc4e036a4d0c5d02d8b2ca8ba168
MD5 6f2e64ba5fa51d0365c6542de028697d
BLAKE2b-256 9742387eb2fbb81c0cfc775f6c0e2845f583678e6c673f1ba466172583c3aa35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b72c2a6260c13cbe18630fb748b04cc33f4f588834c77f9061617c8c382b45ea
MD5 cbcbfde120de40ac69e345a99060f969
BLAKE2b-256 39c016a15bb44d23366d4a09d44c0db65a33301e1a3166f0e5edfd80141074eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 fb93931511c37e22b60cc9fcafc39c198a086282eca3b4273702c65080fb5341
MD5 a219224fa5ee05d0285f44a69aa28e4a
BLAKE2b-256 e63ad154360897117c549e0c4693e7e4b4e3fe9e129f12ca02802fd08acf57e9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 afd77dede12275756a16ec3d92d78387e016f2c91ef80c0d552e2417a2aa8c13
MD5 53e5f95ad88bb27d2f4f5b8b642ffd6c
BLAKE2b-256 2cb5d613c91bd6dd380e797a0d1669742bbac4b5f1929ebc7254621724df0dea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd68290ef40f54362bf6d6ff44cd97672adaeff752f5e26ed8caa9f0cddae9cb
MD5 b862706a6a5b0dde73f0b6a2ee22897c
BLAKE2b-256 1500d59582037b6a8bc179db66e24b56a93d4fb7ec2de3ad1d575bb9a7627f30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.12-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 65eb877052f6fe66d158e992ad6625f9379d9e239a143359741df562ee191585
MD5 824fcbfba7c4f3cf2e9060774ca469c3
BLAKE2b-256 39fb4eeb6d4927852bc1cd0c7cc184273b6188cf11704d5f48eced9550a1fc0f

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