Infrastructure tools to support an effective radiation oncology learning health system

The Python programming language is actively used by many people, both in industry and academia, for a wide variety of purposes.

Integrated Development Environments (IDEs) for Python

Unit testing frameworks

Python package managers and Python distributions

  • Anaconda, Python distribution with conda package manager
  • Enthought, Enthought Canopy Python with Python package manager
  • pip, package management system used to install and manage software written in Python

Applications

Web applications

Video games

Web frameworks

  • BlueBream, a rewrite by the Zope developers of the Zope 2 web application server
  • CherryPy, an object-oriented web application server and framework
  • CubicWeb, a web framework that targets large-scale semantic web and linked open data applications and international corporations
  • Django, an MVT (model, view, template) web framework
  • Flask, a modern, lightweight, well-documented microframework based on Werkzeug and Jinja 2
  • Google App Engine, a platform for developing and hosting web applications in Google-managed data centers, including Python.
  • Grok, a web framework based on Zope Toolkit technology
  • Jam.py (web framework), a "full stack" WSGI rapid application development framework
  • Nevow, a web application framework originally developed by the company Divmod
  • Pylons, a lightweight web framework emphasizing flexibility and rapid development
  • Pyramid, a minimalistic web framework inspired by Zope, Pylons and Django
  • Python Paste, a set of utilities for web development that has been described as "a framework for web frameworks"
  • Quixote, a framework for developing Web applications in Python
  • RapidSMS, a web framework which extends the logic and capabilities of Django to communicate with SMS messages
  • Spyce, a technology to embed Python code into webpages
  • TACTIC, a web-based smart process application and digital asset management system
  • Tornado, a lightweight non-blocking server and framework
  • TurboGears, a web framework combining SQLObject/SQLAlchemy, Kid/Genshi, and CherryPy/Pylons
  • web2py, a full-stack enterprise web application framework, following the MVC design
  • Zope 2, an application server, commonly used to build content management systems

Graphics frameworks

UI frameworks

  • appJar, cross-platform, open source GUI library for Python. Provides easy wrapper functions around most of Tkinter with extra functionality built in.
  • Kivy, open source Python library for developing multitouch application software with a natural user interface (NUI).
  • PyGTK, a popular cross-platform GUI library based on GTK+; furthermore, other GNOME libraries also have bindings for Python
  • PyQt, another cross-platform GUI library based on Qt; as above, KDE libraries also have bindings
  • PySide, an alternative to the PyQt library, released under the BSD-style licence
  • Tkinter is Python's de facto GUI it is shipped in most versions of Python and is integrated in the IDLE. It is based Tcl command tool.
  • wxPython, a port of wxWidgets and a cross-platform GUI library for Python

Scientific packages

Mathematical libraries

  • CuPy, a library for GPU-accelerated computing
  • Dask, a library for parallel computing
  • Mathics, an open-source implementation of the Mathematica programming language
  • Matplotlib, providing MATLAB-like plotting and mathematical functions (using NumPy).
  • NumPy, a language extension that adds support for large and fast, multi-dimensional arrays and matrices
  • Plotly is a scientific plotting library for creating browser-based graphs.
  • SageMath is a large mathematical software application which integrates the work of nearly 100 free software projects.
  • SymPy, a symbolic mathematical calculations package
  • PyMC, python module containing Bayesian statistical models and fitting algorithms, including Markov chain Monte Carlo.

Numerical libraries

  • NumPy, a BSD-licensed library that adds support for the manipulation of large, multi-dimensional arrays and matrices; it also includes a large collection of high-level mathematical functions. NumPy serves as the backbone for a number of other numerical libraries, notably SciPy. De facto standard for matrix/tensor operations in Python.
  • Pandas, a library for data manipulation and analysis.
  • SageMath is a large mathematical software application which integrates the work of nearly 100 free software projects and supports linear algebra, combinatorics, numerical mathematics, calculus, and more.[12]
  • SciPy,[13][14][15] a large BSD-licensed library of scientific tools. De facto standard for scientific computations in Python.
  • ScientificPython, a library with a different set of scientific tools
  • SymPy, a library based on New BSD license for symbolic computation. Features of Sympy range from basic symbolic arithmetic to calculus, algebra, discrete mathematics and quantum physics.

Additional development packages

  • Beautiful Soup, a package for parsing HTML and XML documents
  • Cheetah, a Python-powered template engine and code-generation tool
  • Construct, a python library for the declarative construction and deconstruction of data structures
  • Genshi, a template engine for XML-based vocabularies
  • IPython, a development shell both written in and designed for Python
  • Jinja, a Python-powered template engine, inspired by Django's template engine
  • Kid, simple template engine for XML-based vocabularies
  • Meson build system, a software tool for automating the building (compiling) of software
  • mod_python, an Apache module allowing direct integration of Python scripts with the Apache web server
  • PyObjC, a Python to Objective-C bridge that allows writing OS X software in Python
  • Robot Framework, a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD)
  • Setuptools, a package development process library designed to facilitate packaging Python projects by enhancing the Python distutils (distribution utilities) standard library.
  • Sphinx, which converts reStructuredText files into HTML websites and other formats including PDF, EPub and Man pages
  • SQLAlchemy, database backend and ORM
  • SQLObject, an ORM for providing an object interface to a database
  • Storm, an ORM from Canonical
  • Twisted, a networking framework for Python
  • VPython, the Python programming language plus a 3D graphics module called Visual

Embedded as a scripting language

Python is, or can be used as the scripting language in these notable software products:

Commercial uses

  • CCP Games uses Stackless Python in both its server-side and client-side applications for its MMO Eve Online.[20]
  • Instagram's backend is written in Python.[21]
  • NASA is using Python to implement a CAD/CAE/PDM repository and model management, integration, and transformation system which will be the core infrastructure for its next-generation collaborative engineering environment.[22][non-primary source needed] It is also the development language for OpenMDAO, a framework developed by NASA for solving multidisciplinary design optimization problems.
  • "Python has been an important part of Google since the beginning, and remains so as the system grows and evolves. Today dozens of Google engineers use Python."[23]
  • Reddit was originally written in Common Lisp, but was rewritten in Python in 2005[24]
  • Yahoo! Groups uses Python "to maintain its discussion groups"[citation needed]
  • YouTube uses Python "to produce maintainable features in record times, with a minimum of developers"[25]
  • Enthought uses Python as the main language for many custom applications in Geophysics, Financial applications, Astrophysics, simulations for consumer product companies, ...
  • Rosneft uses Python as one of the main languages for its geoengineering applications development. RN-GRID, a hydraulic fracturing simulation software, has a graphical user interface written entirely in Python.[26][failed verification]

Python implementations

Implementations of Python include:[27]

  • CLPython – Implementation, written in Common Lisp
  • CPython – The reference implementation, written in C11.[28] Some notable distributions include:
  • Cython – programming language to simplify writing C and C++ extension modules for the CPython Python runtime.
  • IronPython – Python for CLI platforms (including .NET and Mono)
  • Jython – Python for Java platforms
  • MicroPython – Python 3 implementation for microcontroller platforms
  • Nuitka – a source-to-source compiler which compiles Python code to C/C++ executables, or source code.
  • NumbaNumPy aware LLVM-based JIT compiler
  • Pyjs – a framework (based on Google Web Toolkit (GWT) concept) for developing client-side Python-based web applications, including a stand-alone Python-to-JavaScript compiler, an Ajax framework and widget toolkit
  • PyPy – Python (originally) coded in Python, used with RPython, a restricted subset of Python that is amenable to static analysis and thus a JIT.
  • Shed Skin – a source-to-source compiler from Python to C++
  • Stackless Python – CPython with coroutines

Historic Python implementations include:

  • Parrot – Virtual machine being developed mainly as the runtime for Raku, and intended to support dynamic languages like Python, Ruby, Tcl, etc.
  • Psyco – specialized JIT compiler project that has mostly been eclipsed by PyPy
  • Pyrex – Python-like Python module development project that has mostly been eclipsed by Cython
  • Python for S60 – CPython port to the S60 platform
  • Unladen Swallow – performance-orientated implementation based on CPython which natively executed its bytecode via an LLVM-based JIT compiler. Funded by Google, stopped circa 2011

References

  1. ^ "Python Programming in Emacs". September 2017.
  2. ^ "Use Vim as a Python IDE | SpaceVim".
  3. ^ "OrganizationsUsingPython - Python Wiki".
  4. ^ "OrganizationsUsingPython - Python Wiki".
  5. ^ Mine, Mark R.; Shochet, Joe; Hughston, Roger (2003). "Building a massively multiplayer game for the million". Computers in Entertainment. 1: 1–20. doi:10.1145/950566.950589. S2CID 13977231.
  6. ^ "Toontown 2013 Source". GitHub. 17 November 2021.
  7. ^ "SpongeBob SquarePants: Revenge of the Flying Dutchman .DGC - ZenHAX". zenhax.com. Retrieved 2022-09-13.
  8. ^ "TXT · Jellonator/chum-world Wiki". GitHub. Retrieved 2022-09-13.
  9. ^ "The Sims 4 Creator's Camp: Modding Masterclass". Sims VIP. 4 August 2014. Retrieved 17 March 2018.
  10. ^ "Vampire: The Masquerade – Bloodlines – Mod Developer Guide – PC – By rezzzman – GameFAQs". gamefaqs.gamespot.com. Retrieved 2020-09-11.
  11. ^ "This is GameDev, baby! Interview with developers of World of Tanks – HackMag". hackmag.com.
  12. ^ Zimmermann, P., Casamayou, A., Cohen, N., Connan, G., Dumont, T., Fousse, L., ... & Bray, E. (2018). Computational Mathematics with SageMath. SIAM.
  13. ^ Jones, E., Oliphant, T., & Peterson, P. (2001). SciPy: Open source scientific tools for Python.
  14. ^ Bressert, E. (2012). SciPy and NumPy: an overview for developers. " O'Reilly Media, Inc.".
  15. ^ Blanco-Silva, F. J. (2013). Learning SciPy for numerical and scientific computing. Packt Publishing Ltd.
  16. ^ Kosak, Dave 'Fargo' (27 October 2005). "GameSpy: Civilization IV". GameSpy. pp. 1–3. 662218. Archived from the original on 6 December 2013. Retrieved 24 October 2009.
  17. ^ O'Hanlon, Martin (2020-09-04), martinohanlon/mcpi, retrieved 2020-09-11
  18. ^ "What is Rhino.Python?". developer.rhino3d.com.
  19. ^ "What is Rhino.Python?". developer.rhino3d.com. Retrieved 2021-04-15.
  20. ^ "EVE Online | Frequently Asked Questions". EVE Online. 2008-07-05. Archived from the original on 2009-02-22.
  21. ^ McCracken, Harry (June 23, 2015). "Do The Simple Thing First: The Engineering Behind Instagram". Fast Company.
  22. ^ "NASA Open Source Software". code.nasa.gov. Retrieved 2020-10-26.
  23. ^ Quotes about Python Peter Norvig, director of search quality at Google, Inc.
  24. ^ "on lisp". Upvoted. Retrieved 2018-12-05.
  25. ^ Quotes about Python Cuong Do, Software Architect, YouTube.com.
  26. ^ "Rosneft Gives More Than 120 Licenses..." Retrieved 2019-12-05.
  27. ^ "PythonImplementations". Python Wiki. Python Software Foundation. Retrieved 2017-12-14.
  28. ^ "What's New In Python 3.11 — Python 3.11.0rc1 documentation". docs.python.org. Retrieved 2022-08-15.
  29. ^ "ActivePython". ActiveState.com. ActiveState Software. Retrieved 2017-12-14.
  30. ^ "Intel Distribution for Python". Intel Software. Intel. Retrieved 2017-12-14.
  31. ^ "Download Python". Python.org. Python Software Foundation. Retrieved 2017-12-14.