Welcome to SDS-Tools Documentation!

About This Project

This package was designed to revisit fundamental algorithms through the implementation of basic data structures: linear structures, trees, and graphs. The project also serves as a practical exploration of static code analysis techniques using AI-assisted development.

SDS-Tools (Simple Data Structures) is a comprehensive Python library providing educational and production-ready implementations of advanced data structures not available in the standard library.

This library implements a wide range of data structures including:

  • Linear structures: Stack, Queue, Deque, Priority Queue, Linked Lists

  • Tree structures: Binary Trees, BST, AVL, Red-Black Trees, Heaps, B-Trees, Tries

  • Graph structures: Directed/Undirected Graphs, Weighted Graphs, Adjacency representations

  • Advanced structures: Union-Find, Bloom Filters, Skip Lists, Hash Tables

Note

This documentation is available in multiple languages and versions.

  • Current version: 0.6

  • Current language: English (also available in French)

  • Project started: 2019

  • Authors: skyfrigate & biface

Quick Start

Installation

pip install pysds-tools

Basic usage example:

from sds.linear import Stack

# Create a stack
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)

# Pop elements
print(stack.pop())  # Output: 3

Features

Type-safe implementations with proper abstractions

Comprehensive test coverage

NumPy-style docstrings for clear documentation

Performance-optimized algorithms

Educational and production-ready

Python 3.10+ support

AI-assisted development for code quality analysis

Documentation Structure

This documentation is organized into several sections:

User Guide

Step-by-step guides for using the library, with theoretical background, algorithmic descriptions, and practical examples. Includes a comprehensive class hierarchy diagram showing the relationships between all data structures.

API Reference

Complete technical documentation auto-generated from source code docstrings. Organized by module family (core, linear, tree, graphs, advanced, algorithms).

Changelog

Version history with features, improvements, and deprecations.

API Reference

Documentation tools

About the Project

SDS-Tools has been developed since 2019 by skyfrigate and biface as an educational project to explore fundamental data structures and algorithms. The project emphasizes:

  • Clear, well-documented implementations following NumPy docstring conventions

  • Comprehensive test coverage ensuring reliability

  • Modern Python practices with type hints and proper abstractions

  • AI-assisted development for exploring static code analysis techniques

The project serves both as a learning resource for understanding data structures and as a practical library for production use.

Support

License

This project is licensed under the Apache License 2.0 - see the License file for details.

Copyright 2019-2024 skyfrigate & biface

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.