Print

Print


Dear Kay,

Yes, it’s writing code to be compatible with Python2 and Python3 - in real life they are largely idiomatically similar, with well documented differences e.g.

http://python-future.org/compatible_idioms.html

Most of this will not affect you unless you are doing a pretty major project...

Re: cctbx -> python3 - there is a roadmap at

https://github.com/cctbx/cctbx_project/wiki/Python-3-roadmap

Unlike e.g. FORTRAN where you can still compile 40 year old code, the choice was made in Python to fix some things which were not “right” and make Python3 a different dialect - since Python3 is now a decade old and only really now gaining traction a lot of people have found this challenging. That said, cctbx is > 15 years old now so has seen some changes too..

In terms of learning Python, obviously Python3 _syntax_ is the way forward - my daughter learns this at school! - but using Python2 _compatible_ code as per the idioms above will make life easier in the short term, and will allow use of cctbx… adding

from __future__ import division, print_function

to the very top of your source files will help this

Best wishes Graeme

On 6 Jun 2018, at 21:36, Kay Diederichs <[log in to unmask]<mailto:[log in to unmask]>> wrote:

Dear Graeme,

that sounded to me at first like xia2 and DIALS could be written in Python3 and still use cctbx. But thinking about it, this cannot be true; once you run your code, you have to run either the Python2 or the Python3 interpreter. And if you try to use Python3, it will not correctly run cctbx.

I think what you do in xia2 and DIALS is write code that now runs under Python2, but will/would still work if run under Python3 - but this requires converting cctbx to Python3 (which, as I saw on some webpage, is a goal for 2018 IIUC).

Right? Pls ignore my ignorance; I'm a beginner in this area ...

best,

Kay

On Wed, 6 Jun 2018 20:22:10 +0000, [log in to unmask]<mailto:[log in to unmask]> <[log in to unmask]<mailto:[log in to unmask]>> wrote:

Dear Kay,


While I am obviously biased, I have to say that using cctbx (even if it is "old" Python) has a lot to be said for it - there are a lot of tools in there which are useful once you have read the reflection data & want to do crystallography.


Re: Python 3: within xia2, DIALS and other cctbx-derived projects we have moved to writing Python which is compatible with 2.7.x and 3.x language standards - by and large it is not a hardship and means you can write code today which will continue to be useful. There is a wider push to migrate cctbx to 2.7.x and 3.x compatibility however it is a large code base and it's a fair amount of work. There's more to it than just adding brackets after print though :-)


Best wishes Graeme

________________________________
From: CCP4 bulletin board <[log in to unmask]<mailto:[log in to unmask]>> on behalf of Kay Diederichs <[log in to unmask]<mailto:[log in to unmask]>>
Sent: 06 June 2018 19:47:07
To: ccp4bb
Subject: Re: [ccp4bb] Python3 and MTZ

Dear Nicolas,

my (our) motivation is purely that when learning Python today, and developing something from scratch, Python3 appears like the better choice (compared to version 2) - provided that basic crystallographic libraries can be used.

Just a note (for those whose operating system provides only one of the two Python flavours): RHEL7 has Python2 as system library, but Python3 can be installed in parallel (using "Software Collections"). The user makes a choice by setting the PATH variable.

best,

Kay

On Wed, 6 Jun 2018 15:43:16 +0200, Nicolas FOOS <[log in to unmask]<mailto:[log in to unmask]>> wrote:

Dear Kay,

depending of the motivation to develop in python3 (could be due to an OS
using python3 by default or you really prefer to work with python3). If
it's due to the OS, a possible strategy is to use virtualenv
(https://virtualenv.pypa.io/en/stable/) which let you use python2 even
if python3 is the default version for the OS. It exist probably other
method to have a contain installation of python2 with all the library needs.

I used this strategy (virtualenv) to install ccp4 (with the installer
which needed python2) on a manjaro linux (Arch based) running python3
and that works very well.

Nicolas

Nicolas Foos
PhD
Structural Biology Group
European Synchrotron Radiation Facility (E.S.R.F)
71, avenue des Martyrs
CS 40220
38043 GRENOBLE Cedex 9
+33 (0)6 76 88 14 87
+33 (0)4 76 88 45 19

On 06/06/2018 14:25, Kay Diederichs wrote:
Dear all,

I haven't tried to read MTZ files from Python until now, but for a new
project in my lab I'd like to do that - and with Python3.

Googling around, it seems that iotbx from cctbx is not (yet)
Python3-compatible.

So, what are my options?

thanks,

Kay

########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1

########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1

--
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom


########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1




########################################################################

To unsubscribe from the CCP4BB list, click the following link:
https://www.jiscmail.ac.uk/cgi-bin/webadmin?SUBED1=CCP4BB&A=1