Metadata-Version: 2.1
Name: fused
Version: 1.1.2
Summary: 
Requires-Python: >=3.8,<3.13
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: affine (>=2,<3)
Requires-Dist: bottleneck (>=1.3.7,<2.0.0)
Requires-Dist: cftime (>=1.6.2,<2.0.0)
Requires-Dist: click (>=8,<9)
Requires-Dist: contextily (>=1.3.0)
Requires-Dist: fsspec (>=2023.6.0,<2024.0.0)
Requires-Dist: geopandas (>=0.12,<0.13)
Requires-Dist: h5netcdf (>=1.0,<2.0)
Requires-Dist: httpx (>=0.23,<1)
Requires-Dist: importlib-resources (>=5.12.0,<6.0.0)
Requires-Dist: ipywidgets (>=8,<9)
Requires-Dist: jinja2 (>=3.1.2,<4.0.0)
Requires-Dist: loguru (>=0.6.0,<0.7.0)
Requires-Dist: matplotlib (>=3.5,<4.0)
Requires-Dist: nest-asyncio (>=1.5,<2.0)
Requires-Dist: netcdf4 (>=1.6,<2.0)
Requires-Dist: pandas (<2) ; python_version == "3.8"
Requires-Dist: pandas (>=2.0.2,<3.0.0) ; python_version >= "3.9"
Requires-Dist: pyarrow (>=11)
Requires-Dist: pydantic (>=1.10,<2.0)
Requires-Dist: pyproj (>=3.3,<4.0)
Requires-Dist: rasterio (>=1.2,<1.3.8)
Requires-Dist: requests (>=2.25,<3.0)
Requires-Dist: rich (>=13,<14)
Requires-Dist: rio-stac (>=0.8.0,<0.9.0)
Requires-Dist: rioxarray (>=0.14.1,<0.15.0) ; python_version >= "3.9" and python_version < "4.0"
Requires-Dist: rtoml (>=0.9.0,<0.10.0)
Requires-Dist: scipy (>=1.9,<2.0)
Requires-Dist: shapely (>=2,<3)
Requires-Dist: stac-geoparquet (>=0.2.1,<0.3.0)
Requires-Dist: urlpath (>=1.2.0,<2.0.0)
Requires-Dist: xarray (==2023.6.0) ; python_version >= "3.9"
Requires-Dist: xarray (>=2023.01.0,<2024.0.0) ; python_version == "3.8"
Requires-Dist: zarr (>=2.15.0,<3.0.0)
Description-Content-Type: text/markdown

<h1 align="center">
  Fused Public Python package
</h1>
<h3 align="center">
  🌎 Geospatial, with Python, at scale.
</h3>
<br><br>

![version](https://img.shields.io/badge/version-1.0.0-blue)

**Fused.io** is a Python library to process and store geospatial data - at scale. Express workflows as a set of shareable UDFS (user defined functions) without thinking about the underlying compute. The Fused Python library is maintained by [Fused.io](https://fused.io).

## Prerequisites

Python >= 3.8

## Install

The Fused Python package is currently distributed via a private beta. Email info@fused.io for access.

## Quickstart

```python3
import fused


# Load data
census = 's3://fused-asset/infra/census_bg_us/'
buildings = 's3://fused-asset/infra/building_msft_us/'

# Declare UDF
@fused.udf()
def census_buildings_join(left, right):
    import fused
    df_joined = fused.utils.geo_join(left.data, right.data)
    df_cnt = df_joined.groupby(['fused_index','GEOID']).size().to_frame('count_building').reset_index()
    return df_cnt

# Instantiate job configuration that runs the data against the UDF
job = census_buildings_join(census, buildings)

# Run locally
job.run_local()

# Run on remote compute managed by Fused and view logs
job_id = job.run_remote(output_table='s3://my-s3-bucket/census_buildings_join')
job_id.tail_logs()

# Export job to local directory
job.export('census_buildings_join', overwrite=True)

# Re-import job
fused.load_job('census_buildings_join')
```


## Available operations
The following are some of the key functions:

- [ingest](https://www.fused.io/api/top-level-functions/?h=ingest#fused.ingest): Upload a dataset into S3 with the Fused format.
- [open_table](https://www.fused.io/api/top-level-functions/?h=run_local#fused.open_table): Open a Table object given a path to the root of the table
- [run_local](https://www.fused.io/api/udf/?h=run_local#fused.models.udf.udf.GeoPandasUdfV2.run_local): Execute data processing tasks locally while you test and debug.
- [run_remote](https://www.fused.io/api/job/?h=run_remote#fused.models.api.job.JobStepConfig.run_remote): Submit jobs to run on a remote clusters - by changing a single line of code.
- export: Save a job and its configuration as a local directory, zip file, or gist.
- [load_job](https://www.fused.io/api/top-level-functions/?h=run_local#fused.load_job): Open a previously saved job.
- [load_udf](https://www.fused.io/api/top-level-functions/?h=run_local#fused.load_udf): Open a previously saved UDF.
- [show](https://www.fused.io/api/job/?h=show#fused.models.api.job.JoinJobStepConfig.show): Debugger tool.
- render: Render job or UDF to new Notebook cell and edit.

See the [Fused documentation](https://www.fused.io/) for the full list of available functions.

## Docs
The documentation is a work in progress. It follows the Diátaxis system:

- Getting Started Tutorial: A hands-on introduction to Fused.
- [How-to guides](https://www.fused.io/use_cases/cmip6/): Simple step-by-step user guides to accomplish specific tasks.
- [Reference guide](https://www.fused.io/api/top-level-functions/): Commands, modules, classes and methods.
- [Explanation](https://www.fused.io/): Discussion of key decisions and design philosophy of the library.

## Changelog
See the [changelog](https://www.fused.io/changelog/) for the latest changes.

## Releases
The project manages releases with Semantic Versioning Specification (SemVer).

