Skip to main content

PyperCard - A Pythonic HyperCard for Beginner Programmers

Project description

PyperCard - A Pythonic HyperCard for Beginner Programmers

View this repository via GitHub pages.

This project's documentation can be found here.

This project started in 2019 as a re-implementation of Adafruit's CircuitPython PYOA module, but for non-CircuitPython computing environments. It was originally written using the Kivy framework for cross-platform development. After successfully testing PyperCard for teaching and learning purposes with the wonderful young folk at the London Young Coders' Meetup, development stalled because of the COVID pandemic.

However, PyperCard is back in active development with some significant changes:

  • PyScript replaces Kivy as the underlying cross-platform framework for generating and running the user interface.
  • Nicholas, the original developer and maintainer of PyperCard, has been hired by Anaconda Inc to work on PyScript, and so his work on this project is sponsored by his employer (hence the copyright changes).
  • Ownership of the repository has been transferred to the pyscript organisation on GitHub (the old repository will automatically redirect to the new one).
  • Since this is a complete rewrite, the license has been changed from MIT to Apache2.

All the assets relating to the old version of the project can still be found in the old branch in this repository.

Developer setup

Git clone the repository:

git clone https://github.com/ntoll/pypercard.git

(Recommended) Upgrade local pip:

pip install --upgrade pip

Make a virtualenv, then install the requirements:

pip install -r requirements.txt

Most useful developer related tasks are automated by a Makefile:

$ make
There's no default Makefile target right now. Try:

make clean - reset the project and remove auto-generated assets.
make tidy - tidy up the code with the 'black' formatter.
make lint - check the code for obvious errors with flake8.
make lint-all - check all code for obvious errors with flake8.
make serve - serve the project at: http://0.0.0.0:8000/
make test - while serving the app, run the test suite in browser.
make docs - use Sphinx to create project documentation.
make dist - build the module as a package.
make publish-test - upload the package to the PyPI test instance.
make publish-live - upload the package to the PyPI LIVE instance.

To run the test suite:

$ make serve

Then visit http://localhost:8000/ and click the "Run the test suite" button, or, in another console with the code still serving, make test.

The tests should open in your browser, and pass. ;-)

Please use a width of 79 characters for source code files.

Example applications

Several example applications, demonstrating various different aspects of PyperCard can be found in the examples subdirectory of this repository.

They are, in order of complexity (simple first):

  • hello - it displays "Hello, world!" with PyperCard.
  • hello interactive - a simple interactive application that prompts users to enter their name, and click a button for a friendly greeting.
  • temperatures - convert between celsius and fahrenheit, whilst handling errors.
  • card carousel - a demonstration of automatic advance to the next card after N seconds.
  • loosey goosey - a goose based honking-as-a-service application to demonstrate PyperCard's audio capabilities.
  • turner - use the background properties of cards to display full screen images of some of Turner's paintings, to the music of Bach.
  • calculator - a simple calculator demonstrating a recursive single card app.
  • alchemyst - an atmospheric point and click adventure game in the style of the classic Myst (built using the original HyperCard).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pypercard-0.0.1a6.tar.gz (32.3 MB view details)

Uploaded Source

Built Distribution

pypercard-0.0.1a6-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file pypercard-0.0.1a6.tar.gz.

File metadata

  • Download URL: pypercard-0.0.1a6.tar.gz
  • Upload date:
  • Size: 32.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for pypercard-0.0.1a6.tar.gz
Algorithm Hash digest
SHA256 0e3dda954fafb036d1ae49051863125e7613046cc62e9958a8038ff424751d6d
MD5 853b0387fb26987a775ebee58a0536dd
BLAKE2b-256 3e155412ea1d64db525c9ef4a493cf4636d5fbaecab172d78052e791bd44f678

See more details on using hashes here.

File details

Details for the file pypercard-0.0.1a6-py3-none-any.whl.

File metadata

  • Download URL: pypercard-0.0.1a6-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for pypercard-0.0.1a6-py3-none-any.whl
Algorithm Hash digest
SHA256 9d50f4650d4153c9a3245bcaabce42e266dd9cfed278972cb8d4ef5b2a22b438
MD5 ec239d8da4c786bd9bb14487df992f65
BLAKE2b-256 09d02d866a0d50184d7e20dfe7c8335333b7364000a238ebfb3e28c97a3b0acf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page