Lines Matching +refs:is +refs:effective +refs:target
12 Pigweed's Python code is exclusively managed by GN, but the GN-based build may
26 Python is an interpreted language, but it shares most build automation concerns
50 Pigweed's use of Python is different from many other projects. Pigweed is a
59 Pigweed is organized into distinct modules. In Python, each module is a separate
65 its dependencies, but ``pip`` is not aware of local packages until they are
70 <https://pypi.org/project/pypiserver/>`_ instance, but this is too cumbersome
105 Another challenge is configuration. Mypy and Pylint support using configuration
125 Pigweed aims to provide high quality software components and a fast, effective,
145 Existing Python tools may be effective for Python codebases, but their utility
146 is more limited in a multi-language project like Pigweed. The cost of bringing
148 is high.
151 natively support Python, adding support is straightforward with GN templates.
153 GN has strong multi-toolchain and multi-language capabilities. In GN, it is
160 GN is the fastest, lightest weight, and easiest to run. It also has simple,
164 Given these considerations, GN is an ideal choice for Pigweed's Python build.
170 Pigweed Python code is structured into standard Python packages. This makes it
175 modules. A module's Python package is nested under a ``py/`` directory (see
198 .. _module-pw_build-python-target:
202 The key abstraction in the Python build is the ``pw_python_package``.
203 A ``pw_python_package`` represents a Python package as a GN target. It is
204 implemented with a GN template. The ``pw_python_package`` template is documented
214 A ``pw_python_package`` target is composed of several GN subtargets. Each
218 actions. All subtargets depend on this target.
223 - ``<name>.lint`` - Runs static analysis tools on the Python code. This is a
237 Tests for a Python package are listed in its ``pw_python_package`` target.
238 Adding a new test is simple: write the test file and list it in its accompanying
240 of its dependencies is updated.
249 tests, static analysis is only run when files or their dependencies change.
259 of packages based on which venv is in use.
262 the current venv. If the selected virtual environment is active, packages are
263 installed directly into it. If the venv is not active, it is activated before
293 target (see :ref:`module-pw_protobuf_compiler`). Python protobuf modules are
296 source tree is incomplete; the final Python package, including protobufs, is
301 The ``pw_python_package`` target in the ``BUILD.gn`` duplicates much of the