esrally/types.py (151 lines of code) (raw):

# Licensed to Elasticsearch B.V. under one or more contributor # license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright # ownership. Elasticsearch B.V. licenses this file to you under # the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. from typing import Any, Literal, Protocol, TypeVar Section = Literal[ "benchmarks", "client", "defaults", "distributions", "driver", "generator", "mechanic", "meta", "no_copy", "node", "provisioning", "race", "reporting", "source", "system", "teams", "telemetry", "tests", "track", "tracks", "unit-test", ] Key = Literal[ "add.chart_name", "add.chart_type", "add.config.option", "add.message", "add.race_timestamp", "admin.dry_run", "admin.track", "assertions", "async.debug", "available.cores", "batch_size", "build.type", "cache", "cache.days", "car.names", "car.params", "car.plugins", "challenge.name", "challenge.root.dir", "cluster.name", "config.version", "data_streams", "datastore.host", "datastore.number_of_replicas", "datastore.number_of_shards", "datastore.overwrite_existing_templates", "datastore.password", "datastore.port", "datastore.probe.cluster_version", "datastore.secure", "datastore.ssl.certificate_authorities", "datastore.ssl.verification_mode", "datastore.type", "datastore.user", "delete.config.option", "delete.id", "devices", "distribution.dir", "distribution.flavor", "distribution.repository", "distribution.version", "elasticsearch.src.subdir", "env.name", "exclude.tasks", "format", "hosts", "include.tasks", "indices", "install.id", "list.challenge", "list.config.option", "list.from_date", "list.max_results", "list.races.benchmark_name", "list.to_date", "load_driver_hosts", "local.dataset.cache", "master.nodes", "metrics.log.dir", "metrics.request.downsample.factor", "metrics.url", "network.host", "network.http.port", "node.http.port", "node.ids", "node.name", "node.name.prefix", "numbers.align", "offline.mode", "on.error", "options", "other.key", "output.path", "output.processingtime", "params", "passenv", "pipeline", "plugin.community-plugin.src.dir", "plugin.community-plugin.src.subdir", "plugin.params", "preserve.install", "preserve_benchmark_candidate", "private.url", "profiling", "quiet.mode", "race.id", "rally.cwd", "rally.root", "release.cache", "release.url", "remote.benchmarking.supported", "remote.repo.url", "repository.name", "repository.revision", "root.dir", "runtime.jdk", "sample.key", "sample.property", "sample.queue.size", "seed.hosts", "serverless.mode", "serverless.operator", "skip.rest.api.check", "snapshot.cache", "source.build.method", "source.revision", "src.root.dir", "target.arch", "target.os", "team.path", "team.repository.dir", "test.mode.enabled", "time.start", "track.name", "track.path", "track.repository.dir", "user.tags", "values", ] _Config = TypeVar("_Config", bound="Config") class Config(Protocol): def add(self, scope, section: Section, key: Key, value: Any) -> None: ... def add_all(self, source: _Config, section: Section) -> None: ... def opts(self, section: Section, key: Key, default_value=None, mandatory: bool = True) -> Any: ... def all_opts(self, section: Section) -> dict: ... def exists(self, section: Section, key: Key) -> bool: ...