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 the install.sh script or pipx, both isolates the tool environment while making the CLI globally available.

Prerequisites: Python 3.10+ and pip installed.

Using the install.sh script:

$ curl https://raw.githubusercontent.com/spork-it/spork-lang/refs/heads/main/install.sh | sh

Using Pipx:

$ pipx install spork-lang

# or to a local environment/project env
# pip install spork-lang 

For Development

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

You'll first need to clone the repository and setup the virtual environment.

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

$ cd spork-lang
# 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

Examples

GitHub Stars

Example program that fetches and ranks GitHub repositories by star count.

(ns stars.core
  (:import
    [requests]
    [time :as t]))

;; Simple profiling macro using Python's time.perf_counter
(defmacro profile [label & body]
  `(let [start# (t.perf_counter)
         result# (do ~@body)
         end# (t.perf_counter)
         elapsed# (- end# start#)]
     (print (+ ~label " took " (str elapsed#) "s"))
     result#))

;; Fetch the star count for a given GitHub repo full name
(defn ^int fetch-stars [^str full-name]
  (let [resp (requests.get (+ "https://api.github.com/repos/" full-name))]
    (match resp.status_code
      200 (get (resp.json) "stargazers_count")
      404 0                                     ; missing repo → 0 stars
      _   (throw (RuntimeError "GitHub API error")))))

;; Get top repos by star count
(defn top-repos [names]
  ;; Returns a SortedVector of Maps with :name and :stars
  [sorted-for [full-name names]
                 {:name full-name
                  :stars (fetch-stars full-name)}
              :key :stars :reverse true])

(defn main []
  (let [repos ["pallets/flask"
               "django/django"
               "tiangolo/fastapi"
               "psf/requests"]
        ranked (profile "GitHub fetch" (top-repos repos))]
    (for [row ranked]
      (let [{:keys [name stars]} row]
        (print stars "-" name)))))

(main)
;; Example Output:
; GitHub fetch took 0.1801389280008152s
; 92823 - tiangolo/fastapi
; 86079 - django/django
; 70890 - pallets/flask
; 53551 - psf/requests

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

  1. Install Spork:
$ pip install spork-lang
  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.1.tar.gz (251.9 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.1-cp313-cp313-win_arm64.whl (241.0 kB view details)

Uploaded CPython 3.13Windows ARM64

spork_lang-0.1.1-cp313-cp313-win_amd64.whl (244.8 kB view details)

Uploaded CPython 3.13Windows x86-64

spork_lang-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (514.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

spork_lang-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (518.5 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

spork_lang-0.1.1-cp313-cp313-macosx_11_0_arm64.whl (245.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

spork_lang-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl (247.8 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

spork_lang-0.1.1-cp312-cp312-win_arm64.whl (241.1 kB view details)

Uploaded CPython 3.12Windows ARM64

spork_lang-0.1.1-cp312-cp312-win_amd64.whl (244.8 kB view details)

Uploaded CPython 3.12Windows x86-64

spork_lang-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (514.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

spork_lang-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (518.5 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

spork_lang-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (245.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

spork_lang-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl (247.8 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

spork_lang-0.1.1-cp311-cp311-win_arm64.whl (241.2 kB view details)

Uploaded CPython 3.11Windows ARM64

spork_lang-0.1.1-cp311-cp311-win_amd64.whl (244.3 kB view details)

Uploaded CPython 3.11Windows x86-64

spork_lang-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (487.5 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

spork_lang-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (497.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

spork_lang-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (245.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

spork_lang-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl (247.4 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

spork_lang-0.1.1-cp310-cp310-win_arm64.whl (241.4 kB view details)

Uploaded CPython 3.10Windows ARM64

spork_lang-0.1.1-cp310-cp310-win_amd64.whl (244.5 kB view details)

Uploaded CPython 3.10Windows x86-64

spork_lang-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (483.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

spork_lang-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (493.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

spork_lang-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (246.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

spork_lang-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl (247.9 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: spork_lang-0.1.1.tar.gz
  • Upload date:
  • Size: 251.9 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.1.tar.gz
Algorithm Hash digest
SHA256 023f721068d35d775444d9a2f1761905d8c101be5bb901a18bcdf4cf05b1d424
MD5 19426d804b24f896ae973a55973870ba
BLAKE2b-256 31f0b990cc2af9be128f6024f7821aba1e0ee61be3ca3e9e4b814ccc44020f74

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1.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.1-cp313-cp313-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp313-cp313-win_arm64.whl
  • Upload date:
  • Size: 241.0 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.1-cp313-cp313-win_arm64.whl
Algorithm Hash digest
SHA256 58c4611b2e0b5081e46d2429dd30bd4a202bbb5932f53fe4bcb2b3fa2d1c11b9
MD5 c35409fe82bcc79c59809caa4251d429
BLAKE2b-256 dfe55073992595254f116629271fdf997c90a16bd5c332dd41cb6749abab9547

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 244.8 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.1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 66fbad8da73fe0fd848b66006b892dc855ec3a4c113ad379d4d66b4dc5016d48
MD5 b31a41dc3a356ae4248e4a452d2c5dcc
BLAKE2b-256 de3e6c3d4ea1ce6f751a212cd7122b3897d69157c9badf40122f9c32994a5ab2

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af84274af43e3e21a3fe69f77683d088135adbe13a6c6bab0a3d7128850fb8c3
MD5 21dce918c73edcb9c0711fc7f7bff9cd
BLAKE2b-256 6cf619872be3129909c8b377e8bf52e5b0985e8bb2e414002919d076648a9e9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cf3605d5c39b83878292addf58f04f5084ba32f7d1e50edc4d23fd67323a8be0
MD5 d526e39f891bc5623cdc0ae9fcde83a9
BLAKE2b-256 acac4f4b2ed26e400602e5213185a11a075068bc104e1fbadae91d621fe5f2b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b5929c81df5bc51aaf12197a095f3b707686042665460f6c81888007ab381d81
MD5 5e14a0b410a1329e011a6350deb6b055
BLAKE2b-256 5a31059a6e4f335073b24a265a46250b3e234ec769ef84bb806c9d1efd25bdbd

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 1b194f8aeef920bb79fca0c93899edce815f39520727e4e4f653e60cad47b8db
MD5 955dfd2d34c9996158a35627621755f7
BLAKE2b-256 8cb120282294f17c63d8f3cf2bc651c396cd48bd241a54f57732699a1b2f1d4e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp312-cp312-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp312-cp312-win_arm64.whl
  • Upload date:
  • Size: 241.1 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.1-cp312-cp312-win_arm64.whl
Algorithm Hash digest
SHA256 b308597704ffad3966df2ebaa5800aa393042c4bb68ebdb01d0548523b30a434
MD5 b43abe007e0c937913aac00214b066e4
BLAKE2b-256 ca74ab23b7e84a26247610749cb9b7b954d6d9e8502a727feb4ddd85bac5848e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 244.8 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.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 2b84cdf10aa1604b050e543b09b0f8dc855f213537fde8616c214d8d82c30e58
MD5 87937f3a652254e8d91a994e7ff3b248
BLAKE2b-256 aa25c110635499196a26e7696a7a976b967158f66c8405fab4958a839fde960e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a321ac82a9ba0a69f3ea16d7acfb1d46c7523c1615533021739dd5cef1b24e85
MD5 1737b4a97d1f8844cdba070f2dbbfff9
BLAKE2b-256 bfa2a6dd4b6d50c697d61d057369a91495c2d979181ef4349cbc9413e498808b

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 938bb96ba9112aa9feac899dd365b2db445a060c7d1153b7e24c54abbc2b4f77
MD5 e780f4c6908cc52ff8b995f3fce55dda
BLAKE2b-256 3dfdf6f26d088b9ea4843b1aadcad19a18756ba21ef5fca5e7b71e6c1d137f9d

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81029fd988560270c3d6e4663f28ac17ea507402156a65cf21e5f038572055d1
MD5 4830b2334c7d54b121fa06a4fbffc15d
BLAKE2b-256 8f1e80e49ed379a96ab970bc637c31d407aadf7b90dbdb4651736329795cc269

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 ad115522646a05c51c3e979fcff84afffa030a8febf114abd91cd0275afefd75
MD5 2d79ba9e496539e1c38b347f32302e00
BLAKE2b-256 874140b6dd0c068aac5afb245010f6b5f0703c78ead7d00dde421dc54d8ae472

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp311-cp311-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp311-cp311-win_arm64.whl
  • Upload date:
  • Size: 241.2 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.1-cp311-cp311-win_arm64.whl
Algorithm Hash digest
SHA256 da719ee70e71fb1d7573dfe5e14e0de6b5c5c945981e613ab8f1f55f9bf381da
MD5 898d75430a084acb76dcb658c73a1ace
BLAKE2b-256 ab294e470b566bea1bac580bf30d28c74c4e352b32c0acff278960325afd52cc

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 244.3 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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 25804de091cccf7a1dd5f045489ca6b28921c33fe18fef2c8e833d1f78766b6d
MD5 04dd18ef001a3c7df048edb5b2b60ba7
BLAKE2b-256 f440b823cf9775a50d95db614ff54bd7f44dc6c32e2c659dae1f07c70c9bb47e

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc78348bbf95404500d444efadce465cabbb828a9efe76af1ceece50c89e639f
MD5 5c7fbaa80c68b7b54147b4cfc418f254
BLAKE2b-256 69a005c0b4781b360ae22a94900be6b8800d571b8aaeb3d9992f3e79c10dc978

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8c9b807621ab61172db7a5d8c2890383ede25f4dcfb8588a47a72da3a8408624
MD5 b7d5639f87263c05dd40d4ccb11453f5
BLAKE2b-256 d90686bbf9a02393ed80d26815e11dc961e6c1221a6ba5292f4085e0b9653fb0

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bdff748f5d72edc348f80b928b0c038976259f5fae720f63b8cd29038fd148b7
MD5 67f183cb1c7ca5229eaa39d3e09b17ba
BLAKE2b-256 37d8ba34c36e4df42b7c9f3ef9445e0deb5b4d0a83d9d33456ad07d0bede7a09

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 53bf524ce3bd697b14a300358dbfe4b43c3db356229e7307ff3a489f5a9b0d8a
MD5 c3727b43a08b911d20de422020caa58e
BLAKE2b-256 0a8c9960026e8a74c0053b0615929a2405e5b32ce165b429c1ed5eb169e49f2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp310-cp310-win_arm64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp310-cp310-win_arm64.whl
  • Upload date:
  • Size: 241.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.1-cp310-cp310-win_arm64.whl
Algorithm Hash digest
SHA256 567a6b529e5d8e6a9971f0e37074d4b52379f6e9315ed4c5c509c6fcbc57403f
MD5 570f2423b080f964ceb073320eb95a2a
BLAKE2b-256 9c507f4126451a28c8827080062faef98676af467a10cdb3b0f38b563412ef2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: spork_lang-0.1.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 244.5 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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 09d51669ea029c9cbe133e7b777bfd8860c9859121c7b57f6a2265316f347e34
MD5 0a937c046b4237b7468dea5a97c42199
BLAKE2b-256 da3896cc9ace6023d4ba4e9dedd32eedd3803dfea6a98f2ee0a517ad655832ca

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7cd1ed11801e1281be981df22171b916ba4675b6f429fa1042cd33463a567f82
MD5 34ed0746b87d43724f18a47b7279fdb5
BLAKE2b-256 a8732015ca9effe262a34ff027e84a3fda269f243f869b98f5d3226ce2c280f3

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 386a2c66587dbdc00193203514b25dfed1db2dc043e7e902ed327b14c8f59f00
MD5 62c42f1afa3b3040f8178d5a9202f96f
BLAKE2b-256 0bfd257c8633ad007403e6d8f101e31cc0af8249cf1233a985c3f9983a29aa59

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 728f8eacc4b15f571c837ecc46d7a7b3a9696e5d35f63e423f0437b4abbbb8cb
MD5 67fc98b655a3fe737f9b9e8602eaf98e
BLAKE2b-256 8b363b56aff3f05e2fa4ff0c75033346548cc96b02022ac61f2cd36adea99145

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for spork_lang-0.1.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 07c685421713a1e14be65239ac89539ce410577c924d78ffbb1fb2e775af4ef4
MD5 2597737a744a4830525af3c45073848a
BLAKE2b-256 74631e027fccb4391c8b649abc112470403c29ff19077328ba1a90412c21d218

See more details on using hashes here.

Provenance

The following attestation bundles were made for spork_lang-0.1.1-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