def test_docstring(self): Point = namedlist('Point', '') self.assertEqual(Point.__doc__, 'Point()') Point = namedlist('Point', 'dx') self.assertEqual(Point.__doc__, 'Point(dx)') Point = namedlist('Point', 'x') self.assertEqual(Point.__doc__, 'Point(x)') Point = namedlist('Point', 'dx dy, dz') self.assertEqual(Point.__doc__, 'Point(dx, dy, dz)') Point = namedlist('Point', 'dx dy dz', default=10) self.assertEqual(Point.__doc__, 'Point(dx=10, dy=10, dz=10)') Point = namedlist('Point', 'dx, dy, dz', default=FACTORY(10)) self.assertEqual(Point.__doc__, 'Point(dx=FACTORY(10), dy=FACTORY(10), dz=FACTORY(10))') Point = namedlist('Point', ['dx', 'dy', ('dz', 11.0)], default=10) self.assertEqual(Point.__doc__, 'Point(dx=10, dy=10, dz=11.0)') Point = namedlist('Point', ['dx', 'dy', ('dz', 11.0)], default=FACTORY(list)) if _PY2: list_repr = "<type 'list'>" else: list_repr = "<class 'list'>" self.assertEqual(Point.__doc__, "Point(dx=FACTORY({0}), dy=FACTORY({0}), dz=11.0)".format(list_repr)) Point = namedlist('Point', ['dx', 'dy', ('dz', FACTORY(11.0))], default=[]) self.assertEqual(Point.__doc__, 'Point(dx=[], dy=[], dz=FACTORY(11.0))')
def test_factory_for_default(self): # make sure FACTORY works for the global default A = namedlist('A', 'x y', default=FACTORY(list)) a = A() self.assertEqual(a.x, []) self.assertEqual(a.y, []) a.x.append(4) self.assertEqual(a.x, [4]) a.y.append(4) self.assertEqual(a.y, [4]) b = A() self.assertEqual(b.x, []) self.assertEqual(b.y, []) # mix and match FACTORY and a non-callable mutable default A = namedlist('A', [('x', []), 'y'], default=FACTORY(list)) a = A() self.assertEqual(a.x, []) self.assertEqual(a.y, []) a.x.append(4) self.assertEqual(a.x, [4]) a.y.append(4) self.assertEqual(a.y, [4]) b = A() self.assertEqual(b.x, [4]) self.assertEqual(b.y, [])
def test_factory_functions(self): A = namedlist('A', [('x', FACTORY(list))]) a = A() self.assertEqual(a.x, []) a.x.append(4) self.assertEqual(a.x, [4]) b = A() self.assertEqual(b.x, [])
class Column(namedlist("Column" , [ 'key', ('tag', None), ('size', None), ('formatting', FACTORY(dict)) ])): '''Definitions for a spreadsheet column, including key, name and style''' @property def name(self): return self.tag or self.key
from namedlist import namedlist, FACTORY, NO_DEFAULT from ecnn.defaults import * class SavedValues(dict): def __init__(self): self.name = None OutputLayer = namedlist('OutputLayer', [('name', 'logits'), ('hidden_units', NUM_CLASSES), ('training_history', [0]*MAX_GENERATIONS*2)], use_slots=True, default=None) Model = namedlist('Model', [('generation', NO_DEFAULT), ('convolutional_layers', FACTORY(list)), ('dense_layers', FACTORY(list)), ('logits', OutputLayer()), ('name', NO_DEFAULT), ('ancestor', NO_DEFAULT), ('trainable_parameters', NO_DEFAULT), ('learning_rate', NO_DEFAULT), ('validation_accuracy', NO_DEFAULT), ('mutation', NO_DEFAULT)], default=None) ConvolutionalLayer = namedlist('ConvolutionalLayer', [('filter_size', NO_DEFAULT), ('filters', NO_DEFAULT), ('output_shape', NO_DEFAULT), ('name', NO_DEFAULT), ('max_pool', False), ('training_history', [0]*MAX_GENERATIONS)], default=None) DenseLayer = namedlist('DenseLayer', [('hidden_units', NO_DEFAULT), ('name', NO_DEFAULT),
@author: QueenPy ''' from defusedxml.sax import parse from xml.sax import ContentHandler from namedlist import namedlist, FACTORY, NO_DEFAULT from future.utils import iteritems import pandas as pd # call = namedlist('call', [('x',[])]) # c=call() # c.x.apppend(3) # c2=call() # print(c2.x) Data = namedlist('Data', [('attr', []), ('showDataList', FACTORY(list))]) Table = namedlist('Table', [('attr', []), ('name', None), ('showRowList', FACTORY(list))]) Row = namedlist('Row', [('attr', []), ('cells', FACTORY(list))]) Cell = namedlist('Cell', [('attr', []), ('showCellInfo', None)]) coll = {} def xmlxls2pd(attachedDoc, table=0): xxh = XmlXlsHandler() if isinstance(attachedDoc, str): with open(attachedDoc, 'r') as ad:
# -*- coding: utf-8 -*- """ Created on Thu Jun 8 15:14:11 2017 @author: richard """ from future.utils import iteritems from xml.sax import ContentHandler from defusedxml.sax import parse from namedlist import namedlist, FACTORY, NO_DEFAULT from collections import defaultdict import pandas as pd Data = namedlist('Data', [('attr', NO_DEFAULT), ('data', FACTORY(list))]) Cell = namedlist('Cell', [('attr', NO_DEFAULT), ('data', None)]) Row = namedlist('Row', [('attr', NO_DEFAULT), ('cells', FACTORY(list))]) Table = namedlist('Table', [('attr', NO_DEFAULT), ('name', None), ('rows', FACTORY(list))]) conversions = {None: lambda x: x, 'DateTime': lambda x: pd.to_datetime(x, utc=True), 'String': lambda x: x, 'Number': pd.to_numeric}
class Protein(namedlist("Protein", [ 'sequence', 'name', ('id', None), ('mnemonic', None), ('peptides', FACTORY(Peptides)), ]), PeptideListMixin): '''Protein definitions''' # PROPERTIES @property def length(self): return len(self.sequence) @property def mw(self): return chemical.Molecule(peptide=self.sequence, strict=False).mass # CLASS METHODS @classmethod def from_uniprot(cls, entry): '''Initialize class from a UniProt KB query''' return cls.from_dict(entry, UNIPROT_FIELDS) @classmethod def from_fasta(cls, entry): '''Initialize class from a FASTA or UniProt KB XML file''' return cls.from_dict(entry, FASTA_FIELDS) @classmethod def from_dict(cls, entry, names=None): ''' Initialize class from a database query, with fields as `names` mapping Protein fields to the `entry` keys. Args: entry (mapping): database record for a single protein names (dict, None): maps entry keys to protein fields ''' if names is not None: return cls(**{k: entry[v][s] for k, (v, s) in names.items()}) return cls(**entry) # PUBLIC def sequencing_peptides(self, protease=None): '''Create sequencing peptides and bind to class''' self.cut_sequence(protease) self.concatenate() def decoy(self, mode='reversed', in_place=False): ''' Create decoy protein object, and modify `in_place` or return copy. Args: mode (enum): {'reversed', 'shuffled'} in_place (bool): mode object in place or make copy ''' sequence = make_decoy(self.sequence, mode) if not in_place: return type(self)(sequence, self.name, DECOY_ID, DECOY_MENMONIC) self.sequence = sequence self.id = DECOY_ID self.mnemonic = DECOY_MENMONIC
_SquareCmutMembrane['electrode_x'] = 40e-6 _SquareCmutMembrane['electrode_y'] = 40e-6 _SquareCmutMembrane['thickness'] = (2e-6, ) _SquareCmutMembrane['density'] = (2040, ) _SquareCmutMembrane['y_modulus'] = (110e9, ) _SquareCmutMembrane['p_ratio'] = (0.22, ) _SquareCmutMembrane['isolation'] = 200e-9 _SquareCmutMembrane['permittivity'] = 6.3 _SquareCmutMembrane['gap'] = 50e-9 _SquareCmutMembrane['damping_freq_a'] = 0 _SquareCmutMembrane['damping_freq_b'] = 0 _SquareCmutMembrane['damping_mode_a'] = 0 _SquareCmutMembrane['damping_mode_b'] = 4 _SquareCmutMembrane['damping_ratio_a'] = 0.0 _SquareCmutMembrane['damping_ratio_b'] = 0.0 _SquareCmutMembrane['patches'] = FACTORY(list) SquareCmutMembrane = register_type('SquareCmutMembrane', _SquareCmutMembrane, excl=['id', 'position', 'patches']) _CircularCmutMembrane = OrderedDict() _CircularCmutMembrane['id'] = None _CircularCmutMembrane['position'] = None _CircularCmutMembrane['shape'] = 'circle' _CircularCmutMembrane['radius'] = 40e-6 / 2 _CircularCmutMembrane['electrode_r'] = 40e-6 / 2 _CircularCmutMembrane['thickness'] = (2e-6, ) _CircularCmutMembrane['density'] = (2040, ) _CircularCmutMembrane['y_modulus'] = (110e9, ) _CircularCmutMembrane['p_ratio'] = (0.22, ) _CircularCmutMembrane['isolation'] = 200e-9