Metadata-Version: 2.4
Name: arcsmith
Version: 0.0.5
Summary: Utilities for building clean, maintainable ArcPy toolboxes
License-Expression: GPL-3.0-only
License-File: LICENSE
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.13
Description-Content-Type: text/markdown

# arcsmith

> Utilities for building clean, maintainable ArcPy toolboxes.

[![Python](https://img.shields.io/badge/python-3.x-blue.svg)](https://www.python.org/)
[![PyPI](https://img.shields.io/pypi/v/arcsmith.svg)](https://pypi.org/project/arcsmith/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

A tool builder's toolbox.

ArcSmith is a library for building **ArcGIS Pro Python toolboxes** (`.pyt` files). It does not replace `arcpy`. It works on top of it and handles common toolbox development tasks such as: reading parameter state, building quoted SQL `WHERE` clauses, applying symbology, populating value lists, and creating output geodatabases.

Full documentation at [ArcSmith.dev](https://arcsmith.dev)

---

## Installation

```bash
pip install arcsmith
```

Requires `arcpy`. Install into the ArcGIS Pro Python environment.

---

## Modules

| Module | Description |
|---|---|
| `arcsmith.param` | Parameter state detection, cascade resets, dropdown population, checkbox-driven visibility |
| `arcsmith.lyr` | Add layers to a map, apply `.lyrx` symbology, retrieve or remove layers by name or source |
| `arcsmith.ws` | Create output geodatabases and route intermediate outputs to memory or scratch GDB |
| `arcsmith.fc` | Build SQL WHERE clauses, export filtered subsets, copy with field and row filters |
| `arcsmith.flds` | Build field mappings, keep or drop fields, standardize blanks, list unique values |
| `arcsmith.tbl` | Create standalone tables from in-memory rows, populate a field from a key/value lookup, join external table columns into a feature class |

---

## License

[MIT](LICENSE)