# WARNING # # THIS IS AN AUTOGENERATED FILE. # # MANUAL CHANGES CAN AND WILL BE OVERWRITTEN. import re from setuptools import setup PACKAGE_NAME = 'pbcabi' PACKAGE_DESCRIPTION = """ # Partisia Blockchain ABI client. Utility library for parsing and processing the Partisia Blockchain ABI Format. The format is specified here: [Partisia Blockchain's ABI format](https://partisiablockchain.gitlab.io/documentation/smart-contracts/smart-contract-binary-formats.html).. ## Example usage This example is based upon the [Token Contract example contract](https://gitlab.com/partisiablockchain/language/example-contracts). It assumes a compiled ABI in `token.abi` and a blockchain state stored in `token_state.bin`. ```py # Imports from pbcabi.binaryreader import BinaryReader import pbcabi.model # Read ABI with open('token.abi', 'rb') as f: TOKEN_ABI = pbcabi.model.FileAbi.read_from(BinaryReader(f.read())) with open('token_state.bin', 'rb') as f: state_bytes = f.read() # Read structure TokenState from state_bytes token_state = TOKEN_ABI.contract.read_state('TokenState', BinaryReader(state_bytes)) # Inspect state as mostly Python-native types. my_address = BlockchainAddress.from_hex_hash("00e72e44eab933faaf1fd4ce94bb57e08bff98a1ed") print(token_state['name']) > MyToken print(token_state['balances'][my_address]) > 213112 ``` ## Legalese This project is licensed under MIT Licence, see `LICENSE` for full text. This project is not associated with, nor supported by any of: - Partisia Applications A/S - Partisia Infrastructure A/S - Partisia Blockchain Foundation Use at own risk. """.strip() PACKAGE_DESCRIPTION_SHORT = """ Utility library for parsing and processing the Partisia Blockchain ABI Format.""".strip() def parse_version_file(text: str) -> str: match = re.match(r'^__version__\s*=\s*(["\'])([\d\.]+)\1$', text) if match is None: msg = 'Malformed _version.py file!' raise Exception(msg) return match.group(2) with open(PACKAGE_NAME + '/_version.py') as f: version = parse_version_file(f.read()) REQUIREMENTS_MAIN = [ 'enforce_typing', 'frozendict', ] REQUIREMENTS_TEST = [ 'pytest', ] setup( name=PACKAGE_NAME, version=version, description=PACKAGE_DESCRIPTION_SHORT, long_description=PACKAGE_DESCRIPTION, long_description_content_type='text/markdown', author='Jon Michael Aanes', author_email='jonjmaa@gmail.com', url='https://gitfub.space/Jmaa/' + PACKAGE_NAME, packages=[PACKAGE_NAME], install_requires=REQUIREMENTS_MAIN, extras_require={ 'test': REQUIREMENTS_TEST, }, python_requires='>=3.9', )