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.20.tar.gz (376.5 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.20-cp314-cp314t-win_amd64.whl (186.9 kB view details)

Uploaded CPython 3.14tWindows x86-64

apyds-0.0.20-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.20-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (201.7 kB view details)

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

apyds-0.0.20-cp314-cp314t-macosx_10_15_universal2.whl (327.3 kB view details)

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

apyds-0.0.20-cp314-cp314-win_amd64.whl (168.0 kB view details)

Uploaded CPython 3.14Windows x86-64

apyds-0.0.20-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.20-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.4 kB view details)

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

apyds-0.0.20-cp314-cp314-macosx_10_15_universal2.whl (308.0 kB view details)

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

apyds-0.0.20-cp313-cp313-win_amd64.whl (164.2 kB view details)

Uploaded CPython 3.13Windows x86-64

apyds-0.0.20-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.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.2 kB view details)

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

apyds-0.0.20-cp313-cp313-macosx_10_13_universal2.whl (306.6 kB view details)

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

apyds-0.0.20-cp312-cp312-win_amd64.whl (164.2 kB view details)

Uploaded CPython 3.12Windows x86-64

apyds-0.0.20-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.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.1 kB view details)

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

apyds-0.0.20-cp312-cp312-macosx_10_13_universal2.whl (306.6 kB view details)

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

apyds-0.0.20-cp311-cp311-win_amd64.whl (162.2 kB view details)

Uploaded CPython 3.11Windows x86-64

apyds-0.0.20-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.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (198.1 kB view details)

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

apyds-0.0.20-cp311-cp311-macosx_10_9_universal2.whl (305.2 kB view details)

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

File details

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

File metadata

  • Download URL: apyds-0.0.20.tar.gz
  • Upload date:
  • Size: 376.5 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.20.tar.gz
Algorithm Hash digest
SHA256 1eb9a0b552d8e60581c706710ae6dc44e4579d56e4391a9fe504ed6971c1a7f3
MD5 35570258b90a6e4d294ff96b548844a2
BLAKE2b-256 44a4c679d1d1d757035bea2627e372d065b3b027ce21654c413a5e2ca5b43679

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20.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.20-cp314-cp314t-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.20-cp314-cp314t-win_amd64.whl
  • Upload date:
  • Size: 186.9 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.20-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 041517a7076b2375338e7a1d36e2b8b15bddc0005dff0340e6841b104d21c0e9
MD5 8270fff25c7c32d2877256c11d19df81
BLAKE2b-256 9104fa8d5654bcb3b297f8af5adeb6fc1197d5f2c849e2547787b0895dbc5127

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 aa63fab9aba3990bb5c557004b3139410350e975474540ed917216ea01670020
MD5 f92d94db37b6d55f096aca5f1a8f028b
BLAKE2b-256 e55ec01cf2c79e26fc8d9379ea7e8bf3e0b729d219f06e2bcfcfeb069d546ea2

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4c9e178bf1af64c7f6cb9cce42c7ba90d20b5e87bbad627680dfb0c0b98f1aec
MD5 f2e37ed6bde851fa1ce21a6d10e5aec2
BLAKE2b-256 a874f563101ff4d6c173fb3f0e2d8c1173dca5255f61c31d21a7a22eeb05ee31

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314t-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 d18d2c7e8b8ab365ec0f650ead0fa1cc920a68dd6745d8506a941a0848480264
MD5 cecdab4968a022e464459c2efad71e99
BLAKE2b-256 4d6ff7c92485c462d5678747374b29cede1d6580ca27777df3f83fd200567e74

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.20-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 168.0 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.20-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 4379f10f8bdcf92d52e069cffdc7ab584bae4b9706451e3c3261bc7114f21ef0
MD5 b64279a07a60add4610f14b26fcedad1
BLAKE2b-256 19c744a9bdec910068ab893011a984bd674f225dd3598518fd0498af4dc47953

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9f84116ca54781f244f6a0f59f4f00039c42973a9fdf94281b2695097248ab33
MD5 3a3ee7b2a0bf3d4282608414f98789bd
BLAKE2b-256 ec64b56f5492bb298e0d03c5a5ccb981c7d0f488f346999874608dcc5f9601f0

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 62bb25e4fbcd7a0d97fb327703452d922e8dca5c0318cf4ff5d2b93b739a1617
MD5 010d599eb42bc34dd69e61e5f7579a0d
BLAKE2b-256 4b18164187bae83f7233e67699ea1b790fea0c892746a20202631bd206c258e3

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp314-cp314-macosx_10_15_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 1d91b762971b34dee5b97955c5becc1cef3eee3db688a7039920b914e619a807
MD5 3024ba5f5d95eb984deab54203bddd18
BLAKE2b-256 03ee4db1cca2816ff46dcfae806a049756860556b695ee33da0354127be79d67

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.20-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 164.2 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.20-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0465013f8cc8ae32dc022b1294d55bef72c85e340c68b7d4d8e9a0bfbabeb21a
MD5 2aee002cd6b35e54f6e16867a618611f
BLAKE2b-256 0c699670482a1e428069faea385dc7d32835747145e82ba32d507e6f9aff123e

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 57ff9654be3807b54f9ab97addeb827dd360d02eaa5ee859f7075095a26a8860
MD5 fc90ca3d24646f466431a1108af61f17
BLAKE2b-256 149ed09d48b99d42c40553d1054e8499a203a64330067ce523f728fcf3e96d1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e56b3e813303f227163b86dd93118aa80ae8588faf69008e8403a24e55544d5f
MD5 8de2a54dfc082b374c8afb84e689e709
BLAKE2b-256 0c7dd95ed053b4ef9c996b399385382e76d1f9b73fd06be7c3174c86a65e6048

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp313-cp313-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 954d4b32550e8db8370b091ba2e462868884f3f3232162d1d2563d3f21b4f0ed
MD5 d243ebb2562e096f4a36a29873c8a1f1
BLAKE2b-256 48b0370fa6c4c5bfaf6c239062258b46f7dc190e519f58895f8ab68936e730ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.20-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 164.2 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.20-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7ef7d07f2a842f94ba1b7fa0dcdfc4e242c7c01be3144de1a00703e6b7df7a80
MD5 5bc79432ae926900b304c116a6a3f7a8
BLAKE2b-256 ed598203e73aa6157b377b297a59e7447130e066bab35ff245ca8b35c02464dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 df24ea88b0f633821dbdc2e289a542416d0f2b74f4dda6ada445b19d2743a5d9
MD5 030da879a701698246d42e0f5f8d352b
BLAKE2b-256 58e86ff67ee03fa7b07073ea4876d591ccb3843050dbe5d74021da24796c56d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f757e710eb0057f43195396aca773878cf2199766829cdbf1b8161ad9195b96b
MD5 f8eba54602d85d1931d29cff62cbb9ba
BLAKE2b-256 a107c3e270d6869864c60121a89076aedea82d9336ddd880a8fc4808815bfb14

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp312-cp312-macosx_10_13_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 52ecdfdb5a3a5d07e64c8717679fd8b55a33be70e96a4f02147fe1270b0ac281
MD5 ff405f079ff98feec3989bbd86bc363b
BLAKE2b-256 51a740dc4219ffd9b59a51c028c1fffb5853cba9797ec936f5030c1303ff3207

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: apyds-0.0.20-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 162.2 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.20-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c5d58fffe14a8f5a09a0fe8fbd1d49c0e2b5151176e2c6a7357500695941864c
MD5 79f7d2a0e4f0d6a3dd584155b0831d94
BLAKE2b-256 cf9f2925d65630d426f43c6e2a2a37088165bc65b0e873aa608e416ee08c3388

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ba52d3b1d32b6d4a6994f8f00b57e5221f8321c86eba6c90ef6b907d1b8f901f
MD5 f705dec13d778bb37886ded49deb44d5
BLAKE2b-256 fa6124a28f4f1963d54cfb4a832a8ef46c138b1cb734223a7e6197defe25af1f

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1ba7f470e5b06cba84753c2c0ca15a1c7ff1f2edb0fc2e088eb2a6a1637a5efe
MD5 1b7ca7fc6107f358f878d13626aec0c3
BLAKE2b-256 06e4e026f72d0126ef0ac8f85cc21e7434922791f2ac8891c9924fb34d03af3c

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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.20-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for apyds-0.0.20-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 ee865823b1ae698ff0bca7ab27a9767d970267dfd8e33786071dfe972db4c216
MD5 f133d71388157fd6a0c5c0662c6048d4
BLAKE2b-256 db9dad1fd27aa5300ff78126ece3896227464b6f80566fc4d0e9b83af29d322b

See more details on using hashes here.

Provenance

The following attestation bundles were made for apyds-0.0.20-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