Python3 and DM RFC-60 Tim Jenness. Python 3 Version 3.0 released in 2008 3.5 to be released in September 2.7 was released in 2010 – Critical bug fixes.

Slides:



Advertisements
Similar presentations
Open Office.Org What is the Open Office.org Source Project? Open source project through which Sun Microsystems is releasing the technology for the popular.
Advertisements

PFC-OS The open source project for PowerBuilder Foundation Class Libraries.
Bruce Beckles University of Cambridge Computing Service
CS 4800 By Brandon Andrews.  Specifications  Goals  Applications  Design Steps  Testing.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
Sílvia Guivernau, CS Librarian, VTLS Europe Warsaw, June 2008 PUG – Polish Users ’ Group Meeting 2008 Migration Options & Planning.
Data Representation in Computers
COMP 14: Intro. to Intro. to Programming May 23, 2000 Nick Vallidis.
U-Mail System Design Specification Joseph Woo, Chris Hacking, Alex Benson, Elliott Conant, Alex Meng, Michael Ratanapintha April 28,
Examining the Code [Reading assignment: Chapter 6, pp ]
Software design and development Marcus Hunt. Application and limits of procedural programming Procedural programming is a powerful language, typically.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
119th International Unicode ConferenceSan Jose, California, September 2001 An Overview of ICU Helena Shih Chapman Doug Felt
OBSERVATIONS & PRÉVISIONS CÔTIÈRES 3 rd SeaDataNet training course – Ostende – June 2008 NEMO reformatting tool v1 M. Fichaut.
Platform Upgrades As A Service Raj Nagarajan, Robert Enyedi.
Chapter 1 Introduction to VBA Development in Excel.
Business Unit or Product Name © 2007 IBM Corporation Introduction of Autotest Qing Lin.
Washington Area SGML/XML Users Group – 21 June 2000 BeOpen.com 1 Python, XML, and PythonLabs Fred L. Drake, Jr.
Open MPI Project June 2015 Updated Version Numbering Scheme and Release Planning.
Testing E001 Access to Computing: Programming. 2 Introduction This presentation is designed to show you the importance of testing, and how it is used.
Creating your first C++ program
Mike Vermeulen, AMD What and How can the Open64 community collaborate more closely?
Progress with migration to SVN Part3: How to work with g4svn and geant4tags tools. Geant4.
Study for Migration from CVS to SubVersion (SVN) Gunter Folger CERN/PH/SFT.
Copyright © 2010 Certification Partners, LLC -- All Rights Reserved Perl Specialist.
Using JAS3 for LCD Analysis Tony Johnson 20 th May 2003.
Chapter 2 – Software Processes Lecture 2 1Chapter 2 Software Processes.
Characters. Character Data char data type – Represents one character – char literals indicated with ' '
Bridging the gap with reading lists Meeting the Reading Lists Challenge April 2014 Jon Knight Loughborough University IT Services
PROGRAMMING LANGUAGES FOR WHEN USING QUANT ANALYSIS FOR HIGH FREQUENCY TRADING.
CMPT371 – Team 1 Luminance. Project – Luminance  Puzzle game  Guide a beam of light using a limited set of tools to certain goals avoiding obstacles.
Python Overview  Last week Python 3000 was released  Python 3000 == Python 3.0 == Py3k  Designed to break backwards compatibility with the 2.x.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Creating User Interfaces Review midterm. Work on User Observation studies Homework: Spring break! Use opportunity to work on user observation study!
© The McGraw-Hill Companies, Software Project Management 4th Edition Step Wise: An approach to planning software projects Chapter 2.
CS5103 Software Engineering Lecture 02 More on Software Process Models.
Copyright © 2003 ProsoftTraining. All rights reserved. Perl Fundamentals.
Introduction What is detector simulation? A detector simulation program must provide the possibility of describing accurately an experimental setup (both.
Feedback from LHC Experiments on using CLHEP Lorenzo Moneta CLHEP workshop 28 January 2003.
PHP vs. Python. Similarities are interpreted, high level languages with dynamic typing are Open Source are supported by large developer communities are.
XP Tutorial 9New Perspectives on HTML and XHTML, Comprehensive 1 Working with XHTML Creating a Well-Formed Valid Document Tutorial 9.
Using the ICAT API to ingest business and experiment metadata Tom Griffin, STFC ISIS Facility NOBUGS 2012 ICAT Workshop
San Jose, California September 2002 What is ICU? Roadmap and Myths Helena Shih Chapman ICU Development Manager IBM Globalization Center of Competency.
CSE 240 Lecture 7. © Lethbridge/Laganière 2001 Chapter 5: Modelling with classes2 Overview Hopefully return and discuss test 1 A brief discussion of Java.
Tutorial 9 Working with XHTML. New Perspectives on HTML, XHTML, and XML, Comprehensive, 3rd Edition 2 Objectives Describe the history and theory of XHTML.
Session 02 Module 3: Statements and Operators Module 4: Programming constructs Module 5: Arrays.
20 October 2005 LCG Generator Services monthly meeting, CERN Validation of GENSER & News on GENSER Alexander Toropin LCG Generator Services monthly meeting.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
PROGRAMMING USING PYTHON LANGUAGE ASSIGNMENT 1. INSTALLATION OF RASPBERRY NOOB First prepare the SD card provided in the kit by loading an Operating System.
Constructive Rants Plone Symposium 2013: Oshkosh Alan Runyan June 5, 2013.
This has been created by QA InfoTech. Choose QA InfoTech as your Automated testing partner. Visit for more information.
1 SPIE Astronomical Telescopes + Instrumentation | 26 June - 1 July 2016 | Edinburgh, United Kingdom Investigating interoperability of the LSST Data Management.
Software development tools
The Software Development Process. Contents  Product Components  Software project staff  Software development lifecycle models.
Real Testing Scenario Strategy: A Real-life TestOps Environment
Constructing Deploying and Maintaining Enterprise Systems
Introduction Python is an interpreted, object-oriented and high-level programming language, which is different from a compiled one like C/C++/Java. Its.
Open-O O-Parent Project Proposal
Core WG Meeting November 16th, 2017.
draft-clacla-netmod-yang-model-update-02
Avaya Professional Services (APS) Tools ProVision
Case Application Development Method
NOX is the Most Widely Used OpenFlow Controller
Module 2: Understanding C# Language Fundamentals
IBEX Client Migration to Eclipse 4
Eagle: Maturation and Evolution
David Cleverly – Development Lead
Functions, Procedures, and Abstraction
Presentation transcript:

Python3 and DM RFC-60 Tim Jenness

Python 3 Version 3.0 released in to be released in September 2.7 was released in 2010 – Critical bug fixes only. – Supported (nominally) until 2020 This date is not within LSST operations. All the new features are turning up in Python3 2

What has Python3 ever given us? Strings are Unicode characters and not a collection of bytes ✔ Ευχαριστώ Consistent use of iterators Improved package handling (namespace packages) Matrix operator Improved handling of super() and metaclasses Many improvements to standard library: asyncio, single-dispatch generic functions. Parser improvements Not all of these features are available on PyPI or using __future__ 3

To lead or to follow? From HipChat, May 2015: “[LSST Python 3 adoption] depends on the rest of the community [migrating].” From the Astropy mailing list, June 2015: 4 “My highly subjective experience has been that in astronomy, the biggest sticking point is at facilities. E.g., tools provided by some observatories to prepare for proposals or observations, or single- use scripts like specialized finder charts and the like. Often that code gets written once and then left alone (the author may even be long gone), so if it's not 3.x compatible it probably never will be without a specific concerted effort. In contrast, “projects” (like astropy) are most there in terms of Py 3.x support.”

Community uptake 2015 Python survey by Robitaille indicates the community is (slowly) migrating to Python3 Python books have begun defaulting to Python 3 (e.g. Fluent Python, Effective Python) Python 3 is becoming the default for new users. LSST should not impede this migration. 5

Proposed Migration Plan Support 2.7 and 3.4+ simultaneously. Deprecate 2.7 when compelling need to adopt native 3.x features. Jenkins CI system running with Python3 (EUPS and Scons excepted) Generate test coverage report Adopt future module to handle the 2.7/3.x bridge. –future lets you write code using Python3 style – Provides a futurize script to modernize current code base. 6

Concerns Poor test coverage so migration may break working code. – If we aren’t testing it the code could be broken anyhow. Big bang conversion versus incremental. – Big bang is less confusing as people understand the switch and start coding in Python3 by default. – Incremental conversion risks back-sliding if the code has never been tested on Python3 in CI. 7