easy-pytools

Simple toolset with Python type hints made to deserve some needs on some Python projects.


Licenses
GPL-3.0/GPL-3.0+/GPL-3.0+
Install
pip install easy-pytools==1.0.4

Documentation

Python tools

Simple toolset with Python type hints made to deserve my needs on some Python projects.

Both Python anc C++ implementations are in plans:

  • Any Python implementation is cross-platform but achieves less average performance goals
  • C++ implementations are currently supported only for Linux and provided in this repository in two ways:
    • Prebuilt .so files, so in average case you can just "git clone" and use Cxx-implemented classes in Python project
    • Source code (try your luck and build it for Windows)

Have fun!

If you find this code useful, I will be glad if you use it in your GPL3-compatible licensed project.

"Why GPL-3. Author, are you too proud?"

Nope. It's just that I'm fighting for free software, and any possibility that someone else is using my code on a project that people, myself included, will have to pay for is unacceptable. My code is neither perfect nor revolutionary. But the world is crazy, you know

Any help and criticism is greatly appreciated.

Installation

Latest version is available on PyPi:

pip install easy-pytools

Roadmap

  • SQL shit (Oh God. PYTHON ONLY) see docs
    • Basic Table operations
      • Single table CREATE
        • Single PRIMARY KEY
        • Foreign Keys
        • Multiple-field PRIMARY KEY
      • Single table INSERT
      • Single table SELECT
      • Single table UPDATE
      • Single table DELETE
      • GROUP BY expressions
    • Basic Table compositions
      • Automatical INNER JOIN on foreign keys
      • Cartesian product
      • SELECT from table composition
      • Treat Composition as Table
    • Advanced Table operations
      • WHERE selection
      • Ordering
      • Aggregate functions
      • HAVING section with auto-detection inside WHERE
      • Table UNION
      • Altering table
      • Add constraints to table
    • Views
    • Other SQL shit
      • Convert JSON-like data mappings to DBase, Table etc
      • Convert DBase, Table to data mappings
  • Pseudo structures
    • Stack (C++)
    • Queue (C++)
    • Prioritized Queue
      • Python
      • C++
  • Basic data structures see docs
    • Plain
      • LinkedList
        • Python
        • C++
      • LinkedList with O(1) index access (C++)
    • Trees
      • Tree of arbitrary objects
        • Python
        • C++
      • Binary tree with post-insertion balance
        • Python
        • C++
      • Prefix tree for sequential search
        • Python
        • C++
      • Red-black tree
        • Python
        • C++
      • AVL tree
        • Python
        • C++
      • B+ tree
        • Python
        • C++
    • Graphs
      • Graph (Python)
      • Oriented graph (Python)
      • Network with flows (Python)
  • Class and object enhancements
    • DataTransferObject class decorator (Python) see docs

Requirements

Python implementations require the following:

  • Python >= 3.10 < 4.0

C++ implementations require the following to be built:

  • Cmake >= 3.20
  • PythonLibs >= 3.10
  • Boost with Python package