A rule to select all files in transitive dependencies of deps which belong to given set of Python packages.
This rule is intended to be used as data dependency to py_wheel rule
A rule for building Python Wheels.
Wheels are Python distribution format defined in https://www.python.org/dev/peps/pep-0427/.
This rule packages a set of targets into a single wheel.
Currently only pure-python wheels are supported.
Examples:
# Package just a specific py_libraries, without their dependencies py_wheel( name = "minimal_with_py_library", # Package data. We're building "example_minimal_library-0.0.1-py3-none-any.whl" distribution = "example_minimal_library", python_tag = "py3", version = "0.0.1", deps = [ "//examples/wheel/lib:module_with_data", "//examples/wheel/lib:simple_module", ], ) # Use py_package to collect all transitive dependencies of a target, # selecting just the files within a specific python package. py_package( name = "example_pkg", # Only include these Python packages. packages = ["examples.wheel"], deps = [":main"], ) py_wheel( name = "minimal_with_py_package", # Package data. We're building "example_minimal_package-0.0.1-py3-none-any.whl" distribution = "example_minimal_package", python_tag = "py3", version = "0.0.1", deps = [":example_pkg"], )
Deprecated: prefer the entry_points attribute, which supports console_scripts as well as other entry points. deps List of labels; optional Targets to be included in the distribution.
The targets to package are usually py_library rules or filesets (for packaging data files).
Note it's usually better to package py_library targets and use entry_points attribute to specify console_scripts than to package py_binary rules. py_binary targets would wrap a executable script that tries to locate .runfiles directory which is not packaged in the wheel. description_file Label; optional A file containing text describing the package in a single line. distribution String; required Name of the distribution.
This should match the project name onm PyPI. It‘s also the name that is used to refer to the package in other packages’ dependencies. entry_points Dictionary: String -> List of strings; optional entry_points, e.g. {'console_scripts': ['main = examples.wheel.main:main']}. extra_requires Dictionary: String -> List of strings; optional List of optional requirements for this package homepage String; optional A string specifying the URL for the package homepage. license String; optional A string specifying the license of the package. platform String; optional Supported platform. Use ‘any’ for pure-Python wheel.
If you have included platform-specific data, such as a .pyd or .so extension module, you will need to specify the platform in standard pip format. If you support multiple platforms, you can define platform constraints, then use a select() to specify the appropriate specifier, eg: