Metadata-Version: 2.4
Name: abstract_pypit
Version: 0.0.2
Summary: One-command PyPI publisher + GitHub pusher. Version-bumps, builds, uploads to PyPI, commits and pushes to GitHub, and syncs the local install — all in one call.
Home-page: https://github.com/AbstractEndeavors/abstract_pypit
Author: putkoff
Author-email: putkoff <partners@abstractendeavors.com>
License: MIT
Project-URL: Homepage, https://github.com/AbstractEndeavors/abstract_pypit
Keywords: pypi,publish,release,github,automation
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Build Tools
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: requests
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# abstract_pypit

One-command PyPI publisher + GitHub pusher.

Finds the next free version above whatever is on PyPI, bumps `setup.py` and
`pyproject.toml`, builds sdist + wheel, uploads to PyPI via twine, commits and
pushes to GitHub, then syncs the local install — all in one call.

Zero dependencies outside the stdlib except `requests`.

## Install

```sh
pip install abstract_pypit
```

## Usage

```python
# from any package directory that has setup.py + pyproject.toml:
from pypit import runit
runit()
```

```sh
# or from the command line:
abstract-pypit
```

## Credentials

**PyPI:** twine reads `~/.pypirc` or `TWINE_USERNAME` / `TWINE_PASSWORD` env vars.

**GitHub:** create `pypit/src/envs/.env` on the machine running pypit:

```
GITHUB_OWNER_1=your-username
GITPASS_1=<your-github-pat>
GITHUB_OWNER_2=your-org
GITPASS_2=<org-github-pat>
```

SSH key at `~/.ssh/github/githubssh_nopass` must be registered with GitHub.

## Per-package config

Add to the package's own `pyproject.toml`:

```toml
[tool.pypit]
github_owner = "your-org-or-username"   # which org/user owns the repo
github_push  = true                      # set false to skip GitHub entirely
```

## License

MIT
