PKZO1'llPyOffice/Calculator.pyfrom .Suite import Suite class CalculatorProcessor(Suite): def __init__(self, process_id): self.process_id = process_id def add(self, x, y): return x + y def multiply(self, x, y): return x * y def divide(self, x, y): if y == 0: raise ValueError('cannot divide by zero') return x / float(y) @property def check_process(self): ''' @property decorator turns check_process() into a dynamic attribute - think of this as a java getter(). to access this method, treat it as an attribute and do >>> myCalc.check_process and not >>> myCalc.check_process() ''' print(self.process_id)PKtXO OOPyOffice/Suite.pyclass Suite(): def __init__ (self, process_id): self.process_id = process_idPKZOxnPyOffice/Word.pyfrom .Suite import Suite class WordProcessor(Suite): def __init__(self, process_id): self.process_id = process_id def check_length(self, x): return len(x) PK \O=;zPyOffice/__init__.py"""Demonstrate docstrings and does nothing really.""" __version__ = '0.2' from .Calculator import * from .Word import WordProcessor PK!Hi%*'PyOffice-0.2.dist-info/entry_points.txtN+I/N.,()M,NO.1r3PK!HPOPyOffice-0.2.dist-info/WHEEL HM K-*ϳR03rOK-J,/RH,szd&Y)r$[)T&UrPK!HPyOffice-0.2.dist-info/METADATATMo6W b%9 m YӢ,WH, Eub%g޼f>r2}P֬*-65w*Y,gk[5}֚L-O:4^9,rqk[ΜхuQ*6./m[AQ1TG6?l~݈w]l_p)JS?fJǣ<}N)(x7O Ny:MV|Pz"['{F~H:T7Bҏ8;T $[ӎC$eH\L kE ۭp!:DMqǧ8Ƥ>hk"I@*5B-)gAݰTM(_Q?RH{o[tzjfI[K1 ğOZRQO$nyC[늁oUxTch+|$9#p{p{u_h[J]h+&,WŋʆóH[e`HPٝv n]^4z# ğPK!H׃SPyOffice-0.2.dist-info/RECORDuIs@}~ E IaCu(t3&ުl:L6B%yUaq!ul&K! o8 ?mxyGCSDпUB^/@2QCl띨 ħPk Ԗ̵I5t69by㟚BjUiE'*qdY5<CxZ[&(-TpQh%f^d_ SY%B9ڄd޴lC?x,mD%N| @|BhC4{s~?r&?n  7*'Tڳ}0!MEK!<ڞFQ/PKZO1'llPyOffice/Calculator.pyPKtXO OOPyOffice/Suite.pyPKZOxnPyOffice/Word.pyPK \O=;zPyOffice/__init__.pyPK!Hi%*'PyOffice-0.2.dist-info/entry_points.txtPK!HPOPyOffice-0.2.dist-info/WHEELPK!HPyOffice-0.2.dist-info/METADATAPK!H׃S PyOffice-0.2.dist-info/RECORDPK:`