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

Uploaded Source

Built Distributions

silver_platter-0.5.15-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.15-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.15-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.15-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.15-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.15-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.15-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.15-cp312-cp312-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

silver_platter-0.5.15-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.15-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.15-cp311-cp311-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

silver_platter-0.5.15-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.15-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.15-cp310-cp310-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

silver_platter-0.5.15-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.15-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.15-cp39-cp39-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

silver_platter-0.5.15-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.15-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.15-cp38-cp38-musllinux_1_1_x86_64.whl (5.2 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.1+ x86-64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.15-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.15-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.15-cp37-cp37m-musllinux_1_1_x86_64.whl (5.2 MB view details)

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

silver_platter-0.5.15-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.15-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.15.tar.gz.

File metadata

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

File hashes

Hashes for silver-platter-0.5.15.tar.gz
Algorithm Hash digest
SHA256 4c1d6c7cece11f979973c105358a6762e4eb205c0594d1e4f0bd8835d610ee92
MD5 0c8a3acbfa91453698cae8fefe06a542
BLAKE2b-256 c2b6b054a3ceb4574c1f80b2f9aaba0c8b1869d836b1c5fd729538ea1f1d025d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a2dfb4e8324955b58f2f6ae414421735e676c6a006bfc4cfd8f8755931775ad
MD5 04af62990b0c2bc9d29a7bac28acd361
BLAKE2b-256 81cc38ffa0e3a5c3aeb898e1ddaa6ade832c51b391bb7194cc16a1ac30e71283

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 212fbe823680164e98eb3a1f3fb02790b05ccd2f8ffbff2541a5e5060e44daf3
MD5 41079c39594f211710b33fc702b5ff7d
BLAKE2b-256 b325f3ed9263817c71e84a4a3b9a26da51b05643b897598c722c73487c650e61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1e469224b1c2b1890f0be35fb1015629cc67b9c42cd745cfb7315e455d9a9884
MD5 c7b0b0009dc78e9484a90eaf7138a709
BLAKE2b-256 5cb3f3c2b3ad78396624f1a16823af29063a015eb7618cb6b2010c70ae6bc499

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 92f0fd0a61ae820fdf74ed27564a90d80489fc8a758671324a8cc0bac0dd6e3b
MD5 362fdd4dd14eceee0a055ecbd8ecb915
BLAKE2b-256 92fe899850e823acd29f4f6e3df711b422fbe5f944e003d7206534b83eaf305e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a7633e40c02febb9a4b7c989c57ef3eccadf21009c64eda30ccc53acaa6bdac2
MD5 71f276d694f46acc8b8a45790896c6b8
BLAKE2b-256 a27eb7cc24937830056cdd8a5622eb78dfdf9f14dc01fa06c3bf6eaa0dc089b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 61cea8968a6f093bfbb38a2d6710576885eaadf61f3256b0ed0549684cc136be
MD5 a6633c877db91140ace0b4eb26589297
BLAKE2b-256 87f1167605f562378f2f5726f24d916a801d560cdbb3a0e363c39a589a576cc1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9614ef0f45a9a94e1f3839115a99d8488556ff97d1b7fc51234f503b0b881c5a
MD5 b4339060ed0d739192c554d9fe806783
BLAKE2b-256 ab0e794f91ac9790bdffe7e41aec6250fa7b403a6b55bcd005d12d43cb47f562

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cb81ed5ff240974785b6619bad66cf88707299faf623daff7931e30f0b22aff1
MD5 af5e69354a4c4f4390b9236bbd5c38fa
BLAKE2b-256 3c95cc3968b17d2da9ed3ed024cddd557a39ea7d68b0803421cfd1c5b6e4f597

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0267dde4a4e6f849c9409fa870c3353aac5f990c37afbf5ea3ae75938c021182
MD5 4ad9840c8586aa9eefcfd8de541b95aa
BLAKE2b-256 614fb49c2ffd35ebdb788aa5347f988feff3b4c02ac181f43fbc45a8f4b1e4b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ac6ad05cf88a424ecc39a4f3bd95fd943a05916e718e33f7f03ef8ccaf6eb595
MD5 d0c8a630ba17ad4474488e4da0ec7795
BLAKE2b-256 fede01a9553a3c45135cf27fb27043e2ba8282e122bcb60df2edf0cd621f59cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a203222a76a9453c694ad4223dfa865ccefc1a60e0bf722c2cd451ac797b24c2
MD5 72450e80e30f5a544da7643cfcbba657
BLAKE2b-256 7c18882b673260957beabb9d3e41b20d6d37f9dbbb59aaf05617704caf64ef82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3212269883233b4b7b536c80fe5d3b6b73382d630fc2bda4b2300c89d4281c1d
MD5 58874ab08f233d82bb4fce3228b5b377
BLAKE2b-256 d9776ed8b55459ecfc3e456b9377981e825aeb0c5ebd3a41f4b94d44f3b41ed5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f33875fd8aaf8b8092c1951cc86e4e5cd6f327485a44f1b677cf9c4915ac916f
MD5 89a4df6e40d886e9e29b9e478b0dc810
BLAKE2b-256 08aa8085703f552e25cf70d3d674390841a6c24c1434815a37526d41f77fb02b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3be9af363cc9a0e7bb6e4119535174df9ce0a3636fc2b903e157de8c10b1e20d
MD5 5f6538f7fee1fa9202d75062fe2a414a
BLAKE2b-256 d59bd6322c984da1471a95c1fdb50d9abf92d3b3f60b843f275da4c37e00b7c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d9d68390032286346bb50d3742c1b82a69e027a0f6824b971b885d0f938a633c
MD5 f79fb30c0e08ee57d9de59797c31b48f
BLAKE2b-256 779c09bb0a162b226b3239dd93ec4b8dbbf30936334679beccfa5d6d890188d0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 936008618766a5da954f2d688266db747ce54cb35a062b8664df114585ab8d50
MD5 e8d5431b6eaffc709a00cfdae8feca6a
BLAKE2b-256 4bc0425225dcdb9b07db6abc4143ce0d02e9b5474165df7a75d405e2e4abedd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8ad36273e2cd7ebfd5518379e6b5d2711d288573f6faf028e6276aab0cffe284
MD5 67509364d8112203f5063c22afeee4af
BLAKE2b-256 d7d68a0efbfd6055aebf56ac3b8509e4dc76218ebc0a4b25bfb437af9292f5ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 abfc7212731f9e0f33ffbda085c8ab779a22b6f38647323af52fe6f49695506f
MD5 9b77a918a83d5229470a545694b47ff6
BLAKE2b-256 76d68d1482bd3acd7debb7fccf0004833e778ac266f4bd53fa2e91c7fe646bf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6fff33721ff7aa544cbbd1f418b712c02a9000ede21c14a3a2a86a28d9d89492
MD5 6e6c074cc445b1e5bac02475ff7e8622
BLAKE2b-256 278f5d9db5bd9b4f202dd77b28c986c08cab0119d70776b3b67e9e003c720acb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d62afcfefca21ed4030836b369cba6c57a835d38ea032a7d5189cdf212f90895
MD5 52333fa927b73f084d61a5adb9ebb505
BLAKE2b-256 b17b8ddf78cb302187f1a61b6360a341543bbeb5decba4ca1a41a87736567d26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e0b5f9d70bda48dd3f3eacf38c085cab4f971624182915494a0f989e1ed12464
MD5 1963306f4fe1d1d7a3f807326a834461
BLAKE2b-256 36ef117448b631ca6aa8062f012a3d8608fb040784be8bc8cc8b9c952edc9986

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2cb0d769102f765b732a1ff11115e830eb67bf1c9fda09980a6e60a36895ee05
MD5 55adec719440a6d48d1f7e4eb9e4759c
BLAKE2b-256 1cfdff26cd0a10df437f039814f692c8e852118aa12e6d7ec2222a91b0bf4f2e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 bfd68c93b6879f323fd576dbc64aeee0ad3156eb581c485240c46713e8fe3e00
MD5 a526ffc05bc0a30094a73eac02ca4ccd
BLAKE2b-256 6631f9a1299a7bda82c84c48d5257d01b34748d0a3b74a10cfaeba4461baca67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c21b85f576364f7eefba46e3f9ac841754296af82717d5e1b4997f07290b1364
MD5 2fdb5be0c8099f5cdf2f5328d76d7a05
BLAKE2b-256 265407207fc50609466f1080209fd329c01c20a61ea39d13f03581f029dba1cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6a1f9efd8961dce572a340f5c0bfbd39f29630cf266d0bd008ddc68c5ec9a2d2
MD5 2c1404d0a4b5c8a782fe5482e95d75f7
BLAKE2b-256 7aa1d7258bae4646b1592c92e1a02616f5173787e4011add64b972fc6812354e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f5213ecaac8801537584f3a5a1af7f6a7760764b89650c1a23ecea9cdfed16e5
MD5 a6aeba72bf760413c87b3a34f84e4436
BLAKE2b-256 676bc6d32c92b73245624ae289251a1c89f8e99791c732cc89a32b2db3981014

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 839465b58d6625a352641f4e8acd1eedbf19b87d010941017c65ea4f5e4dda86
MD5 d8099799d724774aea1d6396d4ebff4b
BLAKE2b-256 1990a711ea4e71df4b224bdb9bcbe7c18958eacc6a9a12e3043f43c5e67babbc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 50a94e8edf787ceaece5fa6b58c78c841d8bbed52182f8d130f7bfdc95071fac
MD5 2a28e5e1836b36839bc891444587a697
BLAKE2b-256 f72ddaf8e9a52be2987a7bec9a308d2a2c81019ba3f34bf762c28e42cade5f12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 324d902b5a9d4909b651fc3b3fd7ae638b1f8908d868fe78af7b6cc2b2d73a63
MD5 bfeed3d3309bd29c6e750bbf84fab5a2
BLAKE2b-256 20859bacb01e031e3d2e3aae8aa9265b7d74b79ad319e8e305df54e1d0a8f0bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9abdf840daab23c1131e7343935302c7bf79b813d89f61b5892417da26f0f74b
MD5 770f340ac13d43453dd040fe993173e0
BLAKE2b-256 8912df717e3c02d0e53bab17ac70883377841be8bdea4f47f2a0f8dd43dd11b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4dec4f8b5bd65b4dbc389d595c4309e4f35065242a38d16a61a8cb648320cdcc
MD5 f5b93bdbf1feb4b10f448b22d1b50771
BLAKE2b-256 fc51a0787040c8cf47ab14cd496421256c7c04ab6ecccd79c59ab6027c5628be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a75a9ad347d52a0358e2d9aead4e63db7822f47d6193d7fb4e8a41d8f794b775
MD5 60c3b0b6c51e0881d8f89f03db05d963
BLAKE2b-256 3824b1226b7896f5e289cdbdcaeb95d6ea4dc36b04eebfb0427873365a9337b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6dd87fa944e0e940e827d0794c04236d2aeb74ff55caf0574a127c4a97dedd85
MD5 5fc442d738982828420ced8f3f1e4d7e
BLAKE2b-256 bac6e784b34461261671e6edb4e74b01763a62e8816910e00e040c3978400e9d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0c2619324a522ba95f0534fd7ac68f2491e08b9abdec6d60084e6f40de250b48
MD5 532d2b3b725d9ae39763a1e641262a15
BLAKE2b-256 42b99751204bc3aacf78c03927b82fe820623260a1d23b38df8d6ef17a8a7f2a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ee5ef1780d3f0e3ff4639858197634bce84ec8b82510668299b8e691fa58162c
MD5 9679e90d6fe5bd6b6b5bb4c2a5808e95
BLAKE2b-256 5e7e1310247afed3754f1611a85e9e97d38e962f880892c967bc3dc8bb959c1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.15-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d7d61545370505c5323c76dea8d134e54449297889b96ef9f5d44cce60325884
MD5 bb15198fed5f6bf3d1ac1392ff9a0345
BLAKE2b-256 81efe8f0c9b160f44e8064c5b53eb1c05a87103a1410e52f0775468523777b9b

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