py7zz


Namepy7zz JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryPython wrapper for 7zz CLI tool providing cross-platform compression with 50+ archive formats
upload_time2025-07-18 18:10:27
maintainerNone
docs_urlNone
authorpy7zz contributors
requires_python>=3.8
licenseBSD-3-Clause AND LGPL-2.1-only
keywords 7z 7zip archive compression
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # py7zz

[![PyPI version](https://img.shields.io/pypi/v/py7zz.svg)](https://pypi.org/project/py7zz/)
[![Python versions](https://img.shields.io/pypi/pyversions/py7zz.svg)](https://pypi.org/project/py7zz/)
[![License](https://img.shields.io/pypi/l/py7zz.svg)](https://github.com/rxchi1d/py7zz/blob/main/LICENSE)
[![CI](https://github.com/rxchi1d/py7zz/workflows/CI/badge.svg)](https://github.com/rxchi1d/py7zz/actions)

A Python wrapper for the 7zz CLI tool, providing a consistent object-oriented interface across platforms (macOS, Linux, Windows) with automatic update mechanisms and support for dozens of archive formats.

## Features

- **๐Ÿš€ One-line archive operations** - Simple API for common tasks
- **๐Ÿ”ง zipfile/tarfile compatibility** - Drop-in replacement with familiar interface
- **๐Ÿ“ฆ 50+ archive formats** - ZIP, 7Z, RAR, TAR, GZIP, BZIP2, XZ, LZ4, ZSTD, and more
- **๐ŸŒ Cross-platform** - Works on macOS, Linux, and Windows
- **โšก Async operations** - Non-blocking operations with progress reporting
- **๐Ÿ”’ Secure** - Bundled 7zz binaries, no system dependencies
- **๐ŸŽฏ Smart presets** - Optimized settings for different use cases

## Quick Start

### Installation

```bash
pip install py7zz
```

### Basic Usage

```python
import py7zz

# Create archive (simple API)
py7zz.create_archive('backup.7z', ['documents/', 'photos/'])

# Extract archive
py7zz.extract_archive('backup.7z', 'extracted/')

# List archive contents
files = py7zz.list_archive('backup.7z')
print(f"Archive contains {len(files)} files")

# Test archive integrity
if py7zz.test_archive('backup.7z'):
    print("Archive is OK")
```

### Advanced Usage

```python
import py7zz

# Object-oriented interface (similar to zipfile.ZipFile)
with py7zz.SevenZipFile('archive.7z', 'w', preset='ultra') as sz:
    sz.add('file.txt')
    sz.add('folder/')

# Read files from archive
with py7zz.SevenZipFile('archive.7z', 'r') as sz:
    content = sz.read('file.txt')
    files = sz.namelist()
```

### Async Operations

```python
import py7zz
import asyncio

async def main():
    # Async operations with progress reporting
    async def progress_handler(info):
        print(f"Progress: {info.percentage:.1f}% - {info.current_file}")
    
    await py7zz.create_archive_async(
        'large_backup.7z',
        ['big_folder/'],
        preset='balanced',
        progress_callback=progress_handler
    )
    
    await py7zz.extract_archive_async(
        'large_backup.7z',
        'extracted/',
        progress_callback=progress_handler
    )

asyncio.run(main())
```

## API Overview

py7zz provides a **layered API design** to serve different user needs:

### Layer 1: Simple Function API (80% of use cases)
```python
# One-line solutions
py7zz.create_archive('backup.7z', ['files/'])
py7zz.extract_archive('backup.7z', 'output/')
py7zz.list_archive('backup.7z')
py7zz.test_archive('backup.7z')
```

### Layer 2: Object-Oriented API (zipfile/tarfile compatibility)
```python
# Similar to zipfile.ZipFile
with py7zz.SevenZipFile('archive.7z', 'w') as sz:
    sz.add('file.txt')
    sz.extractall('output/')
```

### Layer 3: Advanced Control API (power users)
```python
# Custom configurations and fine-grained control
config = py7zz.create_custom_config(
    level=7,
    method='LZMA2',
    dictionary_size='64m',
    solid=True
)
with py7zz.SevenZipFile('archive.7z', 'w', config=config) as sz:
    sz.add('data/')
```

### Layer 4: Async API (concurrent operations)
```python
# Non-blocking operations with progress
await py7zz.batch_compress_async(
    [('backup1.7z', ['folder1/']), ('backup2.7z', ['folder2/'])],
    progress_callback=progress_handler
)
```

**๐Ÿ“š [Complete API Documentation](docs/API.md)** - Detailed reference with all classes, methods, parameters, and advanced usage examples.

## Supported Formats

py7zz supports reading and writing many archive formats:

| Format | Read | Write | Notes |
|--------|------|-------|-------|
| 7Z | โœ… | โœ… | Native format, best compression |
| ZIP | โœ… | โœ… | Wide compatibility |
| TAR | โœ… | โœ… | Unix standard |
| GZIP | โœ… | โœ… | Single file compression |
| BZIP2 | โœ… | โœ… | Better compression than gzip |
| XZ | โœ… | โœ… | Excellent compression |
| LZ4 | โœ… | โœ… | Very fast compression |
| ZSTD | โœ… | โœ… | Modern, fast compression |
| RAR | โœ… | โŒ | Extract only |
| CAB | โœ… | โŒ | Windows cabinet files |
| ISO | โœ… | โŒ | Disc images |
| And 40+ more... | โœ… | Various | See full list in docs |

## Migration from zipfile/tarfile

py7zz is designed as a drop-in replacement for Python's `zipfile` and `tarfile` modules:

```python
# OLD
import zipfile
with zipfile.ZipFile('archive.zip', 'w') as zf:
    zf.write('file.txt')

# NEW
import py7zz
with py7zz.SevenZipFile('archive.7z', 'w') as sz:
    sz.add('file.txt')
```

**๐Ÿ“– [Complete Migration Guide](docs/MIGRATION.md)** - Detailed guide for migrating from zipfile/tarfile with examples and best practices.

## Compression Presets

py7zz includes optimized presets for different scenarios:

| Preset | Use Case | Speed | Compression | Memory |
|--------|----------|-------|-------------|---------|
| `fast` | Quick backups, temporary files | โšกโšกโšก | โญโญ | Low |
| `balanced` | General purpose (default) | โšกโšก | โญโญโญ | Medium |
| `backup` | Long-term storage | โšก | โญโญโญโญ | Medium |
| `ultra` | Maximum compression | โšก | โญโญโญโญโญ | High |

```python
# Use presets
py7zz.create_archive('quick.7z', ['files/'], preset='fast')
py7zz.create_archive('storage.7z', ['files/'], preset='backup')
py7zz.create_archive('minimal.7z', ['files/'], preset='ultra')
```

## Installation Methods

py7zz supports multiple installation methods:

### 1. PyPI Installation (Recommended)
```bash
pip install py7zz
```
- Includes bundled 7zz binaries
- No additional setup required
- Automatic binary detection

### 2. Development Installation
```bash
git clone https://github.com/rxchi1d/py7zz.git
cd py7zz
pip install -e .
```
- Auto-downloads correct 7zz binary on first use
- Cached in `~/.cache/py7zz/` for offline use

### 3. Direct GitHub Installation
```bash
pip install git+https://github.com/rxchi1d/py7zz.git
```

## Error Handling

py7zz provides specific exception types for better error handling:

```python
import py7zz

try:
    py7zz.create_archive('backup.7z', ['nonexistent/'])
except py7zz.FileNotFoundError:
    print("Source file not found")
except py7zz.CompressionError:
    print("Compression failed")
except py7zz.InsufficientSpaceError:
    print("Not enough disk space")
except py7zz.Py7zzError as e:
    print(f"General error: {e}")
```

## Performance Tips

### 1. Choose the Right Preset
```python
# Fast for temporary files
py7zz.create_archive('temp.7z', ['cache/'], preset='fast')

# Balanced for general use
py7zz.create_archive('backup.7z', ['data/'], preset='balanced')

# Ultra for long-term storage
py7zz.create_archive('archive.7z', ['important/'], preset='ultra')
```

### 2. Use Async for Large Operations
```python
# Non-blocking for large files
await py7zz.create_archive_async('huge.7z', ['bigdata/'])

# Batch operations
await py7zz.batch_compress_async([
    ('backup1.7z', ['folder1/']),
    ('backup2.7z', ['folder2/']),
    ('backup3.7z', ['folder3/'])
])
```

### 3. Monitor Progress
```python
async def progress_handler(info):
    print(f"{info.operation}: {info.percentage:.1f}% - {info.current_file}")

await py7zz.create_archive_async(
    'backup.7z',
    ['data/'],
    progress_callback=progress_handler
)
```

## Requirements

- Python 3.8+ (including Python 3.13)
- No external dependencies (7zz binary is bundled)
- **Supported platforms:** 
  - macOS (Intel + Apple Silicon)
  - Linux x86_64 (manylinux compatible)
  - Windows x64

> **Note:** Pre-built wheels are available for the above platforms. Other architectures may require building from source.

## Version Information

```python
import py7zz

# Get version information
print(py7zz.get_version())                    # Current py7zz version
print(py7zz.get_bundled_7zz_version())        # Bundled 7zz version
print(py7zz.get_version_info())               # Complete version details

# CLI version commands
# py7zz version                    # Human-readable format
# py7zz version --format json     # JSON format
```

## Development

### Setup Development Environment
```bash
git clone https://github.com/rxchi1d/py7zz.git
cd py7zz
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate
pip install -e .
```

### Run Tests
```bash
# Using uv (recommended)
uv run pytest              # Run tests
uv run ruff check --fix .  # Lint and fix
uv run mypy .              # Type checking

# Traditional commands
source .venv/bin/activate
pytest                     # Run tests
ruff check --fix .        # Lint and fix
mypy .                     # Type checking
```

### Code Quality
```bash
# Using uv (recommended)
uv run ruff format .       # Format code
uv run ruff check .        # Check style
uv run mypy .              # Type checking

# Traditional commands
source .venv/bin/activate
ruff format .              # Format code
ruff check .               # Check style
mypy .                     # Type checking
```

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for detailed information on:

- Setting up the development environment
- Code style and testing requirements
- Commit message conventions
- Pull request process

**Quick Start:**
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Follow the [commit message conventions](CONTRIBUTING.md#commit-message-convention)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

Please ensure all tests pass and code follows the style guidelines.

## License

py7zz is distributed under a dual license:

- **py7zz Python code**: BSD-3-Clause License
- **Bundled 7zz binary**: GNU Lesser General Public License (LGPL) v2.1

The py7zz Python wrapper code is licensed under the BSD-3-Clause license, allowing for flexible use in both open-source and commercial projects. The bundled 7zz binary from the 7-Zip project is licensed under LGPL-2.1, which requires that any modifications to the 7zz binary itself be made available under the same license.

Since py7zz uses the 7zz binary as a separate executable (not statically linked), users can freely use py7zz in their projects while complying with both licenses. For complete license information, see [LICENSE](LICENSE) and [7ZZ_LICENSE](7ZZ_LICENSE).

## Acknowledgments

- Built on top of the excellent [7-Zip](https://www.7-zip.org/) project
- Inspired by Python's `zipfile` and `tarfile` modules
- Uses the [7zz CLI tool](https://github.com/ip7z/7zip) for archive operations

## Links

- **๐Ÿ“š Complete API Documentation**: [docs/API.md](docs/API.md)
- **๐Ÿ”„ Migration Guide**: [docs/MIGRATION.md](docs/MIGRATION.md)
- **๐Ÿค Contributing Guide**: [CONTRIBUTING.md](CONTRIBUTING.md)
- **๐Ÿ“ฆ PyPI Package**: [py7zz on PyPI](https://pypi.org/project/py7zz/)
- **๐Ÿ› Issue Tracker**: [GitHub Issues](https://github.com/rxchi1d/py7zz/issues)
- **๐Ÿ’ป Source Code**: [GitHub Repository](https://github.com/rxchi1d/py7zz)

---

**๐Ÿš€ Ready to get started?** Check out the [Migration Guide](docs/MIGRATION.md) if you're coming from zipfile/tarfile, or dive into the examples above!
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "py7zz",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "7z, 7zip, archive, compression",
    "author": "py7zz contributors",
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "# py7zz\n\n[![PyPI version](https://img.shields.io/pypi/v/py7zz.svg)](https://pypi.org/project/py7zz/)\n[![Python versions](https://img.shields.io/pypi/pyversions/py7zz.svg)](https://pypi.org/project/py7zz/)\n[![License](https://img.shields.io/pypi/l/py7zz.svg)](https://github.com/rxchi1d/py7zz/blob/main/LICENSE)\n[![CI](https://github.com/rxchi1d/py7zz/workflows/CI/badge.svg)](https://github.com/rxchi1d/py7zz/actions)\n\nA Python wrapper for the 7zz CLI tool, providing a consistent object-oriented interface across platforms (macOS, Linux, Windows) with automatic update mechanisms and support for dozens of archive formats.\n\n## Features\n\n- **\ud83d\ude80 One-line archive operations** - Simple API for common tasks\n- **\ud83d\udd27 zipfile/tarfile compatibility** - Drop-in replacement with familiar interface\n- **\ud83d\udce6 50+ archive formats** - ZIP, 7Z, RAR, TAR, GZIP, BZIP2, XZ, LZ4, ZSTD, and more\n- **\ud83c\udf10 Cross-platform** - Works on macOS, Linux, and Windows\n- **\u26a1 Async operations** - Non-blocking operations with progress reporting\n- **\ud83d\udd12 Secure** - Bundled 7zz binaries, no system dependencies\n- **\ud83c\udfaf Smart presets** - Optimized settings for different use cases\n\n## Quick Start\n\n### Installation\n\n```bash\npip install py7zz\n```\n\n### Basic Usage\n\n```python\nimport py7zz\n\n# Create archive (simple API)\npy7zz.create_archive('backup.7z', ['documents/', 'photos/'])\n\n# Extract archive\npy7zz.extract_archive('backup.7z', 'extracted/')\n\n# List archive contents\nfiles = py7zz.list_archive('backup.7z')\nprint(f\"Archive contains {len(files)} files\")\n\n# Test archive integrity\nif py7zz.test_archive('backup.7z'):\n    print(\"Archive is OK\")\n```\n\n### Advanced Usage\n\n```python\nimport py7zz\n\n# Object-oriented interface (similar to zipfile.ZipFile)\nwith py7zz.SevenZipFile('archive.7z', 'w', preset='ultra') as sz:\n    sz.add('file.txt')\n    sz.add('folder/')\n\n# Read files from archive\nwith py7zz.SevenZipFile('archive.7z', 'r') as sz:\n    content = sz.read('file.txt')\n    files = sz.namelist()\n```\n\n### Async Operations\n\n```python\nimport py7zz\nimport asyncio\n\nasync def main():\n    # Async operations with progress reporting\n    async def progress_handler(info):\n        print(f\"Progress: {info.percentage:.1f}% - {info.current_file}\")\n    \n    await py7zz.create_archive_async(\n        'large_backup.7z',\n        ['big_folder/'],\n        preset='balanced',\n        progress_callback=progress_handler\n    )\n    \n    await py7zz.extract_archive_async(\n        'large_backup.7z',\n        'extracted/',\n        progress_callback=progress_handler\n    )\n\nasyncio.run(main())\n```\n\n## API Overview\n\npy7zz provides a **layered API design** to serve different user needs:\n\n### Layer 1: Simple Function API (80% of use cases)\n```python\n# One-line solutions\npy7zz.create_archive('backup.7z', ['files/'])\npy7zz.extract_archive('backup.7z', 'output/')\npy7zz.list_archive('backup.7z')\npy7zz.test_archive('backup.7z')\n```\n\n### Layer 2: Object-Oriented API (zipfile/tarfile compatibility)\n```python\n# Similar to zipfile.ZipFile\nwith py7zz.SevenZipFile('archive.7z', 'w') as sz:\n    sz.add('file.txt')\n    sz.extractall('output/')\n```\n\n### Layer 3: Advanced Control API (power users)\n```python\n# Custom configurations and fine-grained control\nconfig = py7zz.create_custom_config(\n    level=7,\n    method='LZMA2',\n    dictionary_size='64m',\n    solid=True\n)\nwith py7zz.SevenZipFile('archive.7z', 'w', config=config) as sz:\n    sz.add('data/')\n```\n\n### Layer 4: Async API (concurrent operations)\n```python\n# Non-blocking operations with progress\nawait py7zz.batch_compress_async(\n    [('backup1.7z', ['folder1/']), ('backup2.7z', ['folder2/'])],\n    progress_callback=progress_handler\n)\n```\n\n**\ud83d\udcda [Complete API Documentation](docs/API.md)** - Detailed reference with all classes, methods, parameters, and advanced usage examples.\n\n## Supported Formats\n\npy7zz supports reading and writing many archive formats:\n\n| Format | Read | Write | Notes |\n|--------|------|-------|-------|\n| 7Z | \u2705 | \u2705 | Native format, best compression |\n| ZIP | \u2705 | \u2705 | Wide compatibility |\n| TAR | \u2705 | \u2705 | Unix standard |\n| GZIP | \u2705 | \u2705 | Single file compression |\n| BZIP2 | \u2705 | \u2705 | Better compression than gzip |\n| XZ | \u2705 | \u2705 | Excellent compression |\n| LZ4 | \u2705 | \u2705 | Very fast compression |\n| ZSTD | \u2705 | \u2705 | Modern, fast compression |\n| RAR | \u2705 | \u274c | Extract only |\n| CAB | \u2705 | \u274c | Windows cabinet files |\n| ISO | \u2705 | \u274c | Disc images |\n| And 40+ more... | \u2705 | Various | See full list in docs |\n\n## Migration from zipfile/tarfile\n\npy7zz is designed as a drop-in replacement for Python's `zipfile` and `tarfile` modules:\n\n```python\n# OLD\nimport zipfile\nwith zipfile.ZipFile('archive.zip', 'w') as zf:\n    zf.write('file.txt')\n\n# NEW\nimport py7zz\nwith py7zz.SevenZipFile('archive.7z', 'w') as sz:\n    sz.add('file.txt')\n```\n\n**\ud83d\udcd6 [Complete Migration Guide](docs/MIGRATION.md)** - Detailed guide for migrating from zipfile/tarfile with examples and best practices.\n\n## Compression Presets\n\npy7zz includes optimized presets for different scenarios:\n\n| Preset | Use Case | Speed | Compression | Memory |\n|--------|----------|-------|-------------|---------|\n| `fast` | Quick backups, temporary files | \u26a1\u26a1\u26a1 | \u2b50\u2b50 | Low |\n| `balanced` | General purpose (default) | \u26a1\u26a1 | \u2b50\u2b50\u2b50 | Medium |\n| `backup` | Long-term storage | \u26a1 | \u2b50\u2b50\u2b50\u2b50 | Medium |\n| `ultra` | Maximum compression | \u26a1 | \u2b50\u2b50\u2b50\u2b50\u2b50 | High |\n\n```python\n# Use presets\npy7zz.create_archive('quick.7z', ['files/'], preset='fast')\npy7zz.create_archive('storage.7z', ['files/'], preset='backup')\npy7zz.create_archive('minimal.7z', ['files/'], preset='ultra')\n```\n\n## Installation Methods\n\npy7zz supports multiple installation methods:\n\n### 1. PyPI Installation (Recommended)\n```bash\npip install py7zz\n```\n- Includes bundled 7zz binaries\n- No additional setup required\n- Automatic binary detection\n\n### 2. Development Installation\n```bash\ngit clone https://github.com/rxchi1d/py7zz.git\ncd py7zz\npip install -e .\n```\n- Auto-downloads correct 7zz binary on first use\n- Cached in `~/.cache/py7zz/` for offline use\n\n### 3. Direct GitHub Installation\n```bash\npip install git+https://github.com/rxchi1d/py7zz.git\n```\n\n## Error Handling\n\npy7zz provides specific exception types for better error handling:\n\n```python\nimport py7zz\n\ntry:\n    py7zz.create_archive('backup.7z', ['nonexistent/'])\nexcept py7zz.FileNotFoundError:\n    print(\"Source file not found\")\nexcept py7zz.CompressionError:\n    print(\"Compression failed\")\nexcept py7zz.InsufficientSpaceError:\n    print(\"Not enough disk space\")\nexcept py7zz.Py7zzError as e:\n    print(f\"General error: {e}\")\n```\n\n## Performance Tips\n\n### 1. Choose the Right Preset\n```python\n# Fast for temporary files\npy7zz.create_archive('temp.7z', ['cache/'], preset='fast')\n\n# Balanced for general use\npy7zz.create_archive('backup.7z', ['data/'], preset='balanced')\n\n# Ultra for long-term storage\npy7zz.create_archive('archive.7z', ['important/'], preset='ultra')\n```\n\n### 2. Use Async for Large Operations\n```python\n# Non-blocking for large files\nawait py7zz.create_archive_async('huge.7z', ['bigdata/'])\n\n# Batch operations\nawait py7zz.batch_compress_async([\n    ('backup1.7z', ['folder1/']),\n    ('backup2.7z', ['folder2/']),\n    ('backup3.7z', ['folder3/'])\n])\n```\n\n### 3. Monitor Progress\n```python\nasync def progress_handler(info):\n    print(f\"{info.operation}: {info.percentage:.1f}% - {info.current_file}\")\n\nawait py7zz.create_archive_async(\n    'backup.7z',\n    ['data/'],\n    progress_callback=progress_handler\n)\n```\n\n## Requirements\n\n- Python 3.8+ (including Python 3.13)\n- No external dependencies (7zz binary is bundled)\n- **Supported platforms:** \n  - macOS (Intel + Apple Silicon)\n  - Linux x86_64 (manylinux compatible)\n  - Windows x64\n\n> **Note:** Pre-built wheels are available for the above platforms. Other architectures may require building from source.\n\n## Version Information\n\n```python\nimport py7zz\n\n# Get version information\nprint(py7zz.get_version())                    # Current py7zz version\nprint(py7zz.get_bundled_7zz_version())        # Bundled 7zz version\nprint(py7zz.get_version_info())               # Complete version details\n\n# CLI version commands\n# py7zz version                    # Human-readable format\n# py7zz version --format json     # JSON format\n```\n\n## Development\n\n### Setup Development Environment\n```bash\ngit clone https://github.com/rxchi1d/py7zz.git\ncd py7zz\npython -m venv .venv\nsource .venv/bin/activate  # On Windows: .venv\\Scripts\\activate\npip install -e .\n```\n\n### Run Tests\n```bash\n# Using uv (recommended)\nuv run pytest              # Run tests\nuv run ruff check --fix .  # Lint and fix\nuv run mypy .              # Type checking\n\n# Traditional commands\nsource .venv/bin/activate\npytest                     # Run tests\nruff check --fix .        # Lint and fix\nmypy .                     # Type checking\n```\n\n### Code Quality\n```bash\n# Using uv (recommended)\nuv run ruff format .       # Format code\nuv run ruff check .        # Check style\nuv run mypy .              # Type checking\n\n# Traditional commands\nsource .venv/bin/activate\nruff format .              # Format code\nruff check .               # Check style\nmypy .                     # Type checking\n```\n\n## Contributing\n\nWe welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for detailed information on:\n\n- Setting up the development environment\n- Code style and testing requirements\n- Commit message conventions\n- Pull request process\n\n**Quick Start:**\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Follow the [commit message conventions](CONTRIBUTING.md#commit-message-convention)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\nPlease ensure all tests pass and code follows the style guidelines.\n\n## License\n\npy7zz is distributed under a dual license:\n\n- **py7zz Python code**: BSD-3-Clause License\n- **Bundled 7zz binary**: GNU Lesser General Public License (LGPL) v2.1\n\nThe py7zz Python wrapper code is licensed under the BSD-3-Clause license, allowing for flexible use in both open-source and commercial projects. The bundled 7zz binary from the 7-Zip project is licensed under LGPL-2.1, which requires that any modifications to the 7zz binary itself be made available under the same license.\n\nSince py7zz uses the 7zz binary as a separate executable (not statically linked), users can freely use py7zz in their projects while complying with both licenses. For complete license information, see [LICENSE](LICENSE) and [7ZZ_LICENSE](7ZZ_LICENSE).\n\n## Acknowledgments\n\n- Built on top of the excellent [7-Zip](https://www.7-zip.org/) project\n- Inspired by Python's `zipfile` and `tarfile` modules\n- Uses the [7zz CLI tool](https://github.com/ip7z/7zip) for archive operations\n\n## Links\n\n- **\ud83d\udcda Complete API Documentation**: [docs/API.md](docs/API.md)\n- **\ud83d\udd04 Migration Guide**: [docs/MIGRATION.md](docs/MIGRATION.md)\n- **\ud83e\udd1d Contributing Guide**: [CONTRIBUTING.md](CONTRIBUTING.md)\n- **\ud83d\udce6 PyPI Package**: [py7zz on PyPI](https://pypi.org/project/py7zz/)\n- **\ud83d\udc1b Issue Tracker**: [GitHub Issues](https://github.com/rxchi1d/py7zz/issues)\n- **\ud83d\udcbb Source Code**: [GitHub Repository](https://github.com/rxchi1d/py7zz)\n\n---\n\n**\ud83d\ude80 Ready to get started?** Check out the [Migration Guide](docs/MIGRATION.md) if you're coming from zipfile/tarfile, or dive into the examples above!",
    "bugtrack_url": null,
    "license": "BSD-3-Clause AND LGPL-2.1-only",
    "summary": "Python wrapper for 7zz CLI tool providing cross-platform compression with 50+ archive formats",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/rxchi1d/py7zz",
        "Issues": "https://github.com/rxchi1d/py7zz/issues",
        "Repository": "https://github.com/rxchi1d/py7zz"
    },
    "split_keywords": [
        "7z",
        " 7zip",
        " archive",
        " compression"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "eb634f1fd4689c37f5568b41d9ebd9153e65bb4b5ff3d39b9e1ae5445fbdb0dc",
                "md5": "947e5898853bf4e35d613469ffba0f9d",
                "sha256": "9c2e1e7ed77f011811fa048fee3a3c6a15e826f9188e14b4c2bddf486eea2f8a"
            },
            "downloads": -1,
            "filename": "py7zz-0.1.1-py3-none-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "947e5898853bf4e35d613469ffba0f9d",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 5223181,
            "upload_time": "2025-07-18T18:10:27",
            "upload_time_iso_8601": "2025-07-18T18:10:27.223517Z",
            "url": "https://files.pythonhosted.org/packages/eb/63/4f1fd4689c37f5568b41d9ebd9153e65bb4b5ff3d39b9e1ae5445fbdb0dc/py7zz-0.1.1-py3-none-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "3cc1302abe4bbe7b4a01c726b3fe01766c837203cf9d430a73305b42457df555",
                "md5": "a330f4c6c09afadbc4e14e3b0f725831",
                "sha256": "dd042cf55c8aa73b6524d23e7704bd4c56a432fb7b58acc9aee3f865a128b2ff"
            },
            "downloads": -1,
            "filename": "py7zz-0.1.1-py3-none-manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a330f4c6c09afadbc4e14e3b0f725831",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 2621134,
            "upload_time": "2025-07-18T18:10:29",
            "upload_time_iso_8601": "2025-07-18T18:10:29.226757Z",
            "url": "https://files.pythonhosted.org/packages/3c/c1/302abe4bbe7b4a01c726b3fe01766c837203cf9d430a73305b42457df555/py7zz-0.1.1-py3-none-manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8a1c8c530c76ef6621a55b09deec94014836da68a2dec521cbb0d3f5a1f60f43",
                "md5": "1e04c1c501f871ffb4833d9c5876e1d0",
                "sha256": "b72815f1c2ca4dffdd863531b27426d70582cde1fed7c14c9a34292e541f1396"
            },
            "downloads": -1,
            "filename": "py7zz-0.1.1-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1e04c1c501f871ffb4833d9c5876e1d0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 2256734,
            "upload_time": "2025-07-18T18:10:31",
            "upload_time_iso_8601": "2025-07-18T18:10:31.003737Z",
            "url": "https://files.pythonhosted.org/packages/8a/1c/8c530c76ef6621a55b09deec94014836da68a2dec521cbb0d3f5a1f60f43/py7zz-0.1.1-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-18 18:10:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "rxchi1d",
    "github_project": "py7zz",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "py7zz"
}
        
Elapsed time: 0.45982s