Metadata-Version: 2.4
Name: arcsmith
Version: 0.0.6
Summary: Utilities for building clean, maintainable ArcPy toolboxes
Project-URL: Homepage, https://arcsmith.dev
Project-URL: Documentation, https://arcsmith.dev
Project-URL: Repository, https://github.com/HFM3/arcsmith
Project-URL: Issues, https://github.com/HFM3/arcsmith/issues
Author: HFM3
License-Expression: MIT
License-File: LICENSE
Keywords: arcgis,arcpy,geoprocessing,gis,pyt,toolbox
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: GIS
Requires-Python: >=3.11
Description-Content-Type: text/markdown

# ArcSmith

> A tool builder's toolbox.

[![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-blue.svg)](https://github.com/HFM3/arcsmith/blob/HEAD/pypi_package/LICENSE)

### Utilities for building clean, maintainable ArcPy toolboxes.

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, and timely self-clearing validation messages |
| `arcsmith.lyr` | Add layers to a map, apply `.lyrx` or simple symbology, create group layers, 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, validate geometry types, compute polygon area |
| `arcsmith.flds` | Build field mappings, add/rename/delete fields, standardize blanks, list columns and unique values |
| `arcsmith.tbl` | Create standalone tables from rows, append rows, key/value field lookups, join external columns, manage tables in a map |

---

## Citing ArcSmith

Using ArcSmith in research or published work? A citation is appreciated (it is not
required under the MIT license, but documented use builds trust in the tool).
APA, Chicago, and BibTeX formats, kept current with each release, are at
**[arcsmith.dev/docs/cite](https://arcsmith.dev/docs/cite/)**.

```bibtex
@software{ArcSmith,
  author  = {Mros, III, Henry F.},
  title   = {ArcSmith: ArcPy Toolbox Utilities},
  year    = {2026},
  version = {0.0.6},
  url     = {https://pypi.org/project/arcsmith/}
}
```

---

## License

[MIT](https://github.com/HFM3/arcsmith/blob/HEAD/pypi_package/LICENSE). Free to use, modify, and redistribute, including in commercial or proprietary tools, as long as the copyright notice and license text are retained. See the LICENSE file for the full terms.