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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.16-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.16-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.16-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.16-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.16-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.16.tar.gz.

File metadata

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

File hashes

Hashes for silver-platter-0.5.16.tar.gz
Algorithm Hash digest
SHA256 4672c4205f27ea92b4f1d8fb4c79177ddd91eb102c08f273d3efdae85cb270f4
MD5 7c94cdd603fd6b66eeace0d215015e3b
BLAKE2b-256 d53531412cc736e2b5ebb98d0b699469cbc73df6e7c54cfe149ec5dcf10da97d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb0f16bfac8ce831db74ffaadbfdcd01ec63092c36d2abde59634cc23f82e45e
MD5 9060239daa529d93f07d41e931d43bd7
BLAKE2b-256 7a481e0ba1099298340628db9770af0d24a038b73ac6d95f4088af30471f6516

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c43e82d33f73c1e3ac612457403e5d40e524114dc2ac19528d2991a899015900
MD5 072979e132000173f3b8f04ce28b633a
BLAKE2b-256 000d8460f4ffea57e8a2b5506915db0c6dc3e3c5b5d5b5e7a23f190285926479

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 534ce025b3e1b03cc968ddab70bf7615b3e24d57636d9e1c87bddaf5623e6a59
MD5 44c6336b311043fe62b2d96661e2fd44
BLAKE2b-256 221ff8867b7b0cc1e4f36eb87ce324b61a009b556bc0af0df1b3efc3f15c2bbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3e2c72618715796708b5df0e6e8a13c78ca27d76a64247a227bb38c73f1c87e7
MD5 85071377f66099a02331ef64b6c10350
BLAKE2b-256 b26d8e6964257b1392af35c50b303967487a2eff81757c313e33385291870d72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f09e29e9753ac3066abc566f19e31029226690c5c2c25828d4f78378112898fb
MD5 a1fc22117fda3572dbb34ebdca19bb89
BLAKE2b-256 72b1b469da3f92c3495a6ac5b67dcb46d177b1ab50b4eb5fdaa526d5cc108ffa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 184452d1475b88760bb52404c1956224f47f0226c45009c06a9f3fc7da4c0c0b
MD5 99ff275103b268c322263d32799cb8d3
BLAKE2b-256 809df7f5907cab9239cda2348c520af7a16a6037aeb2694bbb6c27f5757e57cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dc5a6b07e932aba77c240dff9e7a2e95f29636fab58c28afb0fe0b347b1991b0
MD5 bea9ce7e0e38f5177e17df9cb653c777
BLAKE2b-256 6b2818e9c3b183eca450985a4d3b99588787f2885f1f237c526c6c144b6f7956

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e857bf499fa72e1e1b61bc8efce4af88db9131e6bf9f150c985d4e54ed30bd22
MD5 bacb0861bc99974f2989b8617e94f6c8
BLAKE2b-256 db699c5e3c1fa2bde48ae47b8265e029e381a95d50597dcd20423218e3102a8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 39862100e82a0f3efe014fb5d40b682ceca4b9b099995b07651e4fc785b5acf9
MD5 f2c2d02b4e4f938149192a326931abdf
BLAKE2b-256 ac656c1e7d7e676e7de1eac12eac1bfdd0c9a139674f2c0079545b2834965aaf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6651d54e3015fbe72990d0f65705cb702216993eb513a1822423fd15b60867e1
MD5 318b0f78998578fd55a82172bc8e4546
BLAKE2b-256 369aef6d4cbfe7c194da56b8276c330c22f9f72e99047d1a092b9913218e1c55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bda68af4d0e044203c3ff7636e1d58b9b000a5dfed96c3429188cf49fe172779
MD5 9482373054b3d43a2a91a4f45f3dc1a7
BLAKE2b-256 1de5d6d7d88918bee5fcce60e6a13a3c83a73324bae09e028506fb3f9fcf4ed3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 62893ec54cfa1c953cfa847f02edb72bb19405ca2be2cc56fed388e5288b473d
MD5 fb344d0744541ddd7365e042f3d63f96
BLAKE2b-256 addd9acb310358d1acb4f23b40a646386fa111e30d0faa7d7f1c8c65295ad7aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 aaa07a84d0bfacf8120e2b16b86a634804390fd1bb1a44399b1bd14af9088563
MD5 857ba2efaeb4a0e7e7af6481ee2c3c98
BLAKE2b-256 0adb4414b4ce0cedc683a250d5198bc1027dde8b81b99bae12652ebce47d32d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a7647454ec02a9bfd1dcbd6cb4dfea07dfff22c1f5acdeb966f4c5c93aea1ab0
MD5 8221c2b62ff1cc0104154ea26cba76c4
BLAKE2b-256 a34f3f0ca6eb159c703037d19b53d5c4dd67e404978329ad2e0c2b424d5b39d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c040c8c2b6d0ff4f0080b98c1f9d5fb25a3cd952540382bb339598783b17eaee
MD5 1c6e1a5fec6abba4017b935080801187
BLAKE2b-256 f21d81733c3ef35fbaf739b427fbecd7c097e66e88567322ad9e16316a569eea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b10129b7b6571effba0b675d28c619495f2923d8f38d4e7b07f74a9a5fcd4ed
MD5 67699aecfc6a83ff91f5b86feaa60364
BLAKE2b-256 878dd64567699d72b1c597c09f9c1b0d416f2c4c0dde435131646f53639fc578

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6885fcf5c59280a46b1d956cfde7b9eb0bd07775c5e266f9d908253c3993a5b2
MD5 187f4a4d67c0c20b3d1a69168c3eefa9
BLAKE2b-256 9aa2b64724b143f43d075b1175b91084bf8ae952499d71a34a94ab6135c3ddc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 47f3dabb23084fbc2583cfd19be22adb50c4930e4902b14d0e675a067fe88fbb
MD5 2d356626b3ac94b807fdca7308c15a62
BLAKE2b-256 82525eaefbe347f0e95166914296307e016320de17559dd621eb54162cf4ef31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 07a74cd4552a58760a9b5952c00a2281f145ec550d0658ed0eb52bb1a0f69f44
MD5 62761f27213ac91c047c78005cbdd62b
BLAKE2b-256 919ceb0123308c75002287b44a3be791b7a817b8003dab5651bc24efe73fb3b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6a305a15efb9ad61c83672ebfef55abdb76b92e399fd29eb2569398c0de710ed
MD5 a12a28992dbf33b46a3eb7d806f6c24f
BLAKE2b-256 94388d8b51e6cbfcd1b0f9d410b7155d7e2cdd673f1e1b6d6e2f521e7f44d7d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 57c51509056f3af6b60ee331b36355f4b92a31d31f398524f2613ff01e7ffacd
MD5 0ba1460635ad8062704b20ea52b30894
BLAKE2b-256 b01f800919392322b7de555493fbb604342796bc817d47d64583273b8ae6abec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d13498c8378e71d15f16a6ad1053b1008a7bce16bec7947ec88efbc6259052c2
MD5 9dd4072b65124258f4a6af968c308fb1
BLAKE2b-256 0756541429a8463be7d5750699316b8c49a4cb1807383df3d415684b8e5f0b19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b7951c4e05d0c2b14c11a08d6eb7e41c73ae794a83d8e4b0142de6e734dc8981
MD5 e17131a8f0b4f6bfa3fa53b0bf190c53
BLAKE2b-256 2595c456431ebeef5311e6e845b1f6b8ed8f1746168c6f937d5b4c44afcb2469

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 9d881a2dc26b58dfc3f132ea782bc994bfccdf7601406a5b5c5e68a2f730d549
MD5 4cb4c245dc013c2d7910b2101f5eabcc
BLAKE2b-256 f843e7911ef55de7ee26aedb394b15e114d0ed3efab8dfeb71d959429d15370e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02b345277519bc8db51bff381b3494081362cd74c283414c3b153f02c9256ed4
MD5 1627990e1f3ac7d562ab483699aa05da
BLAKE2b-256 620923fcfacf41f546d4dc5d6217cc1a07255b392921edd95b83c500de9f500e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5502707ae09b5ac3966916ddfad89d73ce6d8a25018c6a2f5473b142c4a86efd
MD5 365d758235117ca33634f246d8bfeb37
BLAKE2b-256 5d3d3b815fe4bcaba9890ffb06fc46f47ef7b97bb277319c21e4c5be2c4eb110

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bc04ec33c1e385935ba50384ab71f94db2d3ea22c0f0247fc533fcde90af800a
MD5 b32dc14aa4c902b615f3071a899a7c3f
BLAKE2b-256 1b8f32f05a0175e6d2173130049d0c11565f4f7a68033342e626877761adbc0e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a409344f4e2a61738814f653155027b35bedfe9aee36bdb5233e4e4fe0161179
MD5 a7c06729b924545ee83d3ead4f5231da
BLAKE2b-256 655957cebad1b4cc7376a351575198c99aba1610ffe4e926e17ecbfbdabf73ad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cdc3844323e9210d5a5366455db9adcb1db7ecf718d0a305a43e02c2745b4d4c
MD5 97b8cfb1a69f64d4d977d60816fc482e
BLAKE2b-256 9082d8e370aca1d712907f5a5db566ff632e10a675155b87d8d17a3f8b8a934f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5659c0465d65d03fa6e32f9e93bc4da426268d7764cba5563e31eec44573100e
MD5 884bfb687f3f5f58272b6e3522a7ee8c
BLAKE2b-256 323d34620b2e2f1c8e875e8e764b3a514fe383ff815cd0bee52ebd871adc97cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f4a835791151dfa3ddebcb1e4ec1f2dab4f0834bbf205def90f1eb6d2d6ef4e1
MD5 33c4dc3e3311d48baeba0bf86dee7e7b
BLAKE2b-256 2d78d7777f27c25bb2ee7099bd4e7c81a73a21a75758449ee5be6d7ef9ae2bb8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 beb4c61b5eb6d8ce2ba89cd4c7692f89c90d05856e88c7395907ecb86b884d7a
MD5 06ec6b910128c7f71f07098716383606
BLAKE2b-256 0f39eb420a5806652afb7c637179ad63c1fdee0512ffc9e02f3019c944f5c768

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 443dadd8424fe8601965413a7c259c82871821b07c6665bf342ecc6836ed7be6
MD5 1cdfdb8be7cfe5277c423f1f484c7ad6
BLAKE2b-256 4ad4d40addf53bfeeeb58f90edee5aff42afc7706bcd89a43ff004990100978d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6039aa8f6cb4e9bf6aa7d399ba97310f4c118cbf8ca1e621b1357305234e7004
MD5 2b1735fd6fd566ff96129eea6a64dd79
BLAKE2b-256 8a4283fb6d7638f939cb3e72dd977ea3cf258995b03ac051cab3fea33e35e59b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c18f323c08c70f08159c11ee6fae0e39f4e6d6de7b19cf2eba7c5809f295b965
MD5 a0fb1594eef046fe3c708619f87ef4e3
BLAKE2b-256 34f88c8e48d9635f4df1290038e244e34729f8da01f08f1afb94c4ddbf59a233

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.16-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e4e181c37fdea5c50e90eaeb7b361374075db705b0852991d80fd0936bec8840
MD5 1efe4639d51e94f4cead188c3f96862a
BLAKE2b-256 2e01d917c6ff631d562c999b35a9cc22fdc4a1fba1f597fd8dbc9d7013141834

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