"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "modules/chempy/__init__.py" between
pymol-open-source-2.2.0.tar.gz and pymol-open-source-2.3.0.tar.gz

About: PyMOL is a Python-enhanced molecular graphics tool. It excels at 3D visualization of proteins, small molecules, density, surfaces, and trajectories. It also includes molecular editing, ray tracing, and movies. Open Source version.

__init__.py  (pymol-open-source-2.2.0):__init__.py  (pymol-open-source-2.3.0)
skipping to change at line 19 skipping to change at line 19
#I* Additional authors of this source file include: #I* Additional authors of this source file include:
#-* #-*
#-* #-*
#-* #-*
#Z* ------------------------------------------------------------------- #Z* -------------------------------------------------------------------
from __future__ import print_function from __future__ import print_function
import os import os
import copy import copy
import functools
# #
# Basic chempy types # Basic chempy types
# #
class Atom: @functools.total_ordering
class Atom(object):
def __reduce__(self):
# for loading new-style class pickle with PyMOL <= 2.2
return (self.__class__, (), self.__dict__)
def __setstate__(self, state):
# for loading PyMOL <= 2.2 pickles
self.__dict__.update(state)
if 'resi' in state:
self.resi = self.__dict__.pop('resi')
@property
def resi(self):
return str(self.resi_number) + self.ins_code
@resi.setter
def resi(self, resi):
if isinstance(resi, str) and resi and not resi[-1].isdigit():
self.ins_code = resi[-1]
resi = resi[:-1]
else:
self.__dict__.pop('ins_code', None)
self.resi_number = int(resi or 0)
# these must be immutables # these must be immutables
symbol = 'X' symbol = 'X'
name = '' name = ''
resn = 'UNK' resn = 'UNK'
resn_code = 'X' resn_code = 'X'
resi = '1' ins_code = ''
resi_number = 1 resi_number = 1
b = 0.0 b = 0.0
q = 1.0 q = 1.0
vdw = 0.0 vdw = 0.0
alt = '' alt = ''
hetatm = 1 hetatm = 1
segi = '' segi = ''
chain = '' chain = ''
coord = (9999.999,9999.999,9999.999) coord = (9999.999,9999.999,9999.999)
formal_charge = 0.0 formal_charge = 0.0
partial_charge = 0.0 partial_charge = 0.0
elec_radius = 0.0
custom = ''
# Flags # Flags
flags = 0 flags = 0
# Force-fields # Force-fields
numeric_type = -9999 numeric_type = -9999
text_type = '??' text_type = '??'
# MDL Mol-files # MDL Mol-files
stereo = 0 stereo = 0
# Macromodel files # Macromodel files
color_code = 2 color_code = 2
# Secondary structure # Secondary structure
skipping to change at line 90 skipping to change at line 117
if self.segi == other.segi: if self.segi == other.segi:
return 1 return 1
return 0 return 0
def new_in_residue(self): def new_in_residue(self):
newat = Atom() newat = Atom()
if self.has('segi'): newat.segi = self.segi if self.has('segi'): newat.segi = self.segi
if self.has('chain'): newat.chain = self.chain if self.has('chain'): newat.chain = self.chain
if self.has('resn'): newat.resn = self.resn if self.has('resn'): newat.resn = self.resn
if self.has('resn_code'): newat.resn_code = self.resn_code if self.has('resn_code'): newat.resn_code = self.resn_code
if self.has('resi'): newat.resi = self.resi if self.has('ins_code'): newat.ins_code = self.ins_code
if self.has('resi_number'): newat.resi_number = self.resi_number if self.has('resi_number'): newat.resi_number = self.resi_number
if self.has('hetatm'): newat.hetatm = self.hetatm if self.has('hetatm'): newat.hetatm = self.hetatm
return newat return newat
def get_signature(self): def get_signature(self):
return ':'.join([self.segi, self.chain, self.resn, return ':'.join([self.segi, self.chain, self.resn,
self.resi, self.symbol, self.name]) self.resi, self.symbol, self.name])
def __cmp__(self,other): def __cmp__(self,other):
return \ return \
cmp(type(self), type(other)) or \ cmp(type(self), type(other)) or \
cmp(self.segi, other.segi) or \ cmp(self.segi, other.segi) or \
cmp(self.chain, other.chain) or \ cmp(self.chain, other.chain) or \
cmp(self.resi_number, other.resi_number) or \ cmp(self.resi_number, other.resi_number) or \
cmp(self.resi, other.resi) or \ cmp(self.ins_code, other.ins_code) or \
cmp(self.resn, other.resn) or \ cmp(self.resn, other.resn) or \
cmp(self.symbol, other.symbol) or \ cmp(self.symbol, other.symbol) or \
cmp(self.name, other.name) or \ cmp(self.name, other.name) or \
cmp(id(self), id(other)) cmp(id(self), id(other))
@staticmethod
def _order(obj):
return (
obj.segi,
obj.chain,
obj.resi_number,
obj.ins_code,
obj.resn,
obj.symbol,
obj.name,
id(obj),
)
def __gt__(self, other):
return Atom._order(self) > Atom._order(other)
def __eq__(self, other):
return Atom._order(self) == Atom._order(other)
class Bond: class Bond:
order = 1 order = 1
stereo = 0 stereo = 0
def has(self,attr): def has(self,attr):
return attr in self.__dict__ return attr in self.__dict__
class Molecule: class Molecule:
 End of changes. 7 change blocks. 
4 lines changed or deleted 50 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)