billsioros / querpyable

Querpyable: A Python implementation of LINQ

Home Page:https://billsioros.github.io/querpyable/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Querpyable

A Python implementation of LINQ

PyPI - Python Version PyPI CI CD pre-commit.ci status Test Coverage PyPI - License Open in GitHub Codespaces Cookiecutter Template Renovate - Enabled Buy me a coffee Dependency Review

💡 Example

# Calculating the first 10000 primes
primes = (
    Queryable.range(2, 1_000_000)
    .where(lambda n: all(n % i != 0 for i in range(2, int(n**0.5) + 1)))
    .take(10000)
    .to_list()
)

# Calculating Factorials using Aggregate:
factorial = (
    Queryable
    .range(1, 5)
    .aggregate(lambda result, current: result * current)
)

# Finding Palindromic Words in a List:
words = ["level", "hello", "world", "radar", "LINQ", "civic"]
palindromic_words = (
    Queryable(words)
    .where(lambda word: word == word[::-1])
    .to_list()
)

# Selecting Unique Characters from a Sentence:
sentence = "LINQ is fun and powerful"
unique_characters = (
    Queryable(sentence)
    .where(lambda char: char.isalpha())
    .select(lambda char: char.lower())
    .distinct()
    .to_list()
)

💿 Installation

pip install querpyable

In order to locally set up the project please follow the instructions below:

# Set up the GitHub repository
git clone https://github.com/billsioros/querpyable

# Create a virtual environment using poetry and install the required dependencies
poetry shell
poetry install

# Install pre-commit hooks
pre-commit install --install-hooks
pre-commit autoupdate

📖 Documentation

The project's documentation can be found here.

❤️ Support the project

Feel free to Buy me a coffee! ☕.

✨ Contributing

If you would like to contribute to the project, please go through the Contributing Guidelines first.

🏷️ Credits

This project was generated with billsioros/cookiecutter-pypackage cookiecutter template.

About

Querpyable: A Python implementation of LINQ

https://billsioros.github.io/querpyable/

License:MIT License


Languages

Language:Python 95.6%Language:Dockerfile 4.4%