algorand-python-testing 0.5.0__tar.gz → 0.6.0b1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/CHANGELOG.md +14 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/PKG-INFO +1 -1
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/coverage.md +2 -1
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/pyproject.toml +1 -1
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/arc4.py +17 -1
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/utilities/__init__.py +2 -1
- algorand_python_testing-0.6.0b1/src/_algopy_testing/utilities/size_of.py +22 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy/__init__.py +2 -1
- algorand_python_testing-0.6.0b1/tests/utilities/test_size_of.py +65 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.coveragerc +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.editorconfig +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/dependabot.yml +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/pull_request_template.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/workflows/cd.yaml +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/workflows/ci.yaml +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/workflows/gh-pages.yaml +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.gitignore +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.pre-commit-config.yaml +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.vscode/extensions.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.vscode/launch.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.vscode/settings.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/CONTRIBUTING.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/LICENSE +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/README.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/Makefile +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/_static/custom.css +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/algopy.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/api.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/conf.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/examples.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/faq.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/index.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/make.bat +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/arc4-types.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/avm-types.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/concepts.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/contract-testing.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/index.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/opcodes.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/signature-testing.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/state-management.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/subroutines.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/transactions.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/README.md +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/auction/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/auction/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/auction/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/htlc_logicsig/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/htlc_logicsig/signature.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/htlc_logicsig/test_signature.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/marketplace/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/marketplace/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/marketplace/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/proof_of_attendance/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/proof_of_attendance/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/proof_of_attendance/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/scratch_storage/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/scratch_storage/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/scratch_storage/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/simple_voting/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/simple_voting/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/simple_voting/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/zk_whitelist/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/zk_whitelist/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/zk_whitelist/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/check_stubs_cov.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/refresh_test_artifacts.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/validate_examples.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/compiled.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/constants.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/context.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/context_helpers/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/context_helpers/context_storage.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/context_helpers/ledger_context.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/context_helpers/txn_context.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/decorators/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/decorators/arc4.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/decorators/subroutine.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/enums.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/gtxn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/itxn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/itxn_loader.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/account.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/application.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/asset.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/logicsig.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/template_variable.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/txn_fields.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/models/unsigned_builtins.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/mutable.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/block.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/constants.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/crypto.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/global_values.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/itxn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/misc.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/pure.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/txn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/primitives/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/primitives/array.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/primitives/biguint.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/primitives/bytes.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/primitives/string.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/primitives/uint64.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/protocols.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/serialize.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/box.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/global_state.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/local_state.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/utils.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/utilities/budget.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/utilities/log.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/utils.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/value_generators/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/value_generators/arc4.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/value_generators/avm.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/value_generators/txn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy/arc4.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy/gtxn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy/itxn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy/op.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy/py.typed +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy_testing/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy_testing/py.typed +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/templates/.macros.j2 +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/templates/.release_notes.md.j2 +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/templates/CHANGELOG.md.j2 +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/conftest.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_abi_call.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_address.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_arc4_method_signature.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_bool.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_dynamic_array.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_dynamic_bytes.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_emit.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_static_array.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_string.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_struct.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_tuple.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_ufixednxm.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_uintn.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4ABIMethod/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4ABIMethod/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4ABIMethod/data/SignaturesContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4InnerTxns/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4InnerTxns/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4InnerTxns/data/Arc4InnerTxnsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arc4PrimitiveOps/data/Arc4PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/Contract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/Contract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/ImmutableArrayContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/ImmutableArrayContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/ImmutableArrayContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/StaticSizeContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/StaticSizeContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/data/StaticSizeContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/immutable.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/static_size.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Arrays/uint64.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/BoxContract/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/BoxContract/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/BoxContract/data/BoxContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/BoxContract/data/BoxContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/BoxContract/data/BoxContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Contains/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Contains/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Contains/data/MyContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/Contains/data/MyContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/data/AppCall.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/data/AppCall.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/data/AppCall.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/data/AppExpectingEffects.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CreatedAppAsset/other.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CryptoOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CryptoOps/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CryptoOps/data/CryptoOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CryptoOps/data/CryptoOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/CryptoOps/data/CryptoOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/GlobalStateValidator/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/GlobalStateValidator/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/GlobalStateValidator/data/GlobalStateValidator.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/MiscellaneousOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/MiscellaneousOps/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/MiscellaneousOps/data/MiscellaneousOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/PrimitiveOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/PrimitiveOps/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/PrimitiveOps/data/PrimitiveOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/data/Contract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/data/Contract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/data/Contract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/data/StateMutations.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/data/StateMutations.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/data/StateMutations.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateMutations/statemutations.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/GlobalStateContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/GlobalStateContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/GlobalStateContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/ITxnOpsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/ITxnOpsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/ITxnOpsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/LocalStateContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/LocalStateContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/LocalStateContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGet.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGet.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGet.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAcctParamsGetContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppGlobalContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppGlobalContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppGlobalContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppGlobalExContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppGlobalExContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppGlobalExContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppLocalContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppLocalContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppLocalContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppLocalExContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppLocalExContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppLocalExContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppParamsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppParamsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAppParamsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAssetHoldingContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAssetHoldingContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAssetHoldingContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAssetParamsContract.approval.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAssetParamsContract.arc32.json +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/StateOps/data/StateAssetParamsContract.clear.teal +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/artifacts/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/common.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/conftest.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/contexts/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_asset.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_box.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_box_map.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_box_ref.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_contract.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_uenumerate.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/models/test_urange.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/primitives/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/primitives/conftest.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/primitives/test_biguint.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/primitives/test_bytes.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/primitives/test_string.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/primitives/test_uint64.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/state/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/state/conftest.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/state/test_global_state.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/state/test_local_state.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/state/test_mutations.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/test_array.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/test_context.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/test_miscellaneous_op.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/test_op.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/util.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/utilities/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/utilities/conftest.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/utilities/test_log.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/value_generators/__init__.py +0 -0
- {algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/value_generators/test_avm.py +0 -0
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
|
+
## v0.6.0-beta.1 (2025-05-09)
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* add stub implementation of algopy.size_of function for calculating static storage size of types ([`98e6816`](https://github.com/algorandfoundation/algorand-python-testing/commit/98e6816a48f1cff206f2c99d1384af1855d352c2))
|
|
7
|
+
|
|
8
|
+
### Bug fixes
|
|
9
|
+
|
|
10
|
+
* ensure size_of is exported from algopy module ([`01c055a`](https://github.com/algorandfoundation/algorand-python-testing/commit/01c055a4d2bd1fe17324bd91f7a83810900baa4e))
|
|
11
|
+
|
|
12
|
+
### Documentation
|
|
13
|
+
|
|
14
|
+
* include size_of in coverage doc ([`2c73646`](https://github.com/algorandfoundation/algorand-python-testing/commit/2c7364626357844437fd80b6039c112a87b277bb))
|
|
15
|
+
|
|
2
16
|
## v0.5.0 (2025-02-20)
|
|
3
17
|
|
|
4
18
|
## v0.5.0-beta.1 (2025-02-19)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: algorand-python-testing
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0b1
|
|
4
4
|
Summary: Algorand Python testing library
|
|
5
5
|
Project-URL: Documentation, https://github.com/algorandfoundation/puya/tree/main/algopy_testing#README.md
|
|
6
6
|
Project-URL: Issues, https://github.com/algorandfoundation/puya/issues
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
See which `algorand-python` stubs are implemented by the `algorand-python-testing` library. See the [Concepts](testing-guide/concepts.md#types-of-algopy-stub-implementations) section for more details on the implementation categories. Refer to the [`algorand-python` stubs API](api.md) for the full list of the stubs for which the `algorand-python-testing` library provides implementations referenced in the table below.
|
|
4
4
|
|
|
5
5
|
| Name | Implementation type |
|
|
6
|
-
|
|
6
|
+
|---------------------------------------------|---------------------|
|
|
7
7
|
| algopy.Account | Emulated |
|
|
8
8
|
| algopy.Application | Emulated |
|
|
9
9
|
| algopy.Asset | Emulated |
|
|
@@ -33,6 +33,7 @@ See which `algorand-python` stubs are implemented by the `algorand-python-testin
|
|
|
33
33
|
| algopy.ensure_budget | Emulated |
|
|
34
34
|
| algopy.log | Emulated |
|
|
35
35
|
| algopy.logicsig | Emulated |
|
|
36
|
+
| algopy.size_of | Emulated |
|
|
36
37
|
| algopy.subroutine | Native |
|
|
37
38
|
| algopy.uenumerate | Native |
|
|
38
39
|
| algopy.urange | Native |
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/arc4.py
RENAMED
|
@@ -1256,10 +1256,20 @@ def _compress_multiple_bool(value_list: list[Bool]) -> int:
|
|
|
1256
1256
|
return result
|
|
1257
1257
|
|
|
1258
1258
|
|
|
1259
|
+
def get_max_bytes_static_len(type_info: _TypeInfo) -> int | None:
|
|
1260
|
+
return _get_max_bytes_len_impl(type_info, static_size_only=True)
|
|
1261
|
+
|
|
1262
|
+
|
|
1259
1263
|
def _get_max_bytes_len(type_info: _TypeInfo) -> int:
|
|
1264
|
+
return _get_max_bytes_len_impl(type_info) or 0
|
|
1265
|
+
|
|
1266
|
+
|
|
1267
|
+
def _get_max_bytes_len_impl(type_info: _TypeInfo, *, static_size_only: bool = False) -> int | None:
|
|
1260
1268
|
size = 0
|
|
1261
1269
|
if isinstance(type_info, _DynamicArrayTypeInfo):
|
|
1262
1270
|
size += _ABI_LENGTH_SIZE
|
|
1271
|
+
if static_size_only:
|
|
1272
|
+
return None
|
|
1263
1273
|
elif isinstance(type_info, _TupleTypeInfo | _StructTypeInfo | _StaticArrayTypeInfo):
|
|
1264
1274
|
i = 0
|
|
1265
1275
|
if isinstance(type_info, _TupleTypeInfo | _StructTypeInfo):
|
|
@@ -1276,12 +1286,18 @@ def _get_max_bytes_len(type_info: _TypeInfo) -> int:
|
|
|
1276
1286
|
if bool_num % 8 != 0:
|
|
1277
1287
|
size += 1
|
|
1278
1288
|
else:
|
|
1279
|
-
child_byte_size =
|
|
1289
|
+
child_byte_size = _get_max_bytes_len_impl(
|
|
1290
|
+
child_types[i], static_size_only=static_size_only
|
|
1291
|
+
)
|
|
1292
|
+
if child_byte_size is None:
|
|
1293
|
+
return None
|
|
1280
1294
|
size += child_byte_size
|
|
1281
1295
|
i += 1
|
|
1282
1296
|
elif isinstance(type_info, _UIntTypeInfo):
|
|
1283
1297
|
size = type_info.max_bytes_len
|
|
1284
1298
|
|
|
1299
|
+
elif static_size_only:
|
|
1300
|
+
return None
|
|
1285
1301
|
return size
|
|
1286
1302
|
|
|
1287
1303
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from _algopy_testing.utilities.budget import OpUpFeeSource, ensure_budget
|
|
2
2
|
from _algopy_testing.utilities.log import log
|
|
3
|
+
from _algopy_testing.utilities.size_of import size_of
|
|
3
4
|
|
|
4
|
-
__all__ = ["OpUpFeeSource", "ensure_budget", "log"]
|
|
5
|
+
__all__ = ["OpUpFeeSource", "ensure_budget", "log", "size_of"]
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import types
|
|
2
|
+
|
|
3
|
+
from _algopy_testing.primitives.uint64 import UInt64
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def size_of(typ: type | object, /) -> UInt64:
|
|
7
|
+
from _algopy_testing.arc4 import get_max_bytes_static_len
|
|
8
|
+
from _algopy_testing.serialize import get_native_to_arc4_serializer
|
|
9
|
+
|
|
10
|
+
if isinstance(typ, types.GenericAlias):
|
|
11
|
+
pass
|
|
12
|
+
elif not isinstance(typ, type):
|
|
13
|
+
typ = type(typ)
|
|
14
|
+
|
|
15
|
+
if typ is bool: # treat bool on its own as a uint64
|
|
16
|
+
typ = UInt64
|
|
17
|
+
serializer = get_native_to_arc4_serializer(typ) # type: ignore[arg-type]
|
|
18
|
+
type_info = serializer.arc4_type._type_info
|
|
19
|
+
size = get_max_bytes_static_len(type_info)
|
|
20
|
+
if size is None:
|
|
21
|
+
raise ValueError(f"{typ} is dynamically sized")
|
|
22
|
+
return UInt64(size)
|
|
@@ -17,7 +17,7 @@ from _algopy_testing.op import Global, Txn
|
|
|
17
17
|
from _algopy_testing.primitives import Array, BigUInt, Bytes, ImmutableArray, String, UInt64
|
|
18
18
|
from _algopy_testing.protocols import BytesBacked
|
|
19
19
|
from _algopy_testing.state import Box, BoxMap, BoxRef, GlobalState, LocalState
|
|
20
|
-
from _algopy_testing.utilities import OpUpFeeSource, ensure_budget, log
|
|
20
|
+
from _algopy_testing.utilities import OpUpFeeSource, ensure_budget, log, size_of
|
|
21
21
|
|
|
22
22
|
from . import arc4, gtxn, itxn, op
|
|
23
23
|
|
|
@@ -59,6 +59,7 @@ __all__ = [
|
|
|
59
59
|
"logicsig",
|
|
60
60
|
"op",
|
|
61
61
|
"subroutine",
|
|
62
|
+
"size_of",
|
|
62
63
|
"uenumerate",
|
|
63
64
|
"urange",
|
|
64
65
|
]
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import typing
|
|
2
|
+
|
|
3
|
+
import pytest
|
|
4
|
+
from algopy import Account, Application, Asset, Bytes, String, UInt64, arc4, size_of
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Swapped(arc4.Struct):
|
|
8
|
+
a: arc4.UInt64
|
|
9
|
+
b: arc4.Bool
|
|
10
|
+
c: arc4.Tuple[arc4.UInt64, arc4.Bool, arc4.Bool]
|
|
11
|
+
d: arc4.StaticArray[arc4.Bool, typing.Literal[10]]
|
|
12
|
+
e: arc4.Tuple[arc4.UInt64, arc4.StaticArray[arc4.UInt64, typing.Literal[3]]]
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class WhatsMySize(typing.NamedTuple):
|
|
16
|
+
foo: UInt64
|
|
17
|
+
bar: bool
|
|
18
|
+
baz: Swapped
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class MyTuple(typing.NamedTuple):
|
|
22
|
+
foo: UInt64
|
|
23
|
+
bar: bool
|
|
24
|
+
baz: bool
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class MyDynamicSizedTuple(typing.NamedTuple):
|
|
28
|
+
foo: UInt64
|
|
29
|
+
bar: String
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def test_size_of() -> None:
|
|
33
|
+
x = arc4.UInt64(0)
|
|
34
|
+
assert size_of(x) == 8
|
|
35
|
+
assert size_of(arc4.UInt64) == 8
|
|
36
|
+
assert size_of(UInt64) == 8
|
|
37
|
+
assert size_of(arc4.Address) == 32
|
|
38
|
+
assert size_of(Account) == 32
|
|
39
|
+
assert size_of(Application) == 8
|
|
40
|
+
assert size_of(Asset) == 8
|
|
41
|
+
assert size_of(bool) == 8
|
|
42
|
+
assert size_of(tuple[bool]) == 1
|
|
43
|
+
assert size_of(tuple[bool, bool, bool, bool, bool, bool, bool, bool]) == 1
|
|
44
|
+
assert size_of(tuple[bool, bool, bool, bool, bool, bool, bool, bool, bool]) == 2
|
|
45
|
+
assert size_of(tuple[arc4.UInt64, UInt64, bool, arc4.Bool]) == 17
|
|
46
|
+
assert size_of(arc4.Tuple[arc4.UInt64, arc4.Bool, arc4.Bool] == 9)
|
|
47
|
+
assert size_of(MyTuple) == 9
|
|
48
|
+
assert size_of(WhatsMySize) == 61
|
|
49
|
+
assert size_of(arc4.StaticArray[arc4.Byte, typing.Literal[7]]) == 7
|
|
50
|
+
assert size_of(arc4.StaticArray(arc4.Byte(), arc4.Byte())) == 2
|
|
51
|
+
assert size_of(Swapped) == 52
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
@pytest.mark.parametrize(
|
|
55
|
+
"typ",
|
|
56
|
+
[
|
|
57
|
+
arc4.StaticArray[arc4.DynamicBytes, typing.Literal[7]],
|
|
58
|
+
tuple[arc4.DynamicBytes, Bytes],
|
|
59
|
+
arc4.Tuple[arc4.UInt64, arc4.String],
|
|
60
|
+
MyDynamicSizedTuple,
|
|
61
|
+
],
|
|
62
|
+
)
|
|
63
|
+
def test_size_of_dynamic(typ: type) -> None:
|
|
64
|
+
with pytest.raises(ValueError, match="is dynamically sized"):
|
|
65
|
+
size_of(typ)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/pull_request_template.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/.github/workflows/gh-pages.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/arc4-types.md
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/avm-types.md
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/concepts.md
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/index.md
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/opcodes.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/subroutines.md
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/docs/testing-guide/transactions.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/auction/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/auction/contract.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/auction/test_contract.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/htlc_logicsig/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/marketplace/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/marketplace/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/simple_voting/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/simple_voting/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/zk_whitelist/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/examples/zk_whitelist/contract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/check_stubs_cov.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/refresh_test_artifacts.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/scripts/validate_examples.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/compiled.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/constants.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/context.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/enums.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/gtxn.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/itxn.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/itxn_loader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/mutable.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/block.py
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/crypto.py
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/itxn.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/misc.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/pure.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/op/txn.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/protocols.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/py.typed
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/serialize.py
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/box.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/state/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/_algopy_testing/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy_testing/__init__.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/src/algopy_testing/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/templates/.release_notes.md.j2
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_abi_call.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_address.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_dynamic_array.py
RENAMED
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_dynamic_bytes.py
RENAMED
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_static_array.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{algorand_python_testing-0.5.0 → algorand_python_testing-0.6.0b1}/tests/arc4/test_ufixednxm.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|