2024-05-27 19:55:47 +00:00
# WARNING
#
# THIS IS AN AUTOGENERATED FILE.
#
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN.
2024-04-08 11:44:47 +00:00
import re
2023-06-20 09:47:20 +00:00
2024-04-08 11:44:47 +00:00
from setuptools import setup
2023-06-20 09:47:20 +00:00
2024-05-27 19:55:47 +00:00
PACKAGE_NAME = ' pbcabi '
2024-04-08 11:44:47 +00:00
2024-07-08 18:22:14 +00:00
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 ) )
2024-04-08 11:44:47 +00:00
2024-07-08 18:22:14 +00:00
# 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
2024-07-09 21:59:07 +00:00
Use at own risk .
2024-08-02 15:15:18 +00:00
""" .strip()
2024-07-08 18:22:14 +00:00
2024-07-16 20:18:13 +00:00
PACKAGE_DESCRIPTION_SHORT = """
Utility library for parsing and processing the Partisia Blockchain ABI Format . """ .strip()
2024-07-10 21:39:53 +00:00
2024-06-03 20:37:41 +00:00
2024-05-29 18:29:10 +00:00
def parse_version_file ( text : str ) - > str :
2024-04-08 11:44:47 +00:00
match = re . match ( r ' ^__version__ \ s*= \ s*([ " \' ])([ \ d \ .]+) \ 1$ ' , text )
2024-05-29 18:29:10 +00:00
if match is None :
msg = ' Malformed _version.py file! '
raise Exception ( msg )
return match . group ( 2 )
2024-04-08 11:44:47 +00:00
2024-06-03 20:37:41 +00:00
2024-05-29 18:29:10 +00:00
with open ( PACKAGE_NAME + ' /_version.py ' ) as f :
version = parse_version_file ( f . read ( ) )
2024-04-08 11:44:47 +00:00
2024-06-03 20:37:41 +00:00
2024-05-04 22:02:50 +00:00
def parse_requirements ( text : str ) - > list [ str ] :
2024-05-27 19:55:47 +00:00
return text . strip ( ) . split ( ' \n ' )
2024-05-04 22:02:50 +00:00
2024-05-29 18:29:10 +00:00
def read_requirements ( path : str ) - > list [ str ] :
2024-04-08 11:44:47 +00:00
with open ( path ) as f :
2024-05-04 22:02:50 +00:00
return parse_requirements ( f . read ( ) )
2024-04-08 11:44:47 +00:00
2024-05-04 22:02:50 +00:00
REQUIREMENTS_MAIN = """
enforce_typing
2024-07-09 21:59:07 +00:00
frozendict """
2024-05-04 22:02:50 +00:00
REQUIREMENTS_TEST = """
2024-07-09 21:59:07 +00:00
pytest """
2024-05-04 22:02:50 +00:00
2024-05-27 19:55:47 +00:00
2024-04-08 11:44:47 +00:00
setup (
name = PACKAGE_NAME ,
version = version ,
2024-07-08 18:22:14 +00:00
description = PACKAGE_DESCRIPTION_SHORT ,
long_description = PACKAGE_DESCRIPTION ,
2024-05-27 19:55:47 +00:00
long_description_content_type = ' text/markdown ' ,
2024-07-09 21:59:07 +00:00
author = ' Jon Michael Aanes ' ,
2024-05-27 19:55:47 +00:00
author_email = ' jonjmaa@gmail.com ' ,
url = ' https://gitfub.space/Jmaa/ ' + PACKAGE_NAME ,
2024-04-08 11:44:47 +00:00
packages = [ PACKAGE_NAME ] ,
2024-05-04 22:02:50 +00:00
install_requires = parse_requirements ( REQUIREMENTS_MAIN ) ,
2024-04-08 11:44:47 +00:00
extras_require = {
2024-05-27 19:55:47 +00:00
' test ' : parse_requirements ( REQUIREMENTS_TEST ) ,
2024-04-08 11:44:47 +00:00
} ,
2024-05-27 19:55:47 +00:00
python_requires = ' >=3.9 ' ,
2024-04-08 11:44:47 +00:00
)