Skip to main content

A Lisp to Python transpiler with persistent data structures

Project description

Spork

Tests

Spork is a language designed to bring structural integrity to the Python ecosystem. It combines the massive ecosystem of Python with a modern, expression-oriented Lisp syntax.

While Spork compiles to Python AST, it introduces a new engine for your data: Persistent Data Structures implemented in a C extension under the hood. These immutable collections prevent a whole class of bugs related to unintended mutation, while still allowing efficient updates via structural sharing. Spork is built for developers who want the productivity of Python with the safety and expressiveness of a modern Lisp.

Philosophy

Spork is built on a few core opinions:

  1. The Python Ecosystem is Great: We want access to NumPy, PyTorch, Django, and the massive repository of PyPI packages. We do not want to rewrite the world.
  2. Data Integrity: Python's mutable defaults are convenient for scripts but dangerous for systems. Spork fixes this at the foundation. [1 2 3] isn't a Python list; it is a persistent vector. Your data is immutable by default, ensuring that state management remains predictable as complexity grows.
  3. Unified Tooling: Spork includes a unified toolchain to manage compilation, REPL, and testing, similar to cargo or go. It handles the bridge between Spork source and the Python environment so you don't have to configure build hooks manually.
  4. Pragmatism: We believe a hosted language should not fight its host. Spork compiles directly to Python AST. When you need raw performance or side effects, the escape hatch to Python's native mutability and types is always open.

Alpha Warning

Spork is currently in alpha. The language, standard library, and tooling are all under active development. Breaking changes may occur between releases. We welcome feedback, issues, and contributions!

Installation

As a User

The recommended way to install Spork is via pipx, which isolates the tool environment while making the CLI globally available.

Prerequisites: Python 3.10+ and a C compiler (for the persistent data structures extension).

From the source directory:

$ git clone https://github.com/spork-it/spork-lang.git

$ cd spork-lang

$ make pipx-install

To uninstall:

$ make pipx-uninstall

For Development

If you wish to contribute to Spork or modify the compiler:

# Sets up virtual environment and builds C extensions
make venv

# Run the test suite
make test

Quick Start

The REPL

Once installed, simply run spork to enter the Read-Eval-Print Loop.

$ spork
Spork REPL - A Lisp for Python
user> (+ 1 2 3)
6
user> (map inc [1 2 3])
[2 3 4]

Language Overview

Immutable Data Structures

Spork provides Persistent Data Structures (PDS) implemented in C for performance. These are the default literals in the language.

;; Vectors
(def v [1 2 3])
(def v2 (conj v 4))
(print v)  ; [1 2 3] - original is unchanged
(print v2) ; [1 2 3 4] - new structure sharing memory with old

;; Maps
(def m {:name "Spork" :version 1})
(def m2 (assoc m :version 2))
(print m)  ; {:name "Spork", :version 1}
(print m2) ; {:name "Spork", :version 2}

;; Sets
(def s #{1 2 3})
(contains? s 2) ; true

; create new subset of s without 2
(def s2 (disj s 2)) 
(print s)  ; #{1 2 3}
(print s2) ; #{1 3}

Python Interop

Spork compiles to Python, so interop is seamless.

;; Imports
(ns examples
  (:import [os] [random] [antigravity]) ; Python stdlibs
  (:require [std.json :as j])           ; spork stdlib

;; Method calls (dot syntax)
(def text "hello world")
(.upper text) ; "HELLO WORLD"

;; Attribute access
(print os.name)

;; Mixing Python types (escape hatch)
(def py-list (list [1 2 3])) ; Convert Spork Vector to Python list
(.append py-list 4)          ; Mutate it in place

(print py-list) ; [1, 2, 3, 4]

(def data {:name "Spork" :version 1.0}) ; Immutable Spork Map
(print (j.dumps data)) ; '{"name": "Spork", "version": 1.0}'

Pattern Matching

Spork includes structural pattern matching out of the box.

(defn describe [x]
  (match x
    0 "zero"
    (^int n) (+ "integer: " (str n))
    [a b] (+ "vector pair: " (str a) ", " (str b))
    {:keys [name]} (+ "Hello " name)
    _ "something else"))

Type Annotations

Spork supports Python type hints using metadata syntax. These compile down to standard Python type annotations.

(defn ^int add [^int x ^int y]
  (+ x y))

Compiles to:

def add(x: int, y: int) -> int:
    return x + y

Macros

As a Lisp, Spork allows you to extend the compiler via macros.

(defmacro unless [test & body]
  `(if ~test
     nil
     (do ~@body)))

(unless (= (add 1 1) 3)
  (print "Math still works"))

Output from all of the above examples

$ spork readme.spork
[1 2 3]
[1 2 3 4]
{:name 'Spork' :version 1}
{:name 'Spork' :version 2}
#{1 2 3}
#{1 3}
posix
py-list before: [1, 2, 3]
py-list after: [1, 2, 3, 4]
Json: {"name": "Spork", "version": 1.0}
Math still works

Error Reporting

Spork provides source-mapped error reporting, meaning that runtime errors point to the original .spork source files with accurate line numbers and code context—not the generated Python code.

Example

Given this Spork file:

;; math.spork
(defn divide [a b]
  (/ a b))

(defn nested-call [x]
  (let [y (divide x 0)]
    (+ y 10)))

(defn deep-stack []
  (nested-call 42))

(deep-stack)

Running it produces a traceback that references the original Spork source:

Error: division by zero
Traceback (most recent call last):
  File "math.spork", line 12, in <module>
    (deep-stack)
    ~~~~~^~~~~~~
  File "math.spork", line 10, in deep_stack
    (nested-call 42))
    ^^^^^^^^^^^^^^^^
  File "math.spork", line 6, in nested_call
    (let [y (divide x 0)]
            ^^^^^^^^^^^^
  File "math.spork", line 3, in divide
    (/ a b))
    ^^^^^^^
ZeroDivisionError: division by zero

Project Management

Creating a Project

Spork includes a scaffolding tool to set up a standard project structure with dependency management.

$ spork new my-project
✓ Created new Spork project: .../my-project

Next steps:
  cd my-project
  spork run       # Run the project entrypoint
  spork repl      # Start the REPL in the project context
  
$ cd my-project/

$ tree
.
├── README.md
├── spork.it
└── src
    └── my-project
        └── core.spork

3 directories, 3 files

$ spork run
Project venv not found, initializing...
Creating virtual environment at .../my-project/.venv...
   Created virtual environment
   Upgraded pip
   Installed spork-lang (copied from current environment) All dependencies installed

Welcome to my-project!

Project Structure (spork.it)

This generates a spork.it configuration file (the Spork equivalent of pyproject.toml), a source directory, and a test directory.

Spork aims to unify the fragmented Python tooling ecosystem. A project is defined by a spork.it file:

{:name "my-project"
 :version "0.1.0"
 :dependencies ["requests" "numpy>=1.20"]
 :source-paths ["src"]
 :test-paths ["tests"]
 :main "my-project.core/main"}

Commands:

  • spork sync: Creates a virtual environment and installs dependencies defined in spork.it.
  • spork run: Runs the project's main function.
  • spork repl: Starts a REPL with the project's source roots and dependencies loaded.
  • spork build: Compiles Spork source files to Python .py files in a .spork-out/ directory.
  • spork dist: Builds a distributable package (wheel & archives) for the project.

Using Spork in an existing Python project

Note: Not currently on PyPI, so you must install from source.

  1. Install Spork:
$ pip install /path/to/spork
  1. Import spork once at startup to register the import hooks:
# e.g. in your app's __init__.py or main.py
import spork
  1. Create a Spork module:
;; my_module.spork
(defn add [x y]
  (+ x y))
  1. Import it from Python:
from my_module import add
print(add(1, 2))  # 3

If you forget step 2 (import spork), Python will just say ModuleNotFoundError: No module named 'my_module' because the .spork import hook hasn’t been installed yet.

Using Spork Persistent Data Structures from Python

You can use Spork's persistent data structures directly in Python by importing them from the spork.runtime.pds module. This gives Python developers access to the same immutable collections used in Spork.

from spork.runtime.pds import Vector, vec

v: Vector = vec([1, 2, 3])
v2 = v.conj(4)
print(v)   # Vector([1, 2, 3])
print(v2)  # Vector([1, 2, 3, 4])

Why Lisp?

Spork is a Lisp because we believe in Homoiconicity: the code is represented by the language's own data structures.

  1. Metaprogramming: Because code is data, you can write code that writes code (Macros). This allows you to add features that look like language primitives (like the match or unless examples above) without waiting for the compiler developers to implement them.
  2. Structural Editing: Tools like Parinfer or Paredit make editing code structurally (moving entire blocks, expressions, or function bodies) significantly faster and less error-prone than editing line-based languages like Python.
  3. Expression Oriented: In Spork, almost everything is an expression that returns a value. if, let, and do blocks all return values, reducing the need for temporary variables and side effects.

Under the Hood

Spork is not just a syntax skin; it is a runtime system optimized for the Python memory model.

  • Native Persistence: Spork's data structures are not wrappers. They are custom C extensions.
    • Vectors: 32-way Bit-Partitioned Tries (similar to Clojure/Rust im-rs).
    • Maps & Sets: Hash Array Mapped Tries (HAMT).
  • Transient Internals: The runtime utilizes mutable "Transients" internally to construct immutable results. This ensures that Spork remains performant at the boundary between mutation and persistence, giving you safety without the typical "copy-everything" penalty.
  • Source Mapping: We track every AST node back to its origin. When an error happens, Spork points to your code, not the generated Python.

Roots

  • Clojure: The primary inspiration for our syntax and the sequence abstraction. We admire Clojure's discipline, but Spork is native to Python, not a JVM port.
  • Rust/Cargo: The inspiration for our unified tooling and project structure (spork.it).
  • Python: The host we love to live in. Spork is designed to be a good citizen of the Python ecosystem.

Documentation

Checkout the docs folder for more detailed documentation on language features, the standard library, and some benchmarks of the persistent data structures.

License

MIT License

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

spork_lang-0.1.0.tar.gz (239.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

spork_lang-0.1.0-cp313-cp313-win_arm64.whl (225.2 kB view details)

Uploaded CPython 3.13Windows ARM64

spork_lang-0.1.0-cp313-cp313-win_amd64.whl (228.7 kB view details)

Uploaded CPython 3.13Windows x86-64

spork_lang-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

spork_lang-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (464.0 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

spork_lang-0.1.0-cp313-cp313-macosx_11_0_arm64.whl (229.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

spork_lang-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl (231.3 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

spork_lang-0.1.0-cp312-cp312-win_arm64.whl (225.2 kB view details)

Uploaded CPython 3.12Windows ARM64

spork_lang-0.1.0-cp312-cp312-win_amd64.whl (228.7 kB view details)

Uploaded CPython 3.12Windows x86-64

spork_lang-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

spork_lang-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (464.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

spork_lang-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (229.2 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

spork_lang-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl (231.2 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

spork_lang-0.1.0-cp311-cp311-win_arm64.whl (225.4 kB view details)

Uploaded CPython 3.11Windows ARM64

spork_lang-0.1.0-cp311-cp311-win_amd64.whl (228.4 kB view details)

Uploaded CPython 3.11Windows x86-64

spork_lang-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (437.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

spork_lang-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (446.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

spork_lang-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (228.5 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

spork_lang-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl (230.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

spork_lang-0.1.0-cp310-cp310-win_arm64.whl (225.4 kB view details)

Uploaded CPython 3.10Windows ARM64

spork_lang-0.1.0-cp310-cp310-win_amd64.whl (228.4 kB view details)

Uploaded CPython 3.10Windows x86-64

spork_lang-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (428.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

spork_lang-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (437.3 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

spork_lang-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (228.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

spork_lang-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl (230.2 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file spork_lang-0.1.0.tar.gz.

File metadata

  • Download URL: spork_lang-0.1.0.tar.gz
  • Upload date:
  • Size: 239.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3e3d50fd16a41845340336a7f47b1f4f445a587316b165b85ff9c094ea540475
MD5 902e78267cde9024804752ffdb20cc03
BLAKE2b-256 c08f3c7ff092fb416f26154bed66e98086f14c806b2757791c15596b7302de30

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0.tar.gz:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 225.2 kB
  • Tags: CPython 3.13, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 bb06dfb8c3c2d20bbcec6deef27a2164116f97b05e786da360b2a6d1c16b84c9
MD5 c80fd5b34c7eba0f3cf4fc0ddcf65beb
BLAKE2b-256 baf81ddde06d532084de56284f97db4310d003439bfb468dec8de25cb93d98e5

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp313-cp313-win_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 228.7 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2a2dd6a1e61382796f25a0aa8d09e6ef4322c268a63109accd6de47162151b2c
MD5 5a19e44a2253b8b1b036127c32e71eeb
BLAKE2b-256 a45ab4ddb219d8bd951bd1da3d26c9fc9ffc0de7748bec3336c6b004fa69eca0

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp313-cp313-win_amd64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ade95fc9ba1a2635ad75f3673d635b0811dc4b9d7119d17867567166fd56901
MD5 039a06d6432ab50a4e91393d7fa0e8be
BLAKE2b-256 5eb19b9c2fe9c5695fa60d71d3865e6158d8ab380f2e90a9e976cc734bc9814c

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ce40bcd8948e82220c103f56dcc8e38aae69b13189e8528e90998edfbececa9e
MD5 9b1b97cff9ce26fb937e6c7ac4735f7a
BLAKE2b-256 fb92ab25a6e48aa4c1b1dc8e5a080774f02aef50bf69f3adead0382f57304bbe

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 656cea9758beb3293aae8c3b7f676bf6ada12b93144eb0067d04d2aea8f95ace
MD5 13fe7ef7816617394dd6dabd3fd52827
BLAKE2b-256 0e2cbdc7fd155a80dfe497828a32de48ca186e036156c0f42e9f01b9efeb7384

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 e65ae90aa4305bec6edf20172e0e171571be78145caab0d410282ca4817410da
MD5 9136dfe9728ad6b51ba2d4550afa91f1
BLAKE2b-256 517aad3682d2f1abb87ce3c04e92310dc37e7a3053f3b4c56c4dc0c43e8ca8e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp313-cp313-macosx_10_13_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 225.2 kB
  • Tags: CPython 3.12, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 a65d8f38721169daf3be575c74d9706f428e262cd040420497328eedafc744e4
MD5 0c9145d363994017205e6451bcaa054a
BLAKE2b-256 9ac437fc33615bd59ce1a3db2756b99e36f7d8c6cda9854b2e18acd4729d386d

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp312-cp312-win_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 228.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 da565ef71be71e40cee2f5055de39d6ac3a472cbe36756e2ea5a023838a912fd
MD5 3cd02b1a9a30488a39bc9487078b908c
BLAKE2b-256 003656ca5df9f51cd63f9aa9b611c38961235f905a8e614de2017cc5bb7d871d

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6f9b0fe9fef3844a946a7dc0f0d97859775c3f7b24d597bfad2c81bea6634547
MD5 cb8764b9856531697b27831e9bd46e54
BLAKE2b-256 bb1f232ae09341b63d7392cda48464834ad2b97ad54481db9d5a50206e12bb8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 98ec0e00a671932e06e8ed4658472b8f844f6fa1575463c66c928f37cf034132
MD5 9473784d4f4d375de7829a6b43e71098
BLAKE2b-256 0fd5fd554e8088764aaf9e3bfee33511279a23bc443474d9b5888311c251ffe7

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8515a868a97f94bb9738e5676d48cd36f5f75bcb51b36a5223e4e64981c31772
MD5 1404d36fe8dd949b2bc41b78c3cb6d5b
BLAKE2b-256 0eb48a49ba8641341ac18847be991f3b0d59ae3fa8f40fac41f386ee2605d87f

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 670263a11bfcd6b26d7df3c306eded8b29723f73b3fd926aedb87a6ee66c6964
MD5 a5c547b4bdfb423762cecf714ac32e17
BLAKE2b-256 c3ae574d6225d92f8ff8a6a7955615af4bc93645796999ee35ddca01e54988be

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp312-cp312-macosx_10_13_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 225.4 kB
  • Tags: CPython 3.11, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 7070b2503ed99b3a494cd8b53af84108b02c6edc36d0212f7c8eeb9baa311192
MD5 f0af68010100adc07f53df9b1f61e3f7
BLAKE2b-256 5e26c963b2d41b125c59968c9faf47585b21d6b86179bcb56472ceb12638f9a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp311-cp311-win_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 228.4 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 9cbc65b6db75b941b6e8506e52989af50c5bca38b0dabdaaf61d0515b4541429
MD5 5e6763b2f5cfcaecd33f55e67c576f86
BLAKE2b-256 42b2988182931cf2b34545d2e121af5104d24b03de6dfc10d46ccec9e86d7400

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba822b5d8a09350096f473c5298801a31f58d5ae18855c46b1fd20375c7ebbfb
MD5 89a94b44dcd6bef0725151af6e9e63f5
BLAKE2b-256 b101837ce97a51d173650a061a738e691f7ee1cc873395d29f583b2dc4736b8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 24a428a0d326e092ea6c0dba5cea021ae328c1b13849963b61ecd10312db0cd0
MD5 b0b00eb97088a1aeececd9fb1e4f92c9
BLAKE2b-256 1da5ad3d5ffb70c4f1b2874ac8cb35635dd9087fa3590b1329b070fb990e7253

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c6c85260d87430ad2b82f33ad03e7c2b93b759b447301c457523799d7310ec2d
MD5 2594390b607710fe06b905dd758691b9
BLAKE2b-256 b6b3a4a75275d5c87b884cfb5d5179845445ecf714a5e98e633800d00115bde4

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 515232017c6d5bb7530dcd5ab9ac79106013beb3d0d6fee5af345e2215bc2cf0
MD5 cd9725ef3ceb6cf87e9b8be51651d13a
BLAKE2b-256 b0fb9b6ab5d9a81c0cd227c74dd338b620ff1c4a9b1866fde921aa6f766ccd92

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp311-cp311-macosx_10_9_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 225.4 kB
  • Tags: CPython 3.10, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 0d6b20bc819a2c8275ac81a9ac1209bab8139b45a558209e3d1e71f465ede2fa
MD5 9cfcc591e8a0fc2281560e7c925ca652
BLAKE2b-256 a55680e12b74e0c3b3ada8afee6eb6c0d648279f539db3a99b14cdba026ddf80

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp310-cp310-win_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 228.4 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for spork_lang-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 ecd8b1980f95001559c2addee661c488ecccd2bf445513faca636e60b749cdc0
MD5 65092f43186093170f2bbc4dd5d69829
BLAKE2b-256 3945a113adec0a395c7f155ec7e945adcc961143dc2485e54f7149a835c73696

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5855a4bab09457e1c68f5e4a88b82bbcc80f2eaaac586b6891f41737cb717933
MD5 47365c0163b1277249fb34a0b95a24f0
BLAKE2b-256 90c447e33f530e3417168e0ce9ed445b355e3003adc601875eb92f3e1c1c876b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c49d96b8e67fb8e8e87cf6e382bba5c48f5d11ff8b69e0519b8f9e612daf2e6a
MD5 ae07e1594212e97967fb8fe47028e7a3
BLAKE2b-256 fcbd2007aa967883e09c9f72f4ca8bbd5bc84ed5d7419d4f83eba58a6cdc0b51

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 337b5d394127df3a879cff4d8db53a3eda932e289ad807ca4129d00670174b50
MD5 5042fdb832c08a8fe81e018fda54705a
BLAKE2b-256 e26dca86b752e28467660c8f014d03307a5f2ae65cbf512121d6dbc32e589a3b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file spork_lang-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 79212c71578d87fae052484bbadebc22a4f32dcd3b3dafa3ac7b4893c1c94912
MD5 5abbc9e33afa3139ef19a737a52c9d2c
BLAKE2b-256 7edc01fa1eacf63827bdae7e98a6a0808a5b9e2ebe04bdafe38808c44b2a0d89

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.0-cp310-cp310-macosx_10_9_x86_64.whl:

Publisher: build.yml on spork-it/spork-lang

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page