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.1.tar.gz (3.7 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.1-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nastya_sort_lnu-0.2.1.tar.gz
  • Upload date:
  • Size: 3.7 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.1.tar.gz
Algorithm Hash digest
SHA256 5a15285c76dc6043d42790d604ad09576cbf87ccb1167c48860b564072327864
MD5 3d8c372a6619b95d835fece9b1742079
BLAKE2b-256 96b98b5e3e03bc87c5d839dae61d723090831244656b485ba7e1b2d3b7b8c277

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nastya_sort_lnu-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 2f3947a07a278f485041fd7f13b0a650adfd7c0a12524a9b1f4ef8227cf54cec
MD5 994ac2bba29ac423a60bc0721cd6cc9e
BLAKE2b-256 cf64c73f6830261822746c92512d8482874ed63f1b71446c511ef840bbc18893

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