# ZSZ Package

A sample Python package demonstrating how to create a package that can be uploaded to PyPI.

## Features

- Simple and easy to use
- Well-documented code
- Comprehensive test coverage
- Ready for PyPI distribution

## Installation

### From PyPI (once published)

```bash
pip install zsz-package
```

### From source

```bash
git clone https://github.com/yourusername/zsz-package.git
cd zsz-package
pip install -e .
```

## Usage

### As a Python library

```python
from zsz_package import hello, Calculator

# Say hello
hello("World")

# Use the calculator
calc = Calculator()
result = calc.add(5, 3)
print(f"Result: {result}")
```

### Command-line interface

```bash
zsz-hello
```

## Development

### Setup development environment

```bash
# Clone the repository
git clone https://github.com/yourusername/zsz-package.git
cd zsz-package

# Install in editable mode with dev dependencies
pip install -e ".[dev]"
```

### Run tests

```bash
pytest
```

### Code formatting

```bash
black src/ tests/
```

### Type checking

```bash
mypy src/
```

## Building and Publishing

### Build the package

```bash
# Install build tools
pip install build twine

# Build the package
python -m build
```

This will create distribution files in the `dist/` directory:
- `zsz_package-0.1.0.tar.gz` (source distribution)
- `zsz_package-0.1.0-py3-none-any.whl` (wheel distribution)

### Test the package locally

```bash
# Install from local wheel
pip install dist/zsz_package-0.1.0-py3-none-any.whl
```

### Upload to TestPyPI (for testing)

```bash
# Upload to TestPyPI
python -m twine upload --repository testpypi dist/*

# Test installation from TestPyPI
pip install --index-url https://test.pypi.org/simple/ zsz-package
```

### Upload to PyPI (production)

```bash
# Upload to PyPI
python -m twine upload dist/*
```

**Note:** You need to:
1. Create an account on [PyPI](https://pypi.org/) or [TestPyPI](https://test.pypi.org/)
2. Configure your credentials (use API tokens for better security)
3. Ensure your package name is unique on PyPI

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Author

Your Name - your.email@example.com

## Changelog

### 0.1.0 (2026-01-02)
- Initial release
- Basic calculator functionality
- Hello world function
- Command-line interface
