ShipSnake
A quick and easy way to distribute your python projects!
Shipsnake will let you go from hello world to a published app in about 5 minutes! It generates a setup.py and correct directory structure for you in seconds, all with a simple config file.
In addition to this, it can build your Mac and Windows apps in the cloud using GitHub actions, so you don't need to have both a Mac and Windows computer to create apps. To use this feature, activate it with the wizard.
Please see the quickstart for an example.
Installation
Install with Pip: pip3 install shipsnake
Usage:
Note: Please use these commands in your base project directory, or they will fail.
It is suggested that you run shipsnake wizard to get started.
shipsnake wizard
This command runs a setup wizard that generates a shipsnake.toml file in your current directory.
It will also help you set up GitHub actions and creat a git repo.
shipsnake dev
This command lets you test your project on your onw system without needing to install it every time.
shipsnake [--options] build <version>
This command is where everything happens! There are several things that build does with the given version:
- First, it will build a directory structure that looks something like this.
.
├── .github
│ └── workflows
│ └── shipsnake.yml
├── bin
│ └── <compiled .sh files for your project>
├── build
│ └── <location where build data is generated>
├── dist
│ └── <compiled files ready for distribution>
├── <project name>
│ ├── # This is where your source code goes:
│ ├── __init__.py
│ ├── __main__.py
│ ├── mod1.py
│ ├── mod2.py
│ ├── data.txt
│ └── etc...
├── .gitignore
├── LICENSE
├── README.md
├── setup.py
└── shipsnake.toml
- Generate GitHub Actions workflow files
- Generate
.app,.dmg,.exe,.msifiles (depending on your configuration and system) - Generate files used for PyPi distribution.
Options:
Some valid commandline options are:
-y: No interaction, always accept changes.
--actions-only: Only generate actions file.
--mac-only: Only generate mac file.
--windows-only: Only generate windows file.
--pypi-only: Only generate pypi files.
--no-installer: Overide installer config.
These options can be combined
shipsnake release [pypi | github]
This will upload your built project to PyPi and GitHub. (or just one of them, depending on the command options)
Quickstart
Let's say that we have a file helloworld.py:
name = input("What's your name? ")
print(f"Hello {name}!")
That's all fine and good, but how will we distribute our awesome app so that all ou relatives and friends can run it?
Whenever you have this problem, there are normally two solutions:
-
Get everyone to install Python, and then distribute copies of your source code.
-
Go through the trouble of packaging and distributing your project as a native application.
Both of these are less than ideal, but with shipsnake there is a third option:
-
Use shipsnake to distribute your project to PyPi, and also generate native applications and installers in about 5 minutes!
-
To do this we will need to install
shipsnake:pip3 install shipsnake -
Next, we will have to generate a
shipsnake.tomlfile by runningshipsnake wizard. -
After we have done this, just type
shipsnake build 0.0.1and wait for the build process to finish. -
Next, we have to get a PyPi account. Go to https://pypi.org/account/register/ to register.
-
After that, just type in
shipsnake releaseto finish! -
Now, you can install your app by typing
pip3 install <your-app-name>and run it with<your-app-name>if you have Python, or by launching the packaged app in the./dist/pyinstaller/folder.
-
Contributors
- Cole Wilson
Contact
Metadata
Release files for shipsnake 0.0.57
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| shipsnake-0.0.57.tar.gz | 13.6 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shipsnake-0.0.57-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.7 kB
Release files / shipsnake-0.0.57.tar.gz
| Download URL | shipsnake-0.0.57.tar.gz |
|---|---|
| Size | 13.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
590b9984bdb756ec102b580bcfb92877bdc176a77bf0d6feb5298d9d8d271612
|
|
BLAKE2b-256 checksum How to use checksums |
703bac8306d7abe802bac0153961d30a0b8bfc04aa61268ed4b83ac075442fd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.5
|
Release files / shipsnake-0.0.57-py3-none-any.whl
| Download URL | shipsnake-0.0.57-py3-none-any.whl |
|---|---|
| Size | 15.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a6e53ec11e5e906268508cbe4ea9ba7db8470d46f07c0562964e1ea250b99e2b
|
|
BLAKE2b-256 checksum How to use checksums |
5b2f2c0ba832cb6d74a94d042f74730c6dfb9fdaf9b0f0b5000264d1b4abf0f5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.8.0 tqdm/4.48.2 CPython/3.8.5
|
Security for shipsnake 0.0.57
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.