Notice: While JavaScript is not essential for this website, your interaction with the content will be limited. Please turn JavaScript on for the full experience.
Python Success Stories Background The Molecular Modeling Toolkit (MMTK) is a open source Python library for molecular modeling and simulation with a focus on biomolecular systems, written in a mixture of Python and C. It provides standard techniques such as Molecular Dynamics or normal mode calculations in a ready-to-use form, but also provides a basis of low-level operations on top of which new techniques can easily be implemented. I started developing MMTK in 1996. I had some experience wit...
Python Patterns - Implementing Graphs Warning This page stays here for historical reasons and it may contain outdated or incorrect information. Change notes: 2/22/98, 3/2/98, 12/4/00: This version of this essay fixes several bugs in the code. 6/10/19: Retraction of find_shortest_path as "nearly optimal". 8/11/19: Fix accidental usage of find_graph() instead of find_path() Copyright (c) 1998, 2000, 2003, 2019 Python Software Foundation. All rights reserved. License...
What's new in Python 2.3 What's new in Python 2.3 Here are the (subjective) highlights of what's new in Python 2.3. Faster According to a couple of simple benchmark, Python 2.3 is about 20-30% faster than Python 2.2.3. Some of this speed-up was obtained by removing the SET_LINENO opcodes, which means that the difference is less impressive when comparing "python -O"; the rest was various careful tune-ups. New Tools A brand new version of IDLE (from the IDLEfork project at So...
...efficiency, beauty, or clarity. Reverse iteration is much less common than forward iteration, but it does arise regularly in practice. See Real World Use Cases below. Proposal Add a builtin function called reversed() that makes a reverse iterator over sequence objects that support __getitem__() and __len__(). The above examples then simplify to: for i in reversed(xrange(n)): print seqn[i] for elem in reversed(seqn): print elem The core idea is that the clearest, least error-prone ...
Glue It All Together With Python Glue It All Together With Python Guido van Rossum CNRI 1895 Preston White Drive Reston, VA 20191 Email: guido@cnri.reston.va.us, guido@python.org Position paper for the OMG-DARPA-MCC Workshop on Compositional Software Architecture in Monterey, California, January 6-8, 1998. Introduction Python is an advanced scripting language that is being used successfully to glue together large software components. It spans multiple platforms, mid...
Python Success Stories Introduction Nexedi is a leader in high-end enterprise services, providing solutions for Enterprise Resource Planning (ERP), Customer Relationship Management (CRM), and eCommerce. Nexedi has built its business on Open Source, and has designed and released an ERP/CRM framework called ERP5 under the GPL Free Software license. ERP5 is in production in the apparel industry and government agencies with multi-gigabyte databases that track millions of warehouse stock movements...
...efficiency is possible because mutation operations only affect one branch of the tree, making it possible to reuse non-mutated branches, and, therefore, avoiding copying of unmodified data. Read more about HAMT in [5]. The CPython implementation [1] has a fairly detailed description of the algorithm as well. Performance Figure 1. Benchmark code can be found here: [3]. The above chart demonstrates that: frozenmap implemented with HAMT displays near O(1) performance for all...
...efficiency is possible because mutation operations only affect one branch of the tree, making it possible to reuse non-mutated branches, and, therefore, avoiding copying of unmodified data. Read more about HAMT in [5]. The CPython implementation [1] has a fairly detailed description of the algorithm as well. Performance Figure 1. Benchmark code can be found here: [3]. The above chart demonstrates that: frozenmap implemented with HAMT displays near O(1) performance for all benchmarked dic...
Python Success Stories Introduction Strakt is a Swedish company which specializes in developing scalable and secure products for collaboration in workflow intensive workplaces. Our vision is to empower professionals to collaborate in an enjoyable, intuitive, and efficient way that is tailored to their and their organisations' needs, while simultaneously developing and maintaining digitally stored organisational memory. In 2001, AB Strakt embarked on a large software development project aimed ...
Foreword for "Programming Python" (1st ed.) Foreword for "Programming Python" (1st ed.) This is the foreword I wrote for Mark Lutz' book "Programming Python" (1st ed.), published by O'Reilly. See also my foreword to the 2nd edition. As Python's creator, I'd like to say a few words about its origins, adding a bit of personal philosophy. Over six years ago, in December 1989, I was looking for a "hobby" programming project that would keep me occupied during the we...
...efficiency, and will have created an acceptance test along the way to measure and monitor this going forward. Conclusion Using Python so extensively, for our sole product and our internal development infrastructure, has made it a mission critical component for our company's success. Python has admirably supported our requirements, from the robust features of the language itself, the excellent .NET implementation provided by the IronPython project, and the thriving community of discussion, sup...
Python Success Stories Introduction This is the story of Python at the Philips semiconductor manufacturing facility in Fishkill, NY. This facility, originally built by IBM, was acquired by Philips in 2000. I have been involved with this facility on and off for the past twelve years and was responsible for redesigning substantial portions of the factory tool control software using Python. In the early 1990s, the factory adopted an automation strategy based around Asyst Technology's tool loader...
...efficiency when reusing an operation, it is best to use the setinputsizes() method to specify the parameter types and sizes ahead of time. It is legal for a parameter to not match the predefined information; the implementation should compensate, possibly with a loss of efficiency. Using SQL terminology, these are the possible result values from the execute() method: If the statement is DDL (e.g. CREATE TABLE), then 1 is returned. If the statement is DML (e.g. UPDATE or INSERT), then the number...
...efficiency (when m is idempotent), at worst an error. Classic Python has the same problem, except it doesn't even consider it an error to inherit two conflicting definitions of a method: it simply picks the first one. The traditional solution to this dilemma is to split each derived definition of m into two parts: a partial implementation _m, which only saves the data that is unique to one class, and a full implementation m, which calls its own _m and that of the base class(es). For e...
PEP 458 -- Secure PyPI downloads with signed repository metadata PEP:458 Title:Secure PyPI downloads with signed repository metadata Author:Trishank Karthik Kuppusamy <karthik at trishank.com>, Vladimir Diaz <vladimir.diaz at nyu.edu>, Marina Moore <mm9693 at nyu.edu>, Lukas Puehringer <lukas.puehringer at nyu.edu>, Joshua Lock <jlock at vmware.com>, Lois Anne DeLong <lad278 at nyu.edu>, Justin Cappos <jcappos at nyu.edu> Sponsor:Nick Coghlan &l...
PEP 383 -- Non-decodable Bytes in System Character Interfaces PEP:383 Title:Non-decodable Bytes in System Character Interfaces Author:Martin v. Löwis <martin at v.loewis.de> Status:Final Type:Standards Track Created:22-Apr-2009 Python-Version:3.1 Post-History: Contents Abstract Rationale Specification Discussion References Copyright Abstract File names, environment variables, and command line arguments are defined as being character data in POSIX; the C APIs however a...
PEP 3132 -- Extended Iterable Unpacking PEP:3132 Title:Extended Iterable Unpacking Author:Georg Brandl <georg at python.org> Status:Final Type:Standards Track Created:30-Apr-2007 Python-Version:3.0 Post-History: Contents Abstract Rationale Specification Implementation Grammar change Changes to the Compiler Changes to the Bytecode Interpreter Acceptance References Copyright Abstract This PEP proposes a change to iterable unpacking syntax, allowing to specify a "catch...
Towards a Standard Parser Generator Towards a Standard Parser Generator Martin v. Löwis Humboldt-Universität zu Berlin Institut für Informatik loewis@informatik.hu-berlin.de Abstract Developing parsers for "little" languages is a common task for many software developers. People have frequently requested inclusion of a specific parser generator framework into the Python library. In this paper, we compare several Python parser generators, using the XPath langua...