Tags: z80dev/ape
Tags
fix: dataclassy regression (ApeWorX#55) * chore: upgrade dataclassy to v0.10.1 * refactor: normalize abstract dataclass usage * fix: forgot to implement abstractmethod (now visible with previous) * fix: remove unused Web3 subclassing NOTE: Fixes issue with MRO introduced in dataclassy v0.10.1 * fix: remove unnecessary abstractmethod (visible because of abc fix) * fix: incorrect `__contains__` use for `AccountContainerAPI` * feat: add `remove`/`__delitem__` to `AccountContainerAPI`
fix: pin `dataclassy` to avoid `AttributeError` with v0.10.1 (ApeWorX#54 )
chore: add Python 3.9 to supported versions (ApeWorX#52)
refactor: cache manifest (ApeWorX#41) * refactor: cache manifest to disk between compilations * fix: fixing some issues with manifest cache on disk Test plan: Made an ape project with one dep and one vyper contract. Ran `ape console`. First `project.contracts` lookup caused compilation. Subsequent lookups used the cache. Changing contract contents triggered a re-compile of only the changed contract. Adding a new contract triggered a compilation of just the one new file. Deleting a file caused the contract to disappear from `project.contracts`. * fix: use `with` to avoid leaking open file in eth_pm compiler Saw this warning while compiling JSON eth_pm packages. $ ( rm -rf .build/ ; ape console ) In [1]: contracts = project.contracts INFO: Compiling 'contracts/contract.vy' INFO: Compiling 'contracts/escrow.json' /src/ape/src/ape_pm/compiler.py:23: ResourceWarning: unclosed file <_io.TextIOWrapper name='/src/ape/example-ignore/contracts/escrow.json' mode='r' encoding='UTF-8'> data = json.load(path.open()) ResourceWarning: Enable tracemalloc to get the object allocation traceback * refactor: remove unused `ProjectManager.manifest` property This property is unused and when I was experimenting in the console its existence confused me. It's using `self.sources` to build the `PackageManifest`, which is `List[Path]` when it should be `Dict[str, Source]`. I also think it's confusing to have a `manifest` and `cached_manifest` property. I'll add this property back if its needed. * fix: give Source a `compute_checksum` method and use it Needed this to fix these mypy errors: src/ape/managers/project.py:116: error: Item "None" of "Optional[Checksum]" has no attribute "algorithm" src/ape/managers/project.py:118: error: Item "None" of "Optional[Checksum]" has no attribute "hash" * refactor: code review feedback * refactor: detect deleted ethpm JSON files via new sourcePath attribute * refactor: isort a few files flagged by CI * refactor: code review feedback Instead of duplicating checksum logic in `Source.compute_checksum`, use the `compute_checksum` util function. Fix isort issues (older version of isort was classifying requests as a first party package). Co-authored-by: Just some guy <3859395+fubuloubu@users.noreply.github.com>
test: add JSON schema fuzz test strategy (ApeWorX#32) * test: add JSON schema fuzz test strategy * test: add parametrized tests using examples from ethPM spec * refactor: rename test file to be more accurate * refactor: remove unnecessary tests * refactor: leverage dataclasses more * fix: json serialization must sort keys per EIP; add EIP notes * fix: `name` and `version` in Manifest can be empty, add `manifest` default * docs: add EIP notes to manifest * test: add xfail to schema test because the schema produces erronous data * refactor: fixup unprocessed dicts
fix: compiler integration (ApeWorX#28) * fix: use absolute paths instead of relative ones * refactor: display compilation notification in compiler manager
fix: detect if a key provided by a plugin would overwrite a registrat… …ion (ApeWorX#27)
refactor: integrate "1st class" plugins into project (ApeWorX#6) * fix: layout issues * fix: add flake8 to lint dependencies * refactor: move `ape` package to subdir under `src/` * refactor: migrate `ape-accounts` repo to 1st class plugin undo `src/` * feat: add `ape compile` 1st class plugin * fix: isort lint issues * chore: fixup CI calls * test: add test for CLI invocation * chore: fixup testing cli flags * fix: install backported `importlib-metadata` for Python <3.8 * refactor: remove unnecessary default package call * refactor: remove export * fix: need password to delete * test: add fuzz testing, parametrize more * refactor: remove "fuzz" extra as it breaks tests