From cc57d9c40ca44b24cbc6f6be3f82f2887f6993b1 Mon Sep 17 00:00:00 2001 From: Graeme Watt <Graeme.Watt@durham.ac.uk> Date: Thu, 1 Oct 2020 10:39:26 +0100 Subject: [PATCH] root writers: improve display of axis labels * str('label'.encode('ascii', 'replace')) gives b'label' in ROOT export. * Instead use 'label'.encode('ascii', 'replace').decode(). * This removes the initial b and surrounding quote marks in the label. * Bump version to 0.2.3. --- .../testsuite/testdata/root/full.root | Bin 22955 -> 22789 bytes .../testsuite/testdata/yaml_full/data5.yaml | 2 +- hepdata_converter/version.py | 2 +- hepdata_converter/writers/array_writer.py | 6 +++--- hepdata_converter/writers/root_writer.py | 16 ++++++++-------- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/hepdata_converter/testsuite/testdata/root/full.root b/hepdata_converter/testsuite/testdata/root/full.root index 3c2c84819f2a8ca37bf20184b460c37e51286f2d..f2765e6d759e3c2580ae15b2fc993e39e38a9329 100644 GIT binary patch delta 15227 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�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 P3T%X{G(q<hO$Gcvv4RPw delta 15464 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°of5j#m@*Oza~b%| z_Z=Ki_|**Fh1Tpz!7ME*Adr`p*Ss~?oHJcAWF9&9s>WVb)6Kn7NN#t}U>M^|(+!Z{ z_ivJ=IQm7CfsrD5Ut29;BQ50#(f0vZhj(G&V8-SO7v*i28nd(SqI)~<IaN6%HPQJk zGnQg+Qc<j5F{zKRieNRoR<Ga3<=S>@qwJc>gMr?Ee?9`QUn7S5jQ~Jg5qX-(A=I&) zL}P_4D?YLwh#T>Nj$`_aHVX>8J}6B`@K2f0U-d^=>6SWJe?I@Kd<cj5Kcw;^{V*Lm zB!BMzM}7^4Ax`?W4#uC)k)a>1KY#z_!y!Sk9I{jiUH}I#hD-fL1DC|`nS%ed`tA1L zZj3}0JIU+NQ6ug{K6ax0Ry_Y&48{AmKBtJ(^K=(ICi4GL*hDP^|LXryN`q|ww*rqp z^&QCe|GVhmZ#4&q_Wza^k4Q#C_E$oH2qHj&h+G(W1~ejBtzMsr{C^}qrx`%V|3}^} zH6jTAUy?%8bqr|9fB#$mma>>mPeMfnpY?yrq5DS)UHY5>&YzWrr%xd=qn6?5pu)fM ze`HQk!`*fNBL|0;{C^~SAp8E0oB~Aq{|aEIGZ_7C&hWS+B7RlNNJ9%Z6ZowDd(e>_ zz8HTZVE-NfqZWs^|Cdk=e4Qzg?f)f&0AK6h?f=EMoi1<8|7W4$9!`YwGR&BX{C_w$ zso{mK2nXAL^RH>b+y5UuH}DSs-GRVJ{@)+b=@EwXzaN1y5x4wyB>menOgfec75V=V z%*=lYX80KYR8fdZ$bS`42n2sO|L0RQeZYi-3(*Zpn8<2jTU0}3N0$efcD^nye7`G- N;ml)N<u8%}{2x?!ba(&& diff --git a/hepdata_converter/testsuite/testdata/yaml_full/data5.yaml b/hepdata_converter/testsuite/testdata/yaml_full/data5.yaml index bd11ef7..eb63fdb 100644 --- a/hepdata_converter/testsuite/testdata/yaml_full/data5.yaml +++ b/hepdata_converter/testsuite/testdata/yaml_full/data5.yaml @@ -1,6 +1,6 @@ --- independent_variables: - - header: {name: 'Leading dilepton DELTA(PHI(LEPTON+, LEPTON\-))', units: GEV} + - header: {name: 'Leading dilepton DELTA(PHI(LEPTON+, LEPTON-))', units: GEV} values: - {low: 0.0, high: 0.5} - {low: 0.5, high: 1.0} diff --git a/hepdata_converter/version.py b/hepdata_converter/version.py index 736d0d2..ffcae31 100644 --- a/hepdata_converter/version.py +++ b/hepdata_converter/version.py @@ -1,3 +1,3 @@ # this file ideally should only contain __version__ declaration, as anything else # may break setup.py and PyPI uploads -__version__ = '0.2.2' +__version__ = '0.2.3' diff --git a/hepdata_converter/writers/array_writer.py b/hepdata_converter/writers/array_writer.py index 26f9302..92803bb 100644 --- a/hepdata_converter/writers/array_writer.py +++ b/hepdata_converter/writers/array_writer.py @@ -186,8 +186,8 @@ def calculate_total_errors(variable, is_number_list, min_errs, max_errs, values, err_breakdown[i_numeric][label]['dn'] = err_minus # want to maintain directionality of errors except TypeError: log.error('TypeError encountered when parsing {0} and {1}'.format( - str(error['asymerror']['minus']).encode('utf8', 'replace'), - str(error['asymerror']['plus']).encode('utf8', 'replace'))) + str(error['asymerror']['minus']).encode('utf8', 'replace').decode(), + str(error['asymerror']['plus']).encode('utf8', 'replace').decode())) elif 'symerror' in error: try: err = error_value_processor(entry['value'], error['symerror']) @@ -197,7 +197,7 @@ def calculate_total_errors(variable, is_number_list, min_errs, max_errs, values, err_breakdown[i_numeric][label]['dn'] = -err except TypeError: log.error('TypeError encountered when parsing {0}'.format( - str(error['symerror']).encode('utf8', 'replace')) + str(error['symerror']).encode('utf8', 'replace').decode()) ) min_errs.append(sqrt(errors_min)) diff --git a/hepdata_converter/writers/root_writer.py b/hepdata_converter/writers/root_writer.py index c4c2fc4..6f2908b 100644 --- a/hepdata_converter/writers/root_writer.py +++ b/hepdata_converter/writers/root_writer.py @@ -86,7 +86,7 @@ def _create_empty_hist(self, dependent_var_title, index, yval): name = self.independent_variables[i]['header']['name'] if 'units' in self.independent_variables[i]['header']: name += ' [%s]' % self.independent_variables[i]['header']['units'] - name = str(name.encode('ascii', 'replace')) + name = name.encode('ascii', 'replace').decode() getattr(hist, self._hist_axes_getters[i])().SetTitle(name) if 'labels' in self.independent_variables[i]: for ibin, label in enumerate(self.independent_variables[i]['labels']): @@ -136,7 +136,7 @@ def _create_hist(self, xval): name = self.independent_variables[i]['header']['name'] if 'units' in self.independent_variables[i]['header']: name += ' [%s]' % self.independent_variables[i]['header']['units'] - name = str(name.encode('ascii', 'replace')) + name = name.encode('ascii', 'replace').decode() getattr(hist, self._hist_axes_getters[i])().SetTitle(name) if 'labels' in self.independent_variables[i]: # set alphanumeric bin labels for ibin, label in enumerate(self.independent_variables[i]['labels']): @@ -146,7 +146,7 @@ def _create_hist(self, xval): name = self.dependent_variable['header']['name'] if 'units' in self.dependent_variable['header']: name += ' [%s]' % self.dependent_variable['header']['units'] - name = str(name.encode('ascii', 'replace')) + name = name.encode('ascii', 'replace').decode() getattr(hist, self._hist_axes_getters[self.dim])().SetTitle(name) for i in range(len(self.xval[0])): @@ -305,15 +305,15 @@ def create_objects(self): xname = self.independent_variables[0]['header']['name'] if 'units' in self.independent_variables[0]['header']: xname += ' [%s]' % self.independent_variables[0]['header']['units'] - xname = str(xname.encode('ascii', 'replace')) + xname = xname.encode('ascii', 'replace').decode() yname = self.independent_variables[1]['header']['name'] if 'units' in self.independent_variables[1]['header']: yname += ' [%s]' % self.independent_variables[1]['header']['units'] - yname = str(yname.encode('ascii', 'replace')) + yname = yname.encode('ascii', 'replace').decode() zname = self.dependent_variable['header']['name'] if 'units' in self.dependent_variable['header']: zname += ' [%s]' % self.dependent_variable['header']['units'] - zname = str(zname.encode('ascii', 'replace')) + zname = zname.encode('ascii', 'replace').decode() graph.GetXaxis().SetTitle(xname) graph.GetYaxis().SetTitle(yname) @@ -353,11 +353,11 @@ def create_objects(self): xname = self.independent_variables[0]['header']['name'] if 'units' in self.independent_variables[0]['header']: xname += ' [%s]' % self.independent_variables[0]['header']['units'] - xname = str(xname.encode('ascii', 'replace')) + xname = xname.encode('ascii', 'replace').decode() yname = self.dependent_variable['header']['name'] if 'units' in self.dependent_variable['header']: yname += ' [%s]' % self.dependent_variable['header']['units'] - yname = str(yname.encode('ascii', 'replace')) + yname = yname.encode('ascii', 'replace').decode() graph.GetXaxis().SetTitle(xname) graph.GetYaxis().SetTitle(yname)