Metadata-Version: 2.4
Name: arcgis-geometry
Version: 1.0.300
Classifier: Development Status :: 5 - Production/Stable
Classifier: Topic :: Scientific/Engineering :: GIS
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Summary: High-performance Python geographic geometry library for the ArcGIS platform, implemented in Rust.
Author-email: ArcGIS API for Python Team <support@esri.com>
License: Esri Master License Agreement (MLA) - http://www.esri.com/LEGAL/pdfs/
	mla_e204_e300/english.pdf
Requires-Python: >=3.11
Description-Content-Type: text/markdown
Project-URL: Homepage, https://github.com/Esri/arcgis-python-api
Project-URL: Issues, https://github.com/Esri/arcgis-python-api/issues



# About arcgis-geometry

`arcgis-geometry` is a Python package built using Rust to provide speedy geometry operations.

### Typical uses include:

- Creating ArcGIS geometries from dictionaries or JSON strings.
- Running geometry operations from Python against Rust-backed implementations.
- Working with spatial references, envelopes, and projection utilities from Python.

## Simple usage

```python
from arcgis_geometry import Geometry, Point

point = Point(
	{
		"x": -117.1956,
		"y": 34.0572,
		"spatialReference": {"wkid": 4326},
	}
)

polygon = Geometry(
	{
		"rings": [[
			[-117.20, 34.05],
			[-117.18, 34.05],
			[-117.18, 34.07],
			[-117.20, 34.07],
			[-117.20, 34.05],
		]],
		"spatialReference": {"wkid": 4326},
	}
)

print(point.geometry_type)
print(polygon.geometry_type)
```

## Third-party attributions

This package is distributed under the [Esri Master License Agreement](http://www.esri.com/LEGAL/pdfs/mla_e204_e300/english.pdf). The direct third-party dependencies declared in the Rust and Python manifests keep their own upstream licenses.

| Ecosystem | Package | Version in repo | Contribution here | License | Upstream |
| --- | --- | --- | --- | --- | --- |
| Rust | `geo-traits` | `>=0.3.0` | Trait-based geometry interoperability in the Rust core. | MIT or Apache-2.0 | [georust/geo](https://github.com/georust/geo) |
| Rust | `smallvec` | `1.15.1` | Compact storage for per-part coordinate buffers. | MIT or Apache-2.0 | [servo/rust-smallvec](https://github.com/servo/rust-smallvec) |
| Rust | `thiserror` | `2.0.12` | Typed error definitions for geometry and conversion errors. | MIT or Apache-2.0 | [dtolnay/thiserror](https://github.com/dtolnay/thiserror) |
| Rust | `pyo3` | `0.27.2` | Python bindings, module exports, and wrapper types. | MIT or Apache-2.0 | [PyO3/pyo3](https://github.com/PyO3/pyo3) |
| Rust | `string-interner` | `0.19.0` | String interning support declared for the Rust core. | MIT or Apache-2.0 | [robbepop/string-interner](https://github.com/robbepop/string-interner) |
| Rust | `compact_str` | `0.9.0` | Compact storage for feature attribute keys and string values. | MIT | [ParkMyCar/compact_str](https://github.com/ParkMyCar/compact_str) |
| Rust | `geozero` | `0.14.0` | Geometry processing plus WKT, WKB, GeoJSON, and EsriJSON conversion plumbing. | MIT or Apache-2.0 | [georust/geozero](https://github.com/georust/geozero) |
| Rust | `serde` | `1.0.228` | Serialization and deserialization support for Rust geometry metadata. | MIT or Apache-2.0 | [serde-rs/serde](https://github.com/serde-rs/serde) |
| Rust | `serde_json` | `1.0.145` | JSON writer support used by serialized geometry metadata. | MIT or Apache-2.0 | [serde-rs/json](https://github.com/serde-rs/json) |
| Rust | `slab` | `0.4.11` | Indexed storage for curved segment collections. | MIT | [tokio-rs/slab](https://github.com/tokio-rs/slab) |
| Rust | `approx` | `0.5.1` | Approximate floating-point comparisons in Python utility helpers. | Apache-2.0 | [brendanzab/approx](https://github.com/brendanzab/approx) |
| Rust | `cfg-if` | `1.0.4` | Platform-specific compile-time branching in the Python extension crate. | MIT or Apache-2.0 | [rust-lang/cfg-if](https://github.com/rust-lang/cfg-if) |
| Python | `maturin` | `>=1.10,<2.0` | Build backend for compiling and packaging the Rust-powered Python wheel. | MIT or Apache-2.0 | [PyO3/maturin](https://github.com/PyO3/maturin) |


