Skip to main content

Find optimal clusterings and optimal hierarchical clusterings.

Project description

PyPI - Version

Low-effort way of calling the rust-crate exact-clustering from Python.

pip install exact-clustering

Consult docs.rs for more extensive documentation.

from exact_clustering import *

weighted_points = [
    (1.0, [0, 0]),
    (1.0, [1, 0]),
    (3.0, [0, 2]),
]

print(
    weighted_continuous_kmeans_price_of_hierarchy(
        weighted_points
    )
)
# 1.0

View provided methods via help(exact_clustering) in the python-repl or take a look at /src/lib.rs. At time of writing, they are:

def unweighted_continuous_kmeans_price_of_hierarchy(points: list[tuple[float, list[float]]],) -> float: ...
def weighted_continuous_kmeans_price_of_hierarchy(weighted_points: list[list[float]],) -> float: ...
def unweighted_discrete_kmeans_price_of_hierarchy(points: list[tuple[float, list[float]]],) -> float: ...
def weighted_discrete_kmeans_price_of_hierarchy(weighted_points: list[list[float]],) -> float: ...
def unweighted_discrete_kmedian_price_of_hierarchy(points: list[tuple[float, list[float]]],) -> float: ...
def weighted_discrete_kmedian_price_of_hierarchy(weighted_points: list[list[float]],) -> float: ...
def unweighted_continuous_kmeans_price_of_greedy(points: list[tuple[float, list[float]]],) -> float: ...
def weighted_continuous_kmeans_price_of_greedy(weighted_points: list[list[float]],) -> float: ...
def unweighted_discrete_kmeans_price_of_greedy(points: list[tuple[float, list[float]]],) -> float: ...
def weighted_discrete_kmeans_price_of_greedy(weighted_points: list[list[float]],) -> float: ...
def unweighted_discrete_kmedian_price_of_greedy(points: list[tuple[float, list[float]]],) -> float: ...
def weighted_discrete_kmedian_price_of_greedy(weighted_points: list[list[float]],) -> float: ...

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

exact_clustering-0.4.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_x86_64.whl (493.1 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_i686.whl (521.7 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ i686

exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_armv7l.whl (582.9 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARMv7l

exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_aarch64.whl (494.3 kB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (322.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ x86-64

exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl (353.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ s390x

exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (482.4 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ppc64le

exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (319.1 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARMv7l

exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (315.6 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.17+ ARM64

exact_clustering-0.4.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl (346.8 kB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.5+ i686

exact_clustering-0.4.0-cp313-cp313t-macosx_11_0_arm64.whl (282.0 kB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

exact_clustering-0.4.0-cp313-cp313t-macosx_10_12_x86_64.whl (293.4 kB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

exact_clustering-0.4.0-cp38-abi3-win_amd64.whl (188.3 kB view details)

Uploaded CPython 3.8+Windows x86-64

exact_clustering-0.4.0-cp38-abi3-win32.whl (174.9 kB view details)

Uploaded CPython 3.8+Windows x86

exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl (496.6 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ x86-64

exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_i686.whl (525.5 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ i686

exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_armv7l.whl (585.0 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARMv7l

exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl (497.2 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.2+ ARM64

exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (326.7 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (356.6 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (486.2 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (321.3 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (318.5 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

exact_clustering-0.4.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (351.6 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.5+ i686

exact_clustering-0.4.0-cp38-abi3-macosx_11_0_arm64.whl (285.9 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

exact_clustering-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl (298.7 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file exact_clustering-0.4.0.tar.gz.

File metadata

  • Download URL: exact_clustering-0.4.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for exact_clustering-0.4.0.tar.gz
Algorithm Hash digest
SHA256 604cba2102ed5a63fac1a9f42904c195016e361ce62abf03a90f3405c69a41e1
MD5 8eeb467efc9999f10a1913b6c03ac768
BLAKE2b-256 892502ef467a1ccfd8ddc6f9caff4b999112b6a6e5b6c08d02f86e7afd5b053a

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 06775bc60ef8559ced494887bac09f92efa36b3c8d513b99c39ff21c3cb67ead
MD5 65c8571f6349cc3262188b27a5f653c7
BLAKE2b-256 b139344513e595e501d448860911c3b60e859acd0df7f94f24a5b39ffbb6f732

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 e1a4bbc69b7c084d3490a178a8579e4fd96ba47d694db41323740f7970f99cb2
MD5 4c5a3113c3909143f0c825e38e9372a4
BLAKE2b-256 2fb9c23cde1226af2f57daf5de441dbafe47935c879536ec578997519d39dd01

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 af96c37100fa6acea24faefc8c7548341a59f7718a4297d4643fca7f04112bc2
MD5 077a499dfba67d6dba654135119b6c8d
BLAKE2b-256 c6215c82eeff33b2696a0cb1c31024cc1e2a53f3b6e55b19f8ddbb3fc6492017

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 835640ab7ad4b2c75bc7d7e2b3f8b450da9f8d32e2e19815ea325f426e99fb0b
MD5 3df7ac4590b9a36f06db24cd8e8e0598
BLAKE2b-256 8cf28526008794d787bfc6200721061801d887b72524342a0b357baa0a42ce60

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dd39463c3a95e2c586e46e4a61844575b4426bce0351fff84c9574ab2f1b8c5c
MD5 b1c177553b7907231df0afb89a8834b5
BLAKE2b-256 ab857ed2f415f5b2aa446518e92f59c1b7f5a73d15df9074846397ecaf779e4c

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e6e3e8885fe490f3b4b5298db40ca8ffd46eabbd6afef7463650c2ff7e528e03
MD5 082b1b5abc90c218fb7aebc2face5701
BLAKE2b-256 c0a4e8b902c30a6441401dfdc7a262e4cb26df4e9ea3c5783f077a0aad660565

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d18036844875454386f821b9baacd1fc3593aad240a2f9136d27789aee471c50
MD5 ef8ddda5b76ce45efa66082b30da50c8
BLAKE2b-256 42f0ada1ad99ffe5d663246923f568df3ea0ce9b6de99696ef22db8176c00b45

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 40961e1294959fabd300b14196849089fc564a7c6f461dff31e76b94e762870f
MD5 7c324f667fe2874ccae0b3752c9d313d
BLAKE2b-256 e98e94a07e9ad2927e97365acebad9b220a3fe6719fa9dbe8b0d1e57b0082d28

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 15b0f7f94767d20e59583268438cfa0d753750155d7ed2dbde39ab49e5a69350
MD5 e4bf1e24ec194d76c552d43be174a3fc
BLAKE2b-256 8130595c99aa7289333d8408590d1e9db4301a3c03a66806864e77aa56c73d8e

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 cc988bb2fc4b68407eb0cd6db0b9b63af8ca7d35e93b5ec024f75aef21087252
MD5 a99ee72530c7dce7797206666cee28b4
BLAKE2b-256 b23b41d8125faf969541e9567aad62fdf65dab4db09906ba9b2f4c80f992d001

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80529c5428cad4b6da33974fa2535e54afc3e2d50051f369897046073c0bc968
MD5 93f2453deb40022654ce6ce6e5a2ab15
BLAKE2b-256 970fac3dc606228ad73d7421a88e579ca04dad1829910ca1180dd86a610306f1

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 54fee38fa5f5bae180a98653bd5ba02384f92a2e0f4d61206c800d8e7aea093d
MD5 d31206cdcae1f15dcf8e3405d7fe7d91
BLAKE2b-256 cc9e7d2758e7926c041c5262d92127ec1e49fb858a50d9ba8a0dc43fdd76f5fc

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a20848320ad08ea65ba52055caa77ca138df0554a9f9f64887035f1ef1c4c2d1
MD5 693cc6a0b5f4e1f547d53c2cd6d5a676
BLAKE2b-256 c4fbd4e331fbdf05f15764f137f42c620bbfe63b5d9c967cb96251d148b237d3

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-win32.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 e786383837de5932e6c275a6cef270fee4c50995cb8e3baab7e5505be2339d48
MD5 15b31ea42729ff19a78ae9415200b14a
BLAKE2b-256 82fc5406d9fefcbf16ded6af4b8df000643eda59cd1d989b538d3120b94f5b13

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ae9d35eddf8643029e1b8a69b90edf00813bda21ed4c0a33c4951a7af34d34b2
MD5 648c96a01abe33e0f642340c341424ed
BLAKE2b-256 880f54abc4f9f4fc911f232d0fa7767db0c50504cc3047f5d0ad920f2b420768

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 478d26058f710b6a7ba15fc4f4ef66d69361218c9ec7acdd87a121f9e934c458
MD5 387a3c013a5abe29014cdbceea59d4b0
BLAKE2b-256 131a2405afff80ec85d6493a6ff68bd00c492b9d35b67adc00541b054b360d99

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 e7fe32f87195ac7ad41e53d9dea99c1870457808d2183e151f28e8109fac1b60
MD5 ba12e59995d0c0bb376ad10955ce4404
BLAKE2b-256 7efe9638e9ff124a65c297fc6029e5e9c2793bbaef5e924c788033552f6a80c5

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8945413f6fd528a76fcec496efd63bcb6ef4a9b3ba631bfaff44277f963e637d
MD5 d29b376de7ab09a039db4c9150428f19
BLAKE2b-256 856a1add49feac172a205aca5047f085ba87c8a090a39832082ceef8c4697f46

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9c73378949d65c582bc3b254deb95a2d2a524661c03a9e47832dc995171b78ea
MD5 f994e584fa84331b626f31093dad3479
BLAKE2b-256 a32fea7d663d4471a6ecb8488b40a69f6b4bd421693c2c814d9a94f85c2afb63

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 1cf7f3529618499bd365d5fb50e6cbaa7cc7efd7902d515b9e28165ea00a5233
MD5 3e56eff3e2bc4fa97d9506e59077b1d8
BLAKE2b-256 f0943a72aa47c78dd91780d2995e25c8b04e18ea80b8c74e4514ba54d2b5687c

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 dd14fdee9d808041c3c2c27392fa21a067954a486d9561a8472bac5fdef0befb
MD5 437cdf3ee7967e4c394194cbc0e9a34f
BLAKE2b-256 5f0eb7666fdc51d6af2760680ff5221620f3019511fd47cfcc76e8f3b012519e

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a368b4ceffc0da0dd19da56f7db962874a3ef73ce6fcc14ac34ac8bd69e449ef
MD5 02bf745f6adbe8fae996272a397f68d2
BLAKE2b-256 71b1b71a054d7cb647cdc65a1b9d977387761b14527c544d5e9e52f3f4902e62

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6f3558222c65f371fee7b8580a2f09f953eeb04b9691bb94da88c4e928e8efd1
MD5 518740277d2cb771d8a9c01e4a1a97e1
BLAKE2b-256 c7275048136de487b28059c99718b327309d97380d0aaf5c3738f24cab4b40d0

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 adfcd70869f1ed448d3e547dcd8ae289f21a2f4bafb2c623005b4c2d64791348
MD5 48b4cc631ca5554003c3f4dcabeb7b9a
BLAKE2b-256 7e8554a2a904f412ade55c1b6265b0ef94e1d40a62f4f5cadbd8b2946f327769

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6569346627939d3026e1c615a9c7178fc60b20cc07c9f2f9fb59b683ff9586fb
MD5 f55d1d50add65460c9ca57ce6b4f5924
BLAKE2b-256 f4bab5c3bdd6c99d524266d8f05082d14747e5cce1c73ab7b99869b209468ba0

See more details on using hashes here.

File details

Details for the file exact_clustering-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for exact_clustering-0.4.0-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d99070e0acd8cc512c5686e6c693d90ca218c06b7d1e6cfc50dced2dd9d953a1
MD5 680b9fd8ff53bd045f24f4db4aedaf83
BLAKE2b-256 b60d24b21c9226a20fabe4017af2ca6897a971e90011addb6b88e6c46990718e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page