Metadata-Version: 2.1
Name: autonomy_dev
Version: 0.2.77
Summary: A collection of tooling to enable open source development of autonomy tools
Home-page: https://github.com/8ball030/auto_dev
License: Apache-2.0
Author: 8Baller
Author-email: 8ball030@gmail.com
Requires-Python: >=3.9,<3.12
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.8
Provides-Extra: all
Provides-Extra: dev
Provides-Extra: doc
Requires-Dist: asn1crypto (>=1.4.0,<1.5.0)
Requires-Dist: eth-abi (==5.1.0)
Requires-Dist: eth-utils (==2.3.1)
Requires-Dist: faker (>=30.0.0,<31.0.0)
Requires-Dist: grpcio (==1.65.4)
Requires-Dist: hypothesis (==6.114.1)
Requires-Dist: ipfshttpclient (==0.8.0a2)
Requires-Dist: isort (>=5.13.2,<6.0.0) ; extra == "all"
Requires-Dist: mkdocstrings[python] (>=0.25.2,<0.26.0) ; extra == "doc"
Requires-Dist: open-aea (==1.57.0) ; extra == "all"
Requires-Dist: open-aea-cli-ipfs (==1.57.0)
Requires-Dist: open-aea-ledger-cosmos (==1.57.0) ; extra == "all"
Requires-Dist: open-aea-ledger-ethereum (==1.57.0) ; extra == "all"
Requires-Dist: open-aea-ledger-solana (==1.57.0) ; extra == "all"
Requires-Dist: open-aea-test-autonomy (==0.16.1)
Requires-Dist: open-autonomy (==0.16.1) ; extra == "all"
Requires-Dist: openapi-spec-validator (==0.2.8)
Requires-Dist: protobuf (>=4.21.6,<4.25.0)
Requires-Dist: py-eth-sig-utils
Requires-Dist: py-multibase (==1.0.3)
Requires-Dist: py-multicodec (==0.2.1)
Requires-Dist: pycryptodome (==3.20.0)
Requires-Dist: pydantic (>=2.8.2,<3.0.0) ; extra == "all"
Requires-Dist: pytest-xdist (>=3.6.1,<4.0.0)
Requires-Dist: requests (==2.28.1)
Requires-Dist: rich-click (>=1.8.2,<2.0.0)
Requires-Dist: ruff (>=0.5.7,<0.6.0) ; extra == "all"
Requires-Dist: tbump (>=6.11.0,<7.0.0) ; extra == "all" or extra == "dev"
Requires-Dist: toml (==0.10.2) ; extra == "dev"
Requires-Dist: tomte[black,cli,ledgers,tests] (==0.2.17)
Requires-Dist: typing_extensions (>=3.10.0.2)
Requires-Dist: web3 (>=6.0.0,<7)
Description-Content-Type: text/markdown

# Autonomy Dev

Tooling to speed up autonomy development.

## Usage

There are a number of useful command tools available.

- Dev Tooling: linting, formatting and dependency management.

- Scaffolding: Tooling to auto generate repositories and components.

### Create

- Templated agents for speedy proof of concept and getting started fast.


### Scaffolding of Components

#### Protocols

We provide tools to generate protocols components from specs.

```bash
adev create tmp_agent_name -t eightballer/base --force
cd tmp_agent_name
adev scaffold protocol ../specs/protocols/balances.yaml 
aea -s publish --push-missing
...
Starting Auto Dev v0.2.75 ...
Using 32 processes for processing
Setting log level to INFO
Creating agent tmp_agent_name from template eightballer/base
Executing command: ['poetry', 'run', 'autonomy', 'fetch', 'bafybeidohldv57m3jkc33zpgbxukaushmcibmt4ncnsnomd3pvpocxs3ui', '--alias', 'tmp_agent_name']
Command executed successfully.
Agent tmp_agent_name created successfully.
Starting Auto Dev v0.2.75 ...
Using 32 processes for processing
Setting log level to INFO
Read protocol specification: ../specs/protocols/balances.yaml
protolint version 0.50.0(d6a3250)
protolint version 0.50.0(d6a3250)
Updated: /home/eight/Projects/StationsStation/repos/capitalisation_station/tmp_agent_name/protocols/balances/custom_types.py
New protocol scaffolded at /home/eight/Projects/StationsStation/repos/capitalisation_station/tmp_agent_name/protocols/balances

...
# Tests can be run as well;
adev test -p packages/eightballer/protocols/balances
Testing path: `packages/eightballer/protocols/balances/` ⌛
Testing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━   0% -:--:--👌 - packages/eightballer/protocols/balances/
Testing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:02
Testing completed successfully! ✅
```

#### Contracts

We can scaffold a new contract using the `adev scaffold contract` command. This will create a new directory with;
- open-aea contract component
    - open-aea contract component class 🎉
    - open-aea contract component function generation 🚧
    - open-aea contract component test generation 🚧


```bash
adev scaffold contract 0xc939df369C0Fc240C975A6dEEEE77d87bCFaC259 beyond_pricer \
      --block-explorer-api-key $BLOCK_EXPLORER_API_KEY \
      --block-explorer-url "https://api-goerli.arbiscan.io"
```


## Installation

```bash
pip install autonomy-dev[all]
```
## Release

```bash
checkout main
git pull
adev release
```


# Project Status Badges
[![Code Quality](https://github.com/8ball030/auto_dev/actions/workflows/common_check.yaml/badge.svg)](https://github.com/8ball030/auto_dev/actions/workflows/common_check.yaml)

