Name | autobox JSON |
Version |
0.1.0
JSON |
| download |
home_page | None |
Summary | Automation for ArcGIS Pro toolboxes, script tools, and documentation from Python objects. |
upload_time | 2024-12-27 23:03:44 |
maintainer | None |
docs_url | None |
author | None |
requires_python | ==3.11 |
license | MIT License Copyright (c) 2024-2025 Integrated Informatics (USA) Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
keywords |
toolbox
geoprocessing
arcgis
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# autobox
Automation for ArcGIS Pro toolboxes, script tools, and documentation from
Python objects. `autobox` generates the modern ArcGIS Pro Toolbox format (`.atbx`)
and has support for Script Tools, Parameters, Dependencies, Filters,
Toolsets, and documentation. Pure Python package and cross-platform (no dependencies).
## Installation
`autobox` is available from the [Python Package Index](https://pypi.org/project/autobox/).
## Python Compatibility
The `autobox` library is compatible with Python 3.11 to 3.13. Developed and
tested on **macOS** and **Windows**, should be fine on **Linux** too.
## Usage
`autobox` can be used to:
* Create a `Toolbox` and save to `.atbx` format
* Create a `Toolset` and add to a `Toolbox` or `Toolset`
* Create a `ScriptTool` with `Parameters` and add to a `Toolbox` or `Toolset`
* Add an `ExecutionScript` to a `ScriptTool`
* Add an optional `ValidationScript` to a `ScriptTool`
* Create and add a `Filter` to a `Parameter`
* Add a dependency to a `Parameter`
* Add documentation to `Toolbox`, `ScriptTool`, and`Parameter`
### Create a `Toolbox`
Create an empty `Toolbox` in the home folder:
```python
from pathlib import Path
from autobox import Toolbox
# Creates an empty Toolbox
tbx = Toolbox(name='demonstration', label='Demonstration Toolbox', alias='demo')
# Save the toolbox to disk, overwrite is False by default
tbx_path = tbx.save(Path.home(), overwrite=True)
```
### Create a `ScriptTool`
Create a `ScriptTool` in the root of the `Toolbox`
```python
from pathlib import Path
from autobox import ScriptTool, Toolbox
from autobox.parameter import FeatureClassParameter, LongParameter
# Create Simple Script Tool
points = FeatureClassParameter(label='Random Points')
sample_size = LongParameter(label='Sample Size', is_required=False)
poly = FeatureClassParameter(label='Bounding Boxes')
out = FeatureClassParameter(label='Output Feature Class', is_input=False)
tool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')
for param in points, sample_size, poly, out:
tool.add_parameter(param)
tbx = Toolbox(name='demonstration')
tbx.add_script_tool(tool)
tbx_path = tbx.save(Path.home(), overwrite=True)
```
This generates a `ScriptTool` that looks like this:
![](https://github.com/realiii/autobox/blob/develop/resources/images/simple_script_tool.png?raw=true)
Or create a `ScriptTool` inside of a `Toolset`:
```python
from pathlib import Path
from autobox import ScriptTool, Toolbox, Toolset
from autobox.parameter import FeatureClassParameter, LongParameter
# Create Simple Script Tool
points = FeatureClassParameter(label='Random Points')
sample_size = LongParameter(label='Sample Size', is_required=False)
poly = FeatureClassParameter(label='Bounding Boxes')
out = FeatureClassParameter(label='Output Feature Class', is_input=False)
tool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')
for param in points, sample_size, poly, out:
tool.add_parameter(param)
# Create a Toolset, add the tool to the Toolset
toolset = Toolset(name='Overlay Tools')
toolset.add_script_tool(tool)
tbx = Toolbox(name='demonstration')
# Add Toolset to the Toolbox
tbx.add_toolset(toolset)
tbx_path = tbx.save(Path.home(), overwrite=True)
```
The `ScriptTool` looks the same but now there is an **Overlay Tools** `Toolset` in the `Toolbox`:
![](https://github.com/realiii/autobox/blob/develop/resources/images/toolset.png?raw=true)
Empty `Toolsets` are not persisted unless the `Toolset` (or a child `Toolset` of
the `Toolset`) contains a `ScriptTool`. In this example the `Toolbox` will be empty:
```python
from pathlib import Path
from autobox import Toolbox, Toolset
toolset = Toolset(name='Overlay Tools')
tbx = Toolbox(name='demonstration')
tbx.add_toolset(toolset)
tbx_path = tbx.save(Path.home(), overwrite=True)
```
### Add Documentation
Documentation can be added to a `Toolbox`, `ScriptTool`, or `Parameter`. On a `Toolbox`:
#### `Toolbox` Documentation
```python
from autobox import Toolbox
tbx = Toolbox(name='demonstration', label='Demonstration Toolbox', alias='demo',
description='Here is where a longer description of the Toolbox can be included.')
```
![](https://github.com/realiii/autobox/blob/develop/resources/images/toolbox_doc.png?raw=true)
#### `ScriptTool` Documentation
There are couple ways to document a `ScriptTool` using `description` and / or `summary`:
```python
from autobox import ScriptTool
tool = ScriptTool(
name='SimpleScriptTool', label='Simple Script Tool',
description='Use the description for a shorter plain text explanation of the Tool purpose',
summary='The summary can hold some basic markup, <b>bold example</b>')
```
![](https://github.com/realiii/autobox/blob/develop/resources/images/script_tool_doc.png?raw=true)
An image can also be included to show on the `ScriptTool`, this is done by setting the `illustration` property:
```python
from pathlib import Path
from autobox import ScriptTool
tool = ScriptTool(
name='SimpleScriptTool', label='Simple Script Tool',
description='Use the description for a shorter plain text explanation of the Tool purpose',
summary='The summary can hold some basic markup, <b>bold example</b>')
# NOTE only png and jpg formats are supported
tool.illustration = Path('../data/images/numpy_illustration.png')
# NOTE Icon for the Script Tool can be set too,
# Technically not documentation but worth mentioning
tool.icon = Path('../data/images/python_icon.png')
```
![](https://github.com/realiii/autobox/blob/develop/resources/images/illustration_icon.png?raw=true)
#### `Parameter` Documentation
Each individual `Parameter` also supports documentation via `description` which can be plain text or contain basic markup
```python
from autobox.parameter import FeatureClassParameter
points = FeatureClassParameter(
label='Random Points',
description='Select a feature class with randomly spaced '
'points over the area of interest')
```
![](https://github.com/realiii/autobox/blob/develop/resources/images/parameter_doc.png?raw=true)
### Extended Example
This example shows use of `Filters`, setting a dependency `Parameter`, and using a category
for grouping parameters:
```python
from pathlib import Path
from autobox import ScriptTool, Toolbox, Toolset
from autobox.enum import GeometryType, LinearUnit
from autobox.filter import (
FeatureClassTypeFilter, LinearUnitFilter, LongRangeFilter)
from autobox.parameter import (
FeatureClassParameter, LinearUnitParameter, LongParameter)
# NOTE only allow for point and multi point feature classes
points = FeatureClassParameter(
label='Random Points',
description='Select a feature class with randomly spaced '
'points over the area of interest')
points.filter = FeatureClassTypeFilter((GeometryType.POINT, GeometryType.MULTIPOINT))
# NOTE keep the sample size between 100 and 1000
sample_size = LongParameter(
label='Sample Size', category='Pieces of Flair', is_required=False)
sample_size.filter = LongRangeFilter(minimum=100, maximum=1000)
buffer_units = LinearUnitParameter(
label='Buffer Units', category='Pieces of Flair', is_required=False)
# NOTE use of dependency
buffer_units.dependency = points
buffer_units.filter = LinearUnitFilter((LinearUnit.METERS, LinearUnit.FEET))
# NOTE only allow for polygon feature classes
poly = FeatureClassParameter(label='Bounding Boxes')
poly.filter = FeatureClassTypeFilter(GeometryType.POLYGON)
out = FeatureClassParameter(label='Output Feature Class', is_input=False)
tool = ScriptTool(
name='SimpleScriptTool', label='Simple Script Tool',
description='Use the description for a shorter plain text explanation of the Tool purpose',
summary='The summary can hold some basic markup, <b>bold example</b>')
for param in points, sample_size, buffer_units, poly, out:
tool.add_parameter(param)
# Create a Toolset, add the tool to the Toolset
toolset = Toolset(name='Overlay Tools')
toolset.add_script_tool(tool)
tbx = Toolbox(name='demonstration', label='Demonstration Toolbox', alias='demo',
description='Here is where a longer description of the Toolbox can be included.')
tbx.add_toolset(toolset)
tbx_path = tbx.save(Path.home(), overwrite=True)
```
The result of this snippet is a `ScriptTool` which looks like:
![](https://github.com/realiii/autobox/blob/develop/resources/images/extended.png?raw=true)
Notice the error message because the **Sample Size** is out of range:
![](https://github.com/realiii/autobox/blob/develop/resources/images/extended_error.png?raw=true)
### Execution and Validation Scripts
For completeness, here are a few examples of setting the `ExecutionScript` and `ValidationScript`.
The `ExecutionScript` will almost always be needed and the `ValidationScript` is likely optional
for most use cases. Use the class methods `from_code` and `from_file` to construct an instance.
```python
from pathlib import Path
from autobox import ExecutionScript, ScriptTool, ValidationScript
# NOTE example adding from a code snippet
tool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')
tool.execution_script = ExecutionScript.from_code('print("Hello World")')
# NOTE example adding from a file and choosing to embed
tool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')
tool.execution_script = ExecutionScript.from_file(
Path('../data/scripts/subfolder/example.py'), embed=True)
# NOTE validator scripts are always embedded
tool.validation_script = ValidationScript.from_file(Path('../data/scripts/validator.py'))
```
## License
[MIT](https://raw.githubusercontent.com/realiii/autobox/refs/heads/develop/LICENSE)
## Release History
### v0.1.0
* initial release
* Create a `Toolbox` and save to `.atbx` format
* Create a `Toolset` and add to a `Toolbox` or `Toolset`
* Create a `ScriptTool` with `Parameters` and add to a `Toolbox` or `Toolset`
* Add an `ExecutionScript` to a `ScriptTool`
* Add an optional `ValidationScript` to a `ScriptTool`
* Create and add a `Filter` to a `Parameter`
* Add a dependency to a `Parameter`
* Add documentation to `Toolbox`, `ScriptTool`, and `Parameter`
* `Parameter` types added in this release:
* `AnalysisCellSizeParameter`
* `ArealUnitParameter`
* `BooleanParameter`
* `CadDrawingDatasetParameter`
* `CalculatorExpressionParameter`
* `CatalogLayerParameter`
* `CellSizeXYParameter`
* `CoordinateSystemParameter`
* `CoverageFeatureClassParameter`
* `CoverageParameter`
* `DataElementParameter`
* `DatasetTypeParameter`
* `DateParameter`
* `DbaseTableParameter`
* `DoubleParameter`
* `EncryptedStringParameter`
* `EnvelopeParameter`
* `ExtentParameter`
* `FeatureClassParameter`
* `FeatureDatasetParameter`
* `FeatureLayerParameter`
* `FieldParameter`
* `FileParameter`
* `FolderParameter`
* `GPLayerParameter`
* `GroupLayerParameter`
* `LasDatasetLayerParameter`
* `LasDatasetParameter`
* `LayerFileParameter`
* `LinearUnitParameter`
* `LongParameter`
* `MapDocumentParameter`
* `MapParameter`
* `MosaicDatasetParameter`
* `MosaicLayerParameter`
* `NetworkDatasetParameter`
* `PointParameter`
* `PrjFileParameter`
* `RasterBandParameter`
* `RasterCalculatorExpressionParameter`
* `RasterDataLayerParameter`
* `RasterDatasetParameter`
* `RasterLayerParameter`
* `RelationshipClassParameter`
* `SACellSizeParameter`
* `SQLExpressionParameter`
* `ShapeFileParameter`
* `SpatialReferenceParameter`
* `StringHiddenParameter`
* `StringParameter`
* `TableParameter`
* `TableViewParameter`
* `TextfileParameter`
* `TinLayerParameter`
* `TinParameter`
* `TopologyParameter`
* `WorkspaceParameter`
* `Filter` types added in this release:
* `ArealUnitFilter`
* `FeatureClassTypeFilter`
* `FieldTypeFilter`
* `FileTypeFilter`
* `LinearUnitFilter`
* `WorkspaceTypeFilter`
Raw data
{
"_id": null,
"home_page": null,
"name": "autobox",
"maintainer": null,
"docs_url": null,
"requires_python": "==3.11",
"maintainer_email": null,
"keywords": "toolbox, geoprocessing, ArcGIS",
"author": null,
"author_email": "\"Integrated Informatics (USA) Inc.\" <contact@integrated-informatics.com>",
"download_url": null,
"platform": null,
"description": "# autobox\nAutomation for ArcGIS Pro toolboxes, script tools, and documentation from \nPython objects. `autobox` generates the modern ArcGIS Pro Toolbox format (`.atbx`)\nand has support for Script Tools, Parameters, Dependencies, Filters, \nToolsets, and documentation. Pure Python package and cross-platform (no dependencies).\n\n\n## Installation\n\n`autobox` is available from the [Python Package Index](https://pypi.org/project/autobox/).\n\n\n## Python Compatibility\n\nThe `autobox` library is compatible with Python 3.11 to 3.13. Developed and \ntested on **macOS** and **Windows**, should be fine on **Linux** too.\n\n\n## Usage\n\n`autobox` can be used to: \n* Create a `Toolbox` and save to `.atbx` format\n* Create a `Toolset` and add to a `Toolbox` or `Toolset`\n* Create a `ScriptTool` with `Parameters` and add to a `Toolbox` or `Toolset`\n* Add an `ExecutionScript` to a `ScriptTool`\n* Add an optional `ValidationScript` to a `ScriptTool`\n* Create and add a `Filter` to a `Parameter`\n* Add a dependency to a `Parameter`\n* Add documentation to `Toolbox`, `ScriptTool`, and`Parameter`\n\n\n### Create a `Toolbox`\n\nCreate an empty `Toolbox` in the home folder:\n\n```python\nfrom pathlib import Path\nfrom autobox import Toolbox\n\n# Creates an empty Toolbox\ntbx = Toolbox(name='demonstration', label='Demonstration Toolbox', alias='demo')\n\n# Save the toolbox to disk, overwrite is False by default\ntbx_path = tbx.save(Path.home(), overwrite=True)\n```\n\n### Create a `ScriptTool`\nCreate a `ScriptTool` in the root of the `Toolbox` \n\n```python\nfrom pathlib import Path\nfrom autobox import ScriptTool, Toolbox\nfrom autobox.parameter import FeatureClassParameter, LongParameter\n\n# Create Simple Script Tool\npoints = FeatureClassParameter(label='Random Points')\nsample_size = LongParameter(label='Sample Size', is_required=False)\npoly = FeatureClassParameter(label='Bounding Boxes')\nout = FeatureClassParameter(label='Output Feature Class', is_input=False)\ntool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')\nfor param in points, sample_size, poly, out:\n tool.add_parameter(param)\n\ntbx = Toolbox(name='demonstration')\ntbx.add_script_tool(tool)\ntbx_path = tbx.save(Path.home(), overwrite=True)\n```\nThis generates a `ScriptTool` that looks like this:\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/simple_script_tool.png?raw=true)\n\n\nOr create a `ScriptTool` inside of a `Toolset`:\n```python\nfrom pathlib import Path\nfrom autobox import ScriptTool, Toolbox, Toolset\nfrom autobox.parameter import FeatureClassParameter, LongParameter\n\n# Create Simple Script Tool\npoints = FeatureClassParameter(label='Random Points')\nsample_size = LongParameter(label='Sample Size', is_required=False)\npoly = FeatureClassParameter(label='Bounding Boxes')\nout = FeatureClassParameter(label='Output Feature Class', is_input=False)\ntool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')\nfor param in points, sample_size, poly, out:\n tool.add_parameter(param)\n\n# Create a Toolset, add the tool to the Toolset\ntoolset = Toolset(name='Overlay Tools')\ntoolset.add_script_tool(tool)\n\ntbx = Toolbox(name='demonstration')\n# Add Toolset to the Toolbox\ntbx.add_toolset(toolset)\ntbx_path = tbx.save(Path.home(), overwrite=True)\n```\n\nThe `ScriptTool` looks the same but now there is an **Overlay Tools** `Toolset` in the `Toolbox`:\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/toolset.png?raw=true)\n\nEmpty `Toolsets` are not persisted unless the `Toolset` (or a child `Toolset` of \nthe `Toolset`) contains a `ScriptTool`. In this example the `Toolbox` will be empty:\n\n```python\nfrom pathlib import Path\nfrom autobox import Toolbox, Toolset\n\ntoolset = Toolset(name='Overlay Tools')\ntbx = Toolbox(name='demonstration')\ntbx.add_toolset(toolset)\ntbx_path = tbx.save(Path.home(), overwrite=True)\n```\n\n### Add Documentation\nDocumentation can be added to a `Toolbox`, `ScriptTool`, or `Parameter`. On a `Toolbox`:\n\n#### `Toolbox` Documentation\n```python\nfrom autobox import Toolbox\n\ntbx = Toolbox(name='demonstration', label='Demonstration Toolbox', alias='demo', \n description='Here is where a longer description of the Toolbox can be included.')\n```\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/toolbox_doc.png?raw=true)\n\n\n#### `ScriptTool` Documentation\nThere are couple ways to document a `ScriptTool` using `description` and / or `summary`:\n\n```python\nfrom autobox import ScriptTool\n\ntool = ScriptTool(\n name='SimpleScriptTool', label='Simple Script Tool',\n description='Use the description for a shorter plain text explanation of the Tool purpose',\n summary='The summary can hold some basic markup, <b>bold example</b>')\n```\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/script_tool_doc.png?raw=true)\n\nAn image can also be included to show on the `ScriptTool`, this is done by setting the `illustration` property:\n```python\nfrom pathlib import Path\nfrom autobox import ScriptTool\n\ntool = ScriptTool(\n name='SimpleScriptTool', label='Simple Script Tool',\n description='Use the description for a shorter plain text explanation of the Tool purpose',\n summary='The summary can hold some basic markup, <b>bold example</b>')\n\n# NOTE only png and jpg formats are supported\ntool.illustration = Path('../data/images/numpy_illustration.png')\n\n# NOTE Icon for the Script Tool can be set too,\n# Technically not documentation but worth mentioning \ntool.icon = Path('../data/images/python_icon.png')\n\n```\n![](https://github.com/realiii/autobox/blob/develop/resources/images/illustration_icon.png?raw=true)\n\n#### `Parameter` Documentation\nEach individual `Parameter` also supports documentation via `description` which can be plain text or contain basic markup\n\n```python\nfrom autobox.parameter import FeatureClassParameter\n\npoints = FeatureClassParameter(\n label='Random Points',\n description='Select a feature class with randomly spaced '\n 'points over the area of interest')\n\n```\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/parameter_doc.png?raw=true)\n\n### Extended Example\nThis example shows use of `Filters`, setting a dependency `Parameter`, and using a category \nfor grouping parameters:\n\n```python\nfrom pathlib import Path\nfrom autobox import ScriptTool, Toolbox, Toolset\nfrom autobox.enum import GeometryType, LinearUnit\nfrom autobox.filter import (\n FeatureClassTypeFilter, LinearUnitFilter, LongRangeFilter)\nfrom autobox.parameter import (\n FeatureClassParameter, LinearUnitParameter, LongParameter)\n\n\n# NOTE only allow for point and multi point feature classes\npoints = FeatureClassParameter(\n label='Random Points',\n description='Select a feature class with randomly spaced '\n 'points over the area of interest')\npoints.filter = FeatureClassTypeFilter((GeometryType.POINT, GeometryType.MULTIPOINT))\n\n# NOTE keep the sample size between 100 and 1000\nsample_size = LongParameter(\n label='Sample Size', category='Pieces of Flair', is_required=False)\nsample_size.filter = LongRangeFilter(minimum=100, maximum=1000)\n\nbuffer_units = LinearUnitParameter(\n label='Buffer Units', category='Pieces of Flair', is_required=False)\n# NOTE use of dependency\nbuffer_units.dependency = points\nbuffer_units.filter = LinearUnitFilter((LinearUnit.METERS, LinearUnit.FEET))\n\n# NOTE only allow for polygon feature classes\npoly = FeatureClassParameter(label='Bounding Boxes')\npoly.filter = FeatureClassTypeFilter(GeometryType.POLYGON)\n\nout = FeatureClassParameter(label='Output Feature Class', is_input=False)\n\ntool = ScriptTool(\n name='SimpleScriptTool', label='Simple Script Tool',\n description='Use the description for a shorter plain text explanation of the Tool purpose',\n summary='The summary can hold some basic markup, <b>bold example</b>')\nfor param in points, sample_size, buffer_units, poly, out:\n tool.add_parameter(param)\n\n# Create a Toolset, add the tool to the Toolset\ntoolset = Toolset(name='Overlay Tools')\ntoolset.add_script_tool(tool)\n\ntbx = Toolbox(name='demonstration', label='Demonstration Toolbox', alias='demo',\n description='Here is where a longer description of the Toolbox can be included.')\ntbx.add_toolset(toolset)\ntbx_path = tbx.save(Path.home(), overwrite=True)\n\n```\n\nThe result of this snippet is a `ScriptTool` which looks like:\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/extended.png?raw=true)\n\nNotice the error message because the **Sample Size** is out of range:\n\n![](https://github.com/realiii/autobox/blob/develop/resources/images/extended_error.png?raw=true)\n\n\n### Execution and Validation Scripts\nFor completeness, here are a few examples of setting the `ExecutionScript` and `ValidationScript`. \nThe `ExecutionScript` will almost always be needed and the `ValidationScript` is likely optional\nfor most use cases. Use the class methods `from_code` and `from_file` to construct an instance.\n\n```python\nfrom pathlib import Path\nfrom autobox import ExecutionScript, ScriptTool, ValidationScript\n\n# NOTE example adding from a code snippet\ntool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')\ntool.execution_script = ExecutionScript.from_code('print(\"Hello World\")')\n\n# NOTE example adding from a file and choosing to embed\ntool = ScriptTool(name='SimpleScriptTool', label='Simple Script Tool')\ntool.execution_script = ExecutionScript.from_file(\n Path('../data/scripts/subfolder/example.py'), embed=True)\n# NOTE validator scripts are always embedded\ntool.validation_script = ValidationScript.from_file(Path('../data/scripts/validator.py'))\n```\n\n\n## License\n\n[MIT](https://raw.githubusercontent.com/realiii/autobox/refs/heads/develop/LICENSE)\n\n\n## Release History\n\n### v0.1.0\n* initial release\n* Create a `Toolbox` and save to `.atbx` format\n* Create a `Toolset` and add to a `Toolbox` or `Toolset`\n* Create a `ScriptTool` with `Parameters` and add to a `Toolbox` or `Toolset`\n* Add an `ExecutionScript` to a `ScriptTool`\n* Add an optional `ValidationScript` to a `ScriptTool`\n* Create and add a `Filter` to a `Parameter`\n* Add a dependency to a `Parameter`\n* Add documentation to `Toolbox`, `ScriptTool`, and `Parameter`\n* `Parameter` types added in this release:\n * `AnalysisCellSizeParameter`\n * `ArealUnitParameter`\n * `BooleanParameter`\n * `CadDrawingDatasetParameter`\n * `CalculatorExpressionParameter`\n * `CatalogLayerParameter`\n * `CellSizeXYParameter`\n * `CoordinateSystemParameter`\n * `CoverageFeatureClassParameter`\n * `CoverageParameter`\n * `DataElementParameter`\n * `DatasetTypeParameter`\n * `DateParameter`\n * `DbaseTableParameter`\n * `DoubleParameter`\n * `EncryptedStringParameter`\n * `EnvelopeParameter`\n * `ExtentParameter`\n * `FeatureClassParameter`\n * `FeatureDatasetParameter`\n * `FeatureLayerParameter`\n * `FieldParameter`\n * `FileParameter`\n * `FolderParameter`\n * `GPLayerParameter`\n * `GroupLayerParameter`\n * `LasDatasetLayerParameter`\n * `LasDatasetParameter`\n * `LayerFileParameter`\n * `LinearUnitParameter`\n * `LongParameter`\n * `MapDocumentParameter`\n * `MapParameter`\n * `MosaicDatasetParameter`\n * `MosaicLayerParameter`\n * `NetworkDatasetParameter`\n * `PointParameter`\n * `PrjFileParameter`\n * `RasterBandParameter`\n * `RasterCalculatorExpressionParameter`\n * `RasterDataLayerParameter`\n * `RasterDatasetParameter`\n * `RasterLayerParameter`\n * `RelationshipClassParameter`\n * `SACellSizeParameter`\n * `SQLExpressionParameter`\n * `ShapeFileParameter`\n * `SpatialReferenceParameter`\n * `StringHiddenParameter`\n * `StringParameter`\n * `TableParameter`\n * `TableViewParameter`\n * `TextfileParameter`\n * `TinLayerParameter`\n * `TinParameter`\n * `TopologyParameter`\n * `WorkspaceParameter`\n\n* `Filter` types added in this release:\n * `ArealUnitFilter`\n * `FeatureClassTypeFilter`\n * `FieldTypeFilter`\n * `FileTypeFilter`\n * `LinearUnitFilter`\n * `WorkspaceTypeFilter`\n",
"bugtrack_url": null,
"license": "MIT License Copyright (c) 2024-2025 Integrated Informatics (USA) Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
"summary": "Automation for ArcGIS Pro toolboxes, script tools, and documentation from Python objects.",
"version": "0.1.0",
"project_urls": {
"Homepage": "https://github.com/realiii/autobox"
},
"split_keywords": [
"toolbox",
" geoprocessing",
" arcgis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ed0bada2135b3613ede8671112d6dba357542522cc4eb5585404c3048290f00c",
"md5": "5f1d695cffb11fc05672c40aba159ab2",
"sha256": "a6a317db8ced22bffec9e188fa3aa806e275f88557cb898748593a8ca7cf3a9f"
},
"downloads": -1,
"filename": "autobox-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5f1d695cffb11fc05672c40aba159ab2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "==3.11",
"size": 31795,
"upload_time": "2024-12-27T23:03:44",
"upload_time_iso_8601": "2024-12-27T23:03:44.645523Z",
"url": "https://files.pythonhosted.org/packages/ed/0b/ada2135b3613ede8671112d6dba357542522cc4eb5585404c3048290f00c/autobox-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-27 23:03:44",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "realiii",
"github_project": "autobox",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "autobox"
}