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

Uploaded Source

Built Distributions

silver_platter-0.5.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-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.11-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

silver_platter-0.5.11-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.11-cp312-cp312-macosx_10_9_universal2.whl (4.5 MB view details)

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

silver_platter-0.5.11-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.11-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.11-cp311-cp311-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

silver_platter-0.5.11-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.11-cp311-cp311-macosx_10_9_universal2.whl (4.5 MB view details)

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

silver_platter-0.5.11-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.11-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.11-cp310-cp310-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

silver_platter-0.5.11-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.11-cp310-cp310-macosx_10_9_universal2.whl (4.5 MB view details)

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

silver_platter-0.5.11-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.11-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.11-cp39-cp39-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

silver_platter-0.5.11-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.11-cp39-cp39-macosx_10_9_universal2.whl (4.5 MB view details)

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

silver_platter-0.5.11-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.11-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.11-cp38-cp38-macosx_11_0_arm64.whl (2.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.11-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.11-cp38-cp38-macosx_10_9_universal2.whl (4.5 MB view details)

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

silver_platter-0.5.11-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.11-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.11-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.11.tar.gz.

File metadata

  • Download URL: silver-platter-0.5.11.tar.gz
  • Upload date:
  • Size: 96.8 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.11.tar.gz
Algorithm Hash digest
SHA256 ea88b58fa689d7652d0f2d8ebca21c1e71957f16802a30cb3e33cb394ad56d77
MD5 d3843421bc35b204ccc4f6c2061698de
BLAKE2b-256 41af33ff01ed7c61340a2a6b95e4b44203fdffad1ef378b54fe40c61ef654242

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cb7ab0fcfa6d8f2da03011fd22d856120ab31ca1eedab6f6b80b011f1bc9fdfb
MD5 c31d38493494f6a621b83743f905756e
BLAKE2b-256 70f7e050bbaf019f87b0f230d4305a33ebd606bf712ae69b64e2bb556752d5c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 70c797cab3ff7a0c1eb28ce80ea06959fbe3c355ca787083b02bc65762f62bfc
MD5 e2462dfb79b8da2b4fb49d509398da39
BLAKE2b-256 a82713ac15c83046243fe8bafb03fdd85a1225a669bed09ca311fc8c8b399bd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d98773260da365fa7b7ccba177afee2d8fe6c8c52dfc656225f970cd4857b45e
MD5 d1d4d90bf01503f913025a0f3c2c35d4
BLAKE2b-256 1038833db083b9658930ad94c7323a18ca64862116a0f4415c89446c0ba5f6bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0865bf60a7e3272de147ada501038f31f6dfe415e896e6ae11a7ee7e6a66052e
MD5 bc23ce768290d462c736fb3e9c66f48d
BLAKE2b-256 4b8f20902c9214558d4a52201966ea5e578242de1ee3e29570c1e99aa5a163ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e06718fc87a486f5fca26e6acdcff2f91327c0d356a796cf9bc98bb3150a353f
MD5 247fca7e99b49058da4072209223b89b
BLAKE2b-256 f7ca15cf22f45eef3fec67c42fb93ee4fe7b87c3ac61d27d3307a92150614324

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 640f8cb55c679ee77f8b5d98486fb1304164e8a5cb18c57e0224e95a03925814
MD5 2b00a3b734e9d2f528233009c1714232
BLAKE2b-256 23a24b4edc9d6b5cc35306a5a4777909832836a3d8e0fa07dab00a7b39cff43d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31f2155b72281f9ac2268bfacbab0c72d2ea74eb9795fc2092cba27b6c6962e1
MD5 ab7234649803a75c387b78b3d47bb79c
BLAKE2b-256 eadc05399c9d2f9cf3b1e7a9a0591ac0534378ee0ee13ba17463cdb0f5b66509

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ea660aabba193a9d9053f85bfd040cf5f20cf022e5f18b19a5e13b382f4f0b26
MD5 8f70d4172ca50a6d569930874b089435
BLAKE2b-256 2e496d40d7781a665f04649a5afc0f4797b31821f61400cb8293e1d9fce83052

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 364d80f7a7eeeba957e76879949eb24c6e31e37e4b84ae3a59b90a0ab40c633c
MD5 2fa0f41af7cb9cde4bc92d5aa456b710
BLAKE2b-256 c8dcc51c64ef04534c0516a9cc975b632d75fe4952a9580cf38085718205f7f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 42e1be3485a619d0f90fb3b8ce3817fbcfbc62a1bb902bb5d66cc7ccdecb48e4
MD5 49cac0caf9967245255f79cffde36012
BLAKE2b-256 e329e94768bf8138a8c0c5eff0c6cad57882e0d42967eccb72c8125894becc6d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a3c7027e8ac0a8bedf14123a57da845810900973bc4e216ac2f555654e5a5cf
MD5 40e01ec192485c9acf9c63b43ea0fec0
BLAKE2b-256 56b7791a55ccc1ef6af87536e1f096f0d2765da8739d8f57228242c51bfee95b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 79ed3c9d75fe80dc08a37ca8b257688111d8b67093ea95f08eddbb864e3d4a14
MD5 96d1cba24c600f55fa6b5f5f76035d95
BLAKE2b-256 97cef495a2b152a5b0674bef6d5ae6e8bf30afad4b29aa481dcf137508c78722

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 49548eb818a7e651706427913876f9758c89cc5f63776e7d755c4117ad676af5
MD5 45fe9c6c050fd52cba58a616db0d2f9f
BLAKE2b-256 ff345ae61ca52a9f643e7735268d82d31572238b4a32e13a4c98c3e5d50ce9bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6e6faf915060355ace303dc338b94e48fdb9d9971938f8edbe05837a2a5e19e2
MD5 1955a9fa6c38dff07acdfb40f6976b43
BLAKE2b-256 70c20c7fdd28ef65528e7f5c10fccdcff83640f53509b5f5b5aa5df4d20dd077

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d8dcf5ec3d093d182b40d953d8a72d2d2225b45ea2619e619a42b9b1962c4cda
MD5 698fc5cdcf1df1f2be6b4aa033d60bd8
BLAKE2b-256 fe7a74c2208489a0727de81cbf9ab9571b7053b1881eef842737c1ba3b263a05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e16c8cf9ff73d62b4ebe114184daa8755bfb396d7257b023077d356571ebe9e0
MD5 f1623381223b5b661e8a49b23818d9b7
BLAKE2b-256 01ecf00c9c4565751a0d1b68ed88281925010d1b5116ed5e8e45b4adad4c56a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 75ef704a50d98fc3a63c2f86ab70f91fe145ed113ec0def6f7e3a3dcbc18ff85
MD5 c49a8d22851a5dc2822a44256d14f9b5
BLAKE2b-256 622817783969c41cb28e9eaa0bb6fb5c6f3e8358307956c3cbd608f649b62ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f3c9a56e3173418bf55d759cb066f37099eaef693cd477e4d26677348803f757
MD5 5b2a2cfe39c40d0b79b8a005f1ebb322
BLAKE2b-256 e383ce554d4ed47bee614fa720a40a2de3555e44441ebe960f6dbed0e4ccd788

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 82751b51f75aec40064fb637757d0f68508b02d6d067e4847319699a1eb3ae53
MD5 0faa6a0a3fd58d575625519280d09931
BLAKE2b-256 a87ac75ede14a41c390cbc47454dc438e0da9a93021865a50b0b1893bc6a290a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 75a59c77201343f7352ab9826053a9fd121f73eb51a650b680ac6d588e6aa27c
MD5 b90811ebde1976534c021728b43ccd45
BLAKE2b-256 fa78741df467fcb46218cf1785eb137b1385b61cddeebc378baea5647be2833b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0e8e687a67ea1d6b9a3ff3533f54657e1e4a8464d1e0b51e05b37b9be415fcc7
MD5 deb0ed9ff75e52b4bc7f5c6b5b84615d
BLAKE2b-256 6fafd5abe33144cd2aa3cb9ecbb1c6d37588f554f8db0bd0efdff42aadf4cd0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7ab833831da4cc4ca43d891b8694fc497862028b21463596f99c7bfa244e0227
MD5 0f0b71cffa276b6dc77f0b86e0320793
BLAKE2b-256 5706bb747611c0dfe95a87d32acf12784fcd57e1e777fa4d76178d20f0265b02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d4b81e05b8f3581e6a9083ea62cd582df16819e5145f03fd7e5cce4e4070d07b
MD5 84a55d376250b255b5f64a2ad3dee685
BLAKE2b-256 d876f5a81b78db30ac4cb608c73c0faffcac37885ccaf2ff900a85a0b280f003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5ff10e1d60765eadc7abe8addec85b8e143a7f017334b3dd63de6edea4a43e55
MD5 012ce2df5088dc14b2013bb13f6fc2f1
BLAKE2b-256 e5946948ab476afbf03a4eb0583fa23f3b6fe226e71ea92a9cc1ea042b3996a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67453a3bdd2055e1101ca030a65e13496bebbe613492de1fe2b547119aafb4ce
MD5 2bd2e68ad335f95b9af425d08011a336
BLAKE2b-256 a77ee03e757eae0bbab6c499c9223bb73b694414bc1071eb66facefb49e9c548

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9c66b8ebff700cacbcaf9ee5c715f0ed4382298ccf6d3ba330871e4f167f312
MD5 fb9d13e0457a98df82723509c3a53bca
BLAKE2b-256 da94d1316a7309f99a5d9f625b3b7e722631ef2d32638f8f75f6a8edbd57dfa0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6429da4b243d293155320b0bd705581298a0b64f51991c6927569b8bef5a8a21
MD5 8100364f079246c438c7455201826baa
BLAKE2b-256 d0db27c52c078c3ef38e9a73d25af207b73ad0bdfea78a3ebe6146c5e9e77212

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 441f91822cb678481a5cb5a1f3c940f7e6809f4d5a7868ad569778cfef9f9f0c
MD5 960dd818c7dad0f2a4c9e1a7eab92f62
BLAKE2b-256 33c271357a7a98401e4a5054268fd62b40dc05acbcd579a28167ef459dd48927

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5472eeef04f1dc03fa47d1fcd847abba13c967ce0e7f27559360858ae5de2a95
MD5 0539f888c8739fa19b960081f472c250
BLAKE2b-256 f502d0b6557842749827e2841d06d0d085fe1834dd32d5ee1199b9114ebecbb0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 19770ae8dadc3227719608b77c8a1f43ac1718c7db855a346a7249cd19d6e574
MD5 9278931c036060515a11ccdbb866a82a
BLAKE2b-256 a8a92b4c1343333343377c3caee3bffce29151a83c4bbac27fc6451f2efcec76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7fe37ced015352adb1f1b238dee0dbc155e321871cf82cbad2818268f2f3b04
MD5 129380e00da2b24d404c937b3fecd2e2
BLAKE2b-256 da4496eb228cc0de34caa1dcd0521c8b14a7b54c4c745afc688e2ca6916f9ea9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 67b9f03d8c8308bd38c2fa7fea055d39e18de780ab744f7c14df3f056e2d8ceb
MD5 2b11d0b31f7dd2ca90bfc0b99a5246f9
BLAKE2b-256 5be0ecc37c9f6d67345428930db07cbc14e0f8cb494c3ac222da6073b12d12fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 69834e5410ab83dd84d55ca48e40f7126159ae6e450301e418e6cf8efb88befb
MD5 996ead3f100532ae89d848d9f3fd93a8
BLAKE2b-256 794ec4346971385a67a0582f9b7cf65edfe0079b63aa34bbd68e5a319cdbaea0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 be6c3a5ddd69f04a7453c595ed5f32c1234b220b7d6fc4a6a0520917e1278468
MD5 162f2b99bee728b712c6892a80e7908f
BLAKE2b-256 93c1d667892d3a36f8a85d9de2adf37c18bf042d3f24db022c9fa1c7f1eb9b33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4dcb18f8bd994800afd763d29cdd377f30df58f7d7605e2a4b1e5e1fc1f3ab6
MD5 92e0d15b2a402fdf1b12f40668e4c7a2
BLAKE2b-256 24ed412baff302ce623940f5aca414444e680e1ad1e8fc6a792e69b24b4b794f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.11-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9a01bea1edae9cd22d68d76a2123aa113c72ea1ecf8b6cdb495257e23af72453
MD5 9ede194ab827cc525758876217a70e08
BLAKE2b-256 4eeca81996ef4795403c4374832fea8eb876a35f44d5859b0df91dbf0fde6052

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