reveriee
Turn your idea into a published Python package. Create the project files with one command, then check everything before you upload.
Publishing your first Python package means getting a lot of small files and settings right. One wrong detail, like a version that already exists or a README full of stray symbols, only shows up after you upload, and a published version can never be changed. reverie sets up the boring parts correctly and warns you about the common mistakes first.
See it in action
Install
pip install reveriee
The package on PyPI is called reveriee, but the command you run is still reverie.
Create a new package
reverie new my-tool
reverie checks that the name is free on PyPI, asks for a one-line description and your name, and creates a ready-to-install project:
my-tool/
pyproject.toml
README.md
LICENSE
.gitignore
my_tool/
__init__.py
__main__.py
cli.py
The new project already installs and runs and prints a hello message. Open cli.py and replace the hello message with your own idea.
Check before you upload
Inside your project folder, run:
reverie check
or point it at a folder:
reverie check my-tool
It looks for the mistakes that most often hurt first-time publishers:
| It looks for | Why it matters |
|---|---|
| A version that is already on PyPI | A version can never be uploaded twice |
| Old files left in the dist folder | The upload would send them too |
| Stray backslashes, or leftover web page codes, in the README | Your PyPI page would look broken |
| Images in the README that PyPI cannot see | They would show as broken pictures |
| A missing LICENSE file | The build fails, or people will not use your package |
| A missing code folder or init.py | Your code would not be in the package |
| A command that points to code that does not exist | The command would fail after install |
| A missing main.py | python -m your_tool would not work |
| Version numbers that do not match | Easy to forget when you raise the version |
Every problem comes with a plain-language fix. Add --offline to skip the PyPI lookup.
Publish
When reverie check says no problems, you need a free PyPI account and an API token. Then:
pip install build twine
python -m build
twine check dist/*
twine upload dist/*
Delete any old dist folder before you build.
Command not recognised?
On some Windows computers the reverie command is not found right after installing, because Windows does not know where pip put it. Start it through Python instead:
python -m reverie check
If pip says "defaulting to user installation" or "not writeable" while installing, that is normal and harmless.
Good to know
- reverie does not write your program for you. It sets up the packaging, and the idea is yours.
- It does not upload anything. You do that yourself with twine, after the check.
- Package names use lowercase letters, numbers and hyphens, like
my-tool. - The name check and the version check need an internet connection.
License
MIT
Metadata
Release files for reveriee 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| reveriee-0.1.0.tar.gz | 10.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| reveriee-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 21.9 kB
Release files / reveriee-0.1.0.tar.gz
| Download URL | reveriee-0.1.0.tar.gz |
|---|---|
| Size | 10.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
740d85a823b091646d1d8f3043e01679e3090548239bf1dfd0a5c5a24124a93c
|
|
BLAKE2b-256 checksum How to use checksums |
4f155b505f771c034e9fcd74ddc716f964fdc0014ee7b9b784c0880dce9fcdb7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / reveriee-0.1.0-py3-none-any.whl
| Download URL | reveriee-0.1.0-py3-none-any.whl |
|---|---|
| Size | 11.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cfc4ce6d1712c20f8017f2b662ed21ef5ef7cc743984acc59a76f211ffaae78a
|
|
BLAKE2b-256 checksum How to use checksums |
124d58c2abb3595872909666d380e94cc080741abdb81a8df2b7a7b78661d39b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|