diff --git a/.editorconfig b/.editorconfig index 95f2c7dd..1a8f5d77 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,5 +1,5 @@ # EditorConfig configuration for aurweb -# https://EditorConfig.org +# https://editorconfig.org # Top-most EditorConfig file root = true diff --git a/.gitignore b/.gitignore index 68de7cd5..97157118 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,7 @@ test-emails/ env/ venv/ .venv/ + +# Ignore some terraform files +/ci/tf/.terraform +/ci/tf/terraform.tfstate* diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 10dd1787..f30994c7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -13,24 +13,22 @@ variables: TEST_RECURSION_LIMIT: 10000 CURRENT_DIR: "$(pwd)" LOG_CONFIG: logging.test.conf + DEV_FQDN: aurweb-$CI_COMMIT_REF_SLUG.sandbox.archlinux.page + INFRASTRUCTURE_REPO: https://gitlab.archlinux.org/archlinux/infrastructure.git lint: stage: .pre before_script: - - pacman -Sy --noconfirm --noprogressbar --cachedir .pkg-cache + - pacman -Sy --noconfirm --noprogressbar archlinux-keyring - - pacman -Syu --noconfirm --noprogressbar --cachedir .pkg-cache + - pacman -Syu --noconfirm --noprogressbar git python python-pre-commit script: - # https://github.com/pre-commit/pre-commit/issues/2178#issuecomment-1002163763 - - export SETUPTOOLS_USE_DISTUTILS=stdlib - export XDG_CACHE_HOME=.pre-commit - pre-commit run -a test: stage: test - tags: - - fast-single-thread before_script: - export PATH="$HOME/.poetry/bin:${PATH}" - ./docker/scripts/install-deps.sh @@ -61,34 +59,103 @@ test: coverage_format: cobertura path: coverage.xml -deploy: - stage: deploy - tags: - - secure - rules: - - if: $CI_COMMIT_BRANCH == "pu" - when: manual - variables: - FASTAPI_BACKEND: gunicorn - FASTAPI_WORKERS: 5 - AURWEB_FASTAPI_PREFIX: https://aur-dev.archlinux.org - AURWEB_SSHD_PREFIX: ssh://aur@aur-dev.archlinux.org:2222 - COMMIT_HASH: $CI_COMMIT_SHA - GIT_DATA_DIR: git_data - script: - - pacman -Syu --noconfirm docker docker-compose socat openssh - - chmod 600 ${SSH_KEY} - - socat "UNIX-LISTEN:/tmp/docker.sock,reuseaddr,fork" EXEC:"ssh -o UserKnownHostsFile=${SSH_KNOWN_HOSTS} -Ti ${SSH_KEY} ${SSH_USER}@${SSH_HOST}" & - - export DOCKER_HOST="unix:///tmp/docker.sock" - # Set secure login config for aurweb. - - sed -ri "s/^(disable_http_login).*$/\1 = 1/" conf/config.dev - - docker-compose build - - docker-compose -f docker-compose.yml -f docker-compose.aur-dev.yml down --remove-orphans - - docker-compose -f docker-compose.yml -f docker-compose.aur-dev.yml up -d - - docker image prune -f - - docker container prune -f - - docker volume prune -f +.init_tf: &init_tf + - pacman -Syu --needed --noconfirm terraform + - export TF_VAR_name="aurweb-${CI_COMMIT_REF_SLUG}" + - TF_ADDRESS="${CI_API_V4_URL}/projects/${TF_STATE_PROJECT}/terraform/state/${CI_COMMIT_REF_SLUG}" + - cd ci/tf + - > + terraform init \ + -backend-config="address=${TF_ADDRESS}" \ + -backend-config="lock_address=${TF_ADDRESS}/lock" \ + -backend-config="unlock_address=${TF_ADDRESS}/lock" \ + -backend-config="username=x-access-token" \ + -backend-config="password=${TF_STATE_GITLAB_ACCESS_TOKEN}" \ + -backend-config="lock_method=POST" \ + -backend-config="unlock_method=DELETE" \ + -backend-config="retry_wait_min=5" +deploy_review: + stage: deploy + script: + - *init_tf + - terraform apply -auto-approve environment: - name: development - url: https://aur-dev.archlinux.org + name: review/$CI_COMMIT_REF_NAME + url: https://$DEV_FQDN + on_stop: stop_review + auto_stop_in: 1 week + rules: + - if: $CI_COMMIT_REF_NAME =~ /^renovate\// + when: never + - if: $CI_MERGE_REQUEST_ID && $CI_PROJECT_PATH == "archlinux/aurweb" + when: manual + +provision_review: + stage: deploy + needs: + - deploy_review + script: + - *init_tf + - pacman -Syu --noconfirm --needed ansible git openssh jq + # Get ssh key from terraform state file + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + - terraform show -json | + jq -r '.values.root_module.resources[] | + select(.address == "tls_private_key.this") | + .values.private_key_openssh' > ~/.ssh/id_ed25519 + - chmod 400 ~/.ssh/id_ed25519 + # Clone infra repo + - git clone $INFRASTRUCTURE_REPO + - cd infrastructure + # Remove vault files + - rm $(git grep -l 'ANSIBLE_VAULT;1.1;AES256$') + # Remove vault config + - sed -i '/^vault/d' ansible.cfg + # Add host config + - mkdir -p host_vars/$DEV_FQDN + - 'echo "filesystem: btrfs" > host_vars/$DEV_FQDN/misc' + # Add host + - echo "$DEV_FQDN" > hosts + # Add our pubkey and hostkeys + - ssh-keyscan $DEV_FQDN >> ~/.ssh/known_hosts + - ssh-keygen -f ~/.ssh/id_ed25519 -y > pubkeys/aurweb-dev.pub + # Run our ansible playbook + - > + ansible-playbook playbooks/aur-dev.archlinux.org.yml \ + -e "aurdev_fqdn=$DEV_FQDN" \ + -e "aurweb_repository=$CI_REPOSITORY_URL" \ + -e "aurweb_version=$CI_COMMIT_SHA" \ + -e "{\"vault_mariadb_users\":{\"root\":\"aur\"}}" \ + -e "vault_aurweb_db_password=aur" \ + -e "vault_aurweb_gitlab_instance=https://does.not.exist" \ + -e "vault_aurweb_error_project=set-me" \ + -e "vault_aurweb_error_token=set-me" \ + -e "vault_aurweb_secret=aur" \ + -e "vault_goaurrpc_metrics_token=aur" \ + -e '{"root_additional_keys": ["moson.pub", "aurweb-dev.pub"]}' + environment: + name: review/$CI_COMMIT_REF_NAME + action: access + rules: + - if: $CI_COMMIT_REF_NAME =~ /^renovate\// + when: never + - if: $CI_MERGE_REQUEST_ID && $CI_PROJECT_PATH == "archlinux/aurweb" + +stop_review: + stage: deploy + needs: + - deploy_review + script: + - *init_tf + - terraform destroy -auto-approve + - 'curl --silent --show-error --fail --header "Private-Token: ${TF_STATE_GITLAB_ACCESS_TOKEN}" --request DELETE "${CI_API_V4_URL}/projects/${TF_STATE_PROJECT}/terraform/state/${CI_COMMIT_REF_SLUG}"' + environment: + name: review/$CI_COMMIT_REF_NAME + action: stop + rules: + - if: $CI_COMMIT_REF_NAME =~ /^renovate\// + when: never + - if: $CI_MERGE_REQUEST_ID && $CI_PROJECT_PATH == "archlinux/aurweb" + when: manual diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index af14d704..2431eb3d 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 + rev: v4.5.0 hooks: - id: check-added-large-files - id: check-case-conflict @@ -12,7 +12,7 @@ repos: - id: debug-statements - repo: https://github.com/myint/autoflake - rev: v2.0.1 + rev: v2.3.1 hooks: - id: autoflake args: @@ -21,16 +21,16 @@ repos: - --ignore-init-module-imports - repo: https://github.com/pycqa/isort - rev: 5.12.0 + rev: 5.13.2 hooks: - id: isort - repo: https://github.com/psf/black - rev: 23.1.0 + rev: 24.4.1 hooks: - id: black - repo: https://github.com/PyCQA/flake8 - rev: 6.0.0 + rev: 7.0.0 hooks: - id: flake8 diff --git a/.tx/config b/.tx/config index d2553dec..9ba46244 100644 --- a/.tx/config +++ b/.tx/config @@ -1,5 +1,5 @@ [main] -host = https://www.transifex.com +host = https://app.transifex.com [o:lfleischer:p:aurweb:r:aurwebpot] file_filter = po/.po diff --git a/INSTALL b/INSTALL index c6c71ca7..23fb6c3d 100644 --- a/INSTALL +++ b/INSTALL @@ -30,11 +30,6 @@ read the instructions below. ssl_certificate /etc/ssl/certs/aur.cert.pem; ssl_certificate_key /etc/ssl/private/aur.key.pem; - # TU Bylaws redirect. - location = /trusted-user/TUbylaws.html { - return 301 https://tu-bylaws.aur.archlinux.org; - } - # smartgit location. location ~ "^/([a-z0-9][a-z0-9.+_-]*?)(\.git)?/(git-(receive|upload)-pack|HEAD|info/refs|objects/(info/(http-)?alternates|packs)|[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(pack|idx))$" { include uwsgi_params; @@ -125,7 +120,7 @@ interval: */2 * * * * bash -c 'poetry run aurweb-pkgmaint' */2 * * * * bash -c 'poetry run aurweb-usermaint' */2 * * * * bash -c 'poetry run aurweb-popupdate' - */12 * * * * bash -c 'poetry run aurweb-tuvotereminder' + */12 * * * * bash -c 'poetry run aurweb-votereminder' 7) Create a new database and a user and import the aurweb SQL schema: diff --git a/README.md b/README.md index 4d732bb2..adf78c35 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,8 @@ The aurweb project includes * A web interface to search for packaging scripts and display package details. * An SSH/Git interface to submit and update packages and package meta data. * Community features such as comments, votes, package flagging and requests. -* Editing/deletion of packages and accounts by Trusted Users and Developers. -* Area for Trusted Users to post AUR-related proposals and vote on them. +* Editing/deletion of packages and accounts by Package Maintainers and Developers. +* Area for Package Maintainers to post AUR-related proposals and vote on them. Directory Layout ---------------- @@ -56,7 +56,7 @@ Translations ------------ Translations are welcome via our Transifex project at -https://www.transifex.com/lfleischer/aurweb; see `doc/i18n.txt` for details. +https://www.transifex.com/lfleischer/aurweb; see [doc/i18n.md](./doc/i18n.md) for details. ![Transifex](https://www.transifex.com/projects/p/aurweb/chart/image_png) diff --git a/aurweb/asgi.py b/aurweb/asgi.py index 1be77ff9..4a0c1113 100644 --- a/aurweb/asgi.py +++ b/aurweb/asgi.py @@ -6,6 +6,7 @@ import re import sys import traceback import typing +from contextlib import asynccontextmanager from urllib.parse import quote_plus import requests @@ -13,7 +14,12 @@ from fastapi import FastAPI, HTTPException, Request, Response from fastapi.responses import RedirectResponse from fastapi.staticfiles import StaticFiles from jinja2 import TemplateNotFound -from prometheus_client import multiprocess +from opentelemetry import trace +from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter +from opentelemetry.instrumentation.fastapi import FastAPIInstrumentor +from opentelemetry.sdk.resources import Resource +from opentelemetry.sdk.trace import TracerProvider +from opentelemetry.sdk.trace.export import BatchSpanProcessor from sqlalchemy import and_ from starlette.exceptions import HTTPException as StarletteHTTPException from starlette.middleware.authentication import AuthenticationMiddleware @@ -22,7 +28,6 @@ from starlette.middleware.sessions import SessionMiddleware import aurweb.captcha # noqa: F401 import aurweb.config import aurweb.filters # noqa: F401 -import aurweb.pkgbase.util as pkgbaseutil from aurweb import aur_logging, prometheus, util from aurweb.aur_redis import redis_connection from aurweb.auth import BasicAuthBackend @@ -34,11 +39,18 @@ from aurweb.routers import APP_ROUTES from aurweb.templates import make_context, render_template logger = aur_logging.get_logger(__name__) +session_secret = aurweb.config.get("fastapi", "session_secret") + + +@asynccontextmanager +async def lifespan(app: FastAPI): + await app_startup() + yield + # Setup the FastAPI app. -app = FastAPI() +app = FastAPI(lifespan=lifespan) -session_secret = aurweb.config.get("fastapi", "session_secret") # Instrument routes with the prometheus-fastapi-instrumentator # library with custom collectors and expose /metrics. @@ -47,7 +59,17 @@ instrumentator().add(prometheus.http_requests_total()) instrumentator().instrument(app) -@app.on_event("startup") +# Instrument FastAPI for tracing +FastAPIInstrumentor.instrument_app(app) + +resource = Resource(attributes={"service.name": "aurweb"}) +otlp_endpoint = aurweb.config.get("tracing", "otlp_endpoint") +otlp_exporter = OTLPSpanExporter(endpoint=otlp_endpoint) +span_processor = BatchSpanProcessor(otlp_exporter) +trace.set_tracer_provider(TracerProvider(resource=resource)) +trace.get_tracer_provider().add_span_processor(span_processor) + + async def app_startup(): # https://stackoverflow.com/questions/67054759/about-the-maximum-recursion-error-in-fastapi # Test failures have been observed by internal starlette code when @@ -91,12 +113,6 @@ async def app_startup(): get_engine() -def child_exit(server, worker): # pragma: no cover - """This function is required for gunicorn customization - of prometheus multiprocessing.""" - multiprocess.mark_process_dead(worker.pid) - - async def internal_server_error(request: Request, exc: Exception) -> Response: """ Catch all uncaught Exceptions thrown in a route. @@ -212,10 +228,16 @@ async def http_exception_handler(request: Request, exc: HTTPException) -> Respon if exc.status_code == http.HTTPStatus.NOT_FOUND: tokens = request.url.path.split("/") matches = re.match("^([a-z0-9][a-z0-9.+_-]*?)(\\.git)?$", tokens[1]) - if matches: + if matches and len(tokens) == 2: try: pkgbase = get_pkg_or_base(matches.group(1)) - context = pkgbaseutil.make_context(request, pkgbase) + context["pkgbase"] = pkgbase + context["git_clone_uri_anon"] = aurweb.config.get( + "options", "git_clone_uri_anon" + ) + context["git_clone_uri_priv"] = aurweb.config.get( + "options", "git_clone_uri_priv" + ) except HTTPException: pass diff --git a/aurweb/aur_redis.py b/aurweb/aur_redis.py index ec66df19..b735bb84 100644 --- a/aurweb/aur_redis.py +++ b/aurweb/aur_redis.py @@ -1,4 +1,5 @@ import fakeredis +from opentelemetry.instrumentation.redis import RedisInstrumentor from redis import ConnectionPool, Redis import aurweb.config @@ -7,6 +8,8 @@ from aurweb import aur_logging logger = aur_logging.get_logger(__name__) pool = None +RedisInstrumentor().instrument() + class FakeConnectionPool: """A fake ConnectionPool class which holds an internal reference diff --git a/aurweb/auth/__init__.py b/aurweb/auth/__init__.py index 83dd424c..e895dcdb 100644 --- a/aurweb/auth/__init__.py +++ b/aurweb/auth/__init__.py @@ -71,7 +71,7 @@ class AnonymousUser: return False @staticmethod - def is_trusted_user(): + def is_package_maintainer(): return False @staticmethod @@ -205,7 +205,7 @@ def account_type_required(one_of: set): @router.get('/some_route') @auth_required(True) - @account_type_required({"Trusted User", "Trusted User & Developer"}) + @account_type_required({"Package Maintainer", "Package Maintainer & Developer"}) async def some_route(request: fastapi.Request): return Response() diff --git a/aurweb/auth/creds.py b/aurweb/auth/creds.py index 17d02a5b..594188ca 100644 --- a/aurweb/auth/creds.py +++ b/aurweb/auth/creds.py @@ -1,7 +1,7 @@ from aurweb.models.account_type import ( DEVELOPER_ID, - TRUSTED_USER_AND_DEV_ID, - TRUSTED_USER_ID, + PACKAGE_MAINTAINER_AND_DEV_ID, + PACKAGE_MAINTAINER_ID, USER_ID, ) from aurweb.models.user import User @@ -30,47 +30,49 @@ PKGBASE_VOTE = 16 PKGREQ_FILE = 23 PKGREQ_CLOSE = 17 PKGREQ_LIST = 18 -TU_ADD_VOTE = 19 -TU_LIST_VOTES = 20 -TU_VOTE = 21 +PM_ADD_VOTE = 19 +PM_LIST_VOTES = 20 +PM_VOTE = 21 PKGBASE_MERGE = 29 -user_developer_or_trusted_user = set( - [USER_ID, TRUSTED_USER_ID, DEVELOPER_ID, TRUSTED_USER_AND_DEV_ID] +user_developer_or_package_maintainer = set( + [USER_ID, PACKAGE_MAINTAINER_ID, DEVELOPER_ID, PACKAGE_MAINTAINER_AND_DEV_ID] ) -trusted_user_or_dev = set([TRUSTED_USER_ID, DEVELOPER_ID, TRUSTED_USER_AND_DEV_ID]) -developer = set([DEVELOPER_ID, TRUSTED_USER_AND_DEV_ID]) -trusted_user = set([TRUSTED_USER_ID, TRUSTED_USER_AND_DEV_ID]) +package_maintainer_or_dev = set( + [PACKAGE_MAINTAINER_ID, DEVELOPER_ID, PACKAGE_MAINTAINER_AND_DEV_ID] +) +developer = set([DEVELOPER_ID, PACKAGE_MAINTAINER_AND_DEV_ID]) +package_maintainer = set([PACKAGE_MAINTAINER_ID, PACKAGE_MAINTAINER_AND_DEV_ID]) cred_filters = { - PKGBASE_FLAG: user_developer_or_trusted_user, - PKGBASE_NOTIFY: user_developer_or_trusted_user, - PKGBASE_VOTE: user_developer_or_trusted_user, - PKGREQ_FILE: user_developer_or_trusted_user, - ACCOUNT_CHANGE_TYPE: trusted_user_or_dev, - ACCOUNT_EDIT: trusted_user_or_dev, - ACCOUNT_LAST_LOGIN: trusted_user_or_dev, - ACCOUNT_LIST_COMMENTS: trusted_user_or_dev, - ACCOUNT_SEARCH: trusted_user_or_dev, - COMMENT_DELETE: trusted_user_or_dev, - COMMENT_UNDELETE: trusted_user_or_dev, - COMMENT_VIEW_DELETED: trusted_user_or_dev, - COMMENT_EDIT: trusted_user_or_dev, - COMMENT_PIN: trusted_user_or_dev, - PKGBASE_ADOPT: trusted_user_or_dev, - PKGBASE_SET_KEYWORDS: trusted_user_or_dev, - PKGBASE_DELETE: trusted_user_or_dev, - PKGBASE_EDIT_COMAINTAINERS: trusted_user_or_dev, - PKGBASE_DISOWN: trusted_user_or_dev, - PKGBASE_LIST_VOTERS: trusted_user_or_dev, - PKGBASE_UNFLAG: trusted_user_or_dev, - PKGREQ_CLOSE: trusted_user_or_dev, - PKGREQ_LIST: trusted_user_or_dev, - TU_ADD_VOTE: trusted_user, - TU_LIST_VOTES: trusted_user_or_dev, - TU_VOTE: trusted_user, + PKGBASE_FLAG: user_developer_or_package_maintainer, + PKGBASE_NOTIFY: user_developer_or_package_maintainer, + PKGBASE_VOTE: user_developer_or_package_maintainer, + PKGREQ_FILE: user_developer_or_package_maintainer, + ACCOUNT_CHANGE_TYPE: package_maintainer_or_dev, + ACCOUNT_EDIT: package_maintainer_or_dev, + ACCOUNT_LAST_LOGIN: package_maintainer_or_dev, + ACCOUNT_LIST_COMMENTS: package_maintainer_or_dev, + ACCOUNT_SEARCH: package_maintainer_or_dev, + COMMENT_DELETE: package_maintainer_or_dev, + COMMENT_UNDELETE: package_maintainer_or_dev, + COMMENT_VIEW_DELETED: package_maintainer_or_dev, + COMMENT_EDIT: package_maintainer_or_dev, + COMMENT_PIN: package_maintainer_or_dev, + PKGBASE_ADOPT: package_maintainer_or_dev, + PKGBASE_SET_KEYWORDS: package_maintainer_or_dev, + PKGBASE_DELETE: package_maintainer_or_dev, + PKGBASE_EDIT_COMAINTAINERS: package_maintainer_or_dev, + PKGBASE_DISOWN: package_maintainer_or_dev, + PKGBASE_LIST_VOTERS: package_maintainer_or_dev, + PKGBASE_UNFLAG: package_maintainer_or_dev, + PKGREQ_CLOSE: package_maintainer_or_dev, + PKGREQ_LIST: package_maintainer_or_dev, + PM_ADD_VOTE: package_maintainer, + PM_LIST_VOTES: package_maintainer_or_dev, + PM_VOTE: package_maintainer, ACCOUNT_EDIT_DEV: developer, - PKGBASE_MERGE: trusted_user_or_dev, + PKGBASE_MERGE: package_maintainer_or_dev, } diff --git a/aurweb/benchmark.py b/aurweb/benchmark.py index a5512acc..83969962 100644 --- a/aurweb/benchmark.py +++ b/aurweb/benchmark.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import UTC, datetime class Benchmark: @@ -7,7 +7,7 @@ class Benchmark: def _timestamp(self) -> float: """Generate a timestamp.""" - return float(datetime.utcnow().timestamp()) + return float(datetime.now(UTC).timestamp()) def start(self) -> int: """Start a benchmark.""" diff --git a/aurweb/cache.py b/aurweb/cache.py index bb374e57..477f6780 100644 --- a/aurweb/cache.py +++ b/aurweb/cache.py @@ -1,4 +1,5 @@ import pickle +from typing import Any, Callable from sqlalchemy import orm @@ -9,6 +10,22 @@ from aurweb.prometheus import SEARCH_REQUESTS _redis = redis_connection() +def lambda_cache(key: str, value: Callable[[], Any], expire: int = None) -> list: + """Store and retrieve lambda results via redis cache. + + :param key: Redis key + :param value: Lambda callable returning the value + :param expire: Optional expiration in seconds + :return: result of callable or cache + """ + result = _redis.get(key) + if result is not None: + return pickle.loads(result) + + _redis.set(key, (pickle.dumps(result := value())), ex=expire) + return result + + def db_count_cache(key: str, query: orm.Query, expire: int = None) -> int: """Store and retrieve a query.count() via redis cache. diff --git a/aurweb/captcha.py b/aurweb/captcha.py index 52dfeb31..52e834ac 100644 --- a/aurweb/captcha.py +++ b/aurweb/captcha.py @@ -1,7 +1,9 @@ """ This module consists of aurweb's CAPTCHA utility functions and filters. """ + import hashlib from jinja2 import pass_context +from sqlalchemy import func from aurweb.db import query from aurweb.models import User @@ -10,7 +12,8 @@ from aurweb.templates import register_filter def get_captcha_salts(): """Produce salts based on the current user count.""" - count = query(User).count() + count = query(func.count(User.ID)).scalar() + salts = [] for i in range(0, 6): salts.append(f"aurweb-{count - i}") diff --git a/aurweb/db.py b/aurweb/db.py index 8311f2be..f1b8210f 100644 --- a/aurweb/db.py +++ b/aurweb/db.py @@ -298,9 +298,12 @@ def get_engine(dbname: str = None, echo: bool = False): connect_args["check_same_thread"] = False kwargs = {"echo": echo, "connect_args": connect_args} + from opentelemetry.instrumentation.sqlalchemy import SQLAlchemyInstrumentor from sqlalchemy import create_engine - _engines[dbname] = create_engine(get_sqlalchemy_url(), **kwargs) + engine = create_engine(get_sqlalchemy_url(), **kwargs) + SQLAlchemyInstrumentor().instrument(engine=engine) + _engines[dbname] = engine if is_sqlite: # pragma: no cover setup_sqlite(_engines.get(dbname)) diff --git a/aurweb/filters.py b/aurweb/filters.py index 38322cdf..f39bd560 100644 --- a/aurweb/filters.py +++ b/aurweb/filters.py @@ -1,6 +1,6 @@ import copy import math -from datetime import datetime +from datetime import UTC, datetime from typing import Any, Union from urllib.parse import quote_plus, urlencode from zoneinfo import ZoneInfo @@ -94,7 +94,7 @@ def tn(context: dict[str, Any], count: int, singular: str, plural: str) -> str: @register_filter("dt") def timestamp_to_datetime(timestamp: int): - return datetime.utcfromtimestamp(int(timestamp)) + return datetime.fromtimestamp(timestamp, UTC) @register_filter("as_timezone") @@ -118,9 +118,9 @@ def to_qs(query: dict[str, Any]) -> str: @register_filter("get_vote") def get_vote(voteinfo, request: fastapi.Request): - from aurweb.models import TUVote + from aurweb.models import Vote - return voteinfo.tu_votes.filter(TUVote.User == request.user).first() + return voteinfo.votes.filter(Vote.User == request.user).first() @register_filter("number_format") diff --git a/aurweb/git/serve.py b/aurweb/git/serve.py index 333d0394..5888c6b4 100755 --- a/aurweb/git/serve.py +++ b/aurweb/git/serve.py @@ -265,7 +265,7 @@ def pkgbase_disown(pkgbase, user, privileged): conn = aurweb.db.Connection() # Make the first co-maintainer the new maintainer, unless the action was - # enforced by a Trusted User. + # enforced by a Package Maintainer. if initialized_by_owner: comaintainers = pkgbase_get_comaintainers(pkgbase) if len(comaintainers) > 0: diff --git a/aurweb/git/update.py b/aurweb/git/update.py index 4c4fff0f..1118340d 100755 --- a/aurweb/git/update.py +++ b/aurweb/git/update.py @@ -440,6 +440,8 @@ def main(): # noqa: C901 cur = conn.execute("SELECT Name FROM PackageBlacklist") blacklist = [row[0] for row in cur.fetchall()] + if pkgbase in blacklist: + warn_or_die("pkgbase is blacklisted: {:s}".format(pkgbase)) cur = conn.execute("SELECT Name, Repo FROM OfficialProviders") providers = dict(cur.fetchall()) diff --git a/aurweb/initdb.py b/aurweb/initdb.py index ee59212c..7181ea3e 100644 --- a/aurweb/initdb.py +++ b/aurweb/initdb.py @@ -13,9 +13,9 @@ def feed_initial_data(conn): aurweb.schema.AccountTypes.insert(), [ {"ID": 1, "AccountType": "User"}, - {"ID": 2, "AccountType": "Trusted User"}, + {"ID": 2, "AccountType": "Package Maintainer"}, {"ID": 3, "AccountType": "Developer"}, - {"ID": 4, "AccountType": "Trusted User & Developer"}, + {"ID": 4, "AccountType": "Package Maintainer & Developer"}, ], ) conn.execute( diff --git a/aurweb/l10n.py b/aurweb/l10n.py index 2ef2c43e..1ce5e956 100644 --- a/aurweb/l10n.py +++ b/aurweb/l10n.py @@ -64,11 +64,24 @@ class Translator: translator = Translator() -def get_request_language(request: Request): - if request.user.is_authenticated(): +def get_request_language(request: Request) -> str: + """Get a request's language from either query param, user setting or + cookie. We use the configuration's [options] default_lang otherwise. + + @param request FastAPI request + """ + request_lang = request.query_params.get("language") + cookie_lang = request.cookies.get("AURLANG") + if request_lang and request_lang in SUPPORTED_LANGUAGES: + return request_lang + elif ( + request.user.is_authenticated() + and request.user.LangPreference in SUPPORTED_LANGUAGES + ): return request.user.LangPreference - default_lang = aurweb.config.get("options", "default_lang") - return request.cookies.get("AURLANG", default_lang) + elif cookie_lang and cookie_lang in SUPPORTED_LANGUAGES: + return cookie_lang + return aurweb.config.get_with_fallback("options", "default_lang", "en") def get_raw_translator_for_request(request: Request): diff --git a/aurweb/models/__init__.py b/aurweb/models/__init__.py index a06077ad..90f3c93f 100644 --- a/aurweb/models/__init__.py +++ b/aurweb/models/__init__.py @@ -1,4 +1,5 @@ """ Collection of all aurweb SQLAlchemy declarative models. """ + from .accepted_term import AcceptedTerm # noqa: F401 from .account_type import AccountType # noqa: F401 from .api_rate_limit import ApiRateLimit # noqa: F401 @@ -26,6 +27,6 @@ from .request_type import RequestType # noqa: F401 from .session import Session # noqa: F401 from .ssh_pub_key import SSHPubKey # noqa: F401 from .term import Term # noqa: F401 -from .tu_vote import TUVote # noqa: F401 -from .tu_voteinfo import TUVoteInfo # noqa: F401 from .user import User # noqa: F401 +from .vote import Vote # noqa: F401 +from .voteinfo import VoteInfo # noqa: F401 diff --git a/aurweb/models/account_type.py b/aurweb/models/account_type.py index 315800a7..70bfc2c5 100644 --- a/aurweb/models/account_type.py +++ b/aurweb/models/account_type.py @@ -2,21 +2,21 @@ from aurweb import schema from aurweb.models.declarative import Base USER = "User" -TRUSTED_USER = "Trusted User" +PACKAGE_MAINTAINER = "Package Maintainer" DEVELOPER = "Developer" -TRUSTED_USER_AND_DEV = "Trusted User & Developer" +PACKAGE_MAINTAINER_AND_DEV = "Package Maintainer & Developer" USER_ID = 1 -TRUSTED_USER_ID = 2 +PACKAGE_MAINTAINER_ID = 2 DEVELOPER_ID = 3 -TRUSTED_USER_AND_DEV_ID = 4 +PACKAGE_MAINTAINER_AND_DEV_ID = 4 # Map string constants to integer constants. ACCOUNT_TYPE_ID = { USER: USER_ID, - TRUSTED_USER: TRUSTED_USER_ID, + PACKAGE_MAINTAINER: PACKAGE_MAINTAINER_ID, DEVELOPER: DEVELOPER_ID, - TRUSTED_USER_AND_DEV: TRUSTED_USER_AND_DEV_ID, + PACKAGE_MAINTAINER_AND_DEV: PACKAGE_MAINTAINER_AND_DEV_ID, } # Reversed ACCOUNT_TYPE_ID mapping. diff --git a/aurweb/models/ban.py b/aurweb/models/ban.py index 0fcb6d2e..d2a7250d 100644 --- a/aurweb/models/ban.py +++ b/aurweb/models/ban.py @@ -2,6 +2,7 @@ from fastapi import Request from aurweb import db, schema from aurweb.models.declarative import Base +from aurweb.util import get_client_ip class Ban(Base): @@ -14,6 +15,6 @@ class Ban(Base): def is_banned(request: Request): - ip = request.client.host + ip = get_client_ip(request) exists = db.query(Ban).filter(Ban.IPAddress == ip).exists() return db.query(exists).scalar() diff --git a/aurweb/models/package_dependency.py b/aurweb/models/package_dependency.py index 587ba68d..9cf1eda0 100644 --- a/aurweb/models/package_dependency.py +++ b/aurweb/models/package_dependency.py @@ -57,14 +57,17 @@ class PackageDependency(Base): params=("NULL"), ) - def is_package(self) -> bool: + def is_aur_package(self) -> bool: pkg = db.query(_Package).filter(_Package.Name == self.DepName).exists() + return db.query(pkg).scalar() + + def is_package(self) -> bool: official = ( db.query(_OfficialProvider) .filter(_OfficialProvider.Name == self.DepName) .exists() ) - return db.query(pkg).scalar() or db.query(official).scalar() + return self.is_aur_package() or db.query(official).scalar() def provides(self) -> list[PackageRelation]: from aurweb.models.relation_type import PROVIDES_ID diff --git a/aurweb/models/user.py b/aurweb/models/user.py index 8612c259..ee2889d2 100644 --- a/aurweb/models/user.py +++ b/aurweb/models/user.py @@ -122,7 +122,7 @@ class User(Base): try: with db.begin(): self.LastLogin = now_ts - self.LastLoginIPAddress = request.client.host + self.LastLoginIPAddress = util.get_client_ip(request) if not self.session: sid = generate_unique_sid() self.session = db.create( @@ -157,25 +157,25 @@ class User(Base): with db.begin(): db.delete(self.session) - def is_trusted_user(self): + def is_package_maintainer(self): return self.AccountType.ID in { - aurweb.models.account_type.TRUSTED_USER_ID, - aurweb.models.account_type.TRUSTED_USER_AND_DEV_ID, + aurweb.models.account_type.PACKAGE_MAINTAINER_ID, + aurweb.models.account_type.PACKAGE_MAINTAINER_AND_DEV_ID, } def is_developer(self): return self.AccountType.ID in { aurweb.models.account_type.DEVELOPER_ID, - aurweb.models.account_type.TRUSTED_USER_AND_DEV_ID, + aurweb.models.account_type.PACKAGE_MAINTAINER_AND_DEV_ID, } def is_elevated(self): """A User is 'elevated' when they have either a - Trusted User or Developer AccountType.""" + Package Maintainer or Developer AccountType.""" return self.AccountType.ID in { - aurweb.models.account_type.TRUSTED_USER_ID, + aurweb.models.account_type.PACKAGE_MAINTAINER_ID, aurweb.models.account_type.DEVELOPER_ID, - aurweb.models.account_type.TRUSTED_USER_AND_DEV_ID, + aurweb.models.account_type.PACKAGE_MAINTAINER_AND_DEV_ID, } def can_edit_user(self, target: "User") -> bool: @@ -188,7 +188,7 @@ class User(Base): In short, a user must at least have credentials and be at least the same account type as the target. - User < Trusted User < Developer < Trusted User & Developer + User < Package Maintainer < Developer < Package Maintainer & Developer :param target: Target User to be edited :return: Boolean indicating whether `self` can edit `target` diff --git a/aurweb/models/tu_vote.py b/aurweb/models/vote.py similarity index 74% rename from aurweb/models/tu_vote.py rename to aurweb/models/vote.py index 412915e2..ec20fe9b 100644 --- a/aurweb/models/tu_vote.py +++ b/aurweb/models/vote.py @@ -3,24 +3,24 @@ from sqlalchemy.orm import backref, relationship from aurweb import schema from aurweb.models.declarative import Base -from aurweb.models.tu_voteinfo import TUVoteInfo as _TUVoteInfo from aurweb.models.user import User as _User +from aurweb.models.voteinfo import VoteInfo as _VoteInfo -class TUVote(Base): - __table__ = schema.TU_Votes +class Vote(Base): + __table__ = schema.Votes __tablename__ = __table__.name __mapper_args__ = {"primary_key": [__table__.c.VoteID, __table__.c.UserID]} VoteInfo = relationship( - _TUVoteInfo, - backref=backref("tu_votes", lazy="dynamic"), + _VoteInfo, + backref=backref("votes", lazy="dynamic"), foreign_keys=[__table__.c.VoteID], ) User = relationship( _User, - backref=backref("tu_votes", lazy="dynamic"), + backref=backref("votes", lazy="dynamic"), foreign_keys=[__table__.c.UserID], ) @@ -30,13 +30,13 @@ class TUVote(Base): if not self.VoteInfo and not self.VoteID: raise IntegrityError( statement="Foreign key VoteID cannot be null.", - orig="TU_Votes.VoteID", + orig="Votes.VoteID", params=("NULL"), ) if not self.User and not self.UserID: raise IntegrityError( statement="Foreign key UserID cannot be null.", - orig="TU_Votes.UserID", + orig="Votes.UserID", params=("NULL"), ) diff --git a/aurweb/models/tu_voteinfo.py b/aurweb/models/voteinfo.py similarity index 86% rename from aurweb/models/tu_voteinfo.py rename to aurweb/models/voteinfo.py index 63fcee23..b7480661 100644 --- a/aurweb/models/tu_voteinfo.py +++ b/aurweb/models/voteinfo.py @@ -8,14 +8,14 @@ from aurweb.models.declarative import Base from aurweb.models.user import User as _User -class TUVoteInfo(Base): - __table__ = schema.TU_VoteInfo +class VoteInfo(Base): + __table__ = schema.VoteInfo __tablename__ = __table__.name __mapper_args__ = {"primary_key": [__table__.c.ID]} Submitter = relationship( _User, - backref=backref("tu_voteinfo_set", lazy="dynamic"), + backref=backref("voteinfo_set", lazy="dynamic"), foreign_keys=[__table__.c.SubmitterID], ) @@ -30,35 +30,35 @@ class TUVoteInfo(Base): if self.Agenda is None: raise IntegrityError( statement="Column Agenda cannot be null.", - orig="TU_VoteInfo.Agenda", + orig="VoteInfo.Agenda", params=("NULL"), ) if self.User is None: raise IntegrityError( statement="Column User cannot be null.", - orig="TU_VoteInfo.User", + orig="VoteInfo.User", params=("NULL"), ) if self.Submitted is None: raise IntegrityError( statement="Column Submitted cannot be null.", - orig="TU_VoteInfo.Submitted", + orig="VoteInfo.Submitted", params=("NULL"), ) if self.End is None: raise IntegrityError( statement="Column End cannot be null.", - orig="TU_VoteInfo.End", + orig="VoteInfo.End", params=("NULL"), ) if not self.Submitter: raise IntegrityError( statement="Foreign key SubmitterID cannot be null.", - orig="TU_VoteInfo.SubmitterID", + orig="VoteInfo.SubmitterID", params=("NULL"), ) diff --git a/aurweb/packages/util.py b/aurweb/packages/util.py index 78d79508..a2c6cbaa 100644 --- a/aurweb/packages/util.py +++ b/aurweb/packages/util.py @@ -83,9 +83,11 @@ def package_link(package: Union[Package, OfficialProvider]) -> str: @register_filter("provides_markup") def provides_markup(provides: Providers) -> str: - return ", ".join( - [f'{pkg.Name}' for pkg in provides] - ) + links = [] + for pkg in provides: + aur = "AUR" if not pkg.is_official else "" + links.append(f'{pkg.Name}{aur}') + return ", ".join(links) def get_pkg_or_base( diff --git a/aurweb/pkgbase/actions.py b/aurweb/pkgbase/actions.py index 00efc1ff..d2471d8d 100644 --- a/aurweb/pkgbase/actions.py +++ b/aurweb/pkgbase/actions.py @@ -94,7 +94,7 @@ def _retry_disown(request: Request, pkgbase: PackageBase): notifs.append(notif) elif request.user.has_credential(creds.PKGBASE_DISOWN): # Otherwise, the request user performing this disownage is a - # Trusted User and we treat it like a standard orphan request. + # Package Maintainer and we treat it like a standard orphan request. notifs += handle_request(request, ORPHAN_ID, pkgbase) with db.begin(): pkgbase.Maintainer = None @@ -187,7 +187,7 @@ def pkgbase_merge_instance( # Log this out for accountability purposes. logger.info( - f"Trusted User '{request.user.Username}' merged " + f"Package Maintainer '{request.user.Username}' merged " f"'{pkgbasename}' into '{target.Name}'." ) diff --git a/aurweb/pkgbase/util.py b/aurweb/pkgbase/util.py index 46d6e2db..d3c2f35c 100644 --- a/aurweb/pkgbase/util.py +++ b/aurweb/pkgbase/util.py @@ -2,6 +2,7 @@ from typing import Any from fastapi import Request from sqlalchemy import and_ +from sqlalchemy.orm import joinedload from aurweb import config, db, defaults, l10n, time, util from aurweb.models import PackageBase, User @@ -11,17 +12,7 @@ from aurweb.models.package_comment import PackageComment from aurweb.models.package_request import PENDING_ID, PackageRequest from aurweb.models.package_vote import PackageVote from aurweb.scripts import notify -from aurweb.templates import ( - make_context as _make_context, - make_variable_context as _make_variable_context, -) - - -async def make_variable_context( - request: Request, pkgbase: PackageBase -) -> dict[str, Any]: - ctx = await _make_variable_context(request, pkgbase.Name) - return make_context(request, pkgbase, ctx) +from aurweb.templates import make_context as _make_context def make_context( @@ -36,6 +27,8 @@ def make_context( if not context: context = _make_context(request, pkgbase.Name) + is_authenticated = request.user.is_authenticated() + # Per page and offset. offset, per_page = util.sanitize_params( request.query_params.get("O", defaults.O), @@ -48,12 +41,15 @@ def make_context( context["pkgbase"] = pkgbase context["comaintainers"] = [ c.User - for c in pkgbase.comaintainers.order_by( - PackageComaintainer.Priority.asc() - ).all() + for c in pkgbase.comaintainers.options(joinedload(PackageComaintainer.User)) + .order_by(PackageComaintainer.Priority.asc()) + .all() ] - context["unflaggers"] = context["comaintainers"].copy() - context["unflaggers"].extend([pkgbase.Maintainer, pkgbase.Flagger]) + if is_authenticated: + context["unflaggers"] = context["comaintainers"].copy() + context["unflaggers"].extend([pkgbase.Maintainer, pkgbase.Flagger]) + else: + context["unflaggers"] = [] context["packages_count"] = pkgbase.packages.count() context["keywords"] = pkgbase.keywords @@ -70,17 +66,28 @@ def make_context( ).order_by(PackageComment.CommentTS.desc()) context["is_maintainer"] = bool(request.user == pkgbase.Maintainer) - context["notified"] = request.user.notified(pkgbase) + if is_authenticated: + context["notified"] = request.user.notified(pkgbase) + else: + context["notified"] = False context["out_of_date"] = bool(pkgbase.OutOfDateTS) - context["voted"] = request.user.package_votes.filter( - PackageVote.PackageBaseID == pkgbase.ID - ).scalar() + if is_authenticated: + context["voted"] = db.query( + request.user.package_votes.filter( + PackageVote.PackageBaseID == pkgbase.ID + ).exists() + ).scalar() + else: + context["voted"] = False - context["requests"] = pkgbase.requests.filter( - and_(PackageRequest.Status == PENDING_ID, PackageRequest.ClosedTS.is_(None)) - ).count() + if is_authenticated: + context["requests"] = pkgbase.requests.filter( + and_(PackageRequest.Status == PENDING_ID, PackageRequest.ClosedTS.is_(None)) + ).count() + else: + context["requests"] = [] context["popularity"] = popularity(pkgbase, time.utcnow()) diff --git a/aurweb/pkgbase/validate.py b/aurweb/pkgbase/validate.py index 3c50e578..b76e1a38 100644 --- a/aurweb/pkgbase/validate.py +++ b/aurweb/pkgbase/validate.py @@ -1,6 +1,9 @@ +from http import HTTPStatus from typing import Any -from aurweb import db +from fastapi import HTTPException + +from aurweb import config, db from aurweb.exceptions import ValidationError from aurweb.models import PackageBase @@ -12,8 +15,8 @@ def request( merge_into: str, context: dict[str, Any], ) -> None: - if not comments: - raise ValidationError(["The comment field must not be empty."]) + # validate comment + comment(comments) if type == "merge": # Perform merge-related checks. @@ -32,3 +35,21 @@ def request( if target.ID == pkgbase.ID: # TODO: This error needs to be translated. raise ValidationError(["You cannot merge a package base into itself."]) + + +def comment(comment: str): + if not comment: + raise ValidationError(["The comment field must not be empty."]) + + if len(comment) > config.getint("options", "max_chars_comment", 5000): + raise ValidationError(["Maximum number of characters for comment exceeded."]) + + +def comment_raise_http_ex(comments: str): + try: + comment(comments) + except ValidationError as err: + raise HTTPException( + status_code=HTTPStatus.BAD_REQUEST, + detail=err.data[0], + ) diff --git a/aurweb/ratelimit.py b/aurweb/ratelimit.py index ea191972..060f8dcb 100644 --- a/aurweb/ratelimit.py +++ b/aurweb/ratelimit.py @@ -4,6 +4,7 @@ from redis.client import Pipeline from aurweb import aur_logging, config, db, time from aurweb.aur_redis import redis_connection from aurweb.models import ApiRateLimit +from aurweb.util import get_client_ip logger = aur_logging.get_logger(__name__) @@ -13,7 +14,7 @@ def _update_ratelimit_redis(request: Request, pipeline: Pipeline): now = time.utcnow() time_to_delete = now - window_length - host = request.client.host + host = get_client_ip(request) window_key = f"ratelimit-ws:{host}" requests_key = f"ratelimit:{host}" @@ -55,7 +56,7 @@ def _update_ratelimit_db(request: Request): record.Requests += 1 return record - host = request.client.host + host = get_client_ip(request) record = db.query(ApiRateLimit, ApiRateLimit.IP == host).first() record = retry_create(record, now, host) @@ -92,7 +93,7 @@ def check_ratelimit(request: Request): record = update_ratelimit(request, pipeline) # Get cache value, else None. - host = request.client.host + host = get_client_ip(request) pipeline.get(f"ratelimit:{host}") requests = pipeline.execute()[0] diff --git a/aurweb/routers/__init__.py b/aurweb/routers/__init__.py index f77bce4f..552d8c28 100644 --- a/aurweb/routers/__init__.py +++ b/aurweb/routers/__init__.py @@ -3,17 +3,18 @@ API routers for FastAPI. See https://fastapi.tiangolo.com/tutorial/bigger-applications/ """ + from . import ( accounts, auth, html, + package_maintainer, packages, pkgbase, requests, rpc, rss, sso, - trusted_user, ) """ @@ -28,7 +29,7 @@ APP_ROUTES = [ packages, pkgbase, requests, - trusted_user, + package_maintainer, rss, rpc, sso, diff --git a/aurweb/routers/accounts.py b/aurweb/routers/accounts.py index 1c81ec1d..a2d167bc 100644 --- a/aurweb/routers/accounts.py +++ b/aurweb/routers/accounts.py @@ -184,9 +184,9 @@ def make_account_form_context( lambda e: request.user.AccountTypeID >= e[0], [ (at.USER_ID, f"Normal {at.USER}"), - (at.TRUSTED_USER_ID, at.TRUSTED_USER), + (at.PACKAGE_MAINTAINER_ID, at.PACKAGE_MAINTAINER), (at.DEVELOPER_ID, at.DEVELOPER), - (at.TRUSTED_USER_AND_DEV_ID, at.TRUSTED_USER_AND_DEV), + (at.PACKAGE_MAINTAINER_AND_DEV_ID, at.PACKAGE_MAINTAINER_AND_DEV), ], ) ) @@ -520,7 +520,9 @@ async def account_comments(request: Request, username: str): @router.get("/accounts") @requires_auth -@account_type_required({at.TRUSTED_USER, at.DEVELOPER, at.TRUSTED_USER_AND_DEV}) +@account_type_required( + {at.PACKAGE_MAINTAINER, at.DEVELOPER, at.PACKAGE_MAINTAINER_AND_DEV} +) async def accounts(request: Request): context = make_context(request, "Accounts") return render_template(request, "account/search.html", context) @@ -529,7 +531,9 @@ async def accounts(request: Request): @router.post("/accounts") @handle_form_exceptions @requires_auth -@account_type_required({at.TRUSTED_USER, at.DEVELOPER, at.TRUSTED_USER_AND_DEV}) +@account_type_required( + {at.PACKAGE_MAINTAINER, at.DEVELOPER, at.PACKAGE_MAINTAINER_AND_DEV} +) async def accounts_post( request: Request, O: int = Form(default=0), # Offset @@ -564,9 +568,9 @@ async def accounts_post( # Convert parameter T to an AccountType ID. account_types = { "u": at.USER_ID, - "t": at.TRUSTED_USER_ID, + "t": at.PACKAGE_MAINTAINER_ID, "d": at.DEVELOPER_ID, - "td": at.TRUSTED_USER_AND_DEV_ID, + "td": at.PACKAGE_MAINTAINER_AND_DEV_ID, } account_type_id = account_types.get(T, None) diff --git a/aurweb/routers/html.py b/aurweb/routers/html.py index 63cc3bb8..25c611d0 100644 --- a/aurweb/routers/html.py +++ b/aurweb/routers/html.py @@ -1,6 +1,7 @@ """ AURWeb's primary routing module. Define all routes via @app.app.{get,post} decorators in some way; more complex routes should be defined in their own modules and imported here. """ + import os from http import HTTPStatus diff --git a/aurweb/routers/trusted_user.py b/aurweb/routers/package_maintainer.py similarity index 64% rename from aurweb/routers/trusted_user.py rename to aurweb/routers/package_maintainer.py index 4248347d..9ce38d07 100644 --- a/aurweb/routers/trusted_user.py +++ b/aurweb/routers/package_maintainer.py @@ -11,13 +11,16 @@ from aurweb import aur_logging, db, l10n, models, time from aurweb.auth import creds, requires_auth from aurweb.exceptions import handle_form_exceptions from aurweb.models import User -from aurweb.models.account_type import TRUSTED_USER_AND_DEV_ID, TRUSTED_USER_ID +from aurweb.models.account_type import ( + PACKAGE_MAINTAINER_AND_DEV_ID, + PACKAGE_MAINTAINER_ID, +) from aurweb.templates import make_context, make_variable_context, render_template router = APIRouter() logger = aur_logging.get_logger(__name__) -# Some TU route specific constants. +# Some PM route specific constants. ITEMS_PER_PAGE = 10 # Paged table size. MAX_AGENDA_LENGTH = 75 # Agenda table column length. @@ -26,32 +29,32 @@ ADDVOTE_SPECIFICS = { # When a proposal is added, duration is added to the current # timestamp. # "addvote_type": (duration, quorum) - "add_tu": (7 * 24 * 60 * 60, 0.66), - "remove_tu": (7 * 24 * 60 * 60, 0.75), - "remove_inactive_tu": (5 * 24 * 60 * 60, 0.66), + "add_pm": (7 * 24 * 60 * 60, 0.66), + "remove_pm": (7 * 24 * 60 * 60, 0.75), + "remove_inactive_pm": (5 * 24 * 60 * 60, 0.66), "bylaws": (7 * 24 * 60 * 60, 0.75), } -def populate_trusted_user_counts(context: dict[str, Any]) -> None: - tu_query = db.query(User).filter( +def populate_package_maintainer_counts(context: dict[str, Any]) -> None: + pm_query = db.query(User).filter( or_( - User.AccountTypeID == TRUSTED_USER_ID, - User.AccountTypeID == TRUSTED_USER_AND_DEV_ID, + User.AccountTypeID == PACKAGE_MAINTAINER_ID, + User.AccountTypeID == PACKAGE_MAINTAINER_AND_DEV_ID, ) ) - context["trusted_user_count"] = tu_query.count() + context["package_maintainer_count"] = pm_query.count() # In case any records have a None InactivityTS. - active_tu_query = tu_query.filter( + active_pm_query = pm_query.filter( or_(User.InactivityTS.is_(None), User.InactivityTS == 0) ) - context["active_trusted_user_count"] = active_tu_query.count() + context["active_package_maintainer_count"] = active_pm_query.count() -@router.get("/tu") +@router.get("/package-maintainer") @requires_auth -async def trusted_user( +async def package_maintainer( request: Request, coff: int = 0, # current offset cby: str = "desc", # current by @@ -60,10 +63,10 @@ async def trusted_user( ): # past by """Proposal listings.""" - if not request.user.has_credential(creds.TU_LIST_VOTES): + if not request.user.has_credential(creds.PM_LIST_VOTES): return RedirectResponse("/", status_code=HTTPStatus.SEE_OTHER) - context = make_context(request, "Trusted User") + context = make_context(request, "Package Maintainer") current_by, past_by = cby, pby current_off, past_off = coff, poff @@ -84,9 +87,9 @@ async def trusted_user( context["past_by"] = past_by current_votes = ( - db.query(models.TUVoteInfo) - .filter(models.TUVoteInfo.End > ts) - .order_by(models.TUVoteInfo.Submitted.desc()) + db.query(models.VoteInfo) + .filter(models.VoteInfo.End > ts) + .order_by(models.VoteInfo.Submitted.desc()) ) context["current_votes_count"] = current_votes.count() current_votes = current_votes.limit(pp).offset(current_off) @@ -96,9 +99,9 @@ async def trusted_user( context["current_off"] = current_off past_votes = ( - db.query(models.TUVoteInfo) - .filter(models.TUVoteInfo.End <= ts) - .order_by(models.TUVoteInfo.Submitted.desc()) + db.query(models.VoteInfo) + .filter(models.VoteInfo.End <= ts) + .order_by(models.VoteInfo.Submitted.desc()) ) context["past_votes_count"] = past_votes.count() past_votes = past_votes.limit(pp).offset(past_off) @@ -107,29 +110,29 @@ async def trusted_user( ) context["past_off"] = past_off - last_vote = func.max(models.TUVote.VoteID).label("LastVote") - last_votes_by_tu = ( - db.query(models.TUVote) + last_vote = func.max(models.Vote.VoteID).label("LastVote") + last_votes_by_pm = ( + db.query(models.Vote) .join(models.User) - .join(models.TUVoteInfo, models.TUVoteInfo.ID == models.TUVote.VoteID) + .join(models.VoteInfo, models.VoteInfo.ID == models.Vote.VoteID) .filter( and_( - models.TUVote.VoteID == models.TUVoteInfo.ID, - models.User.ID == models.TUVote.UserID, - models.TUVoteInfo.End < ts, + models.Vote.VoteID == models.VoteInfo.ID, + models.User.ID == models.Vote.UserID, + models.VoteInfo.End < ts, or_(models.User.AccountTypeID == 2, models.User.AccountTypeID == 4), ) ) - .with_entities(models.TUVote.UserID, last_vote, models.User.Username) - .group_by(models.TUVote.UserID) + .with_entities(models.Vote.UserID, last_vote, models.User.Username) + .group_by(models.Vote.UserID) .order_by(last_vote.desc(), models.User.Username.asc()) ) - context["last_votes_by_tu"] = last_votes_by_tu.all() + context["last_votes_by_pm"] = last_votes_by_pm.all() context["current_by_next"] = "asc" if current_by == "desc" else "desc" context["past_by_next"] = "asc" if past_by == "desc" else "desc" - populate_trusted_user_counts(context) + populate_package_maintainer_counts(context) context["q"] = { "coff": current_off, @@ -138,33 +141,33 @@ async def trusted_user( "pby": past_by, } - return render_template(request, "tu/index.html", context) + return render_template(request, "package-maintainer/index.html", context) def render_proposal( request: Request, context: dict, proposal: int, - voteinfo: models.TUVoteInfo, + voteinfo: models.VoteInfo, voters: typing.Iterable[models.User], - vote: models.TUVote, + vote: models.Vote, status_code: HTTPStatus = HTTPStatus.OK, ): - """Render a single TU proposal.""" + """Render a single PM proposal.""" context["proposal"] = proposal context["voteinfo"] = voteinfo context["voters"] = voters.all() total = voteinfo.total_votes() - participation = (total / voteinfo.ActiveTUs) if voteinfo.ActiveTUs else 0 + participation = (total / voteinfo.ActiveUsers) if voteinfo.ActiveUsers else 0 context["participation"] = participation - accepted = (voteinfo.Yes > voteinfo.ActiveTUs / 2) or ( + accepted = (voteinfo.Yes > voteinfo.ActiveUsers / 2) or ( participation > voteinfo.Quorum and voteinfo.Yes > voteinfo.No ) context["accepted"] = accepted - can_vote = voters.filter(models.TUVote.User == request.user).first() is None + can_vote = voters.filter(models.Vote.User == request.user).first() is None context["can_vote"] = can_vote if not voteinfo.is_running(): @@ -173,41 +176,41 @@ def render_proposal( context["vote"] = vote context["has_voted"] = vote is not None - return render_template(request, "tu/show.html", context, status_code=status_code) + return render_template( + request, "package-maintainer/show.html", context, status_code=status_code + ) -@router.get("/tu/{proposal}") +@router.get("/package-maintainer/{proposal}") @requires_auth -async def trusted_user_proposal(request: Request, proposal: int): - if not request.user.has_credential(creds.TU_LIST_VOTES): - return RedirectResponse("/tu", status_code=HTTPStatus.SEE_OTHER) +async def package_maintainer_proposal(request: Request, proposal: int): + if not request.user.has_credential(creds.PM_LIST_VOTES): + return RedirectResponse("/package-maintainer", status_code=HTTPStatus.SEE_OTHER) - context = await make_variable_context(request, "Trusted User") + context = await make_variable_context(request, "Package Maintainer") proposal = int(proposal) - voteinfo = ( - db.query(models.TUVoteInfo).filter(models.TUVoteInfo.ID == proposal).first() - ) + voteinfo = db.query(models.VoteInfo).filter(models.VoteInfo.ID == proposal).first() if not voteinfo: raise HTTPException(status_code=HTTPStatus.NOT_FOUND) voters = ( db.query(models.User) - .join(models.TUVote) - .filter(models.TUVote.VoteID == voteinfo.ID) + .join(models.Vote) + .filter(models.Vote.VoteID == voteinfo.ID) ) vote = ( - db.query(models.TUVote) + db.query(models.Vote) .filter( and_( - models.TUVote.UserID == request.user.ID, - models.TUVote.VoteID == voteinfo.ID, + models.Vote.UserID == request.user.ID, + models.Vote.VoteID == voteinfo.ID, ) ) .first() ) - if not request.user.has_credential(creds.TU_VOTE): - context["error"] = "Only Trusted Users are allowed to vote." + if not request.user.has_credential(creds.PM_VOTE): + context["error"] = "Only Package Maintainers are allowed to vote." if voteinfo.User == request.user.Username: context["error"] = "You cannot vote in an proposal about you." elif vote is not None: @@ -218,43 +221,41 @@ async def trusted_user_proposal(request: Request, proposal: int): @db.async_retry_deadlock -@router.post("/tu/{proposal}") +@router.post("/package-maintainer/{proposal}") @handle_form_exceptions @requires_auth -async def trusted_user_proposal_post( +async def package_maintainer_proposal_post( request: Request, proposal: int, decision: str = Form(...) ): - if not request.user.has_credential(creds.TU_LIST_VOTES): - return RedirectResponse("/tu", status_code=HTTPStatus.SEE_OTHER) + if not request.user.has_credential(creds.PM_LIST_VOTES): + return RedirectResponse("/package-maintainer", status_code=HTTPStatus.SEE_OTHER) - context = await make_variable_context(request, "Trusted User") + context = await make_variable_context(request, "Package Maintainer") proposal = int(proposal) # Make sure it's an int. - voteinfo = ( - db.query(models.TUVoteInfo).filter(models.TUVoteInfo.ID == proposal).first() - ) + voteinfo = db.query(models.VoteInfo).filter(models.VoteInfo.ID == proposal).first() if not voteinfo: raise HTTPException(status_code=HTTPStatus.NOT_FOUND) voters = ( db.query(models.User) - .join(models.TUVote) - .filter(models.TUVote.VoteID == voteinfo.ID) + .join(models.Vote) + .filter(models.Vote.VoteID == voteinfo.ID) ) vote = ( - db.query(models.TUVote) + db.query(models.Vote) .filter( and_( - models.TUVote.UserID == request.user.ID, - models.TUVote.VoteID == voteinfo.ID, + models.Vote.UserID == request.user.ID, + models.Vote.VoteID == voteinfo.ID, ) ) .first() ) status_code = HTTPStatus.OK - if not request.user.has_credential(creds.TU_VOTE): - context["error"] = "Only Trusted Users are allowed to vote." + if not request.user.has_credential(creds.PM_VOTE): + context["error"] = "Only Package Maintainers are allowed to vote." status_code = HTTPStatus.UNAUTHORIZED elif voteinfo.User == request.user.Username: context["error"] = "You cannot vote in an proposal about you." @@ -277,7 +278,7 @@ async def trusted_user_proposal_post( "Invalid 'decision' value.", status_code=HTTPStatus.BAD_REQUEST ) - vote = db.create(models.TUVote, User=request.user, VoteInfo=voteinfo) + vote = db.create(models.Vote, User=request.user, VoteInfo=voteinfo) context["error"] = "You've already voted for this proposal." return render_proposal(request, context, proposal, voteinfo, voters, vote) @@ -285,17 +286,17 @@ async def trusted_user_proposal_post( @router.get("/addvote") @requires_auth -async def trusted_user_addvote( - request: Request, user: str = str(), type: str = "add_tu", agenda: str = str() +async def package_maintainer_addvote( + request: Request, user: str = str(), type: str = "add_pm", agenda: str = str() ): - if not request.user.has_credential(creds.TU_ADD_VOTE): - return RedirectResponse("/tu", status_code=HTTPStatus.SEE_OTHER) + if not request.user.has_credential(creds.PM_ADD_VOTE): + return RedirectResponse("/package-maintainer", status_code=HTTPStatus.SEE_OTHER) context = await make_variable_context(request, "Add Proposal") if type not in ADDVOTE_SPECIFICS: context["error"] = "Invalid type." - type = "add_tu" # Default it. + type = "add_pm" # Default it. context["user"] = user context["type"] = type @@ -308,14 +309,14 @@ async def trusted_user_addvote( @router.post("/addvote") @handle_form_exceptions @requires_auth -async def trusted_user_addvote_post( +async def package_maintainer_addvote_post( request: Request, user: str = Form(default=str()), type: str = Form(default=str()), agenda: str = Form(default=str()), ): - if not request.user.has_credential(creds.TU_ADD_VOTE): - return RedirectResponse("/tu", status_code=HTTPStatus.SEE_OTHER) + if not request.user.has_credential(creds.PM_ADD_VOTE): + return RedirectResponse("/package-maintainer", status_code=HTTPStatus.SEE_OTHER) # Build a context. context = await make_variable_context(request, "Add Proposal") @@ -337,10 +338,8 @@ async def trusted_user_addvote_post( utcnow = time.utcnow() voteinfo = ( - db.query(models.TUVoteInfo) - .filter( - and_(models.TUVoteInfo.User == user, models.TUVoteInfo.End > utcnow) - ) + db.query(models.VoteInfo) + .filter(and_(models.VoteInfo.User == user, models.VoteInfo.End > utcnow)) .count() ) if voteinfo: @@ -352,7 +351,7 @@ async def trusted_user_addvote_post( if type not in ADDVOTE_SPECIFICS: context["error"] = "Invalid type." - context["type"] = type = "add_tu" # Default for rendering. + context["type"] = type = "add_pm" # Default for rendering. return render_addvote(context, HTTPStatus.BAD_REQUEST) if not agenda: @@ -363,12 +362,12 @@ async def trusted_user_addvote_post( duration, quorum = ADDVOTE_SPECIFICS.get(type) timestamp = time.utcnow() - # Active TU types we filter for. - types = {TRUSTED_USER_ID, TRUSTED_USER_AND_DEV_ID} + # Active PM types we filter for. + types = {PACKAGE_MAINTAINER_ID, PACKAGE_MAINTAINER_AND_DEV_ID} - # Create a new TUVoteInfo (proposal)! + # Create a new VoteInfo (proposal)! with db.begin(): - active_tus = ( + active_pms = ( db.query(User) .filter( and_( @@ -380,16 +379,16 @@ async def trusted_user_addvote_post( .count() ) voteinfo = db.create( - models.TUVoteInfo, + models.VoteInfo, User=user, Agenda=html.escape(agenda), Submitted=timestamp, End=(timestamp + duration), Quorum=quorum, - ActiveTUs=active_tus, + ActiveUsers=active_pms, Submitter=request.user, ) # Redirect to the new proposal. - endpoint = f"/tu/{voteinfo.ID}" + endpoint = f"/package-maintainer/{voteinfo.ID}" return RedirectResponse(endpoint, status_code=HTTPStatus.SEE_OTHER) diff --git a/aurweb/routers/packages.py b/aurweb/routers/packages.py index 3f96d71c..13f30494 100644 --- a/aurweb/routers/packages.py +++ b/aurweb/routers/packages.py @@ -167,7 +167,8 @@ async def package( rels_data["r"].append(rel) # Add our base information. - context = await pkgbaseutil.make_variable_context(request, pkgbase) + context = pkgbaseutil.make_context(request, pkgbase) + context["q"] = dict(request.query_params) context.update({"all_deps": all_deps, "all_reqs": all_reqs}) @@ -189,6 +190,17 @@ async def package( if not all_deps: deps = deps.limit(max_listing) context["dependencies"] = deps.all() + # Existing dependencies to avoid multiple lookups + context["dependencies_names_from_aur"] = [ + item.Name + for item in db.query(models.Package) + .filter( + models.Package.Name.in_( + pkg.package_dependencies.with_entities(models.PackageDependency.DepName) + ) + ) + .all() + ] # Package requirements (other packages depend on this one). reqs = pkgutil.pkg_required(pkg.Name, [p.RelName for p in rels_data.get("p", [])]) @@ -199,6 +211,8 @@ async def package( context["licenses"] = pkg.package_licenses + context["groups"] = pkg.package_groups + conflicts = pkg.package_relations.filter( models.PackageRelation.RelTypeID == CONFLICTS_ID ).order_by(models.PackageRelation.RelName.asc()) diff --git a/aurweb/routers/pkgbase.py b/aurweb/routers/pkgbase.py index 6073aed5..213348cd 100644 --- a/aurweb/routers/pkgbase.py +++ b/aurweb/routers/pkgbase.py @@ -159,6 +159,8 @@ async def pkgbase_flag_post( request, "pkgbase/flag.html", context, status_code=HTTPStatus.BAD_REQUEST ) + validate.comment_raise_http_ex(comments) + has_cred = request.user.has_credential(creds.PKGBASE_FLAG) if has_cred and not pkgbase.OutOfDateTS: now = time.utcnow() @@ -185,8 +187,7 @@ async def pkgbase_comments_post( """Add a new comment via POST request.""" pkgbase = get_pkg_or_base(name, PackageBase) - if not comment: - raise HTTPException(status_code=HTTPStatus.BAD_REQUEST) + validate.comment_raise_http_ex(comment) # If the provided comment is different than the record's version, # update the db record. @@ -304,9 +305,9 @@ async def pkgbase_comment_post( pkgbase = get_pkg_or_base(name, PackageBase) db_comment = get_pkgbase_comment(pkgbase, id) - if not comment: - raise HTTPException(status_code=HTTPStatus.BAD_REQUEST) - elif request.user.ID != db_comment.UsersID: + validate.comment_raise_http_ex(comment) + + if request.user.ID != db_comment.UsersID: raise HTTPException(status_code=HTTPStatus.UNAUTHORIZED) # If the provided comment is different than the record's version, @@ -602,6 +603,9 @@ async def pkgbase_disown_post( ): pkgbase = get_pkg_or_base(name, PackageBase) + if comments: + validate.comment_raise_http_ex(comments) + comaints = {c.User for c in pkgbase.comaintainers} approved = [pkgbase.Maintainer] + list(comaints) has_cred = request.user.has_credential(creds.PKGBASE_DISOWN, approved=approved) @@ -873,6 +877,7 @@ async def pkgbase_delete_post( ) if comments: + validate.comment_raise_http_ex(comments) # Update any existing deletion requests' ClosureComment. with db.begin(): requests = pkgbase.requests.filter( @@ -908,7 +913,9 @@ async def pkgbase_merge_get( # Perhaps additionally: bad_credential_status_code(creds.PKGBASE_MERGE). # Don't take these examples verbatim. We should find good naming. if not request.user.has_credential(creds.PKGBASE_MERGE): - context["errors"] = ["Only Trusted Users and Developers can merge packages."] + context["errors"] = [ + "Only Package Maintainers and Developers can merge packages." + ] status_code = HTTPStatus.UNAUTHORIZED return render_template( @@ -934,7 +941,9 @@ async def pkgbase_merge_post( # TODO: Lookup errors from credential instead of hardcoding them. if not request.user.has_credential(creds.PKGBASE_MERGE): - context["errors"] = ["Only Trusted Users and Developers can merge packages."] + context["errors"] = [ + "Only Package Maintainers and Developers can merge packages." + ] return render_template( request, "pkgbase/merge.html", context, status_code=HTTPStatus.UNAUTHORIZED ) @@ -962,6 +971,9 @@ async def pkgbase_merge_post( request, "pkgbase/merge.html", context, status_code=HTTPStatus.BAD_REQUEST ) + if comments: + validate.comment_raise_http_ex(comments) + with db.begin(): update_closure_comment(pkgbase, MERGE_ID, comments, target=target) diff --git a/aurweb/routers/rpc.py b/aurweb/routers/rpc.py index 1a960495..645e6b5a 100644 --- a/aurweb/routers/rpc.py +++ b/aurweb/routers/rpc.py @@ -23,6 +23,7 @@ OpenAPI Routes: OpenAPI example (version 5): /rpc/v5/info/my-package """ + import hashlib import re from http import HTTPStatus @@ -180,7 +181,7 @@ async def rpc_post( type: Optional[str] = Form(default=None), by: Optional[str] = Form(default=defaults.RPC_SEARCH_BY), arg: Optional[str] = Form(default=None), - args: Optional[list[str]] = Form(default=[], alias="arg[]"), + args: list[str] = Form(default=[], alias="arg[]"), callback: Optional[str] = Form(default=None), ): return await rpc_request(request, v, type, by, arg, args, callback) diff --git a/aurweb/routers/rss.py b/aurweb/routers/rss.py index 727d2b6a..180cbb23 100644 --- a/aurweb/routers/rss.py +++ b/aurweb/routers/rss.py @@ -2,7 +2,8 @@ from fastapi import APIRouter, Request from fastapi.responses import Response from feedgen.feed import FeedGenerator -from aurweb import db, filters +from aurweb import config, db, filters +from aurweb.cache import lambda_cache from aurweb.models import Package, PackageBase router = APIRouter() @@ -56,9 +57,11 @@ async def rss(request: Request): ) ) - feed = make_rss_feed(request, packages) - response = Response(feed, media_type="application/rss+xml") + # we use redis for caching the results of the feedgen + cache_expire = config.getint("cache", "expiry_time_rss", 300) + feed = lambda_cache("rss", lambda: make_rss_feed(request, packages), cache_expire) + response = Response(feed, media_type="application/rss+xml") return response @@ -76,7 +79,11 @@ async def rss_modified(request: Request): ) ) - feed = make_rss_feed(request, packages) - response = Response(feed, media_type="application/rss+xml") + # we use redis for caching the results of the feedgen + cache_expire = config.getint("cache", "expiry_time_rss", 300) + feed = lambda_cache( + "rss_modified", lambda: make_rss_feed(request, packages), cache_expire + ) + response = Response(feed, media_type="application/rss+xml") return response diff --git a/aurweb/routers/sso.py b/aurweb/routers/sso.py index e1356cfb..fb99edd6 100644 --- a/aurweb/routers/sso.py +++ b/aurweb/routers/sso.py @@ -80,7 +80,9 @@ def open_session(request, conn, user_id): conn.execute( Users.update() .where(Users.c.ID == user_id) - .values(LastLogin=int(time.time()), LastLoginIPAddress=request.client.host) + .values( + LastLogin=int(time.time()), LastLoginIPAddress=util.get_client_ip(request) + ) ) return sid @@ -110,7 +112,7 @@ async def authenticate( Receive an OpenID Connect ID token, validate it, then process it to create an new AUR session. """ - if is_ip_banned(conn, request.client.host): + if is_ip_banned(conn, util.get_client_ip(request)): _ = get_translator_for_request(request) raise HTTPException( status_code=HTTPStatus.FORBIDDEN, diff --git a/aurweb/schema.py b/aurweb/schema.py index d01d07c9..76fd6556 100644 --- a/aurweb/schema.py +++ b/aurweb/schema.py @@ -5,7 +5,6 @@ Changes here should always be accompanied by an Alembic migration, which can be usually be automatically generated. See `migrations/README` for details. """ - from sqlalchemy import ( CHAR, TIMESTAMP, @@ -184,6 +183,8 @@ PackageBases = Table( Index("BasesNumVotes", "NumVotes"), Index("BasesPackagerUID", "PackagerUID"), Index("BasesSubmitterUID", "SubmitterUID"), + Index("BasesSubmittedTS", "SubmittedTS"), + Index("BasesModifiedTS", "ModifiedTS"), mysql_engine="InnoDB", mysql_charset="utf8mb4", mysql_collate="utf8mb4_general_ci", @@ -526,8 +527,8 @@ PackageRequests = Table( # Vote information -TU_VoteInfo = Table( - "TU_VoteInfo", +VoteInfo = Table( + "VoteInfo", metadata, Column("ID", INTEGER(unsigned=True), primary_key=True), Column("Agenda", Text, nullable=False), @@ -546,7 +547,10 @@ TU_VoteInfo = Table( "Abstain", INTEGER(unsigned=True), nullable=False, server_default=text("'0'") ), Column( - "ActiveTUs", INTEGER(unsigned=True), nullable=False, server_default=text("'0'") + "ActiveUsers", + INTEGER(unsigned=True), + nullable=False, + server_default=text("'0'"), ), mysql_engine="InnoDB", mysql_charset="utf8mb4", @@ -555,10 +559,10 @@ TU_VoteInfo = Table( # Individual vote records -TU_Votes = Table( - "TU_Votes", +Votes = Table( + "Votes", metadata, - Column("VoteID", ForeignKey("TU_VoteInfo.ID", ondelete="CASCADE"), nullable=False), + Column("VoteID", ForeignKey("VoteInfo.ID", ondelete="CASCADE"), nullable=False), Column("UserID", ForeignKey("Users.ID", ondelete="CASCADE"), nullable=False), mysql_engine="InnoDB", ) diff --git a/aurweb/scripts/adduser.py b/aurweb/scripts/adduser.py index cf933c71..dc928b1f 100644 --- a/aurweb/scripts/adduser.py +++ b/aurweb/scripts/adduser.py @@ -6,6 +6,7 @@ See `aurweb-adduser --help` for documentation. Copyright (C) 2022 aurweb Development Team All Rights Reserved """ + import argparse import sys import traceback diff --git a/aurweb/scripts/config.py b/aurweb/scripts/config.py index 1d90f525..4da3296e 100644 --- a/aurweb/scripts/config.py +++ b/aurweb/scripts/config.py @@ -3,6 +3,7 @@ Perform an action on the aurweb config. When AUR_CONFIG_IMMUTABLE is set, the `set` action is noop. """ + import argparse import configparser import os diff --git a/aurweb/scripts/git_archive.py b/aurweb/scripts/git_archive.py index 4c909c18..8e47cb77 100644 --- a/aurweb/scripts/git_archive.py +++ b/aurweb/scripts/git_archive.py @@ -3,7 +3,7 @@ import importlib import os import sys import traceback -from datetime import datetime +from datetime import UTC, datetime import orjson import pygit2 @@ -60,7 +60,7 @@ def update_repository(repo: pygit2.Repository): except pygit2.GitError: base = [] - utcnow = datetime.utcnow() + utcnow = datetime.now(UTC) author = pygit2.Signature( config.get("git-archive", "author"), config.get("git-archive", "author-email"), diff --git a/aurweb/scripts/notify.py b/aurweb/scripts/notify.py index a85339ce..0e548be4 100755 --- a/aurweb/scripts/notify.py +++ b/aurweb/scripts/notify.py @@ -20,7 +20,7 @@ from aurweb.models.package_comment import PackageComment from aurweb.models.package_notification import PackageNotification from aurweb.models.package_request import PackageRequest from aurweb.models.request_type import RequestType -from aurweb.models.tu_vote import TUVote +from aurweb.models.vote import Vote logger = aur_logging.get_logger(__name__) @@ -744,11 +744,11 @@ class RequestCloseNotification(Notification): return headers -class TUVoteReminderNotification(Notification): +class VoteReminderNotification(Notification): def __init__(self, vote_id): self._vote_id = int(vote_id) - subquery = db.query(TUVote.UserID).filter(TUVote.VoteID == vote_id) + subquery = db.query(Vote.UserID).filter(Vote.VoteID == vote_id) query = ( db.query(User) .filter( @@ -769,7 +769,7 @@ class TUVoteReminderNotification(Notification): def get_subject(self, lang): return aurweb.l10n.translator.translate( - "TU Vote Reminder: Proposal {id}", lang + "Package Maintainer Vote Reminder: Proposal {id}", lang ).format(id=self._vote_id) def get_body(self, lang): @@ -780,7 +780,7 @@ class TUVoteReminderNotification(Notification): ).format(id=self._vote_id) def get_refs(self): - return (aur_location + "/tu/?id=" + str(self._vote_id),) + return (aur_location + "/package-maintainer/?id=" + str(self._vote_id),) def main(): @@ -799,7 +799,7 @@ def main(): "delete": DeleteNotification, "request-open": RequestOpenNotification, "request-close": RequestCloseNotification, - "tu-vote-reminder": TUVoteReminderNotification, + "vote-reminder": VoteReminderNotification, } with db.begin(): diff --git a/aurweb/scripts/rendercomment.py b/aurweb/scripts/rendercomment.py index 31f3fdd4..7ff477b7 100755 --- a/aurweb/scripts/rendercomment.py +++ b/aurweb/scripts/rendercomment.py @@ -121,6 +121,20 @@ class HeadingExtension(markdown.extensions.Extension): md.treeprocessors.register(HeadingTreeprocessor(md), "heading", 30) +class StrikethroughInlineProcessor(markdown.inlinepatterns.InlineProcessor): + def handleMatch(self, m, data): + el = Element("del") + el.text = m.group(1) + return el, m.start(0), m.end(0) + + +class StrikethroughExtension(markdown.extensions.Extension): + def extendMarkdown(self, md): + pattern = r"~~(.*?)~~" + processor = StrikethroughInlineProcessor(pattern, md) + md.inlinePatterns.register(processor, "del", 40) + + def save_rendered_comment(comment: PackageComment, html: str): with db.begin(): comment.RenderedComment = html @@ -137,11 +151,13 @@ def update_comment_render(comment: PackageComment) -> None: html = markdown.markdown( text, extensions=[ + "md_in_html", "fenced_code", LinkifyExtension(), FlysprayLinksExtension(), GitCommitsExtension(pkgbasename), HeadingExtension(), + StrikethroughExtension(), ], ) @@ -153,6 +169,9 @@ def update_comment_render(comment: PackageComment) -> None: "h6", "br", "hr", + "del", + "details", + "summary", ] html = bleach.clean(html, tags=allowed_tags) save_rendered_comment(comment, html) diff --git a/aurweb/scripts/tuvotereminder.py b/aurweb/scripts/votereminder.py similarity index 54% rename from aurweb/scripts/tuvotereminder.py rename to aurweb/scripts/votereminder.py index aa59d911..7d5c0c3b 100755 --- a/aurweb/scripts/tuvotereminder.py +++ b/aurweb/scripts/votereminder.py @@ -4,7 +4,7 @@ from sqlalchemy import and_ import aurweb.config from aurweb import db, time -from aurweb.models import TUVoteInfo +from aurweb.models import VoteInfo from aurweb.scripts import notify notify_cmd = aurweb.config.get("notifications", "notify-cmd") @@ -15,17 +15,17 @@ def main(): now = time.utcnow() - start = aurweb.config.getint("tuvotereminder", "range_start") + start = aurweb.config.getint("votereminder", "range_start") filter_from = now + start - end = aurweb.config.getint("tuvotereminder", "range_end") + end = aurweb.config.getint("votereminder", "range_end") filter_to = now + end - query = db.query(TUVoteInfo.ID).filter( - and_(TUVoteInfo.End >= filter_from, TUVoteInfo.End <= filter_to) + query = db.query(VoteInfo.ID).filter( + and_(VoteInfo.End >= filter_from, VoteInfo.End <= filter_to) ) for voteinfo in query: - notif = notify.TUVoteReminderNotification(voteinfo.ID) + notif = notify.VoteReminderNotification(voteinfo.ID) notif.send() diff --git a/aurweb/spawn.py b/aurweb/spawn.py index 442d89a9..cfad54e1 100644 --- a/aurweb/spawn.py +++ b/aurweb/spawn.py @@ -7,7 +7,6 @@ This module uses a global state, since you can’t open two servers with the sam configuration anyway. """ - import argparse import atexit import os @@ -52,46 +51,46 @@ def generate_nginx_config(): fastapi_bind = aurweb.config.get("fastapi", "bind_address") fastapi_host = fastapi_bind.split(":")[0] config_path = os.path.join(temporary_dir, "nginx.conf") - config = open(config_path, "w") - # We double nginx's braces because they conflict with Python's f-strings. - config.write( - f""" - events {{}} - daemon off; - error_log /dev/stderr info; - pid {os.path.join(temporary_dir, "nginx.pid")}; - http {{ - access_log /dev/stdout; - client_body_temp_path {os.path.join(temporary_dir, "client_body")}; - proxy_temp_path {os.path.join(temporary_dir, "proxy")}; - fastcgi_temp_path {os.path.join(temporary_dir, "fastcgi")}1 2; - uwsgi_temp_path {os.path.join(temporary_dir, "uwsgi")}; - scgi_temp_path {os.path.join(temporary_dir, "scgi")}; - server {{ - listen {fastapi_host}:{FASTAPI_NGINX_PORT}; - location / {{ - try_files $uri @proxy_to_app; - }} - location @proxy_to_app {{ - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_redirect off; - proxy_buffering off; - proxy_pass http://{fastapi_bind}; + with open(config_path, "w") as config: + # We double nginx's braces because they conflict with Python's f-strings. + config.write( + f""" + events {{}} + daemon off; + error_log /dev/stderr info; + pid {os.path.join(temporary_dir, "nginx.pid")}; + http {{ + access_log /dev/stdout; + client_body_temp_path {os.path.join(temporary_dir, "client_body")}; + proxy_temp_path {os.path.join(temporary_dir, "proxy")}; + fastcgi_temp_path {os.path.join(temporary_dir, "fastcgi")}1 2; + uwsgi_temp_path {os.path.join(temporary_dir, "uwsgi")}; + scgi_temp_path {os.path.join(temporary_dir, "scgi")}; + server {{ + listen {fastapi_host}:{FASTAPI_NGINX_PORT}; + location / {{ + try_files $uri @proxy_to_app; + }} + location @proxy_to_app {{ + proxy_set_header Host $http_host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_redirect off; + proxy_buffering off; + proxy_pass http://{fastapi_bind}; + }} }} }} - }} - """ - ) + """ + ) return config_path -def spawn_child(args): +def spawn_child(_args): """Open a subprocess and add it to the global state.""" if verbosity >= 1: - print(f":: Spawning {args}", file=sys.stderr) - children.append(subprocess.Popen(args)) + print(f":: Spawning {_args}", file=sys.stderr) + children.append(subprocess.Popen(_args)) def start(): @@ -172,17 +171,17 @@ def start(): ) -def _kill_children( - children: Iterable, exceptions: list[Exception] = [] -) -> list[Exception]: +def _kill_children(_children: Iterable, exceptions=None) -> list[Exception]: """ Kill each process found in `children`. - :param children: Iterable of child processes + :param _children: Iterable of child processes :param exceptions: Exception memo :return: `exceptions` """ - for p in children: + if exceptions is None: + exceptions = [] + for p in _children: try: p.terminate() if verbosity >= 1: @@ -192,17 +191,17 @@ def _kill_children( return exceptions -def _wait_for_children( - children: Iterable, exceptions: list[Exception] = [] -) -> list[Exception]: +def _wait_for_children(_children: Iterable, exceptions=None) -> list[Exception]: """ Wait for each process to end found in `children`. - :param children: Iterable of child processes + :param _children: Iterable of child processes :param exceptions: Exception memo :return: `exceptions` """ - for p in children: + if exceptions is None: + exceptions = [] + for p in _children: try: rc = p.wait() if rc != 0 and rc != -15: diff --git a/aurweb/statistics.py b/aurweb/statistics.py index f301b59c..00a5c151 100644 --- a/aurweb/statistics.py +++ b/aurweb/statistics.py @@ -3,7 +3,11 @@ from sqlalchemy import func from aurweb import config, db, time from aurweb.cache import db_count_cache, db_query_cache from aurweb.models import PackageBase, PackageRequest, RequestType, User -from aurweb.models.account_type import TRUSTED_USER_AND_DEV_ID, TRUSTED_USER_ID, USER_ID +from aurweb.models.account_type import ( + PACKAGE_MAINTAINER_AND_DEV_ID, + PACKAGE_MAINTAINER_ID, + USER_ID, +) from aurweb.models.package_request import ( ACCEPTED_ID, CLOSED_ID, @@ -22,7 +26,7 @@ HOMEPAGE_COUNTERS = [ "year_old_updated", "never_updated", "user_count", - "trusted_user_count", + "package_maintainer_count", ] REQUEST_COUNTERS = [ "total_requests", @@ -32,7 +36,7 @@ REQUEST_COUNTERS = [ "rejected_requests", ] PROMETHEUS_USER_COUNTERS = [ - ("trusted_user_count", "tu"), + ("package_maintainer_count", "package_maintainer"), ("regular_user_count", "user"), ] PROMETHEUS_PACKAGE_COUNTERS = [ @@ -92,12 +96,12 @@ class Statistics: # Users case "user_count": query = self.user_query - case "trusted_user_count": + case "package_maintainer_count": query = self.user_query.filter( User.AccountTypeID.in_( ( - TRUSTED_USER_ID, - TRUSTED_USER_AND_DEV_ID, + PACKAGE_MAINTAINER_ID, + PACKAGE_MAINTAINER_AND_DEV_ID, ) ) ) diff --git a/aurweb/templates.py b/aurweb/templates.py index d20cbe85..51b9d342 100644 --- a/aurweb/templates.py +++ b/aurweb/templates.py @@ -3,7 +3,6 @@ import functools import os from http import HTTPStatus from typing import Callable -from zoneinfo import ZoneInfoNotFoundError import jinja2 from fastapi import Request @@ -71,14 +70,12 @@ def make_context(request: Request, title: str, next: str = None): commit_url = aurweb.config.get_with_fallback("devel", "commit_url", None) commit_hash = aurweb.config.get_with_fallback("devel", "commit_hash", None) + max_chars_comment = aurweb.config.getint("options", "max_chars_comment", 5000) if commit_hash: # Shorten commit_hash to a short Git hash. commit_hash = commit_hash[:7] - try: - timezone = time.get_request_timezone(request) - except ZoneInfoNotFoundError: - timezone = DEFAULT_TIMEZONE + timezone = time.get_request_timezone(request) language = l10n.get_request_language(request) return { "request": request, @@ -96,6 +93,7 @@ def make_context(request: Request, title: str, next: str = None): "creds": aurweb.auth.creds, "next": next if next else request.url.path, "version": os.environ.get("COMMIT_HASH", aurweb.config.AURWEB_VERSION), + "max_chars_comment": max_chars_comment, } @@ -110,9 +108,7 @@ async def make_variable_context(request: Request, title: str, next: str = None): ) for k, v in to_copy.items(): - if k == "timezone": - context[k] = v if v in time.SUPPORTED_TIMEZONES else DEFAULT_TIMEZONE - else: + if k not in context: context[k] = v context["q"] = dict(request.query_params) diff --git a/aurweb/testing/__init__.py b/aurweb/testing/__init__.py index 4451eb3a..b9b1d263 100644 --- a/aurweb/testing/__init__.py +++ b/aurweb/testing/__init__.py @@ -51,8 +51,8 @@ def setup_test_db(*args): models.Session.__tablename__, models.SSHPubKey.__tablename__, models.Term.__tablename__, - models.TUVote.__tablename__, - models.TUVoteInfo.__tablename__, + models.Vote.__tablename__, + models.VoteInfo.__tablename__, models.User.__tablename__, ] diff --git a/aurweb/testing/prometheus.py b/aurweb/testing/prometheus.py new file mode 100644 index 00000000..d04190f6 --- /dev/null +++ b/aurweb/testing/prometheus.py @@ -0,0 +1,8 @@ +from aurweb import prometheus + + +def clear_metrics(): + prometheus.PACKAGES.clear() + prometheus.REQUESTS.clear() + prometheus.SEARCH_REQUESTS.clear() + prometheus.USERS.clear() diff --git a/aurweb/time.py b/aurweb/time.py index 505f17f5..2d5ddcc1 100644 --- a/aurweb/time.py +++ b/aurweb/time.py @@ -1,7 +1,6 @@ import zoneinfo from collections import OrderedDict -from datetime import datetime -from urllib.parse import unquote +from datetime import UTC, datetime from zoneinfo import ZoneInfo from fastapi import Request @@ -58,16 +57,20 @@ SUPPORTED_TIMEZONES = OrderedDict( ) -def get_request_timezone(request: Request): - """Get a request's timezone by its AURTZ cookie. We use the - configuration's [options] default_timezone otherwise. +def get_request_timezone(request: Request) -> str: + """Get a request's timezone from either query param or user settings. + We use the configuration's [options] default_timezone otherwise. @param request FastAPI request """ - default_tz = aurweb.config.get("options", "default_timezone") - if request.user.is_authenticated(): - default_tz = request.user.Timezone - return unquote(request.cookies.get("AURTZ", default_tz)) + request_tz = request.query_params.get("timezone") + if request_tz and request_tz in SUPPORTED_TIMEZONES: + return request_tz + elif ( + request.user.is_authenticated() and request.user.Timezone in SUPPORTED_TIMEZONES + ): + return request.user.Timezone + return aurweb.config.get_with_fallback("options", "default_timezone", "UTC") def now(timezone: str) -> datetime: @@ -86,4 +89,4 @@ def utcnow() -> int: :return: Current UTC timestamp """ - return int(datetime.utcnow().timestamp()) + return int(datetime.now(UTC).timestamp()) diff --git a/aurweb/users/validate.py b/aurweb/users/validate.py index 8fc68864..81484e90 100644 --- a/aurweb/users/validate.py +++ b/aurweb/users/validate.py @@ -6,6 +6,7 @@ out of form data from /account/register or /account/{username}/edit. All functions in this module raise aurweb.exceptions.ValidationError when encountering invalid criteria and return silently otherwise. """ + from fastapi import Request from sqlalchemy import and_ @@ -56,12 +57,9 @@ def invalid_password( ) -> None: if P: if not util.valid_password(P): - username_min_len = config.getint("options", "username_min_len") + passwd_min_len = config.getint("options", "passwd_min_len") raise ValidationError( - [ - _("Your password must be at least %s characters.") - % (username_min_len) - ] + [_("Your password must be at least %s characters.") % (passwd_min_len)] ) elif not C: raise ValidationError(["Please confirm your new password."]) @@ -70,7 +68,7 @@ def invalid_password( def is_banned(request: Request = None, **kwargs) -> None: - host = request.client.host + host = util.get_client_ip(request) exists = db.query(models.Ban, models.Ban.IPAddress == host).exists() if db.query(exists).scalar(): raise ValidationError( @@ -220,7 +218,7 @@ def invalid_account_type( raise ValidationError([error]) logger.debug( - f"Trusted User '{request.user.Username}' has " + f"Package Maintainer '{request.user.Username}' has " f"modified '{user.Username}' account's type to" f" {name}." ) diff --git a/aurweb/util.py b/aurweb/util.py index 3410e4d8..89efd852 100644 --- a/aurweb/util.py +++ b/aurweb/util.py @@ -208,3 +208,11 @@ def hash_query(query: Query): return sha1( str(query.statement.compile(compile_kwargs={"literal_binds": True})).encode() ).hexdigest() + + +def get_client_ip(request: fastapi.Request) -> str: + """ + Returns the client's IP address for a Request. + Falls back to 'testclient' if request.client is None + """ + return request.client.host if request.client else "testclient" diff --git a/ci/tf/.terraform.lock.hcl b/ci/tf/.terraform.lock.hcl new file mode 100644 index 00000000..aa5501c4 --- /dev/null +++ b/ci/tf/.terraform.lock.hcl @@ -0,0 +1,61 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/dns" { + version = "3.3.2" + hashes = [ + "h1:HjskPLRqmCw8Q/kiSuzti3iJBSpcAvcBFdlwFFQuoDE=", + "zh:05d2d50e301318362a4a82e6b7a9734ace07bc01abaaa649c566baf98814755f", + "zh:1e9fd1c3bfdda777e83e42831dd45b7b9e794250a0f351e5fd39762e8a0fe15b", + "zh:40e715fc7a2ede21f919567249b613844692c2f8a64f93ee64e5b68bae7ac2a2", + "zh:454d7aa83000a6e2ba7a7bfde4bcf5d7ed36298b22d760995ca5738ab02ee468", + "zh:46124ded51b4153ad90f12b0305fdbe0c23261b9669aa58a94a31c9cca2f4b19", + "zh:55a4f13d20f73534515a6b05701abdbfc54f4e375ba25b2dffa12afdad20e49d", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:7903b1ceb8211e2b8c79290e2e70906a4b88f4fba71c900eb3a425ce12f1716a", + "zh:b79fc4f444ef7a2fd7111a80428c070ad824f43a681699e99ab7f83074dfedbd", + "zh:ca9f45e0c4cb94e7d62536c226024afef3018b1de84f1ea4608b51bcd497a2a0", + "zh:ddc8bd894559d7d176e0ceb0bb1ae266519b01b315362ebfee8327bb7e7e5fa8", + "zh:e77334c0794ef8f9354b10e606040f6b0b67b373f5ff1db65bddcdd4569b428b", + ] +} + +provider "registry.terraform.io/hashicorp/tls" { + version = "4.0.4" + hashes = [ + "h1:pe9vq86dZZKCm+8k1RhzARwENslF3SXb9ErHbQfgjXU=", + "zh:23671ed83e1fcf79745534841e10291bbf34046b27d6e68a5d0aab77206f4a55", + "zh:45292421211ffd9e8e3eb3655677700e3c5047f71d8f7650d2ce30242335f848", + "zh:59fedb519f4433c0fdb1d58b27c210b27415fddd0cd73c5312530b4309c088be", + "zh:5a8eec2409a9ff7cd0758a9d818c74bcba92a240e6c5e54b99df68fff312bbd5", + "zh:5e6a4b39f3171f53292ab88058a59e64825f2b842760a4869e64dc1dc093d1fe", + "zh:810547d0bf9311d21c81cc306126d3547e7bd3f194fc295836acf164b9f8424e", + "zh:824a5f3617624243bed0259d7dd37d76017097dc3193dac669be342b90b2ab48", + "zh:9361ccc7048be5dcbc2fafe2d8216939765b3160bd52734f7a9fd917a39ecbd8", + "zh:aa02ea625aaf672e649296bce7580f62d724268189fe9ad7c1b36bb0fa12fa60", + "zh:c71b4cd40d6ec7815dfeefd57d88bc592c0c42f5e5858dcc88245d371b4b8b1e", + "zh:dabcd52f36b43d250a3d71ad7abfa07b5622c69068d989e60b79b2bb4f220316", + "zh:f569b65999264a9416862bca5cd2a6177d94ccb0424f3a4ef424428912b9cb3c", + ] +} + +provider "registry.terraform.io/hetznercloud/hcloud" { + version = "1.42.0" + hashes = [ + "h1:cr9lh26H3YbWSHb7OUnCoYw169cYO3Cjpt3yPnRhXS0=", + "zh:153b5f39d780e9a18bc1ea377d872647d328d943813cbd25d3d20863f8a37782", + "zh:35b9e95760c58cca756e34ad5f4138ac6126aa3e8c41b4a0f1d5dc9ee5666c73", + "zh:47a3cdbce982f2b4e17f73d4934bdb3e905a849b36fb59b80f87d852496ed049", + "zh:6a718c244c2ba300fbd43791661a061ad1ab16225ef3e8aeaa3db8c9eff12c85", + "zh:a2cbfc95c5e2c9422ed0a7b6292192c38241220d5b7813c678f937ab3ef962ae", + "zh:b837e118e08fd36aa8be48af7e9d0d3d112d2680c79cfc71cfe2501fb40dbefa", + "zh:bf66db8c680e18b77e16dc1f20ed1cdcc7876bfb7848c320ccb86f0fb80661ed", + "zh:c1ad80bbe48dc8a272a02dcdb4b12f019606f445606651c01e561b9d72d816b1", + "zh:d4e616701128ad14a6b5a427b0e9145ece4cad02aa3b5f9945c6d0b9ada8ab70", + "zh:d9d01f727037d028720100a5bc9fd213cb01e63e4b439a16f2f482c147976530", + "zh:dea047ee4d679370d4376fb746c4b959bf51dd06047c1c2656b32789c2433643", + "zh:e5ad7a3c556894bd40b28a874e7d2f6924876fa75fa443136a7d6ab9a00abbaa", + "zh:edf6e7e129157bd45e3da4a330d1ace17a336d417c3b77c620f302d440c368e8", + "zh:f610bc729866d58da9cffa4deae34dbfdba96655e855a87c6bb2cb7b35a8961c", + ] +} diff --git a/ci/tf/main.tf b/ci/tf/main.tf new file mode 100644 index 00000000..b149a621 --- /dev/null +++ b/ci/tf/main.tf @@ -0,0 +1,67 @@ +terraform { + backend "http" { + } +} + +provider "hcloud" { + token = var.hcloud_token +} + +provider "dns" { + update { + server = var.dns_server + key_name = var.dns_tsig_key + key_algorithm = var.dns_tsig_algorithm + key_secret = var.dns_tsig_secret + } +} + +resource "tls_private_key" "this" { + algorithm = "ED25519" +} + +resource "hcloud_ssh_key" "this" { + name = var.name + public_key = tls_private_key.this.public_key_openssh +} + +data "hcloud_image" "this" { + with_selector = "custom_image=archlinux" + most_recent = true + with_status = ["available"] +} + +resource "hcloud_server" "this" { + name = var.name + image = data.hcloud_image.this.id + server_type = var.server_type + datacenter = var.datacenter + ssh_keys = [hcloud_ssh_key.this.name] + + public_net { + ipv4_enabled = true + ipv6_enabled = true + } +} + +resource "hcloud_rdns" "this" { + for_each = { ipv4 : hcloud_server.this.ipv4_address, ipv6 : hcloud_server.this.ipv6_address } + + server_id = hcloud_server.this.id + ip_address = each.value + dns_ptr = "${var.name}.${var.dns_zone}" +} + +resource "dns_a_record_set" "this" { + zone = "${var.dns_zone}." + name = var.name + addresses = [hcloud_server.this.ipv4_address] + ttl = 300 +} + +resource "dns_aaaa_record_set" "this" { + zone = "${var.dns_zone}." + name = var.name + addresses = [hcloud_server.this.ipv6_address] + ttl = 300 +} diff --git a/ci/tf/terraform.tfvars b/ci/tf/terraform.tfvars new file mode 100644 index 00000000..14818592 --- /dev/null +++ b/ci/tf/terraform.tfvars @@ -0,0 +1,4 @@ +server_type = "cpx11" +datacenter = "fsn1-dc14" +dns_server = "redirect.archlinux.org" +dns_zone = "sandbox.archlinux.page" diff --git a/ci/tf/variables.tf b/ci/tf/variables.tf new file mode 100644 index 00000000..a4e710ee --- /dev/null +++ b/ci/tf/variables.tf @@ -0,0 +1,36 @@ +variable "hcloud_token" { + type = string + sensitive = true +} + +variable "dns_server" { + type = string +} + +variable "dns_tsig_key" { + type = string +} + +variable "dns_tsig_algorithm" { + type = string +} + +variable "dns_tsig_secret" { + type = string +} + +variable "dns_zone" { + type = string +} + +variable "name" { + type = string +} + +variable "server_type" { + type = string +} + +variable "datacenter" { + type = string +} diff --git a/ci/tf/versions.tf b/ci/tf/versions.tf new file mode 100644 index 00000000..2c72215a --- /dev/null +++ b/ci/tf/versions.tf @@ -0,0 +1,13 @@ +terraform { + required_providers { + tls = { + source = "hashicorp/tls" + } + hcloud = { + source = "hetznercloud/hcloud" + } + dns = { + source = "hashicorp/dns" + } + } +} diff --git a/cliff.toml b/cliff.toml index 12cd7e0b..3d3cb1c7 100644 --- a/cliff.toml +++ b/cliff.toml @@ -47,6 +47,6 @@ commit_parsers = [ # filter out the commits that are not matched by commit parsers filter_commits = false # glob pattern for matching git tags -tag_pattern = "*[0-9]*" +tag_pattern = "v[0-9]." # regex for skipping tags skip_tags = "v0.1.0-beta.1" diff --git a/conf/config.defaults b/conf/config.defaults index ab0a9b67..c9a6899f 100644 --- a/conf/config.defaults +++ b/conf/config.defaults @@ -49,6 +49,8 @@ salt_rounds = 12 redis_address = redis://localhost ; Toggles traceback display in templates/errors/500.html. traceback = 0 +; Maximum number of characters for a comment +max_chars_comment = 5000 [ratelimit] request_limit = 4000 @@ -158,10 +160,10 @@ commit_url = https://gitlab.archlinux.org/archlinux/aurweb/-/commits/%s ; sed -r "s/^;?(commit_hash) =.*$/\1 = $(git rev-parse HEAD)/" config ;commit_hash = 1234567 -[tuvotereminder] -; Offsets used to determine when TUs should be reminded about +[votereminder] +; Offsets used to determine when Package Maintainers should be reminded about ; votes that they should make. -; Reminders will be sent out for all votes that a TU has not yet +; Reminders will be sent out for all votes that a Package Maintainer has not yet ; voted on based on `now + range_start <= End <= now + range_end`. range_start = 500 range_end = 172800 @@ -173,3 +175,8 @@ max_search_entries = 50000 expiry_time_search = 600 ; number of seconds after a cache entry for statistics queries expires, default is 5 minutes expiry_time_statistics = 300 +; number of seconds after a cache entry for rss queries expires, default is 5 minutes +expiry_time_rss = 300 + +[tracing] +otlp_endpoint = http://localhost:4318/v1/traces diff --git a/conf/config.dev b/conf/config.dev index f3b0ee21..716cafa2 100644 --- a/conf/config.dev +++ b/conf/config.dev @@ -73,3 +73,6 @@ pkgnames-repo = pkgnames.git [aurblup] db-path = YOUR_AUR_ROOT/aurblup/ + +[tracing] +otlp_endpoint = http://tempo:4318/v1/traces diff --git a/doc/git-interface.txt b/doc/git-interface.txt index 028ffd0d..39c2b487 100644 --- a/doc/git-interface.txt +++ b/doc/git-interface.txt @@ -35,7 +35,7 @@ usually points to the git-serve program. If SSH has been configured to pass on the AUR_OVERWRITE environment variable (via SendEnv, see ssh_config(5) for details) and the user's account is a -registered Trusted User or Developer, this will be passed on to the git-update +registered Package Maintainer or Developer, this will be passed on to the git-update program in order to enable a non-fast-forward push. The INSTALL file in the top-level directory contains detailed instructions on @@ -70,8 +70,8 @@ The Update Hook: git-update The Git update hook, called git-update, performs several subtasks: * Prevent from creating branches or tags other than master. -* Deny non-fast-forwards, except for Trusted Users and Developers. -* Deny blacklisted packages, except for Trusted Users and Developers. +* Deny non-fast-forwards, except for Package Maintainers and Developers. +* Deny blacklisted packages, except for Package Maintainers and Developers. * Verify each new commit (validate meta data, impose file size limits, ...) * Update package base information and package information in the database. * Update the named branch and the namespaced HEAD ref of the package. @@ -109,7 +109,7 @@ is also recommended to disable automatic garbage collection by setting receive.autogc to false. Remember to periodically run `git gc` manually or setup a maintenance script which initiates the garbage collection if you follow this advice. For gc.pruneExpire, we recommend "3.months.ago", such that commits -that became unreachable by TU intervention are kept for a while. +that became unreachable by Package Maintainer intervention are kept for a while. Script Wrappers (poetry) ------------------------ diff --git a/doc/i18n.txt b/doc/i18n.md similarity index 69% rename from doc/i18n.txt rename to doc/i18n.md index 44fb0f1f..d81c467d 100644 --- a/doc/i18n.txt +++ b/doc/i18n.md @@ -3,9 +3,9 @@ aurweb Translation This document describes how to create and maintain aurweb translations. -Creating an aurweb translation requires a Transifex (http://www.transifex.com/) +Creating an aurweb translation requires a Transifex (https://app.transifex.com/) account. You will need to register with a translation team on the aurweb -project page (http://www.transifex.com/projects/p/aurweb/). +project page (https://app.transifex.com/lfleischer/aurweb/). Creating a New Translation @@ -21,23 +21,23 @@ strings for the translation to be usable, and it may have to be disabled. 1. Check out the aurweb source using git: -$ git clone https://gitlab.archlinux.org/archlinux/aurweb.git aurweb-git + $ git clone https://gitlab.archlinux.org/archlinux/aurweb.git aurweb-git -2. Go into the "po/" directory in the aurweb source and run msginit(1) to +2. Go into the "po/" directory in the aurweb source and run [msginit(1)][msginit] to create a initial translation file from our translation catalog: -$ cd aurweb-git -$ git checkout master -$ git pull -$ cd po -$ msginit -l -o .po -i aurweb.pot + $ cd aurweb-git + $ git checkout master + $ git pull + $ cd po + $ msginit -l -o .po -i aurweb.pot 3. Use some editor or a translation helper like poedit to add translations: -$ poedit .po + $ poedit .po 5. If you have a working aurweb setup, add a line for the new translation in - "web/lib/config.inc.php.proto" and test if everything looks right. + "po/Makefile" and test if everything looks right. 6. Upload the newly created ".po" file to Transifex. If you don't like the web interface, you can also use transifex-client to do that (see below). @@ -49,13 +49,15 @@ Updating an Existing Translation 1. Download current translation files from Transifex. You can also do this using transifex-client which is available through the AUR: -$ tx pull -a + $ tx pull -a 2. Update the existing translation file using an editor or a tool like poedit: -$ poedit po/.po + $ poedit po/.po 3. Push the updated translation file back to Transifex. Using transifex-client, this works as follows: -$ tx push -r aurweb.aurwebpot -t -l + $ tx push -r aurweb.aurwebpot -t -l + +[msginit]: https://man.archlinux.org/man/msginit.1 diff --git a/doc/maintenance.txt b/doc/maintenance.txt index 39642f21..68766402 100644 --- a/doc/maintenance.txt +++ b/doc/maintenance.txt @@ -12,8 +12,8 @@ package maintenance from the command-line. More details can be found in The web interface can be used to browse packages, view package details, manage aurweb accounts, add comments, vote for packages, flag packages, and submit -requests. Trusted Users can update package maintainers and delete/merge -packages. The web interface also includes an area for Trusted Users to post +requests. Package Maintainers can update package maintainers and delete/merge +packages. The web interface also includes an area for Package Maintainers to post AUR-related proposals and vote on them. The RPC interface can be used to query package information via HTTP. @@ -62,8 +62,8 @@ computations and clean up the database: the official repositories. It is also used to prevent users from uploading packages that are in the official repositories already. -* aurweb-tuvotereminder sends out reminders to TUs if the voting period for a - TU proposal ends soon. +* aurweb-votereminder sends out reminders if the voting period for a + Package Maintainer proposal ends soon. * aurweb-popupdate is used to recompute the popularity score of packages. @@ -107,13 +107,13 @@ usually scheduled using Cron. The current setup is: 2 */2 * * * poetry run aurweb-aurblup 3 */2 * * * poetry run aurweb-pkgmaint 4 */2 * * * poetry run aurweb-usermaint -5 */12 * * * poetry run aurweb-tuvotereminder +5 */12 * * * poetry run aurweb-votereminder ---- Advanced Administrative Features -------------------------------- -Trusted Users can set the AUR_OVERWRITE environment variable to enable +Package Maintainers can set the AUR_OVERWRITE environment variable to enable non-fast-forward pushes to the Git repositories. This feature is documented in `doc/git-interface.txt`. diff --git a/docker-compose.aur-dev.yml b/docker-compose.aur-dev.yml index 1763f427..265ba6db 100644 --- a/docker-compose.aur-dev.yml +++ b/docker-compose.aur-dev.yml @@ -1,5 +1,4 @@ -version: "3.8" - +--- services: ca: volumes: diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 6580de30..b0961521 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -1,16 +1,10 @@ -version: "3.8" - +--- services: ca: volumes: - ./data:/data - step:/root/.step - mariadb_init: - depends_on: - mariadb: - condition: service_healthy - git: volumes: - git_data:/aurweb/aur.git @@ -21,9 +15,6 @@ services: - git_data:/aurweb/aur.git - ./data:/data - smartgit_run:/var/run/smartgit - depends_on: - mariadb: - condition: service_healthy fastapi: volumes: diff --git a/docker-compose.yml b/docker-compose.yml index 0973fc0e..ad578523 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,4 @@ +--- # # Docker service definitions for the aurweb project. # @@ -16,8 +17,6 @@ # # Copyright (C) 2021 aurweb Development # All Rights Reserved. -version: "3.8" - services: aurweb-image: build: . @@ -49,7 +48,7 @@ services: image: aurweb:latest init: true entrypoint: /docker/mariadb-entrypoint.sh - command: /usr/bin/mysqld_safe --datadir=/var/lib/mysql + command: /usr/bin/mariadbd-safe --datadir=/var/lib/mysql ports: # This will expose mariadbd on 127.0.0.1:13306 in the host. # Ex: `mysql -uaur -paur -h 127.0.0.1 -P 13306 aurweb` @@ -81,7 +80,7 @@ services: environment: - MARIADB_PRIVILEGED=1 entrypoint: /docker/mariadb-entrypoint.sh - command: /usr/bin/mysqld_safe --datadir=/var/lib/mysql + command: /usr/bin/mariadbd-safe --datadir=/var/lib/mysql ports: # This will expose mariadbd on 127.0.0.1:13307 in the host. # Ex: `mysql -uaur -paur -h 127.0.0.1 -P 13306 aurweb` @@ -107,8 +106,10 @@ services: test: "bash /docker/health/sshd.sh" interval: 3s depends_on: + mariadb: + condition: service_healthy mariadb_init: - condition: service_started + condition: service_completed_successfully volumes: - mariadb_run:/var/run/mysqld @@ -122,6 +123,9 @@ services: healthcheck: test: "bash /docker/health/smartgit.sh" interval: 3s + depends_on: + mariadb: + condition: service_healthy cgit-fastapi: image: aurweb:latest @@ -152,8 +156,10 @@ services: entrypoint: /docker/cron-entrypoint.sh command: /docker/scripts/run-cron.sh depends_on: + mariadb: + condition: service_healthy mariadb_init: - condition: service_started + condition: service_completed_successfully volumes: - ./aurweb:/aurweb/aurweb - mariadb_run:/var/run/mysqld @@ -182,6 +188,12 @@ services: condition: service_healthy cron: condition: service_started + mariadb: + condition: service_healthy + mariadb_init: + condition: service_completed_successfully + tempo: + condition: service_healthy volumes: - archives:/var/lib/aurweb/archives - mariadb_run:/var/run/mysqld @@ -281,6 +293,56 @@ services: - ./test:/aurweb/test - ./templates:/aurweb/templates + grafana: + # TODO: check if we need init: true + image: grafana/grafana:11.1.3 + environment: + - GF_AUTH_ANONYMOUS_ENABLED=true + - GF_AUTH_ANONYMOUS_ORG_ROLE=Admin + - GF_AUTH_DISABLE_LOGIN_FORM=true + - GF_LOG_LEVEL=warn + # check if depends ar ecorrect, does stopping or restarting a child exit grafana? + depends_on: + prometheus: + condition: service_healthy + tempo: + condition: service_healthy + ports: + - "127.0.0.1:3000:3000" + volumes: + - ./docker/config/grafana/datasources:/etc/grafana/provisioning/datasources + + prometheus: + image: prom/prometheus:latest + command: + - --config.file=/etc/prometheus/prometheus.yml + - --web.enable-remote-write-receiver + - --web.listen-address=prometheus:9090 + healthcheck: + # TODO: check if there is a status route + test: "sh /docker/health/prometheus.sh" + interval: 3s + ports: + - "127.0.0.1:9090:9090" + volumes: + - ./docker/config/prometheus.yml:/etc/prometheus/prometheus.yml + - ./docker/health/prometheus.sh:/docker/health/prometheus.sh + + tempo: + image: grafana/tempo:2.5.0 + command: + - -config.file=/etc/tempo/config.yml + healthcheck: + # TODO: check if there is a status route + test: "sh /docker/health/tempo.sh" + interval: 3s + ports: + - "127.0.0.1:3200:3200" + - "127.0.0.1:4318:4318" + volumes: + - ./docker/config/tempo.yml:/etc/tempo/config.yml + - ./docker/health/tempo.sh:/docker/health/tempo.sh + volumes: mariadb_test_run: {} mariadb_run: {} # Share /var/run/mysqld/mysqld.sock diff --git a/docker/README.md b/docker/README.md index 51e485f6..e473582b 100644 --- a/docker/README.md +++ b/docker/README.md @@ -47,7 +47,7 @@ Luckily such data can be generated. docker compose exec fastapi /bin/bash pacman -S words fortune-mod ./schema/gendummydata.py dummy.sql -mysql aurweb < dummy.sql +mariadb aurweb < dummy.sql ``` The generation script may prompt you to install other Arch packages before it diff --git a/docker/config/aurweb-cron b/docker/config/aurweb-cron index 21fd35dc..a8e80ad6 100644 --- a/docker/config/aurweb-cron +++ b/docker/config/aurweb-cron @@ -4,4 +4,4 @@ AUR_CONFIG='/aurweb/conf/config' */2 * * * * bash -c 'aurweb-pkgmaint' */2 * * * * bash -c 'aurweb-usermaint' */2 * * * * bash -c 'aurweb-popupdate' -*/12 * * * * bash -c 'aurweb-tuvotereminder' +*/12 * * * * bash -c 'aurweb-votereminder' diff --git a/docker/config/grafana/datasources/datasource.yml b/docker/config/grafana/datasources/datasource.yml new file mode 100644 index 00000000..60a56561 --- /dev/null +++ b/docker/config/grafana/datasources/datasource.yml @@ -0,0 +1,42 @@ +--- +apiVersion: 1 + +deleteDatasources: + - name: Prometheus + - name: Tempo + +datasources: + - name: Prometheus + type: prometheus + uid: prometheus + access: proxy + url: http://prometheus:9090 + orgId: 1 + editable: false + jsonData: + timeInterval: 1m + - name: Tempo + type: tempo + uid: tempo + access: proxy + url: http://tempo:3200 + orgId: 1 + editable: false + jsonData: + tracesToMetrics: + datasourceUid: 'prometheus' + spanStartTimeShift: '1h' + spanEndTimeShift: '-1h' + serviceMap: + datasourceUid: 'prometheus' + nodeGraph: + enabled: true + search: + hide: false + traceQuery: + timeShiftEnabled: true + spanStartTimeShift: '1h' + spanEndTimeShift: '-1h' + spanBar: + type: 'Tag' + tag: 'http.path' diff --git a/docker/config/prometheus.yml b/docker/config/prometheus.yml new file mode 100644 index 00000000..6f286dd8 --- /dev/null +++ b/docker/config/prometheus.yml @@ -0,0 +1,15 @@ +--- +global: + scrape_interval: 60s + +scrape_configs: + - job_name: tempo + static_configs: + - targets: ['tempo:3200'] + labels: + instance: tempo + - job_name: aurweb + static_configs: + - targets: ['fastapi:8000'] + labels: + instance: aurweb diff --git a/docker/config/tempo.yml b/docker/config/tempo.yml new file mode 100644 index 00000000..a94ae817 --- /dev/null +++ b/docker/config/tempo.yml @@ -0,0 +1,54 @@ +--- +stream_over_http_enabled: true +server: + http_listen_address: tempo + http_listen_port: 3200 + log_level: info + +query_frontend: + search: + duration_slo: 5s + throughput_bytes_slo: 1.073741824e+09 + trace_by_id: + duration_slo: 5s + +distributor: + receivers: + otlp: + protocols: + http: + endpoint: tempo:4318 + log_received_spans: + enabled: false + metric_received_spans: + enabled: false + +ingester: + max_block_duration: 5m + +compactor: + compaction: + block_retention: 1h + +metrics_generator: + registry: + external_labels: + source: tempo + storage: + path: /tmp/tempo/generator/wal + remote_write: + - url: http://prometheus:9090/api/v1/write + send_exemplars: true + traces_storage: + path: /tmp/tempo/generator/traces + +storage: + trace: + backend: local + wal: + path: /tmp/tempo/wal + local: + path: /tmp/tempo/blocks + +overrides: + metrics_generator_processors: [service-graphs, span-metrics, local-blocks] diff --git a/docker/health/mariadb.sh b/docker/health/mariadb.sh index cbae37bd..a75089ad 100755 --- a/docker/health/mariadb.sh +++ b/docker/health/mariadb.sh @@ -1,2 +1,2 @@ #!/bin/bash -exec mysqladmin ping --silent +exec mariadb-admin ping --silent diff --git a/docker/health/prometheus.sh b/docker/health/prometheus.sh new file mode 100755 index 00000000..4917655f --- /dev/null +++ b/docker/health/prometheus.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec wget -q http://prometheus:9090/status -O /dev/null diff --git a/docker/health/tempo.sh b/docker/health/tempo.sh new file mode 100755 index 00000000..cd316662 --- /dev/null +++ b/docker/health/tempo.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec wget -q http://tempo:3200/status -O /dev/null diff --git a/docker/mariadb-entrypoint.sh b/docker/mariadb-entrypoint.sh index a6fb9a76..432b591b 100755 --- a/docker/mariadb-entrypoint.sh +++ b/docker/mariadb-entrypoint.sh @@ -6,8 +6,8 @@ MYSQL_DATA=/var/lib/mysql mariadb-install-db --user=mysql --basedir=/usr --datadir=$MYSQL_DATA # Start it up. -mysqld_safe --datadir=$MYSQL_DATA --skip-networking & -while ! mysqladmin ping 2>/dev/null; do +mariadbd-safe --datadir=$MYSQL_DATA --skip-networking & +while ! mariadb-admin ping 2>/dev/null; do sleep 1s done @@ -15,17 +15,17 @@ done DATABASE="aurweb" # Persistent database for fastapi. echo "Taking care of primary database '${DATABASE}'..." -mysql -u root -e "CREATE USER IF NOT EXISTS 'aur'@'localhost' IDENTIFIED BY 'aur';" -mysql -u root -e "CREATE USER IF NOT EXISTS 'aur'@'%' IDENTIFIED BY 'aur';" -mysql -u root -e "CREATE DATABASE IF NOT EXISTS $DATABASE;" +mariadb -u root -e "CREATE USER IF NOT EXISTS 'aur'@'localhost' IDENTIFIED BY 'aur';" +mariadb -u root -e "CREATE USER IF NOT EXISTS 'aur'@'%' IDENTIFIED BY 'aur';" +mariadb -u root -e "CREATE DATABASE IF NOT EXISTS $DATABASE;" -mysql -u root -e "CREATE USER IF NOT EXISTS 'aur'@'%' IDENTIFIED BY 'aur';" -mysql -u root -e "GRANT ALL ON aurweb.* TO 'aur'@'localhost';" -mysql -u root -e "GRANT ALL ON aurweb.* TO 'aur'@'%';" +mariadb -u root -e "CREATE USER IF NOT EXISTS 'aur'@'%' IDENTIFIED BY 'aur';" +mariadb -u root -e "GRANT ALL ON aurweb.* TO 'aur'@'localhost';" +mariadb -u root -e "GRANT ALL ON aurweb.* TO 'aur'@'%';" -mysql -u root -e "CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'aur';" -mysql -u root -e "GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;" +mariadb -u root -e "CREATE USER IF NOT EXISTS 'root'@'%' IDENTIFIED BY 'aur';" +mariadb -u root -e "GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;" -mysqladmin -uroot shutdown +mariadb-admin -uroot shutdown exec "$@" diff --git a/docker/scripts/install-deps.sh b/docker/scripts/install-deps.sh index 7aa225fa..0ad8937f 100755 --- a/docker/scripts/install-deps.sh +++ b/docker/scripts/install-deps.sh @@ -13,7 +13,7 @@ pacman -Sy --noconfirm --noprogressbar archlinux-keyring # Install other OS dependencies. pacman -Syu --noconfirm --noprogressbar \ - --cachedir .pkg-cache git gpgme nginx redis openssh \ + git gpgme nginx redis openssh \ mariadb mariadb-libs cgit-aurweb uwsgi uwsgi-plugin-cgi \ python-pip pyalpm python-srcinfo curl libeatmydata cronie \ python-poetry python-poetry-core step-cli step-ca asciidoc \ diff --git a/gunicorn.conf.py b/gunicorn.conf.py new file mode 100644 index 00000000..4f1c3a8c --- /dev/null +++ b/gunicorn.conf.py @@ -0,0 +1,7 @@ +from prometheus_client import multiprocess + + +def child_exit(server, worker): # pragma: no cover + """This function is required for gunicorn customization + of prometheus multiprocessing.""" + multiprocess.mark_process_dead(worker.pid) diff --git a/migrations/versions/38e5b9982eea_add_indicies_on_packagebases_for_rss_.py b/migrations/versions/38e5b9982eea_add_indicies_on_packagebases_for_rss_.py new file mode 100644 index 00000000..e6d5f275 --- /dev/null +++ b/migrations/versions/38e5b9982eea_add_indicies_on_packagebases_for_rss_.py @@ -0,0 +1,29 @@ +"""add indices on PackageBases for RSS order by + +Revision ID: 38e5b9982eea +Revises: 7d65d35fae45 +Create Date: 2024-08-03 01:35:39.104283 + +""" + +from alembic import op + +# revision identifiers, used by Alembic. +revision = "38e5b9982eea" +down_revision = "7d65d35fae45" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_index("BasesModifiedTS", "PackageBases", ["ModifiedTS"], unique=False) + op.create_index("BasesSubmittedTS", "PackageBases", ["SubmittedTS"], unique=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_index("BasesSubmittedTS", table_name="PackageBases") + op.drop_index("BasesModifiedTS", table_name="PackageBases") + # ### end Alembic commands ### diff --git a/migrations/versions/56e2ce8e2ffa_utf8mb4_charset_and_collation.py b/migrations/versions/56e2ce8e2ffa_utf8mb4_charset_and_collation.py index 5a9d5f39..5cbf6de8 100644 --- a/migrations/versions/56e2ce8e2ffa_utf8mb4_charset_and_collation.py +++ b/migrations/versions/56e2ce8e2ffa_utf8mb4_charset_and_collation.py @@ -5,6 +5,7 @@ Revises: ef39fcd6e1cd Create Date: 2021-05-17 14:23:00.008479 """ + from alembic import op import aurweb.config diff --git a/migrations/versions/6441d3b65270_add_popularityupdated_to_packagebase.py b/migrations/versions/6441d3b65270_add_popularityupdated_to_packagebase.py index afa87687..0c817bad 100644 --- a/migrations/versions/6441d3b65270_add_popularityupdated_to_packagebase.py +++ b/migrations/versions/6441d3b65270_add_popularityupdated_to_packagebase.py @@ -5,6 +5,7 @@ Revises: d64e5571bc8d Create Date: 2022-09-22 18:08:03.280664 """ + from alembic import op from sqlalchemy.exc import OperationalError diff --git a/migrations/versions/6a64dd126029_rename_tu_to_package_maintainer.py b/migrations/versions/6a64dd126029_rename_tu_to_package_maintainer.py new file mode 100644 index 00000000..489d6e6c --- /dev/null +++ b/migrations/versions/6a64dd126029_rename_tu_to_package_maintainer.py @@ -0,0 +1,38 @@ +"""Rename TU to Package Maintainer + +Revision ID: 6a64dd126029 +Revises: c5a6a9b661a0 +Create Date: 2023-09-01 13:48:15.315244 + +""" + +from aurweb import db +from aurweb.models import AccountType + +# revision identifiers, used by Alembic. +revision = "6a64dd126029" +down_revision = "c5a6a9b661a0" +branch_labels = None +depends_on = None + +# AccountTypes +# ID 2 -> Trusted User / Package Maintainer +# ID 4 -> Trusted User & Developer / Package Maintainer & Developer + + +def upgrade(): + with db.begin(): + tu = db.query(AccountType).filter(AccountType.ID == 2).first() + tudev = db.query(AccountType).filter(AccountType.ID == 4).first() + + tu.AccountType = "Package Maintainer" + tudev.AccountType = "Package Maintainer & Developer" + + +def downgrade(): + with db.begin(): + pm = db.query(AccountType).filter(AccountType.ID == 2).first() + pmdev = db.query(AccountType).filter(AccountType.ID == 4).first() + + pm.AccountType = "Trusted User" + pmdev.AccountType = "Trusted User & Developer" diff --git a/migrations/versions/7d65d35fae45_rename_tu_tables_columns.py b/migrations/versions/7d65d35fae45_rename_tu_tables_columns.py new file mode 100644 index 00000000..9d768f50 --- /dev/null +++ b/migrations/versions/7d65d35fae45_rename_tu_tables_columns.py @@ -0,0 +1,48 @@ +"""Rename TU tables/columns + +Revision ID: 7d65d35fae45 +Revises: 6a64dd126029 +Create Date: 2023-09-10 10:21:33.092342 + +""" + +from alembic import op +from sqlalchemy.dialects.mysql import INTEGER + +# revision identifiers, used by Alembic. +revision = "7d65d35fae45" +down_revision = "6a64dd126029" +branch_labels = None +depends_on = None + +# TU_VoteInfo -> VoteInfo +# TU_VoteInfo.ActiveTUs -> VoteInfo.ActiveUsers +# TU_Votes -> Votes + + +def upgrade(): + # Tables + op.rename_table("TU_VoteInfo", "VoteInfo") + op.rename_table("TU_Votes", "Votes") + + # Columns + op.alter_column( + "VoteInfo", + "ActiveTUs", + existing_type=INTEGER(unsigned=True), + new_column_name="ActiveUsers", + ) + + +def downgrade(): + # Tables + op.rename_table("VoteInfo", "TU_VoteInfo") + op.rename_table("Votes", "TU_Votes") + + # Columns + op.alter_column( + "TU_VoteInfo", + "ActiveUsers", + existing_type=INTEGER(unsigned=True), + new_column_name="ActiveTUs", + ) diff --git a/migrations/versions/9e3158957fd7_add_packagekeyword_packagebaseuid.py b/migrations/versions/9e3158957fd7_add_packagekeyword_packagebaseuid.py index 03291152..86ee0067 100644 --- a/migrations/versions/9e3158957fd7_add_packagekeyword_packagebaseuid.py +++ b/migrations/versions/9e3158957fd7_add_packagekeyword_packagebaseuid.py @@ -5,6 +5,7 @@ Revises: 6441d3b65270 Create Date: 2022-10-17 11:11:46.203322 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/migrations/versions/be7adae47ac3_upgrade_voteinfo_integers.py b/migrations/versions/be7adae47ac3_upgrade_voteinfo_integers.py index d273804f..02c443a1 100644 --- a/migrations/versions/be7adae47ac3_upgrade_voteinfo_integers.py +++ b/migrations/versions/be7adae47ac3_upgrade_voteinfo_integers.py @@ -15,6 +15,7 @@ Revision ID: be7adae47ac3 Revises: 56e2ce8e2ffa Create Date: 2022-01-06 14:37:07.899778 """ + from alembic import op from sqlalchemy.dialects.mysql import INTEGER, TINYINT diff --git a/migrations/versions/c5a6a9b661a0_add_index_on_packagebases_popularity_.py b/migrations/versions/c5a6a9b661a0_add_index_on_packagebases_popularity_.py index 12f97028..3cc146ee 100644 --- a/migrations/versions/c5a6a9b661a0_add_index_on_packagebases_popularity_.py +++ b/migrations/versions/c5a6a9b661a0_add_index_on_packagebases_popularity_.py @@ -5,6 +5,7 @@ Revises: e4e49ffce091 Create Date: 2023-07-02 13:46:52.522146 """ + from alembic import op # revision identifiers, used by Alembic. diff --git a/migrations/versions/d64e5571bc8d_fix_pkgvote_votets.py b/migrations/versions/d64e5571bc8d_fix_pkgvote_votets.py index a20b80fa..0fda746b 100644 --- a/migrations/versions/d64e5571bc8d_fix_pkgvote_votets.py +++ b/migrations/versions/d64e5571bc8d_fix_pkgvote_votets.py @@ -5,6 +5,7 @@ Revises: be7adae47ac3 Create Date: 2022-02-18 12:47:05.322766 """ + from datetime import datetime import sqlalchemy as sa diff --git a/migrations/versions/e4e49ffce091_add_hidedeletedcomments_to_user.py b/migrations/versions/e4e49ffce091_add_hidedeletedcomments_to_user.py index bc18b519..6637cc0d 100644 --- a/migrations/versions/e4e49ffce091_add_hidedeletedcomments_to_user.py +++ b/migrations/versions/e4e49ffce091_add_hidedeletedcomments_to_user.py @@ -5,6 +5,7 @@ Revises: 9e3158957fd7 Create Date: 2023-04-19 23:24:25.854874 """ + from alembic import op from sqlalchemy.exc import OperationalError diff --git a/migrations/versions/ef39fcd6e1cd_add_sso_account_id_in_table_users.py b/migrations/versions/ef39fcd6e1cd_add_sso_account_id_in_table_users.py index 3cf369e7..260c903b 100644 --- a/migrations/versions/ef39fcd6e1cd_add_sso_account_id_in_table_users.py +++ b/migrations/versions/ef39fcd6e1cd_add_sso_account_id_in_table_users.py @@ -5,6 +5,7 @@ Revises: f47cad5d6d03 Create Date: 2020-06-08 10:04:13.898617 """ + import sqlalchemy as sa from alembic import op from sqlalchemy.engine.reflection import Inspector diff --git a/migrations/versions/f47cad5d6d03_initial_revision.py b/migrations/versions/f47cad5d6d03_initial_revision.py index 7373e0fb..a8a007f3 100644 --- a/migrations/versions/f47cad5d6d03_initial_revision.py +++ b/migrations/versions/f47cad5d6d03_initial_revision.py @@ -4,6 +4,7 @@ Revision ID: f47cad5d6d03 Create Date: 2020-02-23 13:23:32.331396 """ + # revision identifiers, used by Alembic. revision = "f47cad5d6d03" down_revision = None diff --git a/po/ar.po b/po/ar.po index 1fed4f4f..3bd2838c 100644 --- a/po/ar.po +++ b/po/ar.po @@ -12,7 +12,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: صفا الفليج , 2015-2016\n" -"Language-Team: Arabic (http://www.transifex.com/lfleischer/aurweb/language/ar/)\n" +"Language-Team: Arabic (http://app.transifex.com/lfleischer/aurweb/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -133,15 +133,15 @@ msgid "Type" msgstr "النّوع" #: html/addvote.php -msgid "Addition of a TU" -msgstr "إضافة م‌م" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "إزالة م‌م" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -199,9 +199,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "مرحبًا بك في م‌م‌آ! فضلًا اقرأ %sإرشادات مستخدمي م‌م‌آ%s و%sإرشادات مستخدمي م‌م‌آ الموثوقين (م‌م)%s لمعلومات أكثر." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -215,8 +216,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "تذكّر أن تصوّت لحزمك المفضّلة!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "قد تكون بعض الحزم متوفّرة كثنائيّات في مستودع المجتمع [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "قد تكون بعض الحزم متوفّرة كثنائيّات في مستودع المجتمع [extra]." #: html/home.php msgid "DISCLAIMER" @@ -265,8 +266,8 @@ msgstr "طلب الحذف" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "اطلب أن تُزال الحزمة من مستودع مستخدمي آرتش. فضلًا لا تستخدم هذه إن كانت الحزمة معطوبة ويمكن إصلاحها بسهولة. بدل ذلك تواصل مع مصين الحزمة وأبلغ عن طلب \"يتيمة\" إن تطلّب الأمر." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -308,10 +309,11 @@ msgstr "النّقاش" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "النّقاشات العاّمة حول مستودع مستخدمي آرتش (م‌م‌آ) وبنية المستخدمين الموثوقين تكون في %saur-general%s. للنّقاشات المتعلّقة بتطوير واجهة وِبّ م‌م‌آ، استخدم قائمة %saur-dev%s البريديّة." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -322,9 +324,9 @@ msgstr "الإبلاغ عن العلل" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "إن وجدت علّة في واجهة وِبّ م‌م‌آ، فضلًا املأ تقريرًا بها في %sمتعقّب العلل%s. استخدم المتعقّب للإبلاغ عن العلل في واجهة وِبّ م‌م‌آ %sفقط%s. للإبلاغ عن علل الحزم راسل مديرها أو اترك تعليقًا في صفحة الحزمة المناسبة." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -524,8 +526,8 @@ msgid "Delete" msgstr "احذف" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "يمكن فقط للمستخدمين الموثوقين والمطوّرين حذف الحزم." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -565,8 +567,8 @@ msgid "Disown" msgstr "تنازل" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "يمكن فقط للمستخدمين الموثوقين والمطوّرين التّنازل عن الحزم." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -655,8 +657,8 @@ msgid "Merge" msgstr "دمج" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "يمكن فقط للمستخدمين الموثوقين والمطوّرين دمج الحزم." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -713,8 +715,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "مستخدم موثوق" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -725,8 +727,8 @@ msgid "Voting is closed for this proposal." msgstr "أُغلق التّصويت على هذا الرّأي." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "فقط المستخدمين الموثوقين مسموح لهم بالتّصويت." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1221,8 +1223,8 @@ msgstr "مطوّر" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "مستخدم موثوق ومطوّر" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1324,10 +1326,6 @@ msgstr "" msgid "Normal user" msgstr "مستخدم عاديّ" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "مستخدم موثوق" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "حساب معلّق" @@ -1400,6 +1398,15 @@ msgid "" " the Arch User Repository." msgstr "المعلومات الآتية مطلوبة فقط إن أردت تقديم حزم إلى مستودع مستخدمي آرتش." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "مفتاح SSH العموميّ" @@ -1827,22 +1834,22 @@ msgstr "ادمج مع" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2115,8 +2122,8 @@ msgid "Registered Users" msgstr "المستخدمون المسجّلون" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "المستخدمون الموثوقون" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2301,7 +2308,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2355,3 +2362,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/ast.po b/po/ast.po index 2075edc1..94e1fd91 100644 --- a/po/ast.po +++ b/po/ast.po @@ -1,19 +1,21 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the AURWEB package. -# +# # Translators: -# enolp , 2014-2015,2017 -# Ḷḷumex03 , 2014 -# prflr88 , 2014-2015 +# enolp , 2014-2015,2017,2020,2022 +# enolp , 2020 +# Ḷḷumex03, 2014 +# Ḷḷumex03, 2014 +# Pablo Lezaeta Reyes , 2014-2015 msgid "" msgstr "" "Project-Id-Version: aurweb\n" -"Report-Msgid-Bugs-To: https://bugs.archlinux.org/index.php?project=2\n" +"Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" -"PO-Revision-Date: 2020-03-07 17:55+0000\n" -"Last-Translator: enolp \n" -"Language-Team: Asturian (http://www.transifex.com/lfleischer/aurweb/language/ast/)\n" +"PO-Revision-Date: 2011-04-10 13:21+0000\n" +"Last-Translator: enolp , 2014-2015,2017,2020,2022\n" +"Language-Team: Asturian (http://app.transifex.com/lfleischer/aurweb/language/ast/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -22,7 +24,7 @@ msgstr "" #: html/404.php msgid "Page Not Found" -msgstr "" +msgstr "Nun s'atopó la páxina" #: html/404.php msgid "Sorry, the page you've requested does not exist." @@ -48,7 +50,7 @@ msgstr "" #: html/503.php msgid "Service Unavailable" -msgstr "" +msgstr "El serviciu nun ta disponible" #: html/503.php msgid "" @@ -69,11 +71,11 @@ msgstr "" #: html/account.php msgid "Could not retrieve information for the specified user." -msgstr "" +msgstr "Nun se pudo recuperar la información del usuariu especificáu." #: html/account.php msgid "You do not have permission to edit this account." -msgstr "" +msgstr "Nun tienes permisu pa editar esta cuenta." #: html/account.php lib/acctfuncs.inc.php msgid "Invalid password." @@ -134,15 +136,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -200,8 +202,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -216,7 +219,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -260,18 +263,18 @@ msgstr "" #: html/home.php msgid "Deletion Request" -msgstr "" +msgstr "Solicitú de desaniciu" #: html/home.php msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php msgid "Merge Request" -msgstr "" +msgstr "Solicitú de mecíu" #: html/home.php msgid "" @@ -304,14 +307,15 @@ msgstr "" #: html/home.php msgid "Discussion" -msgstr "" +msgstr "Discutiniu" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -323,8 +327,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -473,6 +477,12 @@ msgid "" "checkbox." msgstr "" +#: aurweb/routers/packages.py +msgid "" +"The selected packages have not been adopted, check the confirmation " +"checkbox." +msgstr "" + #: html/pkgbase.php lib/pkgreqfuncs.inc.php msgid "Cannot find package to merge votes and comments into." msgstr "" @@ -519,7 +529,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -560,7 +570,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -571,6 +581,14 @@ msgstr "" msgid "Flag Package Out-Of-Date" msgstr "" +#: templates/packages/flag.html +msgid "" +"This seems to be a VCS package. Please do %snot%s flag it out-of-date if the" +" package version in the AUR does not match the most recent commit. Flagging " +"this package should only be done if the sources moved or changes in the " +"PKGBUILD are required because of recent upstream changes." +msgstr "" + #: html/pkgflag.php #, php-format msgid "" @@ -642,7 +660,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -697,22 +715,22 @@ msgstr "" #: html/tos.php msgid "I accept the terms and conditions above." -msgstr "" +msgstr "Acepto los términos y les condiciones d'arriba." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." -msgstr "" +msgstr "Nun se pudieron recuperar los detalles de la propuesta." #: html/tu.php msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -867,6 +885,10 @@ msgstr "" msgid "Account suspended" msgstr "" +#: aurweb/routers/accounts.py +msgid "You do not have permission to suspend accounts." +msgstr "" + #: lib/acctfuncs.inc.php #, php-format msgid "" @@ -910,7 +932,7 @@ msgstr "" #: lib/pkgbasefuncs.inc.php msgid "Comment cannot be empty." -msgstr "" +msgstr "El comentariu nun pue tar baleru." #: lib/pkgbasefuncs.inc.php msgid "Comment has been added." @@ -918,7 +940,7 @@ msgstr "" #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can edit package information." -msgstr "" +msgstr "Tienes d'aniciar la sesión enantes d'editar la información del paquete." #: lib/pkgbasefuncs.inc.php msgid "Missing comment ID." @@ -926,15 +948,15 @@ msgstr "" #: lib/pkgbasefuncs.inc.php msgid "No more than 5 comments can be pinned." -msgstr "" +msgstr "Nun se puen fixar más de 5 comentarios." #: lib/pkgbasefuncs.inc.php msgid "You are not allowed to pin this comment." -msgstr "" +msgstr "Nun tienes permisu pa fixar esti comentariu." #: lib/pkgbasefuncs.inc.php msgid "You are not allowed to unpin this comment." -msgstr "" +msgstr "Nun tienes permisu pa lliberar esti comentariu." #: lib/pkgbasefuncs.inc.php msgid "Comment has been pinned." @@ -950,6 +972,30 @@ msgstr "" #: lib/pkgbasefuncs.inc.php lib/pkgfuncs.inc.php msgid "Package details could not be found." +msgstr "Nun se pudieron atopar los detalles del paquete." + +#: aurweb/routers/auth.py +msgid "Bad Referer header." +msgstr "" + +#: aurweb/routers/packages.py +msgid "You did not select any packages to be notified about." +msgstr "" + +#: aurweb/routers/packages.py +msgid "The selected packages' notifications have been enabled." +msgstr "" + +#: aurweb/routers/packages.py +msgid "You did not select any packages for notification removal." +msgstr "" + +#: aurweb/routers/packages.py +msgid "A package you selected does not have notifications enabled." +msgstr "" + +#: aurweb/routers/packages.py +msgid "The selected packages' notifications have been removed." msgstr "" #: lib/pkgbasefuncs.inc.php @@ -988,6 +1034,10 @@ msgstr "" msgid "You did not select any packages to delete." msgstr "" +#: aurweb/routers/packages.py +msgid "One of the packages you selected does not exist." +msgstr "" + #: lib/pkgbasefuncs.inc.php msgid "The selected packages have been deleted." msgstr "" @@ -996,10 +1046,18 @@ msgstr "" msgid "You must be logged in before you can adopt packages." msgstr "" +#: aurweb/routers/package.py +msgid "You are not allowed to adopt one of the packages you selected." +msgstr "" + #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can disown packages." msgstr "" +#: aurweb/routers/packages.py +msgid "You are not allowed to disown one of the packages you selected." +msgstr "" + #: lib/pkgbasefuncs.inc.php msgid "You did not select any packages to adopt." msgstr "" @@ -1168,7 +1226,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1271,10 +1329,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1347,6 +1401,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1551,7 +1614,7 @@ msgstr "" #: template/pkgbase_details.php template/pkg_details.php #: template/pkg_search_form.php msgid "Keywords" -msgstr "" +msgstr "Pallabres clave" #: template/pkgbase_details.php template/pkg_details.php #: template/pkg_search_form.php @@ -1770,22 +1833,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -1805,7 +1868,7 @@ msgstr[1] "" #: template/pkgreq_results.php template/pkg_search_results.php #, php-format msgid "Page %d of %d." -msgstr "" +msgstr "Páxina %d de %d." #: template/pkgreq_results.php msgid "Package" @@ -2019,7 +2082,7 @@ msgstr "" #: template/stats/general_stats_table.php msgid "Orphan Packages" -msgstr "" +msgstr "Paquetes güérfanos" #: template/stats/general_stats_table.php msgid "Packages added in the past 7 days" @@ -2039,15 +2102,15 @@ msgstr "" #: template/stats/general_stats_table.php msgid "Registered Users" -msgstr "" +msgstr "Usuarios rexistraos" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" -msgstr "" +msgstr "Anovamientos de recién" #: template/stats/updates_table.php msgid "more" @@ -2092,7 +2155,7 @@ msgstr "" #: template/tu_details.php msgid "Participation" -msgstr "" +msgstr "Participación" #: template/tu_last_votes_list.php msgid "Last Votes by TU" @@ -2228,7 +2291,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2237,3 +2300,80 @@ msgid "" "Please remember to cast your vote on proposal {id} [1]. The voting period " "ends in less than 48 hours." msgstr "" + +#: aurweb/routers/accounts.py +msgid "Invalid account type provided." +msgstr "" + +#: aurweb/routers/accounts.py +msgid "You do not have permission to change account types." +msgstr "" + +#: aurweb/routers/accounts.py +msgid "You do not have permission to change this user's account type to %s." +msgstr "" + +#: aurweb/packages/requests.py +msgid "No due existing orphan requests to accept for %s." +msgstr "" + +#: aurweb/asgi.py +msgid "Internal Server Error" +msgstr "Fallu internu del sirvidor" + +#: templates/errors/500.html +msgid "A fatal error has occurred." +msgstr "Asocedió un fallu fatal." + +#: templates/errors/500.html +msgid "" +"Details have been logged and will be reviewed by the postmaster posthaste. " +"We apologize for any inconvenience this may have caused." +msgstr "" + +#: aurweb/scripts/notify.py +msgid "AUR Server Error" +msgstr "" + +#: templates/pkgbase/merge.html templates/packages/delete.html +#: templates/packages/disown.html +msgid "Related package request closure comments..." +msgstr "" + +#: templates/pkgbase/merge.html templates/packages/delete.html +msgid "" +"This action will close any pending package requests related to it. If " +"%sComments%s are omitted, a closure comment will be autogenerated." +msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/aurweb.pot b/po/aurweb.pot index 77bca3b0..b1a467e4 100644 --- a/po/aurweb.pot +++ b/po/aurweb.pot @@ -132,15 +132,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -198,8 +198,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -214,7 +215,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -264,7 +265,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not " "use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -307,7 +308,7 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User " +"General discussion regarding the Arch User Repository (AUR) and Package Maintainer " "structure takes place on %saur-general%s. For discussion relating to the " "development of the AUR web interface, use the %saur-dev%s mailing list." msgstr "" @@ -321,7 +322,7 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface " -"%sonly%s. To report packaging bugs contact the package maintainer or leave a " +"%sonly%s. To report packaging bugs contact the maintainer or leave a " "comment on the appropriate package page." msgstr "" @@ -522,7 +523,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +564,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -654,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -712,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -724,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1220,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1323,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1829,14 +1826,14 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " +"By submitting a deletion request, you ask a Package Maintainer to delete the " "package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " +"By submitting a merge request, you ask a Package Maintainer to delete the package " "base and transfer its votes and comments to another package base. Merging a " "package does not affect the corresponding Git repositories. Make sure you " "update the Git history of the target package yourself." @@ -1844,7 +1841,7 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2100,7 +2097,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2287,7 +2284,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2374,3 +2371,7 @@ msgid "Note that if you hide your email address, it'll " "receive an email. However, replies are typically sent to the " "mailing-list and would then be visible in the archive." msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Maximum number of characters" +msgstr "" diff --git a/po/az.po b/po/az.po index df14a5b0..4f8e0ba8 100644 --- a/po/az.po +++ b/po/az.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Azerbaijani (http://www.transifex.com/lfleischer/aurweb/language/az/)\n" +"Language-Team: Azerbaijani (http://app.transifex.com/lfleischer/aurweb/language/az/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/az_AZ.po b/po/az_AZ.po index 293d7b0d..3f65d694 100644 --- a/po/az_AZ.po +++ b/po/az_AZ.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Azerbaijani (Azerbaijan) (http://www.transifex.com/lfleischer/aurweb/language/az_AZ/)\n" +"Language-Team: Azerbaijani (Azerbaijan) (http://app.transifex.com/lfleischer/aurweb/language/az_AZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/bg.po b/po/bg.po index f373b761..22a68d8d 100644 --- a/po/bg.po +++ b/po/bg.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/lfleischer/aurweb/language/bg/)\n" +"Language-Team: Bulgarian (http://app.transifex.com/lfleischer/aurweb/language/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/ca.po b/po/ca.po index 86d77e56..10fd8412 100644 --- a/po/ca.po +++ b/po/ca.po @@ -14,7 +14,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Ícar , 2021\n" -"Language-Team: Catalan (http://www.transifex.com/lfleischer/aurweb/language/ca/)\n" +"Language-Team: Catalan (http://app.transifex.com/lfleischer/aurweb/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -135,16 +135,16 @@ msgid "Type" msgstr "Tipus" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Adició d'un TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Elimincació d'un TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Elimincació d'un TU (inactivitat no declarada)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -201,9 +201,10 @@ msgstr "Cerca paquets que co-mantinc" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Benvingut a l'AUR! Si us plau, llegiu les %sdirectrius d'usuari d'AUR%s i les %sdirectrius de TU (usuari de confiança) d'AUR%s per més informació." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -217,8 +218,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Recordeu votar els vostres paquets preferits!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Alguns paquets poden ser oferts com binaris a [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Alguns paquets poden ser oferts com binaris a [extra]." #: html/home.php msgid "DISCLAIMER" @@ -267,8 +268,8 @@ msgstr "Sol·licitud de supressió" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Sol·liciteu que s'elimini un paquet de l'AUR. Si us plau, no ho utilitzeu si un paquet està trencat i es pot arreglar fàcilment. En lloc d'això, poseu-vos en contacte amb el mantenidor del paquet i sol·liciteu que es se'n renegui si cal." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -310,10 +311,11 @@ msgstr "Discussió" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "El debat general sobre el repositori per usuaris d'Arch (AUR) i de l'estructura dels Usuaris de Confiança es realitza a %saur-general%s. Per la discussió relacionada amb el desenvolupament de la interfície web de l'AUR, utilitzeu la llista de correu %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -324,9 +326,9 @@ msgstr "Comunicar errada" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Si troba un error en la interfície web de l'AUR, si us plau, ompliu un informe d'error al nostre %srastrejador d'errades%s. Utilitzeu el rastrejador per reportar %snomés%s errors de l'interfície web. Per informar d'errades en els paquets contacteu directament amb el responsable del paquet o deixeu un comentari a la pàgina del paquet corresponent." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -526,8 +528,8 @@ msgid "Delete" msgstr "Esborra" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Només els usuaris de confiança (TUs) i desenvolupadors poden eliminar paquets." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -567,7 +569,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -657,8 +659,8 @@ msgid "Merge" msgstr "Fusió" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Només el usuaris de confiança (TUs) i desenvolupadors poden fusionar paquets." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -715,8 +717,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Usuari de Confiança" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -727,7 +729,7 @@ msgid "Voting is closed for this proposal." msgstr "La votació es va tancar per a aquesta proposta." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1223,7 +1225,7 @@ msgstr "Desenvolupador" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1326,10 +1328,6 @@ msgstr "" msgid "Normal user" msgstr "Usuari normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Usuari de Confiança" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "El compte s'ha suspès" @@ -1402,6 +1400,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1825,22 +1832,22 @@ msgstr "Combinar amb" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2097,8 +2104,8 @@ msgid "Registered Users" msgstr "Usuaris registrats" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Usuaris de Confiança" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2283,7 +2290,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2337,3 +2344,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/ca_ES.po b/po/ca_ES.po index 5c05ba0c..3927d5a2 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Catalan (Spain) (http://www.transifex.com/lfleischer/aurweb/language/ca_ES/)\n" +"Language-Team: Catalan (Spain) (http://app.transifex.com/lfleischer/aurweb/language/ca_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/cs.po b/po/cs.po index 9086bd75..f12e07ab 100644 --- a/po/cs.po +++ b/po/cs.po @@ -6,9 +6,9 @@ # Daniel Milde , 2017 # Daniel Peukert , 2021 # Daniel Peukert , 2021-2022 -# Jaroslav Lichtblau , 2015-2016 -# Jaroslav Lichtblau , 2014 -# Jiří Vírava , 2017-2018 +# Jaroslav Lichtblau , 2015-2016 +# Jaroslav Lichtblau , 2014 +# Appukonrad , 2017-2018 # Lukas Fleischer , 2011 # Lukáš Kucharczyk , 2020 # Pavel Ševeček , 2014 @@ -19,7 +19,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Daniel Peukert , 2021-2022\n" -"Language-Team: Czech (http://www.transifex.com/lfleischer/aurweb/language/cs/)\n" +"Language-Team: Czech (http://app.transifex.com/lfleischer/aurweb/language/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -140,16 +140,16 @@ msgid "Type" msgstr "Typ" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Přidání důvěryhodného uživatele" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Odebrání důvěryhodného uživatele" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Odebrání důvěryhodného uživatele (neohlášená neaktivita)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -206,9 +206,10 @@ msgstr "Hledat balíčky, které spoluspravuji" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Vítejte na webu repozitáře AUR! Další informace naleznete na wiki v článcích o %srepozitáři AUR%s a %sdůvěryhodných uživatelích AUR%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -222,8 +223,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Nezapomeň hlasovat pro svoje oblíbené balíčky!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Některé balíčky mohou být poskytnuty v binární podobě v repozitáři [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Některé balíčky mohou být poskytnuty v binární podobě v repozitáři [extra]." #: html/home.php msgid "DISCLAIMER" @@ -272,8 +273,8 @@ msgstr "Žádost o smazání" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Požádá o smazání z repozitáře AUR. Nepoužívejte, pokud balíček nefunguje a je možné ho snadno opravit. Místo toho kontaktuje správce balíčku nebo v případě potřeby požádejte o odebrání vlastnictví." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -315,10 +316,11 @@ msgstr "Diskuze" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Obecná diskuze o struktuře repozitáře AUR a důvěryhodných uživatelích se odehrává v poštovní konferenci %saur-general%s. Diskuzi o vývoji webového rozhraní AUR pak naleznete v poštovní konferenci %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -329,9 +331,9 @@ msgstr "Hlášení chyb" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Pokud ve webovém rozhraní repozitáře AUR najdete chybu, nahlaste to na %swebu pro sledování chyb%s. Zmíněný web se používá %sjen%s pro chyby webového rozhraní AUR. Pokud chcete nahlásit chyby v balíčcích, kontaktujte správce daného balíčku nebo k balíčku napište komentář." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -531,8 +533,8 @@ msgid "Delete" msgstr "Smazat" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Pouze důvěryhodní uživatelé a vývojáři mohou mazat balíčky." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -572,8 +574,8 @@ msgid "Disown" msgstr "Odebrat vlastnictví" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Pouze důvěryhodní uživatelé a vývojáři mohou odebrat vlastnictví balíčku." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -662,8 +664,8 @@ msgid "Merge" msgstr "Spojit" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Pouze důvěryhodní uživatelé a vývojáři mohou slučovat balíčky." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -720,8 +722,8 @@ msgid "I accept the terms and conditions above." msgstr "Souhlasím s výše uvedenými podmínkami." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Důvěryhodný uživatel" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -732,8 +734,8 @@ msgid "Voting is closed for this proposal." msgstr "Toto hlasování již skončilo." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Pouze důvěryhodní uživatelé a vývojáři mohou hlasovat." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1228,8 +1230,8 @@ msgstr "Vyvojář" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Důvěryhodný uživatel a vývojář" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1331,10 +1333,6 @@ msgstr "Vaše uživatelské jméno je vaše přihlašovací jméno. Je veřejně msgid "Normal user" msgstr "Běžný uživatel" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Důvěryhodný uživatel" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Účet pozastaven" @@ -1407,6 +1405,15 @@ msgid "" " the Arch User Repository." msgstr "Následující informace jsou požadovány pouze v případě, že máte v plánu do uživatelského repozitáře systému Arch Linux přidávat balíčky." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Veřejný SSH klíč" @@ -1832,26 +1839,26 @@ msgstr "Sloučení" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Vytvořením žádosti o smazání žádáte důvěryhodného uživatele, aby smazal základní balíček. Tento typ požadavku by se měl používat pro duplicitní balíčky, software, který již v upstreamu neexistuje, nebo v případě nelegálních či nezvratně rozbitých balíčků." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Vytvořením žádosti o sloučení žádáte důvěryhodného uživatele, aby smazal základní balíček a přesunul s ním spojené hlasy a komentáře do jiného balíčku. Sloučení balíčku nemá vliv na související repozitáře Git. Aktualizace Git historie cílového balíčku je na vás." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Vytvořením žádosti o odebrání vlastnictví žádáte důvěryhodného uživatele, aby odebral vlastnictví aktuálnímu správci základního balíčku. Tento požadavek používejte jen v případě, že balíček potřebuje zásah správce, správce není k zastižení a již jste se správce pokusili v minulosti kontaktovat." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2112,8 +2119,8 @@ msgid "Registered Users" msgstr "Registrovaní uživatelé" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Důvěryhodní uživatelé" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2298,8 +2305,8 @@ msgstr "Uživatel {user} [1] smazal balíček {pkgbase} [2].\n\nNadále již neb #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "Připomínka k hlasování důvěryhodných uživatelů: návrh {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2352,3 +2359,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Tato akce uzavře všechny žádosti čekající na vyřízení vztahující se k tomuto balíčku. Pokud není vyplněno textové Pole %sKomentáře\"%s, komentář k uzavření žádostí bude vygenerován automaticky." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/da.po b/po/da.po index 89f6a635..b8768beb 100644 --- a/po/da.po +++ b/po/da.po @@ -13,7 +13,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Linuxbruger , 2018\n" -"Language-Team: Danish (http://www.transifex.com/lfleischer/aurweb/language/da/)\n" +"Language-Team: Danish (http://app.transifex.com/lfleischer/aurweb/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -134,16 +134,16 @@ msgid "Type" msgstr "Type" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Tilføjelse af en TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Bortskaffelse af en TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Bortskaffelse af en TU (ikke erklæret inaktivitet)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -200,9 +200,10 @@ msgstr "Søg efter pakker jeg co-vedligeholder" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Velkommen til AUR! Venligst læs %sAUR Bruger Retningslinier %s og %sAUR TU Retningslinier%s for mere information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -216,7 +217,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "Husk at stemme for dine favorit pakker!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "Nogle pakker kan være stillet til rådighed som binær i (fællesskab)." #: html/home.php @@ -266,7 +267,7 @@ msgstr "Sletning Forespørgsel" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -309,9 +310,10 @@ msgstr "Diskussion" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -323,8 +325,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -525,8 +527,8 @@ msgid "Delete" msgstr "Slet" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Kun betroede brugere og udviklere kan slette pakker." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -566,7 +568,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -656,7 +658,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -714,8 +716,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Betroet bruger (TU)" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -726,7 +728,7 @@ msgid "Voting is closed for this proposal." msgstr "Afstemningen er lukket for dette forslag." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1222,8 +1224,8 @@ msgstr "Udvikler" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Betroet bruger og udvikler" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1325,10 +1327,6 @@ msgstr "" msgid "Normal user" msgstr "Normal bruger" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Betroet bruger (TU)" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Konto suspenderet" @@ -1401,6 +1399,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1824,22 +1831,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2096,8 +2103,8 @@ msgid "Registered Users" msgstr "Registerede brugere" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Betroede brugere" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2282,7 +2289,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2336,3 +2343,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/de.po b/po/de.po index 894494c6..39326eac 100644 --- a/po/de.po +++ b/po/de.po @@ -31,7 +31,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Stefan Auditor , 2021\n" -"Language-Team: German (http://www.transifex.com/lfleischer/aurweb/language/de/)\n" +"Language-Team: German (http://app.transifex.com/lfleischer/aurweb/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -152,16 +152,16 @@ msgid "Type" msgstr "Typ" #: html/addvote.php -msgid "Addition of a TU" -msgstr "TU hinzugefügt" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "TU entfernt" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "TU entfernt (unerklärte Inaktivität)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -218,9 +218,10 @@ msgstr "Suche nach Paketen die ich mitbetreue" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Willkommen im AUR! Für weitere Informationen lies bitte die %sAUR User Guidelines%s und die %sAUR TU Guidelines%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -234,8 +235,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Denk daran, für Deine bevorzugten Pakete zu stimmen!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Manche Pakete könnten als Binär-Pakete in [community] bereitgestellt sein." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Manche Pakete könnten als Binär-Pakete in [extra] bereitgestellt sein." #: html/home.php msgid "DISCLAIMER" @@ -284,8 +285,8 @@ msgstr "Löschanfrage" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Anfrage zum Entfernen eines Pakets aus dem Arch User Repository. Bitte benutze diese nicht, wenn das Paket kaputt ist und leicht repariert werden kann. Kontaktiere stattdessen den Maintainer und reiche eine Verwaisungsanfrage ein, wenn nötig." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -327,10 +328,11 @@ msgstr "Diskussion" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Grundsätzliche Diskussionen bezüglich des Arch User Repository (AUR) und vertrauenswürdigen Benutzern finden auf %saur-general%s statt. Für Diskussionen im Bezug auf die Entwicklung des AUR Web-Interface benutze die %saur-dev%s Mailingliste." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -341,9 +343,9 @@ msgstr "Fehler melden" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Wenn du einen Fehler im AUR Web-Interface findest, fülle bitte eine Fehler-Meldung in unserem %sbug-tracker%s aus. Benutze den Tracker %snur%s, um Fehler im AUR zu melden. Für falsch gepackte Pakete, wende dich bitte direkt an den zuständigen Maintainer, oder hinterlasse einen Kommentar auf der entsprechenden Seite des Pakets." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -543,8 +545,8 @@ msgid "Delete" msgstr "Löschen" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Nur vertrauenswürdige Benutzer und Entwickler können Pakete löschen." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -584,8 +586,8 @@ msgid "Disown" msgstr "Gebe Paket ab" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Nur TUs und Developer können die Paket-Betreuung abgeben." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -674,8 +676,8 @@ msgid "Merge" msgstr "Verschmelzen" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Nur vertrauenswürdige Benutzer und Entwickler können Pakete verschmelzen." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -732,8 +734,8 @@ msgid "I accept the terms and conditions above." msgstr "Ich akzeptiere die obigen Nutzungsbedingungen." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Vertrauenswürdiger Benutzer (TU)" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -744,8 +746,8 @@ msgid "Voting is closed for this proposal." msgstr "Die Abstimmungsphase für diesen Vorschlag ist beendet." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Nur Trusted User dürfen wählen." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1240,8 +1242,8 @@ msgstr "Entwickler" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Vertrauenswürdiger Benutzer & Entwickler" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1343,10 +1345,6 @@ msgstr "Der Benutzername ist der Name, der für die Anmeldung benutzt wird. Er i msgid "Normal user" msgstr "Normaler Benutzer" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Vertrauenswürdiger Benutzer (TU)" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Konto gesperrt" @@ -1419,6 +1417,15 @@ msgid "" " the Arch User Repository." msgstr "Die folgende Information wird nur benötigt, wenn du Pakete beim Arch User Repository einreichen willst." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Öffentlicher SSH Schlüssel" @@ -1842,26 +1849,26 @@ msgstr "Verschmelzen mit" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Durch das Absenden einer Löschanfrage wird ein vertrauenswürdiger Benutzer gefragt die Paketbasis zu löschen. Dieser Typ von Anfragen soll für doppelte Pakete, vom Upstream aufgegebene Software sowie illegale und unreparierbar kaputte Pakete verwendet werden." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Durch das Absenden einer Zusammenfüranfrage wird ein vertrauenswürdiger Benutzer gefragt die Paketbasis zu löschen und die Stimmen und Kommentare zu einer anderen Paketbasis zu transferieren. Das Zusammenführen eines Pakets betrifft nicht die zugehörigen Git-Repositories. Stelle sicher, dass die Git-Historie des Zielpakets von dir aktualisiert wird." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Durch das absenden einer Verwaisanfrage wird ein vertrauenswürdiger Benutzer gebeten die Paketbasis zu enteignen. Bitte tue das nur, wenn das Paket Aufmerksamkeit des Maintainers benötigt, der Maintainer nicht reagiert und Du vorher bereits versucht hast ihn zu kontaktieren." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2114,8 +2121,8 @@ msgid "Registered Users" msgstr "Registrierte Benutzer" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Vertrauenswürdige Benutzer (TU)" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2300,8 +2307,8 @@ msgstr "{user} [1] hat {pkgbase} [2] gelöscht.\n\nDu wirst keine weiteren Benac #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU Abstimmungs-Erinnerung: Vorschlag {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2354,3 +2361,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/el.po b/po/el.po index 2b665c34..cbb2e32f 100644 --- a/po/el.po +++ b/po/el.po @@ -8,7 +8,7 @@ # Achilleas Pipinellis, 2013 # Achilleas Pipinellis, 2011 # Achilleas Pipinellis, 2012 -# Leonidas Spyropoulos, 2021-2022 +# Leonidas Spyropoulos, 2021-2023 # Lukas Fleischer , 2011 # flamelab , 2011 msgid "" @@ -17,8 +17,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Leonidas Spyropoulos, 2021-2022\n" -"Language-Team: Greek (http://www.transifex.com/lfleischer/aurweb/language/el/)\n" +"Last-Translator: Leonidas Spyropoulos, 2021-2023\n" +"Language-Team: Greek (http://app.transifex.com/lfleischer/aurweb/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -139,20 +139,20 @@ msgid "Type" msgstr "Είδος" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Προσθήκη ενός TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Αφαίρεση ενός TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Αφαίρεση ενός TU (αδήλωτη αδράνεια)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" -msgstr "Τροποποίηση των " +msgstr "Τροποποίηση των Bylaws" #: html/addvote.php template/tu_list.php msgid "Proposal" @@ -205,9 +205,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Καλωσήρθατε στο AUR! Διαβάστε παρακαλώ τον %sOδηγό Χρηστών του AUR%s και τον %sΟδηγό των Trusted Users%s για περισσότερες πληροφορίες. " +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -221,8 +222,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Θυμηθείτε να ψηφίσετε τα αγαπημένα σας πακέτα!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Ορισμένα πακέτα μπορεί να μεταφερθούν ως binaries στο [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Ορισμένα πακέτα μπορεί να μεταφερθούν ως binaries στο [extra]." #: html/home.php msgid "DISCLAIMER" @@ -271,7 +272,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -314,9 +315,10 @@ msgstr "Συζήτηση" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -328,8 +330,8 @@ msgstr "Αναφορά Σφαλμάτων" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -530,8 +532,8 @@ msgid "Delete" msgstr "Διαγράψτε" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Μόνο οι Trusted Users και οι Developers μπορούν να διαγράψουν πακέτα." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -571,7 +573,7 @@ msgid "Disown" msgstr "Αποδέσμευση" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -661,8 +663,8 @@ msgid "Merge" msgstr "Συγχώνευση" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Μόνο οι Trusted Users και οι Developers μπορούν να συγχωνεύσουν πακέτα." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -719,8 +721,8 @@ msgid "I accept the terms and conditions above." msgstr "Αποδέχομαι τους παραπάνω όρους χρήσης." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Trusted User" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -731,8 +733,8 @@ msgid "Voting is closed for this proposal." msgstr "Η ψηφοφορία έχει κλείσει για αυτή την πρόταση." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Μόνο οι Trusted Users έχουν δικαίωμα ψήφου." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1227,7 +1229,7 @@ msgstr "Developer" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1330,10 +1332,6 @@ msgstr "" msgid "Normal user" msgstr "Απλός χρήστης" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Αξιόπιστος χρήστης" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Ο Λογαριασμός έχει Ανασταλεί." @@ -1406,6 +1404,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1829,22 +1836,22 @@ msgstr "Συγχώνευση σε" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2101,8 +2108,8 @@ msgid "Registered Users" msgstr "Εγγεγραμμένοι Χρήστες" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Trusted Users" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2287,7 +2294,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2341,3 +2348,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/es.po b/po/es.po index b6035d5b..c723771c 100644 --- a/po/es.po +++ b/po/es.po @@ -4,7 +4,8 @@ # # Translators: # Adolfo Jayme-Barrientos, 2015 -# Angel Velasquez , 2011 +# Angel Velasquez , 2011,2023 +# Jose Serrano Pérez, 2023 # juantascon , 2011 # Lukas Fleischer , 2011 # neiko , 2011 @@ -21,8 +22,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Pablo Lezaeta Reyes , 2019\n" -"Language-Team: Spanish (http://www.transifex.com/lfleischer/aurweb/language/es/)\n" +"Last-Translator: Angel Velasquez , 2011,2023\n" +"Language-Team: Spanish (http://app.transifex.com/lfleischer/aurweb/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -43,7 +44,7 @@ msgstr "Nota" #: html/404.php msgid "Git clone URLs are not meant to be opened in a browser." -msgstr "Las direcciones de clonado de Git no deberían ser habiertas en un navegador." +msgstr "Las direcciones de repositorios git no deberían ser abiertas en un navegador." #: html/404.php #, php-format @@ -86,7 +87,7 @@ msgstr "No tienes los permisos para editar esta cuenta." #: html/account.php lib/acctfuncs.inc.php msgid "Invalid password." -msgstr "" +msgstr "Contraseña inválida." #: html/account.php msgid "Use this form to search existing accounts." @@ -143,16 +144,16 @@ msgid "Type" msgstr "Tipo" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Agregar a un nuevo usuario de confianza" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Remover a un usuario de confianza" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Remover a un usuario de confianza (no declarado inactivo)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -209,9 +210,10 @@ msgstr "Buscar paquetes que soy coencargado" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "¡Bienvenido al repositorio de usuarios de Arch! Léase las %sDirectrices del usuario del AUR%s y las %sDirectrices del usuario de confianza del AUR%s para mayor información." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -225,8 +227,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "¡Recuerda votar tus paquetes favoritos!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Algunos paquetes pueden estar provistos de forma binaria en [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Algunos paquetes pueden estar provistos de forma binaria en [extra]." #: html/home.php msgid "DISCLAIMER" @@ -275,8 +277,8 @@ msgstr "Solicitud de eliminación" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Solicitar la eliminación de un paquete del repositorio de usuarios de Arch. No utilices esta opción si un paquete está roto pero puede ser arreglado fácilmente. En cambio, contacta al encargado del paquete y presenta una solicitud de orfandad si es necesario." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -318,10 +320,11 @@ msgstr "Debate" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "La discusión general sobre el repositorio de usuarios de Arch (AUR) y la estructura de usuarios de confianza se realiza en la lista de correos %saur-general%s. Para la discusión en relación con el desarrollo de la interfaz web del AUR, utiliza la lista de correo %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -332,9 +335,9 @@ msgstr "Informe de errores" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Si encuentras un error en la interfaz web del AUR, llena un informe de error en nuestro %srastreador de errores o «bug tracker»%s. Usa este para reportar %súnicamente%s errores de la interfaz web del AUR. Para reportar errores de empaquetado debes contactar al encargado o dejar un comentario en la página respectiva del paquete." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -383,7 +386,7 @@ msgstr "Proporciona tus datos de acceso" #: html/login.php msgid "User name or primary email address" -msgstr "" +msgstr "Nombre de usuario o dirección de correo electrónico principal" #: html/login.php template/account_delete.php template/account_edit_form.php msgid "Password" @@ -534,8 +537,8 @@ msgid "Delete" msgstr "Eliminar" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Solamente usuarios de confianza y desarrolladores pueden eliminar paquetes." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -575,8 +578,8 @@ msgid "Disown" msgstr "Abandonar" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Solamente usuarios de confianza y desarrolladores puede forzar el abandono de paquetes." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -665,8 +668,8 @@ msgid "Merge" msgstr "Unión" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Solamente usuarios de confianza y desarrolladores pueden unir paquetes." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -723,8 +726,8 @@ msgid "I accept the terms and conditions above." msgstr "Acepto los términos y condiciones anteriores." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Usuario de confianza" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -735,8 +738,8 @@ msgid "Voting is closed for this proposal." msgstr "Las votaciones para esta propuesta están cerradas." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Solamente usuarios de confianza pueden votar." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1106,12 +1109,12 @@ msgstr "No se pudo añadir a la lista de notificaciones." #: lib/pkgbasefuncs.inc.php #, php-format msgid "You have been added to the comment notification list for %s." -msgstr "Haz sido añadido a la lista de notificaciones de comentarios de %s." +msgstr "Ha sido añadido a la lista de notificaciones de comentarios de %s." #: lib/pkgbasefuncs.inc.php #, php-format msgid "You have been removed from the comment notification list for %s." -msgstr "Haz sido eliminado de la lista de notificaciones de comentarios de %s." +msgstr "Ha sido eliminado de la lista de notificaciones de comentarios de %s." #: lib/pkgbasefuncs.inc.php msgid "You are not allowed to undelete this comment." @@ -1231,8 +1234,8 @@ msgstr "Desarrollador" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Usuarios de confianza y desarrolladores" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1334,10 +1337,6 @@ msgstr "Tu nombre de usuario es el nombre que usarás para iniciar sesión. Es v msgid "Normal user" msgstr "Usuario normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Usuario de confianza" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Cuenta suspendida" @@ -1410,6 +1409,15 @@ msgid "" " the Arch User Repository." msgstr "La siguiente información únicamente es necesaria si deseas subir paquetes al repositorio de usuarios de Arch." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Clave pública SSH" @@ -1834,26 +1842,26 @@ msgstr "Unir en" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Al enviar una solicitud de eliminación, le preguntas a un usuario de confianza que elimine el paquete base. Este tipo de solicitud debe ser utilizado para los duplicados, programas abandonados por el desarrollador principal o encargado, así como programas ilegales e irreparablemente rotos." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Al enviar una solicitud de unión, le preguntas a un usuario de confianza que elimine el paquete base y transfiera sus votos y comentarios a otro paquete base. La unión de un paquete no afecta a los correspondientes repositorios Git. Por tanto asegúrate de actualizar el historia Git del paquete de destino tú mismo." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Al enviar una solicitud de orfandad, le preguntas a un usuario de confianza que remueva la propiedad sobre el paquete base al encargado principal de este. Por favor, haz esto solamente si el paquete necesita una acción de mantenención, el encargado no presenta signos de actividad y ya intentaste ponerte en contacto con él anteriormente." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2110,8 +2118,8 @@ msgid "Registered Users" msgstr "Usuarios registrados" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Usuarios de confianza" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2296,7 +2304,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2350,3 +2358,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/es_419.po b/po/es_419.po index e2b96ae6..f1997606 100644 --- a/po/es_419.po +++ b/po/es_419.po @@ -1,31 +1,32 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the AURWEB package. -# +# # Translators: # Angel Velasquez , 2011 # juantascon , 2011 # Lukas Fleischer , 2011 # neiko , 2011 # Nicolás de la Torre , 2012 -# prflr88 , 2016-2017 -# prflr88 , 2012,2015-2016 -# prflr88 , 2016-2017 -# prflr88 , 2016 -# prflr88 , 2019 +# Oliver Hattshire , 2021 +# Pablo Lezaeta Reyes , 2016-2017 +# Pablo Lezaeta Reyes , 2012,2015-2016 +# Pablo Lezaeta Reyes , 2016-2017 +# Pablo Lezaeta Reyes , 2016 +# Pablo Lezaeta Reyes , 2019,2022 msgid "" msgstr "" "Project-Id-Version: aurweb\n" -"Report-Msgid-Bugs-To: https://bugs.archlinux.org/index.php?project=2\n" +"Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" -"PO-Revision-Date: 2020-01-31 08:29+0000\n" -"Last-Translator: Lukas Fleischer\n" -"Language-Team: Spanish (Latin America) (http://www.transifex.com/lfleischer/aurweb/language/es_419/)\n" +"PO-Revision-Date: 2011-04-10 13:21+0000\n" +"Last-Translator: Pablo Lezaeta Reyes , 2019,2022\n" +"Language-Team: Spanish (Latin America) (http://app.transifex.com/lfleischer/aurweb/language/es_419/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es_419\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n" #: html/404.php msgid "Page Not Found" @@ -41,7 +42,7 @@ msgstr "Nota" #: html/404.php msgid "Git clone URLs are not meant to be opened in a browser." -msgstr "Las direcciones de clonado de Git no deberían ser habiertas en un navegador." +msgstr "Las direcciones de clonado de Git no deberían ser abiertas en un navegador." #: html/404.php #, php-format @@ -60,7 +61,7 @@ msgstr "Servicio no disponible" #: html/503.php msgid "" "Don't panic! This site is down due to maintenance. We will be back soon." -msgstr "¡No se asustes! El sitio está desactivado por mantenimiento. Pronto volveremos." +msgstr "¡No se asuste! El sitio está desactivado por mantenimiento. Pronto volveremos." #: html/account.php msgid "Account" @@ -76,7 +77,7 @@ msgstr "No está autorizado a acceder a esta área." #: html/account.php msgid "Could not retrieve information for the specified user." -msgstr "No se pudo obtener la información del usuario especificado." +msgstr "No se pudo recuperar la información del usuario especificado." #: html/account.php msgid "You do not have permission to edit this account." @@ -84,7 +85,7 @@ msgstr "No tiene permisos para editar esta cuenta." #: html/account.php lib/acctfuncs.inc.php msgid "Invalid password." -msgstr "" +msgstr "Contraseña no válida." #: html/account.php msgid "Use this form to search existing accounts." @@ -100,7 +101,7 @@ msgstr "Añadir propuesta" #: html/addvote.php msgid "Invalid token for user action." -msgstr "Elemento inválido para la acción del usuario." +msgstr "Elemento no válido para la acción del usuario." #: html/addvote.php msgid "Username does not exist." @@ -129,7 +130,7 @@ msgstr "Envíe una propuesta a la cual votar." #: html/addvote.php msgid "Applicant/TU" -msgstr "Candidato/Usuario de confianza (UC)" +msgstr "Candidato/Usuario de confianza" #: html/addvote.php msgid "(empty if not applicable)" @@ -141,16 +142,16 @@ msgid "Type" msgstr "Tipo" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Agregar a un nuevo Usuario de Confianza" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Remover a un Usuario de Confianza" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Remover a un Usuario de Confianza (no declarado inactivo)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -186,7 +187,7 @@ msgstr "Mis paquetes marcados" #: html/home.php msgid "My Requests" -msgstr "Mis peticiones" +msgstr "Mis Solicitudes" #: html/home.php msgid "My Packages" @@ -207,9 +208,10 @@ msgstr "Buscar paquetes que soy coencargado" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "¡Bienvenido al repositorio de usuarios de Arch! Lea la %sGuía del usuario del AUR%s y la %sGuía del usuario de Confianza del AUR%s para mayor información." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -223,8 +225,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "¡Recuerde votar sus paquetes favoritos!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Algunos paquetes pueden estar disponibles de forma binaria en [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Algunos paquetes pueden estar disponibles de forma binaria en [extra]." #: html/home.php msgid "DISCLAIMER" @@ -257,13 +259,13 @@ msgstr "Existen tres tipos de peticiones que pueden presentarse en el recuadro % #: html/home.php msgid "Orphan Request" -msgstr "Petición de Orfandad" +msgstr "Solicitud de Abandono" #: html/home.php msgid "" "Request a package to be disowned, e.g. when the maintainer is inactive and " "the package has been flagged out-of-date for a long time." -msgstr "Pedir la orfandad de un paquete, por ejemplo, cuando el encargado está inactivo y el paquete fue marcado como desactualizado por un largo tiempo." +msgstr "Pedir el abandono de un paquete, por ejemplo, cuando el encargado está inactivo y el paquete fue marcado como desactualizado por un largo tiempo." #: html/home.php msgid "Deletion Request" @@ -273,8 +275,8 @@ msgstr "Petición de Borrado" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Pedir que un paquete sea borrado del Repositorio Usuarios de Arch. Por favor, no use esta opción si un paquete está roto y se puede arreglar fácilmente. En cambio, contacte con el encargado del paquete y presentar solicitud orfandad si es necesario." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -284,14 +286,14 @@ msgstr "Petición de Fusión" msgid "" "Request a package to be merged into another one. Can be used when a package " "needs to be renamed or replaced by a split package." -msgstr "Pedir que se fusione un paquete en otro. Puede usarla cuando un paquete tiene que ser cambiado de nombre o sustituido por un paquete dividido." +msgstr "Solicitar que se fusione un paquete en otro. Puede usarla cuando un paquete tiene que ser cambiado de nombre o sustituido por un paquete dividido." #: html/home.php #, php-format msgid "" "If you want to discuss a request, you can use the %saur-requests%s mailing " "list. However, please do not use that list to file requests." -msgstr "Si quiere discutir una petición, puede usar la lista de correo %saur-peticiones%s. Sin embargo, por favor no utilice esa lista para presentar solicitudes." +msgstr "Si quiere discutir una solicitud, puede usar la lista de correo %saur-requests%s. Sin embargo, por favor no utilice esa lista para presentar solicitudes." #: html/home.php msgid "Submitting Packages" @@ -316,10 +318,11 @@ msgstr "Debate" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "La discusión general acerca del Repositorio de Usuarios de Arch (AUR) y la estructura de Usuarios de Confianza se realiza en la lista de correos %saur-general%s. Para discusiones relacionadas con el desarrollo de la interfaz web del AUR, utilice la lista de correo %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -330,9 +333,9 @@ msgstr "Informe de errores" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Si encuentra un error en la interfaz web del AUR, llene un informe de fallo en nuestro %s«bug tracker»%s. Use este para reportar %súnicamente%s errores de la interfaz web del AUR. Para reportar errores de empaquetado debe contactar con el encargado o dejar un comentario en la página respectiva del paquete." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -381,7 +384,7 @@ msgstr "Introduce las credenciales de autentificación" #: html/login.php msgid "User name or primary email address" -msgstr "" +msgstr "Nombre de usuario o dirección de correo electrónico principal" #: html/login.php template/account_delete.php template/account_edit_form.php msgid "Password" @@ -445,7 +448,7 @@ msgstr "Su contraseña fue reiniciada con éxito." #: html/passreset.php msgid "Confirm your user name or primary e-mail address:" -msgstr "" +msgstr "Confirma tu nombre de usuario o dirección de correo electrónico principal:" #: html/passreset.php msgid "Enter your new password:" @@ -464,11 +467,11 @@ msgstr "Continuar" msgid "" "If you have forgotten the user name and the primary e-mail address you used " "to register, please send a message to the %saur-general%s mailing list." -msgstr "" +msgstr "Si has olvidado el nombre de usuario y la dirección de correo electrónico principal usados al registrarte, por favor envía un mensaje a la lista de correo %saur-general%s." #: html/passreset.php msgid "Enter your user name or your primary e-mail address:" -msgstr "" +msgstr "Ingresa tu nombre de usuario o tu dirección de correo electrónico principal:" #: html/pkgbase.php msgid "Package Bases" @@ -480,6 +483,12 @@ msgid "" "checkbox." msgstr "Los paquetes seleccionados no fueron abandonados, marque la casilla de confirmación." +#: aurweb/routers/packages.py +msgid "" +"The selected packages have not been adopted, check the confirmation " +"checkbox." +msgstr "Los paquetes seleccionados no han sido adoptados, marque la casilla de verificación." + #: html/pkgbase.php lib/pkgreqfuncs.inc.php msgid "Cannot find package to merge votes and comments into." msgstr "No se puede encontrar el paquete para fusionar sus votos y comentarios." @@ -526,8 +535,8 @@ msgid "Delete" msgstr "Borrar" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Solo Usuarios de Confianza y Desarrolladores pueden borrar paquetes." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -544,7 +553,7 @@ msgstr "Use este formulario para abandonar el paquete base %s %s %s que incluye msgid "" "By selecting the checkbox, you confirm that you want to no longer be a " "package co-maintainer." -msgstr "" +msgstr "Al seleccionar la casilla de verificación, confirmas que ya no quieres ser co-mantenedor del paquete." #: html/pkgdisown.php #, php-format @@ -567,8 +576,8 @@ msgid "Disown" msgstr "Abandonar" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Solo Usuarios de Confianza y Desarrolladores pueden forzar el abandono de paquetes." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -578,6 +587,14 @@ msgstr "Marcar comentario" msgid "Flag Package Out-Of-Date" msgstr "Marcado como desactualizado" +#: templates/packages/flag.html +msgid "" +"This seems to be a VCS package. Please do %snot%s flag it out-of-date if the" +" package version in the AUR does not match the most recent commit. Flagging " +"this package should only be done if the sources moved or changes in the " +"PKGBUILD are required because of recent upstream changes." +msgstr "Esto parece ser un paquete VCS. 1%sNo1%s lo marque como obsoleto si la versión del paquete en el AUR no coincide con la commit más reciente. Solo se debe marcar este paquete si las fuentes se movieron o si se requiere cambios en el PKGBUILD debido a cambios recientes en las fuentes." + #: html/pkgflag.php #, php-format msgid "" @@ -649,16 +666,16 @@ msgid "Merge" msgstr "Fusión" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Solo Usuarios de Confianza y Desarrolladores pueden fusionar paquetes." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" -msgstr "Enviar petición" +msgstr "Enviar Solicitud" #: html/pkgreq.php template/pkgreq_close_form.php msgid "Close Request" -msgstr "Cerrar Petición" +msgstr "Cerrar Solicitud" #: html/pkgreq.php lib/aur.inc.php lib/pkgfuncs.inc.php msgid "First" @@ -678,7 +695,7 @@ msgstr "Último" #: html/pkgreq.php template/header.php msgid "Requests" -msgstr "Petición" +msgstr "Solicitudes" #: html/register.php template/header.php msgid "Register" @@ -707,8 +724,8 @@ msgid "I accept the terms and conditions above." msgstr "Acepto las Terminos y condiciones anteriores." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Usuario de Confianza" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -719,8 +736,8 @@ msgid "Voting is closed for this proposal." msgstr "Las votaciones para esta propuesta están cerradas." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Solo Usuarios de Confianza pueden votar." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -775,7 +792,7 @@ msgstr "Solo puede contener un punto, guion bajo o guion." #: lib/acctfuncs.inc.php msgid "Please confirm your new password." -msgstr "" +msgstr "Por favor confirma tu nueva contraseña." #: lib/acctfuncs.inc.php msgid "The email address is invalid." @@ -783,7 +800,7 @@ msgstr "La dirección de correo no es válida." #: lib/acctfuncs.inc.php msgid "The backup email address is invalid." -msgstr "" +msgstr "La dirección de correo electrónico de respaldo no es válida." #: lib/acctfuncs.inc.php msgid "The home page is invalid, please specify the full HTTP(s) URL." @@ -826,15 +843,15 @@ msgstr "La clave pública SSH %s%s%s ya está en uso." #: lib/acctfuncs.inc.php msgid "The CAPTCHA is missing." -msgstr "" +msgstr "Falta el CAPTCHA." #: lib/acctfuncs.inc.php msgid "This CAPTCHA has expired. Please try again." -msgstr "" +msgstr "El CAPTCHA expiró. Por favor intenta de nuevo." #: lib/acctfuncs.inc.php msgid "The entered CAPTCHA answer is invalid." -msgstr "" +msgstr "El CAPTCHA ingresado no es válido." #: lib/acctfuncs.inc.php #, php-format @@ -874,6 +891,10 @@ msgstr "El formulario de registro ha sido deshabilitado para su dirección IP, p msgid "Account suspended" msgstr "Cuenta suspendida" +#: aurweb/routers/accounts.py +msgid "You do not have permission to suspend accounts." +msgstr "No tiene los permiso para suspender cuentas." + #: lib/acctfuncs.inc.php #, php-format msgid "" @@ -888,7 +909,7 @@ msgstr "Contraseña o nombre de usuario erróneos." #: lib/acctfuncs.inc.php msgid "An error occurred trying to generate a user session." -msgstr "Un error ocurrió intentando generar la sesión." +msgstr "Un error ocurrió intentando generar la sesión de usuario." #: lib/acctfuncs.inc.php msgid "Invalid e-mail and reset key combination." @@ -959,6 +980,30 @@ msgstr "Error al recuperar los detalles del paquete." msgid "Package details could not be found." msgstr "Los detalles del paquete no se pudieron encontrar." +#: aurweb/routers/auth.py +msgid "Bad Referer header." +msgstr "Encabezado de referencia no correcto." + +#: aurweb/routers/packages.py +msgid "You did not select any packages to be notified about." +msgstr "No seleccionó ningún paquete para recibir notificaciones." + +#: aurweb/routers/packages.py +msgid "The selected packages' notifications have been enabled." +msgstr "Se han habilitado las notificaciones de los paquetes seleccionados." + +#: aurweb/routers/packages.py +msgid "You did not select any packages for notification removal." +msgstr "No seleccionó ningún paquete para la eliminación de notificaciones" + +#: aurweb/routers/packages.py +msgid "A package you selected does not have notifications enabled." +msgstr "Un paquete que seleccionó no tiene notificaciones habilitadas." + +#: aurweb/routers/packages.py +msgid "The selected packages' notifications have been removed." +msgstr "Se han eliminado las notificaciones de los paquetes seleccionados." + #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can flag packages." msgstr "Debe autentificarse antes de poder marcar paquetes." @@ -995,6 +1040,10 @@ msgstr "No posee los permisos para borrar paquetes." msgid "You did not select any packages to delete." msgstr "No seleccionó ningún paquete para borrar." +#: aurweb/routers/packages.py +msgid "One of the packages you selected does not exist." +msgstr "Uno de los paquetes que seleccionó no existe." + #: lib/pkgbasefuncs.inc.php msgid "The selected packages have been deleted." msgstr "Los paquetes seleccionados se han borrado." @@ -1003,10 +1052,18 @@ msgstr "Los paquetes seleccionados se han borrado." msgid "You must be logged in before you can adopt packages." msgstr "Debe autentificarse antes de poder adoptar paquetes." +#: aurweb/routers/package.py +msgid "You are not allowed to adopt one of the packages you selected." +msgstr "No puede adoptar uno de los paquetes que seleccionó." + #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can disown packages." msgstr "Debe autentificarse antes de poder abandonar paquetes." +#: aurweb/routers/packages.py +msgid "You are not allowed to disown one of the packages you selected." +msgstr "No puede abandonar uno de los paquetes que seleccionó." + #: lib/pkgbasefuncs.inc.php msgid "You did not select any packages to adopt." msgstr "No seleccionó ningún paquete para adoptar." @@ -1175,8 +1232,8 @@ msgstr "Desarrollador" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Usuarios de Confianza y desarrolladores" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1247,7 +1304,7 @@ msgstr "Editar la cuenta de este usuario" #: template/account_details.php msgid "List this user's comments" -msgstr "" +msgstr "Mostrar los comentarios de este usuario" #: template/account_edit_form.php #, php-format @@ -1262,7 +1319,7 @@ msgstr "Haga clic %saquí%s para ver los detalles del usuario." #: template/account_edit_form.php #, php-format msgid "Click %shere%s to list the comments made by this account." -msgstr "" +msgstr "Haz clic %saquí%s para mostrar los comentarios hechos por esta cuenta." #: template/account_edit_form.php msgid "required" @@ -1278,10 +1335,6 @@ msgstr "Su nombre de usuario es el nombre que usará para iniciar sesión. Es vi msgid "Normal user" msgstr "Usuario normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Usuario de Confianza" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Cuenta suspendida" @@ -1305,30 +1358,30 @@ msgid "" "If you do not hide your email address, it is visible to all registered AUR " "users. If you hide your email address, it is visible to members of the Arch " "Linux staff only." -msgstr "" +msgstr "Si no esconde su dirección de correo electrónico, esta será visible para todo usuario registrado en el AUR. Si esconde su dirección de correo electrónico, esta será visible sólo por el equipo de Arch Linux." #: template/account_edit_form.php msgid "Backup Email Address" -msgstr "" +msgstr "Dirección de correo electrónico de respaldo" #: template/account_edit_form.php msgid "" "Optionally provide a secondary email address that can be used to restore " "your account in case you lose access to your primary email address." -msgstr "" +msgstr "Opcionalmente proporciona una dirección de correo electrónico secundaria para poder restaurar tu cuenta en caso de que pierdas acceso tu dirección principal." #: template/account_edit_form.php msgid "" "Password reset links are always sent to both your primary and your backup " "email address." -msgstr "" +msgstr "Los enlaces de restauración de contraseña siempre se envían a tus direcciones de correo electrónico primaria y de respaldo." #: template/account_edit_form.php #, php-format msgid "" "Your backup email address is always only visible to members of the Arch " "Linux staff, independent of the %s setting." -msgstr "" +msgstr "Tu dirección de correo de respaldo siempre es sólo visible por el equipo de Arch Linux, sin importar lo seleccionado en la configuración %s." #: template/account_edit_form.php msgid "Language" @@ -1342,7 +1395,7 @@ msgstr "Zona horaria" msgid "" "If you want to change the password, enter a new password and confirm the new" " password by entering it again." -msgstr "" +msgstr "Si quieres cambiar la contraseña, ingresa una nueva y confírmala en el cuadro correspondiente." #: template/account_edit_form.php msgid "Re-type password" @@ -1354,6 +1407,15 @@ msgid "" " the Arch User Repository." msgstr "La siguiente información es necesaria únicamente si quiere subir paquetes al Repositorio de Usuarios de Arch." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Clave pública SSH" @@ -1376,21 +1438,21 @@ msgstr "Notificarme de cambios de propietario" #: template/account_edit_form.php msgid "To confirm the profile changes, please enter your current password:" -msgstr "" +msgstr "Para confirmar los cambios a tu perfil, por favor ingresa tu contraseña:" #: template/account_edit_form.php msgid "Your current password" -msgstr "" +msgstr "Tu contraseña actual" #: template/account_edit_form.php msgid "" "To protect the AUR against automated account creation, we kindly ask you to " "provide the output of the following command:" -msgstr "" +msgstr "Para proteger el AUR contra creaciones de cuentas automatizados, te pedimos amablemente que ingreses la salida del siguiente comando:" #: template/account_edit_form.php msgid "Answer" -msgstr "" +msgstr "Respuesta" #: template/account_edit_form.php template/pkgbase_details.php #: template/pkg_details.php @@ -1534,6 +1596,7 @@ msgid "%d pending request" msgid_plural "%d pending requests" msgstr[0] "Hay %d petición pendiente" msgstr[1] "Hay %d peticiones pendientes" +msgstr[2] "Hay %d peticiones pendientes" #: template/pkgbase_actions.php msgid "Adopt Package" @@ -1553,7 +1616,7 @@ msgstr "Solo lectura" #: template/pkgbase_details.php template/pkg_details.php msgid "click to copy" -msgstr "" +msgstr "haz clic para copiar" #: template/pkgbase_details.php template/pkg_details.php #: template/pkg_search_form.php @@ -1605,12 +1668,12 @@ msgstr "Agregar un comentario" msgid "" "Git commit identifiers referencing commits in the AUR package repository and" " URLs are converted to links automatically." -msgstr "" +msgstr "Los identificadores de commits de Git que referencian URLs y commits del repositorio de paquetes del AUR son convertidos a enlaces automáticamente." #: template/pkg_comment_form.php #, php-format msgid "%sMarkdown syntax%s is partially supported." -msgstr "" +msgstr "La %ssintaxis Markdown%s está parcialmente soportada." #: template/pkg_comments.php msgid "Pinned Comments" @@ -1622,7 +1685,7 @@ msgstr "Últimos comentarios" #: template/pkg_comments.php msgid "Comments for" -msgstr "" +msgstr "Comentarios para" #: template/pkg_comments.php #, php-format @@ -1637,7 +1700,7 @@ msgstr "Comentario anónimo en %s" #: template/pkg_comments.php #, php-format msgid "Commented on package %s on %s" -msgstr "" +msgstr "Comentó en el paquete %s el %s." #: template/pkg_comments.php #, php-format @@ -1769,7 +1832,7 @@ msgstr "Borrado" #: template/pkgreq_form.php msgid "Orphan" -msgstr "Orfandad" +msgstr "Abandono" #: template/pkgreq_form.php template/pkg_search_results.php msgid "Merge into" @@ -1777,30 +1840,30 @@ msgstr "Fusionar en" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Al enviar una Petición de Borrado, le preguntará a un Usuario de Confianza que elimine dicho paquete base. Este tipo de peticiones debe ser utilizada para duplicados, programas abandonados por el desarrollador principal o encargado, así como programas ilegales e irreparablemente rotos." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Al enviar una Petición de Fusión, le preguntará a un Usuario de Confianza que borre el paquete base y transfiera sus votos y comentarios a otro paquete base. La fusión de un paquete no afecta a los correspondientes repositorios Git. Por lo tanto asegúrese de actualizar el historia Git del paquete de destino uste mismo." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Al enviar una Petición de Orfandad, le preguntarás a un Usuario de Confianza que le quite la propiedad sobre el paquete base al encargado principal de este. Por favor, haga esto solo si el paquete necesita acciones de mantenención para funcionar, el encargado no presenta da de actividad y ya intentó ponerse en contacto con él anteriormente." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." -msgstr "Ninguna peticiones coincide con su criterio de búsqueda." +msgstr "Ninguna solicitud coincide con su criterio de búsqueda." #: template/pkgreq_results.php #, php-format @@ -1808,6 +1871,7 @@ msgid "%d package request found." msgid_plural "%d package requests found." msgstr[0] "Se encontró %d solicitud para el paquete." msgstr[1] "Se encontraron %d solicitudes para el paquete." +msgstr[2] "Se encontraron %d solicitudes para el paquete." #: template/pkgreq_results.php template/pkg_search_results.php #, php-format @@ -1832,6 +1896,7 @@ msgid "~%d day left" msgid_plural "~%d days left" msgstr[0] "~%d día restante" msgstr[1] "~%d días restantes" +msgstr[2] "~%d días restantes" #: template/pkgreq_results.php #, php-format @@ -1839,6 +1904,7 @@ msgid "~%d hour left" msgid_plural "~%d hours left" msgstr[0] "Aprox. %d hora restante" msgstr[1] "Aprox. %d horas restantes" +msgstr[2] "Aprox. %d horas restantes" #: template/pkgreq_results.php msgid "<1 hour left" @@ -1951,7 +2017,7 @@ msgstr "Ir" #: template/pkg_search_form.php msgid "Orphans" -msgstr "Huérfanos" +msgstr "Abandonados" #: template/pkg_search_results.php msgid "Error retrieving package list." @@ -1967,6 +2033,7 @@ msgid "%d package found." msgid_plural "%d packages found." msgstr[0] "%d paquete fue encontrado." msgstr[1] "%d paquetes fueron encontrados." +msgstr[2] "%d paquetes fueron encontrados." #: template/pkg_search_results.php msgid "Version" @@ -1986,7 +2053,7 @@ msgstr "Sí" #: template/pkg_search_results.php msgid "orphan" -msgstr "huérfano" +msgstr "abandonado" #: template/pkg_search_results.php msgid "Actions" @@ -2026,7 +2093,7 @@ msgstr "Estadísticas" #: template/stats/general_stats_table.php msgid "Orphan Packages" -msgstr "Paquetes huérfanos" +msgstr "Paquetes Abandonados" #: template/stats/general_stats_table.php msgid "Packages added in the past 7 days" @@ -2049,8 +2116,8 @@ msgid "Registered Users" msgstr "Usuarios registrados" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Usuarios de Confianza" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2103,7 +2170,7 @@ msgstr "Participación" #: template/tu_last_votes_list.php msgid "Last Votes by TU" -msgstr "Último voto del Usuario de Confianza" +msgstr "Últimos votos del Usuario de Confianza" #: template/tu_last_votes_list.php msgid "Last vote" @@ -2131,7 +2198,7 @@ msgid "" "A password reset request was submitted for the account {user} associated " "with your email address. If you wish to reset your password follow the link " "[1] below, otherwise ignore this message and nothing will happen." -msgstr "" +msgstr "Una solicitud de reinicio de contraseña fue hecha para la cuenta {user} asociada con tu dirección de correo electrónico. Si deseas reiniciar tu contraseña, sigue el enlace [1] debajo, de lo contrario ignora este mensaje y nada pasará." #: scripts/notify.py msgid "Welcome to the Arch User Repository" @@ -2142,7 +2209,7 @@ msgid "" "Welcome to the Arch User Repository! In order to set an initial password for" " your new account, please click the link [1] below. If the link does not " "work, try copying and pasting it into your browser." -msgstr "" +msgstr "¡Le damos la bienvenida al Repositorio Usuarios de Arch! Para poder configurar su contraseña inicial, por favor haga clic en el enlace [1] de abajo. Si el enlace no funciona, pruebe copiando y pegándolo en su navegador." #: scripts/notify.py #, python-brace-format @@ -2159,62 +2226,62 @@ msgstr "el usuario {user} [1] agregó el siguiente comentario al paquete base {p msgid "" "If you no longer wish to receive notifications about this package, please go" " to the package page [2] and select \"{label}\"." -msgstr "" +msgstr "Si ya no deseas recibir notificaciones sobre este paquete, por favor vé a la página del paquete [2] y selecciona \"{label}\"." #: scripts/notify.py #, python-brace-format msgid "AUR Package Update: {pkgbase}" -msgstr "" +msgstr "Actualización de paquete en el AUR: {pkgbase}" #: scripts/notify.py #, python-brace-format msgid "{user} [1] pushed a new commit to {pkgbase} [2]." -msgstr "" +msgstr "{user} [1] añadió un nuevo commit a {pkgbase} [2]." #: scripts/notify.py #, python-brace-format msgid "AUR Out-of-date Notification for {pkgbase}" -msgstr "" +msgstr "Notificación en el AUR de paquete obsoleto para {pkgbase}" #: scripts/notify.py #, python-brace-format msgid "Your package {pkgbase} [1] has been flagged out-of-date by {user} [2]:" -msgstr "" +msgstr "Tu paquete {pkgbase} [1] ha sido marcado como desactualizado por {user} [2]:" #: scripts/notify.py #, python-brace-format msgid "AUR Ownership Notification for {pkgbase}" -msgstr "" +msgstr "Notificación en el AUR de propiedad para {pkgbase}" #: scripts/notify.py #, python-brace-format msgid "The package {pkgbase} [1] was adopted by {user} [2]." -msgstr "" +msgstr "El paquete {pkgbase} [1] fué adoptado por {user} [2]." #: scripts/notify.py #, python-brace-format msgid "The package {pkgbase} [1] was disowned by {user} [2]." -msgstr "" +msgstr "El paquete {pkgbase} [1] fué abandonado por {user} [2]." #: scripts/notify.py #, python-brace-format msgid "AUR Co-Maintainer Notification for {pkgbase}" -msgstr "" +msgstr "Notificación en el AUR de Coencargado para {pkgbase}" #: scripts/notify.py #, python-brace-format msgid "You were added to the co-maintainer list of {pkgbase} [1]." -msgstr "" +msgstr "Te han añadido a la lista de coencargados de {pkgbase} [1]." #: scripts/notify.py #, python-brace-format msgid "You were removed from the co-maintainer list of {pkgbase} [1]." -msgstr "" +msgstr "Te han eliminado de la lista de coencargados de {pkgbase} [1]." #: scripts/notify.py #, python-brace-format msgid "AUR Package deleted: {pkgbase}" -msgstr "" +msgstr "Paquete en el AUR elimnado: {pkgbase}" #: scripts/notify.py #, python-brace-format @@ -2223,7 +2290,7 @@ msgid "" "\n" "-- \n" "If you no longer wish receive notifications about the new package, please go to [3] and click \"{label}\"." -msgstr "" +msgstr "{user} [1] fusionó {old} [2] en {new} [3].\n\n-- \nSi ya no deseas recibir notificaciones sobre el nuevo paquete, por favor dirigete a [3] y haz clic en \"{label}\"." #: scripts/notify.py #, python-brace-format @@ -2231,11 +2298,11 @@ msgid "" "{user} [1] deleted {pkgbase} [2].\n" "\n" "You will no longer receive notifications about this package." -msgstr "" +msgstr "{user} [1] eliminó {pkgbase} [2].\n\nYo no recibirás actualizaciones de este paquete." #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2243,4 +2310,81 @@ msgstr "" msgid "" "Please remember to cast your vote on proposal {id} [1]. The voting period " "ends in less than 48 hours." +msgstr "Por favor recuerda efectuar tu voto en la propuesta {id} [1]. El lapso para votar termina en menos de 48 horas." + +#: aurweb/routers/accounts.py +msgid "Invalid account type provided." +msgstr "Se proporcionó un tipo de cuenta no válido." + +#: aurweb/routers/accounts.py +msgid "You do not have permission to change account types." +msgstr "No tiene permisos para cambiar los tipos de cuenta." + +#: aurweb/routers/accounts.py +msgid "You do not have permission to change this user's account type to %s." +msgstr "No tiene permisos para cambiar el tipo de cuenta de este usuario a 1%s." + +#: aurweb/packages/requests.py +msgid "No due existing orphan requests to accept for %s." +msgstr "No existen solicitudes huérfanas pendientes para aceptar de 1%s." + +#: aurweb/asgi.py +msgid "Internal Server Error" +msgstr "Error interno del servidor" + +#: templates/errors/500.html +msgid "A fatal error has occurred." +msgstr "Ha ocurrido un error fatal." + +#: templates/errors/500.html +msgid "" +"Details have been logged and will be reviewed by the postmaster posthaste. " +"We apologize for any inconvenience this may have caused." +msgstr "Los detalles han sido registrados y serán revisados ​​por el administrador de correos inmediatamente. Pedimos disculpas por cualquier inconveniente que esto pueda haber causado." + +#: aurweb/scripts/notify.py +msgid "AUR Server Error" +msgstr "Error del servidor del AUR" + +#: templates/pkgbase/merge.html templates/packages/delete.html +#: templates/packages/disown.html +msgid "Related package request closure comments..." +msgstr "Comentarios de cierre de solicitud de paquete relacionados..." + +#: templates/pkgbase/merge.html templates/packages/delete.html +msgid "" +"This action will close any pending package requests related to it. If " +"%sComments%s are omitted, a closure comment will be autogenerated." +msgstr "Esta acción cerrará cualquier solicitud de paquete pendiente relacionada con este. Si se omiten 1%sComentarios1%s, se generará automáticamente un comentario de cierre." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." msgstr "" diff --git a/po/et.po b/po/et.po index 4092823b..e25c7eb2 100644 --- a/po/et.po +++ b/po/et.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Estonian (http://www.transifex.com/lfleischer/aurweb/language/et/)\n" +"Language-Team: Estonian (http://app.transifex.com/lfleischer/aurweb/language/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/fi.po b/po/fi.po index 98b3a03b..eb97a47d 100644 --- a/po/fi.po +++ b/po/fi.po @@ -14,7 +14,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Nikolay Korotkiy , 2018-2019\n" -"Language-Team: Finnish (http://www.transifex.com/lfleischer/aurweb/language/fi/)\n" +"Language-Team: Finnish (http://app.transifex.com/lfleischer/aurweb/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -135,15 +135,15 @@ msgid "Type" msgstr "Tyyppi" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Luotetun käyttäjän (TU) lisääminen" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Luotetun käyttäjän (TU) poisto" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -201,9 +201,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Tervetuloa AURiin! Luethan %sAURin käyttäjä ohjeen%s sekä %sTU-käyttäjän oppaan%s, kun tarvitset lisätietoa." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -217,8 +218,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Muista äänestää suosikkipakettejasi!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Jotkin paketit saattavat olla tarjolla valmiina paketteina [community]-varastossa." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Jotkin paketit saattavat olla tarjolla valmiina paketteina [extra]-varastossa." #: html/home.php msgid "DISCLAIMER" @@ -267,8 +268,8 @@ msgstr "Poistopyyntö" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Hallintapyyntö paketin poistamiseksi AUR:ista. Jos paketti on jollain tapaa rikki tai huono, mutta helposti korjattavissa, tulisi ensisijaisesti olla yhteydessä paketin ylläpitäjään ja viimekädessä pistää paketin hylkäämispyyntö menemään." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -310,10 +311,11 @@ msgstr "Keskustelu" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Yleinen keskustelu AUR:iin ja Luotettuihin käyttäjiin liittyen käydään postitusluettelossa %saur-general%s. AUR-verkkokäyttöliittymän kehittämiseen liittyvä keskustelu käydään postitusluettelossa %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -324,9 +326,9 @@ msgstr "Virheiden raportointi" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Jos löydät AUR-verkkokäyttöliittymästa virheen, täytä virheenilmoituslomake %svirheenseurannassamme%s. Käytä sivustoa %sainoastaan%s verkkokäyttöliittymän virheiden ilmoittamiseen. Ilmoittaaksesi pakettien virheistä, ota yhteys paketin ylläpitäjään tai jätä kommentti paketin sivulla." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -526,8 +528,8 @@ msgid "Delete" msgstr "Poista" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Vain Luotetut käyttäjät, sekä kehittäjät voivat poistaa paketteja." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -567,8 +569,8 @@ msgid "Disown" msgstr "Hylkää" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Vain Luotetut käyttäjät, sekä kehittäjät voivat hylätä paketteja." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -657,8 +659,8 @@ msgid "Merge" msgstr "Liitä" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Vain Luotetut käyttäjät, sekä kehittäjät voivat yhdistää paketteja." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -715,8 +717,8 @@ msgid "I accept the terms and conditions above." msgstr "Hyväksyn ylläolevat ehdot." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Luotettu käyttäjä (TU)" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -727,8 +729,8 @@ msgid "Voting is closed for this proposal." msgstr "Tämän ehdoksen äänestys on päättynyt." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Vain Luotetut käyttäjät voivat äänestää." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1223,8 +1225,8 @@ msgstr "Kehittäjä" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Luotettu käyttäjä & kehittäjä" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1326,10 +1328,6 @@ msgstr "" msgid "Normal user" msgstr "Tavallinen käyttäjä" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Luotettu käyttäjä (TU)" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Käyttäjätili hyllytetty" @@ -1402,6 +1400,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Julkinen SSH avain" @@ -1825,22 +1832,22 @@ msgstr "Yhdistä pakettiin" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Lähettämällä poistopyynnön pyydät Luotettua käyttäjää poistamaan pakettikannan. Tämän tyyppisiä pyyntöjä tulisi käyttää ainoastaan kaksoiskappaleisiin, laittomiin tai korjaamattoman rikkonaisiin paketteihin sekä ohjelmistoihin, jotka kehittäjä on hylännyt." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Ennen yhdistämispyynnön lähettämistä, pyydä Luotettua käyttäjää poistamaan pakettikanta ja siirtämään sen äänet ja kommentit toiseen pakettikantaan. Paketin yhdistäminen ei vaikuta Git-varastoihin. Varmista, että päivität kohdepaketin Git-historian itse." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2097,8 +2104,8 @@ msgid "Registered Users" msgstr "Rekisteröityjä käyttäjiä" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Luotettuja käyttäjiä" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2283,7 +2290,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2337,3 +2344,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/fi_FI.po b/po/fi_FI.po index cd516edc..e0193ec9 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Finnish (Finland) (http://www.transifex.com/lfleischer/aurweb/language/fi_FI/)\n" +"Language-Team: Finnish (Finland) (http://app.transifex.com/lfleischer/aurweb/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/fr.po b/po/fr.po index 2b0c5bab..b7942b3a 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,7 +5,7 @@ # Translators: # Alexandre Macabies , 2018 # Antoine Lubineau , 2012 -# Antoine Lubineau , 2012-2016 +# Antoine Lubineau , 2012-2016,2023 # Cedric Girard , 2011,2014,2016 # demostanis , 2020 # Kristien , 2020 @@ -21,8 +21,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: lordheavy , 2013-2014,2018,2022\n" -"Language-Team: French (http://www.transifex.com/lfleischer/aurweb/language/fr/)\n" +"Last-Translator: Antoine Lubineau , 2012-2016,2023\n" +"Language-Team: French (http://app.transifex.com/lfleischer/aurweb/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -143,16 +143,16 @@ msgid "Type" msgstr "Type" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Ajout d’un utilisateur de confiance." +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Suppression d’un utilisateur de confiance" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Suppression d’un utilisateur de confiance (inactivité non prévenue)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -209,9 +209,10 @@ msgstr "Rechercher les paquets que je co-maintiens" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Bienvenue sur AUR ! Veuillez lire les %sconsignes pour les utilisateurs d’AUR%s et les %sconsignes pour les utilisateurs de confiance%s pour plus d’information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -225,8 +226,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Pensez à voter pour vos paquets favoris !" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Certains paquets peuvent être disponibles sous forme binaire dans le dépôt [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Certains paquets peuvent être disponibles sous forme binaire dans le dépôt [extra]." #: html/home.php msgid "DISCLAIMER" @@ -275,8 +276,8 @@ msgstr "Requête de suppression" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Demande qu'un paquet soit supprimé d'AUR. Prière de ne pas l'utiliser si un paquet est cassé et que le problème peut être réglé facilement. À la place, contactez le mainteneur du paquet, et soumettez une requête de destitution si nécessaire." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -318,10 +319,11 @@ msgstr "Discussion" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Les discussions générales en rapport avec AUR (Arch User Repository, dépôt des utilisateurs d’Arch Linux) et les TU (Trusted User, utilisateurs de confiance) ont lieu sur %saur-general%s. Pour les discussions en rapport avec le développement de l'interface web d'AUR, utilisez la mailing-list %saur-dev.%s" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -332,9 +334,9 @@ msgstr "Rapports de bug" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Si vous trouvez un bug dans l'interface web d'AUR, merci de remplir un rapport de bug sur le %sbug tracker%s. N’utilisez le tracker %sque%s pour les bugs de l'interface web d'AUR. Pour signaler un bug dans un paquet, contactez directement le mainteneur du paquet, ou laissez un commentaire sur la page du paquet." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -486,7 +488,7 @@ msgstr "Les paquets sélectionnés n'ont pas été destitués, vérifiez la boî msgid "" "The selected packages have not been adopted, check the confirmation " "checkbox." -msgstr "" +msgstr "Les paquets sélectionnés n’ont pas été adoptés, vérifiez la case de confirmation." #: html/pkgbase.php lib/pkgreqfuncs.inc.php msgid "Cannot find package to merge votes and comments into." @@ -534,8 +536,8 @@ msgid "Delete" msgstr "Supprimer" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Seuls les Utilisateur de Confiance et les Développeurs peuvent effacer des paquets." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -575,8 +577,8 @@ msgid "Disown" msgstr "Destituer" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Seuls les Utilisateur de Confiance et les Développeurs peuvent destituer des paquets." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -665,8 +667,8 @@ msgid "Merge" msgstr "Fusionner" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Seuls les Utilisateur de Confiance et les Développeurs peuvent fusionner des paquets." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -723,8 +725,8 @@ msgid "I accept the terms and conditions above." msgstr "J'accepte les modalités ci-avant." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Utilisateur de confiance (TU)" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -735,8 +737,8 @@ msgid "Voting is closed for this proposal." msgstr "Le vote est clos pour cette proposition." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Seuls les Utilisateurs de Confiance sont autorisés à voter." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -892,7 +894,7 @@ msgstr "Compte suspendu." #: aurweb/routers/accounts.py msgid "You do not have permission to suspend accounts." -msgstr "" +msgstr "Vous n’avez pas la permission de suspendre des comptes." #: lib/acctfuncs.inc.php #, php-format @@ -981,27 +983,27 @@ msgstr "Les détails du paquet ne peuvent pas être trouvés." #: aurweb/routers/auth.py msgid "Bad Referer header." -msgstr "" +msgstr "Mauvais en-tête Referer." #: aurweb/routers/packages.py msgid "You did not select any packages to be notified about." -msgstr "" +msgstr "Vous n’avez sélectionné aucun paquet pour être notifié." #: aurweb/routers/packages.py msgid "The selected packages' notifications have been enabled." -msgstr "" +msgstr "Les notifications des paquets sélectionnés ont été activées." #: aurweb/routers/packages.py msgid "You did not select any packages for notification removal." -msgstr "" +msgstr "Vous n’avez sélectionné aucun paquet pour la suppression de notification." #: aurweb/routers/packages.py msgid "A package you selected does not have notifications enabled." -msgstr "" +msgstr "Un paquet que vous avez sélectionné n’a pas les notifications activées." #: aurweb/routers/packages.py msgid "The selected packages' notifications have been removed." -msgstr "" +msgstr "Les notifications des paquets sélectionnés ont été supprimées." #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can flag packages." @@ -1041,7 +1043,7 @@ msgstr "Vous n'avez sélectionné aucun paquet à supprimer." #: aurweb/routers/packages.py msgid "One of the packages you selected does not exist." -msgstr "" +msgstr "L’un des paquets que vous avez sélectionnés n’existe pas." #: lib/pkgbasefuncs.inc.php msgid "The selected packages have been deleted." @@ -1053,15 +1055,15 @@ msgstr "Vous devez être authentifié avant de pouvoir adopter des paquets." #: aurweb/routers/package.py msgid "You are not allowed to adopt one of the packages you selected." -msgstr "" +msgstr "Vous n’êtes pas autorisé à adopter l’un des paquets que vous avez sélectionnés." #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can disown packages." -msgstr "Vous devez être authentifié avant de pouvoir abandonner des paquets." +msgstr "Vous devez être authentifié avant de pouvoir destituer des paquets." #: aurweb/routers/packages.py msgid "You are not allowed to disown one of the packages you selected." -msgstr "" +msgstr "Vous n’êtes pas autorisé à destituer l’un des paquets que vous avez sélectionnés." #: lib/pkgbasefuncs.inc.php msgid "You did not select any packages to adopt." @@ -1069,7 +1071,7 @@ msgstr "Vous n'avez pas sélectionné de paquet à adopter." #: lib/pkgbasefuncs.inc.php msgid "You did not select any packages to disown." -msgstr "Vous n'avez sélectionné aucun paquet à abandonner." +msgstr "Vous n'avez sélectionné aucun paquet à destituer." #: lib/pkgbasefuncs.inc.php msgid "The selected packages have been adopted." @@ -1077,7 +1079,7 @@ msgstr "Les paquets sélectionnés ont été adoptés." #: lib/pkgbasefuncs.inc.php msgid "The selected packages have been disowned." -msgstr "Les paquets sélectionnés ont été abandonnés." +msgstr "Les paquets sélectionnés ont été destitués." #: lib/pkgbasefuncs.inc.php msgid "You must be logged in before you can vote for packages." @@ -1231,8 +1233,8 @@ msgstr "Développeur" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Utilisateur de confiance (TU) et Développeur" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1334,10 +1336,6 @@ msgstr "Votre nom d'utilisateur est le nom que vous utilisez pour vous connecter msgid "Normal user" msgstr "Utilisateur normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Utilisateur de confiance (TU)" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Compte suspendu" @@ -1410,6 +1408,15 @@ msgid "" " the Arch User Repository." msgstr "L'information suivante est requise uniquement si vous voulez soumettre des paquets sur AUR" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Clé SSH publique" @@ -1834,26 +1841,26 @@ msgstr "Fusionner dans" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "En soumettant une requète de suppression, vous demandez à un utilisateur de confiance de supprimer le paquet de base. Ce type de requète doit être utilisé pour les doublons, les logiciels abandonnés par l'upstream ainsi que pour les paquets illégaux ou irréparables." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "En soumettant une requète de fusion, vous demandez à un utilisateur de confiance de supprimer le paquet de base et de transférer les votes et les commentaires vers un autre paquet de base. Fusionner un paquet n'impacte pas le dépot Git correspondant. Assurez-vous de mettre à jour l'historique Git du paquet cible vous-même." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "En soumettant une requète pour rendre orphelin, vous demandez à un utilisateur de confiance de retirer le mainteneur du paquet de base. Merci de ne faire ceci que si le paquet nécessite l'action d'un mainteneur, que le mainteneur ne répond pas et que vous avez préalablement essayé de contacter le mainteneur." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2063,7 +2070,7 @@ msgstr "Adopter des paquets" #: template/pkg_search_results.php msgid "Disown Packages" -msgstr "Abandonner les paquets" +msgstr "Destituer les paquets" #: template/pkg_search_results.php msgid "Delete Packages" @@ -2110,8 +2117,8 @@ msgid "Registered Users" msgstr "Utilisateurs enregistrés" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Utilisateurs de confiance (TU)" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2296,8 +2303,8 @@ msgstr "{user} [1] a supprimé {pkgbase} [2].\n\nVous ne recevrez plus de notifi #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "Rappel du vote du TU : proposition {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2308,15 +2315,15 @@ msgstr "N'oubliez pas de voter sur la proposition {id} [1]. La période de vote #: aurweb/routers/accounts.py msgid "Invalid account type provided." -msgstr "" +msgstr "Type de compte choisi invalide." #: aurweb/routers/accounts.py msgid "You do not have permission to change account types." -msgstr "" +msgstr "Vous n’avez pas la permission de changer le type de compte." #: aurweb/routers/accounts.py msgid "You do not have permission to change this user's account type to %s." -msgstr "" +msgstr "Vous n’avez pas la permission de changer le type de compte de cet utilisateur en %s." #: aurweb/packages/requests.py msgid "No due existing orphan requests to accept for %s." @@ -2328,7 +2335,7 @@ msgstr "Erreur interne du serveur" #: templates/errors/500.html msgid "A fatal error has occurred." -msgstr "" +msgstr "Une erreur fatale s’est produite." #: templates/errors/500.html msgid "" @@ -2338,7 +2345,7 @@ msgstr "" #: aurweb/scripts/notify.py msgid "AUR Server Error" -msgstr "" +msgstr "Erreur du serveur AUR" #: templates/pkgbase/merge.html templates/packages/delete.html #: templates/packages/disown.html @@ -2350,3 +2357,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/he.po b/po/he.po index 88f2fddd..e39a5940 100644 --- a/po/he.po +++ b/po/he.po @@ -5,15 +5,15 @@ # Translators: # gk , 2016 # Lukas Fleischer , 2011 -# Yaron Shahrabani , 2016-2022 +# Yaron Shahrabani , 2016-2023 msgid "" msgstr "" "Project-Id-Version: aurweb\n" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Yaron Shahrabani , 2016-2022\n" -"Language-Team: Hebrew (http://www.transifex.com/lfleischer/aurweb/language/he/)\n" +"Last-Translator: Yaron Shahrabani , 2016-2023\n" +"Language-Team: Hebrew (http://app.transifex.com/lfleischer/aurweb/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -134,16 +134,16 @@ msgid "Type" msgstr "סוג" #: html/addvote.php -msgid "Addition of a TU" -msgstr "הוספת משתמש מהימן" +msgid "Addition of a Package Maintainer" +msgstr "הוספת מתחזקים לחבילה" #: html/addvote.php -msgid "Removal of a TU" -msgstr "הסרת משתמש מהימן" +msgid "Removal of a Package Maintainer" +msgstr "הסרת מתחזקים מהחבילה" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "הסרת משתמש מהימן (חוסר פעילות בלתי מוצהרת)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "הסרת מתחזקי חבילה (חוסר פעילות לא מוצהרת)" #: html/addvote.php msgid "Amendment of Bylaws" @@ -200,9 +200,10 @@ msgstr "חיפוש אחר חבילה שאני מתחזק המשנה שלה" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "ברוך בואך ל־AUR, מאגר תרומות המשתמשים של ארץ׳! נא לקרוא את %sהכללים למשתמש ב־AUR%s ואת %sהכללים למשתמשים מהימנים ב־AUR%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "ברוך בואך ל־AUR! נא לקרוא את %sההנחיות למשתמשים ב־AUR%s למידע נוסף ואת %sהנחיות ההגשה ל־AUR%s אם מעניין אותך לתרום PKGBUILD." #: html/home.php #, php-format @@ -216,8 +217,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "לא לשכוח להצביע לחבילות המועדפות עליך!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "יתכן שחלק מהחבילות מסופקות בתור קבצים בינריים תחת [community] (קהילה)." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "יתכן שחלק מהחבילות מסופקות בתור קבצים בינריים תחת [extra] (קהילה)." #: html/home.php msgid "DISCLAIMER" @@ -266,8 +267,8 @@ msgstr "בקשת מחיקה" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "ניתן לבקש הסרת חבילה ממאגר המשתמשים של ארץ׳. אין להשתמש בזה אם יש תקלה בחבילה וניתן לתקן אותה בקלות. במקום זאת, יש ליצור קשר עם מתחזק החבילה ולהגיש בקשת יתומה אם יש צורך." +"the maintainer and file orphan request if necessary." +msgstr "אפשר לבקש הסרת חבילה ממאגר המשתמשים של Arch ‏(AUR). נא לא להשתמש בזה אם החבילה פגומה ואפשר לתקן אותה בקלות. במקום, יש ליצור קשר עם מתחזקי החבילה ולהגיש בקשת יתמות במקרה הצורך." #: html/home.php msgid "Merge Request" @@ -309,10 +310,11 @@ msgstr "דיון" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "הדיון הכללי על מאגר המשתמשים של ארץ׳ (AUR) ומבנה המשתמשים המהימנים מתנהל ברשימה %saur-general%s. לדיון בנוגע לפיתוח של המנשק של AUR, יש להשתמש ברשימה %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "דיון כללי בנוגע למאגר המשתמשים של Arch‏ (AUR) ומבנה מתחזקי החבילות מתרחש ב־%saur-general%s. לדיון בנוגע לפיתוח האתר של AUR, יש להשתמש ברשימת הדיוור %saur-dev%s." #: html/home.php msgid "Bug Reporting" @@ -323,9 +325,9 @@ msgstr "דיווח על באגים" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "אם נתקלת בתקלה במנשק הדפדפן של AUR, נא להגיש דיווח על תקלה ב%sמערכת ניהול התקלות%s שלנו. יש להשתמש במערכת ניהול התקלות כדי לדווח על תקלות במנשק הדפדפן %sבלבד%s. כדי לדווח על תקלות עם אריזה יש ליצור קשר עם מתחזק החבילה או להשאיר הערה בעמוד החבילה בהתאם." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "אם מצאת תקלה באתר של AUR, נא למלא דוח תקלה ב%sעוקב התקלות%s שלנו. אפשר להשתמש בעוקב כדי לדווח על תקלות באתר של AUR %sבלבד%s. כדי לדווח על תקלות עם אריזות יש ליצור קשר עם המתחזקים או להשאיר תגובה בעמוד החבילה המתאים." #: html/home.php msgid "Package Search" @@ -525,8 +527,8 @@ msgid "Delete" msgstr "מחיקה" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "רק משתמשים מהימנים ומפתחים יכולים למחוק חבילות." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "רק מתחזקי ומפתחי חבילות יכולים למחוק חבילות." #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -566,8 +568,8 @@ msgid "Disown" msgstr "ניתוק בעלות" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "רק משתמשים מהימנים ומפתחים יכולים לנתק בעלות של חבילות." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "רק מתחזקי ומפתחי חבילות יכולים לנשל חבילות." #: html/pkgflagcomment.php msgid "Flag Comment" @@ -656,8 +658,8 @@ msgid "Merge" msgstr "מיזוג" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "רק משתמשים מהימנים ומפתחים יכולים למזג חבילות." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "רק מתחזקי ומפתחי חבילות יכולים למזג חבילות." #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -714,8 +716,8 @@ msgid "I accept the terms and conditions above." msgstr "התנאים שלעיל מקובלים עלי." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "משתמש מהימן" +msgid "Package Maintainer" +msgstr "מתחזקי חבילה" #: html/tu.php msgid "Could not retrieve proposal details." @@ -726,8 +728,8 @@ msgid "Voting is closed for this proposal." msgstr "ההצבעה סגורה עבור הצעה זו." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "רק משתמשים מהימנים מורשים להצביע." +msgid "Only Package Maintainers are allowed to vote." +msgstr "רק למתחזקי חבילה מותר להצביע." #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1222,8 +1224,8 @@ msgstr "מפתח" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "משתמש מהימן ומפתח" +msgid "Package Maintainer & Developer" +msgstr "מתחזקי ומפתחי חבילה" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1325,10 +1327,6 @@ msgstr "שם המשתמש שלך הוא השם שישמש אותך לכניסה msgid "Normal user" msgstr "משתמש רגיל" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "משתמשים אמינים" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "חשבון מושעה" @@ -1401,6 +1399,15 @@ msgid "" " the Arch User Repository." msgstr "המידע הבא נחוץ רק אם ברצונך להגיש חבילות למאגר החבילות של ארץ׳." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "אפשר לציין מגוון מפתחות SSH, אחד בשורה, אין משמעות לשורה ריקה." + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "הסתרת הערות שנמחקו" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "מפתח SSH ציבורי" @@ -1826,26 +1833,26 @@ msgstr "מיזוג לתוך" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "בהגשת בקשה למחיקה, משתמש מהימן ישקול אם למחוק בסיס חבילה. סוג כזה של בקשה יכול לשמש במקרים של כפילויות, תכנית שנזנחה במקור לצד חבילה בלתי חוקית או שבורה באופן שלא ניתן לשקם." +msgstr "בקשת מחיקה היא דרישה ממתחזקי החבילה למחוק את בסיס החבילה. יש להשתמש בסוג הזה של הבקשה על כפילויות, תוכנה שננטשה במקור, וגם חבילות בלתי חוקיות ופגומות באופן שלא ניתן לתיקון." #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "הגשת בקשת מיזוג מופנית למשתמש מהימן לטובת מחיקת בסיס חבילה והעברת ההצבעות וההערות שלו לבסיס חבילה אחר. מיזוג חבילה לא משפיע על מאגרי ה־Git הקשורים אליו. יש לוודא שעדכנת את היסטוריית ה־Git של חבילת היעד בעצמך." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "בקשת מיזוג היא דרישה ממתחזקי החבילה למחוק את בסיס החבילה ולהעביר את ההצבעות וההערות לבסיס חבילה אחר. מיזוג חבילה לא משפיע על מאגרי ה־Git התואמים. עדכון היסטוריית ה־Git של חבילת היעד הוא באחריותך. " #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "הגשת בקשת יתומה מופנית למשתמש מהימן לטובת ביטול שייכות בסיס חבילה. נא להגיש בקשה זו רק אם החבילה דורשת פעולת תחזוקה, המתחזק אינו זמין וכבר ניסית ליצור קשר עם המתחזק בעבר." +msgstr "בקשת יתמות היא דרישה ממתחזקי החבילה לנשל את בסיס החבילה. נא עשות את זה רק אם החבילה צריכה פעולת תחזוקה, המתחזקים לא זמינים למשך תקופה וכבר ניסית ליצור קשר עם המתחזקים בעבר." #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2106,8 +2113,8 @@ msgid "Registered Users" msgstr "משתמשים רשומים" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "משתמשים מהימנים" +msgid "Package Maintainers" +msgstr "מתחזקי החבילה" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2292,8 +2299,8 @@ msgstr " {pkgbase} [2] נמחקה על ידי{user} [1].\n\nלא תישלחנה #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "תזכורת הצבעה למשתמש מהימן: הצעה {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "תזכורת הצבעה לתחזוקת חבילה: הצעה {id}" #: scripts/notify.py #, python-brace-format @@ -2346,3 +2353,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "פעולה זו תסגור בקשות חבילות ממתינות שקשורות אליה. אם %sתגובות%s מושמטות, תיווצר תגובת סגירה אוטומטית." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "מוקצית" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "להציג עוד %d" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "תלויות" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "החשבון לא נמחק, נא לבדוק את תיבת האישור." + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "ביטול" + +#: templates/requests.html +msgid "Package name" +msgstr "שם החבילה" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "ראוי לשים לב שהסתרת כתובת הדוא״ל שלך תעביר אותה לרשימת העותק המוסתר בהתראות לבקשה. אם מישהו יגיב להתראות האלה, ההודעות לא תגענה אליך. עם זאת, תגובות בדרך כלל נשלחות לרשימת הדיוור והן אמורות להופיע בארכיון." diff --git a/po/hi_IN.po b/po/hi_IN.po index 1ba83dae..f8a66539 100644 --- a/po/hi_IN.po +++ b/po/hi_IN.po @@ -11,7 +11,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Panwar108 , 2018,2020-2022\n" -"Language-Team: Hindi (India) (http://www.transifex.com/lfleischer/aurweb/language/hi_IN/)\n" +"Language-Team: Hindi (India) (http://app.transifex.com/lfleischer/aurweb/language/hi_IN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -132,16 +132,16 @@ msgid "Type" msgstr "प्रकार" #: html/addvote.php -msgid "Addition of a TU" -msgstr "विश्वसनीय उपयोक्ता जोड़ना" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "विश्वसनीय उपयोक्ता हटाना" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "विश्वसनीय उपयोक्ता हटाना (अघोषित निष्क्रियता)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -198,9 +198,10 @@ msgstr "मेरे द्वारा सह-अनुरक्षित प #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "AUR में स्वागत है! अधिक जानकारी हेतु %sAUR उपयोक्ता%s व %sAUR विश्वसनीय उपयोक्ता%s दिशा-निर्देश पढ़ें।" +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -214,8 +215,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "अपने पसंदीदा पैकेज हेतु मतदान अवश्य करें!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "[community] के कुछ पैकेज बाइनरी फाइल के रूप में उपलब्ध हो सकते हैं।" +msgid "Some packages may be provided as binaries in [extra]." +msgstr "[extra] के कुछ पैकेज बाइनरी फाइल के रूप में उपलब्ध हो सकते हैं।" #: html/home.php msgid "DISCLAIMER" @@ -264,8 +265,8 @@ msgstr "पैकेज हटाने हेतु अनुरोध" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "आर्च उपयोक्ता पैकेज-संग्रह से पैकेज हटाने हेतु अनुरोध। कृपया पैकेज उपयोग संबंधी समस्या होने पर इसका उपयोग न करें। उचित होगा कि पैकेज अनुरक्षक से संपर्क करें व आवश्यकता हो तो निरर्थक पैकेज हेतु अनुरोध करें।" +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -307,10 +308,11 @@ msgstr "चर्चा" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "आर्च उपयोक्ता पैकेज-संग्रह (AUR) व विश्वसनीय उपयोक्ता संरचना संबंधी सामान्य चर्चा %saur-general%s पर होती है। AUR वेब अंतरफलक के विकास संबंधी चर्चा हेतु %saur-dev%s ईमेल-सूची उपयोग करें।" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -321,9 +323,9 @@ msgstr "समस्या हेतु रिपोर्ट" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "AUR वेब अंतरफलक में समस्या होने पर कृपया हमारे %sसमस्या ट्रैकर%s पर समस्या रिपोर्ट दर्ज करें। ट्रैकर का उपयोग %sकेवल%s AUR वेब अंतरफलक संबंधी समस्याओं के लिए ही करें। पैकेज समस्याओं हेतु पैकेज अनुरक्षक से संपर्क करें या उपयुक्त पैकेज के पृष्ठ पर टिप्पणी करें।" +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -523,8 +525,8 @@ msgid "Delete" msgstr "हटाएँ" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "केवल विश्वसनीय उपयोक्ता व व सॉफ्टवेयर विकासकर्ता ही पैकेज हटा सकते हैं।" +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -564,8 +566,8 @@ msgid "Disown" msgstr "स्वामित्व निरस्त करें" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "केवल विश्वसनीय उपयोक्ता व व सॉफ्टवेयर विकासकर्ता ही पैकेज स्वामित्व निरस्त कर सकते हैं।" +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -654,8 +656,8 @@ msgid "Merge" msgstr "विलय करें" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "केवल विश्वसनीय उपयोक्ता व व सॉफ्टवेयर विकासकर्ता ही पैकेज विलय कर सकते हैं।" +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -712,8 +714,8 @@ msgid "I accept the terms and conditions above." msgstr "मैं ऊपर दिए गए नियम व शर्तों को स्वीकारता हूँ।" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "विश्वसनीय उपयोक्ता" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -724,8 +726,8 @@ msgid "Voting is closed for this proposal." msgstr "इस प्रस्ताव हेतु वोट प्रक्रिया बंद है।" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "केवल विश्वसनीय उपयोक्ता ही मतदान कर सकते हैं।" +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1220,8 +1222,8 @@ msgstr "सॉफ्टवेयर विकासकर्ता" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "विश्वसनीय उपयोक्ता व सॉफ्टवेयर विकासकर्ता" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1323,10 +1325,6 @@ msgstr "लॉगिन हेतु प्रयुक्त नाम ही msgid "Normal user" msgstr "सामान्य उपयोक्ता" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "विश्वसनीय उपयोक्ता" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "निलंबित अकाउंट" @@ -1399,6 +1397,15 @@ msgid "" " the Arch User Repository." msgstr "निम्नलिखित जानकारी केवल आर्च उपयोक्ता पैकेज-संग्रह में पैकेज निवेदन करने हेतु ही आवश्यक है।" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "सार्वजनिक एसएसएच कुंजी" @@ -1822,26 +1829,26 @@ msgstr "इसमें विलय करें" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "हटाने हेतु अनुरोध से अभिप्राय है विश्वसनीय उपयोक्ता को पैकेज बेस हटाने हेतु निवेदन। यह प्रतिरूपित प्रोग्राम, स्रोत द्वारा त्यागे गए सॉफ्टवेयर के साथ ही अवैध व समाधान विहीन समस्यात्मक पैकेज हेतु उचित होता है।" +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "विलय अनुरोध से अभिप्राय है विश्वसनीय उपयोक्ता को पैकेज बेस हटाकर मत व टिप्पणियाँ अन्य पैकेज बेस में अंतरण हेतु निवेदन। पैकेज बेस हटाने से संबंधित पैकेज-संग्रह प्रभावित नहीं होते हैं। सुनिश्चित करें कि आप लक्षित पैकेज का Git वृतांत स्वयं अपडेट करें।" +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "निरर्थक पैकेज अनुरोध से अभिप्राय है विश्वसनीय उपयोक्ता को पैकेज स्वामित्व निरस्त करने हेतु निवेदन। अनुरक्षक कार्य अनिवार्यता, अनुरक्षक की अघोषित अनुपस्थिति और स्वयं अनुरक्षक से संपर्क हेतु प्रयास होने पर ही कृपया ऐसा करें।" +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2094,8 +2101,8 @@ msgid "Registered Users" msgstr "पंजीकृत उपयोक्ता" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "विश्वसनीय उपयोक्ता" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2280,8 +2287,8 @@ msgstr "{user} [1] द्वारा {pkgbase} [2] हटाया गया। #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "विश्वसनीय उपयोक्ता मतदान सूचक : प्रस्ताव {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2334,3 +2341,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "इस कार्य द्वारा संबंधित सभी लंबित पैकेज अनुरोध बंद हो जाएँगे। %sटिप्पणियाँ%s न होने की स्थिति में एक समापन टिप्पणी का स्वतः ही सृजन होगा।" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/hr.po b/po/hr.po index a0474e23..931d6fa5 100644 --- a/po/hr.po +++ b/po/hr.po @@ -11,7 +11,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Lukas Fleischer , 2011\n" -"Language-Team: Croatian (http://www.transifex.com/lfleischer/aurweb/language/hr/)\n" +"Language-Team: Croatian (http://app.transifex.com/lfleischer/aurweb/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -132,15 +132,15 @@ msgid "Type" msgstr "Tip" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -198,8 +198,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -214,7 +215,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -264,7 +265,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -307,9 +308,10 @@ msgstr "Rasprava" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -321,8 +323,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -523,7 +525,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -564,7 +566,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -654,7 +656,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -712,8 +714,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Pouzdan korisnik" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -724,7 +726,7 @@ msgid "Voting is closed for this proposal." msgstr "Glasanje je zaključeno za ovaj prijedlog" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1220,7 +1222,7 @@ msgstr "Developer" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1323,10 +1325,6 @@ msgstr "" msgid "Normal user" msgstr "Običan korisnik" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Pouzdan korisnik" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Račun je suspendiran" @@ -1399,6 +1397,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1823,22 +1830,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2099,7 +2106,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2285,7 +2292,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2339,3 +2346,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/hu.po b/po/hu.po index 7459a716..8745b58f 100644 --- a/po/hu.po +++ b/po/hu.po @@ -15,7 +15,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: PB, 2020\n" -"Language-Team: Hungarian (http://www.transifex.com/lfleischer/aurweb/language/hu/)\n" +"Language-Team: Hungarian (http://app.transifex.com/lfleischer/aurweb/language/hu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -136,16 +136,16 @@ msgid "Type" msgstr "Típus" #: html/addvote.php -msgid "Addition of a TU" -msgstr "TU hozzáadása" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "TU eltávolítása" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "TU eltávolítása (be nem jelentett inaktivitás)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -202,9 +202,10 @@ msgstr "Csomagok keresése, amelyeknek társkarbantartója vagyok" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Üdvözlünk az AUR-ban! További információért olvasd el az %sAUR felhasználói irányelveket%s és az %sAUR TU irányelveket%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -218,8 +219,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Ne felejts el szavazni kedvenc csomagjaidra!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Néhány csomagot lehet, hogy a [community] binárisként szolgáltat." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Néhány csomagot lehet, hogy a [extra] binárisként szolgáltat." #: html/home.php msgid "DISCLAIMER" @@ -268,8 +269,8 @@ msgstr "Törlési kérelem" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Egy csomag Arch User Repositoriból való törlésének kérése. Kérünk, ne használd ezt, ha a csomag törött, és könnyen javítható. Ehelyett vedd fel a kapcsolatot a csomag karbantartójával, és tölts ki megtagadási kérelmet, ha szükséges." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -311,10 +312,11 @@ msgstr "Megbeszélés" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Az Arch User Repositoryval (AUR) és a Trusted User struktúrával kapcsolatos általános tanácskozás helye az %saur-general%s. Az AUR webes felületének fejlesztésével kapcsolatos tanácskozáshoz az %saur-dev%s levelezőlista használandó." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -325,9 +327,9 @@ msgstr "Hibajelentés" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Ha találsz egy hibát az AUR webes felületén, kérünk, tölts ki egy hibajelentést a %shibakövetőnkben%s. A hibakövetőt %scsak%s az AUR webes felületén található hibák jelentésére használd. Csomagolási hibák jelentéséhez lépj kapcsolatba a csomag fenntartójával, vagy hagyj egy hozzászólást a megfelelő csomag oldalán." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -527,8 +529,8 @@ msgid "Delete" msgstr "Törlés" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Csak megbízható felhasználók és fejlesztők tudnak csomagokat törölni." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -568,8 +570,8 @@ msgid "Disown" msgstr "Megtagadás" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Csak megbízható felhasználók és fejlesztők tudnak megtagadni csomagokat." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -658,8 +660,8 @@ msgid "Merge" msgstr "Beolvasztás" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Csak megbízható felhasználók és fejlesztők tudnak csomagokat beolvasztani." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -716,8 +718,8 @@ msgid "I accept the terms and conditions above." msgstr "Elfogadom a feljebb megadott feltételeket." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Megbízható felhasználó" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -728,8 +730,8 @@ msgid "Voting is closed for this proposal." msgstr "A szavazás lezárult erre az indítványra." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "A szavazás csak megbízható felhasználóknak engedélyezett." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1224,8 +1226,8 @@ msgstr "Fejlesztő" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Megbízható felhasználó és fejlesztő" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1327,10 +1329,6 @@ msgstr "A felhasználóneved a bejelentkezéshez használt név lesz. Látható msgid "Normal user" msgstr "Normál felhasználó" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Megbízható felhasználó" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Felhasználói fiók felfüggesztve" @@ -1403,6 +1401,15 @@ msgid "" " the Arch User Repository." msgstr "Az alábbi információ csak akkor szükséges, ha csomagokat szeretnél beküldeni az Arch User Repositoryba." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Nyilvános SSH kulcs" @@ -1826,26 +1833,26 @@ msgstr "Beolvasztás ebbe:" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Törlési kérelem beküldésével megkérsz egy megbízható felhasználót, hogy törölje az alapcsomagot. Ez a típusú kérelem duplikátumok, főági fejlesztők által felhagyott szoftverek, valamint illegális és helyrehozhatatlanul elromlott csomagok esetén használható." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Beolvasztási kérelem beküldésével megkérsz egy megbízható felhasználót, hogy törölje az alapcsomagot, és vigye át a szavazatait és hozzászólásait egy másik alapcsomaghoz. Egy csomag egyesítése nem érinti a kapcsolódó Git tárolókat. Győződj meg róla, hogy frissítetted magadnak a célcsomag Git történetét." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Megtagadási kérelem beküldésével megkérsz egy megbízható felhasználót, hogy tegye árvává az alapcsomagot. Kérünk, hogy ezt csak akkor tedd, ha a csomag igényel fenntartói műveletet, a fenntartó eltűnt, és előzőleg már megpróbáltad felvenni a kapcsolatot a fenntartóval." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2098,8 +2105,8 @@ msgid "Registered Users" msgstr "Regisztrált felhasználók" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Megbízható felhasználók" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2284,8 +2291,8 @@ msgstr "{user} [1] törölte a(z) {pkgbase} [2] csomagt.\n\nTöbbé nem fogsz é #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "Szavazás megbízható felhasználóról: javaslat {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2338,3 +2345,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/id.po b/po/id.po index 96059ac9..62650942 100644 --- a/po/id.po +++ b/po/id.po @@ -12,7 +12,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: se7entime , 2016\n" -"Language-Team: Indonesian (http://www.transifex.com/lfleischer/aurweb/language/id/)\n" +"Language-Team: Indonesian (http://app.transifex.com/lfleischer/aurweb/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -133,16 +133,16 @@ msgid "Type" msgstr "Tipe" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Tambahan dari TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Penghapusan dari TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Penghapusan dari TU (tanpa aktifitas yang tidak dideklarasikan)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -199,9 +199,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Selamat datang di AUR! Harap baca %sPedoman Pengguna AUR%s dan %sPedoman TU AUR%s untuk info lebih lanjut." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -215,7 +216,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "Ingat untuk memberika suara untuk paket favorit anda!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "Beberapa paket mungkin disediakan sebagai binabinari di [comunity]." #: html/home.php @@ -265,7 +266,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -308,9 +309,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -322,8 +324,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -524,7 +526,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -565,7 +567,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -655,7 +657,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -713,7 +715,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -725,7 +727,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1221,7 +1223,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1324,10 +1326,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1400,6 +1398,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1822,22 +1829,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2090,7 +2097,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2276,7 +2283,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2330,3 +2337,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/id_ID.po b/po/id_ID.po index f0612399..4840ca1e 100644 --- a/po/id_ID.po +++ b/po/id_ID.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (Indonesia) (http://www.transifex.com/lfleischer/aurweb/language/id_ID/)\n" +"Language-Team: Indonesian (Indonesia) (http://app.transifex.com/lfleischer/aurweb/language/id_ID/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1820,22 +1827,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2088,7 +2095,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2274,7 +2281,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2328,3 +2335,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/is.po b/po/is.po index 0f3a3fcb..0ec59559 100644 --- a/po/is.po +++ b/po/is.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Icelandic (http://www.transifex.com/lfleischer/aurweb/language/is/)\n" +"Language-Team: Icelandic (http://app.transifex.com/lfleischer/aurweb/language/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1821,22 +1828,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2093,7 +2100,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2279,7 +2286,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2333,3 +2340,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/it.po b/po/it.po index 466d486a..bd145ea6 100644 --- a/po/it.po +++ b/po/it.po @@ -5,7 +5,7 @@ # Translators: # Fanfurlio Farolfi , 2021-2022 # Giovanni Scafora , 2011-2015,2022 -# Giovanni Scafora , 2022 +# Giovanni Scafora , 2022-2023 # Lorenzo Porta , 2014 # Lukas Fleischer , 2011 # mattia_b89 , 2019 @@ -15,8 +15,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Giovanni Scafora , 2022\n" -"Language-Team: Italian (http://www.transifex.com/lfleischer/aurweb/language/it/)\n" +"Last-Translator: Giovanni Scafora , 2022-2023\n" +"Language-Team: Italian (http://app.transifex.com/lfleischer/aurweb/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -137,20 +137,20 @@ msgid "Type" msgstr "Tipo" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Aggiunta di un TU" +msgid "Addition of a Package Maintainer" +msgstr "Aggiunta di un manutentore del pacchetto" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Rimozione di un TU" +msgid "Removal of a Package Maintainer" +msgstr "Rimozione di un manutentore del pacchetto" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Rimozione di un TU (inattività non dichiarata)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "Rimozione di un manutentore del pacchetto (inattività non dichiarata)" #: html/addvote.php msgid "Amendment of Bylaws" -msgstr "Modifica dello statuto" +msgstr "Modifica del regolamento" #: html/addvote.php template/tu_list.php msgid "Proposal" @@ -203,9 +203,10 @@ msgstr "Cerca i pacchetti da me co-mantenuti" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Benvenuto in AUR! Per maggiori informazioni, leggi le %sAUR User Guidelines%s e le %sAUR TU Guidelines%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "Benvenuti in AUR! Prima di inviare un PKGBUILD, per maggiori informazioni, leggete le %sAUR User Guidelines%s e le %sAUR Submission Guidelines%s." #: html/home.php #, php-format @@ -219,8 +220,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Ricorda di votare i tuoi pacchetti preferiti!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Alcuni pacchetti potrebbero essere disponibili come precompilati in [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Alcuni pacchetti potrebbero essere disponibili come precompilati in [extra]." #: html/home.php msgid "DISCLAIMER" @@ -269,8 +270,8 @@ msgstr "Richiesta di rimozione di un pacchetto" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "richiesta per rimuovere un pacchetto dall'Arch User Repository. Non usare questo tipo di richiesta se un pacchetto non funziona e se può essere sistemato facilmente. Contatta il manutentore del pacchetto e, se necessario, invia una richiesta per renderlo orfano." +"the maintainer and file orphan request if necessary." +msgstr "Richiesta di rimozione di un pacchetto dall'Arch User Repository. Non utilizzare questa procedura se un pacchetto non funziona e può essere sistemato facilmente. Contattare, invece, il manutentore e, se necessario, presentare una richiesta per abbandonarlo." #: html/home.php msgid "Merge Request" @@ -312,10 +313,11 @@ msgstr "Discussione" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "La discussione generale sull'Arch User Repository (AUR) e sulla struttura dei TU avviene in %saur-general%s. Per la discussione relativa allo sviluppo dell'interfaccia web di AUR, utilizza la lista di discussione %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "La discussione generale sulla struttura dell'Arch User Repository (AUR) e dei manutentori dei pacchetti si svolge su %saur-general%s. Per le discussioni relative allo sviluppo dell'interfaccia web di AUR, utilizzare la lista di discussione %saur-dev%s." #: html/home.php msgid "Bug Reporting" @@ -326,9 +328,9 @@ msgstr "Segnalazione di un bug" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Se trovi un bug nell'interfaccia web di AUR, invia un report al nostro %sbug tracker%s. Usa il tracker %ssolo%s per inviare i bug di AUR. Per segnalare bug inerenti alla pacchettizzazione, contatta il manutentore oppure lascia un commento nella pagina del pacchetto." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "Se si trova un bug nell'interfaccia web di AUR, si prega di compilare una segnalazione sul nostro %sbug tracker%s. Utilizzare il tracker %ssolo%s per segnalare bug nell'interfaccia web di AUR. Per segnalare bug relativi ai pacchetti, contattare il manutentore o lasciare un commento nella pagina del pacchetto." #: html/home.php msgid "Package Search" @@ -460,7 +462,7 @@ msgstr "Continua" msgid "" "If you have forgotten the user name and the primary e-mail address you used " "to register, please send a message to the %saur-general%s mailing list." -msgstr "Se hai dimenticato il nome utente e l'indirizzo email primario che hai usato per la registrazione, invia un messaggio alla mailing list %saur-general%s." +msgstr "Se hai dimenticato il nome utente e l'indirizzo email primario che hai usato per la registrazione, invia un messaggio alla lista di discussione %saur-general%s." #: html/passreset.php msgid "Enter your user name or your primary e-mail address:" @@ -528,8 +530,8 @@ msgid "Delete" msgstr "Elimina" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Solo i TU e gli sviluppatori possono eliminare i pacchetti." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "Solo i manutentori del pacchetto e gli sviluppatori possono eliminare i pacchetti." #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -569,8 +571,8 @@ msgid "Disown" msgstr "Abbandona" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Solo i TU e gli sviluppatori possono abbandonare i pacchetti." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "Solo i manutentori e gli sviluppatori possono abbandonare un pacchetto." #: html/pkgflagcomment.php msgid "Flag Comment" @@ -659,8 +661,8 @@ msgid "Merge" msgstr "Unisci" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Solo i TU e gli sviluppatori possono unire i pacchetti." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "Solo i manutentori del pacchetto e gli sviluppatori possono unire i pacchetti." #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -717,8 +719,8 @@ msgid "I accept the terms and conditions above." msgstr "Io accetto i termini e le condizioni di cui sopra." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "TU" +msgid "Package Maintainer" +msgstr "Manutentore del pacchetto" #: html/tu.php msgid "Could not retrieve proposal details." @@ -729,8 +731,8 @@ msgid "Voting is closed for this proposal." msgstr "Non puoi più votare per questa proposta." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Solo i TU possono votare." +msgid "Only Package Maintainers are allowed to vote." +msgstr "Possono votare solo i manutentori del pacchetto." #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1225,8 +1227,8 @@ msgstr "Sviluppatore" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "TU e sviluppatore" +msgid "Package Maintainer & Developer" +msgstr "Manutentore del pacchetto e sviluppatore" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1328,10 +1330,6 @@ msgstr "Il tuo nome utente è il nome che userai per l'accesso. È visibile al p msgid "Normal user" msgstr "Utente normale" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "TU" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Account sospeso" @@ -1404,6 +1402,15 @@ msgid "" " the Arch User Repository." msgstr "La seguente informazione è richiesta solo se vuoi inviare i pacchetti nell'Arch User Repository." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "Specifica più chiavi SSH separate da una nuova riga, le linee vuote saranno ignorate." + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "Nascondi commenti eliminati" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Chiave pubblica SSH" @@ -1828,26 +1835,26 @@ msgstr "Unisci con" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Inserendo una richiesta di cancellazione, stai chiedendo ad un Trusted User di cancellare il pacchetto base. Questo tipo di richiesta dovrebbe essere usata per i duplicati, per software abbandonati dall'autore, per sotware illegalmente distribuiti oppure per pacchetti irreparabili." +msgstr "Inviando una richiesta di cancellazione, si chiede al manutentore del pacchetto di eliminare la base del pacchetto. Questo tipo di richiesta dovrebbe essere usata per i duplicati, per il software abbandonato dall'upstream, per i pacchetti illegali e per quelli non più funzionanti." #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Inserendo una richiesta di unione, stai chiedendo ad un Trusted User di cancellare il pacchetto base e trasferire i suoi voti e commenti su un altro pacchetto base. Unire due pacchetti non ha effetto sul corrispondente repository Git. Assicurati di aggiornare lo storico Git del pacchetto di destinazione." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "Inviando una richiesta di unione, si chiede al manutentore di eliminare un pacchetto e di trasferire i suoi voti ed i commenti ad un altro pacchetto. L'unione di un pacchetto non influisce sui repository Git corrispondenti. Assicuratevi di aggiornare voi stessi la cronologia Git del pacchetto di destinazione." #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Inserendo una richiesta di abbandono, stai chiedendo ad un Trusted User di rimuovere la proprietà del pacchetto base. Procedi soltanto se il pacchetto necessita di manutenzione, se il manutentore attuale non risponde e se hai già provato a contattarlo precedentemente." +msgstr "Inviando una richiesta di abbandono di un pacchetto, si chiede ad un manutentore di abbandonarlo. Si prega di farlo solo se il pacchetto necessita di un intervento del manutentore, se il manutentore è irreperibile e se si è già provato a contattarlo in precedenza." #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2104,8 +2111,8 @@ msgid "Registered Users" msgstr "Utenti registrati" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "TU" +msgid "Package Maintainers" +msgstr "Manutentori del pacchetto" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2290,8 +2297,8 @@ msgstr "{user} [1] ha eliminato {pkgbase} [2].\n\nNon riceverai più notifiche p #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "Promemoria per voto TU: Proposta {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "Promemoria per il voto del manutentore dei pacchetti: proposta {id}" #: scripts/notify.py #, python-brace-format @@ -2344,3 +2351,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Questa azione chiuderà tutte le richieste in sospeso dei pacchetti ad essa correlate. Se %scommenti%s vengono omessi, verrà generato automaticamente un commento di chiusura." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "assegnato" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "Mostra altri %d" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "dipendenze" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "L'account non è stato eliminato, selezionare la casella di conferma." + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "Annulla" + +#: templates/requests.html +msgid "Package name" +msgstr "Nome del pacchetto" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "Si noti che, se si nasconde il proprio indirizzo e-mail, esso finirà nell'elenco BCC per qualsiasi notifica di richiesta. Nel caso in cui qualcuno risponda a queste notifiche, non si riceverà un'e-mail. Tuttavia, le risposte sono tipicamente inviate alla lista di discussione e saranno, quindi, visibili nell'archivio." diff --git a/po/ja.po b/po/ja.po index 40349f28..4d356963 100644 --- a/po/ja.po +++ b/po/ja.po @@ -14,7 +14,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: kusakata, 2013-2018,2020-2022\n" -"Language-Team: Japanese (http://www.transifex.com/lfleischer/aurweb/language/ja/)\n" +"Language-Team: Japanese (http://app.transifex.com/lfleischer/aurweb/language/ja/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -135,16 +135,16 @@ msgid "Type" msgstr "タイプ" #: html/addvote.php -msgid "Addition of a TU" -msgstr "TU の追加" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "TU の削除" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "TU の削除 (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -201,9 +201,10 @@ msgstr "共同メンテしているパッケージを検索" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "AUR にようこそ!AUR についての詳しい情報は %sAUR User Guidelines%s や %sAUR TU Guidelines%s を読んで下さい。" +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -217,8 +218,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "お気に入りのパッケージに投票しましょう!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "パッケージがバイナリとして [community] で提供されることになるかもしれません。" +msgid "Some packages may be provided as binaries in [extra]." +msgstr "パッケージがバイナリとして [extra] で提供されることになるかもしれません。" #: html/home.php msgid "DISCLAIMER" @@ -267,8 +268,8 @@ msgstr "削除リクエスト" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Arch User Repository からパッケージを削除するようにリクエストします。パッケージが壊れていて、その不具合を簡単に修正できるような場合、このリクエストは使わないで下さい。代わりに、パッケージのメンテナに連絡したり、必要に応じて孤児リクエストを送りましょう。" +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -310,10 +311,11 @@ msgstr "議論" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Arch User Repository (AUR) や Trusted User に関する一般的な議論は %saur-general%s で行って下さい。AUR ウェブインターフェイスの開発に関しては、%saur-dev%s メーリングリストを使用します。" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -324,9 +326,9 @@ msgstr "バグレポート" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "AUR のウェブインターフェイスにバグを発見した時は%sバグトラッカー%sにバグを報告してください。トラッカーを使って報告できるバグは AUR ウェブインターフェイスのバグ%sだけ%sです。パッケージのバグを報告するときはパッケージのメンテナに連絡するか該当するパッケージのページにコメントを投稿してください。" +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -526,8 +528,8 @@ msgid "Delete" msgstr "削除" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Trusted User と開発者だけがパッケージを削除できます。" +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -567,8 +569,8 @@ msgid "Disown" msgstr "放棄" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Trusted User と開発者だけがパッケージを孤児にできます。" +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -657,8 +659,8 @@ msgid "Merge" msgstr "マージ" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Trusted User と開発者だけがパッケージをマージできます。" +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -715,8 +717,8 @@ msgid "I accept the terms and conditions above." msgstr "私は上記の利用規約を承認します。" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Trusted User" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -727,8 +729,8 @@ msgid "Voting is closed for this proposal." msgstr "この提案への投票は締め切られています。" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Trusted User だけが投票できます。" +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1223,8 +1225,8 @@ msgstr "開発者" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Trusted User & 開発者" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1326,10 +1328,6 @@ msgstr "ユーザー名はログインするときに使用する名前です。 msgid "Normal user" msgstr "ノーマルユーザー" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Trusted user" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "休眠アカウント" @@ -1402,6 +1400,15 @@ msgid "" " the Arch User Repository." msgstr "以下の情報は Arch User Repository にパッケージを送信したい場合にのみ必要になります。" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "SSH 公開鍵" @@ -1824,26 +1831,26 @@ msgstr "マージ" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "削除リクエストを送信することで、Trusted User にパッケージベースの削除を要求できます。削除リクエストを使用するケース: パッケージの重複や、上流によってソフトウェアの開発が放棄された場合、違法なパッケージ、あるいはパッケージがどうしようもなく壊れてしまっている場合など。" +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "マージリクエストを送信することで、パッケージベースを削除して\n投票数とコメントを他のパッケージベースに移動することを Trusted User に要求できます。パッケージのマージは Git リポジトリに影響を与えません。マージ先のパッケージの Git 履歴は自分で更新してください。" +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "孤児リクエストを送信することで、パッケージベースの所有権が放棄されるように Trusted User に要求できます。パッケージにメンテナが何らかの手を加える必要があり、現在のメンテナが行方不明で、メンテナに連絡を取ろうとしても返答がない場合にのみ、リクエストを送信してください。" +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2092,8 +2099,8 @@ msgid "Registered Users" msgstr "登録ユーザー" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Trusted User" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2278,8 +2285,8 @@ msgstr "{user} [1] は {pkgbase} [2] を削除しました。\n\nこのパッケ #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU 投票リマインダー: 提案 {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2332,3 +2339,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "このアクションは関連するパッケージリクエストをすべて取り消します。%sコメント%sを省略した場合、自動的にコメントが生成されます。" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/ko.po b/po/ko.po index a4c694c9..b6d8de3b 100644 --- a/po/ko.po +++ b/po/ko.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Korean (http://www.transifex.com/lfleischer/aurweb/language/ko/)\n" +"Language-Team: Korean (http://app.transifex.com/lfleischer/aurweb/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1820,22 +1827,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2088,7 +2095,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2274,7 +2281,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2328,3 +2335,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/lt.po b/po/lt.po index 627fefd0..f9e7f258 100644 --- a/po/lt.po +++ b/po/lt.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Lithuanian (http://www.transifex.com/lfleischer/aurweb/language/lt/)\n" +"Language-Team: Lithuanian (http://app.transifex.com/lfleischer/aurweb/language/lt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1823,22 +1830,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2103,7 +2110,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2289,7 +2296,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2343,3 +2350,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/nb.po b/po/nb.po index b503de85..f67571d7 100644 --- a/po/nb.po +++ b/po/nb.po @@ -16,7 +16,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Alexander F. Rødseth , 2015,2017-2019\n" -"Language-Team: Norwegian Bokmål (http://www.transifex.com/lfleischer/aurweb/language/nb/)\n" +"Language-Team: Norwegian Bokmål (http://app.transifex.com/lfleischer/aurweb/language/nb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -137,16 +137,16 @@ msgid "Type" msgstr "Type" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Utnevnelse av TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Fjerning av TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Fjerning av TU (inaktiv uten å si i fra)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -203,9 +203,10 @@ msgstr "Søk etter pakker jeg er med på å vedlikeholde" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Velkommen til AUR! Vennligst les %sAUR Brukerveiledning%s og %sAUR TU Veiledning%s for mer informasjon." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -219,8 +220,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Husk å stemme på dine favorittpakker!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Noen pakker finnes som binærfiler i [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Noen pakker finnes som binærfiler i [extra]." #: html/home.php msgid "DISCLAIMER" @@ -269,8 +270,8 @@ msgstr "Forespør sletting" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Forespør at pakken fjernes fra Arch User Repository. Ikke gjør dette hvis pakken er ødelagt og lett kan fikses. Ta kontakt med vedlikeholderen i stedet, eller forespør at pakken gjøres eierløs." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -312,10 +313,11 @@ msgstr "Diskusjon" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Generell diskusjon rundt Arch sitt brukerstyrte pakkebibliotek (AUR) og strukturen rundt betrodde brukere, foregår på %saur-general%s. For diskusjoner relatert til utviklingen av AUR web-grensesnittet, bruk %saur-dev%s e-postlisten." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -326,9 +328,9 @@ msgstr "Feilrapportering" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Vennligst fyll ut en feilrapport i %sfeilrapporteringssystemet%s dersom du finner en feil i AUR sitt web-grensesnitt. Bruk denne %skun%s til å rapportere feil som gjelder AUR sitt web-grensesnitt. For å rapportere feil med pakker, kontakt personen som vedlikeholder pakken eller legg igjen en kommentar på siden til den aktuelle pakken." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -528,8 +530,8 @@ msgid "Delete" msgstr "Slett" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Bare betrodde brukere og utviklere kan slette pakker." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -569,8 +571,8 @@ msgid "Disown" msgstr "Gjør eierløs" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Bare betrodde brukere og Arch utviklere kan gjøre pakker eierløse." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -659,8 +661,8 @@ msgid "Merge" msgstr "Slå sammen" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Bare betrodde brukere og utviklere kan slå sammen pakker." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -717,8 +719,8 @@ msgid "I accept the terms and conditions above." msgstr "Jeg godtar betingelsene ovenfor." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Betrodd bruker" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -729,8 +731,8 @@ msgid "Voting is closed for this proposal." msgstr "Avstemningen er ferdig for dette forslaget." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Bare betrodde brukere har stemmerett." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1225,8 +1227,8 @@ msgstr "Utvikler" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Betrodd bruker & Utvikler" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1328,10 +1330,6 @@ msgstr "Brukernavnet er navnet du vil bruke for å logge inn med. Det er synlig msgid "Normal user" msgstr "Vanlig bruker" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Betrodd bruker" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Konto suspendert" @@ -1404,6 +1402,15 @@ msgid "" " the Arch User Repository." msgstr "Følgende informasjon behøves bare hvis du har tenkt til å sende inn pakker til Arch sitt brukerstyrte pakkebibliotek." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Offentlig SSH-nøkkel" @@ -1827,26 +1834,26 @@ msgstr "Flett med" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Ved å sende inn en forespørsel om sletting spør du en betrodd bruker om å slette pakken. Slike forespørsler bør brukes om duplikater, forlatt programvare samt ulovlige eller pakker som er så ødelagte at de ikke lenger kan fikses." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Ved å sende inn en forespørsel om sammenslåing spør du en betrodd bruker om å slette pakken. Stemmer og kommentarer vil bli overført til en annen pakke. Å slå sammen en pakke har ingen effekt på korresponderende Git repo. Pass på å oppdatere Git historikken til målpakken selv." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Ved å sende inn en forespørsel om å gjøre en pakke eierløs spør du en betrodd bruker om å utføre dette. Vennligst bare send inn forespørselen dersom pakken trenger vedlikehold, nåværende vedlikeholder er fraværende og du allerede har prøvd å kontakte den som vedlikeholder pakken." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2099,8 +2106,8 @@ msgid "Registered Users" msgstr "Registrerte brukere" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Betrodde brukere" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2285,8 +2292,8 @@ msgstr "{user} [1] slettet {pkgbase} [2].\n\nDu vil ikke få flere beskjeder om #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU avstemningspåminnelse: forslag {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2339,3 +2346,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index 49d2eccf..e840e869 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -12,7 +12,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Kim Nordmo , 2017,2019\n" -"Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/lfleischer/aurweb/language/nb_NO/)\n" +"Language-Team: Norwegian Bokmål (Norway) (http://app.transifex.com/lfleischer/aurweb/language/nb_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -133,15 +133,15 @@ msgid "Type" msgstr "Type" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -199,8 +199,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -215,7 +216,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -265,7 +266,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -308,9 +309,10 @@ msgstr "Diskusjon" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -322,8 +324,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -524,7 +526,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -565,7 +567,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -655,7 +657,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -713,8 +715,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Betrodd bruker" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -725,7 +727,7 @@ msgid "Voting is closed for this proposal." msgstr "Stemming er avsluttet for dette forslaget." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1221,7 +1223,7 @@ msgstr "Utvikler" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1324,10 +1326,6 @@ msgstr "" msgid "Normal user" msgstr "Vanlig bruker" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Betrodd bruker" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Konto suspendert" @@ -1400,6 +1398,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1823,22 +1830,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2095,7 +2102,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2281,7 +2288,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2335,3 +2342,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/nl.po b/po/nl.po index d23fe04a..d8df5765 100644 --- a/po/nl.po +++ b/po/nl.po @@ -17,7 +17,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Heimen Stoffels , 2021-2022\n" -"Language-Team: Dutch (http://www.transifex.com/lfleischer/aurweb/language/nl/)\n" +"Language-Team: Dutch (http://app.transifex.com/lfleischer/aurweb/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -138,16 +138,16 @@ msgid "Type" msgstr "Type" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Toevoeging van een TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Verwijdering van een TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Verwijdering van een TU (onverklaarbare inactiviteit)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -204,9 +204,10 @@ msgstr "Zoeken naar pakketten die ik mede onderhoud" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Welkom op AUR! Bekijk voor meer informatie de %sAUR-gebruikersrichtlijnen%s en %sAUR-ontwikkelaarsrichtlijnen%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -220,8 +221,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Vergeet niet te stemmen op uw favoriete pakketten!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Sommige pakketten in [community] kunnen worden aangeleverd als uitvoerbare bestanden." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Sommige pakketten in [extra] kunnen worden aangeleverd als uitvoerbare bestanden." #: html/home.php msgid "DISCLAIMER" @@ -270,8 +271,8 @@ msgstr "Verwijderingsverzoek" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Verzoek om een pakket uit de Arch User Repository te laten verwijderen. Gebruik dit niet als een pakket niet naar behoren functioneert en eenvoudig gerepareerd kan worden. Neem in dat geval contact op met de eigenaar en open zo nodig een onteigeningsverzoek." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -313,10 +314,11 @@ msgstr "Discussiëren" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Algemene discussies met betrekking tot de Arch User Repository (AUR) en de opzet van Trusted Users vinden plaats op %saur-general%s. Discussies met betrekking tot de ontwikkeling van de AUR-webapp vinden plaats op de %saur-dev%s-mailinglijst." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -327,9 +329,9 @@ msgstr "Bugmeldingen" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Als u een bug tegenkomt in de AUR-webapp, open dan een ticket op onze %sbugtracker%s. Gebruik de bugtracker %salléén%s om bugs over AUR te melden. Als u fouten tegenkomt in een pakketsamenstelling, meld dit dan aan de eigenaar of laat een opmerking achter op de bijbehorende pakketpagina." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -529,8 +531,8 @@ msgid "Delete" msgstr "Verwijderen" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Alleen Trusted Users en Developers kunnen pakketten verwijderen." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -570,8 +572,8 @@ msgid "Disown" msgstr "Onteigenen" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Alleen Trusted Users en Developers kunnen pakketten onteigenen." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -660,8 +662,8 @@ msgid "Merge" msgstr "Samenvoegen" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Alleen Trusted Users en Developers kunnen pakketten samenvoegen." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -718,8 +720,8 @@ msgid "I accept the terms and conditions above." msgstr "Ik ga akkoord met de algemene voorwaarden." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Trusted User" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -730,8 +732,8 @@ msgid "Voting is closed for this proposal." msgstr "U kunt niet meer stemmen op dit voorstel." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Alleen Trusted Users zijn bevoegd om te stemmen." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1226,8 +1228,8 @@ msgstr "Ontwikkelaar" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Trusted User en ontwikkelaar" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1329,10 +1331,6 @@ msgstr "Uw gebruikersnaam gebruikt u om in te loggen. Deze naam is openbaar, zel msgid "Normal user" msgstr "Normale gebruiker" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Trusted User" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Account geschorst" @@ -1405,6 +1403,15 @@ msgid "" " the Arch User Repository." msgstr "De volgende informatie is alleen verplicht als u pakketten aan de Arch User Repository wilt toevoegen." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Publieke ssh-sleutel" @@ -1828,26 +1835,26 @@ msgstr "Samenvoegen met" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Als u een verwijderingsverzoek doet, vraagt u aan een zogeheten ‘Trusted User’ om het basispakket te verwijderen. Dit verzoek is bedoeld om duplicaten, niet-onderhouden (door upstream), illegale en onherstelbare pakketten te verwijderen." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Als u een samenvoegingsverzoek doet, vraagt u aan een zogeheten ‘Trusted User’ om het basispakket te verwijderen en de bijbehorende opmerkingen en stemmen over te zetten naar een ander basispakket. Dit heeft geen invloed op de bijbehorende git-repo's, maar u dient wél zelf de git-geschiedenis van het doelpakket bij te werken." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Als u een onteigeningsverzoek doet, vraagt u aan een zogeheten ‘Trusted User’ om het basispakket te onteigenen. Doe dit alleen als een pakket dringend onderhoud nodig heeft, maar de eigenaar niet thuis geeft, ook niet na een persoonlijk verzoek." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2100,8 +2107,8 @@ msgid "Registered Users" msgstr "Geregistreerde gebruikers" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Trusted Users" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2286,8 +2293,8 @@ msgstr "{user} [1] heeft {pkgbase} [2] verwijderd.\n\n\nU ontvangt geen meldinge #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU-stemherinnering aangaande het voorstel ‘{id}’" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2340,3 +2347,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Met deze actie sluit u elk gerelateerd openstaand verzoek. Als %s reacties%s genegeerd worden, dan wordt er een automatische afsluitreactie geplaatst." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/pl.po b/po/pl.po index 97c7d730..e68fa533 100644 --- a/po/pl.po +++ b/po/pl.po @@ -23,7 +23,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Piotr Strębski , 2017-2018,2022\n" -"Language-Team: Polish (http://www.transifex.com/lfleischer/aurweb/language/pl/)\n" +"Language-Team: Polish (http://app.transifex.com/lfleischer/aurweb/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -144,16 +144,16 @@ msgid "Type" msgstr "Rodzaj" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Dodanie ZU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Usunięcie ZU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Usunięcie ZU (niezadeklarowana nieaktywność)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -210,9 +210,10 @@ msgstr "Wyszukaj pakiety, które współ-utrzymuję" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Witamy w AUR! Aby uzyskać więcej informacji, przeczytaj %sInstrukcję Użytkownika AUR%s oraz %sInstrukcję Zaufanego Użytkownika%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -226,8 +227,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Nie zapomnij zagłosować na swoje ulubione pakiety!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Część pakietów może być dostępna w formie binarnej w [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Część pakietów może być dostępna w formie binarnej w [extra]." #: html/home.php msgid "DISCLAIMER" @@ -276,7 +277,7 @@ msgstr "Prośba o usunięcie" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -319,10 +320,11 @@ msgstr "Dyskusja" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Ogólna dyskusja dotycząca Repozytorium Użytkowników Arch (AUR) i struktury Zaufanych Użytkowników odbywa się na %saur-general%s. Dyskusja dotycząca rozwoju interfejsu webowego AUR odbywa się zaś na liście dyskusyjnej %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -333,9 +335,9 @@ msgstr "Zgłaszanie błędów" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Jeśli znalazłeś błąd w interfejsie webowym AUR, zgłoś go w naszym %ssystemie śledzenia błędów%s. Używaj go %swyłącznie%s do zgłaszania błędów związanych z interfejsem webowym AUR. Błędy powiązane z pakietami zgłaszaj ich opiekunom lub zostaw komentarz pod odpowiednim pakietem." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -535,8 +537,8 @@ msgid "Delete" msgstr "Usuń" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Tylko Zaufani Użytkownicy i Deweloperzy mogą usuwać pakiety." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -576,8 +578,8 @@ msgid "Disown" msgstr "Porzuć" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Tylko Zaufani Użytkownicy i Programiści mogą porzucać pakiety." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -666,8 +668,8 @@ msgid "Merge" msgstr "Scal" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Tylko Zaufani Użytkownicy i Deweloperzy mogą scalać pakiety." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -724,8 +726,8 @@ msgid "I accept the terms and conditions above." msgstr "Akceptuję powyższe warunki i zasady." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Zaufany Użytkownik" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -736,8 +738,8 @@ msgid "Voting is closed for this proposal." msgstr "Głosowanie na tą propozycję jest zamknięte." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Tylko Zaufani Użytkownicy mogą głosować." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1232,8 +1234,8 @@ msgstr "Deweloper" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Zaufany Użytkownik i Developer" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1335,10 +1337,6 @@ msgstr "" msgid "Normal user" msgstr "Zwykły użytkownik" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Zaufany Użytkownik" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Konto zablokowane" @@ -1411,6 +1409,15 @@ msgid "" " the Arch User Repository." msgstr "Następująca informacja jest wymagana jedynie w sytuacji, gdy chcesz przesłać pakiety do Repozytorium Użytkowników Arch." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Klucz publiczny SSH" @@ -1836,22 +1843,22 @@ msgstr "Scal z" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2116,8 +2123,8 @@ msgid "Registered Users" msgstr "Zarejestrowani użytkownicy" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Zaufani użytkownicy" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2302,7 +2309,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2356,3 +2363,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/pt.po b/po/pt.po index 05778859..33e01d7d 100644 --- a/po/pt.po +++ b/po/pt.po @@ -11,7 +11,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Lukas Fleischer , 2011\n" -"Language-Team: Portuguese (http://www.transifex.com/lfleischer/aurweb/language/pt/)\n" +"Language-Team: Portuguese (http://app.transifex.com/lfleischer/aurweb/language/pt/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -132,15 +132,15 @@ msgid "Type" msgstr "Tipo" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -198,8 +198,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -214,7 +215,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "Lembre-se de votar nos seus pacotes favoritos!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -264,7 +265,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -307,9 +308,10 @@ msgstr "Discussão" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -321,8 +323,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -523,7 +525,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -564,7 +566,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -654,7 +656,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -712,8 +714,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Usuário Confiável" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -724,7 +726,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1220,7 +1222,7 @@ msgstr "Desenvolvedor" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1323,10 +1325,6 @@ msgstr "" msgid "Normal user" msgstr "Usuário Normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Usuário Confiável" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Conta Suspensa" @@ -1399,6 +1397,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1823,22 +1830,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2099,8 +2106,8 @@ msgid "Registered Users" msgstr "Usuários Registrados" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Usuários Confiáveis" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2285,7 +2292,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2339,3 +2346,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index 6bc6a596..c689a8ab 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -6,7 +6,7 @@ # Albino Biasutti Neto Bino , 2011 # Fábio Nogueira , 2016 # Rafael Fontenelle , 2012-2015 -# Rafael Fontenelle , 2011,2015-2018,2020-2022 +# Rafael Fontenelle , 2011,2015-2018,2020-2023 # Rafael Fontenelle , 2011 # Sandro , 2011 # Sandro , 2011 @@ -16,8 +16,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Rafael Fontenelle , 2011,2015-2018,2020-2022\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/lfleischer/aurweb/language/pt_BR/)\n" +"Last-Translator: Rafael Fontenelle , 2011,2015-2018,2020-2023\n" +"Language-Team: Portuguese (Brazil) (http://app.transifex.com/lfleischer/aurweb/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -138,16 +138,16 @@ msgid "Type" msgstr "Tipo" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Adição de um TU" +msgid "Addition of a Package Maintainer" +msgstr "Adição de Mantenedor de Pacote" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Remoção de um TU" +msgid "Removal of a Package Maintainer" +msgstr "Remoção de um Mantenedor de Pacote" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Remoção de um TU (inatividade não declarada)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "Remoção de um Mantenedor de Pacote (inatividade não declarada)" #: html/addvote.php msgid "Amendment of Bylaws" @@ -204,9 +204,10 @@ msgstr "Pesquisar por pacotes que eu comantenho" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Bem-vindo ao AUR! Por favor, leia as %sDiretrizes de Usuário do AUR%s e %sDiretrizes de UC do AUR%s para mais informações." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "Bem-vindo ao AUR! Por favor, leia as %sDiretrizes do Usuário do AUR%s para obter mais informações e as %sDiretrizes de Envio para o AUR%s se você quiser contribuir com um PKGBUILD." #: html/home.php #, php-format @@ -220,8 +221,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Lembre-se de votar nos seus pacotes favoritos!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Alguns pacotes podem ser fornecidos como binários no repositório [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Alguns pacotes podem ser fornecidos como binários no repositório [extra]." #: html/home.php msgid "DISCLAIMER" @@ -270,8 +271,8 @@ msgstr "Requisição de exclusão" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Requisite que um pacote seja removido do Arch User Repository. Por favor, não use esta opção se um pacote está quebrado, mas que pode ser corrigido facilmente. Ao invés disso, contate o mantenedor do pacote e, se necessário, preencha uma requisição para tornar o pacote órfão." +"the maintainer and file orphan request if necessary." +msgstr "Requisite que um pacote seja removido do Arch User Repository. Por favor, não use esta opção se um pacote está quebrado, mas que pode ser corrigido facilmente. Ao invés disso, contate o mantenedor e, se necessário, preencha uma requisição para tornar o pacote órfão." #: html/home.php msgid "Merge Request" @@ -288,7 +289,7 @@ msgstr "Requisite que um pacote seja mesclado com outro. Pode ser usado quando u msgid "" "If you want to discuss a request, you can use the %saur-requests%s mailing " "list. However, please do not use that list to file requests." -msgstr "Se você quiser discutir uma requisição, você pode usar a lista de discussão %saur-request%s. Porém, por favor não use essa lista para fazer requisições." +msgstr "Se você quiser discutir uma requisição, você pode usar a lista de discussão %saur-request%s. Porém, por favor, não use essa lista para fazer requisições." #: html/home.php msgid "Submitting Packages" @@ -313,10 +314,11 @@ msgstr "Discussão" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Discussões gerais no que se refere à estrutura do Arch User Repository (AUR) e de Trusted Users acontecem no %saur-general%s. Para discussão relacionada ao desenvolvimento da interface web do AUR, use a lista de discussão do %saur-dev%s" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "Discussões gerais no que se refere à estrutura do Arch User Repository (AUR) e de Mantenedores de Pacote acontecem no %saur-general%s. Para discussão relacionada ao desenvolvimento da interface web do AUR, use a lista de discussão do %saur-dev%s" #: html/home.php msgid "Bug Reporting" @@ -327,9 +329,9 @@ msgstr "Relatório de erros" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Se você encontrar um erro na interface web do AUR, por favor preencha um relatório de erro no nosso %srastreador de erros%s. Use o rastreador para relatar erros encontrados no AUR web, %ssomente%s. Para relatar erros de empacotamento, contate o mantenedor do pacote ou deixe um comentário na página de pacote apropriada." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "Se você encontrar um erro na interface web do AUR, preencha um relatório de erro no nosso %srastreador de erros%s. Use o rastreador para relatar erros encontrados na interface web do AUR, %ssomente%s. Para relatar erros de empacotamento, contate o mantenedor ou deixe um comentário na página de pacote apropriada." #: html/home.php msgid "Package Search" @@ -361,12 +363,12 @@ msgstr "Desmarcar" #: html/login.php template/header.php msgid "Login" -msgstr "Conectar" +msgstr "Login" #: html/login.php html/tos.php #, php-format msgid "Logged-in as: %s" -msgstr "Conectado como: %s" +msgstr "Logado como: %s" #: html/login.php template/header.php msgid "Logout" @@ -374,7 +376,7 @@ msgstr "Sair" #: html/login.php msgid "Enter login credentials" -msgstr "Digite as credenciais para se conectar" +msgstr "Digite as credenciais para se logar" #: html/login.php msgid "User name or primary email address" @@ -396,7 +398,7 @@ msgstr "Esqueci minha senha" #, php-format msgid "" "HTTP login is disabled. Please %sswitch to HTTPs%s if you want to login." -msgstr "Acesso por HTTP está desabilitado. Favor %sacesse via HTTPs%s caso queira se conectar." +msgstr "Acesso por HTTP está desabilitado. %sAcesse via HTTPs%s caso queira se conectar." #: html/packages.php template/pkg_search_form.php msgid "Search Criteria" @@ -434,7 +436,7 @@ msgstr "Redefinição de senha" #: html/passreset.php msgid "Check your e-mail for the confirmation link." -msgstr "Verifique no seu e-mail pelo link de confirmação." +msgstr "Confira seu e-mail pelo link de confirmação." #: html/passreset.php msgid "Your password has been reset successfully." @@ -446,7 +448,7 @@ msgstr "Confirme seu nome de usuário ou endereço de e-mail primário:" #: html/passreset.php msgid "Enter your new password:" -msgstr "Digite a sua senha:" +msgstr "Digite a sua nova senha:" #: html/passreset.php msgid "Confirm your new password:" @@ -529,8 +531,8 @@ msgid "Delete" msgstr "Excluir" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Somente Trusted Users e Desenvolvedores podem excluir pacotes." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "Apenas Mantenedores de Pacote e Desenvolvedores podem excluir pacotes." #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -570,8 +572,8 @@ msgid "Disown" msgstr "Abandonar" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Apenas Trusted Users e Desenvolvedores podem abandonar pacotes." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "Apenas Mantenedores de Pacote e Desenvolvedores podem tornar órfãos pacotes." #: html/pkgflagcomment.php msgid "Flag Comment" @@ -660,8 +662,8 @@ msgid "Merge" msgstr "Mesclar" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Somente Trusted Users e Desenvolvedores podem mesclar pacotes." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "Apenas Mantenedores de Pacote e Desenvolvedores podem mesclar pacotes." #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -718,8 +720,8 @@ msgid "I accept the terms and conditions above." msgstr "Eu aceito os termos e condições acima." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Trusted User" +msgid "Package Maintainer" +msgstr "Mantenedor de Pacote" #: html/tu.php msgid "Could not retrieve proposal details." @@ -730,8 +732,8 @@ msgid "Voting is closed for this proposal." msgstr "A votação está encerrada para esta proposta." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Apenas Trusted Users têm permissão para votar." +msgid "Only Package Maintainers are allowed to vote." +msgstr "Apenas Mantenedores de Pacote podem votar." #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1226,8 +1228,8 @@ msgstr "Desenvolvedor" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Trusted User & Desenvolvedor" +msgid "Package Maintainer & Developer" +msgstr "Mantenedor de Pacote & Desenvolvedor" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1329,10 +1331,6 @@ msgstr "Seu nome de usuário é o nome que você vai usar para se autenticar. É msgid "Normal user" msgstr "Usuário normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Trusted user" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Conta suspensa" @@ -1405,6 +1403,15 @@ msgid "" " the Arch User Repository." msgstr "A informação a seguir é necessária apenas se você deseja enviar pacotes para o Arch User Repository." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "Especifique várias chaves SSH separadas por nova linha, linhas vazias são ignoradas." + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "Ocultar comentários excluídos" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Chave pública SSH" @@ -1829,26 +1836,26 @@ msgstr "Mesclar em" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Ao enviar uma requisição de exclusão, você solicita que um Trusted User exclua o pacote base. Esse tipo de requisição deveria ser usada em caso de duplicidade, softwares abandonados pelo upstream, assim como pacotes ilegais ou irreparavelmente quebrados." +msgstr "Ao enviar uma requisição de exclusão, você solicita que um Mantenedor de Pacote exclua o pacote base. Esse tipo de requisição deveria ser usada em caso de duplicidade, softwares abandonados pelo upstream, assim como pacotes ilegais ou irreparavelmente quebrados." #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Ao enviar uma requisição de mesclagem, você solicita que um Trusted User exclua o pacote base e transfira seus votos e comentários para um outro pacote base. Mesclar um pacote não afeta os repositórios Git correspondentes. Certifique-se de você mesmo atualizar o histórico Git do pacote alvo." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "Ao enviar uma requisição de mesclagem, você solicita que um Mantenedor de Pacote exclua o pacote base e transfira seus votos e comentários para um outro pacote base. Mesclar um pacote não afeta os repositórios Git correspondentes. Certifique-se de você mesmo atualizar o histórico Git do pacote alvo." #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Ao enviar uma requisição de tornar órfão, você pede que um Trusted User abandona o pacote base. Por favor, apenas faça isto se o pacote precise de ação do mantenedor, estando este ausente por muito tempo, e você já tentou – e não conseguiu – contatá-lo anteriormente." +msgstr "Ao enviar uma requisição de tornar órfão, você pede que um Mantenedor de Pacote abandona o pacote base. Por favor, apenas faça isto se o pacote precise de ação do mantenedor, estando este ausente por muito tempo, e você já tentou – e não conseguiu – contatá-lo anteriormente." #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2105,8 +2112,8 @@ msgid "Registered Users" msgstr "Usuários registrados" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Trusted Users" +msgid "Package Maintainers" +msgstr "Mantenedores de Pacote" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2291,8 +2298,8 @@ msgstr "{user} [1] excluiu {pkgbase} [2].\n\nVocê não mais receberá notifica #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "Lembrete de votação de TU: Proposta {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "Lembrete de Voto de Mantenedor de Pacote: Proposta {id}" #: scripts/notify.py #, python-brace-format @@ -2344,4 +2351,36 @@ msgstr "Comentários relacionados ao fechamento de requisição de pacote..." msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." -msgstr "Esta ação fechará todas as requisições de pacote pendentes relacionadas a ela. Se %sComentários%s for omitido, um comentário de encerramento será gerado automaticamente." +msgstr "Esta ação fechará todas as requisições de pacote pendentes relacionadas a ela. Se %sComentários%s forem omitidos, um comentário de encerramento será gerado automaticamente." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "atribuído" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "Mostrar %d mais" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "dependências" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "A conta não foi excluída, marque a caixa de confirmação." + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "Cancelar" + +#: templates/requests.html +msgid "Package name" +msgstr "Nome do pacote" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "Observe que se você ocultar seu endereço de e-mail, ele será incluído na lista de CCO para quaisquer notificações de requisição. Caso alguém responda a essas notificações, você não receberá um e-mail. No entanto, as respostas geralmente são enviadas para a lista de discussão e, portanto, seriam visíveis no arquivo." diff --git a/po/pt_PT.po b/po/pt_PT.po index 5d2ff7de..8d065e15 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -16,7 +16,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Christophe Silva , 2018\n" -"Language-Team: Portuguese (Portugal) (http://www.transifex.com/lfleischer/aurweb/language/pt_PT/)\n" +"Language-Team: Portuguese (Portugal) (http://app.transifex.com/lfleischer/aurweb/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -137,16 +137,16 @@ msgid "Type" msgstr "Tipo" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Adição de um TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Remoção de um TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Remoção de um TU (inatividade não declarada)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -203,9 +203,10 @@ msgstr "Procurar por pacotes que eu co-mantenho" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Bem-vindo ao AUR! Por favor leia as %sOrientações de Utilizador do AUR%s e %sOrientações de TU do AUR%s para mais informações." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -219,8 +220,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Lembre-se de votar nos seus pacotes favoritos!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Alguns dos pacotes podem ser fornecidos como binários no repositório [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Alguns dos pacotes podem ser fornecidos como binários no repositório [extra]." #: html/home.php msgid "DISCLAIMER" @@ -269,8 +270,8 @@ msgstr "Pedido para Apagar" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Pedido para que um pacote seja removido do Arch User Repository. Por favor não use este pedido se um pacote está danificado e pode ser resolvido facilmente. Contacte o responsável pelo mesmo e faça um Pedido para Tornar Orfão se necessário." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -312,10 +313,11 @@ msgstr "Discussão" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "A discussão geral sobre o Repositório do Usuário do Arco (AUR) e a estrutura do Usuário Confiável ocorre em %s aur-general %s. Para discussão relacionada ao desenvolvimento da interface da web AUR, use a lista de emails %s aur-dev %s" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -326,8 +328,8 @@ msgstr "Reportar um Bug" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -528,8 +530,8 @@ msgid "Delete" msgstr "Eliminar" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Apenas Utilizadores de Confiança e Programadores podem eliminar pacotes." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -569,8 +571,8 @@ msgid "Disown" msgstr "Renunciar" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Somente Usuários Verificados e Desenvolvedores podem desaprovar pacotes." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -659,8 +661,8 @@ msgid "Merge" msgstr "Fundir" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Apenas Utilizadores de Confiança e Programadores podem fundir pacotes." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -717,8 +719,8 @@ msgid "I accept the terms and conditions above." msgstr "Eu aceito os termos e condições acima mencionados." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Utilizador de Confiança" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -729,8 +731,8 @@ msgid "Voting is closed for this proposal." msgstr "A votação está fechada para esta proposta." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Apenas Utilizadores de Confiança podem votar." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1225,7 +1227,7 @@ msgstr "Desenvolvedor" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1328,10 +1330,6 @@ msgstr "" msgid "Normal user" msgstr "Utilizador normal" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Utilizador de confiança" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Conta Suspensa" @@ -1404,6 +1402,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1828,22 +1835,22 @@ msgstr "Juntar em" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2104,8 +2111,8 @@ msgid "Registered Users" msgstr "Utilizadores Registados" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Utilizadores de Confiança" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2290,7 +2297,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2344,3 +2351,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/ro.po b/po/ro.po index ecee97fd..0a58d4fc 100644 --- a/po/ro.po +++ b/po/ro.po @@ -5,6 +5,7 @@ # Translators: # Arthur Țițeică , 2013-2015 # Lukas Fleischer , 2011 +# Marius Tcaci, 2023 # Mihai Coman , 2011-2014 msgid "" msgstr "" @@ -12,8 +13,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Arthur Țițeică , 2013-2015\n" -"Language-Team: Romanian (http://www.transifex.com/lfleischer/aurweb/language/ro/)\n" +"Last-Translator: Marius Tcaci, 2023\n" +"Language-Team: Romanian (http://app.transifex.com/lfleischer/aurweb/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -48,7 +49,7 @@ msgstr "" #: html/503.php msgid "Service Unavailable" -msgstr "" +msgstr "Serviciu indisponibil" #: html/503.php msgid "" @@ -77,7 +78,7 @@ msgstr "Nu ai permisiune pentru a modifica acest cont." #: html/account.php lib/acctfuncs.inc.php msgid "Invalid password." -msgstr "" +msgstr "Parolă invalidă" #: html/account.php msgid "Use this form to search existing accounts." @@ -134,16 +135,16 @@ msgid "Type" msgstr "Tip" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Adăugarea unui TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Înlăturarea unui TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Înlăturarea unui TU (inactivitate nedeclarată)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -163,7 +164,7 @@ msgstr "" #: html/commentedit.php template/pkg_comments.php msgid "Edit comment" -msgstr "" +msgstr "Editează comentariul" #: html/home.php template/header.php msgid "Dashboard" @@ -179,7 +180,7 @@ msgstr "" #: html/home.php msgid "My Requests" -msgstr "" +msgstr "Cererile mele" #: html/home.php msgid "My Packages" @@ -187,7 +188,7 @@ msgstr "Pachetele mele" #: html/home.php msgid "Search for packages I maintain" -msgstr "" +msgstr "Caută pachetele pe care le intretin" #: html/home.php msgid "Co-Maintained Packages" @@ -200,9 +201,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Bine ai venit la AUR! Te rog citește %sGhidul utilizatorului AUR%s și %sGhidul AUR TU%s pentru mai multe informații." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -216,8 +218,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Nu uita să votezi pentru pachetele tale favorite!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Unele pachete pot fi furnizate ca binare în [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Unele pachete pot fi furnizate ca binare în [extra]." #: html/home.php msgid "DISCLAIMER" @@ -227,11 +229,11 @@ msgstr "DECLARAȚIE DE NEASUMARE A RESPONSABILITĂȚII" msgid "" "AUR packages are user produced content. Any use of the provided files is at " "your own risk." -msgstr "" +msgstr "Pachetele AUR sunt continut produs de utilizatori. Orice utilizare a fisierelor puse la dispozitie se face pe propriul risc." #: html/home.php msgid "Learn more..." -msgstr "" +msgstr "Descoperă mai multe..." #: html/home.php msgid "Support" @@ -266,7 +268,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -309,9 +311,10 @@ msgstr "Discuție" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -323,8 +326,8 @@ msgstr "Semnalare buguri" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -525,8 +528,8 @@ msgid "Delete" msgstr "Șterge" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Numai Dezvoltatorii și Trusted Users pot șterge pachete." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -566,7 +569,7 @@ msgid "Disown" msgstr "Abandonează" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -656,8 +659,8 @@ msgid "Merge" msgstr "Fuzionare" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Numai Dezvoltatorii și Trusted Users pot fuziona pachete." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -714,8 +717,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Trusted User" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -726,8 +729,8 @@ msgid "Voting is closed for this proposal." msgstr "Votarea este închisă pentru această propunere." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Doar Trusted Users au permisiunea să voteze." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1222,8 +1225,8 @@ msgstr "Dezvoltator" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Utilizator de încredere (TU) & Dezvoltator" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1325,10 +1328,6 @@ msgstr "" msgid "Normal user" msgstr "Utilizator obișnuit" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Trusted user" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Cont suspendat" @@ -1401,6 +1400,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1630,7 +1638,7 @@ msgstr "Voturi" #: template/pkgbase_details.php template/pkg_details.php #: template/pkg_search_form.php template/pkg_search_results.php msgid "Popularity" -msgstr "" +msgstr "Popularitate" #: template/pkgbase_details.php template/pkg_details.php msgid "First Submitted" @@ -1825,22 +1833,22 @@ msgstr "Fuzionează" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -1962,7 +1970,7 @@ msgstr "Votat" #: template/pkg_search_form.php msgid "Last modified" -msgstr "" +msgstr "Ultima modificare" #: template/pkg_search_form.php msgid "Ascending" @@ -2101,8 +2109,8 @@ msgid "Registered Users" msgstr "Utilizatori înregistrați" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Trusted users" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2287,7 +2295,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2341,3 +2349,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/ru.po b/po/ru.po index 4a8a18f7..ca2890a2 100644 --- a/po/ru.po +++ b/po/ru.po @@ -22,7 +22,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Kevin Morris , 2021\n" -"Language-Team: Russian (http://www.transifex.com/lfleischer/aurweb/language/ru/)\n" +"Language-Team: Russian (http://app.transifex.com/lfleischer/aurweb/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -143,16 +143,16 @@ msgid "Type" msgstr "Тип" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Добавление TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Удаление TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Удаление TU (неактивность без уведомлений)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -209,9 +209,10 @@ msgstr "Поиск пакетов, в которых я сопровождающ #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Добро пожаловать в AUR! Пожалуйста, ознакомьтесь с %sРуководством пользователя AUR%s и с %sРуководством доверенного пользователя AUR%s, чтобы узнать больше." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -225,8 +226,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Не забывайте голосовать за понравившиеся вам пакеты!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "В хранилище [community] некоторые пакеты могут быть представлены в бинарном виде." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "В хранилище [extra] некоторые пакеты могут быть представлены в бинарном виде." #: html/home.php msgid "DISCLAIMER" @@ -275,8 +276,8 @@ msgstr "Запрос на удаление" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Запросить удаление пакета из AUR. Пожалуйста, не используйте это действие, если пакет не собирается и это может быть легко исправлено. Вместо этого, свяжитесь с сопровождающим и отправьте запрос на смену сопровождающего, если необходимо." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -318,10 +319,11 @@ msgstr "Обсуждение" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Общее обсуждение Пользовательского Репозитория ArchLinux (AUR) и структуры Доверенных Пользователей ведется в %saur-general%s. Для обсуждение разработки веб-интерфейса AUR используйте %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -332,9 +334,9 @@ msgstr "Отчет об ошибке" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Если вы нашли баг в интерфейсе AUR, пожалуйста, отправьте сообщение на %sбаг трекер%s. Используйте данный баг трекер %sтолько%s для сообщениях о багах в AUR. Если вы хотите сообщить о баге в пакете, свяжитесь с сопровождающим, или оставьте комментарий на соответствующей странице." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -534,8 +536,8 @@ msgid "Delete" msgstr "Удалить" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Только Доверенные Пользователи и Разработчики могут удалять пакеты." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -575,8 +577,8 @@ msgid "Disown" msgstr "Бросить" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Только Доверенные Пользователи или разработчики могут бросить пакеты." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -665,8 +667,8 @@ msgid "Merge" msgstr "Объединить" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Только Доверенные Пользователи и Разработчики могут объединять пакеты." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -723,8 +725,8 @@ msgid "I accept the terms and conditions above." msgstr "Я принимаю приведённые выше положения и условия." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Доверенный пользователь" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -735,8 +737,8 @@ msgid "Voting is closed for this proposal." msgstr "Голосование закрыто." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Только Доверенные Пользователи имеют право голоса." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1231,8 +1233,8 @@ msgstr "Разработчик" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Доверенные пользователи и Разработчики" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1334,10 +1336,6 @@ msgstr "Имя пользователя имя, которое будет ис msgid "Normal user" msgstr "Обычный пользователь" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Доверенный пользователь" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Действие учетной записи приостановлено" @@ -1410,6 +1408,15 @@ msgid "" " the Arch User Repository." msgstr "Следующая информация необходима, только если вы хотите загружать пакеты в AUR." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Публичный SSH ключ" @@ -1835,26 +1842,26 @@ msgstr "Объединить с" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Отправляя запрос удаления, Вы просите Доверенного Пользователя удалить основной пакет. Этот тип запроса должен использоваться для дубликатов, заброшенных, а также незаконных и безнадёжно сломанных пакетов." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Отправляя запрос на слияние, Вы просите Доверенного Пользователя удалить основной пакет, переместить голоса и комментарии к другому основному пакету. Слияние пакета не влияет на соответствующие Git репозитории. Обновите Git историю целевого пакета самостоятельно." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Отправляя сиротский запрос, Вы просите Доверенного Пользователя бросить основной пакет. Пожалуйста, делайте это, только если пакет нуждается в действиях обслуживающего, который недоступен и вы уже пытались связаться с ним ранее." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2115,8 +2122,8 @@ msgid "Registered Users" msgstr "Зарегистрированных пользователей" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Доверенных пользователей" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2301,7 +2308,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2355,3 +2362,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/sk.po b/po/sk.po index ca124981..a54f145f 100644 --- a/po/sk.po +++ b/po/sk.po @@ -13,7 +13,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Jose Riha , 2018,2022\n" -"Language-Team: Slovak (http://www.transifex.com/lfleischer/aurweb/language/sk/)\n" +"Language-Team: Slovak (http://app.transifex.com/lfleischer/aurweb/language/sk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -134,16 +134,16 @@ msgid "Type" msgstr "Typ" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Pridanie TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Odobranie TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Odobranie TU (neohlásená neaktivita)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -200,9 +200,10 @@ msgstr "Hľadať balíčky, v ktorých pôsobím ako spolupracovník" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Vitajte v AUR! Prečítajte si prosím %sAUR smernicu pre užívateľov%s a %sAUR smernicu pre TU%s pre ďalšie informácie." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -216,8 +217,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Nezabudnite hlasovať za svoje obľúbené balíčky!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Niektoré balíčky môžu byť poskytnuté ako binárky v [community]. " +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Niektoré balíčky môžu byť poskytnuté ako binárky v [extra]. " #: html/home.php msgid "DISCLAIMER" @@ -266,8 +267,8 @@ msgstr "Žiadosť o vymazanie" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Žiadosť o odstránenie balíčka z AUR. Nepoužívajte prosím túto možnosť v prípade, že balíček je pokazený a možno ho ľahko opraviť. Namiesto toho radšej kontaktujte jeho správcu alebo v prípade nutnosti požiadajte o jeho osirenie." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -309,10 +310,11 @@ msgstr "Diskusia" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Všeobecná diskusia týkajúca sa Arch Užívateľského Repozitára (AUR) a štruktúry dôverovaných užívateľov (TU) je na %saur-general%s. Na diskusiu týkajúcu sa vývoja AUR webu použite %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -323,9 +325,9 @@ msgstr "Ohlasovanie chýb" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Ak nájdete chybu vo webovom rozhraní AUR, pošlite prosím správu o chybe na náš %sbug tracker%s. Posielajte sem %slen%s chyby webového rozhrania AUR. Pre nahlásenie chýb balíčkov kontaktujte správcu balíčka alebo zanechate komentár na príslušnej stránke balíčka." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -525,8 +527,8 @@ msgid "Delete" msgstr "Vymazať" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Len dôverovaní užívatelia a vývojári môžu vymazať balíčky." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -566,8 +568,8 @@ msgid "Disown" msgstr "Vyvlastniť" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Len dôverovaní užívatelia a vývojári môžu vyvlastňovať balíčky." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -656,8 +658,8 @@ msgid "Merge" msgstr "Zlúčiť" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Len dôverovaní užívatelia a vývojári môžu zlúčiť balíčky." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -714,8 +716,8 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Dôverovaný užívateľ (TU)" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -726,8 +728,8 @@ msgid "Voting is closed for this proposal." msgstr "Hlasovanie o tomto návrhu bolo ukončené." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Práve hlasovať majú len dôverovaní užívatelia" +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1222,8 +1224,8 @@ msgstr "Vývojár" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Dôverovaný užívateľ & Vývojár" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1325,10 +1327,6 @@ msgstr "" msgid "Normal user" msgstr "Normálny užívateľ" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Dôverovaný užívateľ (TU)" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Účet bol pozastavený" @@ -1401,6 +1399,15 @@ msgid "" " the Arch User Repository." msgstr "Nasledujúca informácia je dôležitá iba v prípade, že chcete podať balíčky do AUR." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Verejný SSH kľúč" @@ -1826,26 +1833,26 @@ msgstr "Zlúčiť do" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Odoslaním žiadosti na vymazanie balíčka žiadate dôverovaného užívateľa t.j. Trusted User, aby vymazal balíček aj s jeho základňou. Tento typ požiadavky by mal použitý pre duplikáty, softvér ku ktorému už nie sú zdroje ako aj nelegálne a neopraviteľné balíčky." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Odoslaním žiadosti na zlúčenie balíčka žiadate dôverovaného užívateľa t.j. Trusted User, aby vymazal balíček aj s jeho základňou a preniesol hlasy a komentáre na inú základňu balíčka. Zlúčenie balíčka nezasiahne prináležiace Git repozitáre, preto sa uistite, že Git história cieľového balíčka je aktuálna." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Odoslaním žiadosti na osirotenie balíčka žiadate dôverovaného užívateľa t.j. Trusted User, aby vyvlastnil balíček aj s jeho základňou. Toto urobte len vtedy, ak balíček vyžaduje zásah od vlastníka, vlastník nie je zastihnuteľný a už ste sa niekoľkokrát pokúšali vlastníka kontaktovať." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2106,8 +2113,8 @@ msgid "Registered Users" msgstr "Registrovaní užívatelia" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Dôverovaní užívatelia (TU)" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2292,7 +2299,7 @@ msgstr "{user} [1] odstránil(a) {pkgbase} [2].\n\nUpozornenia na tento balíče #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2346,3 +2353,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Táto operácia uzavrie všetky súvisiace nevybavené žiadosti balíčkov. Ak %sComments%s vynecháte, použije sa automaticky generovaný komentár." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/sr.po b/po/sr.po index 4054d7df..becffa33 100644 --- a/po/sr.po +++ b/po/sr.po @@ -13,7 +13,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Slobodan Terzić , 2011-2012,2015-2017\n" -"Language-Team: Serbian (http://www.transifex.com/lfleischer/aurweb/language/sr/)\n" +"Language-Team: Serbian (http://app.transifex.com/lfleischer/aurweb/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -134,16 +134,16 @@ msgid "Type" msgstr "Vrsta" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Dodavanje TU" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Uklanjanje TU" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Uklanjanje TU (nedeklarisana neaktivnost)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -200,9 +200,10 @@ msgstr "Pretraži pakete koje koodržavam" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Dobrodošli u AUR! Molimo pročitajte %sSmernice za korisnike AUR-a%s i %sSmernice za poverljive korinike%s za više informacija." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -216,8 +217,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Ne zaboravite da glasate za omiljene pakete!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Neki paketi se dostavljaju u binarnom obliku u riznici [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Neki paketi se dostavljaju u binarnom obliku u riznici [extra]." #: html/home.php msgid "DISCLAIMER" @@ -266,8 +267,8 @@ msgstr "Zahtevi za brisanje" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "zahtev za brisanje paketa iz Arčove Korisničke Riznice. Ne koristite ovo ako je paket polomljen i može se lako ispraviti. Umesto toga, kontaktirajte održavaoca paketa i podnesite zahtev za odricanje ukoliko je potreban." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -309,10 +310,11 @@ msgstr "Diskusija" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Opšta diskusija vezana za Arčovu Korisničku Riznicu (AUR) i strukturu Poverljivih korisnika se vodi na dopisnoj listi %saur-general%s.Za diskusiju o razvoju samog web sučelja AUR-a, pogedajte dopisnu listu %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -323,9 +325,9 @@ msgstr "Prijavljivanje grešaka" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Ukoliko nađete grešku u web sučelju AUR-a. molimo da je prijavite na našem %sbubolovcu%s. Bubolovac koristite %sisključivo%s za prjavljivanje grešaka u samom AUR-u. Za prijavu grešaka u samim paketima kontaktirajte održavaoce paketa ili ostavite komentar na odgovarajućoj stranici paketa." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -525,8 +527,8 @@ msgid "Delete" msgstr "Obriši" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Samo Poverljivi korisnici i Programeri mogu brisati pakete." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -566,8 +568,8 @@ msgid "Disown" msgstr "Odrekni se" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Samo Poverljivi korisnici i Programeri mogu vršiti odricanje paketa." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -656,8 +658,8 @@ msgid "Merge" msgstr "Spoji" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Samo Poverljivi korisnici i Programeri mogu da spajaju pakete." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -714,8 +716,8 @@ msgid "I accept the terms and conditions above." msgstr "Prihvatam gore navedene uslove." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Poverljivi korisnik" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -726,8 +728,8 @@ msgid "Voting is closed for this proposal." msgstr "Glasanje o ovom predlogu je završeno." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Samo poverljivi korisnici mogu da glasaju." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1222,8 +1224,8 @@ msgstr "Programer" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Poverljivi korisnik i programer" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1325,10 +1327,6 @@ msgstr "Vaše korisničko ime kojim se prijavljujete. Vidljivo je u javnosti, č msgid "Normal user" msgstr "Običan korisnik" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Poverljivi korisnik" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Nalog je suspendovan" @@ -1401,6 +1399,15 @@ msgid "" " the Arch User Repository." msgstr "Sledeće informacije su neophodne ako želite da prilažete pakete u Arčovu korisničku riznicu." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Javni SSH ključ" @@ -1825,26 +1832,26 @@ msgstr "Stopi sa" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Podnošenjem zahteva za brisanje tražili ste of poverljivog korisnika da obriše bazu paketa. Ovaj tip zahteva treba koristiti za duplikate, uzvodno napušten softver, kao i nelegalne ili nepopravljivo pokvarene pakete." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Podnošenjem zahteva za spajanje tražili ste of poverljivog korisnika da obriše bazu paketa i spoji njene glasove sa drugom bazom paketa. Spajanje paketa ne utiče na pripadajuće Git riznice. Postarajte se sami da ažurirate Git istorijat ciljanog paketa." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Podnošenjem zahteva za odricanje tražili ste od poverljivog korisnika da izvrži odricanje od baze paketa. Molimo da ovo tražite samo ukoliko paket zahteva održavanje, a održavalac je nedosupan i već ste pokušali da ga kontaktirate." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2101,8 +2108,8 @@ msgid "Registered Users" msgstr "Registrovanih korisnika" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Poverljivih korisnika" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2287,7 +2294,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2341,3 +2348,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/sr_RS.po b/po/sr_RS.po index a924dc4c..cfe5b5d3 100644 --- a/po/sr_RS.po +++ b/po/sr_RS.po @@ -11,7 +11,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Nikola Stojković , 2013\n" -"Language-Team: Serbian (Serbia) (http://www.transifex.com/lfleischer/aurweb/language/sr_RS/)\n" +"Language-Team: Serbian (Serbia) (http://app.transifex.com/lfleischer/aurweb/language/sr_RS/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -132,15 +132,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -198,8 +198,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -214,7 +215,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "Не заборави да гласаш за омиљене пакете!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -264,7 +265,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -307,9 +308,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -321,8 +323,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -523,7 +525,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -564,7 +566,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -654,7 +656,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -712,7 +714,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -724,7 +726,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1220,7 +1222,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1323,10 +1325,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1399,6 +1397,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1823,22 +1830,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2099,7 +2106,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2285,7 +2292,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2339,3 +2346,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/sv_SE.po b/po/sv_SE.po index 6abb8452..651b8bfb 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -7,7 +7,7 @@ # Kevin Morris , 2022 # Kim Svensson , 2011 # Kim Svensson , 2012 -# Luna Jernberg , 2021-2022 +# Luna Jernberg , 2021-2023 # Robin Björnsvik , 2014-2015 msgid "" msgstr "" @@ -15,8 +15,8 @@ msgstr "" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Kevin Morris , 2022\n" -"Language-Team: Swedish (Sweden) (http://www.transifex.com/lfleischer/aurweb/language/sv_SE/)\n" +"Last-Translator: Luna Jernberg , 2021-2023\n" +"Language-Team: Swedish (Sweden) (http://app.transifex.com/lfleischer/aurweb/language/sv_SE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -137,16 +137,16 @@ msgid "Type" msgstr "Typ" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Tillägg av en TU" +msgid "Addition of a Package Maintainer" +msgstr "Tillägg av en paketunderhållare" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Borttagning av en TU" +msgid "Removal of a Package Maintainer" +msgstr "Borttagning av en paketunderhållare" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Borttagning av en TU (odeklarerad inaktivitet)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "Borttagning av en paketunderhållare (odeklarerad inaktivitet)" #: html/addvote.php msgid "Amendment of Bylaws" @@ -203,9 +203,10 @@ msgstr "Sök efter paket jag är sam-ansvarig för" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Välkommen till AUR! Var god och läs %sAUR User Guidelines%s och %sAUR TU Guidelines%s för mer information" +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "Välkommen till AUR! Vänligen läs %sAUR användarriktlinjer%s för mer information och %sAUR Inlämningsriktlinjer%s om du vill bidra med en PKGBUILD." #: html/home.php #, php-format @@ -219,8 +220,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Kom ihåg att rösta på dina favorit paket!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Några paket kan vara tillhandahållna som binära filer i [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Några paket kan vara tillhandahållna som binära filer i [extra]." #: html/home.php msgid "DISCLAIMER" @@ -269,8 +270,8 @@ msgstr "Raderings förfrågan" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Begär att ett paket ska bli borttaget från Arch User Repository. Snälla använd inte detta om packetet bara är trasigt och kan enkelt bli fixat. Kontakta paket ansvarige istället, och begär att paketet ska bli herrelöst" +"the maintainer and file orphan request if necessary." +msgstr "Begär att ett paket tas bort från Arch User Repository. Vänligen använd inte detta om ett paket är trasigt och lätt kan fixas. Kontakta istället underhållaren och lämna in begäran om ett föräldralöst paket vid behov." #: html/home.php msgid "Merge Request" @@ -312,10 +313,11 @@ msgstr "Diskussion" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Generella diskussioner om Arch User Repository (AUR) och Trusted User strukturen tar plats på %saur-general%s. För diskussioner om utvecklingen av AUR web interfacet, använd %saur-dev%s maillistan." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "Allmän diskussion om Arch User Repository (AUR) och Paketunderhållar-strukturen äger rum på %saur-general%s. För diskussion som rör utvecklingen om AUR-webbgränssnittet, använd %saur-dev%s mailinglistan." #: html/home.php msgid "Bug Reporting" @@ -326,9 +328,9 @@ msgstr "Bugg Rapportering" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Om du hittar en bug i AUR webbgränssnittet, var snäll och fyll i en rapport i vårt %särendehanteringssystem%s. Använd systemet %sbara%s för buggar i webbgränssnittet. För att raportera paketbuggar kontakta den som är ansvarig för paketet istället, eller lämna en kommentar på paketets sida." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "Om du hittar ett fel i AUR-webbgränssnittet, vänligen fyll i en felrapport på våran %sfelspårare%s. Använd felspåraren för att rapportera buggar i AUR-webbgränssnittet %sendast%s. För att rapportera paketbuggar kontakta underhållaren eller lämna en kommentar på lämplig paketsida." #: html/home.php msgid "Package Search" @@ -528,8 +530,8 @@ msgid "Delete" msgstr "Radera" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Bara Trusted Users och Developers kan radera paket." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "Endast paketunderhållare och utvecklare kan ta bort paket." #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -569,8 +571,8 @@ msgid "Disown" msgstr "Gör herrelös" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Bara Trusted Users och Developers kan göra paket herrelösa." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "Endast Paketunderhållare och utvecklare kan göra paket herrelösa" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -659,8 +661,8 @@ msgid "Merge" msgstr "Slå ihop" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Bara Trusted Users och Developers kan slå ihop paket." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "Endast paketunderhållare och utvecklare kan slå samman paket." #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -717,8 +719,8 @@ msgid "I accept the terms and conditions above." msgstr "Jag accepterar villkoren ovan." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Trusted User" +msgid "Package Maintainer" +msgstr "Paketunderhållare" #: html/tu.php msgid "Could not retrieve proposal details." @@ -729,8 +731,8 @@ msgid "Voting is closed for this proposal." msgstr "Röstning för detta förslag är stängt." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Bara Trusted Users är tillåtna att rösta." +msgid "Only Package Maintainers are allowed to vote." +msgstr "Endast paketunderhållare tillåts rösta." #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -983,7 +985,7 @@ msgstr "Du har inte valt några paket att notifieras om." #: aurweb/routers/packages.py msgid "The selected packages' notifications have been enabled." -msgstr "De valda paketens aviseringar har aktiverats." +msgstr "De valda paket aviseringar har aktiverats." #: aurweb/routers/packages.py msgid "You did not select any packages for notification removal." @@ -1225,8 +1227,8 @@ msgstr "Developer" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Trusted User & Developer" +msgid "Package Maintainer & Developer" +msgstr "Paketunderhållare & Utvecklare" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1328,10 +1330,6 @@ msgstr "Ditt användarnamn är det namn du kommer att använda för att logga in msgid "Normal user" msgstr "Normal användare" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Trusted user" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Konto avstängt" @@ -1404,6 +1402,15 @@ msgid "" " the Arch User Repository." msgstr "Den följande informationen är bara nödvändig om du vill ladda upp paket till Arch User Repository." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "Specificera flera SSH-nycklar separerade med en ny rad, tomma rader ignoreras." + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "Dölj borttagna kommentarer" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "SSH publik nyckel" @@ -1827,26 +1834,26 @@ msgstr "Slå ihop i" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Genom att skicka en begäran om borttagning ber du en Trusted User att ta bort paketbasen. Denna typ av begäran bör användas för dubbletter, programvara som övergetts av uppström, såväl som olagliga och irreparabelt trasiga paket." +msgstr "Genom att skicka en begäran om borttagning ber du en paketunderhållare att ta bort paketbasen. Denna typ av begäran bör användas för dubbletter, programvara som överges av uppström, såväl som olagliga och irreparabelt trasiga paket." #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Genom att skicka en sammanslagningsförfrågan ber du en Trusted User att ta bort paketbasen och överföra dess röster och kommentarer till en annan paketbas. Att slå samman ett paket påverkar inte motsvarande Git-förråd. Se till att du själv uppdaterar Git-historiken för målpaketet." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "Genom att skicka in en sammanslagningsförfrågan ber du en paketunderhållare att ta bort paketbasen och överföra dess röster och kommentarer till en annan paketbas. Att slå samman ett paket påverkar inte motsvarande Git-förråd. Se till att du själv uppdaterar Git-historiken för målpaketet." #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Genom att skicka in en föräldralös begäran ber du en Trusted User att avfärda paketbasen. Vänligen gör endast detta om paketet behöver underhållsåtgärder, underhållaren är MIA och du redan försökt kontakta underhållaren tidigare." +msgstr "Genom att skicka in en föräldralös begäran ber du en paketunderhållare att göra paketbasen herrelös. Vänligen gör bara detta om paketet behöver underhållsåtgärder, underhållaren är MIA och du redan försökt kontakta underhållaren tidigare." #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2099,8 +2106,8 @@ msgid "Registered Users" msgstr "Registrerade användare" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Trusted Users" +msgid "Package Maintainers" +msgstr "Paketunderhållare" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2285,8 +2292,8 @@ msgstr "{user} [1] raderade {pkgbase} [2].\n\nDu kommer inte längre att få avi #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU röstningspåminnelse: Förslag {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "Paketunderhållare röstningspåminnelse Förslag {id}" #: scripts/notify.py #, python-brace-format @@ -2339,3 +2346,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Denna åtgärd kommer att stänga alla väntande paketförfrågningar relaterade till det paketet. %sOm kommentarer%s utelämnas kommer en stängningskommentar att automatiskt genereras." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "tilldelade" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "Visa %d mer" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "beroenden" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "Kontot har inte raderas, markera kryssrutan för bekräftelse." + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "Avbryt" + +#: templates/requests.html +msgid "Package name" +msgstr "Paketnamn" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "Observera att om du döljer din e-postadress hamnar den på BCC-listan för eventuella begärandemeddelanden. Om någon svarar på dessa aviseringar kommer du inte att få något e-postmeddelande. Svaren skickas dock vanligtvis till e-postlistan och kommer då att vara synliga i arkivet." diff --git a/po/tr.po b/po/tr.po index b36c04f4..8742b919 100644 --- a/po/tr.po +++ b/po/tr.po @@ -19,7 +19,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Demiray Muhterem , 2015,2020-2022\n" -"Language-Team: Turkish (http://www.transifex.com/lfleischer/aurweb/language/tr/)\n" +"Language-Team: Turkish (http://app.transifex.com/lfleischer/aurweb/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -140,16 +140,16 @@ msgid "Type" msgstr "Tür" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Bir GK ekleme" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Bir GK çıkartma" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Bir GK çıkartma (bildirilmemiş hareketsizlik)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -206,9 +206,10 @@ msgstr "Birlikte baktığım paketleri ara" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "AUR'a hoş geldiniz! Bilgi almak için lütfen %sAUR Kullanıcı Rehberi%s ve %sGK Rehberini%s okuyun." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -222,8 +223,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Beğendiğiniz paketleri oylamayı unutmayın!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Burada listelenen paketlerin bazıları [community] deposunda yer almaktadır." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Burada listelenen paketlerin bazıları [extra] deposunda yer almaktadır." #: html/home.php msgid "DISCLAIMER" @@ -272,8 +273,8 @@ msgstr "Silme Talebi" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Bir paketin Arch Kullanıcı Deposundan kaldırılması talebidir. Lütfen bunu, bir paket çalışmıyor fakat kolayca düzeltilebiliyorsa kullanmayın. Bunun yerine, paket bakımcısı ile iletişim kurun ve mecbur kalınırsa paketin sahipsiz bırakılması talebinde bulunun." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -315,10 +316,11 @@ msgstr "Tartışma" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Arch Kullanıcı Deposu (AUR) ve Güvenilir Kullanıcı yapısı ile ilgili genel tartışmalar %saur-general%s üzerinde yapılır. AUR web arayüzü geliştirme süreci ilgili tartışmalar %saur-dev%s listesinde yapılmaktadır." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -329,9 +331,9 @@ msgstr "Hata Bildirimi" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "AUR web arayüzünde bir hata bulursanız, lütfen %s hata izleyicimiz %s üzerinde bir hata raporu doldurun. AUR web arayüzündeki %s hataları raporlamak için sadece %s izleyiciyi kullanın . Paketleme hatalarını bildirmek için paket bakıcısına başvurun veya ilgili paket sayfasına yorum yapın." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -531,8 +533,8 @@ msgid "Delete" msgstr "Sil" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Sadece geliştiriciler ve güvenilir kullanıcılar paket silebilir." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -572,8 +574,8 @@ msgid "Disown" msgstr "Sorumluluğunu bırak" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Sadece geliştiriciler ve güvenilir kullanıcılar paketleri sahipsiz bırakabilir." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -662,8 +664,8 @@ msgid "Merge" msgstr "Birleştir" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Sadece geliştiriciler ve güvenilir kullanıcılar paket birleştirebilir." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -720,8 +722,8 @@ msgid "I accept the terms and conditions above." msgstr "Yukarıdaki şartlar ve koşulları kabul ediyorum." #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Güvenilen Kullanıcı" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -732,8 +734,8 @@ msgid "Voting is closed for this proposal." msgstr "Bu öneri için oylama kapanmıştır." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Sadece Güvenilir Kullanıcılar oy kullanabilir." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1228,8 +1230,8 @@ msgstr "Geliştirici" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Güvenilir Kullanıcı & Geliştirici" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1331,10 +1333,6 @@ msgstr "Kullanıcı adınız, oturum açmak için kullanacağınız addır. Hesa msgid "Normal user" msgstr "Normal kullanıcı" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Güvenilen kullanıcı" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Hesap Donduruldu" @@ -1407,6 +1405,15 @@ msgid "" " the Arch User Repository." msgstr "Aşağıdaki bilgi sadece Arch Kullanıcı Deposu' na paket göndermek istiyorsanız gereklidir." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "SSH Kamu Anahtarı" @@ -1830,26 +1837,26 @@ msgstr "Şununla ilişkilendir:" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Silme talebi göndererek, Güvenilir Kullanıcıdan paketi silmesini istiyorsunuz. Bu tür bir istek birden fazla olan paketlerde, geliştirilmesi durdurulmuş yazılımlarda, ve aynı zamanda yasadışı ve onarılamaz bozuklukta olan paketler için kullanılmalıdır." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Birleştirme talebi göndererek, Güvenilir Kullanıcıdan paketi silmesini ve bu paketin oylarını ve yorumlarını diğer pakete transfer etmesini istiyorsunuz. Bir paketi birleştirmek ilgili Git deposunu etkilemeyecektir. Hedef paketin Git geçmişini bizzat güncellediğinizden emin olun. " +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Bir sahipsiz istek göndererek, Güvenilir Kullanıcıdan paket tabanını reddetmesini istersiniz. Lütfen bunu yalnızca paketin sürdürme eylemine ihtiyacı varsa, sürdürücü MIA ise ve daha önce bakım görevlisine başvurmayı denediyseniz yapın." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2102,8 +2109,8 @@ msgid "Registered Users" msgstr "Kayıtlı Kullanıcılar" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Güvenilen Kullanıcılar" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2288,8 +2295,8 @@ msgstr "{user} [1] {pkgbase} [2] paketini sildi.\n\nArtık bu paket hakkında bi #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU Oylama Hatırlatıcısı: Teklif {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2342,3 +2349,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Bu eylem, kendisiyle ilgili bekleyen paket isteklerini kapatacaktır. %s Yorum %s atlanırsa, bir kapatma yorumu otomatik olarak oluşturulur." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/uk.po b/po/uk.po index 13f3ab90..040c5085 100644 --- a/po/uk.po +++ b/po/uk.po @@ -16,7 +16,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: Yarema aka Knedlyk , 2011-2018,2022\n" -"Language-Team: Ukrainian (http://www.transifex.com/lfleischer/aurweb/language/uk/)\n" +"Language-Team: Ukrainian (http://app.transifex.com/lfleischer/aurweb/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -137,16 +137,16 @@ msgid "Type" msgstr "Тип" #: html/addvote.php -msgid "Addition of a TU" -msgstr "Додавання довіреного користувача" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "Вилучення довіреного користувача" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "Вилучення довіреного користувача (неоголошена бездіяльність)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -203,9 +203,10 @@ msgstr "Пошук пакунків з сумісним супроводом" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "Раді вітати вас в «AUR» — у сховищі користувацьких пакунків. Розширена довідка надана в %sінструкції користувача AUR%s та %sінструкції довіреного користувача (TU) AUR%s." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -219,8 +220,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "Не забудьте проголосувати за улюблені пакунки!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "Деякі пакунки можуть бути в бінарному вигляді у сховищі [community]." +msgid "Some packages may be provided as binaries in [extra]." +msgstr "Деякі пакунки можуть бути в бінарному вигляді у сховищі [extra]." #: html/home.php msgid "DISCLAIMER" @@ -269,8 +270,8 @@ msgstr "Запит щодо вилучення" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "Запит щодо вилучення пакунку зі сховища користувацьких пакунків AUR. Будь ласка, не використовуйте його, якщо пакунок містить проблеми, які можна легко виправити. Натомість зв’яжіться з супровідником пакунку та в разі необхідності зробіть запит покинути пакунок." +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -312,10 +313,11 @@ msgstr "Обговорення" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "Загальне обговорення сховища користувацьких пакунків (AUR) та структури довірених користувачів відбувається в %saur-general%s. Для дискусій про розробку AUR використовуйте список розсилання %saur-dev%s." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -326,9 +328,9 @@ msgstr "Повідомлення про вади" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "Якщо Ви знайдете ваду у веб-інтерфейсі AUR, повідомте про це нас на нашому %sтрекері вад%s. Таким чином слід сповіщати %sлише%s про проблеми у веб-інтерфейсі AUR. Про вади пакунка зв’яжіться з його супровідником або залиште коментар на відповідній сторінці цього пакунка." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -528,8 +530,8 @@ msgid "Delete" msgstr "Вилучити" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "Тільки Довірені Користувачі та Розробники можуть вилучати пакунки." +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -569,8 +571,8 @@ msgid "Disown" msgstr "Відректися" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "Тільки Довірені Користувачі та Розробники можуть забирати права власності на пакунок." +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -659,8 +661,8 @@ msgid "Merge" msgstr "Об’єднати" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "Тільки Довірені Користувачі та Розробники можуть об’єднувати пакунки." +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -717,8 +719,8 @@ msgid "I accept the terms and conditions above." msgstr "Я приймаю подані вище терміни і умови. " #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "Довірений користувач" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -729,8 +731,8 @@ msgid "Voting is closed for this proposal." msgstr "Голосування на цю пропозицію закрито." #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "Тільки Довірені Користувачі мають право голосу." +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1225,8 +1227,8 @@ msgstr "Розробник" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "Довірений користувач & Розробник" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1328,10 +1330,6 @@ msgstr "Ваша назва користувача є назвою, що буд msgid "Normal user" msgstr "Звичайний користувач" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "Довіренний користувач" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "Обліковий запис призупинено" @@ -1404,6 +1402,15 @@ msgid "" " the Arch User Repository." msgstr "Наступну інформацію потрібно, якщо Ви бажаєте надіслати пакунки до Сховища Користувацьких Пакунків AUR." +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "Публічний ключ SSH" @@ -1829,26 +1836,26 @@ msgstr "Об'єднати в" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "Надсилаючи запит на вилучення, Ви просите Довіреного Користувача вилучити пакунок з бази пакунків. Цей тип запиту повинен використовуватися для дублікатів, неоновлюваних програм, а також нелегальних і невиправно пошкоджених пакунків." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "Надсилаючи запит на об'єднання, Ви просите Довіреного Користувача вилучити базу пакунків і перенести всі його голосування і коментарі до іншої бази пакунків. Об'єднання пакунку не впливає на відповідні сховища Git. Впевніться, що Ви самостійно оновили історію Git доцільового пакунку." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "Надсилаючи запит покинути пакунок, Ви просите Довіреного Користувача позбавити базу пакунків власника. Робіть це, лише коли пакунок потребує якоїсь дії від супровідника, супровідник не робить жодних дій і ви вже попередньо намагалися зв'язатися з ним." +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2109,8 +2116,8 @@ msgid "Registered Users" msgstr "Зареєстровані користувачі" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "Довірені користувачі" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2295,8 +2302,8 @@ msgstr "{user} [1] вилучив {pkgbase} [2].\n\nВи більше не бу #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "Нагадування про голосування на довіреного користувача: Пропозиція {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2349,3 +2356,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "Ця дія закриє всі запити на пакет, що очікують на розгляд. Якщо %sКоментарі%s пропущено, тоді буде автоматично згенеровано коментар закриття." + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/vi.po b/po/vi.po index a71c9ed5..c3f919c4 100644 --- a/po/vi.po +++ b/po/vi.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (http://www.transifex.com/lfleischer/aurweb/language/vi/)\n" +"Language-Team: Vietnamese (http://app.transifex.com/lfleischer/aurweb/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1820,22 +1827,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2088,7 +2095,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2274,7 +2281,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2328,3 +2335,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/zh.po b/po/zh.po index 77f31fe4..7abbe77e 100644 --- a/po/zh.po +++ b/po/zh.po @@ -10,7 +10,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (http://www.transifex.com/lfleischer/aurweb/language/zh/)\n" +"Language-Team: Chinese (http://app.transifex.com/lfleischer/aurweb/language/zh/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -131,15 +131,15 @@ msgid "Type" msgstr "" #: html/addvote.php -msgid "Addition of a TU" +msgid "Addition of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU" +msgid "Removal of a Package Maintainer" msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" msgstr "" #: html/addvote.php @@ -197,8 +197,9 @@ msgstr "" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." msgstr "" #: html/home.php @@ -213,7 +214,7 @@ msgid "Remember to vote for your favourite packages!" msgstr "" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." +msgid "Some packages may be provided as binaries in [extra]." msgstr "" #: html/home.php @@ -263,7 +264,7 @@ msgstr "" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." +"the maintainer and file orphan request if necessary." msgstr "" #: html/home.php @@ -306,9 +307,10 @@ msgstr "" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." msgstr "" #: html/home.php @@ -320,8 +322,8 @@ msgstr "" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." msgstr "" #: html/home.php @@ -522,7 +524,7 @@ msgid "Delete" msgstr "" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." +msgid "Only Package Maintainers and Developers can delete packages." msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php @@ -563,7 +565,7 @@ msgid "Disown" msgstr "" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." +msgid "Only Package Maintainers and Developers can disown packages." msgstr "" #: html/pkgflagcomment.php @@ -653,7 +655,7 @@ msgid "Merge" msgstr "" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." +msgid "Only Package Maintainers and Developers can merge packages." msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php @@ -711,7 +713,7 @@ msgid "I accept the terms and conditions above." msgstr "" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" +msgid "Package Maintainer" msgstr "" #: html/tu.php @@ -723,7 +725,7 @@ msgid "Voting is closed for this proposal." msgstr "" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." +msgid "Only Package Maintainers are allowed to vote." msgstr "" #: html/tu.php @@ -1219,7 +1221,7 @@ msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" +msgid "Package Maintainer & Developer" msgstr "" #: template/account_details.php template/account_edit_form.php @@ -1322,10 +1324,6 @@ msgstr "" msgid "Normal user" msgstr "" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "" @@ -1398,6 +1396,15 @@ msgid "" " the Arch User Repository." msgstr "" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "" @@ -1820,22 +1827,22 @@ msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." @@ -2088,7 +2095,7 @@ msgid "Registered Users" msgstr "" #: template/stats/general_stats_table.php -msgid "Trusted Users" +msgid "Package Maintainers" msgstr "" #: template/stats/updates_table.php @@ -2274,7 +2281,7 @@ msgstr "" #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" msgstr "" #: scripts/notify.py @@ -2328,3 +2335,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/zh_CN.po b/po/zh_CN.po index a61781fb..f32d628c 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -22,7 +22,7 @@ msgstr "" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" "Last-Translator: lakejason0 , 2022\n" -"Language-Team: Chinese (China) (http://www.transifex.com/lfleischer/aurweb/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://app.transifex.com/lfleischer/aurweb/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -143,16 +143,16 @@ msgid "Type" msgstr "类别" #: html/addvote.php -msgid "Addition of a TU" -msgstr "添加受信用户" +msgid "Addition of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU" -msgstr "移除受信用户" +msgid "Removal of a Package Maintainer" +msgstr "" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "移除受信用户(无故不活跃)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "" #: html/addvote.php msgid "Amendment of Bylaws" @@ -209,9 +209,10 @@ msgstr "搜索共同维护的软件包" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "欢迎来到 AUR!想了解更多信息,请阅读 %sAUR 用户指南%s 和 %sAUR 受信用户指南%s。" +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "" #: html/home.php #, php-format @@ -225,8 +226,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "记得为您喜欢的软件包投票!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "部分软件包将在 [community] 仓库以二进制包的形式提供。" +msgid "Some packages may be provided as binaries in [extra]." +msgstr "部分软件包将在 [extra] 仓库以二进制包的形式提供。" #: html/home.php msgid "DISCLAIMER" @@ -275,8 +276,8 @@ msgstr "删除请求" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "请求软件包从 AUR 中移除。如果这个包虽然损坏了但是可以被轻易地修好,请不要进行此操作,您应该联系包的维护者或者有必要的情况下发送弃置请求。" +"the maintainer and file orphan request if necessary." +msgstr "" #: html/home.php msgid "Merge Request" @@ -318,10 +319,11 @@ msgstr "邮件列表" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "与 Arch 用户仓库(AUR)或者受信用户结构相关的一般讨论在 %saur-general%s 邮件列表。若是与 AUR web 页面开发相关的讨论,请使用 %saur-dev%s 邮件列表。" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "" #: html/home.php msgid "Bug Reporting" @@ -332,9 +334,9 @@ msgstr "Bug 报告" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "如果您在 AUR web 页面发现 Bug,请提交到我们的 %sBug 追踪系统%s。追踪系统 %s只能%s 用来报告 AUR web 页面的 Bug。如果想报告打包方面的 Bug,请联系相应的包维护者,或者在相应的软件包页面留下评论。" +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "" #: html/home.php msgid "Package Search" @@ -534,8 +536,8 @@ msgid "Delete" msgstr "删除" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "只有受信用户和开发人员能删除软件包。" +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -575,8 +577,8 @@ msgid "Disown" msgstr "弃置" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "只有受信用户和开发人员能弃置软件包。" +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -665,8 +667,8 @@ msgid "Merge" msgstr "合并" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "只有受信用户和开发人员才能删除软件包。" +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -723,8 +725,8 @@ msgid "I accept the terms and conditions above." msgstr "我接受以上条款与条件。" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "受信用户" +msgid "Package Maintainer" +msgstr "" #: html/tu.php msgid "Could not retrieve proposal details." @@ -735,8 +737,8 @@ msgid "Voting is closed for this proposal." msgstr "该提议的投票已被关闭。" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "只有受信用户可以投票。" +msgid "Only Package Maintainers are allowed to vote." +msgstr "" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1231,8 +1233,8 @@ msgstr "开发人员" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "受信用户 & 开发者" +msgid "Package Maintainer & Developer" +msgstr "" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1334,10 +1336,6 @@ msgstr "您的用户名称将用于您的登录。这是公开的,即使您的 msgid "Normal user" msgstr "普通用户" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "受信用户" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "账户被停用" @@ -1410,6 +1408,15 @@ msgid "" " the Arch User Repository." msgstr "仅当你想向 AUR 提交软件包时才需要填写以下信息。" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "SSH 公钥" @@ -1832,26 +1839,26 @@ msgstr "合并到" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "通过提交删除请求,您请求受信用户进行包基础的删除。这种请求应当被用于重复,软件被上游放弃,非法或损坏且无法修复的软件包。" +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "通过提交合并请求,您请求受信用户进行包基础的删除,并转移其投票和评论到另一包基础。合并一个软件包不会影响对应的 Git 项目,因此您需要自己更新目标软件包的 Git 项目。" +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "通过提交弃置请求,您请求受信用户进行包基础的弃置。请仅在软件包需要维护者操作,您之前已经尝试联系过维护者但没有回应时提交请求。" +msgstr "" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2100,8 +2107,8 @@ msgid "Registered Users" msgstr "注册用户" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "受信用户" +msgid "Package Maintainers" +msgstr "" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2286,8 +2293,8 @@ msgstr "用户 {user} [1] 删除了软件包 {pkgbase} [2]。\n\n您将不再收 #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "受信用户投票提醒:提案 {id}" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "" #: scripts/notify.py #, python-brace-format @@ -2340,3 +2347,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "此操作将关闭任何有关的未处理的软件包请求。若省略%s评论%s,将会自动生成关闭评论。" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "" + +#: templates/requests.html +msgid "Package name" +msgstr "" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "" diff --git a/po/zh_TW.po b/po/zh_TW.po index 56014aac..40521236 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -6,15 +6,15 @@ # pan93412 , 2018 # Cycatz , 2022 # 黃柏諺 , 2014-2017 -# 黃柏諺 , 2020-2022 +# 黃柏諺 , 2020-2023 msgid "" msgstr "" "Project-Id-Version: aurweb\n" "Report-Msgid-Bugs-To: https://gitlab.archlinux.org/archlinux/aurweb/-/issues\n" "POT-Creation-Date: 2020-01-31 09:29+0100\n" "PO-Revision-Date: 2011-04-10 13:21+0000\n" -"Last-Translator: Cycatz , 2022\n" -"Language-Team: Chinese (Taiwan) (http://www.transifex.com/lfleischer/aurweb/language/zh_TW/)\n" +"Last-Translator: 黃柏諺 , 2020-2023\n" +"Language-Team: Chinese (Taiwan) (http://app.transifex.com/lfleischer/aurweb/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -135,16 +135,16 @@ msgid "Type" msgstr "類型" #: html/addvote.php -msgid "Addition of a TU" -msgstr "添加受信使用者" +msgid "Addition of a Package Maintainer" +msgstr "新增軟體包維護者" #: html/addvote.php -msgid "Removal of a TU" -msgstr "移除受信使用者" +msgid "Removal of a Package Maintainer" +msgstr "移除軟體包維護者" #: html/addvote.php -msgid "Removal of a TU (undeclared inactivity)" -msgstr "移除受信使用者(無故不活躍)" +msgid "Removal of a Package Maintainer (undeclared inactivity)" +msgstr "移除軟體包維護者(無故不活躍)" #: html/addvote.php msgid "Amendment of Bylaws" @@ -201,9 +201,10 @@ msgstr "搜尋我共同維護的套件" #: html/home.php #, php-format msgid "" -"Welcome to the AUR! Please read the %sAUR User Guidelines%s and %sAUR TU " -"Guidelines%s for more information." -msgstr "歡迎來到 AUR!請閱讀 %sAUR 使用者指導方針%s 和 %sAUR 受信使用者指導方針%s 以獲取更多的詳細資訊。" +"Welcome to the AUR! Please read the %sAUR User Guidelines%s for more " +"information and the %sAUR Submission Guidelines%s if you want to contribute " +"a PKGBUILD." +msgstr "歡迎使用 AUR!請閱讀 %sAUR 使用者指南%s以取得更多資訊,若您想要貢獻 PKGBUILD,也請閱讀 %sAUR 遞交指南%s。" #: html/home.php #, php-format @@ -217,8 +218,8 @@ msgid "Remember to vote for your favourite packages!" msgstr "記得投一票給您喜愛的套件!" #: html/home.php -msgid "Some packages may be provided as binaries in [community]." -msgstr "某些套件可能會在 [community] 提供二進位檔案。" +msgid "Some packages may be provided as binaries in [extra]." +msgstr "某些套件可能會在 [extra] 提供二進位檔案。" #: html/home.php msgid "DISCLAIMER" @@ -267,8 +268,8 @@ msgstr "刪除請求" msgid "" "Request a package to be removed from the Arch User Repository. Please do not" " use this if a package is broken and can be fixed easily. Instead, contact " -"the package maintainer and file orphan request if necessary." -msgstr "請求套件從 Arch 使用者套件庫中移除。如果套件損毀但可以很容易的被修復,請不要使用這個請求。您應該聯絡套件維護者,並在必要時提出棄置請求。" +"the maintainer and file orphan request if necessary." +msgstr "請求軟體包從 Arch 使用者軟體庫中移除。如果軟體包損毀但可以很容易的被修復,請不要使用這個請求。您應該聯絡維護者,並在必要時提出棄置請求。" #: html/home.php msgid "Merge Request" @@ -310,10 +311,11 @@ msgstr "討論" #: html/home.php #, php-format msgid "" -"General discussion regarding the Arch User Repository (AUR) and Trusted User" -" structure takes place on %saur-general%s. For discussion relating to the " -"development of the AUR web interface, use the %saur-dev%s mailing list." -msgstr "與 Arch 使用者套件庫(AUR)及受信使用者結構相關的一般性討論請見 %saur-general%s 。討論關於 AUR 網頁介面的開發,請使用 %saur-dev%s 郵件列表。" +"General discussion regarding the Arch User Repository (AUR) and Package " +"Maintainer structure takes place on %saur-general%s. For discussion relating" +" to the development of the AUR web interface, use the %saur-dev%s mailing " +"list." +msgstr "與 Arch 使用者軟體庫 (AUR) 與軟體包維護者結構相關的一般性討論請見 %saur-general%s 。討論關於 AUR 網頁介面的開發,請使用 %saur-dev%s 郵件列表。" #: html/home.php msgid "Bug Reporting" @@ -324,9 +326,9 @@ msgstr "臭蟲回報" msgid "" "If you find a bug in the AUR web interface, please fill out a bug report on " "our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface" -" %sonly%s. To report packaging bugs contact the package maintainer or leave " -"a comment on the appropriate package page." -msgstr "如果您在 AUR 網頁介面中發現了臭蟲,請在我們的 %s臭蟲追蹤系統%s 中回報。請%s只%s回報 AUR 網頁介面本身的臭蟲。要回報打包臭蟲,請連絡套件的維護者或是在對應的套件頁面中留下評論。" +" %sonly%s. To report packaging bugs contact the maintainer or leave a " +"comment on the appropriate package page." +msgstr "如果您在 AUR 網頁介面中發現了臭蟲,請在我們的 %s臭蟲追蹤系統%s 中回報。請%s只%s回報 AUR 網頁介面本身的臭蟲。要回報打包臭蟲,請連絡維護者或是在對應的軟體包頁面中留下評論。" #: html/home.php msgid "Package Search" @@ -526,8 +528,8 @@ msgid "Delete" msgstr "刪除" #: html/pkgdel.php -msgid "Only Trusted Users and Developers can delete packages." -msgstr "只有受信使用者和開發者可以刪除套件。" +msgid "Only Package Maintainers and Developers can delete packages." +msgstr "僅軟體包維護者與開發者可以刪除軟體包。" #: html/pkgdisown.php template/pkgbase_actions.php msgid "Disown Package" @@ -567,8 +569,8 @@ msgid "Disown" msgstr "棄置" #: html/pkgdisown.php -msgid "Only Trusted Users and Developers can disown packages." -msgstr "只有受信使用者和開發者可以棄置套件。" +msgid "Only Package Maintainers and Developers can disown packages." +msgstr "僅軟體包維護者與開發者可以棄置軟體包。" #: html/pkgflagcomment.php msgid "Flag Comment" @@ -657,8 +659,8 @@ msgid "Merge" msgstr "合併" #: html/pkgmerge.php -msgid "Only Trusted Users and Developers can merge packages." -msgstr "只有受信使用者和開發者可以合併套件。" +msgid "Only Package Maintainers and Developers can merge packages." +msgstr "僅軟體包維護者與開發者可以合併軟體包。" #: html/pkgreq.php template/pkgbase_actions.php template/pkgreq_form.php msgid "Submit Request" @@ -715,8 +717,8 @@ msgid "I accept the terms and conditions above." msgstr "我接受上述條款與條件。" #: html/tu.php template/account_details.php template/header.php -msgid "Trusted User" -msgstr "受信使用者" +msgid "Package Maintainer" +msgstr "軟體包維護者" #: html/tu.php msgid "Could not retrieve proposal details." @@ -727,8 +729,8 @@ msgid "Voting is closed for this proposal." msgstr "這個建議的投票已被關閉。" #: html/tu.php -msgid "Only Trusted Users are allowed to vote." -msgstr "只有受信使用者可以投票。" +msgid "Only Package Maintainers are allowed to vote." +msgstr "僅軟體包維護者可以投票。" #: html/tu.php msgid "You cannot vote in an proposal about you." @@ -1223,8 +1225,8 @@ msgstr "開發者" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php -msgid "Trusted User & Developer" -msgstr "受信使用者 & 開發者" +msgid "Package Maintainer & Developer" +msgstr "軟體包維護者與開發者" #: template/account_details.php template/account_edit_form.php #: template/search_accounts_form.php @@ -1326,10 +1328,6 @@ msgstr "您的使用者名稱是您要用於登入的名稱。它是公開的, msgid "Normal user" msgstr "一般使用者" -#: template/account_edit_form.php template/search_accounts_form.php -msgid "Trusted user" -msgstr "受信使用者" - #: template/account_edit_form.php template/search_accounts_form.php msgid "Account Suspended" msgstr "帳號被暫停" @@ -1402,6 +1400,15 @@ msgid "" " the Arch User Repository." msgstr "以下的資訊僅在您想要遞交套件到 Arch 使用者套件庫時是必須的。" +#: templates/partials/account_form.html +msgid "" +"Specify multiple SSH Keys separated by new line, empty lines are ignored." +msgstr "指定多個 SSH 金鑰,以換行符號分隔,將會忽略空行。" + +#: templates/partials/account_form.html +msgid "Hide deleted comments" +msgstr "隱藏已刪除的評論" + #: template/account_edit_form.php msgid "SSH Public Key" msgstr "SSH 公開金鑰" @@ -1824,26 +1831,26 @@ msgstr "合併到" #: template/pkgreq_form.php msgid "" -"By submitting a deletion request, you ask a Trusted User to delete the " -"package base. This type of request should be used for duplicates, software " +"By submitting a deletion request, you ask a Package Maintainer to delete the" +" package base. This type of request should be used for duplicates, software " "abandoned by upstream, as well as illegal and irreparably broken packages." -msgstr "透過遞交刪除請求,您會請求受信使用者刪除套件基礎。這個類型的請求應該用於重複、被上游放棄的軟體,以及違法與無法修復的損壞套件。" +msgstr "透過遞交刪除請求,您會請求軟體包維護者刪除套件基礎。這個類型的請求應該用於重複、被上游放棄的軟體,以及違法與無法修復的損壞軟體包。" #: template/pkgreq_form.php msgid "" -"By submitting a merge request, you ask a Trusted User to delete the package " -"base and transfer its votes and comments to another package base. Merging a " -"package does not affect the corresponding Git repositories. Make sure you " -"update the Git history of the target package yourself." -msgstr "透過遞交合併請求,您會請求受信使用者刪除套件基礎並轉移其投票數到其他的套件基礎。合併一個套件不會影響相對應的 Git 倉庫。確保您可以自己更新目標套件的 Git 歷史。" +"By submitting a merge request, you ask a Package Maintainer to delete the " +"package base and transfer its votes and comments to another package base. " +"Merging a package does not affect the corresponding Git repositories. Make " +"sure you update the Git history of the target package yourself." +msgstr "透過遞交合併請求,您會請求軟體包維護者刪除軟體包基礎並轉移其投票數到其他的軟體包基礎。合併一個軟體包不會影響相對應的 Git 倉庫。確保您可以自己更新目標軟體包的 Git 歷史。" #: template/pkgreq_form.php msgid "" -"By submitting an orphan request, you ask a Trusted User to disown the " +"By submitting an orphan request, you ask a Package Maintainer to disown the " "package base. Please only do this if the package needs maintainer action, " "the maintainer is MIA and you already tried to contact the maintainer " "previously." -msgstr "透過遞交棄置請求,您會請求受信使用者棄置套件基礎。請僅在該套件需要有維護者動作、維護者突然消失且您先前已經連絡過維護者時做此動作。" +msgstr "透過遞交棄置請求,您會請求軟體包維護者棄置軟體包基礎。請僅在該軟體包需要有維護者動作、維護者突然消失且您先前已經連絡過維護者時做此動作。" #: template/pkgreq_results.php msgid "No requests matched your search criteria." @@ -2092,8 +2099,8 @@ msgid "Registered Users" msgstr "已註冊的使用者" #: template/stats/general_stats_table.php -msgid "Trusted Users" -msgstr "受信使用者" +msgid "Package Maintainers" +msgstr "軟體包維護者" #: template/stats/updates_table.php msgid "Recent Updates" @@ -2278,8 +2285,8 @@ msgstr "{user} [1] 已經刪除 {pkgbase} [2]。\n\n您將再也不會收到此 #: scripts/notify.py #, python-brace-format -msgid "TU Vote Reminder: Proposal {id}" -msgstr "TU 投票提醒:編號為 {id} 的建議" +msgid "Package Maintainer Vote Reminder: Proposal {id}" +msgstr "軟體包維護者投票提醒:編號為 {id} 的建議" #: scripts/notify.py #, python-brace-format @@ -2332,3 +2339,35 @@ msgid "" "This action will close any pending package requests related to it. If " "%sComments%s are omitted, a closure comment will be autogenerated." msgstr "此動作將會關閉任何關於此的擱置中軟體包請求。若省略%s留言%s,將會自動產生關閉留言。" + +#: templates/partials/tu/proposal/details.html +msgid "assigned" +msgstr "分配" + +#: templaets/partials/packages/package_metadata.html +msgid "Show %d more" +msgstr "再顯示 %d 個" + +#: templates/partials/packages/package_metadata.html +msgid "dependencies" +msgstr "依賴關係" + +#: aurweb/routers/accounts.py +msgid "The account has not been deleted, check the confirmation checkbox." +msgstr "帳號未被刪除,請檢查確認的核取方塊。" + +#: templates/partials/packages/comment_form.html +msgid "Cancel" +msgstr "取消" + +#: templates/requests.html +msgid "Package name" +msgstr "軟體包名稱" + +#: templates/partials/account_form.html +msgid "" +"Note that if you hide your email address, it'll end up on the BCC list for " +"any request notifications. In case someone replies to these notifications, " +"you won't receive an email. However, replies are typically sent to the " +"mailing-list and would then be visible in the archive." +msgstr "請注意,如果您隱藏您的電子郵件地址,它最終會出現在任何要求通知的密件副本清單中。如果有人回覆這些通知,您將不會收到電子郵件。但是,回覆通常會傳送到郵遞論壇,然後在存檔中可見。" diff --git a/poetry.lock b/poetry.lock index 623884a0..72638b4e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,27 +1,25 @@ -# This file is automatically @generated by Poetry 1.4.2 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "aiofiles" -version = "23.1.0" +version = "24.1.0" description = "File support for asyncio." -category = "main" optional = false -python-versions = ">=3.7,<4.0" +python-versions = ">=3.8" files = [ - {file = "aiofiles-23.1.0-py3-none-any.whl", hash = "sha256:9312414ae06472eb6f1d163f555e466a23aed1c8f60c30cccf7121dba2e53eb2"}, - {file = "aiofiles-23.1.0.tar.gz", hash = "sha256:edd247df9a19e0db16534d4baaf536d6609a43e1de5401d7a4c1c148753a1635"}, + {file = "aiofiles-24.1.0-py3-none-any.whl", hash = "sha256:b4ec55f4195e3eb5d7abd1bf7e061763e864dd4954231fb8539a0ef8bb8260e5"}, + {file = "aiofiles-24.1.0.tar.gz", hash = "sha256:22a075c9e5a3810f0c2e48f3008c94d68c65d763b9b03857924c99e57355166c"}, ] [[package]] name = "alembic" -version = "1.11.2" +version = "1.13.2" description = "A database migration tool for SQLAlchemy." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "alembic-1.11.2-py3-none-any.whl", hash = "sha256:7981ab0c4fad4fe1be0cf183aae17689fe394ff874fd2464adb774396faf0796"}, - {file = "alembic-1.11.2.tar.gz", hash = "sha256:678f662130dc540dac12de0ea73de9f89caea9dbea138f60ef6263149bf84657"}, + {file = "alembic-1.13.2-py3-none-any.whl", hash = "sha256:6b8733129a6224a9a711e17c99b08462dbf7cc9670ba8f2e2ae9af860ceb1953"}, + {file = "alembic-1.13.2.tar.gz", hash = "sha256:1ff0ae32975f4fd96028c39ed9bb3c867fe3af956bd7bb37343b54c9fe7445ef"}, ] [package.dependencies] @@ -30,39 +28,50 @@ SQLAlchemy = ">=1.3.0" typing-extensions = ">=4" [package.extras] -tz = ["python-dateutil"] +tz = ["backports.zoneinfo"] + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] [[package]] name = "anyio" -version = "3.6.2" +version = "4.4.0" description = "High level compatibility layer for multiple asynchronous event loop implementations" -category = "main" optional = false -python-versions = ">=3.6.2" +python-versions = ">=3.8" files = [ - {file = "anyio-3.6.2-py3-none-any.whl", hash = "sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3"}, - {file = "anyio-3.6.2.tar.gz", hash = "sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421"}, + {file = "anyio-4.4.0-py3-none-any.whl", hash = "sha256:c1b2d8f46a8a812513012e1107cb0e68c17159a7a594208005a57dc776e1bdc7"}, + {file = "anyio-4.4.0.tar.gz", hash = "sha256:5aadc6a1bbb7cdb0bede386cac5e2940f5e2ff3aa20277e991cf028e0585ce94"}, ] [package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} idna = ">=2.8" sniffio = ">=1.1" +typing-extensions = {version = ">=4.1", markers = "python_version < \"3.11\""} [package.extras] -doc = ["packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] -test = ["contextlib2", "coverage[toml] (>=4.5)", "hypothesis (>=4.0)", "mock (>=4)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (<0.15)", "uvloop (>=0.15)"] -trio = ["trio (>=0.16,<0.22)"] +doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"] +test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"] +trio = ["trio (>=0.23)"] [[package]] name = "asgiref" -version = "3.7.2" +version = "3.8.1" description = "ASGI specs, helper code, and adapters" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "asgiref-3.7.2-py3-none-any.whl", hash = "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e"}, - {file = "asgiref-3.7.2.tar.gz", hash = "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"}, + {file = "asgiref-3.8.1-py3-none-any.whl", hash = "sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47"}, + {file = "asgiref-3.8.1.tar.gz", hash = "sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590"}, ] [package.dependencies] @@ -73,60 +82,63 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] [[package]] name = "async-timeout" -version = "4.0.2" +version = "4.0.3" description = "Timeout context manager for asyncio programs" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "async-timeout-4.0.2.tar.gz", hash = "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15"}, - {file = "async_timeout-4.0.2-py3-none-any.whl", hash = "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c"}, + {file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"}, + {file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"}, ] [[package]] name = "authlib" -version = "1.2.1" +version = "1.3.1" description = "The ultimate Python library in building OAuth and OpenID Connect servers and clients." -category = "main" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "Authlib-1.2.1-py2.py3-none-any.whl", hash = "sha256:c88984ea00149a90e3537c964327da930779afa4564e354edfd98410bea01911"}, - {file = "Authlib-1.2.1.tar.gz", hash = "sha256:421f7c6b468d907ca2d9afede256f068f87e34d23dd221c07d13d4c234726afb"}, + {file = "Authlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:d35800b973099bbadc49b42b256ecb80041ad56b7fe1216a362c7943c088f377"}, + {file = "authlib-1.3.1.tar.gz", hash = "sha256:7ae843f03c06c5c0debd63c9db91f9fda64fa62a42a77419fa15fbb7e7a58917"}, ] [package.dependencies] -cryptography = ">=3.2" +cryptography = "*" [[package]] name = "bcrypt" -version = "4.0.1" +version = "4.2.0" description = "Modern password hashing for your software and your servers" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.7" files = [ - {file = "bcrypt-4.0.1-cp36-abi3-macosx_10_10_universal2.whl", hash = "sha256:b1023030aec778185a6c16cf70f359cbb6e0c289fd564a7cfa29e727a1c38f8f"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:08d2947c490093a11416df18043c27abe3921558d2c03e2076ccb28a116cb6d0"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0eaa47d4661c326bfc9d08d16debbc4edf78778e6aaba29c1bc7ce67214d4410"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ae88eca3024bb34bb3430f964beab71226e761f51b912de5133470b649d82344"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_24_x86_64.whl", hash = "sha256:a522427293d77e1c29e303fc282e2d71864579527a04ddcfda6d4f8396c6c36a"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:fbdaec13c5105f0c4e5c52614d04f0bca5f5af007910daa8b6b12095edaa67b3"}, - {file = "bcrypt-4.0.1-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:ca3204d00d3cb2dfed07f2d74a25f12fc12f73e606fcaa6975d1f7ae69cacbb2"}, - {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:089098effa1bc35dc055366740a067a2fc76987e8ec75349eb9484061c54f535"}, - {file = "bcrypt-4.0.1-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:e9a51bbfe7e9802b5f3508687758b564069ba937748ad7b9e890086290d2f79e"}, - {file = "bcrypt-4.0.1-cp36-abi3-win32.whl", hash = "sha256:2caffdae059e06ac23fce178d31b4a702f2a3264c20bfb5ff541b338194d8fab"}, - {file = "bcrypt-4.0.1-cp36-abi3-win_amd64.whl", hash = "sha256:8a68f4341daf7522fe8d73874de8906f3a339048ba406be6ddc1b3ccb16fc0d9"}, - {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf4fa8b2ca74381bb5442c089350f09a3f17797829d958fad058d6e44d9eb83c"}, - {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:67a97e1c405b24f19d08890e7ae0c4f7ce1e56a712a016746c8b2d7732d65d4b"}, - {file = "bcrypt-4.0.1-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b3b85202d95dd568efcb35b53936c5e3b3600c7cdcc6115ba461df3a8e89f38d"}, - {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cbb03eec97496166b704ed663a53680ab57c5084b2fc98ef23291987b525cb7d"}, - {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:5ad4d32a28b80c5fa6671ccfb43676e8c1cc232887759d1cd7b6f56ea4355215"}, - {file = "bcrypt-4.0.1-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b57adba8a1444faf784394de3436233728a1ecaeb6e07e8c22c8848f179b893c"}, - {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:705b2cea8a9ed3d55b4491887ceadb0106acf7c6387699fca771af56b1cdeeda"}, - {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_24_x86_64.whl", hash = "sha256:2b3ac11cf45161628f1f3733263e63194f22664bf4d0c0f3ab34099c02134665"}, - {file = "bcrypt-4.0.1-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:3100851841186c25f127731b9fa11909ab7b1df6fc4b9f8353f4f1fd952fbf71"}, - {file = "bcrypt-4.0.1.tar.gz", hash = "sha256:27d375903ac8261cfe4047f6709d16f7d18d39b1ec92aaf72af989552a650ebd"}, + {file = "bcrypt-4.2.0-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:096a15d26ed6ce37a14c1ac1e48119660f21b24cba457f160a4b830f3fe6b5cb"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c02d944ca89d9b1922ceb8a46460dd17df1ba37ab66feac4870f6862a1533c00"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1d84cf6d877918620b687b8fd1bf7781d11e8a0998f576c7aa939776b512b98d"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:1bb429fedbe0249465cdd85a58e8376f31bb315e484f16e68ca4c786dcc04291"}, + {file = "bcrypt-4.2.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:655ea221910bcac76ea08aaa76df427ef8625f92e55a8ee44fbf7753dbabb328"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:1ee38e858bf5d0287c39b7a1fc59eec64bbf880c7d504d3a06a96c16e14058e7"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:0da52759f7f30e83f1e30a888d9163a81353ef224d82dc58eb5bb52efcabc399"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:3698393a1b1f1fd5714524193849d0c6d524d33523acca37cd28f02899285060"}, + {file = "bcrypt-4.2.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:762a2c5fb35f89606a9fde5e51392dad0cd1ab7ae64149a8b935fe8d79dd5ed7"}, + {file = "bcrypt-4.2.0-cp37-abi3-win32.whl", hash = "sha256:5a1e8aa9b28ae28020a3ac4b053117fb51c57a010b9f969603ed885f23841458"}, + {file = "bcrypt-4.2.0-cp37-abi3-win_amd64.whl", hash = "sha256:8f6ede91359e5df88d1f5c1ef47428a4420136f3ce97763e31b86dd8280fbdf5"}, + {file = "bcrypt-4.2.0-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:c52aac18ea1f4a4f65963ea4f9530c306b56ccd0c6f8c8da0c06976e34a6e841"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3bbbfb2734f0e4f37c5136130405332640a1e46e6b23e000eeff2ba8d005da68"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3413bd60460f76097ee2e0a493ccebe4a7601918219c02f503984f0a7ee0aebe"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8d7bb9c42801035e61c109c345a28ed7e84426ae4865511eb82e913df18f58c2"}, + {file = "bcrypt-4.2.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:3d3a6d28cb2305b43feac298774b997e372e56c7c7afd90a12b3dc49b189151c"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:9c1c4ad86351339c5f320ca372dfba6cb6beb25e8efc659bedd918d921956bae"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:27fe0f57bb5573104b5a6de5e4153c60814c711b29364c10a75a54bb6d7ff48d"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:8ac68872c82f1add6a20bd489870c71b00ebacd2e9134a8aa3f98a0052ab4b0e"}, + {file = "bcrypt-4.2.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:cb2a8ec2bc07d3553ccebf0746bbf3d19426d1c6d1adbd4fa48925f66af7b9e8"}, + {file = "bcrypt-4.2.0-cp39-abi3-win32.whl", hash = "sha256:77800b7147c9dc905db1cba26abe31e504d8247ac73580b4aa179f98e6608f34"}, + {file = "bcrypt-4.2.0-cp39-abi3-win_amd64.whl", hash = "sha256:61ed14326ee023917ecd093ee6ef422a72f3aec6f07e21ea5f10622b735538a9"}, + {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:39e1d30c7233cfc54f5c3f2c825156fe044efdd3e0b9d309512cc514a263ec2a"}, + {file = "bcrypt-4.2.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:f4f4acf526fcd1c34e7ce851147deedd4e26e6402369304220250598b26448db"}, + {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:1ff39b78a52cf03fdf902635e4c81e544714861ba3f0efc56558979dd4f09170"}, + {file = "bcrypt-4.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:373db9abe198e8e2c70d12b479464e0d5092cc122b20ec504097b5f2297ed184"}, + {file = "bcrypt-4.2.0.tar.gz", hash = "sha256:cf69eaf5185fd58f268f805b505ce31f9b9fc2d64b376642164e9244540c1221"}, ] [package.extras] @@ -135,14 +147,13 @@ typecheck = ["mypy"] [[package]] name = "bleach" -version = "6.0.0" +version = "6.1.0" description = "An easy safelist-based HTML-sanitizing tool." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "bleach-6.0.0-py3-none-any.whl", hash = "sha256:33c16e3353dbd13028ab4799a0f89a83f113405c766e9c122df8a06f5b85b3f4"}, - {file = "bleach-6.0.0.tar.gz", hash = "sha256:1a1a85c1595e07d8db14c5f09f09e6433502c51c595970edc090551f0db99414"}, + {file = "bleach-6.1.0-py3-none-any.whl", hash = "sha256:3225f354cfc436b9789c66c4ee030194bee0568fbf9cbdad3bc8b5c26c5f12b6"}, + {file = "bleach-6.1.0.tar.gz", hash = "sha256:0a31f1837963c41d46bbf1331b8778e1308ea0791db03cc4e7357b97cf42a8fe"}, ] [package.dependencies] @@ -150,92 +161,93 @@ six = ">=1.9.0" webencodings = "*" [package.extras] -css = ["tinycss2 (>=1.1.0,<1.2)"] +css = ["tinycss2 (>=1.1.0,<1.3)"] [[package]] name = "certifi" -version = "2023.5.7" +version = "2024.7.4" description = "Python package for providing Mozilla's CA Bundle." -category = "main" optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2023.5.7-py3-none-any.whl", hash = "sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716"}, - {file = "certifi-2023.5.7.tar.gz", hash = "sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7"}, + {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, + {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, ] [[package]] name = "cffi" -version = "1.15.1" +version = "1.17.0" description = "Foreign Function Interface for Python calling C code." -category = "main" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"}, + {file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"}, + {file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"}, + {file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"}, + {file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"}, + {file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"}, + {file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"}, + {file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"}, + {file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"}, + {file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"}, + {file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"}, + {file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"}, + {file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"}, + {file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"}, + {file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"}, + {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"}, + {file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"}, + {file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"}, + {file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"}, + {file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"}, + {file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"}, + {file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"}, + {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"}, + {file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"}, + {file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"}, + {file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"}, + {file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"}, + {file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"}, + {file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"}, + {file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"}, + {file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"}, + {file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"}, + {file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"}, + {file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"}, + {file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"}, + {file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"}, + {file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"}, ] [package.dependencies] @@ -243,99 +255,112 @@ pycparser = "*" [[package]] name = "charset-normalizer" -version = "3.1.0" +version = "3.3.2" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -category = "main" optional = false python-versions = ">=3.7.0" files = [ - {file = "charset-normalizer-3.1.0.tar.gz", hash = "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win32.whl", hash = "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448"}, - {file = "charset_normalizer-3.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win32.whl", hash = "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909"}, - {file = "charset_normalizer-3.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win32.whl", hash = "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974"}, - {file = "charset_normalizer-3.1.0-cp37-cp37m-win_amd64.whl", hash = "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win32.whl", hash = "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0"}, - {file = "charset_normalizer-3.1.0-cp38-cp38-win_amd64.whl", hash = "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win32.whl", hash = "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1"}, - {file = "charset_normalizer-3.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b"}, - {file = "charset_normalizer-3.1.0-py3-none-any.whl", hash = "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d"}, + {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, + {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, + {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, + {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, + {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, + {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, + {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, + {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, ] [[package]] name = "click" -version = "8.1.3" +version = "8.1.7" description = "Composable command line interface toolkit" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "click-8.1.3-py3-none-any.whl", hash = "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"}, - {file = "click-8.1.3.tar.gz", hash = "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e"}, + {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, + {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, ] [package.dependencies] @@ -345,7 +370,6 @@ colorama = {version = "*", markers = "platform_system == \"Windows\""} name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" files = [ @@ -355,72 +379,83 @@ files = [ [[package]] name = "coverage" -version = "7.2.7" +version = "7.6.1" description = "Code coverage measurement for Python" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "coverage-7.2.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d39b5b4f2a66ccae8b7263ac3c8170994b65266797fb96cbbfd3fb5b23921db8"}, - {file = "coverage-7.2.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d040ef7c9859bb11dfeb056ff5b3872436e3b5e401817d87a31e1750b9ae2fb"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ba90a9563ba44a72fda2e85302c3abc71c5589cea608ca16c22b9804262aaeb6"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7d9405291c6928619403db1d10bd07888888ec1abcbd9748fdaa971d7d661b2"}, - {file = "coverage-7.2.7-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31563e97dae5598556600466ad9beea39fb04e0229e61c12eaa206e0aa202063"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:ebba1cd308ef115925421d3e6a586e655ca5a77b5bf41e02eb0e4562a111f2d1"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:cb017fd1b2603ef59e374ba2063f593abe0fc45f2ad9abdde5b4d83bd922a353"}, - {file = "coverage-7.2.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:d62a5c7dad11015c66fbb9d881bc4caa5b12f16292f857842d9d1871595f4495"}, - {file = "coverage-7.2.7-cp310-cp310-win32.whl", hash = "sha256:ee57190f24fba796e36bb6d3aa8a8783c643d8fa9760c89f7a98ab5455fbf818"}, - {file = "coverage-7.2.7-cp310-cp310-win_amd64.whl", hash = "sha256:f75f7168ab25dd93110c8a8117a22450c19976afbc44234cbf71481094c1b850"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06a9a2be0b5b576c3f18f1a241f0473575c4a26021b52b2a85263a00f034d51f"}, - {file = "coverage-7.2.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5baa06420f837184130752b7c5ea0808762083bf3487b5038d68b012e5937dbe"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fdec9e8cbf13a5bf63290fc6013d216a4c7232efb51548594ca3631a7f13c3a3"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:52edc1a60c0d34afa421c9c37078817b2e67a392cab17d97283b64c5833f427f"}, - {file = "coverage-7.2.7-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63426706118b7f5cf6bb6c895dc215d8a418d5952544042c8a2d9fe87fcf09cb"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:afb17f84d56068a7c29f5fa37bfd38d5aba69e3304af08ee94da8ed5b0865833"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:48c19d2159d433ccc99e729ceae7d5293fbffa0bdb94952d3579983d1c8c9d97"}, - {file = "coverage-7.2.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:0e1f928eaf5469c11e886fe0885ad2bf1ec606434e79842a879277895a50942a"}, - {file = "coverage-7.2.7-cp311-cp311-win32.whl", hash = "sha256:33d6d3ea29d5b3a1a632b3c4e4f4ecae24ef170b0b9ee493883f2df10039959a"}, - {file = "coverage-7.2.7-cp311-cp311-win_amd64.whl", hash = "sha256:5b7540161790b2f28143191f5f8ec02fb132660ff175b7747b95dcb77ac26562"}, - {file = "coverage-7.2.7-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f2f67fe12b22cd130d34d0ef79206061bfb5eda52feb6ce0dba0644e20a03cf4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a342242fe22407f3c17f4b499276a02b01e80f861f1682ad1d95b04018e0c0d4"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:171717c7cb6b453aebac9a2ef603699da237f341b38eebfee9be75d27dc38e01"}, - {file = "coverage-7.2.7-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49969a9f7ffa086d973d91cec8d2e31080436ef0fb4a359cae927e742abfaaa6"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b46517c02ccd08092f4fa99f24c3b83d8f92f739b4657b0f146246a0ca6a831d"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:a3d33a6b3eae87ceaefa91ffdc130b5e8536182cd6dfdbfc1aa56b46ff8c86de"}, - {file = "coverage-7.2.7-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:976b9c42fb2a43ebf304fa7d4a310e5f16cc99992f33eced91ef6f908bd8f33d"}, - {file = "coverage-7.2.7-cp312-cp312-win32.whl", hash = "sha256:8de8bb0e5ad103888d65abef8bca41ab93721647590a3f740100cd65c3b00511"}, - {file = "coverage-7.2.7-cp312-cp312-win_amd64.whl", hash = "sha256:9e31cb64d7de6b6f09702bb27c02d1904b3aebfca610c12772452c4e6c21a0d3"}, - {file = "coverage-7.2.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:58c2ccc2f00ecb51253cbe5d8d7122a34590fac9646a960d1430d5b15321d95f"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d22656368f0e6189e24722214ed8d66b8022db19d182927b9a248a2a8a2f67eb"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a895fcc7b15c3fc72beb43cdcbdf0ddb7d2ebc959edac9cef390b0d14f39f8a9"}, - {file = "coverage-7.2.7-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84606b74eb7de6ff581a7915e2dab7a28a0517fbe1c9239eb227e1354064dcd"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:0a5f9e1dbd7fbe30196578ca36f3fba75376fb99888c395c5880b355e2875f8a"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:419bfd2caae268623dd469eff96d510a920c90928b60f2073d79f8fe2bbc5959"}, - {file = "coverage-7.2.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:2aee274c46590717f38ae5e4650988d1af340fe06167546cc32fe2f58ed05b02"}, - {file = "coverage-7.2.7-cp37-cp37m-win32.whl", hash = "sha256:61b9a528fb348373c433e8966535074b802c7a5d7f23c4f421e6c6e2f1697a6f"}, - {file = "coverage-7.2.7-cp37-cp37m-win_amd64.whl", hash = "sha256:b1c546aca0ca4d028901d825015dc8e4d56aac4b541877690eb76490f1dc8ed0"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:54b896376ab563bd38453cecb813c295cf347cf5906e8b41d340b0321a5433e5"}, - {file = "coverage-7.2.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:3d376df58cc111dc8e21e3b6e24606b5bb5dee6024f46a5abca99124b2229ef5"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5e330fc79bd7207e46c7d7fd2bb4af2963f5f635703925543a70b99574b0fea9"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e9d683426464e4a252bf70c3498756055016f99ddaec3774bf368e76bbe02b6"}, - {file = "coverage-7.2.7-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d13c64ee2d33eccf7437961b6ea7ad8673e2be040b4f7fd4fd4d4d28d9ccb1e"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7aa5f8a41217360e600da646004f878250a0d6738bcdc11a0a39928d7dc2050"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8fa03bce9bfbeeef9f3b160a8bed39a221d82308b4152b27d82d8daa7041fee5"}, - {file = "coverage-7.2.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:245167dd26180ab4c91d5e1496a30be4cd721a5cf2abf52974f965f10f11419f"}, - {file = "coverage-7.2.7-cp38-cp38-win32.whl", hash = "sha256:d2c2db7fd82e9b72937969bceac4d6ca89660db0a0967614ce2481e81a0b771e"}, - {file = "coverage-7.2.7-cp38-cp38-win_amd64.whl", hash = "sha256:2e07b54284e381531c87f785f613b833569c14ecacdcb85d56b25c4622c16c3c"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:537891ae8ce59ef63d0123f7ac9e2ae0fc8b72c7ccbe5296fec45fd68967b6c9"}, - {file = "coverage-7.2.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:06fb182e69f33f6cd1d39a6c597294cff3143554b64b9825d1dc69d18cc2fff2"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:201e7389591af40950a6480bd9edfa8ed04346ff80002cec1a66cac4549c1ad7"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f6951407391b639504e3b3be51b7ba5f3528adbf1a8ac3302b687ecababf929e"}, - {file = "coverage-7.2.7-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f48351d66575f535669306aa7d6d6f71bc43372473b54a832222803eb956fd1"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b29019c76039dc3c0fd815c41392a044ce555d9bcdd38b0fb60fb4cd8e475ba9"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:81c13a1fc7468c40f13420732805a4c38a105d89848b7c10af65a90beff25250"}, - {file = "coverage-7.2.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:975d70ab7e3c80a3fe86001d8751f6778905ec723f5b110aed1e450da9d4b7f2"}, - {file = "coverage-7.2.7-cp39-cp39-win32.whl", hash = "sha256:7ee7d9d4822c8acc74a5e26c50604dff824710bc8de424904c0982e25c39c6cb"}, - {file = "coverage-7.2.7-cp39-cp39-win_amd64.whl", hash = "sha256:eb393e5ebc85245347950143969b241d08b52b88a3dc39479822e073a1a8eb27"}, - {file = "coverage-7.2.7-pp37.pp38.pp39-none-any.whl", hash = "sha256:b7b4c971f05e6ae490fef852c218b0e79d4e52f79ef0c8475566584a8fb3e01d"}, - {file = "coverage-7.2.7.tar.gz", hash = "sha256:924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b06079abebbc0e89e6163b8e8f0e16270124c154dc6e4a47b413dd538859af16"}, + {file = "coverage-7.6.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cf4b19715bccd7ee27b6b120e7e9dd56037b9c0681dcc1adc9ba9db3d417fa36"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61c0abb4c85b095a784ef23fdd4aede7a2628478e7baba7c5e3deba61070a02"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fd21f6ae3f08b41004dfb433fa895d858f3f5979e7762d052b12aef444e29afc"}, + {file = "coverage-7.6.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f59d57baca39b32db42b83b2a7ba6f47ad9c394ec2076b084c3f029b7afca23"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a1ac0ae2b8bd743b88ed0502544847c3053d7171a3cff9228af618a068ed9c34"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e6a08c0be454c3b3beb105c0596ebdc2371fab6bb90c0c0297f4e58fd7e1012c"}, + {file = "coverage-7.6.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f5796e664fe802da4f57a168c85359a8fbf3eab5e55cd4e4569fbacecc903959"}, + {file = "coverage-7.6.1-cp310-cp310-win32.whl", hash = "sha256:7bb65125fcbef8d989fa1dd0e8a060999497629ca5b0efbca209588a73356232"}, + {file = "coverage-7.6.1-cp310-cp310-win_amd64.whl", hash = "sha256:3115a95daa9bdba70aea750db7b96b37259a81a709223c8448fa97727d546fe0"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7dea0889685db8550f839fa202744652e87c60015029ce3f60e006f8c4462c93"}, + {file = "coverage-7.6.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed37bd3c3b063412f7620464a9ac1314d33100329f39799255fb8d3027da50d3"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d85f5e9a5f8b73e2350097c3756ef7e785f55bd71205defa0bfdaf96c31616ff"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9bc572be474cafb617672c43fe989d6e48d3c83af02ce8de73fff1c6bb3c198d"}, + {file = "coverage-7.6.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c0420b573964c760df9e9e86d1a9a622d0d27f417e1a949a8a66dd7bcee7bc6"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1f4aa8219db826ce6be7099d559f8ec311549bfc4046f7f9fe9b5cea5c581c56"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:fc5a77d0c516700ebad189b587de289a20a78324bc54baee03dd486f0855d234"}, + {file = "coverage-7.6.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b48f312cca9621272ae49008c7f613337c53fadca647d6384cc129d2996d1133"}, + {file = "coverage-7.6.1-cp311-cp311-win32.whl", hash = "sha256:1125ca0e5fd475cbbba3bb67ae20bd2c23a98fac4e32412883f9bcbaa81c314c"}, + {file = "coverage-7.6.1-cp311-cp311-win_amd64.whl", hash = "sha256:8ae539519c4c040c5ffd0632784e21b2f03fc1340752af711f33e5be83a9d6c6"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:95cae0efeb032af8458fc27d191f85d1717b1d4e49f7cb226cf526ff28179778"}, + {file = "coverage-7.6.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5621a9175cf9d0b0c84c2ef2b12e9f5f5071357c4d2ea6ca1cf01814f45d2391"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:260933720fdcd75340e7dbe9060655aff3af1f0c5d20f46b57f262ab6c86a5e8"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:07e2ca0ad381b91350c0ed49d52699b625aab2b44b65e1b4e02fa9df0e92ad2d"}, + {file = "coverage-7.6.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c44fee9975f04b33331cb8eb272827111efc8930cfd582e0320613263ca849ca"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:877abb17e6339d96bf08e7a622d05095e72b71f8afd8a9fefc82cf30ed944163"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3e0cadcf6733c09154b461f1ca72d5416635e5e4ec4e536192180d34ec160f8a"}, + {file = "coverage-7.6.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c3c02d12f837d9683e5ab2f3d9844dc57655b92c74e286c262e0fc54213c216d"}, + {file = "coverage-7.6.1-cp312-cp312-win32.whl", hash = "sha256:e05882b70b87a18d937ca6768ff33cc3f72847cbc4de4491c8e73880766718e5"}, + {file = "coverage-7.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:b5d7b556859dd85f3a541db6a4e0167b86e7273e1cdc973e5b175166bb634fdb"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a4acd025ecc06185ba2b801f2de85546e0b8ac787cf9d3b06e7e2a69f925b106"}, + {file = "coverage-7.6.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a6d3adcf24b624a7b778533480e32434a39ad8fa30c315208f6d3e5542aeb6e9"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0c212c49b6c10e6951362f7c6df3329f04c2b1c28499563d4035d964ab8e08c"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6e81d7a3e58882450ec4186ca59a3f20a5d4440f25b1cff6f0902ad890e6748a"}, + {file = "coverage-7.6.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78b260de9790fd81e69401c2dc8b17da47c8038176a79092a89cb2b7d945d060"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a78d169acd38300060b28d600344a803628c3fd585c912cacc9ea8790fe96862"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:2c09f4ce52cb99dd7505cd0fc8e0e37c77b87f46bc9c1eb03fe3bc9991085388"}, + {file = "coverage-7.6.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6878ef48d4227aace338d88c48738a4258213cd7b74fd9a3d4d7582bb1d8a155"}, + {file = "coverage-7.6.1-cp313-cp313-win32.whl", hash = "sha256:44df346d5215a8c0e360307d46ffaabe0f5d3502c8a1cefd700b34baf31d411a"}, + {file = "coverage-7.6.1-cp313-cp313-win_amd64.whl", hash = "sha256:8284cf8c0dd272a247bc154eb6c95548722dce90d098c17a883ed36e67cdb129"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:d3296782ca4eab572a1a4eca686d8bfb00226300dcefdf43faa25b5242ab8a3e"}, + {file = "coverage-7.6.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:502753043567491d3ff6d08629270127e0c31d4184c4c8d98f92c26f65019962"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6a89ecca80709d4076b95f89f308544ec8f7b4727e8a547913a35f16717856cb"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a318d68e92e80af8b00fa99609796fdbcdfef3629c77c6283566c6f02c6d6704"}, + {file = "coverage-7.6.1-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13b0a73a0896988f053e4fbb7de6d93388e6dd292b0d87ee51d106f2c11b465b"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4421712dbfc5562150f7554f13dde997a2e932a6b5f352edcce948a815efee6f"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:166811d20dfea725e2e4baa71fffd6c968a958577848d2131f39b60043400223"}, + {file = "coverage-7.6.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:225667980479a17db1048cb2bf8bfb39b8e5be8f164b8f6628b64f78a72cf9d3"}, + {file = "coverage-7.6.1-cp313-cp313t-win32.whl", hash = "sha256:170d444ab405852903b7d04ea9ae9b98f98ab6d7e63e1115e82620807519797f"}, + {file = "coverage-7.6.1-cp313-cp313t-win_amd64.whl", hash = "sha256:b9f222de8cded79c49bf184bdbc06630d4c58eec9459b939b4a690c82ed05657"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6db04803b6c7291985a761004e9060b2bca08da6d04f26a7f2294b8623a0c1a0"}, + {file = "coverage-7.6.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:f1adfc8ac319e1a348af294106bc6a8458a0f1633cc62a1446aebc30c5fa186a"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a95324a9de9650a729239daea117df21f4b9868ce32e63f8b650ebe6cef5595b"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b43c03669dc4618ec25270b06ecd3ee4fa94c7f9b3c14bae6571ca00ef98b0d3"}, + {file = "coverage-7.6.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8929543a7192c13d177b770008bc4e8119f2e1f881d563fc6b6305d2d0ebe9de"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a09ece4a69cf399510c8ab25e0950d9cf2b42f7b3cb0374f95d2e2ff594478a6"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:9054a0754de38d9dbd01a46621636689124d666bad1936d76c0341f7d71bf569"}, + {file = "coverage-7.6.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:0dbde0f4aa9a16fa4d754356a8f2e36296ff4d83994b2c9d8398aa32f222f989"}, + {file = "coverage-7.6.1-cp38-cp38-win32.whl", hash = "sha256:da511e6ad4f7323ee5702e6633085fb76c2f893aaf8ce4c51a0ba4fc07580ea7"}, + {file = "coverage-7.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:3f1156e3e8f2872197af3840d8ad307a9dd18e615dc64d9ee41696f287c57ad8"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abd5fd0db5f4dc9289408aaf34908072f805ff7792632250dcb36dc591d24255"}, + {file = "coverage-7.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:547f45fa1a93154bd82050a7f3cddbc1a7a4dd2a9bf5cb7d06f4ae29fe94eaf8"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:645786266c8f18a931b65bfcefdbf6952dd0dea98feee39bd188607a9d307ed2"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9e0b2df163b8ed01d515807af24f63de04bebcecbd6c3bfeff88385789fdf75a"}, + {file = "coverage-7.6.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:609b06f178fe8e9f89ef676532760ec0b4deea15e9969bf754b37f7c40326dbc"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:702855feff378050ae4f741045e19a32d57d19f3e0676d589df0575008ea5004"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:2bdb062ea438f22d99cba0d7829c2ef0af1d768d1e4a4f528087224c90b132cb"}, + {file = "coverage-7.6.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9c56863d44bd1c4fe2abb8a4d6f5371d197f1ac0ebdee542f07f35895fc07f36"}, + {file = "coverage-7.6.1-cp39-cp39-win32.whl", hash = "sha256:6e2cd258d7d927d09493c8df1ce9174ad01b381d4729a9d8d4e38670ca24774c"}, + {file = "coverage-7.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:06a737c882bd26d0d6ee7269b20b12f14a8704807a01056c80bb881a4b2ce6ca"}, + {file = "coverage-7.6.1-pp38.pp39.pp310-none-any.whl", hash = "sha256:e9a6e0eb86070e8ccaedfbd9d38fec54864f3125ab95419970575b42af7541df"}, + {file = "coverage-7.6.1.tar.gz", hash = "sha256:953510dfb7b12ab69d20135a0662397f077c59b1e6379a768e97c59d852ee51d"}, ] [package.dependencies] @@ -431,77 +466,99 @@ toml = ["tomli"] [[package]] name = "cryptography" -version = "40.0.2" +version = "43.0.0" description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." -category = "main" -optional = false -python-versions = ">=3.6" -files = [ - {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_universal2.whl", hash = "sha256:8f79b5ff5ad9d3218afb1e7e20ea74da5f76943ee5edb7f76e56ec5161ec782b"}, - {file = "cryptography-40.0.2-cp36-abi3-macosx_10_12_x86_64.whl", hash = "sha256:05dc219433b14046c476f6f09d7636b92a1c3e5808b9a6536adf4932b3b2c440"}, - {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4df2af28d7bedc84fe45bd49bc35d710aede676e2a4cb7fc6d103a2adc8afe4d"}, - {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0dcca15d3a19a66e63662dc8d30f8036b07be851a8680eda92d079868f106288"}, - {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:a04386fb7bc85fab9cd51b6308633a3c271e3d0d3eae917eebab2fac6219b6d2"}, - {file = "cryptography-40.0.2-cp36-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:adc0d980fd2760c9e5de537c28935cc32b9353baaf28e0814df417619c6c8c3b"}, - {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:d5a1bd0e9e2031465761dfa920c16b0065ad77321d8a8c1f5ee331021fda65e9"}, - {file = "cryptography-40.0.2-cp36-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a95f4802d49faa6a674242e25bfeea6fc2acd915b5e5e29ac90a32b1139cae1c"}, - {file = "cryptography-40.0.2-cp36-abi3-win32.whl", hash = "sha256:aecbb1592b0188e030cb01f82d12556cf72e218280f621deed7d806afd2113f9"}, - {file = "cryptography-40.0.2-cp36-abi3-win_amd64.whl", hash = "sha256:b12794f01d4cacfbd3177b9042198f3af1c856eedd0a98f10f141385c809a14b"}, - {file = "cryptography-40.0.2-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:142bae539ef28a1c76794cca7f49729e7c54423f615cfd9b0b1fa90ebe53244b"}, - {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:956ba8701b4ffe91ba59665ed170a2ebbdc6fc0e40de5f6059195d9f2b33ca0e"}, - {file = "cryptography-40.0.2-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4f01c9863da784558165f5d4d916093737a75203a5c5286fde60e503e4276c7a"}, - {file = "cryptography-40.0.2-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3daf9b114213f8ba460b829a02896789751626a2a4e7a43a28ee77c04b5e4958"}, - {file = "cryptography-40.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:48f388d0d153350f378c7f7b41497a54ff1513c816bcbbcafe5b829e59b9ce5b"}, - {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c0764e72b36a3dc065c155e5b22f93df465da9c39af65516fe04ed3c68c92636"}, - {file = "cryptography-40.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:cbaba590180cba88cb99a5f76f90808a624f18b169b90a4abb40c1fd8c19420e"}, - {file = "cryptography-40.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7a38250f433cd41df7fcb763caa3ee9362777fdb4dc642b9a349721d2bf47404"}, - {file = "cryptography-40.0.2.tar.gz", hash = "sha256:c33c0d32b8594fa647d2e01dbccc303478e16fdd7cf98652d5b3ed11aa5e5c99"}, -] - -[package.dependencies] -cffi = ">=1.12" - -[package.extras] -docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] -docstest = ["pyenchant (>=1.6.11)", "sphinxcontrib-spelling (>=4.0.1)", "twine (>=1.12.0)"] -pep8test = ["black", "check-manifest", "mypy", "ruff"] -sdist = ["setuptools-rust (>=0.11.4)"] -ssh = ["bcrypt (>=3.1.5)"] -test = ["iso8601", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-shard (>=0.1.2)", "pytest-subtests", "pytest-xdist"] -test-randomorder = ["pytest-randomly"] -tox = ["tox"] - -[[package]] -name = "dnspython" -version = "2.3.0" -description = "DNS toolkit" -category = "main" -optional = false -python-versions = ">=3.7,<4.0" -files = [ - {file = "dnspython-2.3.0-py3-none-any.whl", hash = "sha256:89141536394f909066cabd112e3e1a37e4e654db00a25308b0f130bc3152eb46"}, - {file = "dnspython-2.3.0.tar.gz", hash = "sha256:224e32b03eb46be70e12ef6d64e0be123a64e621ab4c0822ff6d450d52a540b9"}, -] - -[package.extras] -curio = ["curio (>=1.2,<2.0)", "sniffio (>=1.1,<2.0)"] -dnssec = ["cryptography (>=2.6,<40.0)"] -doh = ["h2 (>=4.1.0)", "httpx (>=0.21.1)", "requests (>=2.23.0,<3.0.0)", "requests-toolbelt (>=0.9.1,<0.11.0)"] -doq = ["aioquic (>=0.9.20)"] -idna = ["idna (>=2.1,<4.0)"] -trio = ["trio (>=0.14,<0.23)"] -wmi = ["wmi (>=1.5.1,<2.0.0)"] - -[[package]] -name = "email-validator" -version = "2.0.0.post2" -description = "A robust email address syntax and deliverability validation library." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "email_validator-2.0.0.post2-py3-none-any.whl", hash = "sha256:2466ba57cda361fb7309fd3d5a225723c788ca4bbad32a0ebd5373b99730285c"}, - {file = "email_validator-2.0.0.post2.tar.gz", hash = "sha256:1ff6e86044200c56ae23595695c54e9614f4a9551e0e393614f764860b3d7900"}, + {file = "cryptography-43.0.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:64c3f16e2a4fc51c0d06af28441881f98c5d91009b8caaff40cf3548089e9c74"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3dcdedae5c7710b9f97ac6bba7e1052b95c7083c9d0e9df96e02a1932e777895"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d9a1eca329405219b605fac09ecfc09ac09e595d6def650a437523fcd08dd22"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ea9e57f8ea880eeea38ab5abf9fbe39f923544d7884228ec67d666abd60f5a47"}, + {file = "cryptography-43.0.0-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:9a8d6802e0825767476f62aafed40532bd435e8a5f7d23bd8b4f5fd04cc80ecf"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:cc70b4b581f28d0a254d006f26949245e3657d40d8857066c2ae22a61222ef55"}, + {file = "cryptography-43.0.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:4a997df8c1c2aae1e1e5ac49c2e4f610ad037fc5a3aadc7b64e39dea42249431"}, + {file = "cryptography-43.0.0-cp37-abi3-win32.whl", hash = "sha256:6e2b11c55d260d03a8cf29ac9b5e0608d35f08077d8c087be96287f43af3ccdc"}, + {file = "cryptography-43.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:31e44a986ceccec3d0498e16f3d27b2ee5fdf69ce2ab89b52eaad1d2f33d8778"}, + {file = "cryptography-43.0.0-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:7b3f5fe74a5ca32d4d0f302ffe6680fcc5c28f8ef0dc0ae8f40c0f3a1b4fca66"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac1955ce000cb29ab40def14fd1bbfa7af2017cca696ee696925615cafd0dce5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:299d3da8e00b7e2b54bb02ef58d73cd5f55fb31f33ebbf33bd00d9aa6807df7e"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:ee0c405832ade84d4de74b9029bedb7b31200600fa524d218fc29bfa371e97f5"}, + {file = "cryptography-43.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:cb013933d4c127349b3948aa8aaf2f12c0353ad0eccd715ca789c8a0f671646f"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fdcb265de28585de5b859ae13e3846a8e805268a823a12a4da2597f1f5afc9f0"}, + {file = "cryptography-43.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:2905ccf93a8a2a416f3ec01b1a7911c3fe4073ef35640e7ee5296754e30b762b"}, + {file = "cryptography-43.0.0-cp39-abi3-win32.whl", hash = "sha256:47ca71115e545954e6c1d207dd13461ab81f4eccfcb1345eac874828b5e3eaaf"}, + {file = "cryptography-43.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:0663585d02f76929792470451a5ba64424acc3cd5227b03921dab0e2f27b1709"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2c6d112bf61c5ef44042c253e4859b3cbbb50df2f78fa8fae6747a7814484a70"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:844b6d608374e7d08f4f6e6f9f7b951f9256db41421917dfb2d003dde4cd6b66"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:51956cf8730665e2bdf8ddb8da0056f699c1a5715648c1b0144670c1ba00b48f"}, + {file = "cryptography-43.0.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:aae4d918f6b180a8ab8bf6511a419473d107df4dbb4225c7b48c5c9602c38c7f"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:232ce02943a579095a339ac4b390fbbe97f5b5d5d107f8a08260ea2768be8cc2"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5bcb8a5620008a8034d39bce21dc3e23735dfdb6a33a06974739bfa04f853947"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:08a24a7070b2b6804c1940ff0f910ff728932a9d0e80e7814234269f9d46d069"}, + {file = "cryptography-43.0.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e9c5266c432a1e23738d178e51c2c7a5e2ddf790f248be939448c0ba2021f9d1"}, + {file = "cryptography-43.0.0.tar.gz", hash = "sha256:b88075ada2d51aa9f18283532c9f60e72170041bba88d7f37e49cbb10275299e"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "cryptography-vectors (==43.0.0)", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + +[[package]] +name = "deprecated" +version = "1.2.14" +description = "Python @deprecated decorator to deprecate old python classes, functions or methods." +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "Deprecated-1.2.14-py2.py3-none-any.whl", hash = "sha256:6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c"}, + {file = "Deprecated-1.2.14.tar.gz", hash = "sha256:e5323eb936458dccc2582dc6f9c322c852a775a27065ff2b0c4970b9d53d01b3"}, +] + +[package.dependencies] +wrapt = ">=1.10,<2" + +[package.extras] +dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "sphinx (<2)", "tox"] + +[[package]] +name = "dnspython" +version = "2.6.1" +description = "DNS toolkit" +optional = false +python-versions = ">=3.8" +files = [ + {file = "dnspython-2.6.1-py3-none-any.whl", hash = "sha256:5ef3b9680161f6fa89daf8ad451b5f1a33b18ae8a1c6778cdf4b43f08c0a6e50"}, + {file = "dnspython-2.6.1.tar.gz", hash = "sha256:e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc"}, +] + +[package.extras] +dev = ["black (>=23.1.0)", "coverage (>=7.0)", "flake8 (>=7)", "mypy (>=1.8)", "pylint (>=3)", "pytest (>=7.4)", "pytest-cov (>=4.1.0)", "sphinx (>=7.2.0)", "twine (>=4.0.0)", "wheel (>=0.42.0)"] +dnssec = ["cryptography (>=41)"] +doh = ["h2 (>=4.1.0)", "httpcore (>=1.0.0)", "httpx (>=0.26.0)"] +doq = ["aioquic (>=0.9.25)"] +idna = ["idna (>=3.6)"] +trio = ["trio (>=0.23)"] +wmi = ["wmi (>=1.5.1)"] + +[[package]] +name = "email-validator" +version = "2.2.0" +description = "A robust email address syntax and deliverability validation library." +optional = false +python-versions = ">=3.8" +files = [ + {file = "email_validator-2.2.0-py3-none-any.whl", hash = "sha256:561977c2d73ce3611850a06fa56b414621e0c8faa9d66f2611407d87465da631"}, + {file = "email_validator-2.2.0.tar.gz", hash = "sha256:cb690f344c617a714f22e66ae771445a1ceb46821152df8e165c5f9a364582b7"}, ] [package.dependencies] @@ -510,14 +567,13 @@ idna = ">=2.0.0" [[package]] name = "exceptiongroup" -version = "1.1.1" +version = "1.2.2" description = "Backport of PEP 654 (exception groups)" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "exceptiongroup-1.1.1-py3-none-any.whl", hash = "sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e"}, - {file = "exceptiongroup-1.1.1.tar.gz", hash = "sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785"}, + {file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"}, + {file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"}, ] [package.extras] @@ -525,68 +581,69 @@ test = ["pytest (>=6)"] [[package]] name = "execnet" -version = "1.9.0" +version = "2.1.1" description = "execnet: rapid multi-Python deployment" -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +python-versions = ">=3.8" files = [ - {file = "execnet-1.9.0-py2.py3-none-any.whl", hash = "sha256:a295f7cc774947aac58dde7fdc85f4aa00c42adf5d8f5468fc630c1acf30a142"}, - {file = "execnet-1.9.0.tar.gz", hash = "sha256:8f694f3ba9cc92cab508b152dcfe322153975c29bda272e2fd7f3f00f36e47c5"}, + {file = "execnet-2.1.1-py3-none-any.whl", hash = "sha256:26dee51f1b80cebd6d0ca8e74dd8745419761d3bef34163928cbebbdc4749fdc"}, + {file = "execnet-2.1.1.tar.gz", hash = "sha256:5189b52c6121c24feae288166ab41b32549c7e2348652736540b9e6e7d4e72e3"}, ] [package.extras] -testing = ["pre-commit"] +testing = ["hatch", "pre-commit", "pytest", "tox"] [[package]] name = "fakeredis" -version = "2.17.0" +version = "2.23.5" description = "Python implementation of redis API, can be used for testing purposes." -category = "main" optional = false -python-versions = ">=3.7,<4.0" +python-versions = "<4.0,>=3.7" files = [ - {file = "fakeredis-2.17.0-py3-none-any.whl", hash = "sha256:a99ef6e5642c31e91d36be78809fec3743e2bf7aaa682685b0d65a849fecd148"}, - {file = "fakeredis-2.17.0.tar.gz", hash = "sha256:e304bc7addb2f862c3550cb7db58548418a0fadd4cd78a4de66464c84fbc2195"}, + {file = "fakeredis-2.23.5-py3-none-any.whl", hash = "sha256:4d85b1b6b3a80cbbb3a8967f8686f7bf6ddf5bd7cd5ac7ac90b3561d8c3a7ddb"}, + {file = "fakeredis-2.23.5.tar.gz", hash = "sha256:edffc79fdce0f1d83cbb20b52694a9cba4a5fe5beb627c11722a42aa0fa44f52"}, ] [package.dependencies] redis = ">=4" sortedcontainers = ">=2,<3" +typing_extensions = {version = ">=4.7,<5.0", markers = "python_version < \"3.11\""} [package.extras] -json = ["jsonpath-ng (>=1.5,<2.0)"] -lua = ["lupa (>=1.14,<2.0)"] +bf = ["pyprobables (>=0.6,<0.7)"] +cf = ["pyprobables (>=0.6,<0.7)"] +json = ["jsonpath-ng (>=1.6,<2.0)"] +lua = ["lupa (>=2.1,<3.0)"] +probabilistic = ["pyprobables (>=0.6,<0.7)"] [[package]] name = "fastapi" -version = "0.100.1" +version = "0.112.1" description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "fastapi-0.100.1-py3-none-any.whl", hash = "sha256:ec6dd52bfc4eff3063cfcd0713b43c87640fefb2687bbbe3d8a08d94049cdf32"}, - {file = "fastapi-0.100.1.tar.gz", hash = "sha256:522700d7a469e4a973d92321ab93312448fbe20fca9c8da97effc7e7bc56df23"}, + {file = "fastapi-0.112.1-py3-none-any.whl", hash = "sha256:bcbd45817fc2a1cd5da09af66815b84ec0d3d634eb173d1ab468ae3103e183e4"}, + {file = "fastapi-0.112.1.tar.gz", hash = "sha256:b2537146f8c23389a7faa8b03d0bd38d4986e6983874557d95eed2acc46448ef"}, ] [package.dependencies] -pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<3.0.0" -starlette = ">=0.27.0,<0.28.0" -typing-extensions = ">=4.5.0" +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.37.2,<0.39.0" +typing-extensions = ">=4.8.0" [package.extras] -all = ["email-validator (>=2.0.0)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.5)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +all = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=2.11.2)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.7)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email_validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=2.11.2)", "python-multipart (>=0.0.7)", "uvicorn[standard] (>=0.12.0)"] [[package]] name = "feedgen" -version = "0.9.0" +version = "1.0.0" description = "Feed Generator (ATOM, RSS, Podcasts)" -category = "main" optional = false python-versions = "*" files = [ - {file = "feedgen-0.9.0.tar.gz", hash = "sha256:8e811bdbbed6570034950db23a4388453628a70e689a6e8303ccec430f5a804a"}, + {file = "feedgen-1.0.0.tar.gz", hash = "sha256:d9bd51c3b5e956a2a52998c3708c4d2c729f2fcc311188e1e5d3b9726393546a"}, ] [package.dependencies] @@ -595,120 +652,148 @@ python-dateutil = "*" [[package]] name = "filelock" -version = "3.12.2" +version = "3.15.4" description = "A platform independent file lock." -category = "main" +optional = false +python-versions = ">=3.8" +files = [ + {file = "filelock-3.15.4-py3-none-any.whl", hash = "sha256:6ca1fffae96225dab4c6eaf1c4f4f28cd2568d3ec2a44e15a08520504de468e7"}, + {file = "filelock-3.15.4.tar.gz", hash = "sha256:2207938cbc1844345cb01a5a95524dae30f0ce089eba5b00378295a17e3e90cb"}, +] + +[package.extras] +docs = ["furo (>=2023.9.10)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.3.2)", "diff-cover (>=8.0.1)", "pytest (>=7.4.3)", "pytest-asyncio (>=0.21)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)", "pytest-timeout (>=2.2)", "virtualenv (>=20.26.2)"] +typing = ["typing-extensions (>=4.8)"] + +[[package]] +name = "googleapis-common-protos" +version = "1.63.2" +description = "Common protobufs used in Google APIs" optional = false python-versions = ">=3.7" files = [ - {file = "filelock-3.12.2-py3-none-any.whl", hash = "sha256:cbb791cdea2a72f23da6ac5b5269ab0a0d161e9ef0100e653b69049a7706d1ec"}, - {file = "filelock-3.12.2.tar.gz", hash = "sha256:002740518d8aa59a26b0c76e10fb8c6e15eae825d34b6fdf670333fd7b938d81"}, + {file = "googleapis-common-protos-1.63.2.tar.gz", hash = "sha256:27c5abdffc4911f28101e635de1533fb4cfd2c37fbaa9174587c799fac90aa87"}, + {file = "googleapis_common_protos-1.63.2-py2.py3-none-any.whl", hash = "sha256:27a2499c7e8aff199665b22741997e485eccc8645aa9176c7c988e6fae507945"}, ] +[package.dependencies] +protobuf = ">=3.20.2,<4.21.1 || >4.21.1,<4.21.2 || >4.21.2,<4.21.3 || >4.21.3,<4.21.4 || >4.21.4,<4.21.5 || >4.21.5,<6.0.0.dev0" + [package.extras] -docs = ["furo (>=2023.5.20)", "sphinx (>=7.0.1)", "sphinx-autodoc-typehints (>=1.23,!=1.23.4)"] -testing = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "diff-cover (>=7.5)", "pytest (>=7.3.1)", "pytest-cov (>=4.1)", "pytest-mock (>=3.10)", "pytest-timeout (>=2.1)"] +grpc = ["grpcio (>=1.44.0,<2.0.0.dev0)"] [[package]] name = "greenlet" -version = "2.0.2" +version = "3.1.1" description = "Lightweight in-process concurrent programming" -category = "main" optional = false -python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*" +python-versions = ">=3.7" files = [ - {file = "greenlet-2.0.2-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:bdfea8c661e80d3c1c99ad7c3ff74e6e87184895bbaca6ee8cc61209f8b9b85d"}, - {file = "greenlet-2.0.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:9d14b83fab60d5e8abe587d51c75b252bcc21683f24699ada8fb275d7712f5a9"}, - {file = "greenlet-2.0.2-cp27-cp27m-win32.whl", hash = "sha256:6c3acb79b0bfd4fe733dff8bc62695283b57949ebcca05ae5c129eb606ff2d74"}, - {file = "greenlet-2.0.2-cp27-cp27m-win_amd64.whl", hash = "sha256:283737e0da3f08bd637b5ad058507e578dd462db259f7f6e4c5c365ba4ee9343"}, - {file = "greenlet-2.0.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:d27ec7509b9c18b6d73f2f5ede2622441de812e7b1a80bbd446cb0633bd3d5ae"}, - {file = "greenlet-2.0.2-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:30bcf80dda7f15ac77ba5af2b961bdd9dbc77fd4ac6105cee85b0d0a5fcf74df"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:26fbfce90728d82bc9e6c38ea4d038cba20b7faf8a0ca53a9c07b67318d46088"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9190f09060ea4debddd24665d6804b995a9c122ef5917ab26e1566dcc712ceeb"}, - {file = "greenlet-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d75209eed723105f9596807495d58d10b3470fa6732dd6756595e89925ce2470"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:3a51c9751078733d88e013587b108f1b7a1fb106d402fb390740f002b6f6551a"}, - {file = "greenlet-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:76ae285c8104046b3a7f06b42f29c7b73f77683df18c49ab5af7983994c2dd91"}, - {file = "greenlet-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:2d4686f195e32d36b4d7cf2d166857dbd0ee9f3d20ae349b6bf8afc8485b3645"}, - {file = "greenlet-2.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c4302695ad8027363e96311df24ee28978162cdcdd2006476c43970b384a244c"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c48f54ef8e05f04d6eff74b8233f6063cb1ed960243eacc474ee73a2ea8573ca"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a1846f1b999e78e13837c93c778dcfc3365902cfb8d1bdb7dd73ead37059f0d0"}, - {file = "greenlet-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a06ad5312349fec0ab944664b01d26f8d1f05009566339ac6f63f56589bc1a2"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:eff4eb9b7eb3e4d0cae3d28c283dc16d9bed6b193c2e1ace3ed86ce48ea8df19"}, - {file = "greenlet-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5454276c07d27a740c5892f4907c86327b632127dd9abec42ee62e12427ff7e3"}, - {file = "greenlet-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:7cafd1208fdbe93b67c7086876f061f660cfddc44f404279c1585bbf3cdc64c5"}, - {file = "greenlet-2.0.2-cp35-cp35m-macosx_10_14_x86_64.whl", hash = "sha256:910841381caba4f744a44bf81bfd573c94e10b3045ee00de0cbf436fe50673a6"}, - {file = "greenlet-2.0.2-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:18a7f18b82b52ee85322d7a7874e676f34ab319b9f8cce5de06067384aa8ff43"}, - {file = "greenlet-2.0.2-cp35-cp35m-win32.whl", hash = "sha256:03a8f4f3430c3b3ff8d10a2a86028c660355ab637cee9333d63d66b56f09d52a"}, - {file = "greenlet-2.0.2-cp35-cp35m-win_amd64.whl", hash = "sha256:4b58adb399c4d61d912c4c331984d60eb66565175cdf4a34792cd9600f21b394"}, - {file = "greenlet-2.0.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:703f18f3fda276b9a916f0934d2fb6d989bf0b4fb5a64825260eb9bfd52d78f0"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:32e5b64b148966d9cccc2c8d35a671409e45f195864560829f395a54226408d3"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2dd11f291565a81d71dab10b7033395b7a3a5456e637cf997a6f33ebdf06f8db"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0f72c9ddb8cd28532185f54cc1453f2c16fb417a08b53a855c4e6a418edd099"}, - {file = "greenlet-2.0.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cd021c754b162c0fb55ad5d6b9d960db667faad0fa2ff25bb6e1301b0b6e6a75"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:3c9b12575734155d0c09d6c3e10dbd81665d5c18e1a7c6597df72fd05990c8cf"}, - {file = "greenlet-2.0.2-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:b9ec052b06a0524f0e35bd8790686a1da006bd911dd1ef7d50b77bfbad74e292"}, - {file = "greenlet-2.0.2-cp36-cp36m-win32.whl", hash = "sha256:dbfcfc0218093a19c252ca8eb9aee3d29cfdcb586df21049b9d777fd32c14fd9"}, - {file = "greenlet-2.0.2-cp36-cp36m-win_amd64.whl", hash = "sha256:9f35ec95538f50292f6d8f2c9c9f8a3c6540bbfec21c9e5b4b751e0a7c20864f"}, - {file = "greenlet-2.0.2-cp37-cp37m-macosx_10_15_x86_64.whl", hash = "sha256:d5508f0b173e6aa47273bdc0a0b5ba055b59662ba7c7ee5119528f466585526b"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:f82d4d717d8ef19188687aa32b8363e96062911e63ba22a0cff7802a8e58e5f1"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c9c59a2120b55788e800d82dfa99b9e156ff8f2227f07c5e3012a45a399620b7"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2780572ec463d44c1d3ae850239508dbeb9fed38e294c68d19a24d925d9223ca"}, - {file = "greenlet-2.0.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:937e9020b514ceedb9c830c55d5c9872abc90f4b5862f89c0887033ae33c6f73"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:36abbf031e1c0f79dd5d596bfaf8e921c41df2bdf54ee1eed921ce1f52999a86"}, - {file = "greenlet-2.0.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:18e98fb3de7dba1c0a852731c3070cf022d14f0d68b4c87a19cc1016f3bb8b33"}, - {file = "greenlet-2.0.2-cp37-cp37m-win32.whl", hash = "sha256:3f6ea9bd35eb450837a3d80e77b517ea5bc56b4647f5502cd28de13675ee12f7"}, - {file = "greenlet-2.0.2-cp37-cp37m-win_amd64.whl", hash = "sha256:7492e2b7bd7c9b9916388d9df23fa49d9b88ac0640db0a5b4ecc2b653bf451e3"}, - {file = "greenlet-2.0.2-cp38-cp38-macosx_10_15_x86_64.whl", hash = "sha256:b864ba53912b6c3ab6bcb2beb19f19edd01a6bfcbdfe1f37ddd1778abfe75a30"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:ba2956617f1c42598a308a84c6cf021a90ff3862eddafd20c3333d50f0edb45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc3a569657468b6f3fb60587e48356fe512c1754ca05a564f11366ac9e306526"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8eab883b3b2a38cc1e050819ef06a7e6344d4a990d24d45bc6f2cf959045a45b"}, - {file = "greenlet-2.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acd2162a36d3de67ee896c43effcd5ee3de247eb00354db411feb025aa319857"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:0bf60faf0bc2468089bdc5edd10555bab6e85152191df713e2ab1fcc86382b5a"}, - {file = "greenlet-2.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0ef99cdbe2b682b9ccbb964743a6aca37905fda5e0452e5ee239b1654d37f2a"}, - {file = "greenlet-2.0.2-cp38-cp38-win32.whl", hash = "sha256:b80f600eddddce72320dbbc8e3784d16bd3fb7b517e82476d8da921f27d4b249"}, - {file = "greenlet-2.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:4d2e11331fc0c02b6e84b0d28ece3a36e0548ee1a1ce9ddde03752d9b79bba40"}, - {file = "greenlet-2.0.2-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:88d9ab96491d38a5ab7c56dd7a3cc37d83336ecc564e4e8816dbed12e5aaefc8"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:561091a7be172ab497a3527602d467e2b3fbe75f9e783d8b8ce403fa414f71a6"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:971ce5e14dc5e73715755d0ca2975ac88cfdaefcaab078a284fea6cfabf866df"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:be4ed120b52ae4d974aa40215fcdfde9194d63541c7ded40ee12eb4dda57b76b"}, - {file = "greenlet-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94c817e84245513926588caf1152e3b559ff794d505555211ca041f032abbb6b"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:1a819eef4b0e0b96bb0d98d797bef17dc1b4a10e8d7446be32d1da33e095dbb8"}, - {file = "greenlet-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7efde645ca1cc441d6dc4b48c0f7101e8d86b54c8530141b09fd31cef5149ec9"}, - {file = "greenlet-2.0.2-cp39-cp39-win32.whl", hash = "sha256:ea9872c80c132f4663822dd2a08d404073a5a9b5ba6155bea72fb2a79d1093b5"}, - {file = "greenlet-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:db1a39669102a1d8d12b57de2bb7e2ec9066a6f2b3da35ae511ff93b01b5d564"}, - {file = "greenlet-2.0.2.tar.gz", hash = "sha256:e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"}, + {file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:36b89d13c49216cadb828db8dfa6ce86bbbc476a82d3a6c397f0efae0525bdd0"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94b6150a85e1b33b40b1464a3f9988dcc5251d6ed06842abff82e42632fac120"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93147c513fac16385d1036b7e5b102c7fbbdb163d556b791f0f11eada7ba65dc"}, + {file = "greenlet-3.1.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:da7a9bff22ce038e19bf62c4dd1ec8391062878710ded0a845bcf47cc0200617"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:b2795058c23988728eec1f36a4e5e4ebad22f8320c85f3587b539b9ac84128d7"}, + {file = "greenlet-3.1.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:ed10eac5830befbdd0c32f83e8aa6288361597550ba669b04c48f0f9a2c843c6"}, + {file = "greenlet-3.1.1-cp310-cp310-win_amd64.whl", hash = "sha256:77c386de38a60d1dfb8e55b8c1101d68c79dfdd25c7095d51fec2dd800892b80"}, + {file = "greenlet-3.1.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:e4d333e558953648ca09d64f13e6d8f0523fa705f51cae3f03b5983489958c70"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:09fc016b73c94e98e29af67ab7b9a879c307c6731a2c9da0db5a7d9b7edd1159"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d5e975ca70269d66d17dd995dafc06f1b06e8cb1ec1e9ed54c1d1e4a7c4cf26e"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b2813dc3de8c1ee3f924e4d4227999285fd335d1bcc0d2be6dc3f1f6a318ec1"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e347b3bfcf985a05e8c0b7d462ba6f15b1ee1c909e2dcad795e49e91b152c383"}, + {file = "greenlet-3.1.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e8f8c9cb53cdac7ba9793c276acd90168f416b9ce36799b9b885790f8ad6c0a"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:62ee94988d6b4722ce0028644418d93a52429e977d742ca2ccbe1c4f4a792511"}, + {file = "greenlet-3.1.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1776fd7f989fc6b8d8c8cb8da1f6b82c5814957264d1f6cf818d475ec2bf6395"}, + {file = "greenlet-3.1.1-cp311-cp311-win_amd64.whl", hash = "sha256:48ca08c771c268a768087b408658e216133aecd835c0ded47ce955381105ba39"}, + {file = "greenlet-3.1.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:4afe7ea89de619adc868e087b4d2359282058479d7cfb94970adf4b55284574d"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f406b22b7c9a9b4f8aa9d2ab13d6ae0ac3e85c9a809bd590ad53fed2bf70dc79"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c3a701fe5a9695b238503ce5bbe8218e03c3bcccf7e204e455e7462d770268aa"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2846930c65b47d70b9d178e89c7e1a69c95c1f68ea5aa0a58646b7a96df12441"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99cfaa2110534e2cf3ba31a7abcac9d328d1d9f1b95beede58294a60348fba36"}, + {file = "greenlet-3.1.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1443279c19fca463fc33e65ef2a935a5b09bb90f978beab37729e1c3c6c25fe9"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b7cede291382a78f7bb5f04a529cb18e068dd29e0fb27376074b6d0317bf4dd0"}, + {file = "greenlet-3.1.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:23f20bb60ae298d7d8656c6ec6db134bca379ecefadb0b19ce6f19d1f232a942"}, + {file = "greenlet-3.1.1-cp312-cp312-win_amd64.whl", hash = "sha256:7124e16b4c55d417577c2077be379514321916d5790fa287c9ed6f23bd2ffd01"}, + {file = "greenlet-3.1.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:05175c27cb459dcfc05d026c4232f9de8913ed006d42713cb8a5137bd49375f1"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:935e943ec47c4afab8965954bf49bfa639c05d4ccf9ef6e924188f762145c0ff"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:667a9706c970cb552ede35aee17339a18e8f2a87a51fba2ed39ceeeb1004798a"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b8a678974d1f3aa55f6cc34dc480169d58f2e6d8958895d68845fa4ab566509e"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:efc0f674aa41b92da8c49e0346318c6075d734994c3c4e4430b1c3f853e498e4"}, + {file = "greenlet-3.1.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0153404a4bb921f0ff1abeb5ce8a5131da56b953eda6e14b88dc6bbc04d2049e"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:275f72decf9932639c1c6dd1013a1bc266438eb32710016a1c742df5da6e60a1"}, + {file = "greenlet-3.1.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c4aab7f6381f38a4b42f269057aee279ab0fc7bf2e929e3d4abfae97b682a12c"}, + {file = "greenlet-3.1.1-cp313-cp313-win_amd64.whl", hash = "sha256:b42703b1cf69f2aa1df7d1030b9d77d3e584a70755674d60e710f0af570f3761"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1695e76146579f8c06c1509c7ce4dfe0706f49c6831a817ac04eebb2fd02011"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7876452af029456b3f3549b696bb36a06db7c90747740c5302f74a9e9fa14b13"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ead44c85f8ab905852d3de8d86f6f8baf77109f9da589cb4fa142bd3b57b475"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8320f64b777d00dd7ccdade271eaf0cad6636343293a25074cc5566160e4de7b"}, + {file = "greenlet-3.1.1-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6510bf84a6b643dabba74d3049ead221257603a253d0a9873f55f6a59a65f822"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:04b013dc07c96f83134b1e99888e7a79979f1a247e2a9f59697fa14b5862ed01"}, + {file = "greenlet-3.1.1-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:411f015496fec93c1c8cd4e5238da364e1da7a124bcb293f085bf2860c32c6f6"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47da355d8687fd65240c364c90a31569a133b7b60de111c255ef5b606f2ae291"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:98884ecf2ffb7d7fe6bd517e8eb99d31ff7855a840fa6d0d63cd07c037f6a981"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f1d4aeb8891338e60d1ab6127af1fe45def5259def8094b9c7e34690c8858803"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db32b5348615a04b82240cc67983cb315309e88d444a288934ee6ceaebcad6cc"}, + {file = "greenlet-3.1.1-cp37-cp37m-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dcc62f31eae24de7f8dce72134c8651c58000d3b1868e01392baea7c32c247de"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:1d3755bcb2e02de341c55b4fca7a745a24a9e7212ac953f6b3a48d117d7257aa"}, + {file = "greenlet-3.1.1-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:b8da394b34370874b4572676f36acabac172602abf054cbc4ac910219f3340af"}, + {file = "greenlet-3.1.1-cp37-cp37m-win32.whl", hash = "sha256:a0dfc6c143b519113354e780a50381508139b07d2177cb6ad6a08278ec655798"}, + {file = "greenlet-3.1.1-cp37-cp37m-win_amd64.whl", hash = "sha256:54558ea205654b50c438029505def3834e80f0869a70fb15b871c29b4575ddef"}, + {file = "greenlet-3.1.1-cp38-cp38-macosx_11_0_universal2.whl", hash = "sha256:346bed03fe47414091be4ad44786d1bd8bef0c3fcad6ed3dee074a032ab408a9"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dfc59d69fc48664bc693842bd57acfdd490acafda1ab52c7836e3fc75c90a111"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d21e10da6ec19b457b82636209cbe2331ff4306b54d06fa04b7c138ba18c8a81"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:37b9de5a96111fc15418819ab4c4432e4f3c2ede61e660b1e33971eba26ef9ba"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef9ea3f137e5711f0dbe5f9263e8c009b7069d8a1acea822bd5e9dae0ae49c8"}, + {file = "greenlet-3.1.1-cp38-cp38-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:85f3ff71e2e60bd4b4932a043fbbe0f499e263c628390b285cb599154a3b03b1"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:95ffcf719966dd7c453f908e208e14cde192e09fde6c7186c8f1896ef778d8cd"}, + {file = "greenlet-3.1.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:03a088b9de532cbfe2ba2034b2b85e82df37874681e8c470d6fb2f8c04d7e4b7"}, + {file = "greenlet-3.1.1-cp38-cp38-win32.whl", hash = "sha256:8b8b36671f10ba80e159378df9c4f15c14098c4fd73a36b9ad715f057272fbef"}, + {file = "greenlet-3.1.1-cp38-cp38-win_amd64.whl", hash = "sha256:7017b2be767b9d43cc31416aba48aab0d2309ee31b4dbf10a1d38fb7972bdf9d"}, + {file = "greenlet-3.1.1-cp39-cp39-macosx_11_0_universal2.whl", hash = "sha256:396979749bd95f018296af156201d6211240e7a23090f50a8d5d18c370084dc3"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca9d0ff5ad43e785350894d97e13633a66e2b50000e8a183a50a88d834752d42"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f6ff3b14f2df4c41660a7dec01045a045653998784bf8cfcb5a525bdffffbc8f"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:94ebba31df2aa506d7b14866fed00ac141a867e63143fe5bca82a8e503b36437"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73aaad12ac0ff500f62cebed98d8789198ea0e6f233421059fa68a5aa7220145"}, + {file = "greenlet-3.1.1-cp39-cp39-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63e4844797b975b9af3a3fb8f7866ff08775f5426925e1e0bbcfe7932059a12c"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:7939aa3ca7d2a1593596e7ac6d59391ff30281ef280d8632fa03d81f7c5f955e"}, + {file = "greenlet-3.1.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d0028e725ee18175c6e422797c407874da24381ce0690d6b9396c204c7f7276e"}, + {file = "greenlet-3.1.1-cp39-cp39-win32.whl", hash = "sha256:5e06afd14cbaf9e00899fae69b24a32f2196c19de08fcb9f4779dd4f004e5e7c"}, + {file = "greenlet-3.1.1-cp39-cp39-win_amd64.whl", hash = "sha256:3319aa75e0e0639bc15ff54ca327e8dc7a6fe404003496e3c6925cd3142e0e22"}, + {file = "greenlet-3.1.1.tar.gz", hash = "sha256:4ce3ac6cdb6adf7946475d7ef31777c26d94bccc377e070a7986bd2d5c515467"}, ] [package.extras] -docs = ["Sphinx", "docutils (<0.18)"] +docs = ["Sphinx", "furo"] test = ["objgraph", "psutil"] [[package]] name = "gunicorn" -version = "21.2.0" +version = "22.0.0" description = "WSGI HTTP Server for UNIX" -category = "main" optional = false -python-versions = ">=3.5" +python-versions = ">=3.7" files = [ - {file = "gunicorn-21.2.0-py3-none-any.whl", hash = "sha256:3213aa5e8c24949e792bcacfc176fef362e7aac80b76c56f6b5122bf350722f0"}, - {file = "gunicorn-21.2.0.tar.gz", hash = "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033"}, + {file = "gunicorn-22.0.0-py3-none-any.whl", hash = "sha256:350679f91b24062c86e386e198a15438d53a7a8207235a78ba1b53df4c4378d9"}, + {file = "gunicorn-22.0.0.tar.gz", hash = "sha256:4a0b436239ff76fb33f11c07a16482c521a7e09c1ce3cc293c2330afe01bec63"}, ] [package.dependencies] packaging = "*" [package.extras] -eventlet = ["eventlet (>=0.24.1)"] +eventlet = ["eventlet (>=0.24.1,!=0.36.0)"] gevent = ["gevent (>=1.4.0)"] setproctitle = ["setproctitle"] +testing = ["coverage", "eventlet", "gevent", "pytest", "pytest-cov"] tornado = ["tornado (>=0.2)"] [[package]] name = "h11" version = "0.14.0" description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -720,7 +805,6 @@ files = [ name = "h2" version = "4.1.0" description = "HTTP/2 State-Machine based protocol implementation" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -736,7 +820,6 @@ hyperframe = ">=6.0,<7" name = "hpack" version = "4.0.0" description = "Pure-Python HPACK header compression" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -746,80 +829,80 @@ files = [ [[package]] name = "httpcore" -version = "0.17.0" +version = "1.0.5" description = "A minimal low-level HTTP client." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "httpcore-0.17.0-py3-none-any.whl", hash = "sha256:0fdfea45e94f0c9fd96eab9286077f9ff788dd186635ae61b312693e4d943599"}, - {file = "httpcore-0.17.0.tar.gz", hash = "sha256:cc045a3241afbf60ce056202301b4d8b6af08845e3294055eb26b09913ef903c"}, + {file = "httpcore-1.0.5-py3-none-any.whl", hash = "sha256:421f18bac248b25d310f3cacd198d55b8e6125c107797b609ff9b7a6ba7991b5"}, + {file = "httpcore-1.0.5.tar.gz", hash = "sha256:34a38e2f9291467ee3b44e89dd52615370e152954ba21721378a87b2960f7a61"}, ] [package.dependencies] -anyio = ">=3.0,<5.0" certifi = "*" h11 = ">=0.13,<0.15" -sniffio = ">=1.0.0,<2.0.0" [package.extras] +asyncio = ["anyio (>=4.0,<5.0)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] +trio = ["trio (>=0.22.0,<0.26.0)"] [[package]] name = "httpx" -version = "0.24.1" +version = "0.27.0" description = "The next generation HTTP client." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "httpx-0.24.1-py3-none-any.whl", hash = "sha256:06781eb9ac53cde990577af654bd990a4949de37a28bdb4a230d434f3a30b9bd"}, - {file = "httpx-0.24.1.tar.gz", hash = "sha256:5853a43053df830c20f8110c5e69fe44d035d850b2dfe795e196f00fdb774bdd"}, + {file = "httpx-0.27.0-py3-none-any.whl", hash = "sha256:71d5465162c13681bff01ad59b2cc68dd838ea1f10e51574bac27103f00c91a5"}, + {file = "httpx-0.27.0.tar.gz", hash = "sha256:a0cb88a46f32dc874e04ee956e4c2764aba2aa228f650b06788ba6bda2962ab5"}, ] [package.dependencies] +anyio = "*" certifi = "*" -httpcore = ">=0.15.0,<0.18.0" +httpcore = "==1.*" idna = "*" sniffio = "*" [package.extras] brotli = ["brotli", "brotlicffi"] -cli = ["click (>=8.0.0,<9.0.0)", "pygments (>=2.0.0,<3.0.0)", "rich (>=10,<14)"] +cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"] http2 = ["h2 (>=3,<5)"] -socks = ["socksio (>=1.0.0,<2.0.0)"] +socks = ["socksio (==1.*)"] [[package]] name = "hypercorn" -version = "0.14.4" +version = "0.17.3" description = "A ASGI Server based on Hyper libraries and inspired by Gunicorn" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "hypercorn-0.14.4-py3-none-any.whl", hash = "sha256:f956200dbf8677684e6e976219ffa6691d6cf795281184b41dbb0b135ab37b8d"}, - {file = "hypercorn-0.14.4.tar.gz", hash = "sha256:3fa504efc46a271640023c9b88c3184fd64993f47a282e8ae1a13ccb285c2f67"}, + {file = "hypercorn-0.17.3-py3-none-any.whl", hash = "sha256:059215dec34537f9d40a69258d323f56344805efb462959e727152b0aa504547"}, + {file = "hypercorn-0.17.3.tar.gz", hash = "sha256:1b37802ee3ac52d2d85270700d565787ab16cf19e1462ccfa9f089ca17574165"}, ] [package.dependencies] +exceptiongroup = {version = ">=1.1.0", markers = "python_version < \"3.11\""} h11 = "*" h2 = ">=3.1.0" priority = "*" +taskgroup = {version = "*", markers = "python_version < \"3.11\""} tomli = {version = "*", markers = "python_version < \"3.11\""} +typing_extensions = {version = "*", markers = "python_version < \"3.11\""} wsproto = ">=0.14.0" [package.extras] -docs = ["pydata_sphinx_theme"] +docs = ["pydata_sphinx_theme", "sphinxcontrib_mermaid"] h3 = ["aioquic (>=0.9.0,<1.0)"] -trio = ["exceptiongroup (>=1.1.0)", "trio (>=0.22.0)"] -uvloop = ["uvloop"] +trio = ["trio (>=0.22.0)"] +uvloop = ["uvloop (>=0.18)"] [[package]] name = "hyperframe" version = "6.0.1" description = "HTTP/2 framing layer for Python" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -829,41 +912,38 @@ files = [ [[package]] name = "idna" -version = "3.4" +version = "3.7" description = "Internationalized Domain Names in Applications (IDNA)" -category = "main" optional = false python-versions = ">=3.5" files = [ - {file = "idna-3.4-py3-none-any.whl", hash = "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2"}, - {file = "idna-3.4.tar.gz", hash = "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"}, + {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, + {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, ] [[package]] name = "importlib-metadata" -version = "6.6.0" +version = "8.0.0" description = "Read metadata from Python packages" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "importlib_metadata-6.6.0-py3-none-any.whl", hash = "sha256:43dd286a2cd8995d5eaef7fee2066340423b818ed3fd70adf0bad5f1fac53fed"}, - {file = "importlib_metadata-6.6.0.tar.gz", hash = "sha256:92501cdf9cc66ebd3e612f1b4f0c0765dfa42f0fa38ffb319b6bd84dd675d705"}, + {file = "importlib_metadata-8.0.0-py3-none-any.whl", hash = "sha256:15584cf2b1bf449d98ff8a6ff1abef57bf20f3ac6454f431736cd3e660921b2f"}, + {file = "importlib_metadata-8.0.0.tar.gz", hash = "sha256:188bd24e4c346d3f0a933f275c2fec67050326a856b9a359881d7c2a697e8812"}, ] [package.dependencies] zipp = ">=0.5" [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] perf = ["ipython"] -testing = ["flake8 (<5)", "flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)"] +test = ["flufl.flake8", "importlib-resources (>=1.3)", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy", "pytest-perf (>=0.9.2)", "pytest-ruff (>=0.2.1)"] [[package]] name = "iniconfig" version = "2.0.0" description = "brain-dead simple config-ini parsing" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -873,26 +953,24 @@ files = [ [[package]] name = "itsdangerous" -version = "2.1.2" +version = "2.2.0" description = "Safely pass data to untrusted environments and back." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44"}, - {file = "itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"}, + {file = "itsdangerous-2.2.0-py3-none-any.whl", hash = "sha256:c6242fc49e35958c8b15141343aa660db5fc54d4f13a1db01a3f5891b98700ef"}, + {file = "itsdangerous-2.2.0.tar.gz", hash = "sha256:e0050c0b7da1eea53ffaf149c0cfbb5c6e2e2b69c4bef22c81fa6eb73e5f6173"}, ] [[package]] name = "jinja2" -version = "3.1.2" +version = "3.1.4" description = "A very fast and expressive template engine." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "Jinja2-3.1.2-py3-none-any.whl", hash = "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"}, - {file = "Jinja2-3.1.2.tar.gz", hash = "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852"}, + {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, + {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, ] [package.dependencies] @@ -903,122 +981,167 @@ i18n = ["Babel (>=2.7)"] [[package]] name = "lxml" -version = "4.9.3" +version = "5.3.0" description = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API." -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, != 3.4.*" +python-versions = ">=3.6" files = [ - {file = "lxml-4.9.3-cp27-cp27m-macosx_11_0_x86_64.whl", hash = "sha256:b0a545b46b526d418eb91754565ba5b63b1c0b12f9bd2f808c852d9b4b2f9b5c"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:075b731ddd9e7f68ad24c635374211376aa05a281673ede86cbe1d1b3455279d"}, - {file = "lxml-4.9.3-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:1e224d5755dba2f4a9498e150c43792392ac9b5380aa1b845f98a1618c94eeef"}, - {file = "lxml-4.9.3-cp27-cp27m-win32.whl", hash = "sha256:2c74524e179f2ad6d2a4f7caf70e2d96639c0954c943ad601a9e146c76408ed7"}, - {file = "lxml-4.9.3-cp27-cp27m-win_amd64.whl", hash = "sha256:4f1026bc732b6a7f96369f7bfe1a4f2290fb34dce00d8644bc3036fb351a4ca1"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0781a98ff5e6586926293e59480b64ddd46282953203c76ae15dbbbf302e8bb"}, - {file = "lxml-4.9.3-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:cef2502e7e8a96fe5ad686d60b49e1ab03e438bd9123987994528febd569868e"}, - {file = "lxml-4.9.3-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:b86164d2cff4d3aaa1f04a14685cbc072efd0b4f99ca5708b2ad1b9b5988a991"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:42871176e7896d5d45138f6d28751053c711ed4d48d8e30b498da155af39aebd"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:ae8b9c6deb1e634ba4f1930eb67ef6e6bf6a44b6eb5ad605642b2d6d5ed9ce3c"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:411007c0d88188d9f621b11d252cce90c4a2d1a49db6c068e3c16422f306eab8"}, - {file = "lxml-4.9.3-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:cd47b4a0d41d2afa3e58e5bf1f62069255aa2fd6ff5ee41604418ca925911d76"}, - {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0e2cb47860da1f7e9a5256254b74ae331687b9672dfa780eed355c4c9c3dbd23"}, - {file = "lxml-4.9.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:1247694b26342a7bf47c02e513d32225ededd18045264d40758abeb3c838a51f"}, - {file = "lxml-4.9.3-cp310-cp310-win32.whl", hash = "sha256:cdb650fc86227eba20de1a29d4b2c1bfe139dc75a0669270033cb2ea3d391b85"}, - {file = "lxml-4.9.3-cp310-cp310-win_amd64.whl", hash = "sha256:97047f0d25cd4bcae81f9ec9dc290ca3e15927c192df17331b53bebe0e3ff96d"}, - {file = "lxml-4.9.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:1f447ea5429b54f9582d4b955f5f1985f278ce5cf169f72eea8afd9502973dd5"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:57d6ba0ca2b0c462f339640d22882acc711de224d769edf29962b09f77129cbf"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:9767e79108424fb6c3edf8f81e6730666a50feb01a328f4a016464a5893f835a"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:71c52db65e4b56b8ddc5bb89fb2e66c558ed9d1a74a45ceb7dcb20c191c3df2f"}, - {file = "lxml-4.9.3-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:d73d8ecf8ecf10a3bd007f2192725a34bd62898e8da27eb9d32a58084f93962b"}, - {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0a3d3487f07c1d7f150894c238299934a2a074ef590b583103a45002035be120"}, - {file = "lxml-4.9.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9e28c51fa0ce5674be9f560c6761c1b441631901993f76700b1b30ca6c8378d6"}, - {file = "lxml-4.9.3-cp311-cp311-win32.whl", hash = "sha256:0bfd0767c5c1de2551a120673b72e5d4b628737cb05414f03c3277bf9bed3305"}, - {file = "lxml-4.9.3-cp311-cp311-win_amd64.whl", hash = "sha256:25f32acefac14ef7bd53e4218fe93b804ef6f6b92ffdb4322bb6d49d94cad2bc"}, - {file = "lxml-4.9.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:d3ff32724f98fbbbfa9f49d82852b159e9784d6094983d9a8b7f2ddaebb063d4"}, - {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48d6ed886b343d11493129e019da91d4039826794a3e3027321c56d9e71505be"}, - {file = "lxml-4.9.3-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:9a92d3faef50658dd2c5470af249985782bf754c4e18e15afb67d3ab06233f13"}, - {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b4e4bc18382088514ebde9328da057775055940a1f2e18f6ad2d78aa0f3ec5b9"}, - {file = "lxml-4.9.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fc9b106a1bf918db68619fdcd6d5ad4f972fdd19c01d19bdb6bf63f3589a9ec5"}, - {file = "lxml-4.9.3-cp312-cp312-win_amd64.whl", hash = "sha256:d37017287a7adb6ab77e1c5bee9bcf9660f90ff445042b790402a654d2ad81d8"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:56dc1f1ebccc656d1b3ed288f11e27172a01503fc016bcabdcbc0978b19352b7"}, - {file = "lxml-4.9.3-cp35-cp35m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:578695735c5a3f51569810dfebd05dd6f888147a34f0f98d4bb27e92b76e05c2"}, - {file = "lxml-4.9.3-cp35-cp35m-win32.whl", hash = "sha256:704f61ba8c1283c71b16135caf697557f5ecf3e74d9e453233e4771d68a1f42d"}, - {file = "lxml-4.9.3-cp35-cp35m-win_amd64.whl", hash = "sha256:c41bfca0bd3532d53d16fd34d20806d5c2b1ace22a2f2e4c0008570bf2c58833"}, - {file = "lxml-4.9.3-cp36-cp36m-macosx_11_0_x86_64.whl", hash = "sha256:64f479d719dc9f4c813ad9bb6b28f8390360660b73b2e4beb4cb0ae7104f1c12"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:dd708cf4ee4408cf46a48b108fb9427bfa00b9b85812a9262b5c668af2533ea5"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c31c7462abdf8f2ac0577d9f05279727e698f97ecbb02f17939ea99ae8daa98"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e3cd95e10c2610c360154afdc2f1480aea394f4a4f1ea0a5eacce49640c9b190"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:4930be26af26ac545c3dffb662521d4e6268352866956672231887d18f0eaab2"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4aec80cde9197340bc353d2768e2a75f5f60bacda2bab72ab1dc499589b3878c"}, - {file = "lxml-4.9.3-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:14e019fd83b831b2e61baed40cab76222139926b1fb5ed0e79225bc0cae14584"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0c0850c8b02c298d3c7006b23e98249515ac57430e16a166873fc47a5d549287"}, - {file = "lxml-4.9.3-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:aca086dc5f9ef98c512bac8efea4483eb84abbf926eaeedf7b91479feb092458"}, - {file = "lxml-4.9.3-cp36-cp36m-win32.whl", hash = "sha256:50baa9c1c47efcaef189f31e3d00d697c6d4afda5c3cde0302d063492ff9b477"}, - {file = "lxml-4.9.3-cp36-cp36m-win_amd64.whl", hash = "sha256:bef4e656f7d98aaa3486d2627e7d2df1157d7e88e7efd43a65aa5dd4714916cf"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:46f409a2d60f634fe550f7133ed30ad5321ae2e6630f13657fb9479506b00601"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:4c28a9144688aef80d6ea666c809b4b0e50010a2aca784c97f5e6bf143d9f129"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:141f1d1a9b663c679dc524af3ea1773e618907e96075262726c7612c02b149a4"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:53ace1c1fd5a74ef662f844a0413446c0629d151055340e9893da958a374f70d"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:17a753023436a18e27dd7769e798ce302963c236bc4114ceee5b25c18c52c693"}, - {file = "lxml-4.9.3-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:7d298a1bd60c067ea75d9f684f5f3992c9d6766fadbc0bcedd39750bf344c2f4"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:081d32421db5df44c41b7f08a334a090a545c54ba977e47fd7cc2deece78809a"}, - {file = "lxml-4.9.3-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:23eed6d7b1a3336ad92d8e39d4bfe09073c31bfe502f20ca5116b2a334f8ec02"}, - {file = "lxml-4.9.3-cp37-cp37m-win32.whl", hash = "sha256:1509dd12b773c02acd154582088820893109f6ca27ef7291b003d0e81666109f"}, - {file = "lxml-4.9.3-cp37-cp37m-win_amd64.whl", hash = "sha256:120fa9349a24c7043854c53cae8cec227e1f79195a7493e09e0c12e29f918e52"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4d2d1edbca80b510443f51afd8496be95529db04a509bc8faee49c7b0fb6d2cc"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl", hash = "sha256:8d7e43bd40f65f7d97ad8ef5c9b1778943d02f04febef12def25f7583d19baac"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:71d66ee82e7417828af6ecd7db817913cb0cf9d4e61aa0ac1fde0583d84358db"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:6fc3c450eaa0b56f815c7b62f2b7fba7266c4779adcf1cece9e6deb1de7305ce"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:65299ea57d82fb91c7f019300d24050c4ddeb7c5a190e076b5f48a2b43d19c42"}, - {file = "lxml-4.9.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:eadfbbbfb41b44034a4c757fd5d70baccd43296fb894dba0295606a7cf3124aa"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:3e9bdd30efde2b9ccfa9cb5768ba04fe71b018a25ea093379c857c9dad262c40"}, - {file = "lxml-4.9.3-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:fcdd00edfd0a3001e0181eab3e63bd5c74ad3e67152c84f93f13769a40e073a7"}, - {file = "lxml-4.9.3-cp38-cp38-win32.whl", hash = "sha256:57aba1bbdf450b726d58b2aea5fe47c7875f5afb2c4a23784ed78f19a0462574"}, - {file = "lxml-4.9.3-cp38-cp38-win_amd64.whl", hash = "sha256:92af161ecbdb2883c4593d5ed4815ea71b31fafd7fd05789b23100d081ecac96"}, - {file = "lxml-4.9.3-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:9bb6ad405121241e99a86efff22d3ef469024ce22875a7ae045896ad23ba2340"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8ed74706b26ad100433da4b9d807eae371efaa266ffc3e9191ea436087a9d6a7"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:fbf521479bcac1e25a663df882c46a641a9bff6b56dc8b0fafaebd2f66fb231b"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:303bf1edce6ced16bf67a18a1cf8339d0db79577eec5d9a6d4a80f0fb10aa2da"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:5515edd2a6d1a5a70bfcdee23b42ec33425e405c5b351478ab7dc9347228f96e"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:690dafd0b187ed38583a648076865d8c229661ed20e48f2335d68e2cf7dc829d"}, - {file = "lxml-4.9.3-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:b6420a005548ad52154c8ceab4a1290ff78d757f9e5cbc68f8c77089acd3c432"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bb3bb49c7a6ad9d981d734ef7c7193bc349ac338776a0360cc671eaee89bcf69"}, - {file = "lxml-4.9.3-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:d27be7405547d1f958b60837dc4c1007da90b8b23f54ba1f8b728c78fdb19d50"}, - {file = "lxml-4.9.3-cp39-cp39-win32.whl", hash = "sha256:8df133a2ea5e74eef5e8fc6f19b9e085f758768a16e9877a60aec455ed2609b2"}, - {file = "lxml-4.9.3-cp39-cp39-win_amd64.whl", hash = "sha256:4dd9a263e845a72eacb60d12401e37c616438ea2e5442885f65082c276dfb2b2"}, - {file = "lxml-4.9.3-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6689a3d7fd13dc687e9102a27e98ef33730ac4fe37795d5036d18b4d527abd35"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:f6bdac493b949141b733c5345b6ba8f87a226029cbabc7e9e121a413e49441e0"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:05186a0f1346ae12553d66df1cfce6f251589fea3ad3da4f3ef4e34b2d58c6a3"}, - {file = "lxml-4.9.3-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c2006f5c8d28dee289f7020f721354362fa304acbaaf9745751ac4006650254b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-macosx_11_0_x86_64.whl", hash = "sha256:5c245b783db29c4e4fbbbfc9c5a78be496c9fea25517f90606aa1f6b2b3d5f7b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:4fb960a632a49f2f089d522f70496640fdf1218f1243889da3822e0a9f5f3ba7"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:50670615eaf97227d5dc60de2dc99fb134a7130d310d783314e7724bf163f75d"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:9719fe17307a9e814580af1f5c6e05ca593b12fb7e44fe62450a5384dbf61b4b"}, - {file = "lxml-4.9.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:3331bece23c9ee066e0fb3f96c61322b9e0f54d775fccefff4c38ca488de283a"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-macosx_11_0_x86_64.whl", hash = "sha256:ed667f49b11360951e201453fc3967344d0d0263aa415e1619e85ae7fd17b4e0"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_24_i686.whl", hash = "sha256:8b77946fd508cbf0fccd8e400a7f71d4ac0e1595812e66025bac475a8e811694"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl", hash = "sha256:e4da8ca0c0c0aea88fd46be8e44bd49716772358d648cce45fe387f7b92374a7"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:fe4bda6bd4340caa6e5cf95e73f8fea5c4bfc55763dd42f1b50a94c1b4a2fbd4"}, - {file = "lxml-4.9.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:f3df3db1d336b9356dd3112eae5f5c2b8b377f3bc826848567f10bfddfee77e9"}, - {file = "lxml-4.9.3.tar.gz", hash = "sha256:48628bd53a426c9eb9bc066a923acaa0878d1e86129fd5359aee99285f4eed9c"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:dd36439be765e2dde7660212b5275641edbc813e7b24668831a5c8ac91180656"}, + {file = "lxml-5.3.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ae5fe5c4b525aa82b8076c1a59d642c17b6e8739ecf852522c6321852178119d"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:501d0d7e26b4d261fca8132854d845e4988097611ba2531408ec91cf3fd9d20a"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb66442c2546446944437df74379e9cf9e9db353e61301d1a0e26482f43f0dd8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9e41506fec7a7f9405b14aa2d5c8abbb4dbbd09d88f9496958b6d00cb4d45330"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f7d4a670107d75dfe5ad080bed6c341d18c4442f9378c9f58e5851e86eb79965"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:41ce1f1e2c7755abfc7e759dc34d7d05fd221723ff822947132dc934d122fe22"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:44264ecae91b30e5633013fb66f6ddd05c006d3e0e884f75ce0b4755b3e3847b"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_ppc64le.whl", hash = "sha256:3c174dc350d3ec52deb77f2faf05c439331d6ed5e702fc247ccb4e6b62d884b7"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_s390x.whl", hash = "sha256:2dfab5fa6a28a0b60a20638dc48e6343c02ea9933e3279ccb132f555a62323d8"}, + {file = "lxml-5.3.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:b1c8c20847b9f34e98080da785bb2336ea982e7f913eed5809e5a3c872900f32"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2c86bf781b12ba417f64f3422cfc302523ac9cd1d8ae8c0f92a1c66e56ef2e86"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:c162b216070f280fa7da844531169be0baf9ccb17263cf5a8bf876fcd3117fa5"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:36aef61a1678cb778097b4a6eeae96a69875d51d1e8f4d4b491ab3cfb54b5a03"}, + {file = "lxml-5.3.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f65e5120863c2b266dbcc927b306c5b78e502c71edf3295dfcb9501ec96e5fc7"}, + {file = "lxml-5.3.0-cp310-cp310-win32.whl", hash = "sha256:ef0c1fe22171dd7c7c27147f2e9c3e86f8bdf473fed75f16b0c2e84a5030ce80"}, + {file = "lxml-5.3.0-cp310-cp310-win_amd64.whl", hash = "sha256:052d99051e77a4f3e8482c65014cf6372e61b0a6f4fe9edb98503bb5364cfee3"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74bcb423462233bc5d6066e4e98b0264e7c1bed7541fff2f4e34fe6b21563c8b"}, + {file = "lxml-5.3.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a3d819eb6f9b8677f57f9664265d0a10dd6551d227afb4af2b9cd7bdc2ccbf18"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5b8f5db71b28b8c404956ddf79575ea77aa8b1538e8b2ef9ec877945b3f46442"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c3406b63232fc7e9b8783ab0b765d7c59e7c59ff96759d8ef9632fca27c7ee4"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ecdd78ab768f844c7a1d4a03595038c166b609f6395e25af9b0f3f26ae1230f"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:168f2dfcfdedf611eb285efac1516c8454c8c99caf271dccda8943576b67552e"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa617107a410245b8660028a7483b68e7914304a6d4882b5ff3d2d3eb5948d8c"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:69959bd3167b993e6e710b99051265654133a98f20cec1d9b493b931942e9c16"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_ppc64le.whl", hash = "sha256:bd96517ef76c8654446fc3db9242d019a1bb5fe8b751ba414765d59f99210b79"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_s390x.whl", hash = "sha256:ab6dd83b970dc97c2d10bc71aa925b84788c7c05de30241b9e96f9b6d9ea3080"}, + {file = "lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:eec1bb8cdbba2925bedc887bc0609a80e599c75b12d87ae42ac23fd199445654"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6a7095eeec6f89111d03dabfe5883a1fd54da319c94e0fb104ee8f23616b572d"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:6f651ebd0b21ec65dfca93aa629610a0dbc13dbc13554f19b0113da2e61a4763"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:f422a209d2455c56849442ae42f25dbaaba1c6c3f501d58761c619c7836642ec"}, + {file = "lxml-5.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:62f7fdb0d1ed2065451f086519865b4c90aa19aed51081979ecd05a21eb4d1be"}, + {file = "lxml-5.3.0-cp311-cp311-win32.whl", hash = "sha256:c6379f35350b655fd817cd0d6cbeef7f265f3ae5fedb1caae2eb442bbeae9ab9"}, + {file = "lxml-5.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c52100e2c2dbb0649b90467935c4b0de5528833c76a35ea1a2691ec9f1ee7a1"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:e99f5507401436fdcc85036a2e7dc2e28d962550afe1cbfc07c40e454256a859"}, + {file = "lxml-5.3.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:384aacddf2e5813a36495233b64cb96b1949da72bef933918ba5c84e06af8f0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:874a216bf6afaf97c263b56371434e47e2c652d215788396f60477540298218f"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65ab5685d56914b9a2a34d67dd5488b83213d680b0c5d10b47f81da5a16b0b0e"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aac0bbd3e8dd2d9c45ceb82249e8bdd3ac99131a32b4d35c8af3cc9db1657179"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b369d3db3c22ed14c75ccd5af429086f166a19627e84a8fdade3f8f31426e52a"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c24037349665434f375645fa9d1f5304800cec574d0310f618490c871fd902b3"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:62d172f358f33a26d6b41b28c170c63886742f5b6772a42b59b4f0fa10526cb1"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_ppc64le.whl", hash = "sha256:c1f794c02903c2824fccce5b20c339a1a14b114e83b306ff11b597c5f71a1c8d"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_s390x.whl", hash = "sha256:5d6a6972b93c426ace71e0be9a6f4b2cfae9b1baed2eed2006076a746692288c"}, + {file = "lxml-5.3.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:3879cc6ce938ff4eb4900d901ed63555c778731a96365e53fadb36437a131a99"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:74068c601baff6ff021c70f0935b0c7bc528baa8ea210c202e03757c68c5a4ff"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:ecd4ad8453ac17bc7ba3868371bffb46f628161ad0eefbd0a855d2c8c32dd81a"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:7e2f58095acc211eb9d8b5771bf04df9ff37d6b87618d1cbf85f92399c98dae8"}, + {file = "lxml-5.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e63601ad5cd8f860aa99d109889b5ac34de571c7ee902d6812d5d9ddcc77fa7d"}, + {file = "lxml-5.3.0-cp312-cp312-win32.whl", hash = "sha256:17e8d968d04a37c50ad9c456a286b525d78c4a1c15dd53aa46c1d8e06bf6fa30"}, + {file = "lxml-5.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:c1a69e58a6bb2de65902051d57fde951febad631a20a64572677a1052690482f"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c72e9563347c7395910de6a3100a4840a75a6f60e05af5e58566868d5eb2d6a"}, + {file = "lxml-5.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e92ce66cd919d18d14b3856906a61d3f6b6a8500e0794142338da644260595cd"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d04f064bebdfef9240478f7a779e8c5dc32b8b7b0b2fc6a62e39b928d428e51"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c2fb570d7823c2bbaf8b419ba6e5662137f8166e364a8b2b91051a1fb40ab8b"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0c120f43553ec759f8de1fee2f4794452b0946773299d44c36bfe18e83caf002"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:562e7494778a69086f0312ec9689f6b6ac1c6b65670ed7d0267e49f57ffa08c4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:423b121f7e6fa514ba0c7918e56955a1d4470ed35faa03e3d9f0e3baa4c7e492"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:c00f323cc00576df6165cc9d21a4c21285fa6b9989c5c39830c3903dc4303ef3"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_ppc64le.whl", hash = "sha256:1fdc9fae8dd4c763e8a31e7630afef517eab9f5d5d31a278df087f307bf601f4"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_s390x.whl", hash = "sha256:658f2aa69d31e09699705949b5fc4719cbecbd4a97f9656a232e7d6c7be1a367"}, + {file = "lxml-5.3.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:1473427aff3d66a3fa2199004c3e601e6c4500ab86696edffdbc84954c72d832"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a87de7dd873bf9a792bf1e58b1c3887b9264036629a5bf2d2e6579fe8e73edff"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:0d7b36afa46c97875303a94e8f3ad932bf78bace9e18e603f2085b652422edcd"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:cf120cce539453ae086eacc0130a324e7026113510efa83ab42ef3fcfccac7fb"}, + {file = "lxml-5.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:df5c7333167b9674aa8ae1d4008fa4bc17a313cc490b2cca27838bbdcc6bb15b"}, + {file = "lxml-5.3.0-cp313-cp313-win32.whl", hash = "sha256:c802e1c2ed9f0c06a65bc4ed0189d000ada8049312cfeab6ca635e39c9608957"}, + {file = "lxml-5.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:406246b96d552e0503e17a1006fd27edac678b3fcc9f1be71a2f94b4ff61528d"}, + {file = "lxml-5.3.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:8f0de2d390af441fe8b2c12626d103540b5d850d585b18fcada58d972b74a74e"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1afe0a8c353746e610bd9031a630a95bcfb1a720684c3f2b36c4710a0a96528f"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56b9861a71575f5795bde89256e7467ece3d339c9b43141dbdd54544566b3b94"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_28_x86_64.whl", hash = "sha256:9fb81d2824dff4f2e297a276297e9031f46d2682cafc484f49de182aa5e5df99"}, + {file = "lxml-5.3.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2c226a06ecb8cdef28845ae976da407917542c5e6e75dcac7cc33eb04aaeb237"}, + {file = "lxml-5.3.0-cp36-cp36m-musllinux_1_2_x86_64.whl", hash = "sha256:7d3d1ca42870cdb6d0d29939630dbe48fa511c203724820fc0fd507b2fb46577"}, + {file = "lxml-5.3.0-cp36-cp36m-win32.whl", hash = "sha256:094cb601ba9f55296774c2d57ad68730daa0b13dc260e1f941b4d13678239e70"}, + {file = "lxml-5.3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:eafa2c8658f4e560b098fe9fc54539f86528651f61849b22111a9b107d18910c"}, + {file = "lxml-5.3.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cb83f8a875b3d9b458cada4f880fa498646874ba4011dc974e071a0a84a1b033"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25f1b69d41656b05885aa185f5fdf822cb01a586d1b32739633679699f220391"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23e0553b8055600b3bf4a00b255ec5c92e1e4aebf8c2c09334f8368e8bd174d6"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ada35dd21dc6c039259596b358caab6b13f4db4d4a7f8665764d616daf9cc1d"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_aarch64.whl", hash = "sha256:81b4e48da4c69313192d8c8d4311e5d818b8be1afe68ee20f6385d0e96fc9512"}, + {file = "lxml-5.3.0-cp37-cp37m-manylinux_2_28_x86_64.whl", hash = "sha256:2bc9fd5ca4729af796f9f59cd8ff160fe06a474da40aca03fcc79655ddee1a8b"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:07da23d7ee08577760f0a71d67a861019103e4812c87e2fab26b039054594cc5"}, + {file = "lxml-5.3.0-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:ea2e2f6f801696ad7de8aec061044d6c8c0dd4037608c7cab38a9a4d316bfb11"}, + {file = "lxml-5.3.0-cp37-cp37m-win32.whl", hash = "sha256:5c54afdcbb0182d06836cc3d1be921e540be3ebdf8b8a51ee3ef987537455f84"}, + {file = "lxml-5.3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:f2901429da1e645ce548bf9171784c0f74f0718c3f6150ce166be39e4dd66c3e"}, + {file = "lxml-5.3.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:c56a1d43b2f9ee4786e4658c7903f05da35b923fb53c11025712562d5cc02753"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ee8c39582d2652dcd516d1b879451500f8db3fe3607ce45d7c5957ab2596040"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdf3a3059611f7585a78ee10399a15566356116a4288380921a4b598d807a22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:146173654d79eb1fc97498b4280c1d3e1e5d58c398fa530905c9ea50ea849b22"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_aarch64.whl", hash = "sha256:0a7056921edbdd7560746f4221dca89bb7a3fe457d3d74267995253f46343f15"}, + {file = "lxml-5.3.0-cp38-cp38-manylinux_2_28_x86_64.whl", hash = "sha256:9e4b47ac0f5e749cfc618efdf4726269441014ae1d5583e047b452a32e221920"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:f914c03e6a31deb632e2daa881fe198461f4d06e57ac3d0e05bbcab8eae01945"}, + {file = "lxml-5.3.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:213261f168c5e1d9b7535a67e68b1f59f92398dd17a56d934550837143f79c42"}, + {file = "lxml-5.3.0-cp38-cp38-win32.whl", hash = "sha256:218c1b2e17a710e363855594230f44060e2025b05c80d1f0661258142b2add2e"}, + {file = "lxml-5.3.0-cp38-cp38-win_amd64.whl", hash = "sha256:315f9542011b2c4e1d280e4a20ddcca1761993dda3afc7a73b01235f8641e903"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:1ffc23010330c2ab67fac02781df60998ca8fe759e8efde6f8b756a20599c5de"}, + {file = "lxml-5.3.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2b3778cb38212f52fac9fe913017deea2fdf4eb1a4f8e4cfc6b009a13a6d3fcc"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0c7a688944891086ba192e21c5229dea54382f4836a209ff8d0a660fac06be"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:747a3d3e98e24597981ca0be0fd922aebd471fa99d0043a3842d00cdcad7ad6a"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86a6b24b19eaebc448dc56b87c4865527855145d851f9fc3891673ff97950540"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b11a5d918a6216e521c715b02749240fb07ae5a1fefd4b7bf12f833bc8b4fe70"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68b87753c784d6acb8a25b05cb526c3406913c9d988d51f80adecc2b0775d6aa"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:109fa6fede314cc50eed29e6e56c540075e63d922455346f11e4d7a036d2b8cf"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_ppc64le.whl", hash = "sha256:02ced472497b8362c8e902ade23e3300479f4f43e45f4105c85ef43b8db85229"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_s390x.whl", hash = "sha256:6b038cc86b285e4f9fea2ba5ee76e89f21ed1ea898e287dc277a25884f3a7dfe"}, + {file = "lxml-5.3.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:7437237c6a66b7ca341e868cda48be24b8701862757426852c9b3186de1da8a2"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7f41026c1d64043a36fda21d64c5026762d53a77043e73e94b71f0521939cc71"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:482c2f67761868f0108b1743098640fbb2a28a8e15bf3f47ada9fa59d9fe08c3"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1483fd3358963cc5c1c9b122c80606a3a79ee0875bcac0204149fa09d6ff2727"}, + {file = "lxml-5.3.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2dec2d1130a9cda5b904696cec33b2cfb451304ba9081eeda7f90f724097300a"}, + {file = "lxml-5.3.0-cp39-cp39-win32.whl", hash = "sha256:a0eabd0a81625049c5df745209dc7fcef6e2aea7793e5f003ba363610aa0a3ff"}, + {file = "lxml-5.3.0-cp39-cp39-win_amd64.whl", hash = "sha256:89e043f1d9d341c52bf2af6d02e6adde62e0a46e6755d5eb60dc6e4f0b8aeca2"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7b1cd427cb0d5f7393c31b7496419da594fe600e6fdc4b105a54f82405e6626c"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:51806cfe0279e06ed8500ce19479d757db42a30fd509940b1701be9c86a5ff9a"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee70d08fd60c9565ba8190f41a46a54096afa0eeb8f76bd66f2c25d3b1b83005"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:8dc2c0395bea8254d8daebc76dcf8eb3a95ec2a46fa6fae5eaccee366bfe02ce"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6ba0d3dcac281aad8a0e5b14c7ed6f9fa89c8612b47939fc94f80b16e2e9bc83"}, + {file = "lxml-5.3.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:6e91cf736959057f7aac7adfc83481e03615a8e8dd5758aa1d95ea69e8931dba"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:94d6c3782907b5e40e21cadf94b13b0842ac421192f26b84c45f13f3c9d5dc27"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c300306673aa0f3ed5ed9372b21867690a17dba38c68c44b287437c362ce486b"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78d9b952e07aed35fe2e1a7ad26e929595412db48535921c5013edc8aa4a35ce"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:01220dca0d066d1349bd6a1726856a78f7929f3878f7e2ee83c296c69495309e"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:2d9b8d9177afaef80c53c0a9e30fa252ff3036fb1c6494d427c066a4ce6a282f"}, + {file = "lxml-5.3.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:20094fc3f21ea0a8669dc4c61ed7fa8263bd37d97d93b90f28fc613371e7a875"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:ace2c2326a319a0bb8a8b0e5b570c764962e95818de9f259ce814ee666603f19"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:92e67a0be1639c251d21e35fe74df6bcc40cba445c2cda7c4a967656733249e2"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd5350b55f9fecddc51385463a4f67a5da829bc741e38cf689f38ec9023f54ab"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:4c1fefd7e3d00921c44dc9ca80a775af49698bbfd92ea84498e56acffd4c5469"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:71a8dd38fbd2f2319136d4ae855a7078c69c9a38ae06e0c17c73fd70fc6caad8"}, + {file = "lxml-5.3.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:97acf1e1fd66ab53dacd2c35b319d7e548380c2e9e8c54525c6e76d21b1ae3b1"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:68934b242c51eb02907c5b81d138cb977b2129a0a75a8f8b60b01cb8586c7b21"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b710bc2b8292966b23a6a0121f7a6c51d45d2347edcc75f016ac123b8054d3f2"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:18feb4b93302091b1541221196a2155aa296c363fd233814fa11e181adebc52f"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:3eb44520c4724c2e1a57c0af33a379eee41792595023f367ba3952a2d96c2aab"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:609251a0ca4770e5a8768ff902aa02bf636339c5a93f9349b48eb1f606f7f3e9"}, + {file = "lxml-5.3.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:516f491c834eb320d6c843156440fe7fc0d50b33e44387fcec5b02f0bc118a4c"}, + {file = "lxml-5.3.0.tar.gz", hash = "sha256:4e109ca30d1edec1ac60cdbe341905dc3b8f55b16855e03a54aaf59e51ec8c6f"}, ] [package.extras] cssselect = ["cssselect (>=0.7)"] +html-clean = ["lxml-html-clean"] html5 = ["html5lib"] htmlsoup = ["BeautifulSoup4"] -source = ["Cython (>=0.29.35)"] +source = ["Cython (>=3.0.11)"] [[package]] name = "mako" -version = "1.2.4" +version = "1.3.5" description = "A super-fast templating language that borrows the best ideas from the existing templating languages." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Mako-1.2.4-py3-none-any.whl", hash = "sha256:c97c79c018b9165ac9922ae4f32da095ffd3c4e6872b45eded42926deea46818"}, - {file = "Mako-1.2.4.tar.gz", hash = "sha256:d60a3903dc3bb01a18ad6a89cdbe2e4eadc69c0bc8ef1e3773ba53d44c3f7a34"}, + {file = "Mako-1.3.5-py3-none-any.whl", hash = "sha256:260f1dbc3a519453a9c856dedfe4beb4e50bd5a26d96386cb6c80856556bb91a"}, + {file = "Mako-1.3.5.tar.gz", hash = "sha256:48dbc20568c1d276a2698b36d968fa76161bf127194907ea6fc594fa81f943bc"}, ] [package.dependencies] @@ -1031,173 +1154,391 @@ testing = ["pytest"] [[package]] name = "markdown" -version = "3.4.4" +version = "3.7" description = "Python implementation of John Gruber's Markdown." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "Markdown-3.4.4-py3-none-any.whl", hash = "sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941"}, - {file = "Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6"}, + {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"}, + {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"}, ] -[package.dependencies] -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} - [package.extras] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.0)", "mkdocs-nature (>=0.4)"] +docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.5)", "mkdocs-gen-files", "mkdocs-literate-nav", "mkdocs-nature (>=0.6)", "mkdocs-section-index", "mkdocstrings[python]"] testing = ["coverage", "pyyaml"] [[package]] name = "markupsafe" -version = "2.1.2" +version = "2.1.5" description = "Safely add untrusted strings to HTML/XML markup." -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:665a36ae6f8f20a4676b53224e33d456a6f5a72657d9c83c2aa00765072f31f7"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:340bea174e9761308703ae988e982005aedf427de816d1afe98147668cc03036"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22152d00bf4a9c7c83960521fc558f55a1adbc0631fbb00a9471e097b19d72e1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28057e985dace2f478e042eaa15606c7efccb700797660629da387eb289b9323"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ca244fa73f50a800cf8c3ebf7fd93149ec37f5cb9596aa8873ae2c1d23498601"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:d9d971ec1e79906046aa3ca266de79eac42f1dbf3612a05dc9368125952bd1a1"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7e007132af78ea9df29495dbf7b5824cb71648d7133cf7848a2a5dd00d36f9ff"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:7313ce6a199651c4ed9d7e4cfb4aa56fe923b1adf9af3b420ee14e6d9a73df65"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win32.whl", hash = "sha256:c4a549890a45f57f1ebf99c067a4ad0cb423a05544accaf2b065246827ed9603"}, - {file = "MarkupSafe-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:835fb5e38fd89328e9c81067fd642b3593c33e1e17e2fdbf77f5676abb14a156"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2ec4f2d48ae59bbb9d1f9d7efb9236ab81429a764dedca114f5fdabbc3788013"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:608e7073dfa9e38a85d38474c082d4281f4ce276ac0010224eaba11e929dd53a"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:65608c35bfb8a76763f37036547f7adfd09270fbdbf96608be2bead319728fcd"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f2bfb563d0211ce16b63c7cb9395d2c682a23187f54c3d79bfec33e6705473c6"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:da25303d91526aac3672ee6d49a2f3db2d9502a4a60b55519feb1a4c7714e07d"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:9cad97ab29dfc3f0249b483412c85c8ef4766d96cdf9dcf5a1e3caa3f3661cf1"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:085fd3201e7b12809f9e6e9bc1e5c96a368c8523fad5afb02afe3c051ae4afcc"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:1bea30e9bf331f3fef67e0a3877b2288593c98a21ccb2cf29b74c581a4eb3af0"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win32.whl", hash = "sha256:7df70907e00c970c60b9ef2938d894a9381f38e6b9db73c5be35e59d92e06625"}, - {file = "MarkupSafe-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:e55e40ff0cc8cc5c07996915ad367fa47da6b3fc091fdadca7f5403239c5fec3"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a6e40afa7f45939ca356f348c8e23048e02cb109ced1eb8420961b2f40fb373a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf877ab4ed6e302ec1d04952ca358b381a882fbd9d1b07cccbfd61783561f98a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63ba06c9941e46fa389d389644e2d8225e0e3e5ebcc4ff1ea8506dce646f8c8a"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f1cd098434e83e656abf198f103a8207a8187c0fc110306691a2e94a78d0abb2"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:55f44b440d491028addb3b88f72207d71eeebfb7b5dbf0643f7c023ae1fba619"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:a6f2fcca746e8d5910e18782f976489939d54a91f9411c32051b4aab2bd7c513"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:0b462104ba25f1ac006fdab8b6a01ebbfbce9ed37fd37fd4acd70c67c973e460"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win32.whl", hash = "sha256:7668b52e102d0ed87cb082380a7e2e1e78737ddecdde129acadb0eccc5423859"}, - {file = "MarkupSafe-2.1.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6d6607f98fcf17e534162f0709aaad3ab7a96032723d8ac8750ffe17ae5a0666"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:a806db027852538d2ad7555b203300173dd1b77ba116de92da9afbc3a3be3eed"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a4abaec6ca3ad8660690236d11bfe28dfd707778e2442b45addd2f086d6ef094"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f03a532d7dee1bed20bc4884194a16160a2de9ffc6354b3878ec9682bb623c54"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4cf06cdc1dda95223e9d2d3c58d3b178aa5dacb35ee7e3bbac10e4e1faacb419"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:22731d79ed2eb25059ae3df1dfc9cb1546691cc41f4e3130fe6bfbc3ecbbecfa"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:f8ffb705ffcf5ddd0e80b65ddf7bed7ee4f5a441ea7d3419e861a12eaf41af58"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8db032bf0ce9022a8e41a22598eefc802314e81b879ae093f36ce9ddf39ab1ba"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:2298c859cfc5463f1b64bd55cb3e602528db6fa0f3cfd568d3605c50678f8f03"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win32.whl", hash = "sha256:50c42830a633fa0cf9e7d27664637532791bfc31c731a87b202d2d8ac40c3ea2"}, - {file = "MarkupSafe-2.1.2-cp38-cp38-win_amd64.whl", hash = "sha256:bb06feb762bade6bf3c8b844462274db0c76acc95c52abe8dbed28ae3d44a147"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99625a92da8229df6d44335e6fcc558a5037dd0a760e11d84be2260e6f37002f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8bca7e26c1dd751236cfb0c6c72d4ad61d986e9a41bbf76cb445f69488b2a2bd"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40627dcf047dadb22cd25ea7ecfe9cbf3bbbad0482ee5920b582f3809c97654f"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40dfd3fefbef579ee058f139733ac336312663c6706d1163b82b3003fb1925c4"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:090376d812fb6ac5f171e5938e82e7f2d7adc2b629101cec0db8b267815c85e2"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:2e7821bffe00aa6bd07a23913b7f4e01328c3d5cc0b40b36c0bd81d362faeb65"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:c0a33bc9f02c2b17c3ea382f91b4db0e6cde90b63b296422a939886a7a80de1c"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:b8526c6d437855442cdd3d87eede9c425c4445ea011ca38d937db299382e6fa3"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win32.whl", hash = "sha256:137678c63c977754abe9086a3ec011e8fd985ab90631145dfb9294ad09c102a7"}, - {file = "MarkupSafe-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:0576fe974b40a400449768941d5d0858cc624e3249dfd1e0c33674e5c7ca7aed"}, - {file = "MarkupSafe-2.1.2.tar.gz", hash = "sha256:abcabc8c2b26036d62d4c746381a6f7cf60aafcc653198ad678306986b09450d"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, + {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, + {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, + {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, + {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, + {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, + {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, + {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, ] [[package]] name = "mysqlclient" -version = "2.2.0" +version = "2.2.4" description = "Python interface to MySQL" -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "mysqlclient-2.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:68837b6bb23170acffb43ae411e47533a560b6360c06dac39aa55700972c93b2"}, - {file = "mysqlclient-2.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5670679ff1be1cc3fef0fa81bf39f0cd70605ba121141050f02743eb878ac114"}, - {file = "mysqlclient-2.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:004fe1d30d2c2ff8072f8ea513bcec235fd9b896f70dad369461d0ad7e570e98"}, - {file = "mysqlclient-2.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:9c6b142836c7dba4f723bf9c93cc46b6e5081d65b2af807f400dda9eb85a16d0"}, - {file = "mysqlclient-2.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:955dba905a7443ce4788c63fdb9f8d688316260cf60b20ff51ac3b1c77616ede"}, - {file = "mysqlclient-2.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:530ece9995a36cadb6211b9787f0c9e05cdab6702549bdb4236af5e9b535ed6a"}, - {file = "mysqlclient-2.2.0.tar.gz", hash = "sha256:04368445f9c487d8abb7a878e3d23e923e6072c04a6c320f9e0dc8a82efba14e"}, + {file = "mysqlclient-2.2.4-cp310-cp310-win_amd64.whl", hash = "sha256:ac44777eab0a66c14cb0d38965572f762e193ec2e5c0723bcd11319cc5b693c5"}, + {file = "mysqlclient-2.2.4-cp311-cp311-win_amd64.whl", hash = "sha256:329e4eec086a2336fe3541f1ce095d87a6f169d1cc8ba7b04ac68bcb234c9711"}, + {file = "mysqlclient-2.2.4-cp312-cp312-win_amd64.whl", hash = "sha256:e1ebe3f41d152d7cb7c265349fdb7f1eca86ccb0ca24a90036cde48e00ceb2ab"}, + {file = "mysqlclient-2.2.4-cp38-cp38-win_amd64.whl", hash = "sha256:3c318755e06df599338dad7625f884b8a71fcf322a9939ef78c9b3db93e1de7a"}, + {file = "mysqlclient-2.2.4-cp39-cp39-win_amd64.whl", hash = "sha256:9d4c015480c4a6b2b1602eccd9846103fc70606244788d04aa14b31c4bd1f0e2"}, + {file = "mysqlclient-2.2.4-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d43987bb9626096a302ca6ddcdd81feaeca65ced1d5fe892a6a66b808326aa54"}, + {file = "mysqlclient-2.2.4-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4e80dcad884dd6e14949ac6daf769123223a52a6805345608bf49cdaf7bc8b3a"}, + {file = "mysqlclient-2.2.4-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:9d3310295cb682232cadc28abd172f406c718b9ada41d2371259098ae37779d3"}, + {file = "mysqlclient-2.2.4.tar.gz", hash = "sha256:33bc9fb3464e7d7c10b1eaf7336c5ff8f2a3d3b88bab432116ad2490beb3bf41"}, +] + +[[package]] +name = "opentelemetry-api" +version = "1.26.0" +description = "OpenTelemetry Python API" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_api-1.26.0-py3-none-any.whl", hash = "sha256:7d7ea33adf2ceda2dd680b18b1677e4152000b37ca76e679da71ff103b943064"}, + {file = "opentelemetry_api-1.26.0.tar.gz", hash = "sha256:2bd639e4bed5b18486fef0b5a520aaffde5a18fc225e808a1ac4df363f43a1ce"}, +] + +[package.dependencies] +deprecated = ">=1.2.6" +importlib-metadata = ">=6.0,<=8.0.0" + +[[package]] +name = "opentelemetry-exporter-otlp-proto-common" +version = "1.26.0" +description = "OpenTelemetry Protobuf encoding" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_exporter_otlp_proto_common-1.26.0-py3-none-any.whl", hash = "sha256:ee4d8f8891a1b9c372abf8d109409e5b81947cf66423fd998e56880057afbc71"}, + {file = "opentelemetry_exporter_otlp_proto_common-1.26.0.tar.gz", hash = "sha256:bdbe50e2e22a1c71acaa0c8ba6efaadd58882e5a5978737a44a4c4b10d304c92"}, +] + +[package.dependencies] +opentelemetry-proto = "1.26.0" + +[[package]] +name = "opentelemetry-exporter-otlp-proto-http" +version = "1.26.0" +description = "OpenTelemetry Collector Protobuf over HTTP Exporter" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_exporter_otlp_proto_http-1.26.0-py3-none-any.whl", hash = "sha256:ee72a87c48ec977421b02f16c52ea8d884122470e0be573905237b540f4ee562"}, + {file = "opentelemetry_exporter_otlp_proto_http-1.26.0.tar.gz", hash = "sha256:5801ebbcf7b527377883e6cbbdda35ee712dc55114fff1e93dfee210be56c908"}, +] + +[package.dependencies] +deprecated = ">=1.2.6" +googleapis-common-protos = ">=1.52,<2.0" +opentelemetry-api = ">=1.15,<2.0" +opentelemetry-exporter-otlp-proto-common = "1.26.0" +opentelemetry-proto = "1.26.0" +opentelemetry-sdk = ">=1.26.0,<1.27.0" +requests = ">=2.7,<3.0" + +[[package]] +name = "opentelemetry-instrumentation" +version = "0.47b0" +description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_instrumentation-0.47b0-py3-none-any.whl", hash = "sha256:88974ee52b1db08fc298334b51c19d47e53099c33740e48c4f084bd1afd052d5"}, + {file = "opentelemetry_instrumentation-0.47b0.tar.gz", hash = "sha256:96f9885e450c35e3f16a4f33145f2ebf620aea910c9fd74a392bbc0f807a350f"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.4,<2.0" +setuptools = ">=16.0" +wrapt = ">=1.0.0,<2.0.0" + +[[package]] +name = "opentelemetry-instrumentation-asgi" +version = "0.47b0" +description = "ASGI instrumentation for OpenTelemetry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_instrumentation_asgi-0.47b0-py3-none-any.whl", hash = "sha256:b798dc4957b3edc9dfecb47a4c05809036a4b762234c5071212fda39ead80ade"}, + {file = "opentelemetry_instrumentation_asgi-0.47b0.tar.gz", hash = "sha256:e78b7822c1bca0511e5e9610ec484b8994a81670375e570c76f06f69af7c506a"}, +] + +[package.dependencies] +asgiref = ">=3.0,<4.0" +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.47b0" +opentelemetry-semantic-conventions = "0.47b0" +opentelemetry-util-http = "0.47b0" + +[package.extras] +instruments = ["asgiref (>=3.0,<4.0)"] + +[[package]] +name = "opentelemetry-instrumentation-fastapi" +version = "0.47b0" +description = "OpenTelemetry FastAPI Instrumentation" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_instrumentation_fastapi-0.47b0-py3-none-any.whl", hash = "sha256:5ac28dd401160b02e4f544a85a9e4f61a8cbe5b077ea0379d411615376a2bd21"}, + {file = "opentelemetry_instrumentation_fastapi-0.47b0.tar.gz", hash = "sha256:0c7c10b5d971e99a420678ffd16c5b1ea4f0db3b31b62faf305fbb03b4ebee36"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.47b0" +opentelemetry-instrumentation-asgi = "0.47b0" +opentelemetry-semantic-conventions = "0.47b0" +opentelemetry-util-http = "0.47b0" + +[package.extras] +instruments = ["fastapi (>=0.58,<1.0)", "fastapi-slim (>=0.111.0,<0.112.0)"] + +[[package]] +name = "opentelemetry-instrumentation-redis" +version = "0.47b0" +description = "OpenTelemetry Redis instrumentation" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_instrumentation_redis-0.47b0-py3-none-any.whl", hash = "sha256:169de5154cc37ccf402dd43ac06a47f7f883abba7c0a8f99b2731164ec4f1132"}, + {file = "opentelemetry_instrumentation_redis-0.47b0.tar.gz", hash = "sha256:15886c725c7e3b6f706964bd72dbfcbefeeeaa1254e98f662516cfed453aaebe"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.47b0" +opentelemetry-semantic-conventions = "0.47b0" +wrapt = ">=1.12.1" + +[package.extras] +instruments = ["redis (>=2.6)"] + +[[package]] +name = "opentelemetry-instrumentation-sqlalchemy" +version = "0.47b0" +description = "OpenTelemetry SQLAlchemy instrumentation" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_instrumentation_sqlalchemy-0.47b0-py3-none-any.whl", hash = "sha256:997b2c4a624ebcba45b9bda27882622d0ab3028d66a5fb50cdcf3581af04b3d1"}, + {file = "opentelemetry_instrumentation_sqlalchemy-0.47b0.tar.gz", hash = "sha256:bbeab06fc421ddae16bb69ca287abb81a131d3dff97de60b02c092887794103d"}, +] + +[package.dependencies] +opentelemetry-api = ">=1.12,<2.0" +opentelemetry-instrumentation = "0.47b0" +opentelemetry-semantic-conventions = "0.47b0" +packaging = ">=21.0" +wrapt = ">=1.11.2" + +[package.extras] +instruments = ["sqlalchemy"] + +[[package]] +name = "opentelemetry-proto" +version = "1.26.0" +description = "OpenTelemetry Python Proto" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_proto-1.26.0-py3-none-any.whl", hash = "sha256:6c4d7b4d4d9c88543bcf8c28ae3f8f0448a753dc291c18c5390444c90b76a725"}, + {file = "opentelemetry_proto-1.26.0.tar.gz", hash = "sha256:c5c18796c0cab3751fc3b98dee53855835e90c0422924b484432ac852d93dc1e"}, +] + +[package.dependencies] +protobuf = ">=3.19,<5.0" + +[[package]] +name = "opentelemetry-sdk" +version = "1.26.0" +description = "OpenTelemetry Python SDK" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_sdk-1.26.0-py3-none-any.whl", hash = "sha256:feb5056a84a88670c041ea0ded9921fca559efec03905dddeb3885525e0af897"}, + {file = "opentelemetry_sdk-1.26.0.tar.gz", hash = "sha256:c90d2868f8805619535c05562d699e2f4fb1f00dbd55a86dcefca4da6fa02f85"}, +] + +[package.dependencies] +opentelemetry-api = "1.26.0" +opentelemetry-semantic-conventions = "0.47b0" +typing-extensions = ">=3.7.4" + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.47b0" +description = "OpenTelemetry Semantic Conventions" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_semantic_conventions-0.47b0-py3-none-any.whl", hash = "sha256:4ff9d595b85a59c1c1413f02bba320ce7ea6bf9e2ead2b0913c4395c7bbc1063"}, + {file = "opentelemetry_semantic_conventions-0.47b0.tar.gz", hash = "sha256:a8d57999bbe3495ffd4d510de26a97dadc1dace53e0275001b2c1b2f67992a7e"}, +] + +[package.dependencies] +deprecated = ">=1.2.6" +opentelemetry-api = "1.26.0" + +[[package]] +name = "opentelemetry-util-http" +version = "0.47b0" +description = "Web util for OpenTelemetry" +optional = false +python-versions = ">=3.8" +files = [ + {file = "opentelemetry_util_http-0.47b0-py3-none-any.whl", hash = "sha256:3d3215e09c4a723b12da6d0233a31395aeb2bb33a64d7b15a1500690ba250f19"}, + {file = "opentelemetry_util_http-0.47b0.tar.gz", hash = "sha256:352a07664c18eef827eb8ddcbd64c64a7284a39dd1655e2f16f577eb046ccb32"}, ] [[package]] name = "orjson" -version = "3.9.2" +version = "3.10.7" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "orjson-3.9.2-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7323e4ca8322b1ecb87562f1ec2491831c086d9faa9a6c6503f489dadbed37d7"}, - {file = "orjson-3.9.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1272688ea1865f711b01ba479dea2d53e037ea00892fd04196b5875f7021d9d3"}, - {file = "orjson-3.9.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0b9a26f1d1427a9101a1e8910f2e2df1f44d3d18ad5480ba031b15d5c1cb282e"}, - {file = "orjson-3.9.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6a5ca55b0d8f25f18b471e34abaee4b175924b6cd62f59992945b25963443141"}, - {file = "orjson-3.9.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:877872db2c0f41fbe21f852ff642ca842a43bc34895b70f71c9d575df31fffb4"}, - {file = "orjson-3.9.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4a39c2529d75373b7167bf84c814ef9b8f3737a339c225ed6c0df40736df8748"}, - {file = "orjson-3.9.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:84ebd6fdf138eb0eb4280045442331ee71c0aab5e16397ba6645f32f911bfb37"}, - {file = "orjson-3.9.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5a60a1cfcfe310547a1946506dd4f1ed0a7d5bd5b02c8697d9d5dcd8d2e9245e"}, - {file = "orjson-3.9.2-cp310-none-win_amd64.whl", hash = "sha256:c290c4f81e8fd0c1683638802c11610b2f722b540f8e5e858b6914b495cf90c8"}, - {file = "orjson-3.9.2-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:02ef014f9a605e84b675060785e37ec9c0d2347a04f1307a9d6840ab8ecd6f55"}, - {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:992af54265ada1c1579500d6594ed73fe333e726de70d64919cf37f93defdd06"}, - {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a40958f7af7c6d992ee67b2da4098dca8b770fc3b4b3834d540477788bfa76d3"}, - {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:93864dec3e3dd058a2dbe488d11ac0345214a6a12697f53a63e34de7d28d4257"}, - {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16fdf5a82df80c544c3c91516ab3882cd1ac4f1f84eefeafa642e05cef5f6699"}, - {file = "orjson-3.9.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:275b5a18fd9ed60b2720543d3ddac170051c43d680e47d04ff5203d2c6d8ebf1"}, - {file = "orjson-3.9.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b9aea6dcb99fcbc9f6d1dd84fca92322fda261da7fb014514bb4689c7c2097a8"}, - {file = "orjson-3.9.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d74ae0e101d17c22ef67b741ba356ab896fc0fa64b301c2bf2bb0a4d874b190"}, - {file = "orjson-3.9.2-cp311-none-win_amd64.whl", hash = "sha256:6320b28e7bdb58c3a3a5efffe04b9edad3318d82409e84670a9b24e8035a249d"}, - {file = "orjson-3.9.2-cp37-cp37m-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:368e9cc91ecb7ac21f2aa475e1901204110cf3e714e98649c2502227d248f947"}, - {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:58e9e70f0dcd6a802c35887f306b555ff7a214840aad7de24901fc8bd9cf5dde"}, - {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00c983896c2e01c94c0ef72fd7373b2aa06d0c0eed0342c4884559f812a6835b"}, - {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2ee743e8890b16c87a2f89733f983370672272b61ee77429c0a5899b2c98c1a7"}, - {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7b065942d362aad4818ff599d2f104c35a565c2cbcbab8c09ec49edba91da75"}, - {file = "orjson-3.9.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e46e9c5b404bb9e41d5555762fd410d5466b7eb1ec170ad1b1609cbebe71df21"}, - {file = "orjson-3.9.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:8170157288714678ffd64f5de33039e1164a73fd8b6be40a8a273f80093f5c4f"}, - {file = "orjson-3.9.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:e3e2f087161947dafe8319ea2cfcb9cea4bb9d2172ecc60ac3c9738f72ef2909"}, - {file = "orjson-3.9.2-cp37-none-win_amd64.whl", hash = "sha256:d7de3dbbe74109ae598692113cec327fd30c5a30ebca819b21dfa4052f7b08ef"}, - {file = "orjson-3.9.2-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:8cd4385c59bbc1433cad4a80aca65d2d9039646a9c57f8084897549b55913b17"}, - {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a74036aab1a80c361039290cdbc51aa7adc7ea13f56e5ef94e9be536abd227bd"}, - {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:1aaa46d7d4ae55335f635eadc9be0bd9bcf742e6757209fc6dc697e390010adc"}, - {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2e52c67ed6bb368083aa2078ea3ccbd9721920b93d4b06c43eb4e20c4c860046"}, - {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1a6cdfcf9c7dd4026b2b01fdff56986251dc0cc1e980c690c79eec3ae07b36e7"}, - {file = "orjson-3.9.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1882a70bb69595b9ec5aac0040a819e94d2833fe54901e2b32f5e734bc259a8b"}, - {file = "orjson-3.9.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:fc05e060d452145ab3c0b5420769e7356050ea311fc03cb9d79c481982917cca"}, - {file = "orjson-3.9.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:f8bc2c40d9bb26efefb10949d261a47ca196772c308babc538dd9f4b73e8d386"}, - {file = "orjson-3.9.2-cp38-none-win_amd64.whl", hash = "sha256:3164fc20a585ec30a9aff33ad5de3b20ce85702b2b2a456852c413e3f0d7ab09"}, - {file = "orjson-3.9.2-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7a6ccadf788531595ed4728aa746bc271955448d2460ff0ef8e21eb3f2a281ba"}, - {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3245d230370f571c945f69aab823c279a868dc877352817e22e551de155cb06c"}, - {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:205925b179550a4ee39b8418dd4c94ad6b777d165d7d22614771c771d44f57bd"}, - {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0325fe2d69512187761f7368c8cda1959bcb75fc56b8e7a884e9569112320e57"}, - {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:806704cd58708acc66a064a9a58e3be25cf1c3f9f159e8757bd3f515bfabdfa1"}, - {file = "orjson-3.9.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03fb36f187a0c19ff38f6289418863df8b9b7880cdbe279e920bef3a09d8dab1"}, - {file = "orjson-3.9.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:20925d07a97c49c6305bff1635318d9fc1804aa4ccacb5fb0deb8a910e57d97a"}, - {file = "orjson-3.9.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:eebfed53bec5674e981ebe8ed2cf00b3f7bcda62d634733ff779c264307ea505"}, - {file = "orjson-3.9.2-cp39-none-win_amd64.whl", hash = "sha256:869b961df5fcedf6c79f4096119b35679b63272362e9b745e668f0391a892d39"}, - {file = "orjson-3.9.2.tar.gz", hash = "sha256:24257c8f641979bf25ecd3e27251b5cc194cdd3a6e96004aac8446f5e63d9664"}, + {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"}, + {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"}, + {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"}, + {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"}, + {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"}, + {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"}, + {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"}, + {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"}, + {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"}, + {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"}, + {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"}, + {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"}, + {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"}, + {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"}, + {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"}, + {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"}, + {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"}, + {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"}, + {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"}, + {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"}, ] [[package]] name = "packaging" -version = "23.1" +version = "24.1" description = "Core utilities for Python packages" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "packaging-23.1-py3-none-any.whl", hash = "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61"}, - {file = "packaging-23.1.tar.gz", hash = "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"}, + {file = "packaging-24.1-py3-none-any.whl", hash = "sha256:5b8f2217dbdbd2f7f384c41c628544e6d52f2d0f53c6d0c3ea61aa5d1d7ff124"}, + {file = "packaging-24.1.tar.gz", hash = "sha256:026ed72c8ed3fcce5bf8950572258698927fd1dbda10a5e981cdf0ac37f4f002"}, ] [[package]] name = "paginate" version = "0.5.6" description = "Divides large result sets into pages for easier browsing" -category = "main" optional = false python-versions = "*" files = [ @@ -1206,26 +1547,24 @@ files = [ [[package]] name = "parse" -version = "1.19.0" +version = "1.20.2" description = "parse() is the opposite of format()" -category = "main" optional = false python-versions = "*" files = [ - {file = "parse-1.19.0-py2.py3-none-any.whl", hash = "sha256:6ce007645384a91150cb7cd7c8a9db2559e273c2e2542b508cd1e342508c2601"}, - {file = "parse-1.19.0.tar.gz", hash = "sha256:9ff82852bcb65d139813e2a5197627a94966245c897796760a3a2a8eb66f020b"}, + {file = "parse-1.20.2-py2.py3-none-any.whl", hash = "sha256:967095588cb802add9177d0c0b6133b5ba33b1ea9007ca800e526f42a85af558"}, + {file = "parse-1.20.2.tar.gz", hash = "sha256:b41d604d16503c79d81af5165155c0b20f6c8d6c559efa66b4b695c3e5a0a0ce"}, ] [[package]] name = "pluggy" -version = "1.0.0" +version = "1.5.0" description = "plugin and hook calling mechanisms for python" -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "pluggy-1.0.0-py2.py3-none-any.whl", hash = "sha256:74134bbf457f031a36d68416e1509f34bd5ccc019f0bcc952c7b909d06b37bd3"}, - {file = "pluggy-1.0.0.tar.gz", hash = "sha256:4224373bacce55f955a878bf9cfa763c1e360858e330072059e10bad68531159"}, + {file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"}, + {file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"}, ] [package.extras] @@ -1236,7 +1575,6 @@ testing = ["pytest", "pytest-benchmark"] name = "posix-ipc" version = "1.1.1" description = "POSIX IPC primitives (semaphores, shared memory and message queues) for Python" -category = "main" optional = false python-versions = "*" files = [ @@ -1252,7 +1590,6 @@ files = [ name = "priority" version = "2.0.0" description = "A pure-Python implementation of the HTTP/2 priority tree" -category = "main" optional = false python-versions = ">=3.6.1" files = [ @@ -1262,14 +1599,13 @@ files = [ [[package]] name = "prometheus-client" -version = "0.16.0" +version = "0.20.0" description = "Python client for the Prometheus monitoring system." -category = "main" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "prometheus_client-0.16.0-py3-none-any.whl", hash = "sha256:0836af6eb2c8f4fed712b2f279f6c0a8bbab29f9f4aa15276b91c7cb0d1616ab"}, - {file = "prometheus_client-0.16.0.tar.gz", hash = "sha256:a03e35b359f14dd1630898543e2120addfdeacd1a6069c1367ae90fd93ad3f48"}, + {file = "prometheus_client-0.20.0-py3-none-any.whl", hash = "sha256:cde524a85bce83ca359cc837f28b8c0db5cac7aa653a588fd7e84ba061c329e7"}, + {file = "prometheus_client-0.20.0.tar.gz", hash = "sha256:287629d00b147a32dcb2be0b9df905da599b2d82f80377083ec8463309a4bb89"}, ] [package.extras] @@ -1277,48 +1613,43 @@ twisted = ["twisted"] [[package]] name = "prometheus-fastapi-instrumentator" -version = "6.1.0" +version = "7.0.0" description = "Instrument your FastAPI with Prometheus metrics." -category = "main" optional = false -python-versions = ">=3.7.0,<4.0.0" +python-versions = ">=3.8.1,<4.0.0" files = [ - {file = "prometheus_fastapi_instrumentator-6.1.0-py3-none-any.whl", hash = "sha256:2279ac1cf5b9566a4c3a07f78c9c5ee19648ed90976ab87d73d672abc1bfa017"}, - {file = "prometheus_fastapi_instrumentator-6.1.0.tar.gz", hash = "sha256:1820d7a90389ce100f7d1285495ead388818ae0882e761c1f3e6e62a410bdf13"}, + {file = "prometheus_fastapi_instrumentator-7.0.0-py3-none-any.whl", hash = "sha256:96030c43c776ee938a3dae58485ec24caed7e05bfc60fe067161e0d5b5757052"}, + {file = "prometheus_fastapi_instrumentator-7.0.0.tar.gz", hash = "sha256:5ba67c9212719f244ad7942d75ded80693b26331ee5dfc1e7571e4794a9ccbed"}, ] [package.dependencies] -fastapi = ">=0.38.1,<1.0.0" prometheus-client = ">=0.8.0,<1.0.0" +starlette = ">=0.30.0,<1.0.0" [[package]] name = "protobuf" -version = "4.23.4" +version = "4.25.4" description = "" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "protobuf-4.23.4-cp310-abi3-win32.whl", hash = "sha256:5fea3c64d41ea5ecf5697b83e41d09b9589e6f20b677ab3c48e5f242d9b7897b"}, - {file = "protobuf-4.23.4-cp310-abi3-win_amd64.whl", hash = "sha256:7b19b6266d92ca6a2a87effa88ecc4af73ebc5cfde194dc737cf8ef23a9a3b12"}, - {file = "protobuf-4.23.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:8547bf44fe8cec3c69e3042f5c4fb3e36eb2a7a013bb0a44c018fc1e427aafbd"}, - {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:fee88269a090ada09ca63551bf2f573eb2424035bcf2cb1b121895b01a46594a"}, - {file = "protobuf-4.23.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:effeac51ab79332d44fba74660d40ae79985901ac21bca408f8dc335a81aa597"}, - {file = "protobuf-4.23.4-cp37-cp37m-win32.whl", hash = "sha256:c3e0939433c40796ca4cfc0fac08af50b00eb66a40bbbc5dee711998fb0bbc1e"}, - {file = "protobuf-4.23.4-cp37-cp37m-win_amd64.whl", hash = "sha256:9053df6df8e5a76c84339ee4a9f5a2661ceee4a0dab019e8663c50ba324208b0"}, - {file = "protobuf-4.23.4-cp38-cp38-win32.whl", hash = "sha256:e1c915778d8ced71e26fcf43c0866d7499891bca14c4368448a82edc61fdbc70"}, - {file = "protobuf-4.23.4-cp38-cp38-win_amd64.whl", hash = "sha256:351cc90f7d10839c480aeb9b870a211e322bf05f6ab3f55fcb2f51331f80a7d2"}, - {file = "protobuf-4.23.4-cp39-cp39-win32.whl", hash = "sha256:6dd9b9940e3f17077e820b75851126615ee38643c2c5332aa7a359988820c720"}, - {file = "protobuf-4.23.4-cp39-cp39-win_amd64.whl", hash = "sha256:0a5759f5696895de8cc913f084e27fd4125e8fb0914bb729a17816a33819f474"}, - {file = "protobuf-4.23.4-py3-none-any.whl", hash = "sha256:e9d0be5bf34b275b9f87ba7407796556abeeba635455d036c7351f7c183ef8ff"}, - {file = "protobuf-4.23.4.tar.gz", hash = "sha256:ccd9430c0719dce806b93f89c91de7977304729e55377f872a92465d548329a9"}, + {file = "protobuf-4.25.4-cp310-abi3-win32.whl", hash = "sha256:db9fd45183e1a67722cafa5c1da3e85c6492a5383f127c86c4c4aa4845867dc4"}, + {file = "protobuf-4.25.4-cp310-abi3-win_amd64.whl", hash = "sha256:ba3d8504116a921af46499471c63a85260c1a5fc23333154a427a310e015d26d"}, + {file = "protobuf-4.25.4-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:eecd41bfc0e4b1bd3fa7909ed93dd14dd5567b98c941d6c1ad08fdcab3d6884b"}, + {file = "protobuf-4.25.4-cp37-abi3-manylinux2014_aarch64.whl", hash = "sha256:4c8a70fdcb995dcf6c8966cfa3a29101916f7225e9afe3ced4395359955d3835"}, + {file = "protobuf-4.25.4-cp37-abi3-manylinux2014_x86_64.whl", hash = "sha256:3319e073562e2515c6ddc643eb92ce20809f5d8f10fead3332f71c63be6a7040"}, + {file = "protobuf-4.25.4-cp38-cp38-win32.whl", hash = "sha256:7e372cbbda66a63ebca18f8ffaa6948455dfecc4e9c1029312f6c2edcd86c4e1"}, + {file = "protobuf-4.25.4-cp38-cp38-win_amd64.whl", hash = "sha256:051e97ce9fa6067a4546e75cb14f90cf0232dcb3e3d508c448b8d0e4265b61c1"}, + {file = "protobuf-4.25.4-cp39-cp39-win32.whl", hash = "sha256:90bf6fd378494eb698805bbbe7afe6c5d12c8e17fca817a646cd6a1818c696ca"}, + {file = "protobuf-4.25.4-cp39-cp39-win_amd64.whl", hash = "sha256:ac79a48d6b99dfed2729ccccee547b34a1d3d63289c71cef056653a846a2240f"}, + {file = "protobuf-4.25.4-py3-none-any.whl", hash = "sha256:bfbebc1c8e4793cfd58589acfb8a1026be0003e852b9da7db5a4285bde996978"}, + {file = "protobuf-4.25.4.tar.gz", hash = "sha256:0dc4a62cc4052a036ee2204d26fe4d835c62827c855c8a03f29fe6da146b380d"}, ] [[package]] name = "pyalpm" version = "0.10.6" description = "libalpm bindings for Python 3" -category = "main" optional = false python-versions = "*" files = [ @@ -1327,123 +1658,190 @@ files = [ [[package]] name = "pycparser" -version = "2.21" +version = "2.22" description = "C parser in Python" -category = "main" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +python-versions = ">=3.8" files = [ - {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, - {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, + {file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"}, + {file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"}, ] [[package]] name = "pydantic" -version = "1.10.7" -description = "Data validation and settings management using python type hints" -category = "main" -optional = false -python-versions = ">=3.7" -files = [ - {file = "pydantic-1.10.7-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e79e999e539872e903767c417c897e729e015872040e56b96e67968c3b918b2d"}, - {file = "pydantic-1.10.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:01aea3a42c13f2602b7ecbbea484a98169fb568ebd9e247593ea05f01b884b2e"}, - {file = "pydantic-1.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:516f1ed9bc2406a0467dd777afc636c7091d71f214d5e413d64fef45174cfc7a"}, - {file = "pydantic-1.10.7-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae150a63564929c675d7f2303008d88426a0add46efd76c3fc797cd71cb1b46f"}, - {file = "pydantic-1.10.7-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:ecbbc51391248116c0a055899e6c3e7ffbb11fb5e2a4cd6f2d0b93272118a209"}, - {file = "pydantic-1.10.7-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:f4a2b50e2b03d5776e7f21af73e2070e1b5c0d0df255a827e7c632962f8315af"}, - {file = "pydantic-1.10.7-cp310-cp310-win_amd64.whl", hash = "sha256:a7cd2251439988b413cb0a985c4ed82b6c6aac382dbaff53ae03c4b23a70e80a"}, - {file = "pydantic-1.10.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:68792151e174a4aa9e9fc1b4e653e65a354a2fa0fed169f7b3d09902ad2cb6f1"}, - {file = "pydantic-1.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:dfe2507b8ef209da71b6fb5f4e597b50c5a34b78d7e857c4f8f3115effaef5fe"}, - {file = "pydantic-1.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10a86d8c8db68086f1e30a530f7d5f83eb0685e632e411dbbcf2d5c0150e8dcd"}, - {file = "pydantic-1.10.7-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d75ae19d2a3dbb146b6f324031c24f8a3f52ff5d6a9f22f0683694b3afcb16fb"}, - {file = "pydantic-1.10.7-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:464855a7ff7f2cc2cf537ecc421291b9132aa9c79aef44e917ad711b4a93163b"}, - {file = "pydantic-1.10.7-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:193924c563fae6ddcb71d3f06fa153866423ac1b793a47936656e806b64e24ca"}, - {file = "pydantic-1.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:b4a849d10f211389502059c33332e91327bc154acc1845f375a99eca3afa802d"}, - {file = "pydantic-1.10.7-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:cc1dde4e50a5fc1336ee0581c1612215bc64ed6d28d2c7c6f25d2fe3e7c3e918"}, - {file = "pydantic-1.10.7-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e0cfe895a504c060e5d36b287ee696e2fdad02d89e0d895f83037245218a87fe"}, - {file = "pydantic-1.10.7-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:670bb4683ad1e48b0ecb06f0cfe2178dcf74ff27921cdf1606e527d2617a81ee"}, - {file = "pydantic-1.10.7-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:950ce33857841f9a337ce07ddf46bc84e1c4946d2a3bba18f8280297157a3fd1"}, - {file = "pydantic-1.10.7-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:c15582f9055fbc1bfe50266a19771bbbef33dd28c45e78afbe1996fd70966c2a"}, - {file = "pydantic-1.10.7-cp37-cp37m-win_amd64.whl", hash = "sha256:82dffb306dd20bd5268fd6379bc4bfe75242a9c2b79fec58e1041fbbdb1f7914"}, - {file = "pydantic-1.10.7-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:8c7f51861d73e8b9ddcb9916ae7ac39fb52761d9ea0df41128e81e2ba42886cd"}, - {file = "pydantic-1.10.7-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6434b49c0b03a51021ade5c4daa7d70c98f7a79e95b551201fff682fc1661245"}, - {file = "pydantic-1.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64d34ab766fa056df49013bb6e79921a0265204c071984e75a09cbceacbbdd5d"}, - {file = "pydantic-1.10.7-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:701daea9ffe9d26f97b52f1d157e0d4121644f0fcf80b443248434958fd03dc3"}, - {file = "pydantic-1.10.7-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:cf135c46099ff3f919d2150a948ce94b9ce545598ef2c6c7bf55dca98a304b52"}, - {file = "pydantic-1.10.7-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:b0f85904f73161817b80781cc150f8b906d521fa11e3cdabae19a581c3606209"}, - {file = "pydantic-1.10.7-cp38-cp38-win_amd64.whl", hash = "sha256:9f6f0fd68d73257ad6685419478c5aece46432f4bdd8d32c7345f1986496171e"}, - {file = "pydantic-1.10.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:c230c0d8a322276d6e7b88c3f7ce885f9ed16e0910354510e0bae84d54991143"}, - {file = "pydantic-1.10.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:976cae77ba6a49d80f461fd8bba183ff7ba79f44aa5cfa82f1346b5626542f8e"}, - {file = "pydantic-1.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7d45fc99d64af9aaf7e308054a0067fdcd87ffe974f2442312372dfa66e1001d"}, - {file = "pydantic-1.10.7-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2a5ebb48958754d386195fe9e9c5106f11275867051bf017a8059410e9abf1f"}, - {file = "pydantic-1.10.7-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:abfb7d4a7cd5cc4e1d1887c43503a7c5dd608eadf8bc615413fc498d3e4645cd"}, - {file = "pydantic-1.10.7-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:80b1fab4deb08a8292d15e43a6edccdffa5377a36a4597bb545b93e79c5ff0a5"}, - {file = "pydantic-1.10.7-cp39-cp39-win_amd64.whl", hash = "sha256:d71e69699498b020ea198468e2480a2f1e7433e32a3a99760058c6520e2bea7e"}, - {file = "pydantic-1.10.7-py3-none-any.whl", hash = "sha256:0cd181f1d0b1d00e2b705f1bf1ac7799a2d938cce3376b8007df62b29be3c2c6"}, - {file = "pydantic-1.10.7.tar.gz", hash = "sha256:cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e"}, -] - -[package.dependencies] -typing-extensions = ">=4.2.0" - -[package.extras] -dotenv = ["python-dotenv (>=0.10.4)"] -email = ["email-validator (>=1.0.3)"] - -[[package]] -name = "pygit2" -version = "1.12.2" -description = "Python bindings for libgit2." -category = "main" +version = "2.8.2" +description = "Data validation using Python type hints" optional = false python-versions = ">=3.8" files = [ - {file = "pygit2-1.12.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:79fbd99d3e08ca7478150eeba28ca4d4103f564148eab8d00aba8f1e6fc60654"}, - {file = "pygit2-1.12.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:be3bb0139f464947523022a5af343a2e862c4ff250a57ec9f631449e7c0ba7c0"}, - {file = "pygit2-1.12.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f4df3e5745fdf3111a6ccc905eae99f22f1a180728f714795138ca540cc2a50a"}, - {file = "pygit2-1.12.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:214bd214784fcbef7a8494d1d59e0cd3a731c0d24ce0f230dcc843322ee33b08"}, - {file = "pygit2-1.12.2-cp310-cp310-win32.whl", hash = "sha256:336c864ac961e7be8ba06e9ed8c999e4f624a8ccd90121cc4e40956d8b57acac"}, - {file = "pygit2-1.12.2-cp310-cp310-win_amd64.whl", hash = "sha256:fb9eb57b75ce586928053692a25aae2a50fef3ad36661c57c07d4902899b1df3"}, - {file = "pygit2-1.12.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f8f813d35d836c5b0d1962c387754786bcc7f1c3c8e11207b9eeb30238ac4cc7"}, - {file = "pygit2-1.12.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:25a6548930328c5247bfb7c67d29104e63b036cb5390f032d9f91f63efb70434"}, - {file = "pygit2-1.12.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a365ffca23d910381749fdbcc367db52fe808f9aa4852914dd9ef8b711384a32"}, - {file = "pygit2-1.12.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec04c27be5d5af1ceecdcc0464e07081222f91f285f156dc53b23751d146569a"}, - {file = "pygit2-1.12.2-cp311-cp311-win32.whl", hash = "sha256:546091316c9a8c37b9867ddcc6c9f7402ca4d0b9db3f349212a7b5e71988e359"}, - {file = "pygit2-1.12.2-cp311-cp311-win_amd64.whl", hash = "sha256:8bf14196cbfffbcd286f459a1d4fc660c5d5dfa8fb422e21216961df575410d6"}, - {file = "pygit2-1.12.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:7bb30ab1fdaa4c30821fed33892958b6d92d50dbd03c76f7775b4e5d62f53a2e"}, - {file = "pygit2-1.12.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:e7e705aaecad85b883022e81e054fbd27d26023fc031618ee61c51516580517e"}, - {file = "pygit2-1.12.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac2b5f408eb882e79645ebb43039ac37739c3edd25d857cc97d7482a684b613f"}, - {file = "pygit2-1.12.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22e7f3ad2b7b0c80be991bb47d8a2f2535cc9bf090746eb8679231ee565fde81"}, - {file = "pygit2-1.12.2-cp38-cp38-win32.whl", hash = "sha256:5b3ab4d6302990f7adb2b015bcbda1f0715277008d0c66440497e6f8313bf9cb"}, - {file = "pygit2-1.12.2-cp38-cp38-win_amd64.whl", hash = "sha256:c74e7601cb8b8dc3d02fd32274e200a7761cffd20ee531442bf1fa115c8f99a5"}, - {file = "pygit2-1.12.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:6a4083ba093c69142e0400114a4ef75e87834637d2bbfd77b964614bf70f624f"}, - {file = "pygit2-1.12.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:926f2e48c4eaa179249d417b8382290b86b0f01dbf41d289f763576209276b9f"}, - {file = "pygit2-1.12.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:14ae27491347a0ac4bbe8347b09d752cfe7fea1121c14525415e0cca6db4a836"}, - {file = "pygit2-1.12.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f65483ab5e3563c58f60debe2acc0979fdf6fd633432fcfbddf727a9a265ba4"}, - {file = "pygit2-1.12.2-cp39-cp39-win32.whl", hash = "sha256:8da8517809635ea3da950d9cf99c6d1851352d92b6db309382db88a01c3b0bfd"}, - {file = "pygit2-1.12.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9c2359b99eed8e7fac30c06e6b4ae277a6a0537d6b4b88a190828c3d7eb9ef2"}, - {file = "pygit2-1.12.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:685378852ef8eb081333bc80dbdfc4f1333cf4a8f3baf614c4135e02ad1ee38a"}, - {file = "pygit2-1.12.2-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdf655e5f801990f5cad721b6ccbe7610962f0a4f1c20373dbf9c0be39374a81"}, - {file = "pygit2-1.12.2-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:857c5cde635d470f58803d67bfb281dc4f6336065a0253bfbed001f18e2d0767"}, - {file = "pygit2-1.12.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fe35a72af61961dbb7fb4abcdaa36d5f1c85b2cd3daae94137eeb9c07215cdd3"}, - {file = "pygit2-1.12.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f443d3641762b2bb9c76400bb18beb4ba27dd35bc098a8bfae82e6a190c52ab"}, - {file = "pygit2-1.12.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c1e26649e1540b6a774f812e2fc9890320ff4d33f16db1bb02626318b5ceae2"}, - {file = "pygit2-1.12.2.tar.gz", hash = "sha256:56e85d0e66de957d599d1efb2409d39afeefd8f01009bfda0796b42a4b678358"}, + {file = "pydantic-2.8.2-py3-none-any.whl", hash = "sha256:73ee9fddd406dc318b885c7a2eab8a6472b68b8fb5ba8150949fc3db939f23c8"}, + {file = "pydantic-2.8.2.tar.gz", hash = "sha256:6f62c13d067b0755ad1c21a34bdd06c0c12625a22b0fc09c6b149816604f7c2a"}, ] [package.dependencies] -cffi = ">=1.9.1" +annotated-types = ">=0.4.0" +pydantic-core = "2.20.1" +typing-extensions = [ + {version = ">=4.12.2", markers = "python_version >= \"3.13\""}, + {version = ">=4.6.1", markers = "python_version < \"3.13\""}, +] + +[package.extras] +email = ["email-validator (>=2.0.0)"] + +[[package]] +name = "pydantic-core" +version = "2.20.1" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.8" +files = [ + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:3acae97ffd19bf091c72df4d726d552c473f3576409b2a7ca36b2f535ffff4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:41f4c96227a67a013e7de5ff8f20fb496ce573893b7f4f2707d065907bffdbd6"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5f239eb799a2081495ea659d8d4a43a8f42cd1fe9ff2e7e436295c38a10c286a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53e431da3fc53360db73eedf6f7124d1076e1b4ee4276b36fb25514544ceb4a3"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1f62b2413c3a0e846c3b838b2ecd6c7a19ec6793b2a522745b0869e37ab5bc1"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5d41e6daee2813ecceea8eda38062d69e280b39df793f5a942fa515b8ed67953"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d482efec8b7dc6bfaedc0f166b2ce349df0011f5d2f1f25537ced4cfc34fd98"}, + {file = "pydantic_core-2.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e93e1a4b4b33daed65d781a57a522ff153dcf748dee70b40c7258c5861e1768a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:e7c4ea22b6739b162c9ecaaa41d718dfad48a244909fe7ef4b54c0b530effc5a"}, + {file = "pydantic_core-2.20.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4f2790949cf385d985a31984907fecb3896999329103df4e4983a4a41e13e840"}, + {file = "pydantic_core-2.20.1-cp310-none-win32.whl", hash = "sha256:5e999ba8dd90e93d57410c5e67ebb67ffcaadcea0ad973240fdfd3a135506250"}, + {file = "pydantic_core-2.20.1-cp310-none-win_amd64.whl", hash = "sha256:512ecfbefef6dac7bc5eaaf46177b2de58cdf7acac8793fe033b24ece0b9566c"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:d2a8fa9d6d6f891f3deec72f5cc668e6f66b188ab14bb1ab52422fe8e644f312"}, + {file = "pydantic_core-2.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:175873691124f3d0da55aeea1d90660a6ea7a3cfea137c38afa0a5ffabe37b88"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37eee5b638f0e0dcd18d21f59b679686bbd18917b87db0193ae36f9c23c355fc"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:25e9185e2d06c16ee438ed39bf62935ec436474a6ac4f9358524220f1b236e43"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:150906b40ff188a3260cbee25380e7494ee85048584998c1e66df0c7a11c17a6"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8ad4aeb3e9a97286573c03df758fc7627aecdd02f1da04516a86dc159bf70121"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3f3ed29cd9f978c604708511a1f9c2fdcb6c38b9aae36a51905b8811ee5cbf1"}, + {file = "pydantic_core-2.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b0dae11d8f5ded51699c74d9548dcc5938e0804cc8298ec0aa0da95c21fff57b"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:faa6b09ee09433b87992fb5a2859efd1c264ddc37280d2dd5db502126d0e7f27"}, + {file = "pydantic_core-2.20.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9dc1b507c12eb0481d071f3c1808f0529ad41dc415d0ca11f7ebfc666e66a18b"}, + {file = "pydantic_core-2.20.1-cp311-none-win32.whl", hash = "sha256:fa2fddcb7107e0d1808086ca306dcade7df60a13a6c347a7acf1ec139aa6789a"}, + {file = "pydantic_core-2.20.1-cp311-none-win_amd64.whl", hash = "sha256:40a783fb7ee353c50bd3853e626f15677ea527ae556429453685ae32280c19c2"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:595ba5be69b35777474fa07f80fc260ea71255656191adb22a8c53aba4479231"}, + {file = "pydantic_core-2.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a4f55095ad087474999ee28d3398bae183a66be4823f753cd7d67dd0153427c9"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9aa05d09ecf4c75157197f27cdc9cfaeb7c5f15021c6373932bf3e124af029f"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e97fdf088d4b31ff4ba35db26d9cc472ac7ef4a2ff2badeabf8d727b3377fc52"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc633a9fe1eb87e250b5c57d389cf28998e4292336926b0b6cdaee353f89a237"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d573faf8eb7e6b1cbbcb4f5b247c60ca8be39fe2c674495df0eb4318303137fe"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26dc97754b57d2fd00ac2b24dfa341abffc380b823211994c4efac7f13b9e90e"}, + {file = "pydantic_core-2.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:33499e85e739a4b60c9dac710c20a08dc73cb3240c9a0e22325e671b27b70d24"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:bebb4d6715c814597f85297c332297c6ce81e29436125ca59d1159b07f423eb1"}, + {file = "pydantic_core-2.20.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:516d9227919612425c8ef1c9b869bbbee249bc91912c8aaffb66116c0b447ebd"}, + {file = "pydantic_core-2.20.1-cp312-none-win32.whl", hash = "sha256:469f29f9093c9d834432034d33f5fe45699e664f12a13bf38c04967ce233d688"}, + {file = "pydantic_core-2.20.1-cp312-none-win_amd64.whl", hash = "sha256:035ede2e16da7281041f0e626459bcae33ed998cca6a0a007a5ebb73414ac72d"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:0827505a5c87e8aa285dc31e9ec7f4a17c81a813d45f70b1d9164e03a813a686"}, + {file = "pydantic_core-2.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:19c0fa39fa154e7e0b7f82f88ef85faa2a4c23cc65aae2f5aea625e3c13c735a"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4aa223cd1e36b642092c326d694d8bf59b71ddddc94cdb752bbbb1c5c91d833b"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c336a6d235522a62fef872c6295a42ecb0c4e1d0f1a3e500fe949415761b8a19"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7eb6a0587eded33aeefea9f916899d42b1799b7b14b8f8ff2753c0ac1741edac"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:70c8daf4faca8da5a6d655f9af86faf6ec2e1768f4b8b9d0226c02f3d6209703"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9fa4c9bf273ca41f940bceb86922a7667cd5bf90e95dbb157cbb8441008482c"}, + {file = "pydantic_core-2.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:11b71d67b4725e7e2a9f6e9c0ac1239bbc0c48cce3dc59f98635efc57d6dac83"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:270755f15174fb983890c49881e93f8f1b80f0b5e3a3cc1394a255706cabd203"}, + {file = "pydantic_core-2.20.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:c81131869240e3e568916ef4c307f8b99583efaa60a8112ef27a366eefba8ef0"}, + {file = "pydantic_core-2.20.1-cp313-none-win32.whl", hash = "sha256:b91ced227c41aa29c672814f50dbb05ec93536abf8f43cd14ec9521ea09afe4e"}, + {file = "pydantic_core-2.20.1-cp313-none-win_amd64.whl", hash = "sha256:65db0f2eefcaad1a3950f498aabb4875c8890438bc80b19362cf633b87a8ab20"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:4745f4ac52cc6686390c40eaa01d48b18997cb130833154801a442323cc78f91"}, + {file = "pydantic_core-2.20.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a8ad4c766d3f33ba8fd692f9aa297c9058970530a32c728a2c4bfd2616d3358b"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:41e81317dd6a0127cabce83c0c9c3fbecceae981c8391e6f1dec88a77c8a569a"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:04024d270cf63f586ad41fff13fde4311c4fc13ea74676962c876d9577bcc78f"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:eaad4ff2de1c3823fddf82f41121bdf453d922e9a238642b1dedb33c4e4f98ad"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:26ab812fa0c845df815e506be30337e2df27e88399b985d0bb4e3ecfe72df31c"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3c5ebac750d9d5f2706654c638c041635c385596caf68f81342011ddfa1e5598"}, + {file = "pydantic_core-2.20.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2aafc5a503855ea5885559eae883978c9b6d8c8993d67766ee73d82e841300dd"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:4868f6bd7c9d98904b748a2653031fc9c2f85b6237009d475b1008bfaeb0a5aa"}, + {file = "pydantic_core-2.20.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:aa2f457b4af386254372dfa78a2eda2563680d982422641a85f271c859df1987"}, + {file = "pydantic_core-2.20.1-cp38-none-win32.whl", hash = "sha256:225b67a1f6d602de0ce7f6c1c3ae89a4aa25d3de9be857999e9124f15dab486a"}, + {file = "pydantic_core-2.20.1-cp38-none-win_amd64.whl", hash = "sha256:6b507132dcfc0dea440cce23ee2182c0ce7aba7054576efc65634f080dbe9434"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:b03f7941783b4c4a26051846dea594628b38f6940a2fdc0df00b221aed39314c"}, + {file = "pydantic_core-2.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1eedfeb6089ed3fad42e81a67755846ad4dcc14d73698c120a82e4ccf0f1f9f6"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:635fee4e041ab9c479e31edda27fcf966ea9614fff1317e280d99eb3e5ab6fe2"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:77bf3ac639c1ff567ae3b47f8d4cc3dc20f9966a2a6dd2311dcc055d3d04fb8a"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7ed1b0132f24beeec5a78b67d9388656d03e6a7c837394f99257e2d55b461611"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6514f963b023aeee506678a1cf821fe31159b925c4b76fe2afa94cc70b3222b"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:10d4204d8ca33146e761c79f83cc861df20e7ae9f6487ca290a97702daf56006"}, + {file = "pydantic_core-2.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2d036c7187b9422ae5b262badb87a20a49eb6c5238b2004e96d4da1231badef1"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9ebfef07dbe1d93efb94b4700f2d278494e9162565a54f124c404a5656d7ff09"}, + {file = "pydantic_core-2.20.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6b9d9bb600328a1ce523ab4f454859e9d439150abb0906c5a1983c146580ebab"}, + {file = "pydantic_core-2.20.1-cp39-none-win32.whl", hash = "sha256:784c1214cb6dd1e3b15dd8b91b9a53852aed16671cc3fbe4786f4f1db07089e2"}, + {file = "pydantic_core-2.20.1-cp39-none-win_amd64.whl", hash = "sha256:d2fe69c5434391727efa54b47a1e7986bb0186e72a41b203df8f5b0a19a4f669"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:a45f84b09ac9c3d35dfcf6a27fd0634d30d183205230a0ebe8373a0e8cfa0906"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d02a72df14dfdbaf228424573a07af10637bd490f0901cee872c4f434a735b94"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d2b27e6af28f07e2f195552b37d7d66b150adbaa39a6d327766ffd695799780f"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084659fac3c83fd674596612aeff6041a18402f1e1bc19ca39e417d554468482"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:242b8feb3c493ab78be289c034a1f659e8826e2233786e36f2893a950a719bb6"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:38cf1c40a921d05c5edc61a785c0ddb4bed67827069f535d794ce6bcded919fc"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:e0bbdd76ce9aa5d4209d65f2b27fc6e5ef1312ae6c5333c26db3f5ade53a1e99"}, + {file = "pydantic_core-2.20.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:254ec27fdb5b1ee60684f91683be95e5133c994cc54e86a0b0963afa25c8f8a6"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:407653af5617f0757261ae249d3fba09504d7a71ab36ac057c938572d1bc9331"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:c693e916709c2465b02ca0ad7b387c4f8423d1db7b4649c551f27a529181c5ad"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5b5ff4911aea936a47d9376fd3ab17e970cc543d1b68921886e7f64bd28308d1"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177f55a886d74f1808763976ac4efd29b7ed15c69f4d838bbd74d9d09cf6fa86"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:964faa8a861d2664f0c7ab0c181af0bea66098b1919439815ca8803ef136fc4e"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:4dd484681c15e6b9a977c785a345d3e378d72678fd5f1f3c0509608da24f2ac0"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f6d6cff3538391e8486a431569b77921adfcdef14eb18fbf19b7c0a5294d4e6a"}, + {file = "pydantic_core-2.20.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a6d511cc297ff0883bc3708b465ff82d7560193169a8b93260f74ecb0a5e08a7"}, + {file = "pydantic_core-2.20.1.tar.gz", hash = "sha256:26ca695eeee5f9f1aeeb211ffc12f10bcb6f71e2989988fda61dabd65db878d4"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pygit2" +version = "1.17.0" +description = "Python bindings for libgit2." +optional = false +python-versions = ">=3.10" +files = [ + {file = "pygit2-1.17.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cbe1a3354a3eff0f4e842abcff73b24455ba7205ac959f146d7cb8dcd63cfa45"}, + {file = "pygit2-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:578d78fc97d5c16b1ad44c1e2fda093628c3f29793b42be68b93a46ce7a662a0"}, + {file = "pygit2-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e59de6138787aa3a5365557fb1ad427d3e877868917e0910257fb11f71f3c736"}, + {file = "pygit2-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66431dba77977b9010fac580eaefcc7567ea0955b030d8e8472fdce0f1a7c5f0"}, + {file = "pygit2-1.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:877ce82239de45301fa9953d50b41c46a5300cf7b3993db86bde64e08521a506"}, + {file = "pygit2-1.17.0-cp310-cp310-win32.whl", hash = "sha256:8b7921016cbec166083206daca20d00f2358b18178122e1b0d1932b410296de1"}, + {file = "pygit2-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:5724683b3d239cc1457b9800d9d7988a00cd0cb1797d5caa6f46d16f3f74f1ca"}, + {file = "pygit2-1.17.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:39e7087e2affdba2530d1fe1ec04c27fa85db405be84e1cd4759891045324a31"}, + {file = "pygit2-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0ef5c3634317295268ef84b99e8acae37cb2f8b17d966b318c79e5211bf78d3"}, + {file = "pygit2-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ad964b2eea81e0c99d05c6ec0ec8b5715d3d0c99b3b6e09abcdb57c57701592"}, + {file = "pygit2-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cce8db6aa40361270b14e1adb3a8e7d4606b9b53088e27321472c9a92f922648"}, + {file = "pygit2-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:136b1ea44107fb6a3a58e7b1322227e83101bff50a929816d8653a38e0ed0e07"}, + {file = "pygit2-1.17.0-cp311-cp311-win32.whl", hash = "sha256:5ffce0772167e5c436be57ee3ef0fb421c864657911aeb1a97618e1dd9f8b574"}, + {file = "pygit2-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:0809029cf804f343abdc9eaeaf9d915f9dbf320d79078c20138a3bf642583365"}, + {file = "pygit2-1.17.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f7224d89a7dda7290e458393941e500c8682f375f41e6d80ee423958a5d4013d"}, + {file = "pygit2-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ae1967b0c8a2438b3b0e4a63307b5c22c80024a2f09b28d14dfde0001fed8dc"}, + {file = "pygit2-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:507343fa142a82028c8448c2626317dc19885985aba8ea27d381777ac484eefb"}, + {file = "pygit2-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bc04917a680591c6e801df912d7fb722c253b5ac68178ff37b5666dafd06999"}, + {file = "pygit2-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7bb1b623cbd16962c3a1ec7f8e1012fa224c9e9642758c65e8e656ecc7ff1574"}, + {file = "pygit2-1.17.0-cp312-cp312-win32.whl", hash = "sha256:3029331ddf56a6908547278ab4c354b2d6932eb6a53be81e0093adc98a0ae540"}, + {file = "pygit2-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:1011236bab7317b82e6cbc3dff4be8467923b1dcf2ffe28bf2e64805dcb37749"}, + {file = "pygit2-1.17.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ce938e7a4fdfc816ffceb62babad65fb62e1a5ad261e880b9a072e8da144ccca"}, + {file = "pygit2-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:61ff2c8b0fc96fdf45a7a5239cc262b0293a5171f68d67eea239a42c3b2226cb"}, + {file = "pygit2-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8101aa723c292892ba46303b19487a9fb0de50d9e30f4c1c2a76e3383b6e4b6d"}, + {file = "pygit2-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36e3e9225e3f01bb6a2d4589c126900bbc571cd0876ca9c01372a6e3d3693c0e"}, + {file = "pygit2-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:614cfddbf048900da19b016787f153d44ea9fd7ef80f9e03a77024aa1555d5f4"}, + {file = "pygit2-1.17.0-cp313-cp313-win32.whl", hash = "sha256:1391762153af9715ed1d0586e3f207c518f03f5874e1f5b8e398697d006a0a82"}, + {file = "pygit2-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:d677d6fb85c426c5f5f8409bdc5a2e391016c99f73b97779b284c4ad25aa75fa"}, + {file = "pygit2-1.17.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c491db4f71fd5d814023f2ad89ad7023c15738bcbe0807acc2313026600bf1b1"}, + {file = "pygit2-1.17.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89ff254387d23d107dd2b542907d248a3a988e3be8cda99bcc8af04f56e6e5cf"}, + {file = "pygit2-1.17.0.tar.gz", hash = "sha256:fa2bc050b2c2d3e73b54d6d541c792178561a344f07e409f532d5bb97ac7b894"}, +] + +[package.dependencies] +cffi = ">=1.17.0" [[package]] name = "pytest" -version = "7.4.0" +version = "8.3.2" description = "pytest: simple powerful testing with Python" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-7.4.0-py3-none-any.whl", hash = "sha256:78bf16451a2eb8c7a2ea98e32dc119fd2aa758f1d5d66dbf0a59d69a3969df32"}, - {file = "pytest-7.4.0.tar.gz", hash = "sha256:b4bf8c45bd59934ed84001ad51e11b4ee40d40a1229d2c79f9c592b0a3f6bd8a"}, + {file = "pytest-8.3.2-py3-none-any.whl", hash = "sha256:4ba08f9ae7dcf84ded419494d229b48d0903ea6407b030eaec46df5e6a73bba5"}, + {file = "pytest-8.3.2.tar.gz", hash = "sha256:c132345d12ce551242c87269de812483f5bcc87cdbb4722e48487ba194f9fdce"}, ] [package.dependencies] @@ -1451,41 +1849,39 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""} exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""} iniconfig = "*" packaging = "*" -pluggy = ">=0.12,<2.0" -tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""} +pluggy = ">=1.5,<2" +tomli = {version = ">=1", markers = "python_version < \"3.11\""} [package.extras] -testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] +dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"] [[package]] name = "pytest-asyncio" -version = "0.21.1" +version = "0.23.8" description = "Pytest support for asyncio" -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-asyncio-0.21.1.tar.gz", hash = "sha256:40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"}, - {file = "pytest_asyncio-0.21.1-py3-none-any.whl", hash = "sha256:8666c1c8ac02631d7c51ba282e0c69a8a452b211ffedf2599099845da5c5c37b"}, + {file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"}, + {file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"}, ] [package.dependencies] -pytest = ">=7.0.0" +pytest = ">=7.0.0,<9" [package.extras] docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"] -testing = ["coverage (>=6.2)", "flaky (>=3.5.0)", "hypothesis (>=5.7.1)", "mypy (>=0.931)", "pytest-trio (>=0.7.0)"] +testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"] [[package]] name = "pytest-cov" -version = "4.1.0" +version = "5.0.0" description = "Pytest plugin for measuring coverage." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"}, - {file = "pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a"}, + {file = "pytest-cov-5.0.0.tar.gz", hash = "sha256:5837b58e9f6ebd335b0f8060eecce69b662415b16dc503883a02f45dfeb14857"}, + {file = "pytest_cov-5.0.0-py3-none-any.whl", hash = "sha256:4f0764a1219df53214206bf1feea4633c3b558a2925c8b59f144f682861ce652"}, ] [package.dependencies] @@ -1493,13 +1889,12 @@ coverage = {version = ">=5.2.1", extras = ["toml"]} pytest = ">=4.6" [package.extras] -testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"] +testing = ["fields", "hunter", "process-tests", "pytest-xdist", "virtualenv"] [[package]] name = "pytest-tap" version = "3.4" description = "Test Anything Protocol (TAP) reporting plugin for pytest" -category = "dev" optional = false python-versions = "*" files = [ @@ -1513,19 +1908,18 @@ pytest = ">=3.0" [[package]] name = "pytest-xdist" -version = "3.3.1" +version = "3.6.1" description = "pytest xdist plugin for distributed testing, most importantly across multiple CPUs" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "pytest-xdist-3.3.1.tar.gz", hash = "sha256:d5ee0520eb1b7bcca50a60a518ab7a7707992812c578198f8b44fdfac78e8c93"}, - {file = "pytest_xdist-3.3.1-py3-none-any.whl", hash = "sha256:ff9daa7793569e6a68544850fd3927cd257cc03a7ef76c95e86915355e82b5f2"}, + {file = "pytest_xdist-3.6.1-py3-none-any.whl", hash = "sha256:9ed4adfb68a016610848639bb7e02c9352d5d9f03d04809919e2dafc3be4cca7"}, + {file = "pytest_xdist-3.6.1.tar.gz", hash = "sha256:ead156a4db231eec769737f57668ef58a2084a34b2e55c4a8fa20d861107300d"}, ] [package.dependencies] -execnet = ">=1.1" -pytest = ">=6.2.0" +execnet = ">=2.1" +pytest = ">=7.0.0" [package.extras] psutil = ["psutil (>=3.0)"] @@ -1534,14 +1928,13 @@ testing = ["filelock"] [[package]] name = "python-dateutil" -version = "2.8.2" +version = "2.9.0.post0" description = "Extensions to the standard Python datetime module" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, - {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, ] [package.dependencies] @@ -1549,48 +1942,42 @@ six = ">=1.5" [[package]] name = "python-multipart" -version = "0.0.6" +version = "0.0.19" description = "A streaming multipart parser for Python" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "python_multipart-0.0.6-py3-none-any.whl", hash = "sha256:ee698bab5ef148b0a760751c261902cd096e57e10558e11aca17646b74ee1c18"}, - {file = "python_multipart-0.0.6.tar.gz", hash = "sha256:e9925a80bb668529f1b67c7fdb0a5dacdd7cbfc6fb0bff3ea443fe22bdd62132"}, + {file = "python_multipart-0.0.19-py3-none-any.whl", hash = "sha256:f8d5b0b9c618575bf9df01c684ded1d94a338839bdd8223838afacfb4bb2082d"}, + {file = "python_multipart-0.0.19.tar.gz", hash = "sha256:905502ef39050557b7a6af411f454bc19526529ca46ae6831508438890ce12cc"}, ] -[package.extras] -dev = ["atomicwrites (==1.2.1)", "attrs (==19.2.0)", "coverage (==6.5.0)", "hatch", "invoke (==1.7.3)", "more-itertools (==4.3.0)", "pbr (==4.3.0)", "pluggy (==1.0.0)", "py (==1.11.0)", "pytest (==7.2.0)", "pytest-cov (==4.0.0)", "pytest-timeout (==2.1.0)", "pyyaml (==5.1)"] - [[package]] name = "redis" -version = "4.6.0" +version = "5.0.8" description = "Python client for Redis database and key-value store" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "redis-4.6.0-py3-none-any.whl", hash = "sha256:e2b03db868160ee4591de3cb90d40ebb50a90dd302138775937f6a42b7ed183c"}, - {file = "redis-4.6.0.tar.gz", hash = "sha256:585dc516b9eb042a619ef0a39c3d7d55fe81bdb4df09a52c9cdde0d07bf1aa7d"}, + {file = "redis-5.0.8-py3-none-any.whl", hash = "sha256:56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4"}, + {file = "redis-5.0.8.tar.gz", hash = "sha256:0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870"}, ] [package.dependencies] -async-timeout = {version = ">=4.0.2", markers = "python_full_version <= \"3.11.2\""} +async-timeout = {version = ">=4.0.3", markers = "python_full_version < \"3.11.3\""} [package.extras] -hiredis = ["hiredis (>=1.0.0)"] +hiredis = ["hiredis (>1.0.0)"] ocsp = ["cryptography (>=36.0.1)", "pyopenssl (==20.0.1)", "requests (>=2.26.0)"] [[package]] name = "requests" -version = "2.31.0" +version = "2.32.3" description = "Python HTTP for Humans." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -1603,11 +1990,26 @@ urllib3 = ">=1.21.1,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] +[[package]] +name = "setuptools" +version = "72.2.0" +description = "Easily download, build, install, upgrade, and uninstall Python packages" +optional = false +python-versions = ">=3.8" +files = [ + {file = "setuptools-72.2.0-py3-none-any.whl", hash = "sha256:f11dd94b7bae3a156a95ec151f24e4637fb4fa19c878e4d191bfb8b2d82728c4"}, + {file = "setuptools-72.2.0.tar.gz", hash = "sha256:80aacbf633704e9c8bfa1d99fa5dd4dc59573efcf9e4042c13d3bcef91ac2ef9"}, +] + +[package.extras] +core = ["importlib-metadata (>=6)", "importlib-resources (>=5.10.2)", "jaraco.text (>=3.7)", "more-itertools (>=8.8)", "ordered-set (>=3.1.1)", "packaging (>=24)", "platformdirs (>=2.6.2)", "tomli (>=2.0.1)", "wheel (>=0.43.0)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "importlib-metadata", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "jaraco.test", "mypy (==1.11.*)", "packaging (>=23.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-home (>=0.5)", "pytest-mypy", "pytest-perf", "pytest-ruff (<0.4)", "pytest-ruff (>=0.2.1)", "pytest-ruff (>=0.3.2)", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] + [[package]] name = "six" version = "1.16.0" description = "Python 2 and 3 compatibility utilities" -category = "main" optional = false python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" files = [ @@ -1617,21 +2019,19 @@ files = [ [[package]] name = "sniffio" -version = "1.3.0" +version = "1.3.1" description = "Sniff out which async library your code is running under" -category = "main" optional = false python-versions = ">=3.7" files = [ - {file = "sniffio-1.3.0-py3-none-any.whl", hash = "sha256:eecefdce1e5bbfb7ad2eeaabf7c1eeb404d7757c379bd1f7e5cce9d8bf425384"}, - {file = "sniffio-1.3.0.tar.gz", hash = "sha256:e60305c5e5d314f5389259b7f22aaa33d8f7dee49763119234af3755c55b9101"}, + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, ] [[package]] name = "sortedcontainers" version = "2.4.0" description = "Sorted Containers -- Sorted List, Sorted Dict, Sorted Set" -category = "main" optional = false python-versions = "*" files = [ @@ -1641,81 +2041,85 @@ files = [ [[package]] name = "sqlalchemy" -version = "1.4.49" +version = "1.4.53" description = "Database Abstraction Library" -category = "main" optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7" files = [ - {file = "SQLAlchemy-1.4.49-cp27-cp27m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:2e126cf98b7fd38f1e33c64484406b78e937b1a280e078ef558b95bf5b6895f6"}, - {file = "SQLAlchemy-1.4.49-cp27-cp27mu-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:03db81b89fe7ef3857b4a00b63dedd632d6183d4ea5a31c5d8a92e000a41fc71"}, - {file = "SQLAlchemy-1.4.49-cp310-cp310-macosx_11_0_x86_64.whl", hash = "sha256:95b9df9afd680b7a3b13b38adf6e3a38995da5e162cc7524ef08e3be4e5ed3e1"}, - {file = "SQLAlchemy-1.4.49-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a63e43bf3f668c11bb0444ce6e809c1227b8f067ca1068898f3008a273f52b09"}, - {file = "SQLAlchemy-1.4.49-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:f835c050ebaa4e48b18403bed2c0fda986525896efd76c245bdd4db995e51a4c"}, - {file = "SQLAlchemy-1.4.49-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c21b172dfb22e0db303ff6419451f0cac891d2e911bb9fbf8003d717f1bcf91"}, - {file = "SQLAlchemy-1.4.49-cp310-cp310-win32.whl", hash = "sha256:5fb1ebdfc8373b5a291485757bd6431de8d7ed42c27439f543c81f6c8febd729"}, - {file = "SQLAlchemy-1.4.49-cp310-cp310-win_amd64.whl", hash = "sha256:f8a65990c9c490f4651b5c02abccc9f113a7f56fa482031ac8cb88b70bc8ccaa"}, - {file = "SQLAlchemy-1.4.49-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:8923dfdf24d5aa8a3adb59723f54118dd4fe62cf59ed0d0d65d940579c1170a4"}, - {file = "SQLAlchemy-1.4.49-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9ab2c507a7a439f13ca4499db6d3f50423d1d65dc9b5ed897e70941d9e135b0"}, - {file = "SQLAlchemy-1.4.49-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5debe7d49b8acf1f3035317e63d9ec8d5e4d904c6e75a2a9246a119f5f2fdf3d"}, - {file = "SQLAlchemy-1.4.49-cp311-cp311-win32.whl", hash = "sha256:82b08e82da3756765c2e75f327b9bf6b0f043c9c3925fb95fb51e1567fa4ee87"}, - {file = "SQLAlchemy-1.4.49-cp311-cp311-win_amd64.whl", hash = "sha256:171e04eeb5d1c0d96a544caf982621a1711d078dbc5c96f11d6469169bd003f1"}, - {file = "SQLAlchemy-1.4.49-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:36e58f8c4fe43984384e3fbe6341ac99b6b4e083de2fe838f0fdb91cebe9e9cb"}, - {file = "SQLAlchemy-1.4.49-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b31e67ff419013f99ad6f8fc73ee19ea31585e1e9fe773744c0f3ce58c039c30"}, - {file = "SQLAlchemy-1.4.49-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:c14b29d9e1529f99efd550cd04dbb6db6ba5d690abb96d52de2bff4ed518bc95"}, - {file = "SQLAlchemy-1.4.49-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c40f3470e084d31247aea228aa1c39bbc0904c2b9ccbf5d3cfa2ea2dac06f26d"}, - {file = "SQLAlchemy-1.4.49-cp36-cp36m-win32.whl", hash = "sha256:706bfa02157b97c136547c406f263e4c6274a7b061b3eb9742915dd774bbc264"}, - {file = "SQLAlchemy-1.4.49-cp36-cp36m-win_amd64.whl", hash = "sha256:a7f7b5c07ae5c0cfd24c2db86071fb2a3d947da7bd487e359cc91e67ac1c6d2e"}, - {file = "SQLAlchemy-1.4.49-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:4afbbf5ef41ac18e02c8dc1f86c04b22b7a2125f2a030e25bbb4aff31abb224b"}, - {file = "SQLAlchemy-1.4.49-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:24e300c0c2147484a002b175f4e1361f102e82c345bf263242f0449672a4bccf"}, - {file = "SQLAlchemy-1.4.49-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:201de072b818f8ad55c80d18d1a788729cccf9be6d9dc3b9d8613b053cd4836d"}, - {file = "SQLAlchemy-1.4.49-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7653ed6817c710d0c95558232aba799307d14ae084cc9b1f4c389157ec50df5c"}, - {file = "SQLAlchemy-1.4.49-cp37-cp37m-win32.whl", hash = "sha256:647e0b309cb4512b1f1b78471fdaf72921b6fa6e750b9f891e09c6e2f0e5326f"}, - {file = "SQLAlchemy-1.4.49-cp37-cp37m-win_amd64.whl", hash = "sha256:ab73ed1a05ff539afc4a7f8cf371764cdf79768ecb7d2ec691e3ff89abbc541e"}, - {file = "SQLAlchemy-1.4.49-cp38-cp38-macosx_11_0_x86_64.whl", hash = "sha256:37ce517c011560d68f1ffb28af65d7e06f873f191eb3a73af5671e9c3fada08a"}, - {file = "SQLAlchemy-1.4.49-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1878ce508edea4a879015ab5215546c444233881301e97ca16fe251e89f1c55"}, - {file = "SQLAlchemy-1.4.49-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:0e8e608983e6f85d0852ca61f97e521b62e67969e6e640fe6c6b575d4db68557"}, - {file = "SQLAlchemy-1.4.49-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ccf956da45290df6e809ea12c54c02ace7f8ff4d765d6d3dfb3655ee876ce58d"}, - {file = "SQLAlchemy-1.4.49-cp38-cp38-win32.whl", hash = "sha256:f167c8175ab908ce48bd6550679cc6ea20ae169379e73c7720a28f89e53aa532"}, - {file = "SQLAlchemy-1.4.49-cp38-cp38-win_amd64.whl", hash = "sha256:45806315aae81a0c202752558f0df52b42d11dd7ba0097bf71e253b4215f34f4"}, - {file = "SQLAlchemy-1.4.49-cp39-cp39-macosx_11_0_x86_64.whl", hash = "sha256:b6d0c4b15d65087738a6e22e0ff461b407533ff65a73b818089efc8eb2b3e1de"}, - {file = "SQLAlchemy-1.4.49-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a843e34abfd4c797018fd8d00ffffa99fd5184c421f190b6ca99def4087689bd"}, - {file = "SQLAlchemy-1.4.49-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1c890421651b45a681181301b3497e4d57c0d01dc001e10438a40e9a9c25ee77"}, - {file = "SQLAlchemy-1.4.49-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d26f280b8f0a8f497bc10573849ad6dc62e671d2468826e5c748d04ed9e670d5"}, - {file = "SQLAlchemy-1.4.49-cp39-cp39-win32.whl", hash = "sha256:ec2268de67f73b43320383947e74700e95c6770d0c68c4e615e9897e46296294"}, - {file = "SQLAlchemy-1.4.49-cp39-cp39-win_amd64.whl", hash = "sha256:bbdf16372859b8ed3f4d05f925a984771cd2abd18bd187042f24be4886c2a15f"}, - {file = "SQLAlchemy-1.4.49.tar.gz", hash = "sha256:06ff25cbae30c396c4b7737464f2a7fc37a67b7da409993b182b024cec80aed9"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:b61ac5457d91b5629a3dea2b258deb4cdd35ac8f6fa2031d2b9b2fff5b3396da"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a96aa8d425047551676b0e178ddb0683421e78eda879ab55775128b2e612cae"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e10ac36f0b994235c13388b39598bf27219ec8bdea5be99bdac612b01cbe525"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:437592b341a3229dd0443c9c803b0bf0a466f8f539014fef6cdb9c06b7edb7f9"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:784272ceb5eb71421fea9568749bcbe8bd019261a0e2e710a7efa76057af2499"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-win32.whl", hash = "sha256:122d7b5722df1a24402c6748bbb04687ef981493bb559d0cc0beffe722e0e6ed"}, + {file = "SQLAlchemy-1.4.53-cp310-cp310-win_amd64.whl", hash = "sha256:4604d42b2abccba266d3f5bbe883684b5df93e74054024c70d3fbb5eea45e530"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fb8e15dfa47f5de11ab073e12aadd6b502cfb7ac4bafd18bd18cfd1c7d13dbbc"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bc8be4df55e8fde3006d9cb1f6b3df2ba26db613855dc4df2c0fcd5ec15cb3b7"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86b11640251f9a9789fd96cd6e5d176b1c230230c70ad40299bcbcc568451b4c"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-win32.whl", hash = "sha256:cd534c716f86bdf95b7b984a34ee278c91d1b1d7d183e7e5ff878600b1696046"}, + {file = "SQLAlchemy-1.4.53-cp311-cp311-win_amd64.whl", hash = "sha256:6dd06572872ca13ef5a90306a3e5af787498ddaa17fb00109b1243642646cd69"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:2774c24c405136c3ef472e2352bdca7330659d481fbf2283f996c0ef9eb90f22"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68a614765197b3d13a730d631a78c3bb9b3b72ba58ed7ab295d58d517464e315"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d13d4dfbc6e52363886b47cf02cf68c5d2a37c468626694dc210d7e97d4ad330"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-win32.whl", hash = "sha256:197065b91456574d70b6459bfa62bc0b52a4960a29ef923c375ec427274a3e05"}, + {file = "SQLAlchemy-1.4.53-cp312-cp312-win_amd64.whl", hash = "sha256:421306c4b936b0271a3ce2dc074928d5ece4a36f9c482daa5770f44ecfc3a883"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:13fc34b35d8ddb3fbe3f8fcfdf6c2546e676187f0fb20f5774da362ddaf8fa2d"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:626be971ff89541cfd3e70b54be00b57a7f8557204decb6223ce0428fec058f3"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:991e42fdfec561ebc6a4fae7161a86d129d6069fa14210b96b8dd752afa7059c"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:95123f3a1e0e8020848fd32ba751db889a01a44e4e4fef7e58c87ddd0b2fca59"}, + {file = "SQLAlchemy-1.4.53-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c58e011e9e6373b3a091d83f20601fb335a3b4bace80bfcb914ac168aad3b70d"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-macosx_11_0_x86_64.whl", hash = "sha256:670c7769bf5dcae9aff331247b5d82fe635c63731088a46ce68ba2ba519ef36e"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:07ba54f09033d387ae9df8d62cbe211ed7304e0bfbece1f8c55e21db9fae5c11"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a38834b4c183c33daf58544281395aad2e985f0b47cca1e88ea5ada88344e63"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:616492f5315128a847f293a7c552f3561ac7e996d2aa5dc46bef4fb0d3781f1d"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0cf8c0af9563892c6632f7343bc393dfce6eeef8e4d10c5fadba9c0390520bd"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-win32.whl", hash = "sha256:c05fe05941424c2f3747a8952381b7725e24cba2ca00141380e54789d5b616b6"}, + {file = "SQLAlchemy-1.4.53-cp37-cp37m-win_amd64.whl", hash = "sha256:93e90aa3e3b2f8e8cbae4d5509f8e0cf82972378d323c740a8df1c1e9f484172"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:9d7368df54d3ed45a18955f6cec38ebe075290594ac0d5c87a8ddaff7e10de27"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:89d8ac4158ef68eea8bb0f6dd0583127d9aa8720606964ba8eee20b254f9c83a"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:16bb9fa4d00b4581b14d9f0e2224dc7745b854aa4687738279af0f48f7056c98"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:4fe5168d0249c23f537950b6d75935ff2709365a113e29938a979aec36668ecf"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8b8608d162d3bd29d807aab32c3fb6e2f8e225a43d1c54c917fed38513785380"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-win32.whl", hash = "sha256:a9d4d132198844bd6828047135ce7b887687c92925049a2468a605fc775c7a1a"}, + {file = "SQLAlchemy-1.4.53-cp38-cp38-win_amd64.whl", hash = "sha256:c15d1f1fcf1f9bec0499ae1d9132b950fcc7730f2d26d10484c8808b4e077816"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:edf094a20a386ff2ec73de65ef18014b250259cb860edc61741e240ca22d6981"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux1_x86_64.manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_5_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:83a9c3514ff19d9d30d8a8d378b24cd1dfa5528d20891481cb5f196117db6a48"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eaaeedbceb4dfd688fff2faf25a9a87a391f548811494f7bff7fa701b639abc3"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:d021699b9007deb7aa715629078830c99a5fec2753d9bdd5ff33290d363ef755"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0465b8a68f8f4de754c1966c45b187ac784ad97bc9747736f913130f0e1adea0"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-win32.whl", hash = "sha256:5f67b9e9dcac3241781e96575468d55a42332157dee04bdbf781df573dff5f85"}, + {file = "SQLAlchemy-1.4.53-cp39-cp39-win_amd64.whl", hash = "sha256:a8c2f2a0b2c4e3b86eb58c9b6bb98548205eea2fba9dae4edfd29dc6aebbe95a"}, + {file = "SQLAlchemy-1.4.53.tar.gz", hash = "sha256:5e6ab710c4c064755fd92d1a417bef360228a19bdf0eee32b03aa0f5f8e9fe0d"}, ] [package.dependencies] -greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and platform_machine == \"aarch64\" or python_version >= \"3\" and platform_machine == \"ppc64le\" or python_version >= \"3\" and platform_machine == \"x86_64\" or python_version >= \"3\" and platform_machine == \"amd64\" or python_version >= \"3\" and platform_machine == \"AMD64\" or python_version >= \"3\" and platform_machine == \"win32\" or python_version >= \"3\" and platform_machine == \"WIN32\""} +greenlet = {version = "!=0.4.17", markers = "python_version >= \"3\" and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\")"} [package.extras] -aiomysql = ["aiomysql", "greenlet (!=0.4.17)"] -aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing-extensions (!=3.10.0.1)"] +aiomysql = ["aiomysql (>=0.2.0)", "greenlet (!=0.4.17)"] +aiosqlite = ["aiosqlite", "greenlet (!=0.4.17)", "typing_extensions (!=3.10.0.1)"] asyncio = ["greenlet (!=0.4.17)"] asyncmy = ["asyncmy (>=0.2.3,!=0.2.4)", "greenlet (!=0.4.17)"] -mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)"] +mariadb-connector = ["mariadb (>=1.0.1,!=1.1.2)", "mariadb (>=1.0.1,!=1.1.2)"] mssql = ["pyodbc"] -mssql-pymssql = ["pymssql"] -mssql-pyodbc = ["pyodbc"] +mssql-pymssql = ["pymssql", "pymssql"] +mssql-pyodbc = ["pyodbc", "pyodbc"] mypy = ["mypy (>=0.910)", "sqlalchemy2-stubs"] mysql = ["mysqlclient (>=1.4.0)", "mysqlclient (>=1.4.0,<2)"] -mysql-connector = ["mysql-connector-python"] -oracle = ["cx-oracle (>=7)", "cx-oracle (>=7,<8)"] +mysql-connector = ["mysql-connector-python", "mysql-connector-python"] +oracle = ["cx_oracle (>=7)", "cx_oracle (>=7,<8)"] postgresql = ["psycopg2 (>=2.7)"] -postgresql-asyncpg = ["asyncpg", "greenlet (!=0.4.17)"] -postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)"] +postgresql-asyncpg = ["asyncpg", "asyncpg", "greenlet (!=0.4.17)", "greenlet (!=0.4.17)"] +postgresql-pg8000 = ["pg8000 (>=1.16.6,!=1.29.0)", "pg8000 (>=1.16.6,!=1.29.0)"] postgresql-psycopg2binary = ["psycopg2-binary"] postgresql-psycopg2cffi = ["psycopg2cffi"] pymysql = ["pymysql", "pymysql (<1)"] -sqlcipher = ["sqlcipher3-binary"] +sqlcipher = ["sqlcipher3_binary"] [[package]] name = "srcinfo" version = "0.1.2" description = "A small library to parse .SRCINFO files" -category = "main" optional = false python-versions = ">=3.7,<4.0" files = [ @@ -1728,28 +2132,25 @@ parse = ">=1.19.0,<2.0.0" [[package]] name = "starlette" -version = "0.27.0" +version = "0.38.2" description = "The little ASGI library that shines." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "starlette-0.27.0-py3-none-any.whl", hash = "sha256:918416370e846586541235ccd38a474c08b80443ed31c578a418e2209b3eef91"}, - {file = "starlette-0.27.0.tar.gz", hash = "sha256:6a6b0d042acb8d469a01eba54e9cda6cbd24ac602c4cd016723117d6a7e73b75"}, + {file = "starlette-0.38.2-py3-none-any.whl", hash = "sha256:4ec6a59df6bbafdab5f567754481657f7ed90dc9d69b0c9ff017907dd54faeff"}, + {file = "starlette-0.38.2.tar.gz", hash = "sha256:c7c0441065252160993a1a37cf2a73bb64d271b17303e0b0c1eb7191cfb12d75"}, ] [package.dependencies] anyio = ">=3.4.0,<5" -typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} [package.extras] -full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart", "pyyaml"] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] [[package]] name = "tap-py" version = "3.1" description = "Test Anything Protocol (TAP) tools" -category = "dev" optional = false python-versions = "*" files = [ @@ -1760,11 +2161,24 @@ files = [ [package.extras] yaml = ["PyYAML (>=5.1)", "more-itertools"] +[[package]] +name = "taskgroup" +version = "0.0.0a4" +description = "backport of asyncio.TaskGroup, asyncio.Runner and asyncio.timeout" +optional = false +python-versions = "*" +files = [ + {file = "taskgroup-0.0.0a4-py2.py3-none-any.whl", hash = "sha256:5c1bd0e4c06114e7a4128583ab75c987597d5378a33948a3b74c662b90f61277"}, + {file = "taskgroup-0.0.0a4.tar.gz", hash = "sha256:eb08902d221e27661950f2a0320ddf3f939f579279996f81fe30779bca3a159c"}, +] + +[package.dependencies] +exceptiongroup = "*" + [[package]] name = "tomli" version = "2.0.1" description = "A lil' TOML parser" -category = "main" optional = false python-versions = ">=3.7" files = [ @@ -1774,56 +2188,52 @@ files = [ [[package]] name = "tomlkit" -version = "0.12.1" +version = "0.13.2" description = "Style preserving TOML library" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "tomlkit-0.12.1-py3-none-any.whl", hash = "sha256:712cbd236609acc6a3e2e97253dfc52d4c2082982a88f61b640ecf0817eab899"}, - {file = "tomlkit-0.12.1.tar.gz", hash = "sha256:38e1ff8edb991273ec9f6181244a6a391ac30e9f5098e7535640ea6be97a7c86"}, + {file = "tomlkit-0.13.2-py3-none-any.whl", hash = "sha256:7a974427f6e119197f670fbbbeae7bef749a6c14e793db934baefc1b5f03efde"}, + {file = "tomlkit-0.13.2.tar.gz", hash = "sha256:fff5fe59a87295b278abd31bec92c15d9bc4a06885ab12bcea52c71119392e79"}, ] [[package]] name = "typing-extensions" -version = "4.5.0" -description = "Backported and Experimental Type Hints for Python 3.7+" -category = "main" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.5.0-py3-none-any.whl", hash = "sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4"}, - {file = "typing_extensions-4.5.0.tar.gz", hash = "sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] name = "urllib3" -version = "2.0.2" +version = "2.2.2" description = "HTTP library with thread-safe connection pooling, file post, and more." -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "urllib3-2.0.2-py3-none-any.whl", hash = "sha256:d055c2f9d38dc53c808f6fdc8eab7360b6fdbbde02340ed25cfbcd817c62469e"}, - {file = "urllib3-2.0.2.tar.gz", hash = "sha256:61717a1095d7e155cdb737ac7bb2f4324a858a1e2e6466f6d03ff630ca68d3cc"}, + {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, + {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, ] [package.extras] brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] +h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] [[package]] name = "uvicorn" -version = "0.23.2" +version = "0.30.6" description = "The lightning-fast ASGI server." -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "uvicorn-0.23.2-py3-none-any.whl", hash = "sha256:1f9be6558f01239d4fdf22ef8126c39cb1ad0addf76c40e760549d2c2f43ab53"}, - {file = "uvicorn-0.23.2.tar.gz", hash = "sha256:4d3cc12d7727ba72b64d12d3cc7743124074c0a69f7b201512fc50c3e3f1569a"}, + {file = "uvicorn-0.30.6-py3-none-any.whl", hash = "sha256:65fd46fe3fda5bdc1b03b94eb634923ff18cd35b2f084813ea79d1f103f711b5"}, + {file = "uvicorn-0.30.6.tar.gz", hash = "sha256:4b15decdda1e72be08209e860a1e10e92439ad5b97cf44cc945fcbee66fc5788"}, ] [package.dependencies] @@ -1836,34 +2246,82 @@ standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", [[package]] name = "watchfiles" -version = "0.19.0" +version = "1.0.4" description = "Simple, modern and high performance file watching and code reload in python." -category = "dev" optional = false -python-versions = ">=3.7" +python-versions = ">=3.9" files = [ - {file = "watchfiles-0.19.0-cp37-abi3-macosx_10_7_x86_64.whl", hash = "sha256:91633e64712df3051ca454ca7d1b976baf842d7a3640b87622b323c55f3345e7"}, - {file = "watchfiles-0.19.0-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:b6577b8c6c8701ba8642ea9335a129836347894b666dd1ec2226830e263909d3"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:18b28f6ad871b82df9542ff958d0c86bb0d8310bb09eb8e87d97318a3b5273af"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fac19dc9cbc34052394dbe81e149411a62e71999c0a19e1e09ce537867f95ae0"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:09ea3397aecbc81c19ed7f025e051a7387feefdb789cf768ff994c1228182fda"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c0376deac92377817e4fb8f347bf559b7d44ff556d9bc6f6208dd3f79f104aaf"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9c75eff897786ee262c9f17a48886f4e98e6cfd335e011c591c305e5d083c056"}, - {file = "watchfiles-0.19.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cb5d45c4143c1dd60f98a16187fd123eda7248f84ef22244818c18d531a249d1"}, - {file = "watchfiles-0.19.0-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:79c533ff593db861ae23436541f481ec896ee3da4e5db8962429b441bbaae16e"}, - {file = "watchfiles-0.19.0-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:3d7d267d27aceeeaa3de0dd161a0d64f0a282264d592e335fff7958cc0cbae7c"}, - {file = "watchfiles-0.19.0-cp37-abi3-win32.whl", hash = "sha256:176a9a7641ec2c97b24455135d58012a5be5c6217fc4d5fef0b2b9f75dbf5154"}, - {file = "watchfiles-0.19.0-cp37-abi3-win_amd64.whl", hash = "sha256:945be0baa3e2440151eb3718fd8846751e8b51d8de7b884c90b17d271d34cae8"}, - {file = "watchfiles-0.19.0-cp37-abi3-win_arm64.whl", hash = "sha256:0089c6dc24d436b373c3c57657bf4f9a453b13767150d17284fc6162b2791911"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-macosx_10_7_x86_64.whl", hash = "sha256:cae3dde0b4b2078f31527acff6f486e23abed307ba4d3932466ba7cdd5ecec79"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f3920b1285a7d3ce898e303d84791b7bf40d57b7695ad549dc04e6a44c9f120"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9afd0d69429172c796164fd7fe8e821ade9be983f51c659a38da3faaaaac44dc"}, - {file = "watchfiles-0.19.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68dce92b29575dda0f8d30c11742a8e2b9b8ec768ae414b54f7453f27bdf9545"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-macosx_10_7_x86_64.whl", hash = "sha256:5569fc7f967429d4bc87e355cdfdcee6aabe4b620801e2cf5805ea245c06097c"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:5471582658ea56fca122c0f0d0116a36807c63fefd6fdc92c71ca9a4491b6b48"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b538014a87f94d92f98f34d3e6d2635478e6be6423a9ea53e4dd96210065e193"}, - {file = "watchfiles-0.19.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20b44221764955b1e703f012c74015306fb7e79a00c15370785f309b1ed9aa8d"}, - {file = "watchfiles-0.19.0.tar.gz", hash = "sha256:d9b073073e048081e502b6c6b0b88714c026a1a4c890569238d04aca5f9ca74b"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ba5bb3073d9db37c64520681dd2650f8bd40902d991e7b4cfaeece3e32561d08"}, + {file = "watchfiles-1.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9f25d0ba0fe2b6d2c921cf587b2bf4c451860086534f40c384329fb96e2044d1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:47eb32ef8c729dbc4f4273baece89398a4d4b5d21a1493efea77a17059f4df8a"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:076f293100db3b0b634514aa0d294b941daa85fc777f9c698adb1009e5aca0b1"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1eacd91daeb5158c598fe22d7ce66d60878b6294a86477a4715154990394c9b3"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:13c2ce7b72026cfbca120d652f02c7750f33b4c9395d79c9790b27f014c8a5a2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:90192cdc15ab7254caa7765a98132a5a41471cf739513cc9bcf7d2ffcc0ec7b2"}, + {file = "watchfiles-1.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:278aaa395f405972e9f523bd786ed59dfb61e4b827856be46a42130605fd0899"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:a462490e75e466edbb9fc4cd679b62187153b3ba804868452ef0577ec958f5ff"}, + {file = "watchfiles-1.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:8d0d0630930f5cd5af929040e0778cf676a46775753e442a3f60511f2409f48f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win32.whl", hash = "sha256:cc27a65069bcabac4552f34fd2dce923ce3fcde0721a16e4fb1b466d63ec831f"}, + {file = "watchfiles-1.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:8b1f135238e75d075359cf506b27bf3f4ca12029c47d3e769d8593a2024ce161"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2a9f93f8439639dc244c4d2902abe35b0279102bca7bbcf119af964f51d53c19"}, + {file = "watchfiles-1.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9eea33ad8c418847dd296e61eb683cae1c63329b6d854aefcd412e12d94ee235"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:31f1a379c9dcbb3f09cf6be1b7e83b67c0e9faabed0471556d9438a4a4e14202"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ab594e75644421ae0a2484554832ca5895f8cab5ab62de30a1a57db460ce06c6"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc2eb5d14a8e0d5df7b36288979176fbb39672d45184fc4b1c004d7c3ce29317"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3f68d8e9d5a321163ddacebe97091000955a1b74cd43724e346056030b0bacee"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9ce064e81fe79faa925ff03b9f4c1a98b0bbb4a1b8c1b015afa93030cb21a49"}, + {file = "watchfiles-1.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b77d5622ac5cc91d21ae9c2b284b5d5c51085a0bdb7b518dba263d0af006132c"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:1941b4e39de9b38b868a69b911df5e89dc43767feeda667b40ae032522b9b5f1"}, + {file = "watchfiles-1.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:4f8c4998506241dedf59613082d1c18b836e26ef2a4caecad0ec41e2a15e4226"}, + {file = "watchfiles-1.0.4-cp311-cp311-win32.whl", hash = "sha256:4ebbeca9360c830766b9f0df3640b791be569d988f4be6c06d6fae41f187f105"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:05d341c71f3d7098920f8551d4df47f7b57ac5b8dad56558064c3431bdfc0b74"}, + {file = "watchfiles-1.0.4-cp311-cp311-win_arm64.whl", hash = "sha256:32b026a6ab64245b584acf4931fe21842374da82372d5c039cba6bf99ef722f3"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:229e6ec880eca20e0ba2f7e2249c85bae1999d330161f45c78d160832e026ee2"}, + {file = "watchfiles-1.0.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5717021b199e8353782dce03bd8a8f64438832b84e2885c4a645f9723bf656d9"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0799ae68dfa95136dde7c472525700bd48777875a4abb2ee454e3ab18e9fc712"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:43b168bba889886b62edb0397cab5b6490ffb656ee2fcb22dec8bfeb371a9e12"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb2c46e275fbb9f0c92e7654b231543c7bbfa1df07cdc4b99fa73bedfde5c844"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:857f5fc3aa027ff5e57047da93f96e908a35fe602d24f5e5d8ce64bf1f2fc733"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55ccfd27c497b228581e2838d4386301227fc0cb47f5a12923ec2fe4f97b95af"}, + {file = "watchfiles-1.0.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5c11ea22304d17d4385067588123658e9f23159225a27b983f343fcffc3e796a"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:74cb3ca19a740be4caa18f238298b9d472c850f7b2ed89f396c00a4c97e2d9ff"}, + {file = "watchfiles-1.0.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7cce76c138a91e720d1df54014a047e680b652336e1b73b8e3ff3158e05061e"}, + {file = "watchfiles-1.0.4-cp312-cp312-win32.whl", hash = "sha256:b045c800d55bc7e2cadd47f45a97c7b29f70f08a7c2fa13241905010a5493f94"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_amd64.whl", hash = "sha256:c2acfa49dd0ad0bf2a9c0bb9a985af02e89345a7189be1efc6baa085e0f72d7c"}, + {file = "watchfiles-1.0.4-cp312-cp312-win_arm64.whl", hash = "sha256:22bb55a7c9e564e763ea06c7acea24fc5d2ee5dfc5dafc5cfbedfe58505e9f90"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:8012bd820c380c3d3db8435e8cf7592260257b378b649154a7948a663b5f84e9"}, + {file = "watchfiles-1.0.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa216f87594f951c17511efe5912808dfcc4befa464ab17c98d387830ce07b60"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c9953cf85529c05b24705639ffa390f78c26449e15ec34d5339e8108c7c407"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7cf684aa9bba4cd95ecb62c822a56de54e3ae0598c1a7f2065d51e24637a3c5d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f44a39aee3cbb9b825285ff979ab887a25c5d336e5ec3574f1506a4671556a8d"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a38320582736922be8c865d46520c043bff350956dfc9fbaee3b2df4e1740a4b"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:39f4914548b818540ef21fd22447a63e7be6e24b43a70f7642d21f1e73371590"}, + {file = "watchfiles-1.0.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f12969a3765909cf5dc1e50b2436eb2c0e676a3c75773ab8cc3aa6175c16e902"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0986902677a1a5e6212d0c49b319aad9cc48da4bd967f86a11bde96ad9676ca1"}, + {file = "watchfiles-1.0.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:308ac265c56f936636e3b0e3f59e059a40003c655228c131e1ad439957592303"}, + {file = "watchfiles-1.0.4-cp313-cp313-win32.whl", hash = "sha256:aee397456a29b492c20fda2d8961e1ffb266223625346ace14e4b6d861ba9c80"}, + {file = "watchfiles-1.0.4-cp313-cp313-win_amd64.whl", hash = "sha256:d6097538b0ae5c1b88c3b55afa245a66793a8fec7ada6755322e465fb1a0e8cc"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:d3452c1ec703aa1c61e15dfe9d482543e4145e7c45a6b8566978fbb044265a21"}, + {file = "watchfiles-1.0.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7b75fee5a16826cf5c46fe1c63116e4a156924d668c38b013e6276f2582230f0"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e997802d78cdb02623b5941830ab06f8860038faf344f0d288d325cc9c5d2ff"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0611d244ce94d83f5b9aff441ad196c6e21b55f77f3c47608dcf651efe54c4a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9745a4210b59e218ce64c91deb599ae8775c8a9da4e95fb2ee6fe745fc87d01a"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4810ea2ae622add560f4aa50c92fef975e475f7ac4900ce5ff5547b2434642d8"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:740d103cd01458f22462dedeb5a3382b7f2c57d07ff033fbc9465919e5e1d0f3"}, + {file = "watchfiles-1.0.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdbd912a61543a36aef85e34f212e5d2486e7c53ebfdb70d1e0b060cc50dd0bf"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0bc80d91ddaf95f70258cf78c471246846c1986bcc5fd33ccc4a1a67fcb40f9a"}, + {file = "watchfiles-1.0.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ab0311bb2ffcd9f74b6c9de2dda1612c13c84b996d032cd74799adb656af4e8b"}, + {file = "watchfiles-1.0.4-cp39-cp39-win32.whl", hash = "sha256:02a526ee5b5a09e8168314c905fc545c9bc46509896ed282aeb5a8ba9bd6ca27"}, + {file = "watchfiles-1.0.4-cp39-cp39-win_amd64.whl", hash = "sha256:a5ae5706058b27c74bac987d615105da17724172d5aaacc6c362a40599b6de43"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:cdcc92daeae268de1acf5b7befcd6cfffd9a047098199056c72e4623f531de18"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d8d3d9203705b5797f0af7e7e5baa17c8588030aaadb7f6a86107b7247303817"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bdef5a1be32d0b07dcea3318a0be95d42c98ece24177820226b56276e06b63b0"}, + {file = "watchfiles-1.0.4-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:342622287b5604ddf0ed2d085f3a589099c9ae8b7331df3ae9845571586c4f3d"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:9fe37a2de80aa785d340f2980276b17ef697ab8db6019b07ee4fd28a8359d2f3"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9d1ef56b56ed7e8f312c934436dea93bfa3e7368adfcf3df4c0da6d4de959a1e"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b42cac65beae3a362629950c444077d1b44f1790ea2772beaea95451c086bb"}, + {file = "watchfiles-1.0.4-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5e0227b8ed9074c6172cf55d85b5670199c99ab11fd27d2c473aa30aec67ee42"}, + {file = "watchfiles-1.0.4.tar.gz", hash = "sha256:6ba473efd11062d73e4f00c2b730255f9c1bdd73cd5f9fe5b5da8dbd4a717205"}, ] [package.dependencies] @@ -1873,7 +2331,6 @@ anyio = ">=3.0.0" name = "webencodings" version = "0.5.1" description = "Character encoding aliases for legacy web content" -category = "main" optional = false python-versions = "*" files = [ @@ -1883,14 +2340,13 @@ files = [ [[package]] name = "werkzeug" -version = "2.3.6" +version = "3.0.3" description = "The comprehensive WSGI web application library." -category = "main" optional = false python-versions = ">=3.8" files = [ - {file = "Werkzeug-2.3.6-py3-none-any.whl", hash = "sha256:935539fa1413afbb9195b24880778422ed620c0fc09670945185cce4d91a8890"}, - {file = "Werkzeug-2.3.6.tar.gz", hash = "sha256:98c774df2f91b05550078891dee5f0eb0cb797a522c757a2452b9cee5b202330"}, + {file = "werkzeug-3.0.3-py3-none-any.whl", hash = "sha256:fc9645dc43e03e4d630d23143a04a7f947a9a3b5727cd535fdfe155a17cc48c8"}, + {file = "werkzeug-3.0.3.tar.gz", hash = "sha256:097e5bfda9f0aba8da6b8545146def481d06aa7d3266e7448e2cccf67dd8bd18"}, ] [package.dependencies] @@ -1899,11 +2355,89 @@ MarkupSafe = ">=2.1.1" [package.extras] watchdog = ["watchdog (>=2.3)"] +[[package]] +name = "wrapt" +version = "1.16.0" +description = "Module for decorators, wrappers and monkey patching." +optional = false +python-versions = ">=3.6" +files = [ + {file = "wrapt-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ffa565331890b90056c01db69c0fe634a776f8019c143a5ae265f9c6bc4bd6d4"}, + {file = "wrapt-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e4fdb9275308292e880dcbeb12546df7f3e0f96c6b41197e0cf37d2826359020"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb2dee3874a500de01c93d5c71415fcaef1d858370d405824783e7a8ef5db440"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2a88e6010048489cda82b1326889ec075a8c856c2e6a256072b28eaee3ccf487"}, + {file = "wrapt-1.16.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac83a914ebaf589b69f7d0a1277602ff494e21f4c2f743313414378f8f50a4cf"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:73aa7d98215d39b8455f103de64391cb79dfcad601701a3aa0dddacf74911d72"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:807cc8543a477ab7422f1120a217054f958a66ef7314f76dd9e77d3f02cdccd0"}, + {file = "wrapt-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bf5703fdeb350e36885f2875d853ce13172ae281c56e509f4e6eca049bdfb136"}, + {file = "wrapt-1.16.0-cp310-cp310-win32.whl", hash = "sha256:f6b2d0c6703c988d334f297aa5df18c45e97b0af3679bb75059e0e0bd8b1069d"}, + {file = "wrapt-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:decbfa2f618fa8ed81c95ee18a387ff973143c656ef800c9f24fb7e9c16054e2"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09"}, + {file = "wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43aa59eadec7890d9958748db829df269f0368521ba6dc68cc172d5d03ed8060"}, + {file = "wrapt-1.16.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72554a23c78a8e7aa02abbd699d129eead8b147a23c56e08d08dfc29cfdddca1"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:d2efee35b4b0a347e0d99d28e884dfd82797852d62fcd7ebdeee26f3ceb72cf3"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:6dcfcffe73710be01d90cae08c3e548d90932d37b39ef83969ae135d36ef3956"}, + {file = "wrapt-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:eb6e651000a19c96f452c85132811d25e9264d836951022d6e81df2fff38337d"}, + {file = "wrapt-1.16.0-cp311-cp311-win32.whl", hash = "sha256:66027d667efe95cc4fa945af59f92c5a02c6f5bb6012bff9e60542c74c75c362"}, + {file = "wrapt-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5eb404d89131ec9b4f748fa5cfb5346802e5ee8836f57d516576e61f304f3b7b"}, + {file = "wrapt-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:9090c9e676d5236a6948330e83cb89969f433b1943a558968f659ead07cb3b36"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:94265b00870aa407bd0cbcfd536f17ecde43b94fb8d228560a1e9d3041462d73"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2058f813d4f2b5e3a9eb2eb3faf8f1d99b81c3e51aeda4b168406443e8ba809"}, + {file = "wrapt-1.16.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98b5e1f498a8ca1858a1cdbffb023bfd954da4e3fa2c0cb5853d40014557248b"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:14d7dc606219cdd7405133c713f2c218d4252f2a469003f8c46bb92d5d095d81"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:49aac49dc4782cb04f58986e81ea0b4768e4ff197b57324dcbd7699c5dfb40b9"}, + {file = "wrapt-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:418abb18146475c310d7a6dc71143d6f7adec5b004ac9ce08dc7a34e2babdc5c"}, + {file = "wrapt-1.16.0-cp312-cp312-win32.whl", hash = "sha256:685f568fa5e627e93f3b52fda002c7ed2fa1800b50ce51f6ed1d572d8ab3e7fc"}, + {file = "wrapt-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:dcdba5c86e368442528f7060039eda390cc4091bfd1dca41e8046af7c910dda8"}, + {file = "wrapt-1.16.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:d462f28826f4657968ae51d2181a074dfe03c200d6131690b7d65d55b0f360f8"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a33a747400b94b6d6b8a165e4480264a64a78c8a4c734b62136062e9a248dd39"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3646eefa23daeba62643a58aac816945cadc0afaf21800a1421eeba5f6cfb9c"}, + {file = "wrapt-1.16.0-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ebf019be5c09d400cf7b024aa52b1f3aeebeff51550d007e92c3c1c4afc2a40"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:0d2691979e93d06a95a26257adb7bfd0c93818e89b1406f5a28f36e0d8c1e1fc"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:1acd723ee2a8826f3d53910255643e33673e1d11db84ce5880675954183ec47e"}, + {file = "wrapt-1.16.0-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:bc57efac2da352a51cc4658878a68d2b1b67dbe9d33c36cb826ca449d80a8465"}, + {file = "wrapt-1.16.0-cp36-cp36m-win32.whl", hash = "sha256:da4813f751142436b075ed7aa012a8778aa43a99f7b36afe9b742d3ed8bdc95e"}, + {file = "wrapt-1.16.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f6eac2360f2d543cc875a0e5efd413b6cbd483cb3ad7ebf888884a6e0d2e966"}, + {file = "wrapt-1.16.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a0ea261ce52b5952bf669684a251a66df239ec6d441ccb59ec7afa882265d593"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bd2d7ff69a2cac767fbf7a2b206add2e9a210e57947dd7ce03e25d03d2de292"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9159485323798c8dc530a224bd3ffcf76659319ccc7bbd52e01e73bd0241a0c5"}, + {file = "wrapt-1.16.0-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a86373cf37cd7764f2201b76496aba58a52e76dedfaa698ef9e9688bfd9e41cf"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:73870c364c11f03ed072dda68ff7aea6d2a3a5c3fe250d917a429c7432e15228"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:b935ae30c6e7400022b50f8d359c03ed233d45b725cfdd299462f41ee5ffba6f"}, + {file = "wrapt-1.16.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:db98ad84a55eb09b3c32a96c576476777e87c520a34e2519d3e59c44710c002c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win32.whl", hash = "sha256:9153ed35fc5e4fa3b2fe97bddaa7cbec0ed22412b85bcdaf54aeba92ea37428c"}, + {file = "wrapt-1.16.0-cp37-cp37m-win_amd64.whl", hash = "sha256:66dfbaa7cfa3eb707bbfcd46dab2bc6207b005cbc9caa2199bcbc81d95071a00"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1dd50a2696ff89f57bd8847647a1c363b687d3d796dc30d4dd4a9d1689a706f0"}, + {file = "wrapt-1.16.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:44a2754372e32ab315734c6c73b24351d06e77ffff6ae27d2ecf14cf3d229202"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e9723528b9f787dc59168369e42ae1c3b0d3fadb2f1a71de14531d321ee05b0"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbed418ba5c3dce92619656802cc5355cb679e58d0d89b50f116e4a9d5a9603e"}, + {file = "wrapt-1.16.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:941988b89b4fd6b41c3f0bfb20e92bd23746579736b7343283297c4c8cbae68f"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:6a42cd0cfa8ffc1915aef79cb4284f6383d8a3e9dcca70c445dcfdd639d51267"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:1ca9b6085e4f866bd584fb135a041bfc32cab916e69f714a7d1d397f8c4891ca"}, + {file = "wrapt-1.16.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:d5e49454f19ef621089e204f862388d29e6e8d8b162efce05208913dde5b9ad6"}, + {file = "wrapt-1.16.0-cp38-cp38-win32.whl", hash = "sha256:c31f72b1b6624c9d863fc095da460802f43a7c6868c5dda140f51da24fd47d7b"}, + {file = "wrapt-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:490b0ee15c1a55be9c1bd8609b8cecd60e325f0575fc98f50058eae366e01f41"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9b201ae332c3637a42f02d1045e1d0cccfdc41f1f2f801dafbaa7e9b4797bfc2"}, + {file = "wrapt-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2076fad65c6736184e77d7d4729b63a6d1ae0b70da4868adeec40989858eb3fb"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5cd603b575ebceca7da5a3a251e69561bec509e0b46e4993e1cac402b7247b8"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b47cfad9e9bbbed2339081f4e346c93ecd7ab504299403320bf85f7f85c7d46c"}, + {file = "wrapt-1.16.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8212564d49c50eb4565e502814f694e240c55551a5f1bc841d4fcaabb0a9b8a"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:5f15814a33e42b04e3de432e573aa557f9f0f56458745c2074952f564c50e664"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db2e408d983b0e61e238cf579c09ef7020560441906ca990fe8412153e3b291f"}, + {file = "wrapt-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:edfad1d29c73f9b863ebe7082ae9321374ccb10879eeabc84ba3b69f2579d537"}, + {file = "wrapt-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed867c42c268f876097248e05b6117a65bcd1e63b779e916fe2e33cd6fd0d3c3"}, + {file = "wrapt-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:eb1b046be06b0fce7249f1d025cd359b4b80fc1c3e24ad9eca33e0dcdb2e4a35"}, + {file = "wrapt-1.16.0-py3-none-any.whl", hash = "sha256:6906c4100a8fcbf2fa735f6059214bb13b97f75b1a61777fcf6432121ef12ef1"}, + {file = "wrapt-1.16.0.tar.gz", hash = "sha256:5f370f952971e7d17c7d1ead40e49f32345a7f7a5373571ef44d800d06b1899d"}, +] + [[package]] name = "wsproto" version = "1.2.0" description = "WebSockets state-machine based protocol implementation" -category = "main" optional = false python-versions = ">=3.7.0" files = [ @@ -1916,21 +2450,20 @@ h11 = ">=0.9.0,<1" [[package]] name = "zipp" -version = "3.15.0" +version = "3.20.0" description = "Backport of pathlib-compatible object wrapper for zip files" -category = "main" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, + {file = "zipp-3.20.0-py3-none-any.whl", hash = "sha256:58da6168be89f0be59beb194da1250516fdaa062ccebd30127ac65d30045e10d"}, + {file = "zipp-3.20.0.tar.gz", hash = "sha256:0145e43d89664cfe1a2e533adc75adafed82fe2da404b4bbb6b026c0157bdb31"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +test = ["big-O", "importlib-resources", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-ignore-flaky", "pytest-mypy", "pytest-ruff (>=0.2.1)"] [metadata] lock-version = "2.0" -python-versions = ">=3.9,<3.12" -content-hash = "ac9dbb5b28292c4a3dd2318a2f5c9120dfaa117ee834fac05995c5d0cbdc460d" +python-versions = ">=3.10,<3.14" +content-hash = "3f61efa57153b51d06808462a7cc3f2dc9a0d9132d1f35d47886a8af75243123" diff --git a/pyproject.toml b/pyproject.toml index 359923a0..d2e82441 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,7 @@ combine_as_imports = true # [tool.poetry] name = "aurweb" -version = "v6.2.7" +version = "v6.2.16" license = "GPL-2.0-only" description = "Source code for the Arch User Repository's website" homepage = "https://aur.archlinux.org" @@ -52,59 +52,67 @@ build-backend = "poetry.masonry.api" "Request Mailing List" = "https://lists.archlinux.org/listinfo/aur-requests" [tool.poetry.dependencies] -python = ">=3.9,<3.12" +python = ">=3.10,<3.14" # poetry-dynamic-versioning is used to produce tool.poetry.version # based on git tags. # General -aiofiles = "^23.1.0" -asgiref = "^3.6.0" -bcrypt = "^4.0.1" -bleach = "^6.0.0" -email-validator = "^2.0.0-post.0" -fakeredis = "^2.11.2" -feedgen = "^0.9.0" -httpx = "^0.24.0" +aiofiles = "^24.0.0" +asgiref = "^3.8.1" +bcrypt = "^4.1.2" +bleach = "^6.1.0" +email-validator = "^2.1.1" +fakeredis = "^2.21.3" +feedgen = "^1.0.0" +httpx = "^0.27.0" itsdangerous = "^2.1.2" -lxml = "^4.9.2" -orjson = "^3.8.11" -protobuf = "^4.22.4" -pygit2 = "^1.12.0" -python-multipart = "^0.0.6" -redis = "^4.5.4" -requests = "^2.30.0" +lxml = "^5.2.1" +orjson = "^3.10.0" +pygit2 = "^1.17.0" +python-multipart = "0.0.19" +redis = "^5.0.3" +requests = "^2.31.0" paginate = "^0.5.6" # SQL -alembic = "^1.10.4" -mysqlclient = "^2.1.1" -Authlib = "^1.2.0" -Jinja2 = "^3.1.2" -Markdown = "^3.4.3" -Werkzeug = "^2.3.3" -SQLAlchemy = "^1.4.48" +alembic = "^1.13.1" +mysqlclient = "^2.2.3" +Authlib = "^1.3.0" +Jinja2 = "^3.1.3" +Markdown = "^3.6" +Werkzeug = "^3.0.2" +SQLAlchemy = "^1.4.52" +greenlet = "3.1.1" # Explicitly add greenlet (dependency of SQLAlchemy) for python 3.13 support # ASGI -uvicorn = "^0.23.0" -gunicorn = "^21.0.0" -Hypercorn = "^0.14.3" -prometheus-fastapi-instrumentator = "^6.0.0" -pytest-xdist = "^3.2.1" -filelock = "^3.12.0" +uvicorn = "^0.30.0" +gunicorn = "^22.0.0" +Hypercorn = "^0.17.0" +pytest-xdist = "^3.5.0" +filelock = "^3.13.3" posix-ipc = "^1.1.1" pyalpm = "^0.10.6" -fastapi = "^0.100.0" +fastapi = "^0.112.0" srcinfo = "^0.1.2" -tomlkit = "^0.12.0" +tomlkit = "^0.13.0" + +# Tracing +prometheus-fastapi-instrumentator = "^7.0.0" +opentelemetry-api = "^1.26.0" +opentelemetry-sdk = "^1.26.0" +opentelemetry-exporter-otlp-proto-http = "^1.26.0" +opentelemetry-instrumentation-fastapi = "^0.47b0" +opentelemetry-instrumentation-redis = "^0.47b0" +opentelemetry-instrumentation-sqlalchemy = "^0.47b0" [tool.poetry.dev-dependencies] -coverage = "^7.2.5" -pytest = "^7.3.1" -pytest-asyncio = "^0.21.0" -pytest-cov = "^4.0.0" -pytest-tap = "^3.3" -watchfiles = "^0.19.0" +coverage = "^7.4.4" +pytest = "^8.1.1" +pytest-asyncio = "^0.23.0" +pytest-cov = "^5.0.0" +pytest-tap = "^3.4" +watchfiles = "^1.0.4" [tool.poetry.scripts] aurweb-git-auth = "aurweb.git.auth:main" @@ -116,7 +124,7 @@ aurweb-notify = "aurweb.scripts.notify:main" aurweb-pkgmaint = "aurweb.scripts.pkgmaint:main" aurweb-popupdate = "aurweb.scripts.popupdate:main" aurweb-rendercomment = "aurweb.scripts.rendercomment:main" -aurweb-tuvotereminder = "aurweb.scripts.tuvotereminder:main" +aurweb-votereminder = "aurweb.scripts.votereminder:main" aurweb-usermaint = "aurweb.scripts.usermaint:main" aurweb-config = "aurweb.scripts.config:main" aurweb-adduser = "aurweb.scripts.adduser:main" diff --git a/renovate.json b/renovate.json index b6721721..6843bc00 100644 --- a/renovate.json +++ b/renovate.json @@ -8,6 +8,10 @@ { "groupName": "fastapi", "matchPackageNames": ["fastapi"] + }, + { + "matchPackageNames": ["python"], + "enabled": false } ] } diff --git a/schema/gendummydata.py b/schema/gendummydata.py index dfc8eee5..a5c30170 100755 --- a/schema/gendummydata.py +++ b/schema/gendummydata.py @@ -15,7 +15,7 @@ import os import random import sys import time -from datetime import datetime +from datetime import UTC, datetime import bcrypt @@ -26,7 +26,7 @@ PKG_ID = 1 # Packages.ID of first package # how many users to 'register' MAX_USERS = int(os.environ.get("MAX_USERS", 38000)) MAX_DEVS = 0.1 # what percentage of MAX_USERS are Developers -MAX_TUS = 0.2 # what percentage of MAX_USERS are Trusted Users +MAX_PMS = 0.2 # what percentage of MAX_USERS are Package Maintainers # how many packages to load MAX_PKGS = int(os.environ.get("MAX_PKGS", 32000)) PKG_DEPS = (1, 15) # min/max depends a package has @@ -35,9 +35,9 @@ PKG_SRC = (1, 3) # min/max sources a package has PKG_CMNTS = (1, 5) # min/max number of comments a package has CATEGORIES_COUNT = 17 # the number of categories from aur-schema VOTING = (0, 0.001) # percentage range for package voting -# number of open trusted user proposals +# number of open package maintainer proposals OPEN_PROPOSALS = int(os.environ.get("OPEN_PROPOSALS", 15)) -# number of closed trusted user proposals +# number of closed package maintainer proposals CLOSE_PROPOSALS = int(os.environ.get("CLOSE_PROPOSALS", 50)) RANDOM_TLDS = ("edu", "com", "org", "net", "tw", "ru", "pl", "de", "es") RANDOM_URL = ("http://www.", "ftp://ftp.", "http://", "ftp://") @@ -153,12 +153,12 @@ while len(seen_pkgs) < MAX_PKGS: # contents = None -# developer/tu IDs +# developer/PM IDs # developers = [] -trustedusers = [] +packagemaintainers = [] has_devs = 0 -has_tus = 0 +has_pms = 0 # Just let python throw the errors if any happen # @@ -170,7 +170,7 @@ out.write("BEGIN;\n") log.debug("Creating SQL statements for users.") for u in user_keys: account_type = 1 # default to normal user - if not has_devs or not has_tus: + if not has_devs or not has_pms: account_type = random.randrange(1, 4) if account_type == 3 and not has_devs: # this will be a dev account @@ -178,12 +178,12 @@ for u in user_keys: developers.append(seen_users[u]) if len(developers) >= MAX_DEVS * MAX_USERS: has_devs = 1 - elif account_type == 2 and not has_tus: - # this will be a trusted user account + elif account_type == 2 and not has_pms: + # this will be a package maintainer account # - trustedusers.append(seen_users[u]) - if len(trustedusers) >= MAX_TUS * MAX_USERS: - has_tus = 1 + packagemaintainers.append(seen_users[u]) + if len(packagemaintainers) >= MAX_PMS * MAX_USERS: + has_pms = 1 else: # a normal user account # @@ -205,8 +205,10 @@ for u in user_keys: out.write(s) log.debug("Number of developers: %d" % len(developers)) -log.debug("Number of trusted users: %d" % len(trustedusers)) -log.debug("Number of users: %d" % (MAX_USERS - len(developers) - len(trustedusers))) +log.debug("Number of package maintainers: %d" % len(packagemaintainers)) +log.debug( + "Number of users: %d" % (MAX_USERS - len(developers) - len(packagemaintainers)) +) log.debug("Number of packages: %d" % MAX_PKGS) log.debug("Gathering text from fortune file...") @@ -224,8 +226,8 @@ for p in list(seen_pkgs.keys()): muid = developers[random.randrange(0, len(developers))] puid = developers[random.randrange(0, len(developers))] else: - muid = trustedusers[random.randrange(0, len(trustedusers))] - puid = trustedusers[random.randrange(0, len(trustedusers))] + muid = packagemaintainers[random.randrange(0, len(packagemaintainers))] + puid = packagemaintainers[random.randrange(0, len(packagemaintainers))] if count % 20 == 0: # every so often, there are orphans... muid = "NULL" @@ -261,7 +263,7 @@ for p in list(seen_pkgs.keys()): out.write(s) # Cast votes -utcnow = int(datetime.utcnow().timestamp()) +utcnow = int(datetime.now(UTC).timestamp()) track_votes = {} log.debug("Casting votes for packages.") @@ -337,9 +339,9 @@ for p in seen_pkgs_keys: s = s % (seen_pkgs[p], src) out.write(s) -# Create trusted user proposals +# Create package maintainer proposals # -log.debug("Creating SQL statements for trusted user proposals.") +log.debug("Creating SQL statements for package maintainer proposals.") count = 0 for t in range(0, OPEN_PROPOSALS + CLOSE_PROPOSALS): now = int(time.time()) @@ -353,9 +355,9 @@ for t in range(0, OPEN_PROPOSALS + CLOSE_PROPOSALS): user = "" else: user = user_keys[random.randrange(0, len(user_keys))] - suid = trustedusers[random.randrange(0, len(trustedusers))] + suid = packagemaintainers[random.randrange(0, len(packagemaintainers))] s = ( - "INSERT INTO TU_VoteInfo (Agenda, User, Submitted, End," + "INSERT INTO VoteInfo (Agenda, User, Submitted, End," " Quorum, SubmitterID) VALUES ('%s', '%s', %d, %d, 0.0, %d);\n" ) s = s % (genFortune(), user, start, end, suid) diff --git a/static/css/archweb.css b/static/css/archweb.css index 0c0b235d..2d0728c4 100644 --- a/static/css/archweb.css +++ b/static/css/archweb.css @@ -1044,7 +1044,7 @@ table td.country { stroke-width: 1.5px; } -/* dev/TU biographies */ +/* dev/PM biographies */ #arch-bio-toc { width: 75%; margin: 0 auto; diff --git a/static/html/cgit/header.html b/static/html/cgit/header.html index 2d418702..c5ef0f6b 100644 --- a/static/html/cgit/header.html +++ b/static/html/cgit/header.html @@ -6,7 +6,7 @@
  • Packages
  • Forums
  • Wiki
  • -
  • Bugs
  • +
  • GitLab
  • Security
  • AUR
  • Download
  • diff --git a/templates/account/search.html b/templates/account/search.html index d28d4169..325ef0ba 100644 --- a/templates/account/search.html +++ b/templates/account/search.html @@ -20,9 +20,9 @@

    diff --git a/templates/addvote.html b/templates/addvote.html index 8777cbf3..cc12f42b 100644 --- a/templates/addvote.html +++ b/templates/addvote.html @@ -19,26 +19,26 @@

    + + + {% endif %} + {% endif %}

  • - - {{ "Flag package out-of-date" | tr }} - -
  • - {% else %} -
  • - - - {{ - "Flagged out-of-date (%s)" - | tr | format(date_strftime(pkgbase.OutOfDateTS, "%Y-%m-%d")) - }} - - -
  • - {% if request.user.has_credential(creds.PKGBASE_UNFLAG, approved=unflaggers) %} -
  • -
    - + {% if not voted %} + +
    + {% else %} +
    + +
    + {% endif %} +
  • +
  • + {% if notified %} +
    + +
    + {% else %} +
    + +
    + {% endif %}
  • - {% endif %} {% endif %} -
  • - {% if not voted %} -
    - -
    - {% else %} -
    - -
    - {% endif %} -
  • -
  • - {% if notified %} -
    - -
    - {% else %} -
    - -
    - {% endif %} -
  • {% if request.user.has_credential(creds.PKGBASE_EDIT_COMAINTAINERS, approved=[pkgbase.Maintainer]) %}
  • @@ -111,11 +113,13 @@
  • {% endif %} {% endif %} -
  • - - {{ "Submit Request" | tr }} - -
  • + {% if request.user.is_authenticated() %} +
  • + + {{ "Submit Request" | tr }} + +
  • + {% endif %} {% if request.user.has_credential(creds.PKGBASE_DELETE) %}
  • diff --git a/templates/partials/packages/comment_form.html b/templates/partials/packages/comment_form.html index bf9a14d0..cecc496e 100644 --- a/templates/partials/packages/comment_form.html +++ b/templates/partials/packages/comment_form.html @@ -21,12 +21,15 @@ Routes: | format('', "") | safe }} +
    + {{ "Maximum number of characters" | tr }}: {{ max_chars_comment }}.

    diff --git a/templates/partials/packages/details.html b/templates/partials/packages/details.html index 697ef724..5f242414 100644 --- a/templates/partials/packages/details.html +++ b/templates/partials/packages/details.html @@ -68,6 +68,12 @@ {{ licenses.all() | join(', ', attribute='License.Name') }} {% endif %} + {% if show_package_details and groups and groups.count() %} + + {{ "Groups" | tr }}: + {{ groups.all() | join(', ', attribute='Group.Name') }} + + {% endif %} {% if show_package_details and conflicts and conflicts.count() %} {{ "Conflicts" | tr }}: diff --git a/templates/partials/packages/package_metadata.html b/templates/partials/packages/package_metadata.html index 50d38b48..2dd39c20 100644 --- a/templates/partials/packages/package_metadata.html +++ b/templates/partials/packages/package_metadata.html @@ -14,12 +14,15 @@ {% endif %} {{ dep.DepName }} - {% if broken %} + {%- if broken %} {% if not provides %} {% endif %} - {% else %} + {% else -%} + {%- if dep.DepName in dependencies_names_from_aur -%} + AUR + {% endif %} {% endif %} {% if provides %} diff --git a/templates/partials/packages/search_actions.html b/templates/partials/packages/search_actions.html index f28e27a9..c84ad93a 100644 --- a/templates/partials/packages/search_actions.html +++ b/templates/partials/packages/search_actions.html @@ -4,7 +4,7 @@ - {% if request.user.is_trusted_user() or request.user.is_developer() %} + {% if request.user.is_package_maintainer() or request.user.is_developer() %} {% endif %} diff --git a/templates/partials/packages/statistics.html b/templates/partials/packages/statistics.html index 8a6546b9..7ce5fba1 100644 --- a/templates/partials/packages/statistics.html +++ b/templates/partials/packages/statistics.html @@ -42,9 +42,9 @@ - {{ "Trusted Users" | tr }} + {{ "Package Maintainers" | tr }} - {{ trusted_user_count }} + {{ package_maintainer_count }} diff --git a/templates/partials/support.html b/templates/partials/support.html index a2890cc5..b175a040 100644 --- a/templates/partials/support.html +++ b/templates/partials/support.html @@ -10,7 +10,7 @@

    • {% trans %}Orphan Request{% endtrans %}: {% trans %}Request a package to be disowned, e.g. when the maintainer is inactive and the package has been flagged out-of-date for a long time.{% endtrans %}
    • -
    • {% trans %}Deletion Request{% endtrans %}: {%trans %}Request a package to be removed from the Arch User Repository. Please do not use this if a package is broken and can be fixed easily. Instead, contact the package maintainer and file orphan request if necessary.{% endtrans %}
    • +
    • {% trans %}Deletion Request{% endtrans %}: {%trans %}Request a package to be removed from the Arch User Repository. Please do not use this if a package is broken and can be fixed easily. Instead, contact the maintainer and file orphan request if necessary.{% endtrans %}
    • {% trans %}Merge Request{% endtrans %}: {% trans %}Request a package to be merged into another one. Can be used when a package needs to be renamed or replaced by a split package.{% endtrans %}

    @@ -44,7 +44,7 @@

    {% trans %}Discussion{% endtrans %}

    - {{ "General discussion regarding the Arch User Repository (AUR) and Trusted User structure takes place on %saur-general%s. For discussion relating to the development of the AUR web interface, use the %saur-dev%s mailing list." + {{ "General discussion regarding the Arch User Repository (AUR) and Package Maintainer structure takes place on %saur-general%s. For discussion relating to the development of the AUR web interface, use the %saur-dev%s mailing list." | tr | format('', "", '', "") @@ -55,7 +55,7 @@

    {% trans %}Bug Reporting{% endtrans %}

    - {{ "If you find a bug in the AUR web interface, please fill out a bug report on our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface %sonly%s. To report packaging bugs contact the package maintainer or leave a comment on the appropriate package page." + {{ "If you find a bug in the AUR web interface, please fill out a bug report on our %sbug tracker%s. Use the tracker to report bugs in the AUR web interface %sonly%s. To report packaging bugs contact the maintainer or leave a comment on the appropriate package page." | tr | format('', "", "", "") diff --git a/templates/pkgbase/comments/edit.html b/templates/pkgbase/comments/edit.html index f938287e..0d4ec28a 100644 --- a/templates/pkgbase/comments/edit.html +++ b/templates/pkgbase/comments/edit.html @@ -24,13 +24,17 @@ "" ) | safe }} +
    + {{ "Maximum number of characters" | tr }}: {{ max_chars_comment }}.

    + rows="10" + maxlength="{{ max_chars_comment }}" + >{{ comment.Comments }}

    diff --git a/templates/pkgbase/delete.html b/templates/pkgbase/delete.html index 5bd74b72..defcf58f 100644 --- a/templates/pkgbase/delete.html +++ b/templates/pkgbase/delete.html @@ -50,7 +50,7 @@

    diff --git a/templates/pkgbase/disown.html b/templates/pkgbase/disown.html index 1aedde4f..c01398c8 100644 --- a/templates/pkgbase/disown.html +++ b/templates/pkgbase/disown.html @@ -55,6 +55,7 @@

    diff --git a/templates/pkgbase/flag.html b/templates/pkgbase/flag.html index 0335cf18..11d33029 100644 --- a/templates/pkgbase/flag.html +++ b/templates/pkgbase/flag.html @@ -60,7 +60,8 @@ + cols="50" + maxlength="{{ max_chars_comment }}">

    diff --git a/templates/pkgbase/merge.html b/templates/pkgbase/merge.html index 981bd649..4b32da87 100644 --- a/templates/pkgbase/merge.html +++ b/templates/pkgbase/merge.html @@ -52,6 +52,7 @@

    diff --git a/templates/pkgbase/request.html b/templates/pkgbase/request.html index 61654a49..1e3d8c19 100644 --- a/templates/pkgbase/request.html +++ b/templates/pkgbase/request.html @@ -64,13 +64,14 @@

    + rows="5" cols="50" + maxlength="{{ max_chars_comment }}">{{ comments or '' }}

    {{ - "By submitting a deletion request, you ask a Trusted " - "User to delete the package base. This type of " + "By submitting a deletion request, you ask a Package " + "Maintainer to delete the package base. This type of " "request should be used for duplicates, software " "abandoned by upstream, as well as illegal and " "irreparably broken packages." | tr @@ -79,8 +80,8 @@

    + rows="5" cols="50" maxlength="{{ max_chars_comment }}" + >

    diff --git a/test/conftest.py b/test/conftest.py index 15a982aa..da24ed81 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -37,13 +37,14 @@ then clears the database for each test function run in that module. It is done this way because migration has a large cost; migrating ahead of each function takes too long when compared to this method. """ + import os import pathlib from multiprocessing import Lock import py import pytest -from posix_ipc import O_CREAT, Semaphore +from prometheus_client import values from sqlalchemy import create_engine from sqlalchemy.engine import URL from sqlalchemy.engine.base import Engine @@ -54,14 +55,17 @@ import aurweb.config import aurweb.db from aurweb import aur_logging, initdb, testing from aurweb.testing.email import Email -from aurweb.testing.filelock import FileLock from aurweb.testing.git import GitRepository +from aurweb.testing.prometheus import clear_metrics logger = aur_logging.get_logger(__name__) # Synchronization lock for database setup. setup_lock = Lock() +# Disable prometheus multiprocess mode for tests +values.ValueClass = values.MutexValue + def test_engine() -> Engine: """ @@ -133,20 +137,16 @@ def _drop_database(engine: Engine, dbname: str) -> None: def setup_email(): - # TODO: Fix this data race! This try/catch is ugly; why is it even - # racing here? Perhaps we need to multiproc + multithread lock - # inside of setup_database to block the check? - with Semaphore("/test-emails", flags=O_CREAT, initial_value=1): - if not os.path.exists(Email.TEST_DIR): - # Create the directory. - os.makedirs(Email.TEST_DIR) + if not os.path.exists(Email.TEST_DIR): + # Create the directory. + os.makedirs(Email.TEST_DIR, exist_ok=True) - # Cleanup all email files for this test suite. - prefix = Email.email_prefix(suite=True) - files = os.listdir(Email.TEST_DIR) - for file in files: - if file.startswith(prefix): - os.remove(os.path.join(Email.TEST_DIR, file)) + # Cleanup all email files for this test suite. + prefix = Email.email_prefix(suite=True) + files = os.listdir(Email.TEST_DIR) + for file in files: + if file.startswith(prefix): + os.remove(os.path.join(Email.TEST_DIR, file)) @pytest.fixture(scope="module") @@ -155,20 +155,8 @@ def setup_database(tmp_path_factory: pathlib.Path, worker_id: str) -> None: engine = test_engine() dbname = aurweb.db.name() - if worker_id == "master": # pragma: no cover - # If we're not running tests through multiproc pytest-xdist. - setup_email() - yield _create_database(engine, dbname) - _drop_database(engine, dbname) - return - - def setup(path): - setup_email() - _create_database(engine, dbname) - - tmpdir = tmp_path_factory.getbasetemp().parent - file_lock = FileLock(tmpdir, dbname) - file_lock.lock(on_create=setup) + setup_email() + _create_database(engine, dbname) yield # Run the test function depending on this fixture. _drop_database(engine, dbname) # Cleanup the database. @@ -224,3 +212,13 @@ def email_test() -> None: that we set them up to be used via aurweb.testing.email.Email. """ setup_email() + + +@pytest.fixture +def prometheus_test(): + """ + Prometheus test fixture + + Removes any existing values from our metrics + """ + clear_metrics() diff --git a/test/setup.sh b/test/setup.sh index ccf24086..33238533 100644 --- a/test/setup.sh +++ b/test/setup.sh @@ -11,7 +11,7 @@ GIT_AUTH="$TOPLEVEL/aurweb/git/auth.py" GIT_SERVE="$TOPLEVEL/aurweb/git/serve.py" GIT_UPDATE="$TOPLEVEL/aurweb/git/update.py" MKPKGLISTS="$TOPLEVEL/aurweb/scripts/mkpkglists.py" -TUVOTEREMINDER="$TOPLEVEL/aurweb/scripts/tuvotereminder.py" +VOTEREMINDER="$TOPLEVEL/aurweb/scripts/votereminder.py" PKGMAINT="$TOPLEVEL/aurweb/scripts/pkgmaint.py" USERMAINT="$TOPLEVEL/aurweb/scripts/usermaint.py" AURBLUP="$TOPLEVEL/aurweb/scripts/aurblup.py" @@ -98,9 +98,9 @@ AUTH_KEYTYPE_USER=ssh-rsa AUTH_KEYTEXT_USER=AAAAB3NzaC1yc2EAAAADAQABAAABAQCeUafDK4jqUiRHNQfwHcYjBKLZ4Rc1sNUofHApBP6j91nIvDHZe2VUqeBmFUhBz7kXK4VbXD9nlHMun2HeshL8hXnMzymZ8Wk7+IKefj61pajJkIdttw9Tnayfg7uhg5RbFy9zpEjmGjnIVjSzOXKCwppNT+CNujpKM5FD8gso/Z+l3fD+IwrPwS1SzF1Z99nqI9n2FM/JWZqluvTqnW9WdAvBDfutXxp0R5ZiLI5TAKL2Ssp5rpL70pkLXhv+9sK545zKKlXUFmw6Pi2iVBdqdRsk9ocl49dLiNIh8CYDCO3CRQn+8EnpBhTor2TKQxGJI3mzoBwWJJxoKhD/XlYJ AUTH_FINGERPRINT_USER=SHA256:F/OFtYAy0JCytAGUi4RUZnOsThhQtFMK7fH1YvFBCpo -AUTH_KEYTYPE_TU=ssh-rsa -AUTH_KEYTEXT_TU=AAAAB3NzaC1yc2EAAAADAQABAAABAQC4Q2Beg6jf2r1LZ4vwT5y10dK8+/c5RaNyTwv77wF2OSLXh32xW0ovhE2lW2gqoakdGsxgM2fTtqMTl29WOsAxlGF7x9XbWhFXFUT88Daq1fAeuihkiRjfBbInSW/WcrFZ+biLBch67addtfkkd4PmAafDeeCtszAXqza+ltBG1oxAGiTXgI3LOhA1/GtLLxsi5sPUO3ZlhvwDn4Sy0aXYx8l9hop/PU4Cjn82hyRa9r+SRxQ3KtjKxcVMnZ8IyXOrBwXTukgSBR/6nSdEmO0JPkYUFuNwh3UGFKuNkrPguL5T+4YDym6czYmZJzQ7NNl2pLKYmYgBwBe5rORlWfN5 -AUTH_FINGERPRINT_TU=SHA256:xQGC6j/U1Q3NDXLl04pm+Shr1mjYUXbGMUzlm9vby4k +AUTH_KEYTYPE_PM=ssh-rsa +AUTH_KEYTEXT_PM=AAAAB3NzaC1yc2EAAAADAQABAAABAQC4Q2Beg6jf2r1LZ4vwT5y10dK8+/c5RaNyTwv77wF2OSLXh32xW0ovhE2lW2gqoakdGsxgM2fTtqMTl29WOsAxlGF7x9XbWhFXFUT88Daq1fAeuihkiRjfBbInSW/WcrFZ+biLBch67addtfkkd4PmAafDeeCtszAXqza+ltBG1oxAGiTXgI3LOhA1/GtLLxsi5sPUO3ZlhvwDn4Sy0aXYx8l9hop/PU4Cjn82hyRa9r+SRxQ3KtjKxcVMnZ8IyXOrBwXTukgSBR/6nSdEmO0JPkYUFuNwh3UGFKuNkrPguL5T+4YDym6czYmZJzQ7NNl2pLKYmYgBwBe5rORlWfN5 +AUTH_FINGERPRINT_PM=SHA256:xQGC6j/U1Q3NDXLl04pm+Shr1mjYUXbGMUzlm9vby4k AUTH_KEYTYPE_MISSING=sha-rsa AUTH_KEYTEXT_MISSING=AAAAB3NzaC1yc2EAAAADAQABAAABAQC9UTpssBunuTBCT3KFtv+yb+cN0VmI2C9O9U7wHlkEZWxNBK8is6tnDHXBxRuvRk0LHILkTidLLFX22ZF0+TFgSz7uuEvGZVNpa2Fn2+vKJJYMvZEvb/f8VHF5/Jddt21VOyu23royTN/duiT7WIZdCtEmq5C9Y43NPfsB8FbUc+FVSYT2Lq7g1/bzvFF+CZxwCrGjC3qC7p3pshICfFR8bbWgRN33ClxIQ7MvkcDtfNu38dLotJqdfEa7NdQgba5/S586f1A4OWKc/mQJFyTaGhRBxw/cBSjqonvO0442VYLHFxlrTHoUunKyOJ8+BJfKgjWmfENC9ESY3mL/IEn5 @@ -116,17 +116,17 @@ export SSH_CLIENT SSH_CONNECTION SSH_TTY python -m aurweb.initdb --no-alembic echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (1, 'user', '!', 'user@localhost', 'en', 1);" | sqlite3 aur.db -echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (2, 'tu', '!', 'tu@localhost', 'en', 2);" | sqlite3 aur.db +echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (2, 'pm', '!', 'pm@localhost', 'en', 2);" | sqlite3 aur.db echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (3, 'dev', '!', 'dev@localhost', 'en', 3);" | sqlite3 aur.db echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (4, 'user2', '!', 'user2@localhost', 'en', 1);" | sqlite3 aur.db echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (5, 'user3', '!', 'user3@localhost', 'en', 1);" | sqlite3 aur.db echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (6, 'user4', '!', 'user4@localhost', 'en', 1);" | sqlite3 aur.db -echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (7, 'tu2', '!', 'tu2@localhost', 'en', 2);" | sqlite3 aur.db -echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (8, 'tu3', '!', 'tu3@localhost', 'en', 2);" | sqlite3 aur.db -echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (9, 'tu4', '!', 'tu4@localhost', 'en', 2);" | sqlite3 aur.db +echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (7, 'pm2', '!', 'pm2@localhost', 'en', 2);" | sqlite3 aur.db +echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (8, 'pm3', '!', 'pm3@localhost', 'en', 2);" | sqlite3 aur.db +echo "INSERT INTO Users (ID, UserName, Passwd, Email, LangPreference, AccountTypeID) VALUES (9, 'pm4', '!', 'pm4@localhost', 'en', 2);" | sqlite3 aur.db echo "INSERT INTO SSHPubKeys (UserID, Fingerprint, PubKey) VALUES (1, '$AUTH_FINGERPRINT_USER', '$AUTH_KEYTYPE_USER $AUTH_KEYTEXT_USER');" | sqlite3 aur.db -echo "INSERT INTO SSHPubKeys (UserID, Fingerprint, PubKey) VALUES (2, '$AUTH_FINGERPRINT_TU', '$AUTH_KEYTYPE_TU $AUTH_KEYTEXT_TU');" | sqlite3 aur.db +echo "INSERT INTO SSHPubKeys (UserID, Fingerprint, PubKey) VALUES (2, '$AUTH_FINGERPRINT_PM', '$AUTH_KEYTYPE_PM $AUTH_KEYTEXT_PM');" | sqlite3 aur.db echo "INSERT INTO Bans (IPAddress, BanTS) VALUES ('1.3.3.7', 0);" | sqlite3 aur.db @@ -223,5 +223,40 @@ export GIT_COMMITTER_EMAIL GIT_COMMITTER_NAME git add PKGBUILD .SRCINFO git commit -q -m 'Initial import' + git checkout -q --orphan refs/namespaces/forbidden/refs/heads/master + + cat >PKGBUILD <<-EOF + pkgname=foobar3 + pkgver=1 + pkgrel=1 + pkgdesc='aurweb test package.' + url='https://aur.archlinux.org/' + license=('MIT') + arch=('any') + depends=('python-pygit2') + source=() + md5sums=() + + package() { + echo 'Hello world!' + } + EOF + + cat >.SRCINFO <<-EOF + pkgbase = forbidden + pkgdesc = aurweb test package. + pkgver = 1 + pkgrel = 1 + url = https://aur.archlinux.org/ + arch = any + license = MIT + depends = python-pygit2 + + pkgname = foobar3 + EOF + + git add PKGBUILD .SRCINFO + git commit -q -m 'Initial import' + git checkout -q refs/namespaces/foobar/refs/heads/master ) diff --git a/test/t1100-git-auth.t b/test/t1100-git-auth.t index e29bccdd..b968f9bb 100755 --- a/test/t1100-git-auth.t +++ b/test/t1100-git-auth.t @@ -11,9 +11,9 @@ test_expect_success 'Test basic authentication.' ' grep -q AUR_PRIVILEGED=0 out ' -test_expect_success 'Test Trusted User authentication.' ' - cover "$GIT_AUTH" "$AUTH_KEYTYPE_TU" "$AUTH_KEYTEXT_TU" >out && - grep -q AUR_USER=tu out && +test_expect_success 'Test Package Maintainer authentication.' ' + cover "$GIT_AUTH" "$AUTH_KEYTYPE_PM" "$AUTH_KEYTEXT_PM" >out && + grep -q AUR_USER=pm out && grep -q AUR_PRIVILEGED=1 out ' diff --git a/test/t1200-git-serve.t b/test/t1200-git-serve.t index bb3a004f..a2566bd4 100755 --- a/test/t1200-git-serve.t +++ b/test/t1200-git-serve.t @@ -124,14 +124,14 @@ test_expect_success "Try to push to someone else's repository." ' cover "$GIT_SERVE" 2>&1 ' -test_expect_success "Try to push to someone else's repository as Trusted User." ' +test_expect_success "Try to push to someone else's repository as Package Maintainer." ' cat >expected <<-EOF && - tu + pm foobar foobar EOF SSH_ORIGINAL_COMMAND="git-receive-pack /foobar.git/" \ - AUR_USER=tu AUR_PRIVILEGED=1 \ + AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual ' @@ -163,16 +163,16 @@ test_expect_success "Try to restore an existing package base." ' ' test_expect_success "Disown all package bases." ' - SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && - SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && EOF SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=user AUR_PRIVILEGED=0 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual && - SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual ' @@ -195,13 +195,13 @@ test_expect_success "Adopt an already adopted package base." ' cover "$GIT_SERVE" 2>&1 ' -test_expect_success "Adopt a package base as a Trusted User." ' - SSH_ORIGINAL_COMMAND="adopt foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ +test_expect_success "Adopt a package base as a Package Maintainer." ' + SSH_ORIGINAL_COMMAND="adopt foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && *foobar2 EOF - SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual ' @@ -216,18 +216,18 @@ test_expect_success "Disown one's own package base as a regular user." ' test_cmp expected actual ' -test_expect_success "Disown one's own package base as a Trusted User." ' - SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ +test_expect_success "Disown one's own package base as a Package Maintainer." ' + SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && EOF - SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual ' test_expect_success "Try to steal another user's package as a regular user." ' - SSH_ORIGINAL_COMMAND="adopt foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="adopt foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && test_must_fail \ env SSH_ORIGINAL_COMMAND="adopt foobar2" \ @@ -241,17 +241,17 @@ test_expect_success "Try to steal another user's package as a regular user." ' cat >expected <<-EOF && *foobar2 EOF - SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual && - SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 ' -test_expect_success "Try to steal another user's package as a Trusted User." ' +test_expect_success "Try to steal another user's package as a Package Maintainer." ' SSH_ORIGINAL_COMMAND="adopt foobar" AUR_USER=user AUR_PRIVILEGED=0 \ cover "$GIT_SERVE" 2>&1 && - SSH_ORIGINAL_COMMAND="adopt foobar" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="adopt foobar" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && EOF @@ -261,15 +261,15 @@ test_expect_success "Try to steal another user's package as a Trusted User." ' cat >expected <<-EOF && foobar EOF - SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual && - SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 ' test_expect_success "Try to disown another user's package as a regular user." ' - SSH_ORIGINAL_COMMAND="adopt foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="adopt foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && test_must_fail \ env SSH_ORIGINAL_COMMAND="disown foobar2" \ @@ -278,24 +278,24 @@ test_expect_success "Try to disown another user's package as a regular user." ' cat >expected <<-EOF && *foobar2 EOF - SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual && - SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar2" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 ' -test_expect_success "Try to disown another user's package as a Trusted User." ' +test_expect_success "Try to disown another user's package as a Package Maintainer." ' SSH_ORIGINAL_COMMAND="adopt foobar" AUR_USER=user AUR_PRIVILEGED=0 \ cover "$GIT_SERVE" 2>&1 && - SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && EOF SSH_ORIGINAL_COMMAND="list-repos" AUR_USER=user AUR_PRIVILEGED=0 \ cover "$GIT_SERVE" 2>&1 >actual && test_cmp expected actual && - SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 ' @@ -362,7 +362,7 @@ test_expect_success "Disown a package base and check (co-)maintainer list." ' ' test_expect_success "Force-disown a package base and check (co-)maintainer list." ' - SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=tu AUR_PRIVILEGED=1 \ + SSH_ORIGINAL_COMMAND="disown foobar" AUR_USER=pm AUR_PRIVILEGED=1 \ cover "$GIT_SERVE" 2>&1 && cat >expected <<-EOF && EOF diff --git a/test/t1300-git-update.t b/test/t1300-git-update.t index 0fb2da17..979cd281 100755 --- a/test/t1300-git-update.t +++ b/test/t1300-git-update.t @@ -125,14 +125,14 @@ test_expect_success 'Performing a non-fast-forward ref update.' ' test_cmp expected actual ' -test_expect_success 'Performing a non-fast-forward ref update as Trusted User.' ' +test_expect_success 'Performing a non-fast-forward ref update as Package Maintainer.' ' old=$(git -C aur.git rev-parse HEAD) && new=$(git -C aur.git rev-parse HEAD^) && cat >expected <<-EOD && error: denying non-fast-forward (you should pull first) EOD test_must_fail \ - env AUR_USER=tu AUR_PKGBASE=foobar AUR_PRIVILEGED=1 \ + env AUR_USER=pm AUR_PKGBASE=foobar AUR_PRIVILEGED=1 \ cover "$GIT_UPDATE" refs/heads/master "$old" "$new" 2>&1 && test_cmp expected actual ' @@ -149,10 +149,10 @@ test_expect_success 'Performing a non-fast-forward ref update as normal user wit test_cmp expected actual ' -test_expect_success 'Performing a non-fast-forward ref update as Trusted User with AUR_OVERWRITE=1.' ' +test_expect_success 'Performing a non-fast-forward ref update as Package Maintainer with AUR_OVERWRITE=1.' ' old=$(git -C aur.git rev-parse HEAD) && new=$(git -C aur.git rev-parse HEAD^) && - AUR_USER=tu AUR_PKGBASE=foobar AUR_PRIVILEGED=1 AUR_OVERWRITE=1 \ + AUR_USER=pm AUR_PKGBASE=foobar AUR_PRIVILEGED=1 AUR_OVERWRITE=1 \ cover "$GIT_UPDATE" refs/heads/master "$old" "$new" 2>&1 ' @@ -536,7 +536,23 @@ test_expect_success 'Pushing a blacklisted package.' ' test_cmp expected actual ' -test_expect_success 'Pushing a blacklisted package as Trusted User.' ' +test_expect_success 'Pushing a blacklisted pkgbase.' ' + test_when_finished "git -C aur.git checkout refs/namespaces/foobar/refs/heads/master" && + git -C aur.git checkout -q refs/namespaces/forbidden/refs/heads/master && + old=$(git -C aur.git rev-parse HEAD) && + echo " " >>aur.git/.SRCINFO && + git -C aur.git commit -q -am "Do something" && + new=$(git -C aur.git rev-parse HEAD) && + cat >expected <<-EOD && + error: pkgbase is blacklisted: forbidden + EOD + test_must_fail \ + env AUR_USER=user AUR_PKGBASE=forbidden AUR_PRIVILEGED=0 \ + cover "$GIT_UPDATE" refs/heads/master "$old" "$new" >actual 2>&1 && + test_cmp expected actual +' + +test_expect_success 'Pushing a blacklisted package as Package Maintainer.' ' old=$(git -C aur.git rev-parse HEAD) && test_when_finished "git -C aur.git reset --hard $old" && echo "pkgname = forbidden" >>aur.git/.SRCINFO && @@ -545,7 +561,7 @@ test_expect_success 'Pushing a blacklisted package as Trusted User.' ' cat >expected <<-EOD && warning: package is blacklisted: forbidden EOD - AUR_USER=tu AUR_PKGBASE=foobar AUR_PRIVILEGED=1 \ + AUR_USER=pm AUR_PKGBASE=foobar AUR_PRIVILEGED=1 \ cover "$GIT_UPDATE" refs/heads/master "$old" "$new" >actual 2>&1 && test_cmp expected actual ' @@ -565,7 +581,7 @@ test_expect_success 'Pushing a package already in the official repositories.' ' test_cmp expected actual ' -test_expect_success 'Pushing a package already in the official repositories as Trusted User.' ' +test_expect_success 'Pushing a package already in the official repositories as Package Maintainer.' ' old=$(git -C aur.git rev-parse HEAD) && test_when_finished "git -C aur.git reset --hard $old" && echo "pkgname = official" >>aur.git/.SRCINFO && @@ -574,7 +590,7 @@ test_expect_success 'Pushing a package already in the official repositories as T cat >expected <<-EOD && warning: package already provided by [core]: official EOD - AUR_USER=tu AUR_PKGBASE=foobar AUR_PRIVILEGED=1 \ + AUR_USER=pm AUR_PKGBASE=foobar AUR_PRIVILEGED=1 \ cover "$GIT_UPDATE" refs/heads/master "$old" "$new" >actual 2>&1 && test_cmp expected actual ' diff --git a/test/test_accounts_routes.py b/test/test_accounts_routes.py index 3ff6291a..1591d658 100644 --- a/test/test_accounts_routes.py +++ b/test/test_accounts_routes.py @@ -1,6 +1,6 @@ import re import tempfile -from datetime import datetime +from datetime import UTC, datetime from http import HTTPStatus from logging import DEBUG from subprocess import Popen @@ -17,9 +17,9 @@ from aurweb.db import create, query from aurweb.models.accepted_term import AcceptedTerm from aurweb.models.account_type import ( DEVELOPER_ID, - TRUSTED_USER, - TRUSTED_USER_AND_DEV_ID, - TRUSTED_USER_ID, + PACKAGE_MAINTAINER, + PACKAGE_MAINTAINER_AND_DEV_ID, + PACKAGE_MAINTAINER_ID, USER_ID, AccountType, ) @@ -96,9 +96,9 @@ def user() -> User: @pytest.fixture -def tu_user(user: User): +def pm_user(user: User): with db.begin(): - user.AccountTypeID = TRUSTED_USER_AND_DEV_ID + user.AccountTypeID = PACKAGE_MAINTAINER_AND_DEV_ID yield user @@ -391,9 +391,10 @@ def test_post_register_error_invalid_captcha(client: TestClient): def test_post_register_error_ip_banned(client: TestClient): - # 'testclient' is used as request.client.host via FastAPI TestClient. + # 'testclient' is our fallback value in case request.client is None + # which is the case for TestClient with db.begin(): - create(Ban, IPAddress="testclient", BanTS=datetime.utcnow()) + create(Ban, IPAddress="testclient", BanTS=datetime.now(UTC)) with client as request: response = post_register(request) @@ -657,13 +658,13 @@ def test_post_register_with_ssh_pubkey(client: TestClient): assert response.status_code == int(HTTPStatus.OK) -def test_get_account_edit_tu_as_tu(client: TestClient, tu_user: User): - """Test edit get route of another TU as a TU.""" +def test_get_account_edit_pm_as_pm(client: TestClient, pm_user: User): + """Test edit get route of another PM as a PM.""" with db.begin(): user2 = create_user("test2") - user2.AccountTypeID = at.TRUSTED_USER_ID + user2.AccountTypeID = at.PACKAGE_MAINTAINER_ID - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" with client as request: @@ -672,10 +673,10 @@ def test_get_account_edit_tu_as_tu(client: TestClient, tu_user: User): assert response.status_code == int(HTTPStatus.OK) # Verify that we have an account type selection and that the - # "{at.TRUSTED_USER}" option is selected. + # "{at.PACKAGE_MAINTAINER}" option is selected. root = parse_root(response.text) atype = root.xpath('//select[@id="id_type"]/option[@selected="selected"]') - expected = at.TRUSTED_USER + expected = at.PACKAGE_MAINTAINER assert atype[0].text.strip() == expected username = root.xpath('//input[@id="id_username"]')[0] @@ -684,12 +685,12 @@ def test_get_account_edit_tu_as_tu(client: TestClient, tu_user: User): assert email.attrib["value"] == user2.Email -def test_get_account_edit_as_tu(client: TestClient, tu_user: User): - """Test edit get route of another user as a TU.""" +def test_get_account_edit_as_pm(client: TestClient, pm_user: User): + """Test edit get route of another user as a PM.""" with db.begin(): user2 = create_user("test2") - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" with client as request: @@ -723,11 +724,11 @@ def test_get_account_edit_type(client: TestClient, user: User): assert "id_type" not in response.text -def test_get_account_edit_type_as_tu(client: TestClient, tu_user: User): +def test_get_account_edit_type_as_pm(client: TestClient, pm_user: User): with db.begin(): - user2 = create_user("test_tu") + user2 = create_user("test_pm") - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" with client as request: @@ -764,9 +765,9 @@ def test_get_account_edit_unauthorized(client: TestClient, user: User): assert response.headers.get("location") == expected -def test_get_account_edit_not_exists(client: TestClient, tu_user: User): +def test_get_account_edit_not_exists(client: TestClient, pm_user: User): """Test that users do not have an Account Type field.""" - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = "/account/doesnotexist/edit" with client as request: @@ -795,11 +796,11 @@ def test_post_account_edit(client: TestClient, user: User): assert expected in response.content.decode() -def test_post_account_edit_type_as_tu(client: TestClient, tu_user: User): +def test_post_account_edit_type_as_pm(client: TestClient, pm_user: User): with db.begin(): - user2 = create_user("test_tu") + user2 = create_user("test_pm") - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" data = { "U": user2.Username, @@ -813,12 +814,12 @@ def test_post_account_edit_type_as_tu(client: TestClient, tu_user: User): assert resp.status_code == int(HTTPStatus.OK) -def test_post_account_edit_type_as_dev(client: TestClient, tu_user: User): +def test_post_account_edit_type_as_dev(client: TestClient, pm_user: User): with db.begin(): user2 = create_user("test2") - tu_user.AccountTypeID = at.DEVELOPER_ID + pm_user.AccountTypeID = at.DEVELOPER_ID - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" data = { "U": user2.Username, @@ -833,12 +834,12 @@ def test_post_account_edit_type_as_dev(client: TestClient, tu_user: User): assert user2.AccountTypeID == at.DEVELOPER_ID -def test_post_account_edit_invalid_type_as_tu(client: TestClient, tu_user: User): +def test_post_account_edit_invalid_type_as_pm(client: TestClient, pm_user: User): with db.begin(): - user2 = create_user("test_tu") - tu_user.AccountTypeID = at.TRUSTED_USER_ID + user2 = create_user("test_pm") + pm_user.AccountTypeID = at.PACKAGE_MAINTAINER_ID - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" data = { "U": user2.Username, @@ -860,19 +861,19 @@ def test_post_account_edit_invalid_type_as_tu(client: TestClient, tu_user: User) assert errors[0].text.strip() == expected -def test_post_account_edit_dev(client: TestClient, tu_user: User): - # Modify our user to be a "Trusted User & Developer" - name = "Trusted User & Developer" - tu_or_dev = query(AccountType, AccountType.AccountType == name).first() +def test_post_account_edit_dev(client: TestClient, pm_user: User): + # Modify our user to be a "Package Maintainer & Developer" + name = "Package Maintainer & Developer" + pm_or_dev = query(AccountType, AccountType.AccountType == name).first() with db.begin(): - user.AccountType = tu_or_dev + user.AccountType = pm_or_dev request = Request() - sid = tu_user.login(request, "testPassword") + sid = pm_user.login(request, "testPassword") post_data = {"U": "test", "E": "test666@example.org", "passwd": "testPassword"} - endpoint = f"/account/{tu_user.Username}/edit" + endpoint = f"/account/{pm_user.Username}/edit" with client as request: request.cookies = {"AURSID": sid} response = request.post(endpoint, data=post_data) @@ -883,9 +884,9 @@ def test_post_account_edit_dev(client: TestClient, tu_user: User): assert expected in response.content.decode() -def test_post_account_edit_not_exists(client: TestClient, tu_user: User): +def test_post_account_edit_not_exists(client: TestClient, pm_user: User): request = Request() - sid = tu_user.login(request, "testPassword") + sid = pm_user.login(request, "testPassword") post_data = {"U": "test", "E": "test666@example.org", "passwd": "testPassword"} @@ -1004,7 +1005,7 @@ def test_post_account_edit_suspend_unauthorized(client: TestClient, user: User): def test_post_account_edit_inactivity(client: TestClient, user: User): with db.begin(): - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID assert not user.Suspended cookies = {"AURSID": user.login(Request(), "testPassword")} @@ -1033,7 +1034,7 @@ def test_post_account_edit_inactivity(client: TestClient, user: User): def test_post_account_edit_suspended(client: TestClient, user: User): with db.begin(): - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID assert not user.Suspended cookies = {"AURSID": user.login(Request(), "testPassword")} @@ -1223,7 +1224,7 @@ def test_post_account_edit_self_type_as_user(client: TestClient, user: User): data = { "U": user.Username, "E": user.Email, - "T": TRUSTED_USER_ID, + "T": PACKAGE_MAINTAINER_ID, "passwd": "testPassword", } with client as request: @@ -1250,9 +1251,9 @@ def test_post_account_edit_other_user_as_user(client: TestClient, user: User): assert resp.headers.get("location") == f"/account/{user2.Username}" -def test_post_account_edit_self_type_as_tu(client: TestClient, tu_user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} - endpoint = f"/account/{tu_user.Username}/edit" +def test_post_account_edit_self_type_as_pm(client: TestClient, pm_user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} + endpoint = f"/account/{pm_user.Username}/edit" # We cannot see the Account Type field on our own edit page. with client as request: @@ -1263,8 +1264,8 @@ def test_post_account_edit_self_type_as_tu(client: TestClient, tu_user: User): # We cannot modify our own account type. data = { - "U": tu_user.Username, - "E": tu_user.Email, + "U": pm_user.Username, + "E": pm_user.Email, "T": USER_ID, "passwd": "testPassword", } @@ -1273,32 +1274,32 @@ def test_post_account_edit_self_type_as_tu(client: TestClient, tu_user: User): resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.OK) - assert tu_user.AccountTypeID == USER_ID + assert pm_user.AccountTypeID == USER_ID -def test_post_account_edit_other_user_type_as_tu( - client: TestClient, tu_user: User, caplog: pytest.LogCaptureFixture +def test_post_account_edit_other_user_type_as_pm( + client: TestClient, pm_user: User, caplog: pytest.LogCaptureFixture ): caplog.set_level(DEBUG) with db.begin(): user2 = create_user("test2") - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" - # As a TU, we can see the Account Type field for other users. + # As a PM, we can see the Account Type field for other users. with client as request: request.cookies = cookies resp = request.get(endpoint) assert resp.status_code == int(HTTPStatus.OK) assert "id_type" in resp.text - # As a TU, we can modify other user's account types. + # As a PM, we can modify other user's account types. data = { "U": user2.Username, "E": user2.Email, - "T": TRUSTED_USER_ID, + "T": PACKAGE_MAINTAINER_ID, "passwd": "testPassword", } @@ -1308,18 +1309,18 @@ def test_post_account_edit_other_user_type_as_tu( assert resp.status_code == int(HTTPStatus.OK) # Let's make sure the DB got updated properly. - assert user2.AccountTypeID == TRUSTED_USER_ID + assert user2.AccountTypeID == PACKAGE_MAINTAINER_ID # and also that this got logged out at DEBUG level. expected = ( - f"Trusted User '{tu_user.Username}' has " + f"Package Maintainer '{pm_user.Username}' has " f"modified '{user2.Username}' account's type to" - f" {TRUSTED_USER}." + f" {PACKAGE_MAINTAINER}." ) assert expected in caplog.text -def test_post_account_edit_other_user_suspend_as_tu(client: TestClient, tu_user: User): +def test_post_account_edit_other_user_suspend_as_pm(client: TestClient, pm_user: User): with db.begin(): user = create_user("test3") # Create a session for user @@ -1327,7 +1328,7 @@ def test_post_account_edit_other_user_suspend_as_tu(client: TestClient, tu_user: assert sid is not None # `user` needs its own TestClient, to keep its AURSID cookies - # apart from `tu_user`s during our testing. + # apart from `pm_user`s during our testing. user_client = TestClient(app=app) user_client.headers.update(TEST_REFERER) user_client.follow_redirects = False @@ -1340,14 +1341,14 @@ def test_post_account_edit_other_user_suspend_as_tu(client: TestClient, tu_user: resp = request.get(endpoint) assert resp.status_code == HTTPStatus.OK - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} assert cookies is not None # This is useless, we create the dict here ^ - # As a TU, we can see the Account for other users. + # As a PM, we can see the Account for other users. with client as request: request.cookies = cookies resp = request.get(endpoint) assert resp.status_code == int(HTTPStatus.OK) - # As a TU, we can modify other user's account types. + # As a PM, we can modify other user's account types. data = { "U": user.Username, "E": user.Email, @@ -1374,16 +1375,16 @@ def test_post_account_edit_other_user_suspend_as_tu(client: TestClient, tu_user: assert errors[0].text.strip() == "Account Suspended" -def test_post_account_edit_other_user_type_as_tu_invalid_type( - client: TestClient, tu_user: User, caplog: pytest.LogCaptureFixture +def test_post_account_edit_other_user_type_as_pm_invalid_type( + client: TestClient, pm_user: User, caplog: pytest.LogCaptureFixture ): with db.begin(): user2 = create_user("test2") - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/account/{user2.Username}/edit" - # As a TU, we can modify other user's account types. + # As a PM, we can modify other user's account types. data = {"U": user2.Username, "E": user2.Email, "T": 0, "passwd": "testPassword"} with client as request: request.cookies = cookies @@ -1426,7 +1427,7 @@ def test_get_account_unauthenticated(client: TestClient, user: User): assert "You must log in to view user information." in content -def test_get_accounts(client: TestClient, user: User, tu_user: User): +def test_get_accounts(client: TestClient, user: User, pm_user: User): """Test that we can GET request /accounts and receive a form which can be used to POST /accounts.""" sid = user.login(Request(), "testPassword") @@ -1486,7 +1487,7 @@ def get_rows(html): return root.xpath('//table[contains(@class, "users")]/tbody/tr') -def test_post_accounts(client: TestClient, user: User, tu_user: User): +def test_post_accounts(client: TestClient, user: User, pm_user: User): # Set a PGPKey. with db.begin(): user.PGPKey = "5F18B20346188419750745D7335F2CB41F253D30" @@ -1539,7 +1540,7 @@ def test_post_accounts(client: TestClient, user: User, tu_user: User): ) -def test_post_accounts_username(client: TestClient, user: User, tu_user: User): +def test_post_accounts_username(client: TestClient, user: User, pm_user: User): # Test the U parameter path. sid = user.login(Request(), "testPassword") cookies = {"AURSID": sid} @@ -1559,7 +1560,7 @@ def test_post_accounts_username(client: TestClient, user: User, tu_user: User): assert username.text.strip() == user.Username -def test_post_accounts_account_type(client: TestClient, user: User, tu_user: User): +def test_post_accounts_account_type(client: TestClient, user: User, pm_user: User): # Check the different account type options. sid = user.login(Request(), "testPassword") cookies = {"AURSID": sid} @@ -1598,10 +1599,10 @@ def test_post_accounts_account_type(client: TestClient, user: User, tu_user: Use assert type.text.strip() == "User" - # Set our only user to a Trusted User. + # Set our only user to a Package Maintainer. with db.begin(): user.AccountType = ( - query(AccountType).filter(AccountType.ID == TRUSTED_USER_ID).first() + query(AccountType).filter(AccountType.ID == PACKAGE_MAINTAINER_ID).first() ) with client as request: @@ -1615,7 +1616,7 @@ def test_post_accounts_account_type(client: TestClient, user: User, tu_user: Use row = next(iter(rows)) username, type, status, realname, irc, pgp_key, edit = row - assert type.text.strip() == "Trusted User" + assert type.text.strip() == "Package Maintainer" with db.begin(): user.AccountType = ( @@ -1637,7 +1638,9 @@ def test_post_accounts_account_type(client: TestClient, user: User, tu_user: Use with db.begin(): user.AccountType = ( - query(AccountType).filter(AccountType.ID == TRUSTED_USER_AND_DEV_ID).first() + query(AccountType) + .filter(AccountType.ID == PACKAGE_MAINTAINER_AND_DEV_ID) + .first() ) with client as request: @@ -1651,10 +1654,10 @@ def test_post_accounts_account_type(client: TestClient, user: User, tu_user: Use row = next(iter(rows)) username, type, status, realname, irc, pgp_key, edit = row - assert type.text.strip() == "Trusted User & Developer" + assert type.text.strip() == "Package Maintainer & Developer" -def test_post_accounts_status(client: TestClient, user: User, tu_user: User): +def test_post_accounts_status(client: TestClient, user: User, pm_user: User): # Test the functionality of Suspended. sid = user.login(Request(), "testPassword") cookies = {"AURSID": sid} @@ -1687,7 +1690,7 @@ def test_post_accounts_status(client: TestClient, user: User, tu_user: User): assert status.text.strip() == "Suspended" -def test_post_accounts_email(client: TestClient, user: User, tu_user: User): +def test_post_accounts_email(client: TestClient, user: User, pm_user: User): sid = user.login(Request(), "testPassword") cookies = {"AURSID": sid} @@ -1701,7 +1704,7 @@ def test_post_accounts_email(client: TestClient, user: User, tu_user: User): assert len(rows) == 1 -def test_post_accounts_realname(client: TestClient, user: User, tu_user: User): +def test_post_accounts_realname(client: TestClient, user: User, pm_user: User): # Test the R parameter path. sid = user.login(Request(), "testPassword") cookies = {"AURSID": sid} @@ -1715,7 +1718,7 @@ def test_post_accounts_realname(client: TestClient, user: User, tu_user: User): assert len(rows) == 1 -def test_post_accounts_irc(client: TestClient, user: User, tu_user: User): +def test_post_accounts_irc(client: TestClient, user: User, pm_user: User): # Test the I parameter path. sid = user.login(Request(), "testPassword") cookies = {"AURSID": sid} @@ -1729,7 +1732,7 @@ def test_post_accounts_irc(client: TestClient, user: User, tu_user: User): assert len(rows) == 1 -def test_post_accounts_sortby(client: TestClient, user: User, tu_user: User): +def test_post_accounts_sortby(client: TestClient, user: User, pm_user: User): # Create a second user so we can compare sorts. with db.begin(): user_ = create_user("test2") @@ -1783,7 +1786,9 @@ def test_post_accounts_sortby(client: TestClient, user: User, tu_user: User): with db.begin(): user.AccountType = ( - query(AccountType).filter(AccountType.ID == TRUSTED_USER_AND_DEV_ID).first() + query(AccountType) + .filter(AccountType.ID == PACKAGE_MAINTAINER_AND_DEV_ID) + .first() ) # Fetch first_rows again with our new AccountType ordering. @@ -1807,7 +1812,7 @@ def test_post_accounts_sortby(client: TestClient, user: User, tu_user: User): assert compare_text_values(1, first_rows, reversed(rows)) -def test_post_accounts_pgp_key(client: TestClient, user: User, tu_user: User): +def test_post_accounts_pgp_key(client: TestClient, user: User, pm_user: User): with db.begin(): user.PGPKey = "5F18B20346188419750745D7335F2CB41F253D30" @@ -1824,7 +1829,7 @@ def test_post_accounts_pgp_key(client: TestClient, user: User, tu_user: User): assert len(rows) == 1 -def test_post_accounts_paged(client: TestClient, user: User, tu_user: User): +def test_post_accounts_paged(client: TestClient, user: User, pm_user: User): # Create 150 users. users = [user] account_type = query(AccountType, AccountType.AccountType == "User").first() @@ -2046,7 +2051,7 @@ def test_accounts_unauthorized(client: TestClient, user: User): assert resp.headers.get("location") == "/" -def test_account_delete_self_unauthorized(client: TestClient, tu_user: User): +def test_account_delete_self_unauthorized(client: TestClient, pm_user: User): with db.begin(): user = create_user("some_user") user2 = create_user("user2") @@ -2061,8 +2066,8 @@ def test_account_delete_self_unauthorized(client: TestClient, tu_user: User): resp = request.post(endpoint) assert resp.status_code == HTTPStatus.UNAUTHORIZED - # But a TU does have access - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # But a PM does have access + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with TestClient(app=app) as request: request.cookies = cookies resp = request.get(endpoint) @@ -2163,11 +2168,11 @@ def test_account_delete_self_with_ssh_public_key(client: TestClient, user: User) assert sshpubkey_record is None -def test_account_delete_as_tu(client: TestClient, tu_user: User): +def test_account_delete_as_pm(client: TestClient, pm_user: User): with db.begin(): user = create_user("user2") - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} username = user.Username endpoint = f"/account/{username}/delete" diff --git a/test/test_adduser.py b/test/test_adduser.py index 2cb71f3b..13648d5e 100644 --- a/test/test_adduser.py +++ b/test/test_adduser.py @@ -38,7 +38,7 @@ def test_adduser(): assert test.login(Request(), "abcd1234") -def test_adduser_tu(): +def test_adduser_pm(): run_main( [ "-u", @@ -48,12 +48,12 @@ def test_adduser_tu(): "-p", "abcd1234", "-t", - at.TRUSTED_USER, + at.PACKAGE_MAINTAINER, ] ) test = db.query(User).filter(User.Username == "test").first() assert test is not None - assert test.AccountTypeID == at.TRUSTED_USER_ID + assert test.AccountTypeID == at.PACKAGE_MAINTAINER_ID def test_adduser_ssh_pk(): diff --git a/test/test_auth.py b/test/test_auth.py index 4a4318e8..f3502faf 100644 --- a/test/test_auth.py +++ b/test/test_auth.py @@ -137,9 +137,9 @@ def test_account_type_required(): account_type_required({"FAKE"}) -def test_is_trusted_user(): +def test_is_package_maintainer(): user_ = AnonymousUser() - assert not user_.is_trusted_user() + assert not user_.is_package_maintainer() def test_is_developer(): diff --git a/test/test_ban.py b/test/test_ban.py index 9db62296..f795c27c 100644 --- a/test/test_ban.py +++ b/test/test_ban.py @@ -1,5 +1,5 @@ import warnings -from datetime import datetime, timedelta +from datetime import UTC, datetime, timedelta import pytest from sqlalchemy import exc as sa_exc @@ -17,7 +17,7 @@ def setup(db_test): @pytest.fixture def ban() -> Ban: - ts = datetime.utcnow() + timedelta(seconds=30) + ts = datetime.now(UTC) + timedelta(seconds=30) with db.begin(): ban = create(Ban, IPAddress="127.0.0.1", BanTS=ts) yield ban @@ -30,7 +30,7 @@ def test_ban(ban: Ban): def test_invalid_ban(): with pytest.raises(sa_exc.IntegrityError): - bad_ban = Ban(BanTS=datetime.utcnow()) + bad_ban = Ban(BanTS=datetime.now(UTC)) # We're adding a ban with no primary key; this causes an # SQLAlchemy warnings when committing to the DB. diff --git a/test/test_filters.py b/test/test_filters.py index b56b80ab..ea0fa58b 100644 --- a/test/test_filters.py +++ b/test/test_filters.py @@ -1,4 +1,4 @@ -from datetime import datetime +from datetime import UTC, datetime from zoneinfo import ZoneInfo import pytest @@ -8,7 +8,7 @@ from aurweb import filters, time def test_timestamp_to_datetime(): ts = time.utcnow() - dt = datetime.utcfromtimestamp(int(ts)) + dt = datetime.fromtimestamp(ts, UTC) assert filters.timestamp_to_datetime(ts) == dt diff --git a/test/test_homepage.py b/test/test_homepage.py index 08c52c09..fc5eb17e 100644 --- a/test/test_homepage.py +++ b/test/test_homepage.py @@ -62,7 +62,7 @@ def redis(): "package_count", "orphan_count", "user_count", - "trusted_user_count", + "package_maintainer_count", "seven_days_old_added", "seven_days_old_updated", "year_old_updated", @@ -183,7 +183,7 @@ def test_homepage_stats(redis, packages): ("Packages updated in the past year", r"\d+"), ("Packages never updated", r"\d+"), ("Registered Users", r"\d+"), - ("Trusted Users", r"\d+"), + ("Package Maintainers", r"\d+"), ] stats = root.xpath('//div[@id="pkg-stats"]//tr') diff --git a/test/test_html.py b/test/test_html.py index 681bd245..602ee26c 100644 --- a/test/test_html.py +++ b/test/test_html.py @@ -1,4 +1,5 @@ """ A test suite used to test HTML renders in different cases. """ + import hashlib import os import tempfile @@ -12,7 +13,7 @@ from fastapi.testclient import TestClient from aurweb import asgi, config, db from aurweb.models import PackageBase -from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID, USER_ID from aurweb.models.user import User from aurweb.testing.html import get_errors, get_successes, parse_root from aurweb.testing.requests import Request @@ -42,9 +43,9 @@ def user() -> User: @pytest.fixture -def trusted_user(user: User) -> User: +def package_maintainer(user: User) -> User: with db.begin(): - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID yield user @@ -81,17 +82,17 @@ def test_archdev_navbar_authenticated(client: TestClient, user: User): assert item.text.strip() == expected[i] -def test_archdev_navbar_authenticated_tu(client: TestClient, trusted_user: User): +def test_archdev_navbar_authenticated_pm(client: TestClient, package_maintainer: User): expected = [ "Dashboard", "Packages", "Requests", "Accounts", "My Account", - "Trusted User", + "Package Maintainer", "Logout", ] - cookies = {"AURSID": trusted_user.login(Request(), "testPassword")} + cookies = {"AURSID": package_maintainer.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get("/") @@ -199,7 +200,7 @@ def test_404_with_valid_pkgbase(client: TestClient, pkgbase: PackageBase): assert "To clone the Git repository" in body -def test_404(client: TestClient): +def test_404(client: TestClient, user): """Test HTTPException with status_code == 404 without a valid pkgbase.""" with client as request: response = request.get("/nonexistentroute") @@ -210,6 +211,20 @@ def test_404(client: TestClient): # No `pkgbase` is provided here; we don't see the extra info. assert "To clone the Git repository" not in body + # Create a pkgbase named "pkgbase" + # Should NOT return extra info for "pkgbase" + with db.begin(): + db.create(PackageBase, Name="pkgbase", Maintainer=user) + + with client as request: + response = request.get("/pkgbase/doesnotexist") + assert response.status_code == int(HTTPStatus.NOT_FOUND) + + body = response.text + assert "404 - Page Not Found" in body + # No `pkgbase` is provided here; we don't see the extra info. + assert "To clone the Git repository" not in body + def test_503(client: TestClient): """Test HTTPException with status_code == 503 (Service Unavailable).""" diff --git a/test/test_l10n.py b/test/test_l10n.py index 818d517f..e1b5ac3f 100644 --- a/test/test_l10n.py +++ b/test/test_l10n.py @@ -1,5 +1,6 @@ """ Test our l10n module. """ -from aurweb import filters, l10n + +from aurweb import config, filters, l10n from aurweb.testing.requests import Request @@ -10,13 +11,55 @@ def test_translator(): def test_get_request_language(): - """First, tests default_lang, then tests a modified AURLANG cookie.""" + """Test getting the language setting from a request.""" + # Default language + default_lang = config.get("options", "default_lang") request = Request() - assert l10n.get_request_language(request) == "en" + assert l10n.get_request_language(request) == default_lang + # Language setting from cookie: de request.cookies["AURLANG"] = "de" assert l10n.get_request_language(request) == "de" + # Language setting from cookie: nonsense + # Should fallback to default lang + request.cookies["AURLANG"] = "nonsense" + assert l10n.get_request_language(request) == default_lang + + # Language setting from query param: de + request.cookies = {} + request.query_params = {"language": "de"} + assert l10n.get_request_language(request) == "de" + + # Language setting from query param: nonsense + # Should fallback to default lang + request.query_params = {"language": "nonsense"} + assert l10n.get_request_language(request) == default_lang + + # Language setting from query param: de and cookie + # Query param should have precedence + request.query_params = {"language": "de"} + request.cookies["AURLANG"] = "fr" + assert l10n.get_request_language(request) == "de" + + # Language setting from authenticated user + request.cookies = {} + request.query_params = {} + request.user.authenticated = True + request.user.LangPreference = "de" + assert l10n.get_request_language(request) == "de" + + # Language setting from authenticated user with query param + # Query param should have precedence + request.query_params = {"language": "fr"} + assert l10n.get_request_language(request) == "fr" + + # Language setting from authenticated user with cookie + # DB setting should have precedence + request.query_params = {} + request.cookies["AURLANG"] = "fr" + assert l10n.get_request_language(request) == "de" + def test_get_raw_translator_for_request(): """Make sure that get_raw_translator_for_request is giving us diff --git a/test/test_metrics.py b/test/test_metrics.py index 6f67d926..c9f3d617 100644 --- a/test/test_metrics.py +++ b/test/test_metrics.py @@ -8,7 +8,7 @@ from aurweb.models.user import User @pytest.fixture(autouse=True) -def setup(db_test): +def setup(db_test, prometheus_test): return diff --git a/test/test_notify.py b/test/test_notify.py index fbcf350b..3d773bc2 100644 --- a/test/test_notify.py +++ b/test/test_notify.py @@ -5,7 +5,7 @@ import pytest from aurweb import config, db, models, time from aurweb.models import Package, PackageBase, PackageRequest, User -from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID, USER_ID from aurweb.models.request_type import ORPHAN_ID from aurweb.scripts import notify, rendercomment from aurweb.testing.email import Email @@ -390,16 +390,16 @@ please go to [3] and click "Disable notifications". assert email.body == expected -def set_tu(users: list[User]) -> User: +def set_pm(users: list[User]) -> User: with db.begin(): for user in users: - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID def test_open_close_request( user: User, user2: User, pkgreq: PackageRequest, pkgbases: list[PackageBase] ): - set_tu([user]) + set_pm([user]) pkgbase = pkgbases[0] # Send an open request notification. @@ -544,34 +544,34 @@ This is a test closure comment. assert email.body == expected -def test_tu_vote_reminders(user: User): - set_tu([user]) +def test_vote_reminders(user: User): + set_pm([user]) vote_id = 1 - notif = notify.TUVoteReminderNotification(vote_id) + notif = notify.VoteReminderNotification(vote_id) notif.send() assert Email.count() == 1 email = Email(1).parse() assert email.headers.get("To") == user.Email - expected = f"TU Vote Reminder: Proposal {vote_id}" + expected = f"Package Maintainer Vote Reminder: Proposal {vote_id}" assert email.headers.get("Subject") == expected expected = f"""\ Please remember to cast your vote on proposal {vote_id} [1]. The voting period ends in less than 48 hours. -[1] {aur_location}/tu/?id={vote_id}\ +[1] {aur_location}/package-maintainer/?id={vote_id}\ """ assert email.body == expected def test_notify_main(user: User): - """Test TU vote reminder through aurweb.notify.main().""" - set_tu([user]) + """Test PM vote reminder through aurweb.notify.main().""" + set_pm([user]) vote_id = 1 - args = ["aurweb-notify", "tu-vote-reminder", str(vote_id)] + args = ["aurweb-notify", "vote-reminder", str(vote_id)] with mock.patch("sys.argv", args): notify.main() @@ -579,14 +579,14 @@ def test_notify_main(user: User): email = Email(1).parse() assert email.headers.get("To") == user.Email - expected = f"TU Vote Reminder: Proposal {vote_id}" + expected = f"Package Maintainer Vote Reminder: Proposal {vote_id}" assert email.headers.get("Subject") == expected expected = f"""\ Please remember to cast your vote on proposal {vote_id} [1]. The voting period ends in less than 48 hours. -[1] {aur_location}/tu/?id={vote_id}\ +[1] {aur_location}/package-maintainer/?id={vote_id}\ """ assert email.body == expected diff --git a/test/test_package.py b/test/test_package.py index 2a9df483..83dd8d54 100644 --- a/test/test_package.py +++ b/test/test_package.py @@ -8,8 +8,6 @@ from aurweb.models.package import Package from aurweb.models.package_base import PackageBase from aurweb.models.user import User -user = pkgbase = package = None - @pytest.fixture(autouse=True) def setup(db_test): diff --git a/test/test_package_dependency.py b/test/test_package_dependency.py index 9366bb55..1cd2d305 100644 --- a/test/test_package_dependency.py +++ b/test/test_package_dependency.py @@ -4,6 +4,7 @@ from sqlalchemy.exc import IntegrityError from aurweb import db from aurweb.models.account_type import USER_ID from aurweb.models.dependency_type import DEPENDS_ID +from aurweb.models.official_provider import OfficialProvider from aurweb.models.package import Package from aurweb.models.package_base import PackageBase from aurweb.models.package_dependency import PackageDependency @@ -58,6 +59,22 @@ def test_package_dependencies(user: User, package: Package): db.create(Package, PackageBase=base, Name=pkgdep.DepName) assert pkgdep.is_package() + assert pkgdep.is_aur_package() + + # Test with OfficialProvider + with db.begin(): + pkgdep = db.create( + PackageDependency, + Package=package, + DepTypeID=DEPENDS_ID, + DepName="test-repo-pkg", + ) + db.create( + OfficialProvider, Name=pkgdep.DepName, Repo="extra", Provides=pkgdep.DepName + ) + + assert pkgdep.is_package() + assert not pkgdep.is_aur_package() def test_package_dependencies_null_package_raises(): diff --git a/test/test_trusted_user_routes.py b/test/test_package_maintainer_routes.py similarity index 71% rename from test/test_trusted_user_routes.py rename to test/test_package_maintainer_routes.py index 0bb9523e..1824556b 100644 --- a/test/test_trusted_user_routes.py +++ b/test/test_package_maintainer_routes.py @@ -8,10 +8,10 @@ import pytest from fastapi.testclient import TestClient from aurweb import config, db, filters, time -from aurweb.models.account_type import DEVELOPER_ID, TRUSTED_USER_ID, AccountType -from aurweb.models.tu_vote import TUVote -from aurweb.models.tu_voteinfo import TUVoteInfo +from aurweb.models.account_type import DEVELOPER_ID, PACKAGE_MAINTAINER_ID, AccountType from aurweb.models.user import User +from aurweb.models.vote import Vote +from aurweb.models.voteinfo import VoteInfo from aurweb.testing.requests import Request DATETIME_REGEX = r"^[0-9]{4}-[0-9]{2}-[0-9]{2} \(.+\)$" @@ -89,32 +89,34 @@ def client(): @pytest.fixture -def tu_user(): - tu_type = db.query(AccountType, AccountType.AccountType == "Trusted User").first() +def pm_user(): + pm_type = db.query( + AccountType, AccountType.AccountType == "Package Maintainer" + ).first() with db.begin(): - tu_user = db.create( + pm_user = db.create( User, - Username="test_tu", - Email="test_tu@example.org", - RealName="Test TU", + Username="test_pm", + Email="test_pm@example.org", + RealName="Test PM", Passwd="testPassword", - AccountType=tu_type, + AccountType=pm_type, ) - yield tu_user + yield pm_user @pytest.fixture -def tu_user2(): +def pm_user2(): with db.begin(): - tu_user2 = db.create( + pm_user2 = db.create( User, - Username="test_tu2", - Email="test_tu2@example.org", - RealName="Test TU 2", + Username="test_pm2", + Email="test_pm2@example.org", + RealName="Test PM 2", Passwd="testPassword", - AccountTypeID=TRUSTED_USER_ID, + AccountTypeID=PACKAGE_MAINTAINER_ID, ) - yield tu_user2 + yield pm_user2 @pytest.fixture @@ -133,7 +135,7 @@ def user(): @pytest.fixture -def proposal(user, tu_user): +def proposal(user, pm_user): ts = time.utcnow() agenda = "Test proposal." start = ts - 5 @@ -141,45 +143,45 @@ def proposal(user, tu_user): with db.begin(): voteinfo = db.create( - TUVoteInfo, + VoteInfo, Agenda=agenda, Quorum=0.0, User=user.Username, - Submitter=tu_user, + Submitter=pm_user, Submitted=start, End=end, ) - yield (tu_user, user, voteinfo) + yield (pm_user, user, voteinfo) -def test_tu_index_guest(client): - headers = {"referer": config.get("options", "aur_location") + "/tu"} +def test_pm_index_guest(client): + headers = {"referer": config.get("options", "aur_location") + "/package-maintainer"} with client as request: - response = request.get("/tu", headers=headers) + response = request.get("/package-maintainer", headers=headers) assert response.status_code == int(HTTPStatus.SEE_OTHER) - params = filters.urlencode({"next": "/tu"}) + params = filters.urlencode({"next": "/package-maintainer"}) assert response.headers.get("location") == f"/login?{params}" -def test_tu_index_unauthorized(client: TestClient, user: User): +def test_pm_index_unauthorized(client: TestClient, user: User): cookies = {"AURSID": user.login(Request(), "testPassword")} with client as request: # Login as a normal user, not a TU. request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == int(HTTPStatus.SEE_OTHER) assert response.headers.get("location") == "/" -def test_tu_empty_index(client, tu_user): +def test_pm_empty_index(client, pm_user): """Check an empty index when we don't create any records.""" - # Make a default get request to /tu. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # Make a default get request to /package-maintainer. + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == int(HTTPStatus.OK) # Parse lxml root. @@ -194,7 +196,7 @@ def test_tu_empty_index(client, tu_user): assert len(tables) == 0 -def test_tu_index(client, tu_user): +def test_pm_index(client, pm_user): ts = time.utcnow() # Create some test votes: (Agenda, Start, End). @@ -208,13 +210,13 @@ def test_tu_index(client, tu_user): agenda, start, end = vote vote_records.append( db.create( - TUVoteInfo, + VoteInfo, Agenda=agenda, - User=tu_user.Username, + User=pm_user.Username, Submitted=start, End=end, Quorum=0.0, - Submitter=tu_user, + Submitter=pm_user, ) ) @@ -222,27 +224,27 @@ def test_tu_index(client, tu_user): # Vote on an ended proposal. vote_record = vote_records[1] vote_record.Yes += 1 - vote_record.ActiveTUs += 1 - db.create(TUVote, VoteInfo=vote_record, User=tu_user) + vote_record.ActiveUsers += 1 + db.create(Vote, VoteInfo=vote_record, User=pm_user) - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: # Pass an invalid cby and pby; let them default to "desc". request.cookies = cookies response = request.get( - "/tu", + "/package-maintainer", params={"cby": "BAD!", "pby": "blah"}, ) assert response.status_code == int(HTTPStatus.OK) - # Rows we expect to exist in HTML produced by /tu for current votes. + # Rows we expect to exist in HTML produced by /package-maintainer for current votes. expected_rows = [ ( r"Test agenda 1", DATETIME_REGEX, DATETIME_REGEX, - tu_user.Username, + pm_user.Username, r"^(Yes|No)$", ) ] @@ -263,13 +265,13 @@ def test_tu_index(client, tu_user): past_votes = [c for c in votes if c[2] <= ts] assert len(past_votes) == len(expected_rows) - # Rows we expect to exist in HTML produced by /tu for past votes. + # Rows we expect to exist in HTML produced by /package-maintainer for past votes. expected_rows = [ ( r"Test agenda 2", DATETIME_REGEX, DATETIME_REGEX, - tu_user.Username, + pm_user.Username, r"^\d+$", r"^\d+$", r"^(Yes|No)$", @@ -290,86 +292,86 @@ def test_tu_index(client, tu_user): username, vote_id = rows[0] username = username.xpath("./a")[0] vote_id = vote_id.xpath("./a")[0] - assert username.text.strip() == tu_user.Username + assert username.text.strip() == pm_user.Username assert int(vote_id.text.strip()) == vote_records[1].ID -def test_tu_stats(client: TestClient, tu_user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_stats(client: TestClient, pm_user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == HTTPStatus.OK root = parse_root(response.text) stats = root.xpath('//table[@class="no-width"]')[0] rows = stats.xpath("./tbody/tr") - # We have one trusted user. + # We have one package maintainer. total = rows[0] label, count = total.xpath("./td") assert int(count.text.strip()) == 1 - # And we have one active TU. + # And we have one active PM. active = rows[1] label, count = active.xpath("./td") assert int(count.text.strip()) == 1 with db.begin(): - tu_user.InactivityTS = time.utcnow() + pm_user.InactivityTS = time.utcnow() with client as request: request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == HTTPStatus.OK root = parse_root(response.text) stats = root.xpath('//table[@class="no-width"]')[0] rows = stats.xpath("./tbody/tr") - # We have one trusted user. + # We have one package maintainer. total = rows[0] label, count = total.xpath("./td") assert int(count.text.strip()) == 1 - # But we have no more active TUs. + # But we have no more active PMs. active = rows[1] label, count = active.xpath("./td") assert int(count.text.strip()) == 0 -def test_tu_index_table_paging(client, tu_user): +def test_pm_index_table_paging(client, pm_user): ts = time.utcnow() with db.begin(): for i in range(25): # Create 25 current votes. db.create( - TUVoteInfo, + VoteInfo, Agenda=f"Agenda #{i}", - User=tu_user.Username, + User=pm_user.Username, Submitted=(ts - 5), End=(ts + 1000), Quorum=0.0, - Submitter=tu_user, + Submitter=pm_user, ) for i in range(25): # Create 25 past votes. db.create( - TUVoteInfo, + VoteInfo, Agenda=f"Agenda #{25 + i}", - User=tu_user.Username, + User=pm_user.Username, Submitted=(ts - 1000), End=(ts - 5), Quorum=0.0, - Submitter=tu_user, + Submitter=pm_user, ) - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == int(HTTPStatus.OK) # Parse lxml.etree root. @@ -384,7 +386,7 @@ def test_tu_index_table_paging(client, tu_user): f"Agenda #{offset + i}", DATETIME_REGEX, DATETIME_REGEX, - tu_user.Username, + pm_user.Username, r"^(Yes|No)$", ] @@ -400,7 +402,7 @@ def test_tu_index_table_paging(client, tu_user): offset = 10 # Specify coff=10 with client as request: request.cookies = cookies - response = request.get("/tu", params={"coff": offset}) + response = request.get("package-maintainer", params={"coff": offset}) assert response.status_code == int(HTTPStatus.OK) old_rows = rows @@ -428,7 +430,7 @@ def test_tu_index_table_paging(client, tu_user): offset = 20 # Specify coff=10 with client as request: request.cookies = cookies - response = request.get("/tu", params={"coff": offset}) + response = request.get("/package-maintainer", params={"coff": offset}) assert response.status_code == int(HTTPStatus.OK) # Do it again, we only have five left. @@ -453,20 +455,20 @@ def test_tu_index_table_paging(client, tu_user): assert "Next" in past_directions[0].text -def test_tu_index_sorting(client, tu_user): +def test_pm_index_sorting(client, pm_user): ts = time.utcnow() with db.begin(): for i in range(2): # Create 'Agenda #1' and 'Agenda #2'. db.create( - TUVoteInfo, + VoteInfo, Agenda=f"Agenda #{i + 1}", - User=tu_user.Username, + User=pm_user.Username, Submitted=(ts + 5), End=(ts + 1000), Quorum=0.0, - Submitter=tu_user, + Submitter=pm_user, ) # Let's order each vote one day after the other. @@ -474,11 +476,11 @@ def test_tu_index_sorting(client, tu_user): # of the tables. ts += 86405 - # Make a default request to /tu. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # Make a default request to /package-maintainer. + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == int(HTTPStatus.OK) # Get lxml handles of the document. @@ -497,7 +499,7 @@ def test_tu_index_sorting(client, tu_user): expected[i], DATETIME_REGEX, DATETIME_REGEX, - tu_user.Username, + pm_user.Username, r"^(Yes|No)$", ], ) @@ -506,7 +508,7 @@ def test_tu_index_sorting(client, tu_user): # in ascending order instead of the default descending order. with client as request: request.cookies = cookies - response = request.get("/tu", params={"cby": "asc"}) + response = request.get("/package-maintainer", params={"cby": "asc"}) assert response.status_code == int(HTTPStatus.OK) # Get lxml handles of the document. @@ -524,41 +526,41 @@ def test_tu_index_sorting(client, tu_user): rev_expected[i], DATETIME_REGEX, DATETIME_REGEX, - tu_user.Username, + pm_user.Username, r"^(Yes|No)$", ], ) -def test_tu_index_last_votes( - client: TestClient, tu_user: User, tu_user2: User, user: User +def test_pm_index_last_votes( + client: TestClient, pm_user: User, pm_user2: User, user: User ): ts = time.utcnow() with db.begin(): # Create a proposal which has ended. voteinfo = db.create( - TUVoteInfo, + VoteInfo, Agenda="Test agenda", User=user.Username, Submitted=(ts - 1000), End=(ts - 5), Yes=1, No=1, - ActiveTUs=1, + ActiveUsers=1, Quorum=0.0, - Submitter=tu_user, + Submitter=pm_user, ) - # Create a vote on it from tu_user. - db.create(TUVote, VoteInfo=voteinfo, User=tu_user) - db.create(TUVote, VoteInfo=voteinfo, User=tu_user2) + # Create a vote on it from pm_user. + db.create(Vote, VoteInfo=voteinfo, User=pm_user) + db.create(Vote, VoteInfo=voteinfo, User=pm_user2) - # Now, check that tu_user got populated in the .last-votes table. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # Now, check that pm_user got populated in the .last-votes table. + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get("/tu") + response = request.get("/package-maintainer") assert response.status_code == int(HTTPStatus.OK) root = parse_root(response.text) @@ -568,54 +570,54 @@ def test_tu_index_last_votes( last_vote = rows[0] user, vote_id = last_vote.xpath("./td/a") - assert user.text.strip() == tu_user.Username + assert user.text.strip() == pm_user.Username assert int(vote_id.text.strip()) == voteinfo.ID last_vote = rows[1] user, vote_id = last_vote.xpath("./td/a") assert int(vote_id.text.strip()) == voteinfo.ID - assert user.text.strip() == tu_user2.Username + assert user.text.strip() == pm_user2.Username -def test_tu_proposal_not_found(client, tu_user): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_proposal_not_found(client, pm_user): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get("/tu", params={"id": 1}, follow_redirects=True) + response = request.get( + "/package-maintainer", params={"id": 1}, follow_redirects=True + ) assert response.status_code == int(HTTPStatus.NOT_FOUND) -def test_tu_proposal_unauthorized( - client: TestClient, user: User, proposal: Tuple[User, User, TUVoteInfo] +def test_pm_proposal_unauthorized( + client: TestClient, user: User, proposal: Tuple[User, User, VoteInfo] ): cookies = {"AURSID": user.login(Request(), "testPassword")} - endpoint = f"/tu/{proposal[2].ID}" + endpoint = f"/package-maintainer/{proposal[2].ID}" with client as request: request.cookies = cookies response = request.get(endpoint) assert response.status_code == int(HTTPStatus.SEE_OTHER) - assert response.headers.get("location") == "/tu" + assert response.headers.get("location") == "/package-maintainer" with client as request: request.cookies = cookies response = request.post(endpoint, data={"decision": False}) assert response.status_code == int(HTTPStatus.SEE_OTHER) - assert response.headers.get("location") == "/tu" + assert response.headers.get("location") == "/package-maintainer" -def test_tu_running_proposal( - client: TestClient, proposal: Tuple[User, User, TUVoteInfo] -): - tu_user, user, voteinfo = proposal +def test_pm_running_proposal(client: TestClient, proposal: Tuple[User, User, VoteInfo]): + pm_user, user, voteinfo = proposal with db.begin(): - voteinfo.ActiveTUs = 1 + voteinfo.ActiveUsers = 1 - # Initiate an authenticated GET request to /tu/{proposal_id}. + # Initiate an authenticated GET request to /package-maintainer/{proposal_id}. proposal_id = voteinfo.ID - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get(f"/tu/{proposal_id}") + response = request.get(f"/package-maintainer/{proposal_id}") assert response.status_code == int(HTTPStatus.OK) # Alright, now let's continue on to verifying some markup. @@ -632,7 +634,7 @@ def test_tu_running_proposal( active = details.xpath('./div[contains(@class, "field")]')[1] content = active.text.strip() - assert "Active Trusted Users assigned:" in content + assert "Active Package Maintainers assigned:" in content assert "1" in content submitted = details.xpath('./div[contains(@class, "submitted")]/text()')[0] @@ -643,8 +645,8 @@ def test_tu_running_proposal( is not None ) submitter = details.xpath('./div[contains(@class, "submitted")]/a')[0] - assert submitter.text.strip() == tu_user.Username - assert submitter.attrib["href"] == f"/account/{tu_user.Username}" + assert submitter.text.strip() == pm_user.Username + assert submitter.attrib["href"] == f"/account/{pm_user.Username}" end = details.xpath('./div[contains(@class, "end")]')[0] end_label = end.xpath("./text()")[0] @@ -679,14 +681,16 @@ def test_tu_running_proposal( # Create a vote. with db.begin(): - db.create(TUVote, VoteInfo=voteinfo, User=tu_user) - voteinfo.ActiveTUs += 1 + db.create(Vote, VoteInfo=voteinfo, User=pm_user) + voteinfo.ActiveUsers += 1 voteinfo.Yes += 1 # Make another request now that we've voted. with client as request: request.cookies = cookies - response = request.get("/tu", params={"id": voteinfo.ID}, follow_redirects=True) + response = request.get( + "/package-maintainer", params={"id": voteinfo.ID}, follow_redirects=True + ) assert response.status_code == int(HTTPStatus.OK) # Parse our new root. @@ -701,19 +705,19 @@ def test_tu_running_proposal( assert status == "You've already voted for this proposal." -def test_tu_ended_proposal(client, proposal): - tu_user, user, voteinfo = proposal +def test_pm_ended_proposal(client, proposal): + pm_user, user, voteinfo = proposal ts = time.utcnow() with db.begin(): voteinfo.End = ts - 5 # 5 seconds ago. - # Initiate an authenticated GET request to /tu/{proposal_id}. + # Initiate an authenticated GET request to /package-maintainer/{proposal_id}. proposal_id = voteinfo.ID - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies - response = request.get(f"/tu/{proposal_id}") + response = request.get(f"/package-maintainer/{proposal_id}") assert response.status_code == int(HTTPStatus.OK) # Alright, now let's continue on to verifying some markup. @@ -740,34 +744,34 @@ def test_tu_ended_proposal(client, proposal): assert status == "Voting is closed for this proposal." -def test_tu_proposal_vote_not_found(client, tu_user): +def test_pm_proposal_vote_not_found(client, pm_user): """Test POST request to a missing vote.""" - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.post("/tu/1", data=data) + response = request.post("/package-maintainer/1", data=data) assert response.status_code == int(HTTPStatus.NOT_FOUND) -def test_tu_proposal_vote(client, proposal): - tu_user, user, voteinfo = proposal +def test_pm_proposal_vote(client, proposal): + pm_user, user, voteinfo = proposal # Store the current related values. yes = voteinfo.Yes - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.post(f"/tu/{voteinfo.ID}", data=data) + response = request.post(f"/package-maintainer/{voteinfo.ID}", data=data) assert response.status_code == int(HTTPStatus.OK) # Check that the proposal record got updated. assert voteinfo.Yes == yes + 1 - # Check that the new TUVote exists. - vote = db.query(TUVote, TUVote.VoteInfo == voteinfo, TUVote.User == tu_user).first() + # Check that the new PMVote exists. + vote = db.query(Vote, Vote.VoteInfo == voteinfo, Vote.User == pm_user).first() assert vote is not None root = parse_root(response.text) @@ -777,48 +781,48 @@ def test_tu_proposal_vote(client, proposal): assert status == "You've already voted for this proposal." -def test_tu_proposal_vote_unauthorized( - client: TestClient, proposal: Tuple[User, User, TUVoteInfo] +def test_pm_proposal_vote_unauthorized( + client: TestClient, proposal: Tuple[User, User, VoteInfo] ): - tu_user, user, voteinfo = proposal + pm_user, user, voteinfo = proposal with db.begin(): - tu_user.AccountTypeID = DEVELOPER_ID + pm_user.AccountTypeID = DEVELOPER_ID - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.post(f"/tu/{voteinfo.ID}", data=data) + response = request.post(f"package-maintainer/{voteinfo.ID}", data=data) assert response.status_code == int(HTTPStatus.UNAUTHORIZED) root = parse_root(response.text) status = root.xpath('//span[contains(@class, "status")]/text()')[0] - assert status == "Only Trusted Users are allowed to vote." + assert status == "Only Package Maintainers are allowed to vote." with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.get(f"/tu/{voteinfo.ID}", params=data) + response = request.get(f"/package-maintainer/{voteinfo.ID}", params=data) assert response.status_code == int(HTTPStatus.OK) root = parse_root(response.text) status = root.xpath('//span[contains(@class, "status")]/text()')[0] - assert status == "Only Trusted Users are allowed to vote." + assert status == "Only Package Maintainers are allowed to vote." -def test_tu_proposal_vote_cant_self_vote(client, proposal): - tu_user, user, voteinfo = proposal +def test_pm_proposal_vote_cant_self_vote(client, proposal): + pm_user, user, voteinfo = proposal # Update voteinfo.User. with db.begin(): - voteinfo.User = tu_user.Username + voteinfo.User = pm_user.Username - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.post(f"/tu/{voteinfo.ID}", data=data) + response = request.post(f"/package-maintainer/{voteinfo.ID}", data=data) assert response.status_code == int(HTTPStatus.BAD_REQUEST) root = parse_root(response.text) @@ -828,7 +832,7 @@ def test_tu_proposal_vote_cant_self_vote(client, proposal): with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.get(f"/tu/{voteinfo.ID}", params=data) + response = request.get(f"/package-maintainer/{voteinfo.ID}", params=data) assert response.status_code == int(HTTPStatus.OK) root = parse_root(response.text) @@ -836,19 +840,19 @@ def test_tu_proposal_vote_cant_self_vote(client, proposal): assert status == "You cannot vote in an proposal about you." -def test_tu_proposal_vote_already_voted(client, proposal): - tu_user, user, voteinfo = proposal +def test_pm_proposal_vote_already_voted(client, proposal): + pm_user, user, voteinfo = proposal with db.begin(): - db.create(TUVote, VoteInfo=voteinfo, User=tu_user) + db.create(Vote, VoteInfo=voteinfo, User=pm_user) voteinfo.Yes += 1 - voteinfo.ActiveTUs += 1 + voteinfo.ActiveUsers += 1 - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.post(f"/tu/{voteinfo.ID}", data=data) + response = request.post(f"/package-maintainer/{voteinfo.ID}", data=data) assert response.status_code == int(HTTPStatus.BAD_REQUEST) root = parse_root(response.text) @@ -858,7 +862,7 @@ def test_tu_proposal_vote_already_voted(client, proposal): with client as request: data = {"decision": "Yes"} request.cookies = cookies - response = request.get(f"/tu/{voteinfo.ID}", params=data) + response = request.get(f"/package-maintainer/{voteinfo.ID}", params=data) assert response.status_code == int(HTTPStatus.OK) root = parse_root(response.text) @@ -866,45 +870,45 @@ def test_tu_proposal_vote_already_voted(client, proposal): assert status == "You've already voted for this proposal." -def test_tu_proposal_vote_invalid_decision(client, proposal): - tu_user, user, voteinfo = proposal +def test_pm_proposal_vote_invalid_decision(client, proposal): + pm_user, user, voteinfo = proposal - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: data = {"decision": "EVIL"} request.cookies = cookies - response = request.post(f"/tu/{voteinfo.ID}", data=data) + response = request.post(f"package-maintainer/{voteinfo.ID}", data=data) assert response.status_code == int(HTTPStatus.BAD_REQUEST) assert response.text == "Invalid 'decision' value." -def test_tu_addvote(client: TestClient, tu_user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_addvote(client: TestClient, pm_user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies response = request.get("/addvote") assert response.status_code == int(HTTPStatus.OK) -def test_tu_addvote_unauthorized( - client: TestClient, user: User, proposal: Tuple[User, User, TUVoteInfo] +def test_pm_addvote_unauthorized( + client: TestClient, user: User, proposal: Tuple[User, User, VoteInfo] ): cookies = {"AURSID": user.login(Request(), "testPassword")} with client as request: request.cookies = cookies response = request.get("/addvote") assert response.status_code == int(HTTPStatus.SEE_OTHER) - assert response.headers.get("location") == "/tu" + assert response.headers.get("location") == "/package-maintainer" with client as request: request.cookies = cookies response = request.post("/addvote") assert response.status_code == int(HTTPStatus.SEE_OTHER) - assert response.headers.get("location") == "/tu" + assert response.headers.get("location") == "/package-maintainer" -def test_tu_addvote_invalid_type(client: TestClient, tu_user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_addvote_invalid_type(client: TestClient, pm_user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies response = request.get("/addvote", params={"type": "faketype"}) @@ -915,33 +919,33 @@ def test_tu_addvote_invalid_type(client: TestClient, tu_user: User): assert error.strip() == "Invalid type." -def test_tu_addvote_post(client: TestClient, tu_user: User, user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_addvote_post(client: TestClient, pm_user: User, user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} - data = {"user": user.Username, "type": "add_tu", "agenda": "Blah"} + data = {"user": user.Username, "type": "add_pm", "agenda": "Blah"} with client as request: request.cookies = cookies response = request.post("/addvote", data=data) assert response.status_code == int(HTTPStatus.SEE_OTHER) - voteinfo = db.query(TUVoteInfo, TUVoteInfo.Agenda == "Blah").first() + voteinfo = db.query(VoteInfo, VoteInfo.Agenda == "Blah").first() assert voteinfo is not None -def test_tu_addvote_post_cant_duplicate_username( - client: TestClient, tu_user: User, user: User +def test_pm_addvote_post_cant_duplicate_username( + client: TestClient, pm_user: User, user: User ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} - data = {"user": user.Username, "type": "add_tu", "agenda": "Blah"} + data = {"user": user.Username, "type": "add_pm", "agenda": "Blah"} with client as request: request.cookies = cookies response = request.post("/addvote", data=data) assert response.status_code == int(HTTPStatus.SEE_OTHER) - voteinfo = db.query(TUVoteInfo, TUVoteInfo.Agenda == "Blah").first() + voteinfo = db.query(VoteInfo, VoteInfo.Agenda == "Blah").first() assert voteinfo is not None with client as request: @@ -950,8 +954,8 @@ def test_tu_addvote_post_cant_duplicate_username( assert response.status_code == int(HTTPStatus.BAD_REQUEST) -def test_tu_addvote_post_invalid_username(client: TestClient, tu_user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_addvote_post_invalid_username(client: TestClient, pm_user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} data = {"user": "fakeusername"} with client as request: request.cookies = cookies @@ -959,8 +963,8 @@ def test_tu_addvote_post_invalid_username(client: TestClient, tu_user: User): assert response.status_code == int(HTTPStatus.NOT_FOUND) -def test_tu_addvote_post_invalid_type(client: TestClient, tu_user: User, user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pm_addvote_post_invalid_type(client: TestClient, pm_user: User, user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} data = {"user": user.Username} with client as request: request.cookies = cookies @@ -968,18 +972,18 @@ def test_tu_addvote_post_invalid_type(client: TestClient, tu_user: User, user: U assert response.status_code == int(HTTPStatus.BAD_REQUEST) -def test_tu_addvote_post_invalid_agenda(client: TestClient, tu_user: User, user: User): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} - data = {"user": user.Username, "type": "add_tu"} +def test_pm_addvote_post_invalid_agenda(client: TestClient, pm_user: User, user: User): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} + data = {"user": user.Username, "type": "add_pm"} with client as request: request.cookies = cookies response = request.post("/addvote", data=data) assert response.status_code == int(HTTPStatus.BAD_REQUEST) -def test_tu_addvote_post_bylaws(client: TestClient, tu_user: User): +def test_pm_addvote_post_bylaws(client: TestClient, pm_user: User): # Bylaws votes do not need a user specified. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} data = {"type": "bylaws", "agenda": "Blah blah!"} with client as request: request.cookies = cookies diff --git a/test/test_packages_routes.py b/test/test_packages_routes.py index fb12e65e..4bf7a5ae 100644 --- a/test/test_packages_routes.py +++ b/test/test_packages_routes.py @@ -113,18 +113,20 @@ def maintainer() -> User: @pytest.fixture -def tu_user(): - tu_type = db.query(AccountType, AccountType.AccountType == "Trusted User").first() +def pm_user(): + pm_type = db.query( + AccountType, AccountType.AccountType == "Package Maintainer" + ).first() with db.begin(): - tu_user = db.create( + pm_user = db.create( User, - Username="test_tu", - Email="test_tu@example.org", - RealName="Test TU", + Username="test_pm", + Email="test_pm@example.org", + RealName="Test PM", Passwd="testPassword", - AccountType=tu_type, + AccountType=pm_type, ) - yield tu_user + yield pm_user @pytest.fixture @@ -505,7 +507,9 @@ def test_package_requests_display( client: TestClient, user: User, package: Package, pkgreq: PackageRequest ): # Test that a single request displays "1 pending request". + cookies = {"AURSID": user.login(Request(), "testPassword")} with client as request: + request.cookies = cookies resp = request.get(package_endpoint(package)) assert resp.status_code == int(HTTPStatus.OK) @@ -528,6 +532,7 @@ def test_package_requests_display( # Test that a two requests display "2 pending requests". with client as request: + request.cookies = cookies resp = request.get(package_endpoint(package)) assert resp.status_code == int(HTTPStatus.OK) @@ -601,7 +606,7 @@ def test_package_authenticated_maintainer( for expected_text in expected: assert expected_text in resp.text - # make sure we don't have these. Only for TUs/Devs + # make sure we don't have these. Only for PMs/Devs not_expected = [ "1 pending request", "Delete Package", @@ -611,10 +616,10 @@ def test_package_authenticated_maintainer( assert unexpected_text not in resp.text -def test_package_authenticated_tu( - client: TestClient, tu_user: User, package: Package, pkgreq: PackageRequest +def test_package_authenticated_pm( + client: TestClient, pm_user: User, package: Package, pkgreq: PackageRequest ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get(package_endpoint(package)) @@ -1570,10 +1575,10 @@ def test_packages_post_disown_as_maintainer( def test_packages_post_disown( - client: TestClient, tu_user: User, maintainer: User, package: Package + client: TestClient, pm_user: User, maintainer: User, package: Package ): - """Disown packages as a Trusted User, which cannot bypass idle time.""" - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + """Disown packages as a Package Maintainer, which cannot bypass idle time.""" + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.post( @@ -1590,7 +1595,7 @@ def test_packages_post_delete( caplog: pytest.fixture, client: TestClient, user: User, - tu_user: User, + pm_user: User, package: Package, ): # First, let's try to use the delete action with no packages IDs. @@ -1630,12 +1635,12 @@ def test_packages_post_delete( expected = "You do not have permission to delete packages." assert errors[0].text.strip() == expected - # Now, let's switch over to making the requests as a TU. + # Now, let's switch over to making the requests as a PM. # However, this next request will be rejected due to supplying # an invalid package ID. - tu_cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + pm_cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: - request.cookies = tu_cookies + request.cookies = pm_cookies resp = request.post( "/packages", data={"action": "delete", "IDs": [0], "confirm": True}, @@ -1645,10 +1650,10 @@ def test_packages_post_delete( expected = "One of the packages you selected does not exist." assert errors[0].text.strip() == expected - # Whoo. Now, let's finally make a valid request as `tu_user` + # Whoo. Now, let's finally make a valid request as `pm_user` # to delete `package`. with client as request: - request.cookies = tu_cookies + request.cookies = pm_cookies resp = request.post( "/packages", data={"action": "delete", "IDs": [package.ID], "confirm": True}, @@ -1661,7 +1666,7 @@ def test_packages_post_delete( # Expect that the package deletion was logged. pkgbases = [package.PackageBase.Name] expected = ( - f"Privileged user '{tu_user.Username}' deleted the " + f"Privileged user '{pm_user.Username}' deleted the " f"following package bases: {str(pkgbases)}." ) assert expected in caplog.text diff --git a/test/test_packages_util.py b/test/test_packages_util.py index bae84614..649e7a99 100644 --- a/test/test_packages_util.py +++ b/test/test_packages_util.py @@ -10,8 +10,10 @@ from aurweb.models.package import Package from aurweb.models.package_base import PackageBase from aurweb.models.package_dependency import PackageDependency from aurweb.models.package_notification import PackageNotification +from aurweb.models.package_relation import PackageRelation from aurweb.models.package_source import PackageSource from aurweb.models.package_vote import PackageVote +from aurweb.models.relation_type import PROVIDES_ID from aurweb.models.user import User from aurweb.packages import util @@ -155,3 +157,41 @@ def test_pkg_required(package: Package): # We should have 1 record assert qry.count() == 1 + + +def test_provides_markup(package: Package): + # Create dependency and provider for AUR pkg + with db.begin(): + dep = db.create( + PackageDependency, + Package=package, + DepName="test", + DepTypeID=DEPENDS_ID, + ) + rel_pkg = db.create(Package, PackageBase=package.PackageBase, Name=dep.DepName) + db.create( + PackageRelation, + Package=rel_pkg, + RelName=dep.DepName, + RelTypeID=PROVIDES_ID, + ) + + # AUR provider links should end with AUR + link = util.provides_markup(dep.provides()) + assert link.endswith("AUR") + assert OFFICIAL_BASE not in link + + # Remove AUR provider and add official one + with db.begin(): + db.delete(rel_pkg) + db.create( + OfficialProvider, + Name="official-pkg", + Repo="extra", + Provides=dep.DepName, + ) + + # Repo provider links should not have any suffix + link = util.provides_markup(dep.provides()) + assert link.endswith("") + assert OFFICIAL_BASE in link diff --git a/test/test_pkgbase_routes.py b/test/test_pkgbase_routes.py index 679986ff..522bb68b 100644 --- a/test/test_pkgbase_routes.py +++ b/test/test_pkgbase_routes.py @@ -6,7 +6,7 @@ import pytest from fastapi.testclient import TestClient from sqlalchemy import and_ -from aurweb import asgi, db, time +from aurweb import asgi, config, db, time from aurweb.models.account_type import USER_ID, AccountType from aurweb.models.dependency_type import DependencyType from aurweb.models.package import Package @@ -25,6 +25,8 @@ from aurweb.testing.email import Email from aurweb.testing.html import get_errors, get_successes, parse_root from aurweb.testing.requests import Request +max_chars_comment = config.getint("options", "max_chars_comment", 5000) + def package_endpoint(package: Package) -> str: return f"/packages/{package.Name}" @@ -116,18 +118,20 @@ def comaintainer() -> User: @pytest.fixture -def tu_user(): - tu_type = db.query(AccountType, AccountType.AccountType == "Trusted User").first() +def pm_user(): + pm_type = db.query( + AccountType, AccountType.AccountType == "Package Maintainer" + ).first() with db.begin(): - tu_user = db.create( + pm_user = db.create( User, - Username="test_tu", - Email="test_tu@example.org", - RealName="Test TU", + Username="test_pm", + Email="test_pm@example.org", + RealName="Test PM", Passwd="testPassword", - AccountType=tu_type, + AccountType=pm_type, ) - yield tu_user + yield pm_user @pytest.fixture @@ -302,25 +306,25 @@ def test_pkgbase_maintainer( assert comaint == f"({user.Username})" -def test_pkgbase_voters(client: TestClient, tu_user: User, package: Package): +def test_pkgbase_voters(client: TestClient, pm_user: User, package: Package): pkgbase = package.PackageBase endpoint = f"/pkgbase/{pkgbase.Name}/voters" now = time.utcnow() with db.begin(): - db.create(PackageVote, User=tu_user, PackageBase=pkgbase, VoteTS=now) + db.create(PackageVote, User=pm_user, PackageBase=pkgbase, VoteTS=now) - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get(endpoint) assert resp.status_code == int(HTTPStatus.OK) - # We should've gotten one link to the voter, tu_user. + # We should've gotten one link to the voter, pm_user. root = parse_root(resp.text) rows = root.xpath('//div[@class="box"]//ul/li/a') assert len(rows) == 1 - assert rows[0].text.strip() == tu_user.Username + assert rows[0].text.strip() == pm_user.Username def test_pkgbase_voters_unauthorized(client: TestClient, user: User, package: Package): @@ -570,6 +574,38 @@ def test_pkgbase_comments( assert "form" in data +def test_pkgbase_comment_exceed_character_limit( + client: TestClient, + user: User, + package: Package, + comment: PackageComment, +): + # Post new comment + cookies = {"AURSID": user.login(Request(), "testPassword")} + pkgbasename = package.PackageBase.Name + endpoint = f"/pkgbase/{pkgbasename}/comments" + + with client as request: + request.cookies = cookies + resp = request.post( + endpoint, + data={"comment": "x" * (max_chars_comment + 1)}, + ) + assert resp.status_code == int(HTTPStatus.BAD_REQUEST) + assert "Maximum number of characters for comment exceeded." in resp.text + # Edit existing + cookies = {"AURSID": user.login(Request(), "testPassword")} + with client as request: + request.cookies = cookies + endp = f"/pkgbase/{pkgbasename}/comments/{comment.ID}" + response = request.post( + endp, + data={"comment": "x" * (max_chars_comment + 1)}, + ) + assert response.status_code == HTTPStatus.BAD_REQUEST + assert "Maximum number of characters for comment exceeded." in resp.text + + def test_pkgbase_comment_edit_unauthorized( client: TestClient, user: User, @@ -933,6 +969,28 @@ def test_pkgbase_request_post_no_comment_error( assert error.text.strip() == expected +def test_pkgbase_request_post_comment_exceed_character_limit( + client: TestClient, user: User, package: Package +): + endpoint = f"/pkgbase/{package.PackageBase.Name}/request" + cookies = {"AURSID": user.login(Request(), "testPassword")} + with client as request: + request.cookies = cookies + resp = request.post( + endpoint, + data={ + "type": "deletion", + "comments": "x" * (max_chars_comment + 1), + }, + ) + assert resp.status_code == int(HTTPStatus.OK) + + root = parse_root(resp.text) + error = root.xpath('//ul[@class="errorlist"]/li')[0] + expected = "Maximum number of characters for comment exceeded." + assert error.text.strip() == expected + + def test_pkgbase_request_post_merge_not_found_error( client: TestClient, user: User, package: Package ): @@ -1085,6 +1143,13 @@ def test_pkgbase_flag( assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert pkgbase.Flagger is None + # Try flagging with a comment that exceeds our character limit. + with client as request: + request.cookies = cookies + data = {"comments": "x" * (max_chars_comment + 1)} + resp = request.post(f"/pkgbase/{pkgbase.Name}/flag", data=data) + assert resp.status_code == int(HTTPStatus.BAD_REQUEST) + # Flag it again. with client as request: request.cookies = cookies @@ -1302,7 +1367,7 @@ def test_pkgbase_disown( def test_pkgbase_adopt( - client: TestClient, user: User, tu_user: User, maintainer: User, package: Package + client: TestClient, user: User, pm_user: User, maintainer: User, package: Package ): # Unset the maintainer as if package is orphaned. with db.begin(): @@ -1327,13 +1392,13 @@ def test_pkgbase_adopt( assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert package.PackageBase.Maintainer == maintainer - # Steal the package as a TU. - tu_cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # Steal the package as a PM. + pm_cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: - request.cookies = tu_cookies + request.cookies = pm_cookies resp = request.post(endpoint) assert resp.status_code == int(HTTPStatus.SEE_OTHER) - assert package.PackageBase.Maintainer == tu_user + assert package.PackageBase.Maintainer == pm_user def test_pkgbase_delete_unauthorized(client: TestClient, user: User, package: Package): @@ -1356,11 +1421,11 @@ def test_pkgbase_delete_unauthorized(client: TestClient, user: User, package: Pa assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}" -def test_pkgbase_delete(client: TestClient, tu_user: User, package: Package): +def test_pkgbase_delete(client: TestClient, pm_user: User, package: Package): pkgbase = package.PackageBase # Test that the GET request works. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{pkgbase.Name}/delete" with client as request: request.cookies = cookies @@ -1394,13 +1459,13 @@ def test_pkgbase_delete(client: TestClient, tu_user: User, package: Package): def test_pkgbase_delete_with_request( - client: TestClient, tu_user: User, pkgbase: PackageBase, pkgreq: PackageRequest + client: TestClient, pm_user: User, pkgbase: PackageBase, pkgreq: PackageRequest ): # TODO: Test that a previously existing request gets Accepted when - # a TU deleted the package. + # a PM deleted the package. - # Delete the package as `tu_user` via POST request. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # Delete the package as `pm_user` via POST request. + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{pkgbase.Name}/delete" with client as request: request.cookies = cookies @@ -1477,8 +1542,8 @@ def test_pkgbase_merge_unauthorized(client: TestClient, user: User, package: Pac assert resp.status_code == int(HTTPStatus.UNAUTHORIZED) -def test_pkgbase_merge(client: TestClient, tu_user: User, package: Package): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} +def test_pkgbase_merge(client: TestClient, pm_user: User, package: Package): + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{package.PackageBase.Name}/merge" with client as request: request.cookies = cookies @@ -1499,9 +1564,9 @@ def test_pkgbase_merge_post_unauthorized( def test_pkgbase_merge_post_unconfirmed( - client: TestClient, tu_user: User, package: Package + client: TestClient, pm_user: User, package: Package ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{package.PackageBase.Name}/merge" with client as request: request.cookies = cookies @@ -1516,9 +1581,9 @@ def test_pkgbase_merge_post_unconfirmed( def test_pkgbase_merge_post_invalid_into( - client: TestClient, tu_user: User, package: Package + client: TestClient, pm_user: User, package: Package ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{package.PackageBase.Name}/merge" with client as request: request.cookies = cookies @@ -1530,9 +1595,9 @@ def test_pkgbase_merge_post_invalid_into( def test_pkgbase_merge_post_self_invalid( - client: TestClient, tu_user: User, package: Package + client: TestClient, pm_user: User, package: Package ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{package.PackageBase.Name}/merge" with client as request: request.cookies = cookies @@ -1548,7 +1613,7 @@ def test_pkgbase_merge_post_self_invalid( def test_pkgbase_merge_post( client: TestClient, - tu_user: User, + pm_user: User, package: Package, pkgbase: PackageBase, target: PackageBase, @@ -1565,7 +1630,7 @@ def test_pkgbase_merge_post( pkgreq.MergeBaseName = target.Name # Vote for the package. - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} endpoint = f"/pkgbase/{package.PackageBase.Name}/vote" with client as request: request.cookies = cookies diff --git a/test/test_tu_vote.py b/test/test_pm_vote.py similarity index 50% rename from test/test_tu_vote.py rename to test/test_pm_vote.py index 8c1c08de..54d5c137 100644 --- a/test/test_tu_vote.py +++ b/test/test_pm_vote.py @@ -2,10 +2,10 @@ import pytest from sqlalchemy.exc import IntegrityError from aurweb import db, time -from aurweb.models.account_type import TRUSTED_USER_ID -from aurweb.models.tu_vote import TUVote -from aurweb.models.tu_voteinfo import TUVoteInfo +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID from aurweb.models.user import User +from aurweb.models.vote import Vote +from aurweb.models.voteinfo import VoteInfo @pytest.fixture(autouse=True) @@ -22,17 +22,17 @@ def user() -> User: Email="test@example.org", RealName="Test User", Passwd="testPassword", - AccountTypeID=TRUSTED_USER_ID, + AccountTypeID=PACKAGE_MAINTAINER_ID, ) yield user @pytest.fixture -def tu_voteinfo(user: User) -> TUVoteInfo: +def voteinfo(user: User) -> VoteInfo: ts = time.utcnow() with db.begin(): - tu_voteinfo = db.create( - TUVoteInfo, + voteinfo = db.create( + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=ts, @@ -40,24 +40,24 @@ def tu_voteinfo(user: User) -> TUVoteInfo: Quorum=0.5, Submitter=user, ) - yield tu_voteinfo + yield voteinfo -def test_tu_vote_creation(user: User, tu_voteinfo: TUVoteInfo): +def test_vote_creation(user: User, voteinfo: VoteInfo): with db.begin(): - tu_vote = db.create(TUVote, User=user, VoteInfo=tu_voteinfo) + vote = db.create(Vote, User=user, VoteInfo=voteinfo) - assert tu_vote.VoteInfo == tu_voteinfo - assert tu_vote.User == user - assert tu_vote in user.tu_votes - assert tu_vote in tu_voteinfo.tu_votes + assert vote.VoteInfo == voteinfo + assert vote.User == user + assert vote in user.votes + assert vote in voteinfo.votes -def test_tu_vote_null_user_raises_exception(tu_voteinfo: TUVoteInfo): +def test_vote_null_user_raises_exception(voteinfo: VoteInfo): with pytest.raises(IntegrityError): - TUVote(VoteInfo=tu_voteinfo) + Vote(VoteInfo=voteinfo) -def test_tu_vote_null_voteinfo_raises_exception(user: User): +def test_vote_null_voteinfo_raises_exception(user: User): with pytest.raises(IntegrityError): - TUVote(User=user) + Vote(User=user) diff --git a/test/test_rendercomment.py b/test/test_rendercomment.py index f9edb45b..9d45fea9 100644 --- a/test/test_rendercomment.py +++ b/test/test_rendercomment.py @@ -105,6 +105,29 @@ def test_markdown_conversion(user: User, pkgbase: PackageBase): assert comment.RenderedComment == expected +def test_markdown_in_html_block(user: User, pkgbase: PackageBase): + # without "markdown" attribute + text = "

    test*Hello*
    " + comment = create_comment(user, pkgbase, text) + expected = "
    test*Hello*
    " + assert comment.RenderedComment == expected + + # with "markdown" attribute + text = "
    test*Hello*
    " + comment = create_comment(user, pkgbase, text) + expected = ( + "
    \n

    testHello

    \n
    " + ) + assert comment.RenderedComment == expected + + +def test_markdown_strikethrough(user: User, pkgbase: PackageBase): + text = "*~~Hello~~world*~~!~~" + comment = create_comment(user, pkgbase, text) + expected = "

    Helloworld!

    " + assert comment.RenderedComment == expected + + def test_html_sanitization(user: User, pkgbase: PackageBase): text = '' comment = create_comment(user, pkgbase, text) diff --git a/test/test_requests.py b/test/test_requests.py index eb88cd94..1e9cac65 100644 --- a/test/test_requests.py +++ b/test/test_requests.py @@ -8,7 +8,7 @@ from fastapi.testclient import TestClient from aurweb import asgi, config, db, defaults, time from aurweb.models import Package, PackageBase, PackageRequest, User -from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID, USER_ID from aurweb.models.package_comaintainer import PackageComaintainer from aurweb.models.package_notification import PackageNotification from aurweb.models.package_request import ACCEPTED_ID, PENDING_ID, REJECTED_ID @@ -144,9 +144,11 @@ def requests( pkgreq = db.create( PackageRequest, ReqTypeID=DELETION_ID, - User=maintainer2 - if packages[i].PackageBase.Maintainer.Username == "test_maintainer2" - else user, + User=( + maintainer2 + if packages[i].PackageBase.Maintainer.Username == "test_maintainer2" + else user + ), PackageBase=packages[i].PackageBase, PackageBaseName=packages[i].Name, Comments=f"Deletion request for pkg_{i}", @@ -157,11 +159,11 @@ def requests( @pytest.fixture -def tu_user() -> User: - """Yield an authenticated Trusted User instance.""" - user = create_user("test_tu", "test_tu@example.org") +def pm_user() -> User: + """Yield an authenticated Package Maintainer instance.""" + user = create_user("test_pm", "test_pm@example.org") with db.begin(): - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID cookies = {"AURSID": user.login(Request(), "testPassword")} user.cookies = cookies yield user @@ -416,7 +418,7 @@ def test_request_post_orphan(client: TestClient, auser: User, pkgbase: PackageBa def test_deletion_request( client: TestClient, user: User, - tu_user: User, + pm_user: User, pkgbase: PackageBase, pkgreq: PackageRequest, ): @@ -433,7 +435,7 @@ def test_deletion_request( comments = "Test closure." data = {"comments": comments, "confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == "/packages" @@ -456,17 +458,17 @@ def test_deletion_request( email = Email(3).parse() subject = r"^AUR Package deleted: [^ ]+$" assert re.match(subject, email.headers.get("Subject")) - body = r"%s [1] deleted %s [2]." % (tu_user.Username, pkgbase.Name) + body = r"%s [1] deleted %s [2]." % (pm_user.Username, pkgbase.Name) assert body in email.body -def test_deletion_autorequest(client: TestClient, tu_user: User, pkgbase: PackageBase): +def test_deletion_autorequest(client: TestClient, pm_user: User, pkgbase: PackageBase): """Test deleting a package without a request.""" # `pkgreq`.ReqTypeID is already DELETION_ID. endpoint = f"/pkgbase/{pkgbase.Name}/delete" data = {"confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) @@ -480,14 +482,14 @@ def test_deletion_autorequest(client: TestClient, tu_user: User, pkgbase: Packag def test_deletion_autorequest_with_comment( - client: TestClient, tu_user: User, pkgbase: PackageBase + client: TestClient, pm_user: User, pkgbase: PackageBase ): """Test deleting a package without a request and a comment.""" # `pkgreq`.ReqTypeID is already DELETION_ID. endpoint = f"/pkgbase/{pkgbase.Name}/delete" data = {"confirm": True, "comments": "deleted with comment"} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) @@ -503,7 +505,7 @@ def test_deletion_autorequest_with_comment( def test_merge_request( client: TestClient, user: User, - tu_user: User, + pm_user: User, pkgbase: PackageBase, target: PackageBase, pkgreq: PackageRequest, @@ -526,7 +528,7 @@ def test_merge_request( comments = "Test merge closure." data = {"into": target.Name, "comments": comments, "confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == f"/pkgbase/{target.Name}" @@ -561,7 +563,7 @@ def test_merge_request( def test_merge_autorequest( client: TestClient, user: User, - tu_user: User, + pm_user: User, pkgbase: PackageBase, target: PackageBase, ): @@ -574,7 +576,7 @@ def test_merge_autorequest( endpoint = f"/pkgbase/{pkgbase.Name}/merge" data = {"into": target.Name, "confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == f"/pkgbase/{target.Name}" @@ -592,7 +594,7 @@ def test_merge_autorequest( def test_merge_autorequest_with_comment( client: TestClient, user: User, - tu_user: User, + pm_user: User, pkgbase: PackageBase, target: PackageBase, ): @@ -605,7 +607,7 @@ def test_merge_autorequest_with_comment( endpoint = f"/pkgbase/{pkgbase.Name}/merge" data = {"into": target.Name, "confirm": True, "comments": "merged with comment"} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == f"/pkgbase/{target.Name}" @@ -623,7 +625,7 @@ def test_merge_autorequest_with_comment( def test_orphan_request( client: TestClient, user: User, - tu_user: User, + pm_user: User, pkgbase: PackageBase, pkgreq: PackageRequest, ): @@ -643,7 +645,7 @@ def test_orphan_request( comments = "Test orphan closure." data = {"comments": comments, "confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}" @@ -665,7 +667,7 @@ def test_orphan_request( def test_request_post_orphan_autogenerated_closure( - client: TestClient, tu_user: User, pkgbase: PackageBase, pkgreq: PackageRequest + client: TestClient, pm_user: User, pkgbase: PackageBase, pkgreq: PackageRequest ): idle_time = config.getint("options", "request_idle_time") now = time.utcnow() @@ -677,7 +679,7 @@ def test_request_post_orphan_autogenerated_closure( endpoint = f"/pkgbase/{pkgbase.Name}/disown" data = {"confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.SEE_OTHER) assert resp.headers.get("location") == f"/pkgbase/{pkgbase.Name}" @@ -752,13 +754,13 @@ def test_orphan_as_maintainer(client: TestClient, auser: User, pkgbase: PackageB def test_orphan_without_requests( - client: TestClient, tu_user: User, pkgbase: PackageBase + client: TestClient, pm_user: User, pkgbase: PackageBase ): """Test orphans are automatically accepted past a certain date.""" endpoint = f"/pkgbase/{pkgbase.Name}/disown" data = {"confirm": True} with client as request: - request.cookies = tu_user.cookies + request.cookies = pm_user.cookies resp = request.post(endpoint, data=data) assert resp.status_code == int(HTTPStatus.BAD_REQUEST) @@ -792,11 +794,11 @@ def test_requests_unauthorized(client: TestClient): def test_requests( client: TestClient, - tu_user: User, + pm_user: User, packages: list[Package], requests: list[PackageRequest], ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get( @@ -832,14 +834,24 @@ def test_requests( rows = root.xpath('//table[@class="results"]/tbody/tr') assert len(rows) == 5 # There are five records left on the second page. + # Delete requesters user account and check output + with db.begin(): + db.delete(requests[0].User) + + with client as request: + request.cookies = cookies + resp = request.get("/requests") + + assert "(deleted)" in resp.text + def test_requests_with_filters( client: TestClient, - tu_user: User, + pm_user: User, packages: list[Package], requests: list[PackageRequest], ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get( @@ -893,11 +905,11 @@ def test_requests_with_filters( def test_requests_for_maintainer_requests( client: TestClient, - tu_user: User, + pm_user: User, packages: list[Package], requests: list[PackageRequest], ): - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get( @@ -914,13 +926,13 @@ def test_requests_for_maintainer_requests( def test_requests_with_package_name_filter( client: TestClient, - tu_user: User, + pm_user: User, user2: User, packages: list[Package], requests: list[PackageRequest], ): - # test as TU - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + # test as PM + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get( @@ -934,7 +946,7 @@ def test_requests_with_package_name_filter( # We expect 11 requests for all packages containing "kg_1" assert len(rows) == 11 - # test as TU, no results + # test as PM, no results with client as request: request.cookies = cookies resp = request.get( @@ -965,12 +977,12 @@ def test_requests_with_package_name_filter( def test_requests_by_deleted_users( - client: TestClient, user: User, tu_user: User, pkgreq: PackageRequest + client: TestClient, user: User, pm_user: User, pkgreq: PackageRequest ): with db.begin(): db.delete(user) - cookies = {"AURSID": tu_user.login(Request(), "testPassword")} + cookies = {"AURSID": pm_user.login(Request(), "testPassword")} with client as request: request.cookies = cookies resp = request.get("/requests") diff --git a/test/test_rpc.py b/test/test_rpc.py index d33578d0..a2256700 100644 --- a/test/test_rpc.py +++ b/test/test_rpc.py @@ -310,8 +310,8 @@ def pipeline(): redis = redis_connection() pipeline = redis.pipeline() - # The 'testclient' host is used when requesting the app - # via fastapi.testclient.TestClient. + # 'testclient' is our fallback value in case request.client is None + # which is the case for TestClient pipeline.delete("ratelimit-ws:testclient") pipeline.delete("ratelimit:testclient") pipeline.execute() diff --git a/test/test_session.py b/test/test_session.py index db792b33..f1af9613 100644 --- a/test/test_session.py +++ b/test/test_session.py @@ -1,4 +1,5 @@ """ Test our Session model. """ + from unittest import mock import pytest diff --git a/test/test_statistics.py b/test/test_statistics.py index db262fa3..4859a2ce 100644 --- a/test/test_statistics.py +++ b/test/test_statistics.py @@ -3,7 +3,7 @@ from prometheus_client import REGISTRY, generate_latest from aurweb import cache, db, time from aurweb.models import Package, PackageBase, PackageRequest -from aurweb.models.account_type import TRUSTED_USER_ID, USER_ID +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID, USER_ID from aurweb.models.package_request import ( ACCEPTED_ID, CLOSED_ID, @@ -16,7 +16,7 @@ from aurweb.statistics import Statistics, update_prometheus_metrics @pytest.fixture(autouse=True) -def setup(db_test): +def setup(db_test, prometheus_test): return @@ -64,7 +64,7 @@ def test_data(): # Modify some data to get some variances for our counters if i == 1: - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID pkgbase.Maintainer = None pkgbase.SubmittedTS = now pkgreq.Status = PENDING_ID @@ -99,7 +99,7 @@ def stats() -> Statistics: ("year_old_updated", 9), ("never_updated", 1), ("user_count", 10), - ("trusted_user_count", 1), + ("package_maintainer_count", 1), ("regular_user_count", 9), ("updated_packages", 9), ("total_requests", 10), @@ -116,10 +116,10 @@ def test_get_count(stats: Statistics, test_data, counter: str, expected: int): def test_get_count_change(stats: Statistics, test_data): pkgs_before = stats.get_count("package_count") - tus_before = stats.get_count("trusted_user_count") + pms_before = stats.get_count("package_maintainer_count") assert pkgs_before == 10 - assert tus_before == 1 + assert pms_before == 1 # Let's delete a package and promote a user to TU with db.begin(): @@ -127,16 +127,16 @@ def test_get_count_change(stats: Statistics, test_data): db.delete(pkgbase) user = db.query(User).filter(User.AccountTypeID == USER_ID).first() - user.AccountTypeID = TRUSTED_USER_ID + user.AccountTypeID = PACKAGE_MAINTAINER_ID # Values should end up in (fake) redis cache so they should be the same assert stats.get_count("package_count") == pkgs_before - assert stats.get_count("trusted_user_count") == tus_before + assert stats.get_count("package_maintainer_count") == pms_before # Let's clear the cache and check again cache._redis.flushall() assert stats.get_count("package_count") != pkgs_before - assert stats.get_count("trusted_user_count") != tus_before + assert stats.get_count("package_maintainer_count") != pms_before def test_update_prometheus_metrics(test_data): diff --git a/test/test_templates.py b/test/test_templates.py index 6e0d27ac..18a1f2b8 100644 --- a/test/test_templates.py +++ b/test/test_templates.py @@ -8,8 +8,10 @@ from aurweb import config, db, templates, time from aurweb.filters import as_timezone, number_format, timestamp_to_datetime as to_dt from aurweb.models import Package, PackageBase, User from aurweb.models.account_type import USER_ID +from aurweb.models.group import Group from aurweb.models.license import License from aurweb.models.package_base import popularity +from aurweb.models.package_group import PackageGroup from aurweb.models.package_license import PackageLicense from aurweb.models.package_relation import PackageRelation from aurweb.models.relation_type import PROVIDES_ID, REPLACES_ID @@ -88,6 +90,12 @@ def create_license(pkg: Package, license_name: str) -> PackageLicense: return pkglic +def create_group(pkg: Package, group_name: str) -> PackageGroup: + grp = db.create(Group, Name=group_name) + pkggrp = db.create(PackageGroup, Group=grp, Package=pkg) + return pkggrp + + def test_register_function_exists_key_error(): """Most instances of register_filter are tested through module imports or template renders, so we only test failures here.""" @@ -219,6 +227,15 @@ def check_package_details(content: str, pkg: Package) -> None: else: assert "Licenses" not in content + groups = pkg.package_groups.all() + if groups: + i += 1 + expected = ", ".join([p.Group.Name for p in groups]) + group_markup = rows[i].xpath("./td")[0] + assert group_markup.text.strip() == expected + else: + assert "Groups" not in content + provides = pkg.package_relations.filter( PackageRelation.RelTypeID == PROVIDES_ID ).all() @@ -319,6 +336,10 @@ def test_package_details_filled(user: User, package: Package): create_license(package, "TPL") # Testing Public License create_license(package, "TPL2") # Testing Public License 2 + # Create two groups. + create_group(package, "GRP") + create_group(package, "GRP2") + # Add provides. create_pkgrel(package, PROVIDES_ID, "test-provider") @@ -337,6 +358,7 @@ def test_package_details_filled(user: User, package: Package): "package": package, "comaintainers": [], "licenses": package.package_licenses, + "groups": package.package_groups, "provides": package.package_relations.filter( PackageRelation.RelTypeID == PROVIDES_ID ), @@ -368,3 +390,13 @@ async def test_make_variable_context_timezone(user: User, package: Package): request, "Test Details", next="/packages/test" ) assert context["timezone"] in time.SUPPORTED_TIMEZONES + + +@pytest.mark.asyncio +async def test_make_variable_context_params(): + request = Request(url="/test", query_params={"request": "test", "x": "test"}) + context = await make_variable_context(request, "Test") + + # make sure we can't override our Request object with a query parameter + assert context["request"] != "test" + assert context["x"] == "test" diff --git a/test/test_time.py b/test/test_time.py index db7b30bf..45328717 100644 --- a/test/test_time.py +++ b/test/test_time.py @@ -15,18 +15,22 @@ def test_tz_offset_mst(): def test_request_timezone(): request = Request() - tz = get_request_timezone(request) - assert tz == aurweb.config.get("options", "default_timezone") + # Default timezone + dtz = aurweb.config.get("options", "default_timezone") + assert get_request_timezone(request) == dtz -def test_authenticated_request_timezone(): - # Modify a fake request to be authenticated with the - # America/Los_Angeles timezone. - request = Request() + # Timezone from query params + request.query_params = {"timezone": "Europe/Berlin"} + assert get_request_timezone(request) == "Europe/Berlin" + + # Timezone from authenticated user. + request.query_params = {} request.user.authenticated = True request.user.Timezone = "America/Los_Angeles" + assert get_request_timezone(request) == "America/Los_Angeles" - # Get the request's timezone, it should be America/Los_Angeles. - tz = get_request_timezone(request) - assert tz == request.user.Timezone - assert tz == "America/Los_Angeles" + # Timezone from authenticated user with query param + # Query param should have precedence + request.query_params = {"timezone": "Europe/Berlin"} + assert get_request_timezone(request) == "Europe/Berlin" diff --git a/test/test_user.py b/test/test_user.py index 17fd0c0e..78a2a513 100644 --- a/test/test_user.py +++ b/test/test_user.py @@ -1,6 +1,6 @@ import hashlib import json -from datetime import datetime, timedelta +from datetime import UTC, datetime, timedelta import bcrypt import pytest @@ -12,8 +12,8 @@ from aurweb import db from aurweb.auth import creds from aurweb.models.account_type import ( DEVELOPER_ID, - TRUSTED_USER_AND_DEV_ID, - TRUSTED_USER_ID, + PACKAGE_MAINTAINER_AND_DEV_ID, + PACKAGE_MAINTAINER_ID, USER_ID, ) from aurweb.models.ban import Ban @@ -52,8 +52,8 @@ def user() -> User: @pytest.fixture -def tu_user() -> User: - user = create_user("test_tu", TRUSTED_USER_ID) +def pm_user() -> User: + user = create_user("test_pm", PACKAGE_MAINTAINER_ID) yield user @@ -64,8 +64,8 @@ def dev_user() -> User: @pytest.fixture -def tu_and_dev_user() -> User: - user = create_user("test_tu_and_dev", TRUSTED_USER_AND_DEV_ID) +def pm_and_dev_user() -> User: + user = create_user("test_pm_and_dev", PACKAGE_MAINTAINER_AND_DEV_ID) yield user @@ -135,7 +135,7 @@ def test_user_login_twice(user: User): def test_user_login_banned(user: User): # Add ban for the next 30 seconds. - banned_timestamp = datetime.utcnow() + timedelta(seconds=30) + banned_timestamp = datetime.now(UTC) + timedelta(seconds=30) with db.begin(): db.create(Ban, IPAddress="127.0.0.1", BanTS=banned_timestamp) @@ -170,7 +170,7 @@ def test_user_login_with_outdated_sid(user: User): Session, UsersID=user.ID, SessionID="stub", - LastUpdateTS=datetime.utcnow().timestamp() - 5, + LastUpdateTS=datetime.now(UTC).timestamp() - 5, ) sid = user.login(Request(), "testPassword") assert sid and user.is_authenticated() @@ -207,33 +207,33 @@ def test_user_ssh_pub_key(user: User): def test_user_credential_types(user: User): - assert user.AccountTypeID in creds.user_developer_or_trusted_user - assert user.AccountTypeID not in creds.trusted_user + assert user.AccountTypeID in creds.user_developer_or_package_maintainer + assert user.AccountTypeID not in creds.package_maintainer assert user.AccountTypeID not in creds.developer - assert user.AccountTypeID not in creds.trusted_user_or_dev + assert user.AccountTypeID not in creds.package_maintainer_or_dev with db.begin(): - user.AccountTypeID = at.TRUSTED_USER_ID + user.AccountTypeID = at.PACKAGE_MAINTAINER_ID - assert user.AccountTypeID in creds.trusted_user - assert user.AccountTypeID in creds.trusted_user_or_dev + assert user.AccountTypeID in creds.package_maintainer + assert user.AccountTypeID in creds.package_maintainer_or_dev with db.begin(): user.AccountTypeID = at.DEVELOPER_ID assert user.AccountTypeID in creds.developer - assert user.AccountTypeID in creds.trusted_user_or_dev + assert user.AccountTypeID in creds.package_maintainer_or_dev with db.begin(): - user.AccountTypeID = at.TRUSTED_USER_AND_DEV_ID + user.AccountTypeID = at.PACKAGE_MAINTAINER_AND_DEV_ID - assert user.AccountTypeID in creds.trusted_user + assert user.AccountTypeID in creds.package_maintainer assert user.AccountTypeID in creds.developer - assert user.AccountTypeID in creds.trusted_user_or_dev + assert user.AccountTypeID in creds.package_maintainer_or_dev # Some model authorization checks. assert user.is_elevated() - assert user.is_trusted_user() + assert user.is_package_maintainer() assert user.is_developer() @@ -255,15 +255,15 @@ def test_user_as_dict(user: User): assert isinstance(data.get("RegistrationTS"), datetime) -def test_user_is_trusted_user(user: User): +def test_user_is_package_maintainer(user: User): with db.begin(): - user.AccountTypeID = at.TRUSTED_USER_ID - assert user.is_trusted_user() is True + user.AccountTypeID = at.PACKAGE_MAINTAINER_ID + assert user.is_package_maintainer() is True # Do it again with the combined role. with db.begin(): - user.AccountTypeID = at.TRUSTED_USER_AND_DEV_ID - assert user.is_trusted_user() is True + user.AccountTypeID = at.PACKAGE_MAINTAINER_AND_DEV_ID + assert user.is_package_maintainer() is True def test_user_is_developer(user: User): @@ -273,13 +273,13 @@ def test_user_is_developer(user: User): # Do it again with the combined role. with db.begin(): - user.AccountTypeID = at.TRUSTED_USER_AND_DEV_ID + user.AccountTypeID = at.PACKAGE_MAINTAINER_AND_DEV_ID assert user.is_developer() is True def test_user_voted_for(user: User, package: Package): pkgbase = package.PackageBase - now = int(datetime.utcnow().timestamp()) + now = int(datetime.now(UTC).timestamp()) with db.begin(): db.create(PackageVote, PackageBase=pkgbase, User=user, VoteTS=now) assert user.voted_for(package) @@ -297,34 +297,34 @@ def test_user_packages(user: User, package: Package): def test_can_edit_user( - user: User, tu_user: User, dev_user: User, tu_and_dev_user: User + user: User, pm_user: User, dev_user: User, pm_and_dev_user: User ): # User can edit. assert user.can_edit_user(user) # User cannot edit. - assert not user.can_edit_user(tu_user) + assert not user.can_edit_user(pm_user) assert not user.can_edit_user(dev_user) - assert not user.can_edit_user(tu_and_dev_user) + assert not user.can_edit_user(pm_and_dev_user) - # Trusted User can edit. - assert tu_user.can_edit_user(user) - assert tu_user.can_edit_user(tu_user) + # Package Maintainer can edit. + assert pm_user.can_edit_user(user) + assert pm_user.can_edit_user(pm_user) - # Trusted User cannot edit. - assert not tu_user.can_edit_user(dev_user) - assert not tu_user.can_edit_user(tu_and_dev_user) + # Package Maintainer cannot edit. + assert not pm_user.can_edit_user(dev_user) + assert not pm_user.can_edit_user(pm_and_dev_user) # Developer can edit. assert dev_user.can_edit_user(user) - assert dev_user.can_edit_user(tu_user) + assert dev_user.can_edit_user(pm_user) assert dev_user.can_edit_user(dev_user) # Developer cannot edit. - assert not dev_user.can_edit_user(tu_and_dev_user) + assert not dev_user.can_edit_user(pm_and_dev_user) - # Trusted User & Developer can edit. - assert tu_and_dev_user.can_edit_user(user) - assert tu_and_dev_user.can_edit_user(tu_user) - assert tu_and_dev_user.can_edit_user(dev_user) - assert tu_and_dev_user.can_edit_user(tu_and_dev_user) + # Package Maintainer & Developer can edit. + assert pm_and_dev_user.can_edit_user(user) + assert pm_and_dev_user.can_edit_user(pm_user) + assert pm_and_dev_user.can_edit_user(dev_user) + assert pm_and_dev_user.can_edit_user(pm_and_dev_user) diff --git a/test/test_tu_voteinfo.py b/test/test_voteinfo.py similarity index 63% rename from test/test_tu_voteinfo.py rename to test/test_voteinfo.py index 34845b86..99e14a8c 100644 --- a/test/test_tu_voteinfo.py +++ b/test/test_voteinfo.py @@ -3,9 +3,9 @@ from sqlalchemy.exc import IntegrityError from aurweb import db, time from aurweb.db import create, rollback -from aurweb.models.account_type import TRUSTED_USER_ID -from aurweb.models.tu_voteinfo import TUVoteInfo +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID from aurweb.models.user import User +from aurweb.models.voteinfo import VoteInfo @pytest.fixture(autouse=True) @@ -22,16 +22,16 @@ def user() -> User: Email="test@example.org", RealName="Test User", Passwd="testPassword", - AccountTypeID=TRUSTED_USER_ID, + AccountTypeID=PACKAGE_MAINTAINER_ID, ) yield user -def test_tu_voteinfo_creation(user: User): +def test_voteinfo_creation(user: User): ts = time.utcnow() with db.begin(): - tu_voteinfo = create( - TUVoteInfo, + voteinfo = create( + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=ts, @@ -39,26 +39,26 @@ def test_tu_voteinfo_creation(user: User): Quorum=0.5, Submitter=user, ) - assert bool(tu_voteinfo.ID) - assert tu_voteinfo.Agenda == "Blah blah." - assert tu_voteinfo.User == user.Username - assert tu_voteinfo.Submitted == ts - assert tu_voteinfo.End == ts + 5 - assert tu_voteinfo.Quorum == 0.5 - assert tu_voteinfo.Submitter == user - assert tu_voteinfo.Yes == 0 - assert tu_voteinfo.No == 0 - assert tu_voteinfo.Abstain == 0 - assert tu_voteinfo.ActiveTUs == 0 + assert bool(voteinfo.ID) + assert voteinfo.Agenda == "Blah blah." + assert voteinfo.User == user.Username + assert voteinfo.Submitted == ts + assert voteinfo.End == ts + 5 + assert voteinfo.Quorum == 0.5 + assert voteinfo.Submitter == user + assert voteinfo.Yes == 0 + assert voteinfo.No == 0 + assert voteinfo.Abstain == 0 + assert voteinfo.ActiveUsers == 0 - assert tu_voteinfo in user.tu_voteinfo_set + assert voteinfo in user.voteinfo_set -def test_tu_voteinfo_is_running(user: User): +def test_voteinfo_is_running(user: User): ts = time.utcnow() with db.begin(): - tu_voteinfo = create( - TUVoteInfo, + voteinfo = create( + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=ts, @@ -66,18 +66,18 @@ def test_tu_voteinfo_is_running(user: User): Quorum=0.5, Submitter=user, ) - assert tu_voteinfo.is_running() is True + assert voteinfo.is_running() is True with db.begin(): - tu_voteinfo.End = ts - 5 - assert tu_voteinfo.is_running() is False + voteinfo.End = ts - 5 + assert voteinfo.is_running() is False -def test_tu_voteinfo_total_votes(user: User): +def test_voteinfo_total_votes(user: User): ts = time.utcnow() with db.begin(): - tu_voteinfo = create( - TUVoteInfo, + voteinfo = create( + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=ts, @@ -86,19 +86,19 @@ def test_tu_voteinfo_total_votes(user: User): Submitter=user, ) - tu_voteinfo.Yes = 1 - tu_voteinfo.No = 3 - tu_voteinfo.Abstain = 5 + voteinfo.Yes = 1 + voteinfo.No = 3 + voteinfo.Abstain = 5 # total_votes() should be the sum of Yes, No and Abstain: 1 + 3 + 5 = 9. - assert tu_voteinfo.total_votes() == 9 + assert voteinfo.total_votes() == 9 -def test_tu_voteinfo_null_submitter_raises(user: User): +def test_voteinfo_null_submitter_raises(user: User): with pytest.raises(IntegrityError): with db.begin(): create( - TUVoteInfo, + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=0, @@ -108,11 +108,11 @@ def test_tu_voteinfo_null_submitter_raises(user: User): rollback() -def test_tu_voteinfo_null_agenda_raises(user: User): +def test_voteinfo_null_agenda_raises(user: User): with pytest.raises(IntegrityError): with db.begin(): create( - TUVoteInfo, + VoteInfo, User=user.Username, Submitted=0, End=0, @@ -122,11 +122,11 @@ def test_tu_voteinfo_null_agenda_raises(user: User): rollback() -def test_tu_voteinfo_null_user_raises(user: User): +def test_voteinfo_null_user_raises(user: User): with pytest.raises(IntegrityError): with db.begin(): create( - TUVoteInfo, + VoteInfo, Agenda="Blah blah.", Submitted=0, End=0, @@ -136,11 +136,11 @@ def test_tu_voteinfo_null_user_raises(user: User): rollback() -def test_tu_voteinfo_null_submitted_raises(user: User): +def test_voteinfo_null_submitted_raises(user: User): with pytest.raises(IntegrityError): with db.begin(): create( - TUVoteInfo, + VoteInfo, Agenda="Blah blah.", User=user.Username, End=0, @@ -150,11 +150,11 @@ def test_tu_voteinfo_null_submitted_raises(user: User): rollback() -def test_tu_voteinfo_null_end_raises(user: User): +def test_voteinfo_null_end_raises(user: User): with pytest.raises(IntegrityError): with db.begin(): create( - TUVoteInfo, + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=0, @@ -164,10 +164,10 @@ def test_tu_voteinfo_null_end_raises(user: User): rollback() -def test_tu_voteinfo_null_quorum_default(user: User): +def test_voteinfo_null_quorum_default(user: User): with db.begin(): vi = create( - TUVoteInfo, + VoteInfo, Agenda="Blah blah.", User=user.Username, Submitted=0, diff --git a/test/test_tuvotereminder.py b/test/test_votereminder.py similarity index 69% rename from test/test_tuvotereminder.py rename to test/test_votereminder.py index 5f2ae3a1..39d20824 100644 --- a/test/test_tuvotereminder.py +++ b/test/test_votereminder.py @@ -3,17 +3,17 @@ from typing import Tuple import pytest from aurweb import config, db, time -from aurweb.models import TUVote, TUVoteInfo, User -from aurweb.models.account_type import TRUSTED_USER_ID -from aurweb.scripts import tuvotereminder as reminder +from aurweb.models import User, Vote, VoteInfo +from aurweb.models.account_type import PACKAGE_MAINTAINER_ID +from aurweb.scripts import votereminder as reminder from aurweb.testing.email import Email aur_location = config.get("options", "aur_location") -def create_vote(user: User, voteinfo: TUVoteInfo) -> TUVote: +def create_vote(user: User, voteinfo: VoteInfo) -> Vote: with db.begin(): - vote = db.create(TUVote, User=user, VoteID=voteinfo.ID) + vote = db.create(Vote, User=user, VoteID=voteinfo.ID) return vote @@ -29,44 +29,44 @@ def create_user(username: str, type_id: int): return user -def email_pieces(voteinfo: TUVoteInfo) -> Tuple[str, str]: +def email_pieces(voteinfo: VoteInfo) -> Tuple[str, str]: """ Return a (subject, content) tuple based on voteinfo.ID - :param voteinfo: TUVoteInfo instance + :param voteinfo: VoteInfo instance :return: tuple(subject, content) """ - subject = f"TU Vote Reminder: Proposal {voteinfo.ID}" + subject = f"Package Maintainer Vote Reminder: Proposal {voteinfo.ID}" content = ( f"Please remember to cast your vote on proposal {voteinfo.ID} " f"[1]. The voting period\nends in less than 48 hours.\n\n" - f"[1] {aur_location}/tu/?id={voteinfo.ID}" + f"[1] {aur_location}/package-maintainer/?id={voteinfo.ID}" ) return subject, content @pytest.fixture def user(db_test) -> User: - yield create_user("test", TRUSTED_USER_ID) + yield create_user("test", PACKAGE_MAINTAINER_ID) @pytest.fixture def user2() -> User: - yield create_user("test2", TRUSTED_USER_ID) + yield create_user("test2", PACKAGE_MAINTAINER_ID) @pytest.fixture def user3() -> User: - yield create_user("test3", TRUSTED_USER_ID) + yield create_user("test3", PACKAGE_MAINTAINER_ID) @pytest.fixture -def voteinfo(user: User) -> TUVoteInfo: +def voteinfo(user: User) -> VoteInfo: now = time.utcnow() - start = config.getint("tuvotereminder", "range_start") + start = config.getint("votereminder", "range_start") with db.begin(): voteinfo = db.create( - TUVoteInfo, + VoteInfo, Agenda="Lorem ipsum.", User=user.Username, End=(now + start + 1), @@ -77,7 +77,7 @@ def voteinfo(user: User) -> TUVoteInfo: yield voteinfo -def test_tu_vote_reminders(user: User, user2: User, user3: User, voteinfo: TUVoteInfo): +def test_vote_reminders(user: User, user2: User, user3: User, voteinfo: VoteInfo): reminder.main() assert Email.count() == 3 @@ -96,8 +96,8 @@ def test_tu_vote_reminders(user: User, user2: User, user3: User, voteinfo: TUVot assert emails[i].body == content -def test_tu_vote_reminders_only_unvoted( - user: User, user2: User, user3: User, voteinfo: TUVoteInfo +def test_vote_reminders_only_unvoted( + user: User, user2: User, user3: User, voteinfo: VoteInfo ): # Vote with user2 and user3; leaving only user to be notified. create_vote(user2, voteinfo) diff --git a/upgrading/3.4.0.txt b/upgrading/3.4.0.txt index c2f16888..b3804e94 100644 --- a/upgrading/3.4.0.txt +++ b/upgrading/3.4.0.txt @@ -1,5 +1,5 @@ -1. Add the "Trusted User & Developer" user group: +1. Add the "Package Maintainer & Developer" user group: ---- -INSERT INTO AccountTypes (ID, AccountType) VALUES (4, 'Trusted User & Developer'); +INSERT INTO AccountTypes (ID, AccountType) VALUES (4, 'Package Maintainer & Developer'); ----