{ "info": { "author": "Grant Jenks", "author_email": "contact@grantjenks.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython" ], "description": "App Store: User-Oriented Front-End for PIP\n==========================================\n\n`App Store`_ is an Apache2 licensed, user-oriented front-end for ``pip``,\nwritten in pure-Python, and compatible with Windows, Mac OS X, and Linux.\n\n`App Store`_ is currently in the planning stages. But your thoughts and help\nare welcome.\n\nBackground\n----------\n\nI feel I see a lot of folks complain about Python packaging and distribution\nonline. Recently, `PyOxidizer`_ was published as yet another solution in this\nspace. Personally, I have always found either `PyInstaller`_ or Cython's\n`embed`_ option to be sufficient. But I really think these tools are solving\nthe wrong problem.\n\nMost of the tooling is meant to produce a binary executable. But that's kind of\nthe easy part. The hard part is updates, crash reports, and uninstalls. It's\nmanaging the whole lifecycle of an application.\n\nWhen I worked at Microsoft, I used a `ClickOnce`_ application and my experience\nwas ideal. Installation and updates just worked seemlessly. I clicked the\ninstaller once and everything just worked. It was like installing an app on my\nphone and running it. I don't know how any of that works, but it just works.\n\nRecently, I developed a Python package with a few requirements and a few static\nfiles. It was just a bit more than a single script could manage. My go-to for\ninternal business needs in that case is a locally hosted PyPI or simple wheel\nfile. I wanted that to work here too but I didn't want to teach ``pip`` and\n``venv`` to run my script. What I wanted was a pip-porcelain.\n\nI think a graphical PIP could go a bit further and be an app store for Python\npackages. I love the idea of running Python scripts or pyc files easily on the\nclient machine. I don't even care if it's just a command-line application. Give\nme something that handles installs, updates, uninstalls, and crash reports and\nI'll be happy. And allow me to continue using ``__file__`` and writing\ncross-platform Python scripts that don't require separate compilation.\n\nI imagine something like a webserver running on the client's machine with an\nicon in the taskbar. Let's use \"A\" as our icon for now. Click the icon and a\nwebbrowser opens pointing to localhost with a gui front-end for PIP. I think\n`rumps`_ would get us there on Macs. Win32 must have something similar and\nUbuntu or whatnot something too. For deployment, use `fbs`_.\n\n`App Store`_ is currently in the planning stages. But your thoughts and help\nare welcome.\n\n.. _`PyOxidizer`: https://github.com/indygreg/PyOxidizer\n.. _`PyInstaller`: https://www.pyinstaller.org/\n.. _`embed`: https://github.com/cython/cython/wiki/EmbeddingCython\n.. _`ClickOnce`: https://docs.microsoft.com/en-us/visualstudio/deployment/clickonce-security-and-deployment\n.. _`rumps`: https://github.com/jaredks/rumps\n.. _`fbs`: https://build-system.fman.io/\n\nFeatures\n--------\n\n- Pure-Python\n- *TODO* Fully Documented\n- *TODO* 100% Test Coverage\n- *TODO* One-Click Executables for Windows, Mac OS X, and Linux\n- *TODO* Graphical User Interface for ``pip``\n- *TODO* Package Installs, Updates, Uninstalls\n- *TODO* ``venv``'s for Installed Packages\n- *TODO* Crash Reports\n- *TODO* Startup Utilities: Windows Start Menu, Mac OS X Applications Folder\n- Developed on Python 3.7\n- Tested on CPython 2.7, 3.5, 3.6, and 3.7\n- Tested on Linux, Mac OS X, and Windows\n- Tested using Travis CI and AppVeyor CI\n\n.. image:: https://api.travis-ci.org/grantjenks/python-appstore.svg?branch=master\n :target: http://www.grantjenks.com/docs/appstore/\n\n.. image:: https://ci.appveyor.com/api/projects/status/github/grantjenks/python-appstore?branch=master&svg=true\n :target: http://www.grantjenks.com/docs/appstore/\n\nQuickstart\n----------\n\nInstalling `App Store`_ is simple with `pip `_::\n\n $ pip install appstore\n\nYou can access documentation in the interpreter with Python's built-in help\nfunction::\n\n >>> import appstore\n >>> help(appstore)\n\nUser Guide\n----------\n\nFor those wanting more details, this part of the documentation describes\ntutorial, benchmarks, API, and development.\n\n* `App Store Tutorial`_\n* `App Store API Reference`_\n\n.. _`App Store Tutorial`: http://www.grantjenks.com/docs/appstore/tutorial.html\n.. _`App Store API Reference`: http://www.grantjenks.com/docs/appstore/api.html\n\nReference\n---------\n\n* `App Store Documentation`_\n* `App Store at PyPI`_\n* `App Store at GitHub`_\n* `App Store Issue Tracker`_\n\n.. _`App Store Documentation`: http://www.grantjenks.com/docs/appstore/\n.. _`App Store at PyPI`: https://pypi.python.org/pypi/appstore/\n.. _`App Store at GitHub`: https://github.com/grantjenks/python-appstore/\n.. _`App Store Issue Tracker`: https://github.com/grantjenks/python-appstore/issues/\n\nLicense\n-------\n\nCopyright 2019 Grant Jenks\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n\n.. _`App Store`: http://www.grantjenks.com/docs/appstore/\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.grantjenks.com/docs/appstore/", "keywords": "", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "appstore", "package_url": "https://pypi.org/project/appstore/", "platform": "", "project_url": "https://pypi.org/project/appstore/", "project_urls": { "Homepage": "http://www.grantjenks.com/docs/appstore/" }, "release_url": "https://pypi.org/project/appstore/0.0.4/", "requires_dist": null, "requires_python": "", "summary": "App Store -- user-oriented front-end for pip.", "version": "0.0.4" }, "last_serial": 5493988, "releases": { "0.0.2": [ { "comment_text": "", "digests": { "md5": "93ede08f0b8ce26a40dfc10782279b30", "sha256": "c07f5bf8f63995cef1a00b8c1c6788893e5ec6c2e067dd97abb0313a73030737" }, "downloads": -1, "filename": "appstore-0.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "93ede08f0b8ce26a40dfc10782279b30", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3103, "upload_time": "2019-07-05T06:26:30", "url": "https://files.pythonhosted.org/packages/82/a5/caa3422735e7064f48ee5a4baa56cd7edaae6d0ba597199959f3133ce9d1/appstore-0.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76221c65ee2b9e6303ff5b133365ea5a", "sha256": "0cacd420bce272352cc04815b1937f8606725f28af4fe0e7e96148d7db423eb9" }, "downloads": -1, "filename": "appstore-0.0.2.tar.gz", "has_sig": false, "md5_digest": "76221c65ee2b9e6303ff5b133365ea5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2748, "upload_time": "2019-07-05T06:26:32", "url": "https://files.pythonhosted.org/packages/97/60/809d2ca119a07cc24c4d28daeca8e96b4569f1d7ba2e766d1eebce6d5fe8/appstore-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a2709c9b72d2d00b2071ee62ee0db2e0", "sha256": "2a0d9ffad9ab43658de37111409b8b44384e6cc8c7404e628dffe89493ae26b2" }, "downloads": -1, "filename": "appstore-0.0.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a2709c9b72d2d00b2071ee62ee0db2e0", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3209, "upload_time": "2019-07-05T06:43:58", "url": "https://files.pythonhosted.org/packages/8c/fa/4b7d08fcfea4394d3884d8023623e05b96717d4c7f716303f6de532e0a13/appstore-0.0.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5711517f3ea115512c062e961f2307db", "sha256": "e56c88b3517a00b911718a56a43b10ab411f384f41e2efa2c1c31349e419b484" }, "downloads": -1, "filename": "appstore-0.0.3.tar.gz", "has_sig": false, "md5_digest": "5711517f3ea115512c062e961f2307db", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2871, "upload_time": "2019-07-05T06:44:00", "url": "https://files.pythonhosted.org/packages/2b/b5/2254840e3fe5cba338490d2b52726b996ffa74115463ad9c71a27aaf7724/appstore-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "c37986fec01dc9ec2bb40a627a8d0e5e", "sha256": "8f8f52f594ab105dfac200c0f7a60c4d7da3fa228e356a4a75eaf6329782d2cd" }, "downloads": -1, "filename": "appstore-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c37986fec01dc9ec2bb40a627a8d0e5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4375, "upload_time": "2019-07-06T05:01:13", "url": "https://files.pythonhosted.org/packages/1e/d9/cdc3a77b74843402f89bc4b1e62f1315853880a3910766398f12fd1abc45/appstore-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fd0aa39b9224e6826f7e84c3f1e77f5", "sha256": "41047cf3e3325dcb0e610660f888dc0b64f7893646b29e2eda52a1e9d2610314" }, "downloads": -1, "filename": "appstore-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7fd0aa39b9224e6826f7e84c3f1e77f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4277, "upload_time": "2019-07-06T05:01:15", "url": "https://files.pythonhosted.org/packages/9c/5b/8bd00889eae58ddb8e293b9293c58cf19ac1b65f373bedf05dcab87841c3/appstore-0.0.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c37986fec01dc9ec2bb40a627a8d0e5e", "sha256": "8f8f52f594ab105dfac200c0f7a60c4d7da3fa228e356a4a75eaf6329782d2cd" }, "downloads": -1, "filename": "appstore-0.0.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c37986fec01dc9ec2bb40a627a8d0e5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 4375, "upload_time": "2019-07-06T05:01:13", "url": "https://files.pythonhosted.org/packages/1e/d9/cdc3a77b74843402f89bc4b1e62f1315853880a3910766398f12fd1abc45/appstore-0.0.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7fd0aa39b9224e6826f7e84c3f1e77f5", "sha256": "41047cf3e3325dcb0e610660f888dc0b64f7893646b29e2eda52a1e9d2610314" }, "downloads": -1, "filename": "appstore-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7fd0aa39b9224e6826f7e84c3f1e77f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4277, "upload_time": "2019-07-06T05:01:15", "url": "https://files.pythonhosted.org/packages/9c/5b/8bd00889eae58ddb8e293b9293c58cf19ac1b65f373bedf05dcab87841c3/appstore-0.0.4.tar.gz" } ] }