Home / File/ cli.py — flask Source File

cli.py — flask Source File

Architecture documentation for cli.py, a python file in the flask codebase. 32 imports, 3 dependents.

File python ApplicationCore Scaffolding 32 imports 3 dependents 19 functions 6 classes

Entity Profile

Dependency Diagram

graph LR
  a96499c3_f8a9_e782_f156_1c1ee4a86c69["cli.py"]
  9cff5a62_7dbb_7b80_cf3c_128a7a2fda28["globals.py"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 9cff5a62_7dbb_7b80_cf3c_128a7a2fda28
  881f9803_28d6_7d77_c8d7_1098b41ccf84["helpers.py"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 881f9803_28d6_7d77_c8d7_1098b41ccf84
  aa03072d_fb08_de41_1ce0_535b2a2f9d00["get_debug_flag"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> aa03072d_fb08_de41_1ce0_535b2a2f9d00
  36bfda2d_4c0b_0fa1_7108_9f786fa1b2bc["get_load_dotenv"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 36bfda2d_4c0b_0fa1_7108_9f786fa1b2bc
  9612cfdd_2178_92c0_2ed7_16ebb0c72901["app.py"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 9612cfdd_2178_92c0_2ed7_16ebb0c72901
  9f8cc56e_d5c4_e7a8_438a_3124c0dd5de5["Flask"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 9f8cc56e_d5c4_e7a8_438a_3124c0dd5de5
  949a3336_caad_34e4_9d3f_a6e1653188ba["949a3336:caad:34e4:9d3f:a6e1653188ba"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 949a3336_caad_34e4_9d3f_a6e1653188ba
  cd492506_4d8a_7968_471b_e0fbee54b2bf["ast"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> cd492506_4d8a_7968_471b_e0fbee54b2bf
  35e18c72_5163_709e_ecef_3bb55bc800bb["collections.abc"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 35e18c72_5163_709e_ecef_3bb55bc800bb
  7d9ebc53_a992_d150_c79b_39c114a84acf["importlib.metadata"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 7d9ebc53_a992_d150_c79b_39c114a84acf
  47f3f937_8ccc_385c_133e_f93bec267704["inspect"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 47f3f937_8ccc_385c_133e_f93bec267704
  bdc6911d_da67_3a1f_90cb_90f5e9f0603e["os"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> bdc6911d_da67_3a1f_90cb_90f5e9f0603e
  7aa2bb55_1207_c6a6_eaea_dc8955c0e441["platform"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 7aa2bb55_1207_c6a6_eaea_dc8955c0e441
  2d179a80_c967_3979_8233_1db27e63ff0d["re"]
  a96499c3_f8a9_e782_f156_1c1ee4a86c69 --> 2d179a80_c967_3979_8233_1db27e63ff0d
  style a96499c3_f8a9_e782_f156_1c1ee4a86c69 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

from __future__ import annotations

import ast
import collections.abc as cabc
import importlib.metadata
import inspect
import os
import platform
import re
import sys
import traceback
import typing as t
from functools import update_wrapper
from operator import itemgetter
from types import ModuleType

import click
from click.core import ParameterSource
from werkzeug import run_simple
from werkzeug.serving import is_running_from_reloader
from werkzeug.utils import import_string

from .globals import current_app
from .helpers import get_debug_flag
from .helpers import get_load_dotenv

if t.TYPE_CHECKING:
    import ssl

    from _typeshed.wsgi import StartResponse
    from _typeshed.wsgi import WSGIApplication
    from _typeshed.wsgi import WSGIEnvironment

    from .app import Flask


class NoAppException(click.UsageError):
    """Raised if an application cannot be found or loaded."""


def find_best_app(module: ModuleType) -> Flask:
    """Given a module instance this tries to find the best possible
    application in the module or raises an exception.
    """
    from . import Flask

    # Search for the most common names first.
    for attr_name in ("app", "application"):
        app = getattr(module, attr_name, None)

        if isinstance(app, Flask):
            return app

    # Otherwise find the only object that is a Flask instance.
    matches = [v for v in module.__dict__.values() if isinstance(v, Flask)]

    if len(matches) == 1:
        return matches[0]
    elif len(matches) > 1:
        raise NoAppException(
// ... (1068 more lines)

Subdomains

Dependencies

Frequently Asked Questions

What does cli.py do?
cli.py is a source file in the flask codebase, written in python. It belongs to the ApplicationCore domain, Scaffolding subdomain.
What functions are defined in cli.py?
cli.py defines 19 function(s): _called_with_wrong_args, _env_file_callback, _path_is_ancestor, _set_app, _set_debug, _validate_key, find_app_by_string, find_best_app, get_version, load_dotenv, and 9 more.
What does cli.py depend on?
cli.py imports 32 module(s): 949a3336:caad:34e4:9d3f:a6e1653188ba, Flask, _typeshed.wsgi, app.py, ast, click, click.core, code, and 24 more.
What files import cli.py?
cli.py is imported by 3 file(s): __main__.py, blueprints.py, testing.py.
Where is cli.py in the architecture?
cli.py is located at src/flask/cli.py (domain: ApplicationCore, subdomain: Scaffolding, directory: src/flask).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free