Skip to main content

A deductive system

Project description

DS - A Deductive System

A deductive system for logical inference, implemented in C++. The library provides bindings for Python (via pybind11) and TypeScript/JavaScript (via Emscripten/WebAssembly).

Architecture

  • C++ Core: The core implementation in src/ and include/ds/ provides the fundamental data structures and algorithms
  • Python Bindings: Built with pybind11, wrapping the C++ core (see apyds/)
  • TypeScript/JavaScript Bindings: Built with Emscripten, compiling C++ to WebAssembly (see atsds/)

Features

  • Multi-Language Support: Seamlessly use the same deductive system in C++, Python, or TypeScript/JavaScript.
  • WebAssembly Performance: Run high-performance deductive system in the browser or Node.js via Emscripten.
  • Rich Logical Terms: Comprehensive support for variables, items, and nested lists.
  • Rule-Based Inference: Flexible framework for defining rules and facts to perform complex logical deduction.
  • Unification Engine: Powerful built-in mechanisms for term unification and rule matching.
  • Automated Search: Built-in search engine for iterative inference.
  • Chain Inference: Chain engine that matches all premises of a rule in a single cycle.

Installation

TypeScript/JavaScript (npm)

The TypeScript/JavaScript package wraps the C++ core via WebAssembly.

npm install atsds

The package includes WebAssembly binaries and TypeScript type definitions.

Python (pip)

The Python package wraps the C++ core via pybind11.

pip install apyds

Requires Python 3.11-3.14.

C++ (Core Library)

The C++ library is the core implementation. Both Python and TypeScript bindings are built on top of it.

Using vcpkg

Clone the repository and use the overlay port:

git clone https://github.com/USTC-KnowledgeComputingLab/ds.git
vcpkg install ds --overlay-ports=./ds/ports

Add to your vcpkg.json:

{
  "dependencies": ["ds"]
}

In your CMakeLists.txt:

find_package(ds CONFIG REQUIRED)
target_link_libraries(your_target PRIVATE ds::ds)

Building from Source

git clone https://github.com/USTC-KnowledgeComputingLab/ds.git
cd ds
cmake -B build
cmake --build build

Include the headers from include/ds/ in your C++ project.

Quick Start

TypeScript/JavaScript Example

import { Rule, Search } from "atsds";

// Create a search engine
const search = new Search(1000, 10000);

// Modus ponens: P -> Q, P |- Q
search.add("(`P -> `Q) `P `Q");
// Axiom schema 1: p -> (q -> p)
search.add("(`p -> (`q -> `p))");
// Axiom schema 2: (p -> (q -> r)) -> ((p -> q) -> (p -> r))
search.add("((`p -> (`q -> `r)) -> ((`p -> `q) -> (`p -> `r)))");
// Axiom schema 3: (!p -> !q) -> (q -> p)
search.add("(((! `p) -> (! `q)) -> (`q -> `p))");

// Premise: !!X
search.add("(! (! X))");

// Target: X (double negation elimination)
const target = new Rule("X");

// Execute search until target is found
while (true) {
    let found = false;
    search.execute((candidate) => {
        if (candidate.key() === target.key()) {
            console.log("Found:", candidate.toString());
            found = true;
            return true; // Stop search
        }
        return false; // Continue searching
    });
    if (found) break;
}

Python Example

import apyds

# Create a search engine
search = apyds.Search(1000, 10000)

# Modus ponens: P -> Q, P |- Q
search.add("(`P -> `Q) `P `Q")
# Axiom schema 1: p -> (q -> p)
search.add("(`p -> (`q -> `p))")
# Axiom schema 2: (p -> (q -> r)) -> ((p -> q) -> (p -> r))
search.add("((`p -> (`q -> `r)) -> ((`p -> `q) -> (`p -> `r)))")
# Axiom schema 3: (!p -> !q) -> (q -> p)
search.add("(((! `p) -> (! `q)) -> (`q -> `p))")

# Premise: !!X
search.add("(! (! X))")

# Target: X (double negation elimination)
target = apyds.Rule("X")

# Execute search until target is found
while True:
    found = False
    def callback(candidate):
        global found
        if candidate == target:
            print("Found:", candidate)
            found = True
            return True  # Stop search
        return False  # Continue searching
    search.execute(callback)
    if found:
        break

C++ Example

#include <cstdio>
#include <cstring>
#include <ds/ds.hh>
#include <ds/search.hh>
#include <ds/utility.hh>

int main() {
    ds::search_t search(1000, 10000);
    
    // Modus ponens: P -> Q, P |- Q
    search.add("(`P -> `Q) `P `Q");
    // Axiom schema 1: p -> (q -> p)
    search.add("(`p -> (`q -> `p))");
    // Axiom schema 2: (p -> (q -> r)) -> ((p -> q) -> (p -> r))
    search.add("((`p -> (`q -> `r)) -> ((`p -> `q) -> (`p -> `r)))");
    // Axiom schema 3: (!p -> !q) -> (q -> p)
    search.add("(((! `p) -> (! `q)) -> (`q -> `p))");
    
    // Premise: !!X
    search.add("(! (! X))");
    
    // Target: X (double negation elimination)
    auto target = ds::text_to_rule("X", 1000);
    
    // Execute search until target is found
    while (true) {
        bool found = false;
        search.execute([&](ds::rule_t* candidate) {
            if (candidate->data_size() == target->data_size() &&
                memcmp(candidate->head(), target->head(), candidate->data_size()) == 0) {
                printf("Found: %s", ds::rule_to_text(candidate, 1000).get());
                found = true;
                return true; // Stop search
            }
            return false; // Continue searching
        });
        if (found) break;
    }
    
    return 0;
}

Core Concepts

Terms

Terms are the basic building blocks of the deductive system:

  • Variables: Prefixed with backtick, e.g., `X, `P, `Q
  • Items: Constants or functors, e.g., a, father, !
  • Lists: Ordered sequences enclosed in parentheses, e.g., (a b c), (father john mary)

Rules

Rules consist of zero or more premises (above the line) and a conclusion (below the line):

premise1
premise2
----------
conclusion

A fact is a rule without premises:

----------
(parent john mary)

Grounding

Grounding substitutes variables with values using a dictionary:

const a = new Term("`a");
const dict = new Term("((`a b))"); // Substitute `a with b
const result = a.ground(dict);
console.log(result.toString()); // "b"

Matching

Matching unifies the first premise of a rule with a fact to produce a new rule. For example, applying modus ponens to double negation elimination:

// Modus ponens rule: (p -> q), p |- q
const mp = new Rule("(`p -> `q)\n`p\n`q\n");
// Double negation elimination axiom: !!x -> x
const pq = new Rule("((! (! `x)) -> `x)");
// Match produces: !!x |- x
console.log(mp.match(pq).toString()); // "(! (! `x))\n----------\n`x\n"

API Overview

TypeScript/JavaScript

  • buffer_size(size?: number): Get/set buffer size for internal operations
  • String_: String wrapper class
  • Variable: Logical variable class
  • Item: Item (constant/functor) class
  • List: List class
  • Term: General term class (variable, item, or list)
  • Rule: Logical rule class
  • Search: Search engine for inference
  • Chain: Chain engine for inference (matches all premises in a single cycle)

Python

  • buffer_size(size: int): Set buffer size
  • scoped_buffer_size(size: int): Context manager for temporary buffer size
  • String: String wrapper class
  • Variable: Logical variable class
  • Item: Item (constant/functor) class
  • List: List class
  • Term: General term class
  • Rule: Logical rule class
  • Search: Search engine for inference
  • Chain: Chain engine for inference (matches all premises in a single cycle)

C++ (Core)

All classes are in the ds namespace:

  • string_t: String handling
  • variable_t: Logical variables
  • item_t: Items (constants/functors)
  • list_t: Lists
  • term_t: General terms
  • rule_t: Logical rules
  • search_t: Search engine (in <ds/search.hh>)
  • chain_t: Chain engine (in <ds/chain.hh>)

See header files in include/ds/ for detailed API documentation.

Building from Source

Prerequisites

  • For TypeScript: Emscripten SDK
  • For Python: Python 3.11-3.14, C++20 compatible compiler, CMake 3.30+
  • For C++: C++20 compatible compiler, CMake 3.30+

Build All Components

# Clone repository
git clone https://github.com/USTC-KnowledgeComputingLab/ds.git
cd ds

# Build TypeScript/JavaScript (requires Emscripten)
npm install
npm run build

# Build Python package
uv sync --extra dev

# Build C++ library
cmake -B build
cmake --build build

Running Tests

# TypeScript/JavaScript tests
npm test

# Python tests
uv run pytest

# C++ tests (if available)
cd build && ctest

Examples

Example programs are provided in the examples/ directory:

  • examples/main.mjs: TypeScript/JavaScript example
  • examples/main.py: Python example
  • examples/main.cc: C++ example

Each example demonstrates logical inference using propositional logic axioms.

Support Packages

  • BNF Conversion Library (apyds-bnf, atsds-bnf): Bidirectional conversion between DS syntax formats. See /bnf for details.
  • E-Graph Library (apyds-egg, atsds-egg): E-Graph implementation for efficient equality reasoning. See /egg for details.

Development

Code Formatting

The project uses code formatting tools for consistency:

  • C++: clang-format (.clang-format config provided)
  • Python: ruff (configured in pyproject.toml)
  • TypeScript: Biome (configured in biome.json)

Pre-commit Hooks

Pre-commit hooks are configured in .pre-commit-config.yaml.

License

This project is licensed under the GNU Affero General Public License v3.0 or later. See LICENSE.md for details.

Documentation

For comprehensive documentation including tutorials, API reference, and examples, visit:

Repository

Author

Hao Zhang hzhangxyz@outlook.com

Contributing

Contributions are welcome! Please feel free to submit issues or pull requests.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apyds-0.0.21.tar.gz (378.1 kB view details)

Uploaded Source

Built Distributions

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

apyds-0.0.21-cp314-cp314t-win_amd64.whl (187.3 kB view details)

Uploaded CPython 3.14tWindows x86-64

apyds-0.0.21-cp314-cp314t-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

apyds-0.0.21-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (202.5 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

apyds-0.0.21-cp314-cp314t-macosx_10_15_universal2.whl (328.5 kB view details)

Uploaded CPython 3.14tmacOS 10.15+ universal2 (ARM64, x86-64)

apyds-0.0.21-cp314-cp314-win_amd64.whl (168.4 kB view details)

Uploaded CPython 3.14Windows x86-64

apyds-0.0.21-cp314-cp314-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

apyds-0.0.21-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

apyds-0.0.21-cp314-cp314-macosx_10_15_universal2.whl (308.9 kB view details)

Uploaded CPython 3.14macOS 10.15+ universal2 (ARM64, x86-64)

apyds-0.0.21-cp313-cp313-win_amd64.whl (164.6 kB view details)

Uploaded CPython 3.13Windows x86-64

apyds-0.0.21-cp313-cp313-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

apyds-0.0.21-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

apyds-0.0.21-cp313-cp313-macosx_10_13_universal2.whl (307.6 kB view details)

Uploaded CPython 3.13macOS 10.13+ universal2 (ARM64, x86-64)

apyds-0.0.21-cp312-cp312-win_amd64.whl (164.5 kB view details)

Uploaded CPython 3.12Windows x86-64

apyds-0.0.21-cp312-cp312-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

apyds-0.0.21-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

apyds-0.0.21-cp312-cp312-macosx_10_13_universal2.whl (307.5 kB view details)

Uploaded CPython 3.12macOS 10.13+ universal2 (ARM64, x86-64)

apyds-0.0.21-cp311-cp311-win_amd64.whl (162.6 kB view details)

Uploaded CPython 3.11Windows x86-64

apyds-0.0.21-cp311-cp311-musllinux_1_2_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

apyds-0.0.21-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (198.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

apyds-0.0.21-cp311-cp311-macosx_10_9_universal2.whl (306.3 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file apyds-0.0.21.tar.gz.

File metadata

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

File hashes

Hashes for apyds-0.0.21.tar.gz
Algorithm Hash digest
SHA256 f40ea6b6e25f92915cd4f2cbf8074ee358e618ea177f5582378168d9d5f49364
MD5 0727bec7fcff0473804427f37ca39ad9
BLAKE2b-256 fb0249e8eabd47162f8204c23d9424da4342edea3ac4ce3e39d179ab7d47af14

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21.tar.gz:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.21-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 187.3 kB
  • Tags: CPython 3.14t, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for apyds-0.0.21-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 88d2f0ac67cb51668a742ed363810e63f4b30f3c8e468cb5e14a52a1cff86015
MD5 cb99d7749b780522c44701bd46eb8953
BLAKE2b-256 5fe8ae720c8ab43445463b30524f8ebcb82d34d374e2e1d6fef990d5d1a1d13e

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314t-win_amd64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b55bbfd70985483f34a180c33e878afd0977c1d121c4f02e2b0772989b04dc59
MD5 273574cd39d464af30d83ad698bfbb98
BLAKE2b-256 9ab70dbe6de36ddcbc0eca7d39c7ccba160d064d28027046a23c862b9510dbb7

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 718b1325c5b95efa324c1ee9477b36bcf2843932676884241c5d6e493f733c83
MD5 bc8cb069056ca0c497616ffe584972cf
BLAKE2b-256 68509b3515026de7fbd5a85902a16013e3ae5fb54bbc8b5cdb4d8f69acf1bb00

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314t-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 e2cf5649469c4e7426d5b01ea0bccca6f45df3eae311ce1d6ed41e712ec777a8
MD5 56dfb36e6b3d95180a0bc50cfd51ffd5
BLAKE2b-256 45de4abe6d3f051dc71c9c4a4033f0e5a40f2f552c4e862a8d32e960e29e9af3

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314t-macosx_10_15_universal2.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.21-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 168.4 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for apyds-0.0.21-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 ec316dccd5ecf7ebe82d585f49e11378998af2f6a1d87aca56b6556e5b32b2de
MD5 175bc588d6b1b279622792b96b9af719
BLAKE2b-256 55c12af980dc20e7b90c494a5d99c20204b9bc46ad3ec61a198442da67985a2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314-win_amd64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cc61d469b36cc1ef7721f916dccaf898428804010d602036533465fe37fa838a
MD5 a85771d582cb525d5c1826479b5fb37e
BLAKE2b-256 a2f4c7741f1789206f08f493469083bda3be84e0884d54299d87382d3b7f6319

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314-musllinux_1_2_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a3e9c6896a91b86538aeb20065d217d1d9b101adeb9da1b101fecd6242dc778b
MD5 2a0567a02afc77b4d952523d1703e283
BLAKE2b-256 6cc758c4a4abc1209ae504176eeffe8c932f454b8c5fce1c431007baa2ab14cd

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 d951f4b52a98eca7ed96a8deb733797cc9bf3ad4e07be7d3b634287205c54452
MD5 d7638dfd2976b4a23b195ee4f7a457b5
BLAKE2b-256 f652050620b2ac8fed012dab1b19c3238d4785f97e7b679b96259770c8fad874

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp314-cp314-macosx_10_15_universal2.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.21-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 164.6 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 apyds-0.0.21-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 139ec48697923655686cc6a4b604980293b4aa19641b7fce88860730b61f187f
MD5 1c9e0568f4a61af5a90461eeb0f2e610
BLAKE2b-256 2cb58275a99b899ed6f43e611e8cccba2ebaf41fcbec67311abfa4aa0d1171e2

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp313-cp313-win_amd64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cf8daf93efed7c363cc73398665a501c2dd0d53cb62808472cb936ab9faa1347
MD5 64776772939d753aae26ba24c0e2beff
BLAKE2b-256 47995aefbee4702a0a44d41234ea666a47c45de2172d014a1e1df991b5516af4

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp313-cp313-musllinux_1_2_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0bf18c44f68ae7f13bfc607829eeb00f4d2bcb350ffdd82d4c15e8798d203dcd
MD5 a6decf0a0f3ce285bed11355eaafa1da
BLAKE2b-256 ed117ce6fc0de3e6566e3fb7a0e6fe987ad8658902fe237e0410a43a4bae5332

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 506f589dcce388d9e8b3cf5b5d69f3b3134fc81ee4f93cb82e5ac40daaf7e88b
MD5 7d09dbb1e536a48f8de799d4a2d745b6
BLAKE2b-256 ccb7a554b87f19dbbf29e874a645a7a261e9655c7c313631e56d786187cf1cf9

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp313-cp313-macosx_10_13_universal2.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.21-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 164.5 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 apyds-0.0.21-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f6e7e80748726042586356255abffbe8637247540ccbe0c81874ea458346379c
MD5 6ef095948f14da46404e8c298f474ec4
BLAKE2b-256 685326dc090a48867c45d7261275007d00c9793456234753f969f586de714b72

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp312-cp312-win_amd64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2a69235a1d0e98c0fb1220f231e7f1b3a01906ae4e2a64ac10ccc087807143ac
MD5 6e7e9ca43057d2beb7779f3117e7d9cc
BLAKE2b-256 40d4160ff40cd943c8d787a8f56653531ede263b20a7f6ad2a4b1938e71e89a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp312-cp312-musllinux_1_2_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f81dcf68eda161383826d1fee121ea3f1e314ded08f9f09bfefbb4dc688321ea
MD5 712d669fd4f11ca210b0ae68dab9c9eb
BLAKE2b-256 7387d5dedf52a374a4aacd2dd2107ee8a7c77bdc2733ac800b6622c4fc8d23d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 638fcb1ed2bd1f00dbe265fab82cd7c705cbc93e14ec2975d2ff3b0aff24b8f3
MD5 95b1306e86e7e881f072a5b66b0c38aa
BLAKE2b-256 9e9809db7380e86a481ffb86a471919caf3b4c9fc1a8f0c573ad058abe4b35ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp312-cp312-macosx_10_13_universal2.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.21-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 162.6 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 apyds-0.0.21-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b61b43c5b83bf5980453cb094f9594401c7d59b9b019bf13b2ed12178ab720d1
MD5 ed372b20e866ba450fe5c7c989cba16f
BLAKE2b-256 9ee35842043413a8ff46817bb9f76e8794611338e6d751b7e06d11d999fb599b

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp311-cp311-win_amd64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fe1d9403acd5e15654784d3a6e823fe86a969d9d27ab6a8a2ee0ccb00b786d99
MD5 214b7f4e2ad0f0fa42ab0684d6afd160
BLAKE2b-256 9b6573c1a4284754d2fad4adda01039d21f2614e3af509b8eb6bfade37e644f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 68e7e1b1f640a0016b8a936a3b508f9f0455e2060aa150a0d20b144543aeb97b
MD5 020ec561f09dab68e97c85e2da24e2ab
BLAKE2b-256 89aed039395482d37683196719e2a7235a7d8cbfef45150acdbe4744e39faa78

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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

File details

Details for the file apyds-0.0.21-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.21-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 f9570c93e8e2f1fc735b283d4e880ad52ce09734748e9f3cd86afe23b3562b5b
MD5 8acc3220851207ac3a7a465332df21cb
BLAKE2b-256 c295910c82368ed0e0a9f17397825d441689b4a2a8628643d249570ece877ae7

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.21-cp311-cp311-macosx_10_9_universal2.whl:

Publisher: pytest.yml on USTC-KnowledgeComputingLab/ds

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