Metadata-Version: 2.1
Name: an-website
Version: 23.1.3
Summary: #1 Website in the Worlds
Home-page: https://github.com/asozialesnetzwerk/an-website
Author: Das Asoziale Netzwerk
Author-email: contact@asozial.org
License: AGPLv3+
Platform: OS Independent
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: accept-types (==0.4.1)
Requires-Dist: aiodns (==3.0.0)
Requires-Dist: aiohttp[speedups] (==3.8.3)
Requires-Dist: ansi2html (==1.8.0)
Requires-Dist: beautifulsoup4 (==4.11.1)
Requires-Dist: blake3 (==0.3.3)
Requires-Dist: brotli (==1.0.9)
Requires-Dist: certifi (==2022.12.7)
Requires-Dist: cffi (==1.15.1)
Requires-Dist: defity (==0.3.1)
Requires-Dist: defusedxml (==0.7.1)
Requires-Dist: dill (==0.3.6)
Requires-Dist: ecs-logging (==2.0.0)
Requires-Dist: editdistance (==0.6.2)
Requires-Dist: elastic-apm (==6.13.2)
Requires-Dist: elastic-enterprise-search (==7.17.0)
Requires-Dist: elasticsearch[async] (==7.17.8)
Requires-Dist: emoji (==2.2.0)
Requires-Dist: frozendict (==2.3.4)
Requires-Dist: frozenlist (==1.3.3)
Requires-Dist: get-version (==3.5.4)
Requires-Dist: hiredis (==2.1.0)
Requires-Dist: html2text (==2020.1.16)
Requires-Dist: hyrule (==0.2.1)
Requires-Dist: jsonpickle (==3.0.1)
Requires-Dist: lxml (==4.9.2)
Requires-Dist: mpmath (==1.2.1)
Requires-Dist: numpy (==1.24.1)
Requires-Dist: orjson (==3.8.3)
Requires-Dist: pillow (==9.3.0)
Requires-Dist: pycares (==4.3.0)
Requires-Dist: pycparser (==2.21)
Requires-Dist: pycryptodome (==3.16.0)
Requires-Dist: pycurl (==7.45.2)
Requires-Dist: pysocks (==1.7.1)
Requires-Dist: python-dateutil (==2.8.2)
Requires-Dist: python-geoip-geolite2-yplan (==2019.1224)
Requires-Dist: python-geoip-yplan (==1.2)
Requires-Dist: pyyaml (==6.0)
Requires-Dist: redis[hiredis] (==4.4.0)
Requires-Dist: regex (==2022.10.31)
Requires-Dist: setproctitle (==1.3.2)
Requires-Dist: sympy (==1.11.1)
Requires-Dist: tornado (==6.2)
Requires-Dist: tzdata (==2022.7)
Requires-Dist: ultradict (==0.0.6)
Requires-Dist: uvloop (==0.17.0)
Requires-Dist: charset-normalizer (==2.1.1) ; python_full_version >= "3.6.0"
Requires-Dist: pyston-lite (==2.3.5) ; python_version < "3.11"
Requires-Dist: pyston-lite-autoload (==2.3.5) ; python_version < "3.11"
Requires-Dist: hy (==0.25.0) ; python_version < "3.12" and python_version >= "3.7"
Requires-Dist: six (==1.16.0) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3"
Requires-Dist: wrapt (==1.14.1) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4"
Requires-Dist: elastic-transport (==7.16.0) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
Requires-Dist: urllib3 (==1.26.13) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5"
Requires-Dist: colorama (==0.4.6) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6"
Requires-Dist: funcparserlib (==1.0.1) ; python_version >= "2.7" and python_version not in "3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6"
Requires-Dist: idna (==3.4) ; python_version >= "3.5"
Requires-Dist: dunamai (==1.15.0) ; python_version >= "3.5" and python_version < "4.0"
Requires-Dist: async-timeout (==4.0.2) ; python_version >= "3.6"
Requires-Dist: attrs (==22.2.0) ; python_version >= "3.6"
Requires-Dist: soupsieve (==2.3.2.post1) ; python_version >= "3.6"
Requires-Dist: aiosignal (==1.3.1) ; python_version >= "3.7"
Requires-Dist: multidict (==6.0.4) ; python_version >= "3.7"
Requires-Dist: packaging (==22.0) ; python_version >= "3.7"
Requires-Dist: pyjwt (==2.6.0) ; python_version >= "3.7"
Requires-Dist: yarl (==1.8.2) ; python_version >= "3.7"
Provides-Extra: jxl
Requires-Dist: jxlpy (~=0.9) ; extra == 'jxl'

# Webseite des AN

![License](https://img.shields.io/pypi/l/an-website?label=License)
![Python](https://img.shields.io/pypi/pyversions/an-website?label=Python)
![Implementation](https://img.shields.io/pypi/implementation/an-website?label=Implementation)
[![PyPI](https://img.shields.io/pypi/v/an-website.svg?label=PyPI)](https://pypi.org/project/an-website)\
[![Style: Black](https://img.shields.io/badge/Code%20Style-Black-000000.svg)](https://github.com/psf/black)
[![Imports: isort](https://img.shields.io/badge/Imports-isort-1674b1.svg?labelColor=ef8336)](https://pycqa.github.io/isort)
[![Coverage](https://asozialesnetzwerk.github.io/an-website/coverage/badge.svg)](https://asozialesnetzwerk.github.io/an-website/coverage)
![Total lines](https://img.shields.io/tokei/lines/github/asozialesnetzwerk/an-website?label=Total%20lines)\
[![Downloads](https://pepy.tech/badge/an-website)](https://pepy.tech/project/an-website)
[![Downloads](https://pepy.tech/badge/an-website/month)](https://pepy.tech/project/an-website)
[![Downloads](https://pepy.tech/badge/an-website/week)](https://pepy.tech/project/an-website)\
[![Check](https://github.com/asozialesnetzwerk/an-website/actions/workflows/check.yml/badge.svg)](https://github.com/asozialesnetzwerk/an-website/actions/workflows/check.yml)
[![Deploy](https://github.com/asozialesnetzwerk/an-website/actions/workflows/deploy.yml/badge.svg)](https://github.com/asozialesnetzwerk/an-website/actions/workflows/deploy.yml)
[![Release](https://github.com/asozialesnetzwerk/an-website/actions/workflows/release.yml/badge.svg)](https://github.com/asozialesnetzwerk/an-website/actions/workflows/release.yml)

## How to develop

You need:

- Git (obviously)
- CPython 3.10+
- Packages from requirements-dev.txt (`pip install -r requirements-dev.txt`)
- GCC and G++ for building some of the dependencies
- Depending on the used version of CPython: Rust
- For formatting TypeScript and Markdown: dprint
- For building TypeScript and CSS: Deno
- For linting TypeScript: Node.js and pnpm (`npm install -g pnpm`)

### How to check

- `./check.sh`

### How to run

- `python -Xdev -Xwarn_default_encoding -m an_website`

(`-Xdev` enables development mode)

## How to run (production)

### Linux

You need:

- CPython 3.10+
- GCC and G++ for building some of the dependencies
- Depending on the used version of CPython: Rust
- Supervisord
- Redis 6.2
- redis-cell (for ratelimits)
- Elasticsearch 7.17 or 8.x
- UwUFetch

How:

- [Create a virtual environment](https://docs.python.org/3/library/venv.html)
- Install an-website in the venv (`pip install an-website`)
- create a `config.ini` and configure it
- run it (`an-website` / `python -m an_website`) with Supervisord

### FreeBSD

Should work similar to Linux.

### macOS

Not supported, but should work.

### Windows

Not supported, but maybe works.
