From afc7ba91c8c3a9b88ffb307719e2b4ceed50a8d4 Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Sat, 21 Sep 2024 12:49:36 -0600 Subject: [PATCH] feat(docs): move docs to top-level --- .github/workflows/docs.yml | 58 ++++++++++++++ .github/workflows/python.yml | 8 +- .gitignore | 2 + README.md | 2 +- docs/cli/index.md | 29 +++++++ docs/img/rustacean-and-stac-small.png | 1 + docs/img/stac-ferris-favicon.png | 1 + docs/img/stac-ferris.png | 1 + docs/index.md | 17 +++++ {python/docs => docs/python}/api/index.md | 4 +- {python/docs => docs/python}/api/migrate.md | 0 {python/docs => docs/python}/api/pystac.md | 0 {python/docs => docs/python}/api/read.md | 0 {python/docs => docs/python}/api/search.md | 0 {python/docs => docs/python}/api/validate.md | 0 {python/docs => docs/python}/api/write.md | 0 docs/python/index.md | 71 ++++++++++++++++++ img/stac-ferris-favicon.png | Bin 0 -> 1182 bytes img/stac-ferris.png | Bin 0 -> 48639 bytes img/stac-ferris.xcf | Bin 0 -> 156747 bytes mkdocs.yml | 64 ++++++++++++++++ python/.gitignore | 2 - python/.readthedocs.yaml | 12 --- python/Cargo.toml | 11 ++- python/README.md | 3 +- python/docs/CODE_OF_CONDUCT | 1 - python/docs/index.md | 1 - python/mkdocs.yml | 39 ---------- python/pyproject.toml | 2 +- ...quirements-docs.in => requirements-docs.in | 2 +- ...irements-docs.txt => requirements-docs.txt | 60 ++++++++++----- 31 files changed, 303 insertions(+), 88 deletions(-) create mode 100644 .github/workflows/docs.yml create mode 100644 docs/cli/index.md create mode 120000 docs/img/rustacean-and-stac-small.png create mode 120000 docs/img/stac-ferris-favicon.png create mode 120000 docs/img/stac-ferris.png create mode 100644 docs/index.md rename {python/docs => docs/python}/api/index.md (65%) rename {python/docs => docs/python}/api/migrate.md (100%) rename {python/docs => docs/python}/api/pystac.md (100%) rename {python/docs => docs/python}/api/read.md (100%) rename {python/docs => docs/python}/api/search.md (100%) rename {python/docs => docs/python}/api/validate.md (100%) rename {python/docs => docs/python}/api/write.md (100%) create mode 100644 docs/python/index.md create mode 100644 img/stac-ferris-favicon.png create mode 100644 img/stac-ferris.png create mode 100644 img/stac-ferris.xcf create mode 100644 mkdocs.yml delete mode 100644 python/.readthedocs.yaml delete mode 120000 python/docs/CODE_OF_CONDUCT delete mode 120000 python/docs/index.md delete mode 100644 python/mkdocs.yml rename python/requirements-docs.in => requirements-docs.in (52%) rename python/requirements-docs.txt => requirements-docs.txt (66%) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 000000000..7902a81a8 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,58 @@ +name: Docs + +on: + push: + tags: + - 'python-*' + pull_request: + paths: + - python/** + workflow_dispatch: + +permissions: + contents: read + pages: write + id-token: write + +concurrency: + group: "pages" + cancel-in-progress: false + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: Swatinem/rust-cache@v2 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Install doc requirements + run: pip install -r requirements-docs.txt + - uses: PyO3/maturin-action@v1 + with: + command: build + args: --manifest-path python/Cargo.toml --out dist + - name: Install stacrs + run: pip install stacrs --find-links dist --no-index + - name: Build docs + run: mkdocs build --strict + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: 'site' + deploy: + environment: + name: "github-pages" + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: + - build + steps: + - name: Setup Pages + uses: actions/configure-pages@v5 + - uses: actions/download-artifact@v4 + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 82ef5d6c4..d51ff2dd7 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -28,7 +28,7 @@ jobs: - name: Install dev requirements run: pip install -r python/requirements-dev.txt - name: Build - run: maturin build --manifest-path python/Cargo.toml --out dist -F geoparquet + run: maturin build --manifest-path python/Cargo.toml --out dist - name: Install stacrs run: pip install stacrs --find-links dist --no-index - name: Check @@ -63,7 +63,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter --manifest-path python/Cargo.toml -F geoparquet + args: --release --out dist --find-interpreter --manifest-path python/Cargo.toml sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v4 @@ -123,7 +123,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter --manifest-path python/Cargo.toml -F geoparquet + args: --release --out dist --find-interpreter --manifest-path python/Cargo.toml sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v4 @@ -151,7 +151,7 @@ jobs: uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter --manifest-path python/Cargo.toml -F geoparquet + args: --release --out dist --find-interpreter --manifest-path python/Cargo.toml sccache: 'true' - name: Upload wheels uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index 499d395c6..92243b000 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ Cargo.lock dist/ pyrightconfig.json +site/ +.cache diff --git a/README.md b/README.md index acca6b33b..2b31739e0 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ Install with **pip**: pip install stacrs ``` -See [the documentation](https://stacrs.readthedocs.io/) for more information. +See [the documentation](https://stac-utils.github.io/stac-rs/python/) for more information. ## Development diff --git a/docs/cli/index.md b/docs/cli/index.md new file mode 100644 index 000000000..0b37c4d3e --- /dev/null +++ b/docs/cli/index.md @@ -0,0 +1,29 @@ +# Command-line interface (CLI) + +The **stac-rs** command-line interface can be installed two ways. +If you have Rust, use `cargo`: + +```shell +cargo install stac-cli +``` + +If you have Python, use `pip`: + +```shell +pip install stacrs-cli +``` + +!!! Note + + The PyPI version of the CLI does not contain bindings to GDAL. This + shouldn't be a problem for most users, but if you're using `stacrs item + image.tiff` to generate new STAC items from a raster, you'll need to install + from `cargo`. + +The CLI is called **stacrs**: + +```shell +stacrs --help +``` + +For examples of using the CLI, check out the slides from [@gadomski's](https://github.com/gadomski/) 2024 FOSS4G-NA presentation [here](https://www.gadom.ski/2024-09-FOSS4G-NA-stac-rs/). diff --git a/docs/img/rustacean-and-stac-small.png b/docs/img/rustacean-and-stac-small.png new file mode 120000 index 000000000..dd80d0dd6 --- /dev/null +++ b/docs/img/rustacean-and-stac-small.png @@ -0,0 +1 @@ +../../img/rustacean-and-stac-small.png \ No newline at end of file diff --git a/docs/img/stac-ferris-favicon.png b/docs/img/stac-ferris-favicon.png new file mode 120000 index 000000000..b3a131061 --- /dev/null +++ b/docs/img/stac-ferris-favicon.png @@ -0,0 +1 @@ +../../img/stac-ferris-favicon.png \ No newline at end of file diff --git a/docs/img/stac-ferris.png b/docs/img/stac-ferris.png new file mode 120000 index 000000000..87872271c --- /dev/null +++ b/docs/img/stac-ferris.png @@ -0,0 +1 @@ +../../img/stac-ferris.png \ No newline at end of file diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..99e1b2a87 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,17 @@ +# stac-rs + +![Rustacean and STAC](./img/rustacean-and-stac-small.png) + +Command Line Interface (CLI), Rust crates, and other libraries for the [SpatioTemporal Asset Catalog (STAC)](https://stacspec.org/) specification. + +## Python documentation + +Our Python package is named **stacrs** and its documentation is available [here](./python/index.md). + +## Rust documentation on docs.rs + +- [stac](https://docs.rs/stac): The core Rust crate +- [stac-api](https://docs.rs/stac-api): Data structures for a STAC API, and a client for searching one +- [stac-validate](https://docs.rs/stac-validate): Efficiently validate STAC objects with [json-schema](https://json-schema.org/) +- [stac-server](https://docs.rs/stac-server): A STAC API server with multiple backends +- [pgstac](https://docs.rs/pgstac): Rust bindings for [pgstac](https://github.com/stac-utils/pgstac) diff --git a/python/docs/api/index.md b/docs/python/api/index.md similarity index 65% rename from python/docs/api/index.md rename to docs/python/api/index.md index 3be310504..a8ff8993f 100644 --- a/python/docs/api/index.md +++ b/docs/python/api/index.md @@ -1,6 +1,6 @@ -# API +# Python API -API documentation for **stacrs**. +API documentation for the **stacrs** Python package. - [migrate](./migrate.md) - [search](./search.md) diff --git a/python/docs/api/migrate.md b/docs/python/api/migrate.md similarity index 100% rename from python/docs/api/migrate.md rename to docs/python/api/migrate.md diff --git a/python/docs/api/pystac.md b/docs/python/api/pystac.md similarity index 100% rename from python/docs/api/pystac.md rename to docs/python/api/pystac.md diff --git a/python/docs/api/read.md b/docs/python/api/read.md similarity index 100% rename from python/docs/api/read.md rename to docs/python/api/read.md diff --git a/python/docs/api/search.md b/docs/python/api/search.md similarity index 100% rename from python/docs/api/search.md rename to docs/python/api/search.md diff --git a/python/docs/api/validate.md b/docs/python/api/validate.md similarity index 100% rename from python/docs/api/validate.md rename to docs/python/api/validate.md diff --git a/python/docs/api/write.md b/docs/python/api/write.md similarity index 100% rename from python/docs/api/write.md rename to docs/python/api/write.md diff --git a/docs/python/index.md b/docs/python/index.md new file mode 100644 index 000000000..3beb8b06c --- /dev/null +++ b/docs/python/index.md @@ -0,0 +1,71 @@ +# stacrs + +A Python package for working with [STAC](https://stacspec.org) designed to compliment existing packages such as [pystac](https://pystac.readthedocs.io) and [pystac-client](https://pystac-client.readthedocs.io). + +## Usage + +Install via **pip**: + +```shell +pip install stacrs +``` + +Then: + +```python +import stacrs + +# Search a STAC API +items = stacrs.search( + "https://landsatlook.usgs.gov/stac-server", + collections="landsat-c2l2-sr", + intersects={"type": "Point", "coordinates": [-105.119, 40.173]}, + sortby="-properties.datetime", + max_items=100, +) + +# Write items to a stac-geoparquet file +stacrs.write("items.parquet", items) + +# Read items from a stac-geoparquet file as an item collection +item_collection = stacrs.read("items.parquet") + +# Use `search_to` for better performance if you know you'll be writing the items +# to a file +stacrs.search_to( + "items.parquet", + "https://landsatlook.usgs.gov/stac-server", + collections="landsat-c2l2-sr", + intersects={"type": "Point", "coordinates": [-105.119, 40.173]}, + sortby="-properties.datetime", + max_items=100, +) +``` + +### pystac + +If [pystac](https://pystac.readthedocs.io) is present, `stacrs.pystac` provides functions that take **pystac** objects as their inputs and outputs: + +```python +import pystac +import stacrs.pystac + +item = pystac.read_file("item.json") +stacrs.pystac.validate(item) + +items = list(stacrs.pystac.search(...)) +``` + +You can install **pystac** with **stacrs** via an optional dependency: + +```shell +pip install 'stacrs[pystac]' +``` + +## Comparisons + +This package (intentionally) has limited functionality, as it is _not_ intended to be a replacement for existing Python STAC packages. +[pystac](https://pystac.readthedocs.io) is a mature Python library with a significantly richer API for working with STAC objects. +For querying STAC APIs, [pystac-client](https://pystac-client.readthedocs.io) is more feature-rich than our simplistic `stacrs.search`. + +That being said, it is hoped that **stacrs** will be a nice complement to the existing Python STAC ecosystem by providing a no-dependency package with unique capabilities, such as searching directly into a stac-geoparquet file. diff --git a/img/stac-ferris-favicon.png b/img/stac-ferris-favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..06a7d059ca8c22332bf0a091cdeaed931a62fe17 GIT binary patch literal 1182 zcmV;P1Y!G$P)EX>4Tx04R}tkv&MmKpe$iTcs)$5i5u|WT;MdQBlWQg(6f4wL+^7CYOFelZGV4 z#ZhoAIQX$xb#QUk)xlK|1V2EW9h?+hq{ROvg%&X$9QWhhy~o`)W&;^Mfxh}i>#<}3IpJ#@RbZVYBOe_@ISZ-rhG*sd#;)tSZl<&{D ztZ?4qtd^^+c~AbrP)=J}<~q$0B(R7jh!7y7iW17O5T#Wk#YBqs;~xHD$1jpgCRYiJ z91EyGh2;3b|KNAGW`1(QO$x<<&KKMM7zKj6K%-{c-^aGyH~|9Bz?IhWSL(p*C+W48 z7C8d?wtFouL6MKWH&nHwYS2X(?J@{L7FY?0Gx|GbamgY0S+pDTL9-GJPr|g2a52lPuG<2fQ3P!Q?SZb&(G>%b!5b70YynSzqyRVo0$rWj zzsZ4ATV8eD0iZdZ87KhCQksGAHS!R6fG{(x%4}p}Ilo{)Mb81kSII`Bg9s%E1cEi1 zz^}LRh8Pz;7xI25b87?Y>y zc+eq%yRms~G*FoODzLbt%|CS_&q8n=s7zS~jCvY1oegtOt8Z&z*VJSZ*ipTs?eHDMM50`9cr??Cj?oP(SB&--5M2RQo`?9468u w$8wAs{cGj{spka>v3IMs;%1;sF##jL0gashZT&WgegFUf07*qoM6N<$f_#z<=>Px# literal 0 HcmV?d00001 diff --git a/img/stac-ferris.png b/img/stac-ferris.png new file mode 100644 index 0000000000000000000000000000000000000000..ed1eb6aa3a7b95cfb1bf74a67dbcf08a4fbb9353 GIT binary patch literal 48639 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%0AbY=!3j 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 X*6+#)jByqOEkNy&=EG7Y%UAyo`^pV( literal 0 HcmV?d00001 diff --git a/img/stac-ferris.xcf b/img/stac-ferris.xcf new file mode 100644 index 0000000000000000000000000000000000000000..b46cec06126acd48a0cb2e254d059b11f9d6d5df GIT binary patch literal 156747 zcmeEv349z!m43~kkw*71l4V&wCEu1U%l8$VCE*MrT-k6FCLv^(B_WsX_!#*z)B2VW!oUcK&~ z?&_-Qs#jI-ef8?P>;LJ-F)N}U8FO3x%$Z85;O&-hsMJ1C3CQO|PzK8RyRRul!e0aw z1O-49?lJEx2mKgSd>x{$yZ)c9zV6z(>u$RK8eCHR{og0ue9Ov@T|4IH8$NdZHIs8E zedN064IjJVrZJNYtGnsC4_`f|-u%y;jGsR|$j>v!n1BAf;^rH#j$Z%q>&DEi$JxpO zXYNVetslSsmND0VJo?dVZ{`y>eB>iHUwg|KbHC@<9uB;jY4-g2UT;o(_dM;n=pLpD zj(N;~$2(v1+PeDL({KFvb^JX9Vp(a>SROBJLWuGN@j9OgyT@Q^oaeaObDZlr9^*OA z^Bm`Ujte};ML6dB4o4gMm-Ew8-OyXTW#zQE;gboskoe!a_Ax_q0GD3y zM_0RivCH4*^3^W?y32p)@?X3B|6HE1d`y<*wVPbN*Yb&!2l$)(GnXHnv~RaQXKvpX=VgXpKEz)a>$mT<+e# z$i08jBkuL5T>iYvla?AauGd@s z?*DT6W0rs5J(hp)=Po~N`G+DdpX>6gTn>4_zYl%N<==Pt|5$#_aF@IF_ZqkUe)QY+ z`bQtK{GY;>e`1@<@3j0j_xao1^V|Q`UccRa{&x5I+aGtYpRjxt+4Ik>bh%p|Uv%@?@kV>Sn+4CnKvHTBiIsM^}_WX}OvAk=MI+ri8yl0K& zN0OEwEwH@LKJW9{bD#gS=DIJd!}6TVEYEwR<%PC>_=;@$eZ|A<^q>k5iZ5IK4qLx`SKevQ-|d#```rA!@0<4e)o#A7e!YAC_b$KA<;z{Z#qy72TmBF3 z`9FNpo_}nqrm;_^n9f57rxw!ic3 zdci$+EN?4x`6!o9cljkQcjIaMfP4ONm#=ksi_8Dn+AOVU5~lk{T_FZu;+KX_3G{qy65X$?w0%A zKQ!kEN>tr}LREhtUo{-aQ?m|))tm!4YVLt-HSa)3%|DQ(790qwg$Dv^ks-fYe88uc z7}DyJ1D0YrJ?3e~aC(IIcHzBUcyAY;=)!xu@ZK)Gw+rv>!h5^$-Y&e?5Z>E`_Zq@G zyDZ_o=4r-odW83Oulv*-aAK!l=I%?T%Copd|=z8?-){r(Ss&D^Lew0j0pZT;6SX z{(immpnK&ax?}o*Vm0$XfoT@A59Fd@<)C3@qhW>6u(Hswf~H|DKEQ_MHw`P*sIne( zn-`m#+`(qZr}#8uVQh?*u{WR@*P}Vtp@d7-^e()+3-3nLnB9eUqk+vs1DlTqwg3%m zAsQGP*WxZVF1#C!E7h>F9(0=+ugV>~n@{m+#=_VbD`Rg!Q?5souETf7ySwr3ZoC`K zV|F**jYc*Pjch&|*#b1Og=l1KV2iui!0>J~uvFv9deCiVyefC_Za&4Q84F`$tc<+@ z&AA@Ux(;=%R87>!jy(79XO_n-#;SLJF-a%HT;qn$cyT z&w_elfd{pI9!Gb87UJheeF(1PGrus;FI0@{4nHIQW!TTx9GV>9OM90DnS@>p4v?Vk zMIk2dk(z8ZODFqUvU8aB12b}w73ce}%}3UfkF6hHs3sgd_NONv>Dct{N@hM5Y*PBb zC8s3cfhCG`>U(0@587C|5X&jZ*M(R>r}|xYrDEwuETUZ6piY16x7JycP z?gKpvdLER#L^(RV1VJ|9Ie{yG1w9P<4Coe61ITaUDTY{jHL0*k#XNMnJ>dm=-)Z*9 zr`vO%clVv<$l!EG5a-){uY53(iQ$!$z^f|jUQIcArsDRcnxUd)$HJ4tqSI-WgY3p(g1Q zhaSH3s$sbJO8b~h-!ia2J=3!Ke2XvBw`BU3vseNr$+O^6rNhvC3?OJ*pei{(D8?Lg zA_oHqsqZ{r$mE~{IT%1leaHDiCI>#`pdNH1=qsQnplr+PLoiAsn8IK#gJtJ=P@rap zVaf@^AQXl{C=6pz7{;J5j6q=-gA74|8-_8+5DYcqP` z@vct1s}t|)#JddPU7dKBA-t>8ysH!M8Y1Cc9e7s<-qnG3b>LkccvlDB)q!^z!n-=~ zE<<=%hj~{A-ZexjP|2}Pzn`x2RC3Da`|4rPN*1*z8)(tG^qJW(WhH$ZoH?{*g+6C& zS)u!lEz9>gW6Rn=TbA=WXCaMQMSnKNtUWYlO-a(2bsrSz51T+n9^CF)s`|4%){8 zw2y^oAGU44mIG@B$+i#JbI?A7U>5P5$sO_pV_-}q#>&|F7QStEI2Wxl53RERQ==j^ z6{Y`9Ro{tpp(V^hJDP)bG#Bk?UMJFpwzL3kX(8H@ZAVB~C)*Oz<+dlbB_X8Cb0&Al z6O4f|kr*pu=Ue!;*_}ui-afMv>B3}fD(VZ;)q!-O)yzVhn}aqt7j14{2hxRhw*c*K zA=;g7b4V8rN+8?rP+n+vLP(eAOzw~;7z1M>F;>RTxA1MVJCH8CeP##Jg{k9I)Zcfi zX}ZsO;Dh*>Gj#IV75Qv1&NJ_UT+q(9D#A2}{b{i=haG>XF^45TXw6};MbR=*OC-EoI6{yZ~Z%*+=v^TpJvip-4d?3O^fJbjhsVCT~u^wpSyolkLQ=8I=_#&v$b{DPbR z4bkv>&d=vw?fGnGzIX5RpRJN}cl~NMmi#6|AAM{dpb<&`bwk%<2a%TjD&}8?_Zp6O7>@Y%E1(vzK=|Ujqc&2dCPs#-$&qq3 zHBzSPA|+~iq*%>}6sh`1p_&;fz$)easwVzk6~oj7ojmc?`Q>V| zcD^^GOijUp&epsVSmm8xPvs(2CvkZZOwmsAYOGDy`YJ?~ZfVYF1~Qs~jAkIC88}Dm z=jrk(qZxQrtg{)-z8r z&r^DCh+&%ve;v|um9ETYc)1C0GT|L2{GtiJX2SiMaIg}HoAt5A~CpU1#fhD)bLz*FkI$dxrpv)h+s8S z1YZ0i@R|pj17Gf>xe=@;bZMT^gHso7X?_H&3}1reUf~j##4qpTyO{wwaC;aQ?op+5h-p&iW`yQMx+>Z3@MHx#Zjay}kQKUGE6i1QbC{m2p zFp541k6&t5k^QyWI8{90$Fei6uV?6VnyIEKkMy^?<;{ga=tjc6plokZ_JOV@jChE=DG?sMjuc9;TtRF2P)ObWqtFej?QKgrH?4R zz5z4-sIc_VtIfU`k27n*&JkVq*~QqMt+%Jkr;G+aqrpcVxQOw684Z3$gO5S*P%(XS z|ErCiJJ;jSXzckNojN_;SM;#`%q9&Cco~O#fQ;qxW>`okay2l+j?!a+6j{W7F=Rb-S8uh9uGC`F` z#;W0wQEEhFgc@y3J{774W~UhMX~aE^xTg{KG~%8{++&O^xCe$Fb59iaL~&0P_e60| z6!#dj2JV4rh4(nw;d*t@-*C%k9{%eIt&`6`df%!A!3o&4ZQ&iy7wEp8&tB#qi`5uc zK3b-ePkuNwN;wOEF$^0^y?KOk!gq|&PDg2_awh+3B)6BUP|lJ=qhYLg2b|EI?p_TS z>U|fZp5L42jLtu!^FNCvkS>igI{%E$Kcn+M|DBh=621K^dG=-N%0*{>zVmZkC;w`v zFQfC%=={%O38ar_hNvIE5bXm)(T`t<_hxkd1l*rRz4yiZ_VZR(f2I~0WOV*#Y$3$o zQdfVb-sROlXO92&C6GQII_W$c?uo)!+ZM*!wlLPUL3^Jao}1XURxuZD+f)QIpnRUICyMutbL(cw{QjIk3`t8w8f zRU00z#)m7_gzzvm5u0;P3P-T7DHaHYOVu=N)L9oUR@3c1r%X*JQqzglbRspdA7pnT zHJwOJCsNai)N~>>ok&e5QUlvUStnA{iPUr=HJwOJCsNai)N~>>ok&e5Qe$itNKGeF z(}~n{A~l^z4YmiJ)QQw|A~l^z4Ymrc>qKhoUaL$^2U634)N~*(r~laGfd%Pf?NZL^Uj2tE$Ww zVCl2uS?Vltco{M!%~FOpAv43qvXa!MW^g-YHfn;)sSvkk;-*X7Y>68!$tFwF5W^IF zw~2^xJYud1kANL$q)n0eO8i1dQ72N=i4=7rMV&~I`3n33EPa+dOC2dPrOlE?ip-o8 zDN1d9h7_4CnoNqY9TT@(;x?`+D*d?|hOhJ*kfIKx$b1QY1%3gRK1&`cG9}K^MvBZV7AZ?Qgm29@$8W&0$1)z2ZY=j2w1ZLMG5Bf|(Wa)Mjm<=xn}hbZ z06TER0+;X!Q#N=4xyKWztD`#c1WL9Pb-w^@A&j<>g?8e@R#WB)lXg6T)Zq!#r%@ev z0y!^5{VYIz4Ws^Mp)UKd3DhMfWh2mf$DzLP%knGpi*sWyZo9?pxME>tY6{yb+c0Yv z+dFF})d zY`v^IY}st-Z1srSNCQd*#NBD)M#~z9Z^+VS$@434gDq}<#ci<=xA}T(M{HmG;%tko z1#G8mw`{|R+q7-Aam3xhxQ&$bE3;c>0Fp5jo^QTRK5|-w9G9ToMbPdlAO(j*098zoA@wGpw73;9TMf%~I;33s=4otYvT2%Zl!gU`W;;P{F^C0SrtGmc247{S zm61#rN+AFl8R|s3PzUl+N<}EG612VuT3-d^;c&=8mj6h!z%eLUeurAfzX>R5Zi~#e z!*4Pj@-BVzG`2O_G)*>2L%Pg%Y21zw=`!C9>B1MCX{9C8g%S)vT8281F4VMqlyDJB zx&&=7f;LzI$v7NRaRk1^NVLN-_$vH{wUC4p@RcT^#U_cXGO z?*cyGk6tR+fp?)MXG8YopjNZ|^E&V@e1k&BL4Jo~^i-4tw8Qgzl%uzzbf`pc#qUxD z`N(fmjUJ1VV>Eg!ej|}$CygG`Z1?$UJQiS1gj2oASd=*xi!-NUk!BqhY);1l(HWq6 zSmtNC)DX$SLedL~kbf-aoCs%uld;5eDwcXq#gflDEdQL2<)$-0^*|lWbg7{cdB30t z`N!hWiEx5A84E_IV&UjiEFi7JV$$hYygCC^4@AXGml~qT{{=<)%DMc=Sa@yxaH(<@ z_156%?ZwKe=^n40qw@=aBY9*Z5Fn)mO1Dhb`rmN>j6O^X-k7KK53!>3sbE;?*VbwM zA@J{GrRn4TY^BG~(E2st8^Ave{umad9t>o`l>%_ibHLvXz8rir_-DX7z#j&G1pGPh zC%}(@|EWPEJeUck1kP9VO~V27ZZ6dyC{i;((+^;_aG+F8J%HK6fry%Xph8VNP^rcr zfZNdn)oSd4QEK#ov1-JDS~dK@L{*OK=j)2whA!marTQ-9A2huS`R_vhyO94bALjJpu|1RVo*Jqul=$nRa{y&L)OM*h2z|8C^J8~N`> z{=1R?Zsflk`R_*lyOIBHo~$o4`K{to;(@JGNO2LCenXTZ0BF9&}w z_*`(fF>nG0A#)#txc)TwCh*sSPb`4nnb5~be^mjKCz zQb=J)`1Ug8ly*Vp|2!w6oCU|x4;-2V{NKBh=o^kM1t##LN%R-T;d0n{*KuG1551-u zJ;&3)3I4VYD8k77zz%*of2?xe`ai%E{$^<{eLw#mD8t{pJ2+AG1>SUDFYt#4?^))n zItf{s!SZCVJQ*xc2Fs&gCZH#S<-ywDR~s*LF2|q2@|;B^3q~Lp`P7tRcd=WLch2FnA@!o`f|$*kW!D-Kxy_NbY2^Ns1_p;&M!EY#HU2!02?sf`Vu zI3D<=Hb@cLcu7^Yv32peq_mGGv5u6Y0`$U%z?<1HW+Wkp_{UQE` z$P;1$NW=jN7HEvIj*c>zAi)I@KfpD_M5ve?m>o?7^Mf21OFywc$bmtY(E2YJAfil= z1A_`67KlXD36TQC1d)h95o{1q1Vp0{BSa!ji0A^6;Dv}8B2tCO0}`=AB;tpV14G0S z36_W`1+IN2qQ&IEct{hR5OQGf1jGv=2L_2kjDg^Wh)O{YQura{z@Su!M?mTg5wRk8 zB4QPYUP0vW?M#NOmwoV&6ZSAzV z6K`Q_+Bj45Xp^UHo;G?CYbo&=thuz|lW5N;-UxY3VUCEeL0*A)m}hVe$Sd$R3p2mX+EAHR$?w%jBK%6U(|kNZ{KZ_v zK%5PcPYsBfxEta$W&mwL%tjqhYs7C%1&WPWj>*7Q5!XSS4ly1?MiK8pbQG~4#1;@^ zK&%04DsdsU_9CyS&BP=Sn?Q^Li8Y@%61E0n7)at*fOUiQf|7`Jfpvi2pWmIB9ZEQ2 zJc#um=7ZP|VnB%RA@Yh?A7Vs+UdoG^(r3xD#97)bWtK2YmPi{)8=^Rf<{+wr=nkSh zh{_@Ag9sg>K!8_bY{(z;#yl}U%m?$pv=bl0mQS1p@fyT!5Whhj2eCB7br4rWoCgp} zi0!1lAPtGZ-(e3jC`)3`hyx@Za0J>DB`>8gr86Zpr8cEF+YM2jl=PJR>;>2(uy&@+i2NJ5O&LzvPB~AR&pv={iTwln38cmJAxOLFTaecQeGbn_?0dX~yqo)l^La0^ zZxTY@%{$2XJ}=oe+~038O-!2*`!5pHOk(;;?8l@pL;ekt6!|w8M`9h3e1Q6;3zC?pnA)ebZ<*@LACu=_qE19+jSTx@g?}{N3A+_` zFYIR6-LTtX_rq?8-4VMbc2Df4*j=&PV)w;vjNRF+Fub#)YhxEjVt2=GkKLa@`q&+^ zTNG#?!L_7V=qhu>E|eW7yH-*bp3X)`$1Z?f0lNft4eTP=Rj|uo*TF7?T?xAsb}j5; z*wwJhVb{YhXjUiEhwg~o5{X?DyDD~B0_|fL#;!~tewUzoBO!g}h}|ALJ9dX8qz^HS z?WEYI_@)@AIHy>rc&C`BxTn~s_-8l3?tt9_y9ag?>@L`C%<4e;(1oxoA+cLw_rh*Q zAb#w2*!>99?-F!LB&5$Av8!SSg|rz$`VfQbiY8~7fp7ZE02vTDh;@p0!v6#UNU={6 zD4@Ura}B(Db_y2A?t|iKvMAV3gp=c3tBBDgZh$gYJXkU@bB<{E%I z-tWQ(*(I^LOH-F7&ZaHRS(>smcVlCd)$rVZhL$@v~+F9FAoRw@$N_O!yX=Ul~Yu}pVCEI245qc z+eOPSV&C{2SY-U;zmhV@;A=AY8cu~SR>~k;&Ta{$k7qLYnhd@Mb>JfQmvc7JB^R@o z9GmwHz9xgOIa7XT&c}GpP1MQ7ldAOb5bdP2my+nkMm*Wjj!I7$B-&L;^lC$*t(8O% zH{#_6tr~_T8j~#1E=!_679p(RGu|DD#1JAPLr@vA3mH8@2+@a&kTpVCV-%4aULuM^ zh#n=pL}Z7TXoeCZzJ>Nu68+|oXhS8@TL+1DRTBN^kZ5Zq(Wedxc{fB4A40UtlIZCZ&B#6!sB1(hgoh8!agb+Q(2w5YSHFgor;UywFgy^}#OGJBkiDoV#qGOPEL&$r| zTMzB1$h#rr-Pl%}>KC<7S6XbiK2yr(?-Apa>3KPUs^zXka> z9C=TnH)NKGyu)y233-PB&5|{uSz{XVZcrY=k#~dmAV=N@5b_RxDgA`Jr_5<=4`S95 z^n{qcXbQ6kfSD;Y1rZfuIum3CO=>i+kpyKyq=lH_Xp$4u1x<857)A?VRuj)E;$eg6 zA2HdAXBDz@HP6O;%fezx6O4zL+h~5XR)6H##eC32C+0fAf6$Ca zlO9R1AjE@+>5pbW!G_Q*=!3Df0H!?g+9IAlhyoHbuy}1@>++g@U(D<~n8{bnyX$&6a))RkvDQ5W@y$O!AK&7DRc>uBt(!1VuUCWqC*4` zLL^8!0)*%f645P4ogt!KkU~R5zaVuf4CG*v-hAocUf{!~f5k8WtJI))}cctTQCmoAml3BLa>FI0}%SpFKW%c=qV*!A<&I5X%yH zt@7e4*$1Bv#!~Q=g01BEL%hwg&X&7lzd2@XnCI?Z%WX9{v=F7X5Yg}?N^>DQhLEvDz({*ad{VhP{+naQhbRG4`#7Go zINccrrz_)8;&eG?B~F($m^fY5Xp7M$UeHQPi_slzFuH6Z#OGRUF0q3ak0-cXi{&eI zajkYVVMh}AsnG*+ZzMiBO280%0U_kx1t^75hw!oyBlk|?Ssdw(Vp^wtxdc%!rJ1o?M+eLHis za^B7!?JUyHAd!ExGdqj4vq?LXWFKImj&??g{JXG6JF~R#M?1S@KVhMec9v;pn=;cB zbU0Dg7BxD_t)>AB@Jc(oWItn}mK+}o$xPFX zV9*Y{{AI${E+j8~83^75=5=pqFubz~K+AaF^U9*Zjx(6Lixx{~)`4E!{;D#Vx>pJ* z%wX!MC%K5}BF58kmVb5;Wtq39k7=OSxDfZ08%mxoL_btR$*UrtH#?>L^tt@xJiZC zV+tu4GCxzA5spxa@S`s$FNt5LbWSG~>15qlh&u~%xo5G9D)1r;h$s}4p`Z^1ktj$- zaic*lsK$Pzqgb&quXR01S!AU3C?$wVi=Y%FrS&q^kFX>T!g`$|f`J%6dU*1Zcza6c zbc2yj)=`Ey%pjM07Q46vFE)XgLctjd{!lQ9f>jhp9pr**?8iEa72D42EiRH4ZR=-B zFq0NTDOgJDd#WE}NhF2!MMVq*k$%Yi07A}<52$pG+?zeNyxh9t5SJX}a?fHH+2BPt z5LGBBLqQ-4DpAmi;tGUZkd6IlN3mj~1USz%$VghWt@kO5m=xoVM5VOHau%^&A87-`WjewQXV18-2g(WkE4JH}~s1QR$=#YSTF{mw| zM+}0CC@zx4PFSByMEj74`XUJmj2wuj6cHsR1m8C)A4ohVl1zxmG9h9xV*ahB-qAl9 z>lE^45D*sqFxB95kvD^SuohTBKGddgzsQ@xaS^qHd>KOCTubn%6#k1CFpG+?{*;IW zA`ve}68soB{S^rjUnYe7r2HH4m>4u6V$y_&u0Y;QjiNs?))v+XetqN(*s7@pfg^YZ z!RpfDN*u3XdWqs8nukPW4+(j5t-PaB$T1?wEZ)KTNZ?j(S(q% zl%FExXMq1AWsOC^EJ&eZ1XC+6Ylx;1>@7L5xU#FAxUUhs zZn_&AB6Pf7y2Paox!`}v#kCE2e@(Ny<4G+XSUX{FPu1Lh%!Sl!i+N;iw>#?DR$zD5 z6L&e{GRNXykbjTM9C4c?I2ys>k`tGk?mkDbyXkIph|lqQ=@OSZTaLKv5tlv0(vk!bBPbbh*+V3aU~^ zkZpi+mLzhQ++x)F*IN)BWASVKYc43W`_V81*Ip3!#@wnEn+P#K&0tTK}pG;$kco=H%5EC;_wj z0;x!Gq$afzgU86ROZK`wPrqm2IeV4#czBKP8F+oLYmDpU>!t(@QbuGrxy7hiq@_j2 zoV@OW$e4aa%)s>*#JwR^0|+Vfj1cUO%gD9s(^AgU?-_WG91MuV#(DBu58lW3r@wQs z>mf5rDaV?fIi}7|g98>OitHB`BCn)`Y(nqFUc_6sKp|3jV zpGEc0!1z|m8;;m%lmeG&UE_H_l}Sm8|u1xnN#5pk5#l>^o@=94lPL-&3>8^ckxAd&=8P`uvf<^Bscx8z|pU*C2BS%CA#j z8+fn1&l{hO=j7|&dpLF;c>YrN^LNVTS3>!zHD>*i4e`2CZlJWX*9W`C`}?o=KR+;@ zldsF~mRrY+1FyaGGlE=vc^vu2*q1a=w&A^yHv?tWsjm&Z*WTxi&&G4|b?-eKgAY7^ zsr&i6O}pe_=se%F0k#7#We|@S)*i$7oa2K9?xys&vVavGr1?_cm~5YGSvfm1avp( zy`W*t_!o1t_ zP7~f@!bTHT=c{_HpTy4F4tC!DB>02i%fPRmuATq!V=L~wzhVpS71)Y<#Wd}_kdM8% zi=M?^+$*pb_xrFH_isZb%JF@75_aWYiru&?|2$FargGqnxf%Dj0@#fEN^Zvea2__} zj&d{ZpO#}Y?kjq+8TWS!uo-v#@30y7)*v?HF1V*kJAZt`IBewovkIL&vLzS0ar@qQ zpj0OhZ5=jQB`0qBRle>!^pz`frmMrl-WB`8{+~bjs~>->{bTckqX*1MI1b1l12f+C zPzNqzbl};<#bt1b8DwAv8F)T=$vabNJ~#1l7f-6Zx(-bFPSP*DoNKY%{R4Coh-1iT zzrmhy<4x%ZaL$cxwe$$KuS zJGtgPAN-h`f>|3k5o<#5M3&kakiOG|;0Mh3Qxi`AYC`n4CWM{o%z z+PM#TF}~Tzk(U94yrgymM1E2`1tK5DzZ*I7k|K*)%5%3Lvv?+Y2NFVl26zb)4?z|i zWie9XAqe>~9)jo%Nc6iRgP9-7-E>bsUT;6I)a#Ge+mF}7k9hT=Hy`odLwPTC2UBzy|pFvl|>DkHD;&-F5w0 zt{1pV46a)6*2H5Imn|My>8+JsTj|M_^)>8{6d-*)Jur`LZ$H@e^lRzJH7F?upxM0V z_SpU|$Mhu#q%BBr_x4XQFN_<&~e=BKO5~9y5C2D1)OC;I$2+nRtC-`HAl*-k)m#xF&$L zlo(awQU!;~u{BE7n1irl!Fb|?4`<__k$$_;x{b7^)TRWdB!?t0k{v59An{}V82pSP zO~wl#dv=ZhI8xxKf*5&X=!vr@1|MlMIDKOG>2ZxHQldtQ6cuDB$HGXHL3wf=3D=d- zuQvT@)0Z}-Dy1u>EF~@_FC{RgG1tPFG{KIFG#O+vduaCL?D07|Ag-PGcVgs;ou?N~ z;_HdICk7vBGB{4+HwCN7F{so&uI%7S5Bj>Mk8Aq3rWB+!q*SDYq@<+8r1a#<6q6<+ zCu704;JZ{pO68hWPO;pd;R{7jhPV#X(+uR3YkzPZ2B-+~f$K2I%)q<2A_muy(uj#G zYY@aRzvxR5zqrU{@4YZx;LFw-&+e=Zmb|hw{kVVTg!bne6$i>}`!4Ad($nUZyK*e@ zSGdSwa*@TtDT`4GM(!dfL*lGsD20=rK`Edv)fxZptbdkd9n)aEfBuA0aM8&F<+gp7 z$oBMidS$O1iwqVnvY1@tv2e;|ltS7}%`4kZeTJt@pV9UG}|R`76gFhlPtgCKs73oH999@T^KsdY5mJO3rxXj>RhZch0p4 z7wXZAl{5K481+Zqj-YHNf}E^(on-mSAo7NcU>hpp?OeYRX1t1Nq+SX+(V zsezDe?%r^EK0T-dqz?}gb%G@1ANmQa!?3yvIquhM$nUg+AfF(s0})Prh`nC#(RGMj znRe-Z{RZ-Hb~8c#&8lze_(-xUoO(YJb$~+1zuCW!x_?i>yV;coc~7k!w;E;H=fv80ynaEbr#v0sAk=Ll?*sgSSPgO$^n9>4 zf_$!h*y^bloBi%&C!5pt>oJ%=53zTP{|>Q}dwq4#Pe=OxC$jH}*WZR%K1V^L&BYgj zn~^oiR*R0bLz6Ch(44MMj=_9!h;3VZZ-`CY>t};LHq!Slkv&VqUj}QQSTwmmiAlSQ z&5<=dR>zOD!yYWV$DFP|jlukAh#gz}W{CaU>m!5yG1B)Pk^M%zelEmP$-PBbZ)gvI zzT52a3H`Ux4pR-#={sc#rYlLz@KA3+{W|J&0x* zeZI77wrRFywqv$mwq3j@)lO+2pq)V4A^q~u4-eZKy@$}B4($v?74SVQJ4$icbB7XK z_T!;PCa&ve-KJHab)6EM^`E|H*dDmnpT29@UWh|sTVlH+j)XW7`r8Sh4i0yJ_G0>hBce$5Y~FO0HQmH-k?XD0Ll$-F^fa2 zMB;ujvbPMq6w%KB>kBR0tUr`KtW)%-!a7FZ1N6hfI!GS`te>o_#9R@OH&>Sd|7P*7BDk>ubpCcW5}Re5rl5xc3(FZirSk67p||SQ}d1gowo< zv8Iz~jU##SJc9EfXR8nrToAcOGwlWeGhUJ$`PvA@i@8^` zKx~4@9y@Zhvd4OY>z6$ue?$g}91>Y1@~tJS ziv7!rLm&o0WV7t^McHh<$Mwr*kn|$r(aw#m_sV#r%gA?IH_KD9 z9PKwHt0|LZ=ETtoiL)w>UWl$BaWq4e1qq{$)C`R?Hja8Y`jHtOXLuYHadgC4Ac>}S_uau`$C)s*ho|5L2;3BOlm1XY4aTJO3 zDvqm&l*K3kL&&`u<#A@k5g&4Ih$BEENJyNSab!s1 z7>OfAju>TD$C(~Vz>Fx7`xL^2BTcphs}HaUGtmhMM$?Nn6Ui=EP8nU2i=#rRXd;5UX=?A0_5cw~%Ut~OGx{Ru11}TVYj>cq` z$&s3j+}NhAKER^OL?!` zJ%RKBBKaxVWmF|2EkR&&G$u1uj?`r2#ujbHJZJ}AoMlt`&P*8yp*la79PXCH-pN+oHMiYQfB9+dT7$L&V+yC z5=b9IQO^c_iy`XYXiFhcHz#^J=xdCPMs#_!;n1c-`wodZKI8QD*29Mf2+Hpu+?@ap+SAKB?7*~REZF6c}vrS7%4@I36(qV}DD$!k0 zk45{1=(lL&puGd>Fhn~Db!4J1Lt2dOg!(nwR7hN_Oj`@rnQ^@t*Pd}*a%xR7(!y^> zy%BXtv|fsiiTWn$ps0_ceu_FP>afz+5YtjYoQ%cQa1C+3v1D*ZCGNCD>jrmVqNRho zKXLUicW#RLn#{Ult~SGJssZbXxhf5-uFNX6Q(33eEz{JwQvXUlEcLR~&r(lIeJ%C3 z)ZYJ#0qArR$D(b7!*Amk{Avhb_Ea)zg_6zQv#66X0)8Jl9 zv~O^&7grH;k0#{RtS{y&Hm+vlsy41}<0?0O9ppUqE&H&Xu}X>R_pprEZpbS|fW^MT~k<>QLDx*dEvpSpQk~X^~@{r=^Y-JJxa5ZPx3U+HYhHkt{^92y%rx z$WS^^-%raf^@5Zr)E82RNSz|}ioxtdq2lu`aR>vi`B| zvCgr+Aq}0Bck~uRG>RZlxQh#=g6!Ht-5ezeb#~O_QLjfGA0-hjL)45@Ur1dd>k#V? z>kaD*>k8`$>j>)x>jmos>jLWm(qO+w(K7Qr_$~MiVmwFLuv}Ok<{ar{8kshJL-rYG zilpy(DbBuWFk)YoPVBqVN%}J3?9;p?_9=4d=g8UD3Gp|+i~ZD@BI)m5inBi)jF6sG zKPkuTFVji-PvPuGy@b4_EL76BlCysm;yru^@_v%N{N-LlzEl0|iyb5HgWC6zo>bo~ z$H@Btya3OU?*W9or?3V*M&43{d=Kc;k$>aAg!k|rYy$&p4`LWln}&975iW??jKWZo z#_~yv=U9)GlRYGRO7{0&Yo@hg)_K;E&jM1xt{-PF9Ymkb9vthSgZ~#E_|=il0kvRg z=hl9SbemBdTLkTuv{NG8DcdA_JNA0)yS+9@YkREotTmsNT4T;07wMKY<-z~!9Qd`6 z&H-O={7x;SQFWUu^;wY4v}uNj|H)6#I3Q zE$hyM|7Yq7(RmyT5v@nm9-ev`tNqvD3vyH@duVc`CVOad^yb|=Q})Yb?a`fk2 zAI|mQT=)HA_!Y5ea?~jnOu?&&rBZMyl+TpKl)Y>Xv_Kl`BQVJv9U=DyyNukw48HxdveVgBisKeRC3AcSul|eyb1>r7#Anot?GVM0j$ng1I)iV0#9+p*$c>k0 zY@-?5XvQ|0Svh{TO28|N&cyM#Xd8u&EFuJ5S%d_AnIY)RA|&X|BG8*fpf`&^Zx)FK zn&?OWoU>gbAB{rDMBG3bZY9l~{M}UlrU@y!F5O0whH9Rs=l}Dzj;z$GV z7%|^-=ZsBoN+WWaMw1(nOVFf7kxNi*BXZe@Ts9(?jmTvqa@mMn zHX@ge$YrC+WfZf=bAYBqk;^oi97QfclcLBaXkrw(1Wkw{mr>*rR2xMuqsV0xxr`#0 zQRFg;Tt<=0C~_HPF3)Sb-ehB!99gC&V{4cYnSKfmue7G~FYF&!`%9m5qimHBRHxEiOOhYG5cK0Zb} z4;GD3&ZU1HrJc`)Mk=TJzzFRmK0HPx{nvL_YNvB-jY?K*k4Logqt{PV$;hq0EYivN zy_ZZ=eRVf|?U`(S;^@zJU6J3Qjug##?G;zPdFfa`Kf_B62?(Jlq@IcM5-0V zWQRBnn4Ts&#A!@(h|`$l5ND?wr*RfY1q~H7RN7D-C~7^b<*2d~)0>#w5NFE7hB%FB z4RLlbPE$5n%Zy?S<`3gwk>)Ha&gg`ZDjKS5xI6$&#h9$n1dIZXW-68)%MEEUs%DlI z%ZX)#p@%VZnlcIQSFx;RMv+C663t08CE-0#PRue6?x+|c2p{h;<|4euD9mUgVtKMG zS&l42mLJQG<%ahd6Q(IA`yQisqB)1A9GY>cn4+^psvW3;Ak-c2F{T>4$CzlS?819e zizr#HEK`;z%M$M~=1Eg_e2+V+r(&E6A1Z=qewjy;VfaVJRLHXALRBg!Y2su3qI+e+ ztf^3@s)XhfnoQ=={1*O^F}tyB=ya0GL7K~0hs<-Bz*7lJB?CZ>AwD}55 z4Zo0i8Y!moiAEhNn5aym(T55ng4vn7e5BhvZOWEuV!4~Ak!~t)XpW(RhRPV4Yp8G` z6r6d?N9u33wKT94ia$~M$zn97o90`lT@-uF1C@Eq2Tfr#3o}1d+)-)A??lrX6?Ih7 zQ9;LV=v~ap1?awTEXz@`z*4B(MBOIK!I)#3QkiSIC!k7=xu+V9B|!5RO|&ctn#E`y z<9DXHj4Cp!$EX@(9q=x1<>GN)r~6(gyF}3?3$j>NG;6ZFM482MqXLU%N0S%Lr7T05 z!e|m>J)wz=$|)+QsFY$I@-BGg!f#)Pc`s^;ERJA_c-2-kjL}HR(xHmVRZSHvHReH@ z37HqxZBbLvbVidR^F@`EtBT?iXje4qF%@356pd>%05U~XLAk0YJn>R;oWEyOQ5jWK zMiq6o6fv3io{o&VnC{8QQseb2m z#v#PGNqm>QH>H@DR4s+(dFml3q4R!CRrIGc^wN5z@DUR}Z$c-F8uDDDAfC)8u! z@_7@!-e}JQPa5s{wMKg$`UAD+`f@*0{3WA8FYTfVeg1K1EZ!Mo-h4aNtOx))5dd@| zfVxHidyN1T6#*zJ{2;hm`ZW2j}Xba%TQ;zV@qR&aUJF?NiS9pD)r$wdBxZ?KJi- z(fVjC=RvKLmuTmjAaGJTm}&DQ$9fSRS9r-}lqK|8&3 zg4izJNnW0Xec_$tdqZjlE?%Ckup9hSvvX9PcD_&)R#UO>`(=4h<0pUf{$M_I^nEYf zv(#6p#^_^-XMcR}&9eg~N-6&mOE^@%QI>eDT3zDt>s{h;jZ0wuD{%h~9QZ)hH{E*k zEmudcz53&IH{5jnb#))V;pUHCea#Kar{8?rb@*99GMT>+LS#*8&{!TXZ9=G24v5zo zSJ*uUQ{z0x)t=*A&+!<~G4$Og9x#>fIWF)V7vUK1^F4xO{T+_8-QO7hc=s3#>QKa` z@dwU)%W;IqAjuOB@#p&&%T1Un8{Ws?7Te3$jBxoxm(OzfQp4?ulq;UQceT0XyLYF{ zKV|u6=URTBjo0_@HZ8udyw+a7|4NsC#O1fSe6!2qy2kRKe$(=wEwKF2?^^x~_x!&fwCBGvy<3YPdhxX?by$<>mKVUR7=R z7+cQ%@!z-SQ~t;DS>2W|`mxJ@Yx&{{mS0+K`Rna>_Fw*Gd;Yf9SbpWlEPu~iE&tFv zEsy@A%U8La?Fcn0dbi8%ckoAT`T3(iaj*Z*<$rPc3Cpj^GaSK7Y94ZzD&2!2L$U{B z2%U&yJaO31@C3s^90Q*ohCv=B^X)nx8M-t9GA3{g(Ka= z&|Zu2-R*eyr`quDdv~`332Z929m=TpymLw9bv|qcia-^5gmi zEVql#P)@w3C=N4VTt7DzKa|GxU#2L1q%`jIJTnQy)1F8itT#cXkCh{=h)=|qsEGSi zG7&#E&Kzs)kM||whkM~m6R*@g@Ff-3i4pj5Y&@Chc|VM1aos&kIXZ!Z9+=AGj(#$N zH%^XgU86{Z! z_8i(6P|3cYo_X=(y*)?bhZ76q&f!GNcW<1<;M}#>zt6YV*}Z3uaz42)wAb0Q7e(>S z+`W3=OjLw@xwz6&uR?o6dz{@Gix&3iyXp`+ySGnOzTJ6yg1epeeN$9&&+a|NINXKu z@a-wvt@ofr_7v_8wS#XB>@ESXXrHK@J-bU$`A|H&cJD^<><+i*w;kQt-nP3PG#YiX zqAjOgw^S=1j&j>asN%NlUDAye`-5$zyYkwcy=|4KlEZMAY;W6Dp~_KZ^V@v8 zoXeW|RdZ#Fui0t6 zJfNI?E!E9MEqTo+cI<3xZYgWd-I>)=(d=u>ef7%8{cf&y4qu6*xAf&{=P#E|S5EMY1={JFRi~Wc&lhUvu?f?Z6LpHT^Wzay zFzNYviFUqSHd#62dT``?9!H;WO0{_b|lyl{Y3CK=!F{*gr-zMp#^S!AhO#2j_ z?0QF_NIBQ^P1VWXZG{E6;ahdM;hPill~a3YhE6{97JsgCZc5gpY}V)HC@1Sj4LX_p zYE3qfP>I<(`S|O6es!XB>6%BKIr`Y46-BST`>7)fbn?Vgy)oa_Iu`t2)u($BJrEnc zAvCYI&r;62{u++!(J1Ici7+m`r5?XQ92|xy$b($)^-NbqXk2wl_Z5Rr!_VNo5DteS z91g=NCZ0k$>O?sO!I28Ib9l*(>m%cpK2(WYQNfOsD_>6~Z_I;)NtEHc9j(HRdCG@4 zN>w#}is$0Q=}8nT=Y2iZcrF(`MlqWFC>)2;XXq6ulfylu<9b&PPMyU25Lu-jgLrb# zX*dU$Acn-)xc+lCIt8b1Buc3H@HpH!GK34s9uk_7XZ~ElkI~FM4-NAjyyY|-2QYYqa*t>6E)?R1dtOlj;fppnD6=l39f3My>L+N1d z-rybz8Pwp-yNmYd-6-LEiXd(FposT{_T=r>yCy5Wt8BNkX9uclTYD*lP8;OPUHC2B zuJ=q(eXZ@gcbB#6y(se5%67dQMZT|G=}#85=eFr~6jNI}%G|dv*k0bIcjc)h?uV3U z9odE=Yj@gOQRuUFM<91JuK3&ZUKD(LUR%j7r)_r_7x2Jk1uD6BSKFvv`tMQvZO*O+ z#1q=uR<$duHAnf{{JWB^?PDO6TS|5nx9U%2tE^qgw%vvJ3U6!4-c{A=>@2`{z%}K^ zcW4{e>TA)h=1S`>aNS(lTF|1GW~tm(e2MJ61r$45@hw{WTH4y0{Vl=PaV^K1b@R?< zwI{dLX~Ag$1deX4fncg?scF_bixB2P5Y?oFP|eN|giy`Sk^w@fW=H<^07Oy6_K`cr zZZF$WvpsuT4#LuHB~j)Z4W?7jeIg+JMjhh#=bU4sqX_a;4C~;h?W`k zK}_X-r&v3G7>=V4_Z8!rwg5hK_3uix(=!hr+TRMy(s#2bKn5Mc(eV$BN89{%1?FUx z_|W+fFds@*;IU>uzjO|yOw|(rJRO>Y50qS;1ySSQS*4xtWapy!AG_WUfiw3IE*$?L zzCL8h-}@kU^1e~6ohOFjW9#Jemtr>OygyluNVofPR6slbI}44k>Is0Wx@Y0@V+J?@ zFAMAd?&|9yd}{4HTn*tg=MXL&doLOwQe1{lpZg6!v>vO#XGUE26+lwGuWuXLEHvULASs`pgJ!6Y^sS$|;EIo|-TR*t^s(RFzxy9vGodn!x#)4sOM8AF3qVy8 zdWT9LO`vTi6MZk>JFM!-M(d5^Gdy$@1DYck&>VpTJ3a%_02~5LCyL`(NrU!_Hgz0g z>nQqx9u95}Pr^-QaiAtLN}o<=lRRQVYGq zmB*^%qfsD#9*GygF>PEsRVw*mOg!WI|0>mqTe=}LAenlGDaeo>41NxmtK(PnKzQ_0 zA{{}OePj~i!pBMUPKoPj_yk!!({LYJUV^*;B6B)!ZALkFC+cwpZL6mN8AP$hdvf9d z2p^~C3Fxwp^iU9CoOLv)bi4=xsUUG8ek`GSi;Z9k#bdse2~%(_d-nu(JFR!3+!nTn zcKh0O8w&1*UAgUgKMHPNe!JcQvD8-Bj$&)eZqI3hJZdS16hYD5RobTSnyiZ2g1dAp zs%UFl83cqMMb=&c$pH?D5#XQ#f@pX4t|A=H9H)|RYTZ@Ys#{Qim$p^1*|(tx8`_F6 z&TyJ%qi?OcI}43{6vW)97QLxTotUFkOLIj_PP4vqxawcq~L=Dn@{ zmQl^Rtz0>iHwJc&Y!2>pns=c{(WWEK#XC``%{zl=_EkHb9V}U2O9;(Bxnt+4n4&8zpy}dbP1|`FG=&Ml9t=qzgV%!ehjI!RE2jP&jU2j2oZ{L}}y>v%pyIvkr z*+y23+@9RFbqmUSdl6(tXj|Xb_1jemL`P(s-d?aRur(h-q+qLmd(F1Wt<~GcZ7tbW zyESJ^2w~ZlFQ{ZIom zi(8N9pgq5}9$3at9K|5$x5K7m#PXgvMnTTakT0)$0i&RwWkagWdK&U2zGy0j438CS zy&W=T_>VF4d8`26tLPgLDaT%i(N502P8o2N6A<@~KFE~cm)9ch+m4lMr|)gRN%}sJ z7zX7~jdI>Z?BvrU@$KgSsY>hjO|lj zD(`cnwX;8Km^xm(?MSFKiL-+*A{ zn&v?^P2UgX>((ON^8Po zj$@Dy&RZZ}<~%%G_dV8h=`d(@v#$U1Jbmm~*H^Bc_b*V~Iz3Lz_cjf%8w5!2C+4f< zw|dZx_n~+H`fN1+Y|L4D;#HUh9PSB2y1X#EUSR~30Llmw;%NYm(3DM>kmDjunJ_%U zGy!444wa^3u#uC{ahxUe5fkFLIH6lHjY#NT%&roaaCX#t=JXx|VlXj{cs!MC-LZJS z>b-tlb8`#2yq1rk$+om+Hz!+Kk;G(cb4ymUe`m7!j?qZpPTh?8+fKa>8xf$+Z=a$3 zsNzWF4!zTaxRQ;^JY5xTcXsSVa&VZx-M>w5p00eTuX+crZ6oQo)~V38@K(JIN!w~E zZ) z&wOri2o<_$V}hgS&yIw^ne-h9^@m48;&h=7cjTa;@p&&pPEacuI{%S_tnl+1mZ(K8 zwEjC2{-X)^Fm%2dM3%Jk%M!z07=_~2dX5R-Z$jh`vw?s2W0wYEg$?^trD4e_$cffh z*aem*^~}Lw1RYGwOX>IIbf7~y;!j`%n>dEL^rzeesu%{*`e<>&={-D!ljQ_P$%o4m z7$qOCVA#uWSQ`0y&3!h+-Izog0-Q8~abRzR;UR|R{9q&jKrl$_GC4ZNBj@JcQgnA^ zF6lVW^k+*GF{CxQdBZ0E#^kOIJMmqv*|fpGF>6C|^ZF(X`gd$B+>l(iVKZV}SF*vs zUT;LI*XC}>T|ZIz*6R%saJ``dVafWebrY3;eFWh!P|3QiCX7}#;c`(E9$Hs!!bp>j zO;Wi{c?c_FNPJU-;hKV2Xf60=f2;(&oX5*c*ZS7r#rP$kd{r632*_EnI(JR>Y8=$9 zDP4_xn6PMdU=@y61y>i4-%`5De7l@4spEx9ue`iAFi-Uq-u6^)-?10|`;#A-7V@Fl zjD0W}(ntFaJ@J{3&JOz_Fh~3}Umr`xyE<-KQV0?0|K}2nN{&2>!@6$H5A}`Z48LH) z2Tb@C6K*o$|p4;-6Eh0Dz+2oGkZdDba?t`03z#f&j^(b ztqGleH9P&1U@$#p#aiuYG@hlxe5>b@BXK(q}p{q<;m z*X1hb`QC;^GM?xSA-{_fN$2pZh@*ykS}>Am-7!M>pt?XQHs@eq zv7<_bcAyMf3U;CZw}*D1aJJ>(hUE4gu?T*{5I~jeNbcOR9YweuFWp&&L52SNB9((* z!aEAL7vQ?yR;a4B>jzMFo3qVv-?puv+K4V|+YX*<+*i2G*|8Nxw|YkySAyF|Y&)^F zMQz^_*cRG~JGPI+w8YuAJs&5LZ6nO3oNYB*{aXrE&DMN`ddsk_!^pQ6Y#mE}m49pP zmh8=iYUGwugk@W*5$0^E*&Nt}@3FZ6;jqn>2n#lkL+IaJvnjl>P*ra#Ls+tD6vEJ^ z+Ks^tg=#D$17h4%zHzwWxf^T2$3rq;ve1Hyk@ZEYXv1iP!40*L0=RkksP)C`lIu6k z%|(*R*H^9cuTO4VzX2a%bKd&eb-F3E-oNg|`(v%^aF*8;SRY!a*H^ErXd1b0Y*W#? z8c2;G!iw0arZKUyrdmjba8nH=MonzQ+R9kXTK}3tg!yX%2#2j1xpwTD(zP{fa#m-r zt%ZyjyJqC-VQXq2C-T?SLQ41$R<5dEJ#JOW>Y7#I+e52sSC!p9X4RBl6z# zpUE(2t?K4Dn+F~fqtoX({E+=LIA@IOrWEfaplg!h^7pG~;W zgv}=0WWv=ZyxD~RXu=Ph@ZBbSn+e~<(7CLyj_h?O>a-K^VbnM2k?H#Q_tw5X67ZqL z%zb>O?m70te{Q{^It%70-&_AQS06oo_@}$yGkN)8Sn&IL`(jz0dbO*hnHV3IsE&^_ zbD=;yR=7IxQgiGP zVa)o7X*^+s#p`O;k62fUrr~QUbQ?&m+c?V5EV5%c>uQ@yV&j^sW5dum{A&x)I11MK z5mvg*qaap`=HW*;c=M=0lNi`MMxbdFqhWZPNBOE+G>=?_MJqMJ;VY|duU%OL%3Tpe zSiWNP%F!z#D{EI|EjOJox;3lwr>1lS{H@b0JEy zX7lg?C0Vm6vT^jL(P<@Fv#|;#S+hZ}Ke;SxAX35`YSxzwD9f64`4BegWm(fydWy2F zj*VMef-=lmlMO*rwr1?wk!va-Xo9QrAZQAWps^*Hhw?0R1&y~PYgR>WAH8by?E_1) z=Ju+U!%=>Eg|{q6tsH~0tXUCS9!7~4FRxiKVtM6?+U3663Rl!D&%Z5zh!1OyuFq01$-{}B!h}8%#Lyg*-J`v@9`6a@tPtwdBN*T7?f@RthcNAZDuFqIIfEA6*IS8W z{5~(6L%-fCoRue>qosb;*9&WFwK+f08$WXVf5+f>7=~tJ!56&^Z_i z=J?ky{&afG3z5YHoFgWH%|gUWk?&a6{zU0!6xg;c+rAuD#h56d0ab+Gd>f%8-B_|AdwoC!F@$k84o44i z-TLr`5?qOFNN(JWKBVu?FK^gTjSFQPeCv;I_|(RAEt{&>C)cgVC5n%Hj8y`vX8o{r z0adwv9Kr&Kj~ra17%6GexH58Gwc%_8fmlFggBQf~+JG9{R2kE2@JX7+8O{cgvsSMT zC?Af>*6P~>YD8?*T75I}gJuy}qyH_S*g%T#)R?tZ2+P-wM@Vs#i|5!(%E7DFj6qn0 zMiN>TP;4y4;GV-QvjyryoP!9;B?b^AD^da#WN&-dQuxRu_*bFsH2-x}V2E5}(N#|_(QjS5OnG$fGgR<|sN z{(rc~3<-3j9E#lL1@~x?-pDG$0gVqjzp_i(JC8?JU=}P z^^1@dauLjfAywA>mofe#&uh>Y%(`vj!s=-|hhQZ;WR{CQjf5dxKmTbFCioNZoU+mI z$REe?(7H^O{|>=i_N4`MM5Rl2I+R@4(*8~u#`eRwHwsGE(H?8miv2LHlTS@b4mup! ze~iGa{*h71&45kBAcMCMl?-RE>16OPtqfj7jZnCE3_Put&vvV1@VHV25A!nkgMtD2 zI~7asl~b51k^iBb-lpQFLGVPtYY{&+Am^B8LV(U?DHgTjaN%)oPOkp;ZSzt6jkj)7-70P0b|>n8 z=WVweZYA5d`ncc^Z@q2%_FK2#YTAzZn04FuTkYHF#$=AJ<8N_pSKNZH*x=Z%yG5}* zfirKn-$GX@SwN14(fs5Q`+3Mo7+hUQrx6ZQTs-&o(iVbcqYNH;h+_~u< z;DUT|)%x`{@rp^@pn^}TyZ3|3qm+iu-{;EWf(m6~-M#N$fiYS-GFy?x3S70n{Lj@< z80yYU@Zek(U;Fd7`(fDt`y}FA9ar1K9vPgw@9sMRoJpqWpKzOgWak`&V}3Y%>dFY z8C;NLnK{6dk$f%Qloz8-?YErXBEGI(6+=3v++tCJa!CMSR26nLWvkmb#6Q`RR1Q?vO0g*w4Xhe#MDPbaRF|$-;sYQ?MUrkrR9<5ko1Tf17W)_#M)T~mk#3NRiky=*Djc1l%5;r-f zaw2bxO0WCjllzBqxe;^iqi>y;h>}j`q|8@|j^eQy#|#t?HN0wMpaH%Vc&4(?#DMm5 z6Eijq+hB#Jms!f}(UI2-)^sF7&cOr~7>*d5O=Gslpgn+2mM~j7@Sq8Vgn%$i^|DbC z>*fP`c0B_$n2X7JIy8l)(iGT@h;^6&8k)*dK~9I|^zu}85&nheH_Oo}>;Z$hEFH=X zz`Gj<6sSoIGy%Y}GM3&tiB*T@u=Hw90NTJ{dO#zXAs-?HSS3VzARf>VNEI-m4NO3q zEg-xg4mzC0(qNW=!MK>o(veI7bL9cwwG?aPujQb=Z4iCeF2sQU4O~BVFJ>o%0L_7F z70w+L0y6{!(~NfTw+g`Ot+v~c?$Ba@1C-CuO`z`qT%}Pih1(Q14tQd#^ z>sz;_VElj!Zi~GoZX1xe*@&K7wN=NFN@T2C(Ev*P6Ne1l9)bRwZb5FV270g&x#X?U z?0il1R`(ViXFyM`*^H+^AGQIKHJf9$#BavqZ#Sb;S8PIVvvP}PvuP9TJ?rB)I~m+) z+nfwYlD4SP(`z>xIrpYWq;yKuCf7zZQM-PVXQOfha_c=C%^T2M>zo^77~Ejqn6d%N z-MWn%Jsb4v(R3T*H`v$1muW*HQq2a>deyoJ4tbtm79wYv4*bsPzi7+2#td68@47+j@Y z;{_LDs(f{5?V8oASEZ~rtU|*^tXjRAUz4~xdX=e{SXOyfnpP;0I#;+>Ca;KG>0O~+u3PC@5xJZ(E_liIRRqoA=!!7G@_WQSyf zq4q1j;K_4Cg9H7SP96T}t$*#^{qTK1yL0R6MXfa@bEjl_;>!9Xu~tFS-y4Xe0V0J) zM}nd-JS5t|z7qfQ@FYMoZ)h^(=D+4rG`i=U49X=2=&~s+UCvTc9+v-coyuib-_KGq z8EYW`6noi{2vQcD#DMNUlb9#al5h?KQD5dzH2&QzCF3qm#P`s@u$0Ui&SpUM?`&p| zY8;gfQN~YY6VXOVHW9_1Wk6E=nq*S&VAh}vluu{ESVxM2J_fY!_?S;&Pbh-{>oEo- z#T_Ia20oHJB!i~WboOV|kqq2{KP3i90%jnYeeZ7KLq$R=eboGOnONi@@H%T+?Hzp| z4Z=dDfK^aqaTTop^XunA63L;#DGPt~!qE|l!2MproFl=E#s~z^1c)CGL{BUPk0mfs zPzH8rF?9RZo)U4Z2du7!Js|1^dx`;;0B|O_G!`sNVFU1PGhVX+ByMwWwS#Ll7`b}4 z+O{NuPwg_7>SZ4FfIVZtko+c#%$AHfots=>$Vlkkx{W%dksFi2ht4q`+~frZ^2o<* zNC5BIWWLjE^n&Z$;5moPaYm%pb##Ll92W;}i&*aguc?uXTAKtei(2OehZ(?U5o^5Q zu2`A3ENi{sEEV#O)ro7|tL@+`%_<#I8+a;VRSX!1m)S?TlCCoSUs=erLU)aYl2^Ev zJ6Cv?E0>v8c$b@(@yN$4OIV(=%(mRKOutm_8^Ojq)Z1@pftbL!Z(2ZqyKvpg@_h_5 zE6X>w0fyl*+kkfq|E+Dn3mxqG=;pf^)b>GFX6}UC5 zRUwVO0mFLWIbw}xZTw9bRszqC)vh(k-@~vI0*YU0MrvBgBXzD!Se3HU1~H{up@o35 zuSj0$f`Ia@P%fu9v=CL1%fE|Z1@IiREFRb$!?0$#cbR>uds*Vr=w;reswKu{o~70$ z6#3XCaZ9~RzHI>|iZwa!oP~U&n9+s8_#U16)VRG(3i31Mtjf*t0%Prr{egoVd;n8uqN! zthtWi7+_Vg+5+k|t-g-oNKmg9H0)U&Dbw&b81}3(1H+zGG2g?mdu8GZ2k@#~ZbWKX zt^l@Um&b!@BXAg&X^=+A*o^>Q^-I5tT?6pSuy}!kVY>~T;g6FwZywv zy-1HVVv%QY{GxBM&;KC63s8oHw187c2&BO9l*O=bx?Q-A+p)3vb=;1P%_(Sj47U-$ zuVI547>?SIv@vNzG_a~(ZvcjYzYTHgzmMBk&@5eRg@iC(qu(2`>sf1)>Gx*rde%5) z`u#q3J*$+U-|u4Avr>PJe#fxuS)uwrU{?*=jartpJZV`p=vTeefHY#McUj!hSm2c| zu>!BgC8}jfOO;FL(�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 literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 000000000..df74c38ed --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,64 @@ +site_name: stac-rs +site_url: https://stac-utils.github.io/stac-rs +repo_url: https://github.com/stac-utils/stac-rs +theme: + name: material + logo: img/stac-ferris.png + icon: + repo: fontawesome/brands/github + favicon: img/stac-ferris-favicon.png + features: + - navigation.indexes + palette: + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to light mode + +nav: + - Home: index.md + - Python: + - python/index.md + - API: + - python/api/index.md + - migrate: python/api/migrate.md + - read: python/api/read.md + - search: python/api/search.md + - validate: python/api/validate.md + - write: python/api/write.md + - pystac: python/api/pystac.md + - Command-line interface: + - cli/index.md +plugins: + - search + - social + - mkdocstrings: + enable_inventory: true + handlers: + python: + load_external_modules: false + options: + show_root_heading: true + show_signature: true + show_signature_annotations: true + separate_signature: true +markdown_extensions: + - admonition + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.snippets + - pymdownx.superfences + - pymdownx.details diff --git a/python/.gitignore b/python/.gitignore index a54e954ce..c8f044299 100644 --- a/python/.gitignore +++ b/python/.gitignore @@ -70,5 +70,3 @@ docs/_build/ # Pyenv .python-version - -site diff --git a/python/.readthedocs.yaml b/python/.readthedocs.yaml deleted file mode 100644 index 81bdc2475..000000000 --- a/python/.readthedocs.yaml +++ /dev/null @@ -1,12 +0,0 @@ -version: 2 -build: - os: ubuntu-lts-latest - tools: - python: "latest" - rust: "latest" -mkdocs: - configuration: python/mkdocs.yml -python: - install: - - requirements: python/requirements-docs.txt - - path: python diff --git a/python/Cargo.toml b/python/Cargo.toml index 7e2c31f9d..8caa8cc52 100644 --- a/python/Cargo.toml +++ b/python/Cargo.toml @@ -12,18 +12,17 @@ publish = false name = "stacrs" crate-type = ["cdylib"] -[features] -geoparquet = [ - "stac/geoparquet-compression", -] # need to be able to disable geoparquet so this builds on readthedocs - [dependencies] geojson = "0.24" pyo3 = { version = "0.22", features = ["extension-module"] } pythonize = "0.22" serde = "1" serde_json = "1" -stac = { path = "../core", features = ["reqwest", "object-store-all"] } +stac = { path = "../core", features = [ + "geoparquet-compression", + "object-store-all", + "reqwest", +] } stac-api = { path = "../api", features = ["client"] } stac-validate = { path = "../validate", features = ["blocking"] } tokio = { version = "1", features = ["rt"] } diff --git a/python/README.md b/python/README.md index fcf0db701..9d83e05c3 100644 --- a/python/README.md +++ b/python/README.md @@ -2,7 +2,6 @@ [![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/stac-utils/stac-rs/ci.yml?branch=main&style=for-the-badge)](https://github.com/stac-utils/stac-rs/actions/workflows/ci.yml) [![PyPI - Version](https://img.shields.io/pypi/v/stacrs?style=for-the-badge)](https://pypi.org/project/stacrs) -[![Read the Docs](https://img.shields.io/readthedocs/stacrs?style=for-the-badge)](https://stacrs.readthedocs.io/) ![PyPI - License](https://img.shields.io/pypi/l/stacrs?style=for-the-badge) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=for-the-badge)](./CODE_OF_CONDUCT) @@ -48,6 +47,8 @@ stacrs.search_to( ) ``` +See [the API documentation](https://stac-utils.github.io/stac-rs/python/api/) for details. + ### pystac If [pystac](https://pystac.readthedocs.io) is present, `stacrs.pystac` provides functions that take **pystac** objects as their inputs and outputs: diff --git a/python/docs/CODE_OF_CONDUCT b/python/docs/CODE_OF_CONDUCT deleted file mode 120000 index 4cba94969..000000000 --- a/python/docs/CODE_OF_CONDUCT +++ /dev/null @@ -1 +0,0 @@ -../CODE_OF_CONDUCT \ No newline at end of file diff --git a/python/docs/index.md b/python/docs/index.md deleted file mode 120000 index 32d46ee88..000000000 --- a/python/docs/index.md +++ /dev/null @@ -1 +0,0 @@ -../README.md \ No newline at end of file diff --git a/python/mkdocs.yml b/python/mkdocs.yml deleted file mode 100644 index 0b2cfc905..000000000 --- a/python/mkdocs.yml +++ /dev/null @@ -1,39 +0,0 @@ -site_name: stacrs -site_url: https://stacrs.readthedocs.org -repo_url: https://github.com/stac-utils/stac-rs -theme: - name: material - icon: - repo: fontawesome/brands/github - features: - - navigation.indexes -nav: - - Home: index.md - - API: - - api/index.md - - migrate: api/migrate.md - - read: api/read.md - - search: api/search.md - - validate: api/validate.md - - write: api/write.md - - pystac: api/pystac.md -plugins: - - search - - mkdocstrings: - enable_inventory: true - handlers: - python: - load_external_modules: false - options: - show_root_heading: true - show_signature: true - show_signature_annotations: true - separate_signature: true -markdown_extensions: - - pymdownx.highlight: - anchor_linenums: true - line_spans: __span - pygments_lang_class: true - - pymdownx.inlinehilite - - pymdownx.snippets - - pymdownx.superfences diff --git a/python/pyproject.toml b/python/pyproject.toml index ebe342dd1..c5bbbb3fb 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -27,7 +27,7 @@ pystac = ["pystac>=1"] [project.urls] Repository = "https://github.com/stac-utils/stac-rs" -Documentation = "https://stacrs.readthedocs.io/" +Documentation = "https://stac-utils.github.io/stac-rs/python/" Issues = "https://github.com/stac-utils/stac-rs/issues" [tool.maturin] diff --git a/python/requirements-docs.in b/requirements-docs.in similarity index 52% rename from python/requirements-docs.in rename to requirements-docs.in index c584e191d..a186a3758 100644 --- a/python/requirements-docs.in +++ b/requirements-docs.in @@ -1,3 +1,3 @@ mkdocs -mkdocs-material +mkdocs-material[imaging] mkdocstrings[python] diff --git a/python/requirements-docs.txt b/requirements-docs.txt similarity index 66% rename from python/requirements-docs.txt rename to requirements-docs.txt index 4cdd4ab73..c8171d3c2 100644 --- a/python/requirements-docs.txt +++ b/requirements-docs.txt @@ -1,9 +1,15 @@ # This file was autogenerated by uv via the following command: -# uv pip compile python/requirements-docs.in +# uv pip compile requirements-docs.in babel==2.16.0 # via mkdocs-material -certifi==2024.7.4 +cairocffi==1.7.1 + # via cairosvg +cairosvg==2.7.1 + # via mkdocs-material +certifi==2024.8.30 # via requests +cffi==1.17.1 + # via cairocffi charset-normalizer==3.3.2 # via requests click==8.1.7 @@ -14,11 +20,15 @@ colorama==0.4.6 # via # griffe # mkdocs-material +cssselect2==0.7.0 + # via cairosvg +defusedxml==0.7.1 + # via cairosvg ghp-import==2.1.0 # via mkdocs -griffe==1.2.0 +griffe==1.3.1 # via mkdocstrings-python -idna==3.8 +idna==3.10 # via requests jinja2==3.1.4 # via @@ -42,25 +52,27 @@ mergedeep==1.3.4 # via # mkdocs # mkdocs-get-deps -mkdocs==1.6.0 +mkdocs==1.6.1 # via - # -r python/requirements-docs.in + # -r requirements-docs.in # mkdocs-autorefs # mkdocs-material # mkdocstrings -mkdocs-autorefs==1.1.0 - # via mkdocstrings +mkdocs-autorefs==1.2.0 + # via + # mkdocstrings + # mkdocstrings-python mkdocs-get-deps==0.2.0 # via mkdocs -mkdocs-material==9.5.33 - # via -r python/requirements-docs.in +mkdocs-material==9.5.36 + # via -r requirements-docs.in mkdocs-material-extensions==1.3.1 # via mkdocs-material -mkdocstrings==0.25.2 +mkdocstrings==0.26.1 # via - # -r python/requirements-docs.in + # -r requirements-docs.in # mkdocstrings-python -mkdocstrings-python==1.10.8 +mkdocstrings-python==1.11.1 # via mkdocstrings packaging==24.1 # via mkdocs @@ -68,10 +80,16 @@ paginate==0.5.7 # via mkdocs-material pathspec==0.12.1 # via mkdocs -platformdirs==4.2.2 +pillow==10.4.0 + # via + # cairosvg + # mkdocs-material +platformdirs==4.3.6 # via # mkdocs-get-deps # mkdocstrings +pycparser==2.22 + # via cffi pygments==2.18.0 # via mkdocs-material pymdown-extensions==10.9 @@ -88,13 +106,21 @@ pyyaml==6.0.2 # pyyaml-env-tag pyyaml-env-tag==0.1 # via mkdocs -regex==2024.7.24 +regex==2024.9.11 # via mkdocs-material requests==2.32.3 # via mkdocs-material six==1.16.0 # via python-dateutil -urllib3==2.2.2 +tinycss2==1.3.0 + # via + # cairosvg + # cssselect2 +urllib3==2.2.3 # via requests -watchdog==5.0.0 +watchdog==5.0.2 # via mkdocs +webencodings==0.5.1 + # via + # cssselect2 + # tinycss2