Metadata-Version: 2.4
Name: xmstool
Version: 8.1.2
Classifier: XMS DMI Definition :: XML :: xms/tool/Tools.xml
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: gdal==3.4.1
Requires-Dist: geopandas
Requires-Dist: h5py
Requires-Dist: matplotlib
Requires-Dist: numba<0.62.0
Requires-Dist: numexpr
Requires-Dist: numpy<2.0
Requires-Dist: numpy-stl
Requires-Dist: param
Requires-Dist: pandas
Requires-Dist: pytest
Requires-Dist: rtree
Requires-Dist: scipy
Requires-Dist: shapely<2.1.0
Requires-Dist: typing_extensions<4.13.0
Requires-Dist: xarray==2024.10.0
Requires-Dist: xmsconstraint>=5.2.0
Requires-Dist: xmscore>=3.4.0
Requires-Dist: xmsdatasets>=2.8.0
Requires-Dist: xmsextractor<9.0.0,>=8.0.0
Requires-Dist: xmsgdal>=1.40.0
Requires-Dist: xmsgrid<8.0.0,>=7.5.4
Requires-Dist: xmsinterp>=4.1.4
Requires-Dist: xmsmesher>=5.3.0
Requires-Dist: xmstool_core>=6.0.1
Requires-Dist: xmswbtools>=2.3.12
Dynamic: license-file

# xmstool

## [Branches](https://git.aquaveo.com/Aquaveo/xmstool/-/branches)
 * [release-7](https://git.aquaveo.com/Aquaveo/xmstool/-/tree/release-7) - Current dev branch: uses xmstool_core release-5 which removed Param, can send constrained 2D UGrid or 2D mesh.
 * [release-6.0.0](https://git.aquaveo.com/Aquaveo/xmstool/-/tree/release-6.0.0) - GMS 10.8, SMS 13.3, WMS 11.2

## Description
Tools for use with XMS.

## Badges
[![pipeline status](https://git.aquaveo.com/Aquaveo/xmstool/badges/master/pipeline.svg)](https://git.aquaveo.com/Aquaveo/xmstool/commits/master) 
[![coverage report](https://git.aquaveo.com/Aquaveo/xmstool/badges/master/coverage.svg)](https://git.aquaveo.com/Aquaveo/xmstool/commits/master)

## Authors and acknowledgment
Aquaveo developers.

## License
Copyright (c) 2023 Aquaveo

This software is for use by Aquaveo and its authorized personnel ONLY.

## Development Guidelines

- Keep in mind that these are [guidelines](https://youtu.be/k9ojK9Q_ARE?t=42).
- Tool names
  - Keep it short - 3 words or fewer is best if possible.
  - Capitalize using title case.
  - Use “This from That” pattern if appropriate (and not “This to That”). “This from That” puts the object of the tool, which is probably the most important thing, as the first word.
  - Avoid words like “Convert” and “Create” (e.g. “Create Bridge Footprint” should just be “Bridge Footprint”).
  - Don’t use symbols (like “->”).
  - Dialog title must exactly match name of tool.
  - A tool only has one name (don’t say “also called the blankety blank tool”).
  - Class name should match tool name.
- Argument names
  - Use sentence case, not title case. 
- Tool.xml
  - Add tool to [Tools.xml](xms/tool/Tools.xml), in alphabetical order.
  - Put the tool in the folder that matches what the tool creates (if it creates a UGrid, put it in the Unstructured Grids folder).
  - Model specific tools can just be in the model folder.
- Code
  - Consider putting the majority of code in xmstool.xms.tool.algorithms and having the tool class be fairly thin. This way the code will be easier to reuse in other tool code.
  - Furthermore, consider if some or most of the algorithmic code should go in one of our other basic libraries (xmsconstraint, xmsgrid, etc.). The reason for this is that xmstool will end up depending on all of our basic libraries, so we can’t have those libraries depend on xmstool or there will be circular dependencies. If the code is useful in another basic library, then it shouldn’t be in xmstool.
  - Don’t use raw GDAL. Call xmsgdal instead.
  - Don't use private tool member variables or methods. For instance don't use self._data_hander. Instead create a public API to do the same thing.
- Wiki help
  - Follow this outline (all headings use Title Case).
    - “Tool name” without the word “tool” - heading 3
    - “Input Parameters” - heading 4
      - Bulleted list
    - “Output Parameters” - heading 4
      - Bulleted list
    - “Current Location in Toolbox” - heading 4
    - “Examples” - heading 4
      - “Example 1” - heading 5
    - “Related Tools” - header 4
  - Add tool to xmswiki [Tool Dialog Help](https://www.xmswiki.com/wiki/Tool_Dialog_Help).
