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.21a1.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.21a1-cp314-cp314t-win_amd64.whl (187.3 kB view details)

Uploaded CPython 3.14tWindows x86-64

apyds-0.0.21a1-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.21a1-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.21a1-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.21a1-cp314-cp314-win_amd64.whl (168.4 kB view details)

Uploaded CPython 3.14Windows x86-64

apyds-0.0.21a1-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.21a1-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.21a1-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.21a1-cp313-cp313-win_amd64.whl (164.6 kB view details)

Uploaded CPython 3.13Windows x86-64

apyds-0.0.21a1-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.21a1-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.21a1-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.21a1-cp312-cp312-win_amd64.whl (164.6 kB view details)

Uploaded CPython 3.12Windows x86-64

apyds-0.0.21a1-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.21a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (200.8 kB view details)

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

apyds-0.0.21a1-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.21a1-cp311-cp311-win_amd64.whl (162.6 kB view details)

Uploaded CPython 3.11Windows x86-64

apyds-0.0.21a1-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.21a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (198.5 kB view details)

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

apyds-0.0.21a1-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.21a1.tar.gz.

File metadata

  • Download URL: apyds-0.0.21a1.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.21a1.tar.gz
Algorithm Hash digest
SHA256 59a4528b5fc6809f23482f7b238ca9ecf0fcb77a2dc128236b120abd143a6bfb
MD5 8ebf79f63d30b0851ced15bd9cfa03d5
BLAKE2b-256 c3110cddd732cf057f5945b4f15b1715c1d8b1a440971bce39725230153c2a17

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: apyds-0.0.21a1-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.21a1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 8d1dbca5e889886ceddf3663b4a573a38c811986b924b7313d0e0f752a4fe2ec
MD5 d983738236a8018026cbf4dad5b90220
BLAKE2b-256 24fdbae28485b785bdbebadea4d56bf922dbcfe53adb070b4585acd92b29d84f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a17c65de394a19d10711511602a41230bdbe1a1dc6f8e6b07b464d1c930b6f90
MD5 c0750ca69dbea06f0cfbb3731fb68bf4
BLAKE2b-256 85e48ccf24e28e7befb3b4a15c15da7671391cfc132c5e1a306f213618eee458

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16f5709e6c53aef5be7fa74741f940816502059dea3dfaf1a96a121716659c4c
MD5 02db3e55bd21da720a64e9e041f3c69c
BLAKE2b-256 c6f550dcb1881c7b5d908b900c2819d1a419a4b558b2310d80a2f17f1075e637

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp314-cp314t-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 85f1bf829b1b43fbf59b177308bd74276260751b66f1289c994a9f6077602205
MD5 9d37cf72ec0896f954f5706eabb698f8
BLAKE2b-256 b57f778fc47fa7a0bb6d31d11798e147e0d708cb55f2fc185393d380b1d3e982

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: apyds-0.0.21a1-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.21a1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 b44c208fdb17b8449e4a48436b2455003a5df9b01e6a93fa792dcd338d2c1841
MD5 37464f8893829be08100f0e2aaf148be
BLAKE2b-256 d0678a6e2947ed95a05eed1e563ad28d111da2c424ed94017892e5ff2df1d96e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6d19719410424c8392c88484f843322477867691d5a7fa018c1821e390bdfc33
MD5 09363a1e42d16e93377be74a898abfd1
BLAKE2b-256 c7997b8458e228c594add09303b7b6656a3959c57374b4f723e9805e89523e14

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fa4d006c257f2f27d0b37d188f1a49d18e879b4debc482db40cf8e38ce5d0839
MD5 6356721967fac8f67bbde586418ec047
BLAKE2b-256 0c10e2d3ca2cfd36713ddabb46172ee1e4cea353f635230c145d5fd7f354184b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp314-cp314-macosx_10_15_universal2.whl
Algorithm Hash digest
SHA256 80efeeaa1d6cdbe80137bdea3c1591a43dcd7464b7e5730be5bc81e2597c399f
MD5 22ea214052b97a578bc857586a625795
BLAKE2b-256 a34b6ac940ba945ac2c0676b5dce5fe1af6d4e1f2a25c18a1ab8e5281e966c50

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: apyds-0.0.21a1-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.21a1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 397c5310fa46ce9c0f344bba9a8cfc0d7a8e84c8617e856730607213feee0cfe
MD5 1fb2cfe6845e5fb8ef37ea33532c8654
BLAKE2b-256 f7021c72629b319c126dd55ba49b82b3795233a27bc35a49092c339f6d7c54c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7e787d122b69e5bad8d78d20b1951cf9ef89d01b652337edd7feec95ee51abcf
MD5 06b7cd62df167a61e557b8f070be37ef
BLAKE2b-256 b7fd1abbb15bff29557c1d24f7e6ce41c96e68daac9a792c4ec1e5a40ee458b0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 28733d5a468156aeeb72df6dffbcf18e2c01f9b1c04626f70e9a18b401c8cd07
MD5 ef3fd2a53f1f858698295eab156126fa
BLAKE2b-256 e6dbacce61c1b8334c4dacca48c582a4b53d7beb15fd89e9027ba6ba3d71f40a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp313-cp313-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 bfbba50085a488ea3d7306d76653b6bfa567a21d5b4b0d4c73372e41f1038a54
MD5 c45e2e124d3ac5eacf74b5e9bc50b93d
BLAKE2b-256 0a6ebb43ac68afcdb4e6104766af4781d144bfdd344f9362645def5a12160211

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: apyds-0.0.21a1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 164.6 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.21a1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 587c39dccf33fdc2e310d1610de197c6a221c054a11efdda3a9405d7b95b4c54
MD5 2232a4f8dd3b96eef684618c43499504
BLAKE2b-256 7a99a93a8d27a50f34999ea56cf67d9965cc5d00e9b42782dab621eaff27b968

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 97ed56d1e37d2b0fc00def772c35a1ea11c97f3adc3b6f4a0fb20096f4174a31
MD5 ce2184e0cf27bfe169b15b80e1e4090f
BLAKE2b-256 11c1ab7a3071cf4c3fceca98c9a320e2aadad188d379de3e2aeb060c61b0c4e2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 127667e0c9d807be4b9bb6fd1cc8f4d8c86de70e8b15d5ddc784c64241f83545
MD5 fe59e8363e9cd0eef7329788275e3256
BLAKE2b-256 028eb917034447d9fe8a146bd83533d64361f92e9d8caf9ee93c66cb6cd22b60

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp312-cp312-macosx_10_13_universal2.whl
Algorithm Hash digest
SHA256 499715e7c47eb97271b93544f4d3af24c63397b638fcec2fca2f3e972868c178
MD5 5c24451dd05b696d223dac2866c02c06
BLAKE2b-256 0e7cedb019ffc3f44f4c47d0703c66d5ccfe0f25844fbd581034ed90d5d6e5e2

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: apyds-0.0.21a1-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.21a1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 94ffe990f539a331445d8f4612273fd0d65d25956424c681cc02d2199fd284be
MD5 6e1dc052a2c8a171d0f6683033d5f41b
BLAKE2b-256 43db548244fbaa4e96015c36993b73eee11232bdc36fcaba62b563b8c8151759

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b35c77c3a06a369732058f5cdefe2a8a5411a4a88da6e970f50763868142a719
MD5 2d3c2e7e8e4431d571abe3d827d2b37f
BLAKE2b-256 df8e026af5a394be05b0475f899bedfd01ff887993980ec28bd34fb09e2b6ea8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5254327b62c38a5aeafb378ca40cc035928cdc2de194024a6d319a8d57954745
MD5 53554019c8ae32fc6d32f9f27ab6a382
BLAKE2b-256 f932749736f5a1016e757818c68f109b970987ce18842fc7583238ea4a2637c1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for apyds-0.0.21a1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4bcecbf40b54f941ab85383a80b56641b7854b7a82144e2cb107559458226a2e
MD5 74b4619314eeecce63f2eb23b1486afc
BLAKE2b-256 88a21cfbbd12b8a1b3d6c6987cd5aa5f1130fcff196b40f30f53b23634cae7d0

See more details on using hashes here.

Provenance

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