Skip to main content

Simple sort utility implemented in Python with Click

Project description

nastya-sort

Lightweight implementation of Unix sort utility in Python with Click framework.

Features

  • ✅ Sort lines from files or stdin
  • ✅ Numeric sorting with -n flag
  • ✅ Reverse order with -r flag
  • ✅ Docker support
  • ✅ Compatible with Unix sort behavior

Installation

From source

git clone https://github.com/Nastia2004/nastya-sort-lnu.git
cd nastya-sort-lnu
pip install -e .

Using Docker

# Or build locally
docker build -t nastya-sort .

Usage

Command Line Interface

# Sort lines from stdin
echo -e "banana\napple\ncherry" | sort

# Sort file contents
sort file.txt

# Numeric sort
echo -e "10\n2\n100\n20" | sort -n
# Output: 2, 10, 20, 100

# Reverse order
sort -r file.txt

# Combine options
sort -rn numbers.txt

Command Options

Option Description
-n, --numeric Compare according to string numerical value
-r, --reverse Reverse the result of comparisons
-h, --help Show help message and exit

Examples

Basic Sorting

# Alphabetical sort
cat names.txt | sort

# Sort and save to file
sort input.txt > sorted.txt

Numeric Sorting

# Sort numbers correctly
echo -e "100\n20\n3\n1000" | sort -n
# Output:
# 3
# 20
# 100
# 1000

Reverse Sorting

# Descending order
echo -e "a\nc\nb" | sort -r
# Output:
# c
# b
# a

Combined with Other Tools

# Sort and remove duplicates
sort file.txt | uniq

# Sort CSV by second column
cut -d',' -f2 data.csv | sort -n

# Count and sort word frequency
cat text.txt | tr ' ' '\n' | sort | uniq -c | sort -rn

Development

Setup Environment

# Create virtual environment
python3 -m venv test
source test/bin/activate  # On Windows: venv\Scripts\activate

# Install in development mode
pip install -e .

Building Docker Image

docker build -t nastya-sort .
docker run nastya-sort --help

Testing

# Test basic sorting
echo -e "c\na\nb" | sort

# Test numeric sorting
echo -e "10\n2\n1" | sort -n

# Test with Docker
echo -e "3\n1\n2" | docker run -i nastya-sort -n

Project Structure

nastya-sort/
├── nastya_sort/
│   ├── __init__.py       # Package version
│   └── cli.py            # CLI implementation
├── .github/
│   └── workflows/
│       └── docker-publish.yml  # CI/CD pipeline
├── Dockerfile            # Docker image definition
├── setup.py              # Package configuration
├── README.md             # This file
└── .gitignore           # Git ignore rules

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nastya_sort_lnu-0.2.5.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nastya_sort_lnu-0.2.5-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file nastya_sort_lnu-0.2.5.tar.gz.

File metadata

  • Download URL: nastya_sort_lnu-0.2.5.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.24

File hashes

Hashes for nastya_sort_lnu-0.2.5.tar.gz
Algorithm Hash digest
SHA256 c007959a64aa7a37569015f29b050b2ee1f108501d79e41a97915de8929d739d
MD5 6fa3edd444ceb9b317c6258d5f852783
BLAKE2b-256 7ce40b8f9e6a4427d79adcb8055ecd2c6b0b763a232d3f1046205e803fdf2ab0

See more details on using hashes here.

File details

Details for the file nastya_sort_lnu-0.2.5-py3-none-any.whl.

File metadata

File hashes

Hashes for nastya_sort_lnu-0.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 7e54b57020285e21b706127309984fe5a0e4c065b7bb8ec11f27adb335672d89
MD5 08a9a9b086e9abd8c68593c5525f3350
BLAKE2b-256 c678b0139dec04a34f994bbb81569a92179dce2929f182472c2773af8dfec570

See more details on using hashes here.

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