# fetchartifact This is a Python interface to http://go/fetchartifact, which is used for fetching artifacts from http://go/ab. ## Usage ```python from fetchartifact import fetchartifact async def main() -> None: artifacts = await fetch_artifact( branch="aosp-master-ndk", target="linux", build="1234", pattern="android-ndk-*.zip", ) for artifact in artifacts: print(f"Downloaded {artifact}") ``` ## Development For first time set-up, install https://python-poetry.org/, then run `poetry install` to install the project's dependencies. This project uses mypy and pylint for linting, black and isort for auto-formatting, and pytest for testing. All of these tools will be installed automatically, but you may want to configure editor integration for them. To run any of the tools poetry installed, you can either prefix all your commands with `poetry run` (as in `poetry run pytest`), or you can run `poetry shell` to enter a shell with all the tools on the `PATH`. The following instructions assume you've run `poetry shell` first. To run the linters: ```bash mypy fetchartifact tests pylint fetchartifact tests ``` To auto-format the code (though I recommend configuring your editor to do this on save): ```bash isort . black . ``` To run the tests and generate coverage: ```bash pytest --cov=fetchartifact ``` Optionally, pass `--cov-report=html` to generate an HTML report, or `--cov-report=xml` to generate an XML report for your editor. Some tests require network access. If you need to run the tests in an environment that cannot access the Android build servers, add `-m "not requires_network"` to skip those tests. Only a mock service can be tested without network access.