Skip to main content

App Store: User-Oriented Front-End for PIP

App Store is an Apache2 licensed, user-oriented front-end for pip, written in pure-Python, and compatible with Windows, Mac OS X, and Linux.

App Store is currently in the planning stages. But your thoughts and help are welcome.

Background

I feel I see a lot of folks complain about Python packaging and distribution online. Recently, PyOxidizer was published as yet another solution in this space. Personally, I have always found either PyInstaller or Cython’s embed option to be sufficient. But I really think these tools are solving the wrong problem.

Most of the tooling is meant to produce a binary executable. But that’s kind of the easy part. The hard part is updates, crash reports, and uninstalls. It’s managing the whole lifecycle of an application.

When I worked at Microsoft, I used a ClickOnce application and my experience was ideal. Installation and updates just worked seemlessly. I clicked the installer once and everything just worked. It was like installing an app on my phone and running it. I don’t know how any of that works, but it just works.

Recently, I developed a Python package with a few requirements and a few static files. It was just a bit more than a single script could manage. My go-to for internal business needs in that case is a locally hosted PyPI or simple wheel file. I wanted that to work here too but I didn’t want to teach pip and venv to run my script. What I wanted was a pip-porcelain.

I think a graphical PIP could go a bit further and be an app store for Python packages. I love the idea of running Python scripts or pyc files easily on the client machine. I don’t even care if it’s just a command-line application. Give me something that handles installs, updates, uninstalls, and crash reports and I’ll be happy. And allow me to continue using __file__ and writing cross-platform Python scripts that don’t require separate compilation.

I imagine something like a webserver running on the client’s machine with an icon in the taskbar. Let’s use “A” as our icon for now. Click the icon and a webbrowser opens pointing to localhost with a gui front-end for PIP. I think rumps would get us there on Macs. Win32 must have something similar and Ubuntu or whatnot something too. For deployment, use fbs.

App Store is currently in the planning stages. But your thoughts and help are welcome.

Features

  • Pure-Python

  • TODO Fully Documented

  • TODO 100% Test Coverage

  • TODO One-Click Executables for Windows, Mac OS X, and Linux

  • TODO Graphical User Interface for pip

  • TODO Package Installs, Updates, Uninstalls

  • TODO venv’s for Installed Packages

  • TODO Crash Reports

  • TODO Startup Utilities: Windows Start Menu, Mac OS X Applications Folder

  • Developed on Python 3.7

  • Tested on CPython 2.7, 3.5, 3.6, and 3.7

  • Tested on Linux, Mac OS X, and Windows

  • Tested using Travis CI and AppVeyor CI

https://api.travis-ci.org/grantjenks/python-appstore.svg?branch=master https://ci.appveyor.com/api/projects/status/github/grantjenks/python-appstore?branch=master&svg=true

Quickstart

Installing App Store is simple with pip:

$ pip install appstore

You can access documentation in the interpreter with Python’s built-in help function:

>>> import appstore
>>> help(appstore)

User Guide

For those wanting more details, this part of the documentation describes tutorial, benchmarks, API, and development.

Reference

License

Copyright 2019 Grant Jenks

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Metadata

Release files for appstore 0.0.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for appstore 0.0.4
File Size Uploaded Provenance
appstore-0.0.4.tar.gz 4.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for appstore 0.0.4
File Interpreter ABI Platform
appstore-0.0.4-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 8.7 kB

Release files / appstore-0.0.4.tar.gz

Download URL appstore-0.0.4.tar.gz
Size 4.3 kB
Tags Source
SHA-256 checksum
How to use checksums
41047cf3e3325dcb0e610660f888dc0b64f7893646b29e2eda52a1e9d2610314
BLAKE2b-256 checksum
How to use checksums
9c5b8bd00889eae58ddb8e293b9293c58cf19ac1b65f373bedf05dcab87841c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Release files / appstore-0.0.4-py2.py3-none-any.whl

Download URL appstore-0.0.4-py2.py3-none-any.whl
Size 4.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
8f8f52f594ab105dfac200c0f7a60c4d7da3fa228e356a4a75eaf6329782d2cd
BLAKE2b-256 checksum
How to use checksums
1ed9cdc3a77b74843402f89bc4b1e62f1315853880a3910766398f12fd1abc45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.3

Security for appstore 0.0.4

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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page