Skip to main content

Python environment for TM129

Project description

ou-tm129-py

Python package for installing Python packages required for TM129

Available on PyPi: pip install ou-tm129-py

Note: the tensorflowlite package needs installing separately.

This repo is exploring how we might distribute Python packages to students via a single installable package.

A Python package can be "empty" other than requiring the presence of particular packages.

We can define multiple levels of requirement using install_requires=[] for necessary packages and extras_require={} for optional packages.

Optional package collections can be installed via eg pip install .[jupyter,production], using extras_require dictionary keys for the additional package collections we want to install.

So for example, we could deliver:

  • core packages that configure a base Python environment: pip install PACKAGE;
  • core packages and packages that customise a Jupyter environment in a particular way: pip install PACKAGE[jupyter];
  • core packages and packages that customise a Jupyter environment in a particular way and provides additional packages for ALs: pip install PACKAGE[jupyter,AL];
  • core packages plus production / development packages: pip install PACKAGE[dev];
  • core packages plus packages required to customise an OU hosted environment: pip install PACKAGE[ouhosted];
  • etc.

We could also use a package to deliver payloads to the student desktop, either in terms of files or services. eg we could supply command line utilites, a simple webserver/homepage, or a data files via a Python package.

Using Package version numbers (or extras_require) we could easily manage slightly different package versions/distributions for different module presentations.

Using pip install --upgrade PACKAGE gives us a way of pushing updates to students.

Note that installing from repos is increasingly tricky to do; it's no longer supported from PyPi installed packages, so if things were only available from a (public) repo they'd have to be done manually. (We could provide a cli tool to do this, installed from the package; eg tm129_utils install-extras that runs a pip git+... set of installs.)

I'm not sure if Python package namespaces are also relevant? These let you package separate distributions but under the same namespace. Eg we could have separate packages for different modules but all under the ou or openuni or openuniversity namespace? (So we'd have things like from openuniversity import tm351 etc. and installed via pip install openuni-tm351 or pip install openuni-tm129==2020.10.1 or whatever (is there a restriction or limits on the version numbering convention? Does it have to be numeric? Inside a certain range?)

Identifying what packages can support an effective teaching and learning environment is an act of curation, and as such is somewhere where we can add value. By sharing environments that may be useful to others:

  • we support folk in their own teaching and learning, work and play;
  • we raise awareness of the OU and OU modules, getting a presence on PyPi, maybe using ou and course code identifiers in package names etc;
  • if we ship useful commmand line utilities, they can occasionly print OU advertising messages when run...
  • if we ship a a simple web server, it can include module marketing information, "are you read for..?" activities or even sample module content;
  • if we bundle files in the package, these can be retrieved on the student desktop via a simple CLI command; (can we also get desktop shortcuts onto a desktop some how?)
  • the same package could be used to easily support related OpenLearn content;

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

ou-tm129-py-0.0.9.tar.gz (5.3 kB view details)

Uploaded Source

Built Distribution

ou_tm129_py-0.0.9-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file ou-tm129-py-0.0.9.tar.gz.

File metadata

  • Download URL: ou-tm129-py-0.0.9.tar.gz
  • Upload date:
  • Size: 5.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for ou-tm129-py-0.0.9.tar.gz
Algorithm Hash digest
SHA256 9a7b9ea66043a0409a3fee8ddf9e70666e4b0f087cf60b1c6efc544d00841423
MD5 fcc9e957d366c628ef031c43a43b20b0
BLAKE2b-256 e9699d31d7e3f0539501639e65762a42c50870d1465497aa95e5026a217af174

See more details on using hashes here.

File details

Details for the file ou_tm129_py-0.0.9-py3-none-any.whl.

File metadata

  • Download URL: ou_tm129_py-0.0.9-py3-none-any.whl
  • Upload date:
  • Size: 4.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for ou_tm129_py-0.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 9c5de0672e57cc7ec858a091370bdf82bfab5018b785fe80d230133fd5c90300
MD5 f6083c8a191d951c77d05a36e329d6a8
BLAKE2b-256 4a4cb17cc881c2182ff9212303bb50a37661c511de8bdea5e54f1b9ead200f7f

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