This is an automated email from the ASF dual-hosted git repository.

vincbeck pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 8312e91569 Make docker decorator's type annotation consistent with 
operator (#35568)
8312e91569 is described below

commit 8312e915691fd7d59a9a2372d8adcd4bfa4a6733
Author: Andrey Anshin <[email protected]>
AuthorDate: Fri Nov 10 22:31:01 2023 +0400

    Make docker decorator's type annotation consistent with operator (#35568)
---
 airflow/decorators/__init__.pyi | 78 +++++++++++++++++++++++++++++++++--------
 1 file changed, 64 insertions(+), 14 deletions(-)

diff --git a/airflow/decorators/__init__.pyi b/airflow/decorators/__init__.pyi
index f718e35777..48cdf61946 100644
--- a/airflow/decorators/__init__.pyi
+++ b/airflow/decorators/__init__.pyi
@@ -37,6 +37,7 @@ from airflow.decorators.short_circuit import 
short_circuit_task
 from airflow.decorators.task_group import task_group
 from airflow.models.dag import dag
 from airflow.providers.cncf.kubernetes.secret import Secret
+from airflow.typing_compat import Literal
 
 # Please keep this in sync with __init__.py's __all__.
 __all__ = [
@@ -325,6 +326,7 @@ class TaskDecoratorCollection:
         docker_url: str = "unix://var/run/docker.sock",
         environment: dict[str, str] | None = None,
         private_environment: dict[str, str] | None = None,
+        env_file: str | None = None,
         force_pull: bool = False,
         mem_limit: float | str | None = None,
         host_tmp_dir: str | None = None,
@@ -332,22 +334,36 @@ class TaskDecoratorCollection:
         tls_ca_cert: str | None = None,
         tls_client_cert: str | None = None,
         tls_client_key: str | None = None,
+        tls_verify: bool = True,
         tls_hostname: str | bool | None = None,
         tls_ssl_version: str | None = None,
+        mount_tmp_dir: bool = True,
         tmp_dir: str = "/tmp/airflow",
         user: str | int | None = None,
         mounts: list[str] | None = None,
+        entrypoint: str | list[str] | None = None,
         working_dir: str | None = None,
         xcom_all: bool = False,
         docker_conn_id: str | None = None,
         dns: list[str] | None = None,
         dns_search: list[str] | None = None,
-        auto_remove: bool = False,
+        auto_remove: Literal["never", "success", "force"] = "never",
         shm_size: int | None = None,
         tty: bool = False,
+        hostname: str | None = None,
         privileged: bool = False,
         cap_add: str | None = None,
         extra_hosts: dict[str, str] | None = None,
+        retrieve_output: bool = False,
+        retrieve_output_path: str | None = None,
+        timeout: int = 60,
+        device_requests: list[dict] | None = None,
+        log_opts_max_size: str | None = None,
+        log_opts_max_file: str | None = None,
+        ipc_mode: str | None = None,
+        skip_on_exit_code: int | Container[int] | None = None,
+        port_bindings: dict | None = None,
+        ulimits: list[dict] | None = None,
         **kwargs,
     ) -> TaskDecorator:
         """Create a decorator to convert the decorated callable to a Docker 
task.
@@ -361,34 +377,41 @@ class TaskDecoratorCollection:
         :param api_version: Remote API version. Set to ``auto`` to 
automatically
             detect the server's version.
         :param container_name: Name of the container. Optional (templated)
-        :param cpus: Number of CPUs to assign to the container. This value 
gets multiplied with 1024.
+        :param cpus: Number of CPUs to assign to the container.
+            This value gets multiplied with 1024. See
+            https://docs.docker.com/engine/reference/run/#cpu-share-constraint
         :param docker_url: URL of the host running the docker daemon.
             Default is unix://var/run/docker.sock
         :param environment: Environment variables to set in the container. 
(templated)
         :param private_environment: Private environment variables to set in 
the container.
             These are not templated, and hidden from the website.
+        :param env_file: Relative path to the ``.env`` file with environment 
variables to set in the container.
+            Overridden by variables in the environment parameter.
         :param force_pull: Pull the docker image on every run. Default is 
False.
         :param mem_limit: Maximum amount of memory the container can use.
             Either a float value, which represents the limit in bytes,
             or a string like ``128m`` or ``1g``.
         :param host_tmp_dir: Specify the location of the temporary directory 
on the host which will
             be mapped to tmp_dir. If not provided defaults to using the 
standard system temp directory.
-        :param network_mode: Network mode for the container.
-            It can be one of the following:
-            bridge - Create new network stack for the container with default 
docker bridge network
-            None - No networking for this container
-            container:<name|id> - Use the network stack of another container 
specified via <name|id>
-            host - Use the host network stack. Incompatible with 
`port_bindings`
-            '<network-name>|<network-id>' - Connects the container to user 
created network(using `docker
-            network create` command)
+        :param network_mode: Network mode for the container. It can be one of 
the following:
+
+            - ``"bridge"``: Create new network stack for the container with 
default docker bridge network
+            - ``"none"``: No networking for this container
+            - ``"container:<name|id>"``: Use the network stack of another 
container specified via <name|id>
+            - ``"host"``: Use the host network stack. Incompatible with 
`port_bindings`
+            - ``"<network-name>|<network-id>"``: Connects the container to 
user created network
+              (using ``docker network create`` command)
         :param tls_ca_cert: Path to a PEM-encoded certificate authority
             to secure the docker connection.
         :param tls_client_cert: Path to the PEM-encoded certificate
             used to authenticate docker client.
         :param tls_client_key: Path to the PEM-encoded key used to 
authenticate docker client.
+        :param tls_verify: Set ``True`` to verify the validity of the provided 
certificate.
         :param tls_hostname: Hostname to match against
             the docker server certificate or False to disable the check.
         :param tls_ssl_version: Version of SSL to use when communicating with 
docker daemon.
+        :param mount_tmp_dir: Specify whether the temporary directory should 
be bind-mounted
+            from the host to the container. Defaults to True
         :param tmp_dir: Mount point inside the container to
             a temporary directory created on the host by the operator.
             The path is also made available via the environment variable
@@ -396,22 +419,49 @@ class TaskDecoratorCollection:
         :param user: Default user inside the docker container.
         :param mounts: List of mounts to mount into the container, e.g.
             ``['/host/path:/container/path', 
'/host/path2:/container/path2:ro']``.
+        :param entrypoint: Overwrite the default ENTRYPOINT of the image
         :param working_dir: Working directory to
             set on the container (equivalent to the -w switch the docker 
client)
         :param xcom_all: Push all the stdout or just the last line.
             The default is False (last line).
-        :param docker_conn_id: ID of the Airflow connection to use
+        :param docker_conn_id: The :ref:`Docker connection id 
<howto/connection:docker>`
         :param dns: Docker custom DNS servers
         :param dns_search: Docker custom DNS search domain
-        :param auto_remove: Auto-removal of the container on daemon side when 
the
-            container's process exits.
-            The default is False.
+        :param auto_remove: Enable removal of the container when the 
container's process exits. Possible values:
+
+            - ``never``: (default) do not remove container
+            - ``success``: remove on success
+            - ``force``: always remove container
         :param shm_size: Size of ``/dev/shm`` in bytes. The size must be
             greater than 0. If omitted uses system default.
         :param tty: Allocate pseudo-TTY to the container
             This needs to be set see logs of the Docker container.
+        :param hostname: Optional hostname for the container.
         :param privileged: Give extended privileges to this container.
         :param cap_add: Include container capabilities
+        :param extra_hosts: Additional hostnames to resolve inside the 
container,
+            as a mapping of hostname to IP address.
+        :param retrieve_output: Should this docker image consistently attempt 
to pull from and output
+            file before manually shutting down the image. Useful for cases 
where users want a pickle serialized
+            output that is not posted to logs
+        :param retrieve_output_path: path for output file that will be 
retrieved and passed to xcom
+        :param device_requests: Expose host resources such as GPUs to the 
container.
+        :param log_opts_max_size: The maximum size of the log before it is 
rolled.
+            A positive integer plus a modifier representing the unit of 
measure (k, m, or g).
+            Eg: 10m or 1g Defaults to -1 (unlimited).
+        :param log_opts_max_file: The maximum number of log files that can be 
present.
+            If rolling the logs creates excess files, the oldest file is 
removed.
+            Only effective when max-size is also set. A positive integer. 
Defaults to 1.
+        :param ipc_mode: Set the IPC mode for the container.
+        :param skip_on_exit_code: If task exits with this exit code, leave the 
task
+            in ``skipped`` state (default: None). If set to ``None``, any 
non-zero
+            exit code will be treated as a failure.
+        :param port_bindings: Publish a container's port(s) to the host. It is 
a
+            dictionary of value where the key indicates the port to open 
inside the container
+            and value indicates the host port that binds to the container port.
+            Incompatible with ``"host"`` in ``network_mode``.
+        :param ulimits: List of ulimit options to set for the container. Each 
item should
+            be a :py:class:`docker.types.Ulimit` instance.
         """
         # [END decorator_signature]
     def kubernetes(

Reply via email to