khx-publish-pypi


Namekhx-publish-pypi JSON
Version 0.1.11 PyPI version JSON
download
home_pageNone
SummaryA friendly CLI tool to check and publish Python packages to TestPyPI/PyPI
upload_time2025-09-05 23:22:02
maintainerNone
docs_urlNone
authorNone
requires_python>=3.9
licenseNone
keywords publish cli pypi packaging release khx
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# ๐Ÿš€ KHX-Publish-PyPI

[![PyPI version](https://badge.fury.io/py/khx_publish_pypi.svg)](https://pypi.org/project/khx_publish_pypi/)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Build Status](https://img.shields.io/github/actions/workflow/status/Khader-X/khx-publish-pypi/ci.yml)](https://github.com/Khader-X/khx-publish-pypi/actions)
[![Code Coverage](https://img.shields.io/codecov/c/github/Khader-X/khx-publish-pypi)](https://codecov.io/gh/Khader-X/khx-publish-pypi)

> โœจ **A beautiful, user-friendly CLI tool to streamline Python package publishing to PyPI and TestPyPI**

KHX-Publish-PyPI is an interactive command-line interface that simplifies the entire process of preparing, building, and publishing Python packages. With rich visual feedback, intelligent error handling, and secure token management, it makes package publishing as smooth as a breeze.

## ๐ŸŒŸ Features

- ๐ŸŽจ **Beautiful Interface**: Rich, colorful output with progress bars and interactive prompts
- ๐Ÿ” **Smart Pre-checks**: Validates your package structure, version, and configuration before publishing
- ๐Ÿ” **Secure Token Management**: Stores API tokens securely using your system's keyring
- ๐Ÿ“ฆ **One-Command Publishing**: Complete workflow from checks to upload in a single command
- ๐Ÿงช **TestPyPI Support**: Publish to TestPyPI first for safe testing
- ๐Ÿ“ˆ **Version Management**: Automatic version bumping with semantic versioning
- ๐Ÿ› ๏ธ **Error Intelligence**: Provides specific suggestions when uploads fail
- ๐Ÿš€ **CI/CD Ready**: Perfect for automated publishing pipelines

## ๐Ÿ“ธ Screenshots

<!-- 
### Interactive Publishing Workflow
![KHX-Publish-PyPI Demo](screenshots/...)

*Complete guided publishing workflow showing checks, token setup, version bumping, and publishing*

### CLI Interface Examples
![CLI Commands](screenshots/cli-commands.png)
*Available CLI commands and options*

![Pre-publish Checks](screenshots/pre-checks.png)
*Automated validation of package structure and requirements* -->

## ๐Ÿ› ๏ธ Installation

### From PyPI (Recommended)
```bash
pip install khx-publish-pypi
```

![Installation Gif](https://raw.githubusercontent.com/Khader-X/khx-publish-pypi/refs/heads/master/screenshots/khx-publish-pypi_video_installation_version.gif)


Check the latest version:
```bash
khx-publish-pypi --version
```

### From GitHub (Release or main)
- Install from a tagged GitHub Release asset (requires download first):
  - Go to Releases, download the `.whl` or `.tar.gz` from assets, then:
    ```bash
    pip install path/to/khx_publish_pypi-<version>-py3-none-any.whl
    # or
    pip install path/to/khx_publish_pypi-<version>.tar.gz
    ```
- Or install directly from the repo using pipโ€™s VCS support:
    ```bash
    # specific tag
    pip install git+https://github.com/Khader-X/khx-publish-pypi.git@vX.Y.Z#egg=khx_publish_pypi
    # latest on default branch
    pip install git+https://github.com/Khader-X/khx-publish-pypi.git@main#egg=khx_publish_pypi
    ```

### From Source (Development)
```bash
git clone https://github.com/Khader-X/khx-publish-pypi.git
cd khx-publish-pypi
pip install -e .
```

### Requirements
- Python 3.9+
- `twine` for uploads
- `build` for package building
- `keyring` for secure token storage

## ๐Ÿš€ Quick Start

1. **Install the package**
   ```bash
   pip install khx-publish-pypi
   ```

2. **Set up your API tokens**
   ```bash
   khx-publish-pypi setup-tokens
   ```

3. **Publish your package**
   ```bash
   khx-publish-pypi run
   ```

That's it! The guided workflow will handle everything else.

## ๐Ÿ“– Usage

### Interactive Publishing (Recommended)
```bash
khx-publish-pypi run
```

This command provides a complete guided experience:
- โœ… Runs pre-publish checks
- ๐Ÿ”‘ Manages API token configuration
- ๐Ÿ“ˆ Offers version bumping options
- ๐Ÿ—๏ธ Builds your package distributions
- ๐Ÿ“ค Publishes to TestPyPI and/or PyPI

### Individual Commands
```bash
# Run pre-publish checks
khx-publish-pypi check

# Bump version
khx-publish-pypi bump patch

# Publish to TestPyPI only
khx-publish-pypi publish-test

# Publish to PyPI only
khx-publish-pypi publish-prod
```

## ๐Ÿ“š CLI Commands

| Command | Description |
|---------|-------------|
| `khx-publish-pypi --version` | Show CLI version |
| `khx-publish-pypi check` | Run interactive pre-publish checks |
| `khx-publish-pypi bump [patch\|minor\|major]` | Bump package version |
| `khx-publish-pypi setup-tokens` | Configure API tokens interactively |
| `khx-publish-pypi update-tokens` | Update existing tokens |
| `khx-publish-pypi run` | Complete guided publishing workflow |
| `khx-publish-pypi publish-test` | Publish to TestPyPI |
| `khx-publish-pypi publish-prod` | Publish to PyPI |

### Command Options

#### Token Setup
```bash
# Interactive setup
khx-publish-pypi setup-tokens

# Non-interactive setup
khx-publish-pypi setup-tokens --test-token YOUR_TEST_TOKEN --prod-token YOUR_PROD_TOKEN
```

#### Version Bumping
```bash
khx-publish-pypi bump patch  # 1.0.0 โ†’ 1.0.1
khx-publish-pypi bump minor  # 1.0.1 โ†’ 1.1.0
khx-publish-pypi bump major  # 1.1.0 โ†’ 2.0.0
```

## โš™๏ธ Configuration

### API Tokens

KHX-Publish-PyPI securely stores your PyPI API tokens using your system's keyring:

- **TestPyPI**: Stored as `khx-publish-testpypi`
- **PyPI**: Stored as `khx-publish-pypi`

#### Getting API Tokens

1. **TestPyPI Token**: [Generate at test.pypi.org](https://test.pypi.org/manage/account/token/)
2. **PyPI Token**: [Generate at pypi.org](https://pypi.org/manage/account/token/)

#### Environment Variables (Alternative)

You can also provide tokens via environment variables:
```bash
export TESTPYPI_TOKEN=your_test_token
export PYPI_TOKEN=your_prod_token
```

### Package Requirements

Your Python package must have:
- โœ… `pyproject.toml` with project metadata
- โœ… `README.md` file
- โœ… `LICENSE` file
- โœ… Package directory in `src/` or root
- โœ… Version defined in `__version__.py` or `pyproject.toml`

## ๐Ÿ”ง Troubleshooting

### Common Issues

#### โŒ Upload Fails with 400 Error
**Cause**: Package version already exists on PyPI
**Solution**: Bump the version
```bash
khx-publish-pypi bump patch
```

#### โŒ Authentication Failed (403)
**Cause**: Invalid or expired API token
**Solution**: Reconfigure tokens
```bash
khx-publish-pypi setup-tokens
```

#### โŒ Build Fails
**Cause**: Missing build dependencies or invalid `pyproject.toml`
**Solution**: Install build tools and validate configuration
```bash
pip install build twine
python -m build --help
```

#### โŒ Token Storage Issues
**Cause**: Keyring not available or corrupted
**Solution**: Use environment variables or reinstall keyring
```bash
pip uninstall keyring
pip install keyring
```

### Debug Mode
Enable verbose output for troubleshooting:
```bash
khx-publish-pypi run --verbose
```

## ๐Ÿค Contributing

We welcome contributions! Here's how to get started:

1. **Fork the repository**
2. **Create a feature branch**
   ```bash
   git checkout -b feature/amazing-feature
   ```
3. **Make your changes**
4. **Run tests**
   ```bash
   python -m pytest
   ```
5. **Submit a pull request**

### Development Setup
```bash
git clone https://github.com/Khader-X/khx-publish-pypi.git
cd khx-publish-pypi
pip install -e ".[dev]"
```

### Code Style
- Follow PEP 8
- Use type hints
- Write docstrings for all functions
- Add tests for new features

## ๐Ÿ“Š CI/CD Integration

KHX-Publish-PyPI works great with CI/CD pipelines:

```yaml
# GitHub Actions example
- name: Publish to PyPI
  run: |
    khx-publish-pypi setup-tokens --test-token ${{ secrets.TEST_PYPI_TOKEN }} --prod-token ${{ secrets.PYPI_TOKEN }}
    khx-publish-pypi publish-prod
```

## ๐Ÿ“„ License

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

## ๐Ÿ™ Acknowledgments

- Built with [Click](https://click.palletsprojects.com/) for CLI magic
- Beautiful output powered by [Rich](https://rich.readthedocs.io/)
- Secure token storage via [Keyring](https://github.com/jaraco/keyring)
- Package building with [Build](https://github.com/pypa/build)
- Uploads handled by [Twine](https://github.com/pypa/twine)

## ๐Ÿ“ž Support

- ๐Ÿ“ง **Email**: abueltayef.khader@gmail.com
- ๐Ÿ› **Issues**: [GitHub Issues](https://github.com/Khader-X/khx-publish-pypi/issues)
- ๐Ÿ“– **Documentation**: [GitHub Wiki](https://github.com/Khader-X/khx-publish-pypi/wiki)
- ๐Ÿ’ฌ **Discussions**: [GitHub Discussions](https://github.com/Khader-X/khx-publish-pypi/discussions)

---

<p align="center">
  Made with โค๏ธ by <a href="https://github.com/Khader20">ABUELTAYEF Khader</a>
</p>

<p align="center">
  <a href="https://github.com/Khader-X/khx-publish-pypi">โญ Star this repo</a> โ€ข
  <a href="https://pypi.org/project/khx_publish_pypi/">๐Ÿ“ฆ View on PyPI</a> โ€ข
  <a href="https://khaderabueltayef.blogspot.com/">๐Ÿ“ Blog</a>
</p>

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "khx-publish-pypi",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": "ABUELTAYEF Khader <abueltayef.khader.main@hotmail.com>",
    "keywords": "publish, cli, pypi, packaging, release, khx",
    "author": null,
    "author_email": "ABUELTAYEF Khader <abueltayef.khader@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/41/9e/b6e7e9010ab24297c209cacafa4a6a55f8db4a112927300557d39ea983b5/khx_publish_pypi-0.1.11.tar.gz",
    "platform": null,
    "description": "\r\n# \ud83d\ude80 KHX-Publish-PyPI\r\n\r\n[![PyPI version](https://badge.fury.io/py/khx_publish_pypi.svg)](https://pypi.org/project/khx_publish_pypi/)\r\n[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)\r\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\r\n[![Build Status](https://img.shields.io/github/actions/workflow/status/Khader-X/khx-publish-pypi/ci.yml)](https://github.com/Khader-X/khx-publish-pypi/actions)\r\n[![Code Coverage](https://img.shields.io/codecov/c/github/Khader-X/khx-publish-pypi)](https://codecov.io/gh/Khader-X/khx-publish-pypi)\r\n\r\n> \u2728 **A beautiful, user-friendly CLI tool to streamline Python package publishing to PyPI and TestPyPI**\r\n\r\nKHX-Publish-PyPI is an interactive command-line interface that simplifies the entire process of preparing, building, and publishing Python packages. With rich visual feedback, intelligent error handling, and secure token management, it makes package publishing as smooth as a breeze.\r\n\r\n## \ud83c\udf1f Features\r\n\r\n- \ud83c\udfa8 **Beautiful Interface**: Rich, colorful output with progress bars and interactive prompts\r\n- \ud83d\udd0d **Smart Pre-checks**: Validates your package structure, version, and configuration before publishing\r\n- \ud83d\udd10 **Secure Token Management**: Stores API tokens securely using your system's keyring\r\n- \ud83d\udce6 **One-Command Publishing**: Complete workflow from checks to upload in a single command\r\n- \ud83e\uddea **TestPyPI Support**: Publish to TestPyPI first for safe testing\r\n- \ud83d\udcc8 **Version Management**: Automatic version bumping with semantic versioning\r\n- \ud83d\udee0\ufe0f **Error Intelligence**: Provides specific suggestions when uploads fail\r\n- \ud83d\ude80 **CI/CD Ready**: Perfect for automated publishing pipelines\r\n\r\n## \ud83d\udcf8 Screenshots\r\n\r\n<!-- \r\n### Interactive Publishing Workflow\r\n![KHX-Publish-PyPI Demo](screenshots/...)\r\n\r\n*Complete guided publishing workflow showing checks, token setup, version bumping, and publishing*\r\n\r\n### CLI Interface Examples\r\n![CLI Commands](screenshots/cli-commands.png)\r\n*Available CLI commands and options*\r\n\r\n![Pre-publish Checks](screenshots/pre-checks.png)\r\n*Automated validation of package structure and requirements* -->\r\n\r\n## \ud83d\udee0\ufe0f Installation\r\n\r\n### From PyPI (Recommended)\r\n```bash\r\npip install khx-publish-pypi\r\n```\r\n\r\n![Installation Gif](https://raw.githubusercontent.com/Khader-X/khx-publish-pypi/refs/heads/master/screenshots/khx-publish-pypi_video_installation_version.gif)\r\n\r\n\r\nCheck the latest version:\r\n```bash\r\nkhx-publish-pypi --version\r\n```\r\n\r\n### From GitHub (Release or main)\r\n- Install from a tagged GitHub Release asset (requires download first):\r\n  - Go to Releases, download the `.whl` or `.tar.gz` from assets, then:\r\n    ```bash\r\n    pip install path/to/khx_publish_pypi-<version>-py3-none-any.whl\r\n    # or\r\n    pip install path/to/khx_publish_pypi-<version>.tar.gz\r\n    ```\r\n- Or install directly from the repo using pip\u2019s VCS support:\r\n    ```bash\r\n    # specific tag\r\n    pip install git+https://github.com/Khader-X/khx-publish-pypi.git@vX.Y.Z#egg=khx_publish_pypi\r\n    # latest on default branch\r\n    pip install git+https://github.com/Khader-X/khx-publish-pypi.git@main#egg=khx_publish_pypi\r\n    ```\r\n\r\n### From Source (Development)\r\n```bash\r\ngit clone https://github.com/Khader-X/khx-publish-pypi.git\r\ncd khx-publish-pypi\r\npip install -e .\r\n```\r\n\r\n### Requirements\r\n- Python 3.9+\r\n- `twine` for uploads\r\n- `build` for package building\r\n- `keyring` for secure token storage\r\n\r\n## \ud83d\ude80 Quick Start\r\n\r\n1. **Install the package**\r\n   ```bash\r\n   pip install khx-publish-pypi\r\n   ```\r\n\r\n2. **Set up your API tokens**\r\n   ```bash\r\n   khx-publish-pypi setup-tokens\r\n   ```\r\n\r\n3. **Publish your package**\r\n   ```bash\r\n   khx-publish-pypi run\r\n   ```\r\n\r\nThat's it! The guided workflow will handle everything else.\r\n\r\n## \ud83d\udcd6 Usage\r\n\r\n### Interactive Publishing (Recommended)\r\n```bash\r\nkhx-publish-pypi run\r\n```\r\n\r\nThis command provides a complete guided experience:\r\n- \u2705 Runs pre-publish checks\r\n- \ud83d\udd11 Manages API token configuration\r\n- \ud83d\udcc8 Offers version bumping options\r\n- \ud83c\udfd7\ufe0f Builds your package distributions\r\n- \ud83d\udce4 Publishes to TestPyPI and/or PyPI\r\n\r\n### Individual Commands\r\n```bash\r\n# Run pre-publish checks\r\nkhx-publish-pypi check\r\n\r\n# Bump version\r\nkhx-publish-pypi bump patch\r\n\r\n# Publish to TestPyPI only\r\nkhx-publish-pypi publish-test\r\n\r\n# Publish to PyPI only\r\nkhx-publish-pypi publish-prod\r\n```\r\n\r\n## \ud83d\udcda CLI Commands\r\n\r\n| Command | Description |\r\n|---------|-------------|\r\n| `khx-publish-pypi --version` | Show CLI version |\r\n| `khx-publish-pypi check` | Run interactive pre-publish checks |\r\n| `khx-publish-pypi bump [patch\\|minor\\|major]` | Bump package version |\r\n| `khx-publish-pypi setup-tokens` | Configure API tokens interactively |\r\n| `khx-publish-pypi update-tokens` | Update existing tokens |\r\n| `khx-publish-pypi run` | Complete guided publishing workflow |\r\n| `khx-publish-pypi publish-test` | Publish to TestPyPI |\r\n| `khx-publish-pypi publish-prod` | Publish to PyPI |\r\n\r\n### Command Options\r\n\r\n#### Token Setup\r\n```bash\r\n# Interactive setup\r\nkhx-publish-pypi setup-tokens\r\n\r\n# Non-interactive setup\r\nkhx-publish-pypi setup-tokens --test-token YOUR_TEST_TOKEN --prod-token YOUR_PROD_TOKEN\r\n```\r\n\r\n#### Version Bumping\r\n```bash\r\nkhx-publish-pypi bump patch  # 1.0.0 \u2192 1.0.1\r\nkhx-publish-pypi bump minor  # 1.0.1 \u2192 1.1.0\r\nkhx-publish-pypi bump major  # 1.1.0 \u2192 2.0.0\r\n```\r\n\r\n## \u2699\ufe0f Configuration\r\n\r\n### API Tokens\r\n\r\nKHX-Publish-PyPI securely stores your PyPI API tokens using your system's keyring:\r\n\r\n- **TestPyPI**: Stored as `khx-publish-testpypi`\r\n- **PyPI**: Stored as `khx-publish-pypi`\r\n\r\n#### Getting API Tokens\r\n\r\n1. **TestPyPI Token**: [Generate at test.pypi.org](https://test.pypi.org/manage/account/token/)\r\n2. **PyPI Token**: [Generate at pypi.org](https://pypi.org/manage/account/token/)\r\n\r\n#### Environment Variables (Alternative)\r\n\r\nYou can also provide tokens via environment variables:\r\n```bash\r\nexport TESTPYPI_TOKEN=your_test_token\r\nexport PYPI_TOKEN=your_prod_token\r\n```\r\n\r\n### Package Requirements\r\n\r\nYour Python package must have:\r\n- \u2705 `pyproject.toml` with project metadata\r\n- \u2705 `README.md` file\r\n- \u2705 `LICENSE` file\r\n- \u2705 Package directory in `src/` or root\r\n- \u2705 Version defined in `__version__.py` or `pyproject.toml`\r\n\r\n## \ud83d\udd27 Troubleshooting\r\n\r\n### Common Issues\r\n\r\n#### \u274c Upload Fails with 400 Error\r\n**Cause**: Package version already exists on PyPI\r\n**Solution**: Bump the version\r\n```bash\r\nkhx-publish-pypi bump patch\r\n```\r\n\r\n#### \u274c Authentication Failed (403)\r\n**Cause**: Invalid or expired API token\r\n**Solution**: Reconfigure tokens\r\n```bash\r\nkhx-publish-pypi setup-tokens\r\n```\r\n\r\n#### \u274c Build Fails\r\n**Cause**: Missing build dependencies or invalid `pyproject.toml`\r\n**Solution**: Install build tools and validate configuration\r\n```bash\r\npip install build twine\r\npython -m build --help\r\n```\r\n\r\n#### \u274c Token Storage Issues\r\n**Cause**: Keyring not available or corrupted\r\n**Solution**: Use environment variables or reinstall keyring\r\n```bash\r\npip uninstall keyring\r\npip install keyring\r\n```\r\n\r\n### Debug Mode\r\nEnable verbose output for troubleshooting:\r\n```bash\r\nkhx-publish-pypi run --verbose\r\n```\r\n\r\n## \ud83e\udd1d Contributing\r\n\r\nWe welcome contributions! Here's how to get started:\r\n\r\n1. **Fork the repository**\r\n2. **Create a feature branch**\r\n   ```bash\r\n   git checkout -b feature/amazing-feature\r\n   ```\r\n3. **Make your changes**\r\n4. **Run tests**\r\n   ```bash\r\n   python -m pytest\r\n   ```\r\n5. **Submit a pull request**\r\n\r\n### Development Setup\r\n```bash\r\ngit clone https://github.com/Khader-X/khx-publish-pypi.git\r\ncd khx-publish-pypi\r\npip install -e \".[dev]\"\r\n```\r\n\r\n### Code Style\r\n- Follow PEP 8\r\n- Use type hints\r\n- Write docstrings for all functions\r\n- Add tests for new features\r\n\r\n## \ud83d\udcca CI/CD Integration\r\n\r\nKHX-Publish-PyPI works great with CI/CD pipelines:\r\n\r\n```yaml\r\n# GitHub Actions example\r\n- name: Publish to PyPI\r\n  run: |\r\n    khx-publish-pypi setup-tokens --test-token ${{ secrets.TEST_PYPI_TOKEN }} --prod-token ${{ secrets.PYPI_TOKEN }}\r\n    khx-publish-pypi publish-prod\r\n```\r\n\r\n## \ud83d\udcc4 License\r\n\r\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\r\n\r\n## \ud83d\ude4f Acknowledgments\r\n\r\n- Built with [Click](https://click.palletsprojects.com/) for CLI magic\r\n- Beautiful output powered by [Rich](https://rich.readthedocs.io/)\r\n- Secure token storage via [Keyring](https://github.com/jaraco/keyring)\r\n- Package building with [Build](https://github.com/pypa/build)\r\n- Uploads handled by [Twine](https://github.com/pypa/twine)\r\n\r\n## \ud83d\udcde Support\r\n\r\n- \ud83d\udce7 **Email**: abueltayef.khader@gmail.com\r\n- \ud83d\udc1b **Issues**: [GitHub Issues](https://github.com/Khader-X/khx-publish-pypi/issues)\r\n- \ud83d\udcd6 **Documentation**: [GitHub Wiki](https://github.com/Khader-X/khx-publish-pypi/wiki)\r\n- \ud83d\udcac **Discussions**: [GitHub Discussions](https://github.com/Khader-X/khx-publish-pypi/discussions)\r\n\r\n---\r\n\r\n<p align=\"center\">\r\n  Made with \u2764\ufe0f by <a href=\"https://github.com/Khader20\">ABUELTAYEF Khader</a>\r\n</p>\r\n\r\n<p align=\"center\">\r\n  <a href=\"https://github.com/Khader-X/khx-publish-pypi\">\u2b50 Star this repo</a> \u2022\r\n  <a href=\"https://pypi.org/project/khx_publish_pypi/\">\ud83d\udce6 View on PyPI</a> \u2022\r\n  <a href=\"https://khaderabueltayef.blogspot.com/\">\ud83d\udcdd Blog</a>\r\n</p>\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A friendly CLI tool to check and publish Python packages to TestPyPI/PyPI",
    "version": "0.1.11",
    "project_urls": {
        "Author": "https://github.com/Khader20",
        "Blog": "https://khaderabueltayef.blogspot.com/",
        "Bug Tracker": "https://github.com/Khader-X/khx-publish-pypi/issues",
        "Gravatar": "https://gravatar.com/voiddevotedlyf473f5471f",
        "Homepage": "https://github.com/Khader-X/khx-publish-pypi",
        "Organization": "https://github.com/Khader-X",
        "PyPI": "https://pypi.org/user/Khader20/",
        "Repository": "https://github.com/Khader-X/khx-publish-pypi"
    },
    "split_keywords": [
        "publish",
        " cli",
        " pypi",
        " packaging",
        " release",
        " khx"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "18892a0a604fb5d3c434a73dcf281d246813c3d67b344776adb5b708636c65e4",
                "md5": "85cf4cc4c303731853816efcdea5e733",
                "sha256": "6eca69a7d16b3e2b44b281bf95d14e9171bcc7c972776bccc951fb6105647f07"
            },
            "downloads": -1,
            "filename": "khx_publish_pypi-0.1.11-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "85cf4cc4c303731853816efcdea5e733",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 24152,
            "upload_time": "2025-09-05T23:22:01",
            "upload_time_iso_8601": "2025-09-05T23:22:01.694167Z",
            "url": "https://files.pythonhosted.org/packages/18/89/2a0a604fb5d3c434a73dcf281d246813c3d67b344776adb5b708636c65e4/khx_publish_pypi-0.1.11-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "419eb6e7e9010ab24297c209cacafa4a6a55f8db4a112927300557d39ea983b5",
                "md5": "bfd96bc86624e433da53784ca7345f0b",
                "sha256": "0a62338ba85e0b697cef6d09aef563d441cbfaef3bc563dec21ff08c0880158c"
            },
            "downloads": -1,
            "filename": "khx_publish_pypi-0.1.11.tar.gz",
            "has_sig": false,
            "md5_digest": "bfd96bc86624e433da53784ca7345f0b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9",
            "size": 24295,
            "upload_time": "2025-09-05T23:22:02",
            "upload_time_iso_8601": "2025-09-05T23:22:02.886136Z",
            "url": "https://files.pythonhosted.org/packages/41/9e/b6e7e9010ab24297c209cacafa4a6a55f8db4a112927300557d39ea983b5/khx_publish_pypi-0.1.11.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-05 23:22:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Khader-X",
    "github_project": "khx-publish-pypi",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "khx-publish-pypi"
}
        
Elapsed time: 0.63202s