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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 macOS 11.0+ ARM64

silver_platter-0.5.20-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.20-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.20-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.20-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.20-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.20.tar.gz.

File metadata

  • Download URL: silver-platter-0.5.20.tar.gz
  • Upload date:
  • Size: 51.6 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.20.tar.gz
Algorithm Hash digest
SHA256 a3eafe333cac18bd51c468ba83d5368048c1444067f6c37e6f2c63a68fd3e4ce
MD5 08b3a9e28224bd89900beac0600bcdd4
BLAKE2b-256 3d73dfa5b879a2cb9efb81a8b7c6d5ff8c02fa1f7b3f40b48e0087b02ba22ede

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a07141ce915827337baea69b919f1fb839d2cbf14aaae445005a2297ebb00097
MD5 163280e6374d45e319de1dbbf239d1ec
BLAKE2b-256 b9c489e64413b885f9ee9a9e0976366b921bb09bd50f9521ece6e50f2ba9c78d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d3c102ea2928a2a89d76231be4bfb22985dba3045c2ffcdebd958c22b0657151
MD5 f28aedf9cecfbd242c179dd217894a4f
BLAKE2b-256 7d3192eeec3499e211f7b477158ec0a635f2982fd436c3b3c39bfd9efe9e5227

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f3236e1cd0e28229cd0d9f631487bbd1d08b9315ac60d845bfafe17f5492ba80
MD5 7e7245120947250e8781cbbb6a21f114
BLAKE2b-256 1af913e2188d5ccb09fbf02e8e409d170d640a9b34ea38993b8d4fa11c3abc1b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6850163e99128c635b2dff16f17fac5c7928c6418b138034a60d4a4564f7b7e0
MD5 602022940a628eb13b3a910d6ba281e2
BLAKE2b-256 04140db78b780a8cd7efe76c9ce22e59432b75c787ccde3a001b85d64f8152ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6cb375163e7829f943bbb7e387db4094503a6fa6c888003456222d53d9a5b13d
MD5 a9ec1c022a8d80a05cdfb92aea181427
BLAKE2b-256 ebff2f16574fc44ced84a5fd0305fc08f9147bd48628bc3638ad0d7e1a4bd89e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d06e41c8fb71c7d793415868446b2bf2ff574b4f760ac9c3985d72519407f789
MD5 ef3f5e3d5ac21441780e8a294845ab5d
BLAKE2b-256 63fb5245b1da6afac472fb826757af635508b0f5fe91b991198ef96a372b02e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c70ae70aed777162b7daeaeb5769563ecb5492c9aa8f7ea54a9605b5324d54a3
MD5 8bd7d7c05676b4398c1154ecb4adffff
BLAKE2b-256 969d1418e8db1ae8784c5be0fb46a541061a9848f49b1dd2e8c2b3af473a970a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6dc1ad1a84175128bcefd81b9b10df44b0d5629ffa85a4fce572c8738ab1be8a
MD5 b59ad4aa17e89f1b855ba24a9f4ee720
BLAKE2b-256 c08fa72ced89291779c3b128f7e018e58d4f00a33b831c138c35e3c2bf5200ac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1fbf0138cff6c4290b2aed52d6452d27ebb9a812a75287f482e028c3edf9987d
MD5 35f6a0bcf10d6b0edbd8d2d1f3d4e8ab
BLAKE2b-256 d74cb6a3e69af8049b301479e019b963a6c37b83ae215ada300f9973b52bdf81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a44391f0fd99bb2ab29fa0e4e3694dc9113d5e1b61c63801eaef7bf4df536015
MD5 6d78b528fa7438f4619639e93e9205e3
BLAKE2b-256 fa49925c05238b9b2987b58566994328b4fe3f5a566f26ed8c3dd61aef4ca05d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5989a5be41bc36078e4e846f9c231fea651c06f259ceaeab209c6edb600d06e2
MD5 c5e3980552693de639dc6c86eef56995
BLAKE2b-256 e033d9f0ba372101b0d717f381395a3d10942fd28b1db74cd4e40507bdaff7f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0810f41628697dbf2ec55769e8b39f70033eb505cf39b2be86ce4118beb0cbd0
MD5 c7216a5cfa054a16d76e72f440f762fc
BLAKE2b-256 703d9ed776aeab1b04ccd1145a90a206e56cbb6c1d32544c01fd2ff94355b523

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 0516e60df3d34eff6a7c68898cc9627f606eb351fd211cff3ce9cfb547215a7e
MD5 d3d77cddc1595a759993783afff30fcc
BLAKE2b-256 7070083ed44de6f5e15dea3fe5ca2614429a3cb7535d7fe89119124ce081c21a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f27de6b1ad7283b58ed1e370d6ce0b54321b6d7b8315ca5c76742587647511fe
MD5 3928d0e370a21c0d067cfc71db18a550
BLAKE2b-256 05d07a10194f3ff4479f548053f10cc6704a3013cc29762f77710d9fabdeb1b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d368cefadfdef142f0b0857f3be6f59c8ddb14341f4fb447fb844f564fda37c7
MD5 1349fe607f26801562a0a791df8bbe80
BLAKE2b-256 57d8b3165025d4cf19611a9348790af7a105259d656796e0be19f901ffd5512a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ea7bc5fb141498e944f563979d903af0f54e85929eace7171a63f96f7976ff14
MD5 4442c5ad2531935547d86f22638541e7
BLAKE2b-256 047f570762fa8ac4d0cc4347210e2b54e7f4b2ac7b4d7de3d23b7e684c5e3e5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8599a9d39df26c8c543017dddda7050570daf6075a680820ce8e343f51c95bfa
MD5 3942b7fa69d888c306b7db25b360f422
BLAKE2b-256 e5384b2dc23dbfe256e670de2608a8e6cd17585d5f38d1763fde10e914384f99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a2ea6d2c7cbacd58e9859364e3acb1f2a85599d388729072f1b9f65fb54a973a
MD5 b90d0ff5db409753937f6e3ac05098af
BLAKE2b-256 7df1e9187e2d4e1694558f811397efd5de65a684c4543ad61a48b57db7dde500

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 191b8390ec0ee2260a76dde09c1b85f89d370bf281b16f6201784e2eb81bdff1
MD5 db233aaa160766c819e49d2915c025bf
BLAKE2b-256 c771226d0c233451d9ef2dd11627b371e85c68a1f8cff482518a96472bfef248

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d369ac2dc92be7b1f446f6b78bbd152a9b05db57641d422113b4c30c69578bd8
MD5 aefe1fef8b66fdd268eaf4a6991976f9
BLAKE2b-256 8a7d4600d0a1d346bfec58b6f17de9ff5484cdebab938380526e87ee1abd76f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0a5e3ba628d3da28c36b56215034b473036c0cae08f35317f4b65d3d03a0178
MD5 ee20da7703e5f19bde8f8735279b3ecb
BLAKE2b-256 250a10afd10d8468dda0ba6235644542fb8b129ac43b404be04aa63b4a35dc70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f180a704c5f53a72885c9b55e175b82cfed0d188cda061ee56a6e7b6822116f8
MD5 dd6d140ac64a9196930e264db8cfd55e
BLAKE2b-256 b96b1cad212dbbdc9fc6de9a4d0436f26795c0f38b86bdf3e01e5bef9af2bae5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 968e26d9b796d5537be8713785d219c1f94f68a9e0e5c92b465d1b4d35db1fa3
MD5 186e591a21cac5597e857d1f9053dbe0
BLAKE2b-256 9837fa5c555a538b1dd7076a9e43b40d6ee82ad02af887510865049232fb9146

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c67a042db8067c16c92abc634e3a37f6c7b7c5d2597c2947ff7314d460647580
MD5 98e0b357fe1200315dfe5ee083c8ef5f
BLAKE2b-256 87b10b3815a2296c79fd1389e1dfb29e492622592bf533e56898a188dfcf5bf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2a916574dbd9304d8382d830a903b0fd82ae2903bb28043ca583afffd61c9bb3
MD5 a42c700b3f1527e734a2914df38feca7
BLAKE2b-256 62b96e25b133411710b960c7bf322b6814e36b1b1a82a8a4ffed17c2c3191a0a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd023e8efd365c4fdd5486435fa966afa076c75f28d7d67cf914309c07743331
MD5 1e52c97989a379a935c514cd176c8c58
BLAKE2b-256 e4ae2659962e8a6dca429a91238af3d449b7bc72b81ffac1f133499e493a43e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1ce7ef22a654cdc80a5b90489b09f294abd25ce3f0ed853a3190bcb26754fe30
MD5 bd6acb062848a745d659e3cbb757969e
BLAKE2b-256 a2eb598ddd753a13731f5a90323e2e8afca17bb72ea5ab60e6e7857293c6efcc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 febbd885687684157affaaebb57d4be3d76c6120ba1afd60e10ad65ce6840db0
MD5 41eaf777b8e107453210af8a4fe325d6
BLAKE2b-256 7d9551e5f3a50b0074c8a099238d0e96508d1e30b71bfe9ae2b6c561dd2cc796

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5f29a474db01460751e48ff7dff1c8d5336f2ad084cc86f410c883a5892f89bb
MD5 64921fa0f9f51feffc0b347b6a149e6a
BLAKE2b-256 85cf422d3287925f8417597906ec1b217a66047ae5b63f07cc323548519ed65f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bab241a0ce191f1079fbf75bb84dbb79fd2bfba5b005b473ad0f28e2bf416a0b
MD5 ef2dc711195f9ca1c265f8e0a364d3f4
BLAKE2b-256 070ff8d7920d4ceaab3530e519da525c3f91c4586c63a6c455a69618022cd8f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6290ac89f3b486641b985de44c6ea84d5bb2bd3eb481cd999505c77f2c9d0e46
MD5 3891aec1e5d419816d6ddb17a89b59ce
BLAKE2b-256 4cfab6e6867e31b53b619d3506bdab10cfb7d077723cfdbecd6a284b72229045

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bfc4ee4d5c874a39aa7c5236dd3253067eb10a31c11cdcf2e78030f3e4955422
MD5 a8476acffa3b5980040dcffb4b93b065
BLAKE2b-256 ffeae844a040fcbef3ca9c336db661277af67b8d831ca907f4d2132efd47d66c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d9eb9fec21917edd6087a75ce5555eef09cd348b5cc35d9e5870ec00ea6d5677
MD5 7dce9eb9c22578aebbd7ff27bcd10870
BLAKE2b-256 48246a489a44d7c9e147ccb7764ec0a90115ea9687ada07b534404f6de0ba05d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ef883677c328286ac8324cf73acf16f1fa53a102e6327bd66a4365971dc7cf0e
MD5 0e7a945a5b4fd047668da6ca23059318
BLAKE2b-256 214b6e0b94c2beb9f569a1d205e3f499f25dd5ecbd760870711b35321a97872c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e61ef01aff6f41117f140308e71628228e2f5a740319627cc05eb040ef0d371d
MD5 5cf436b3d545db4a614b2b233120fd45
BLAKE2b-256 09d39c6ced1420a195a170714be899d7648b5a37f3d40ff3f90604d8ce65c9e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for silver_platter-0.5.20-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 24ac58e20161804ff47775a70c2150b3e3fdb0dc3ef42c030df4ffea35192d02
MD5 13b059d621fa23509b2b04908b24f27b
BLAKE2b-256 be112d26848aa060e1373e3ad04636e908f30315e70b09b92f8d5d1dc179ac80

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