##### setup.py file - dynamic metadata
```console
├── setup.py
```
- setup.py is a build script for setuptools and setup.cfg. However, it works dynamically to provide setuptools with information about your package (such as name and version) as well as code files that need to be included.
- Minimal content:
```python
import setuptools
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setuptools.setup(
name="project_name",
version="0.0.1",
author="Example Author",
author_email="author@example.com",
description="Sample short description of the package",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/author/project_name",
project_urls={
"Bug Tracker": "https://github.com/author/project_name/issues",
},
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
package_dir={"": "project_name"},
packages=setuptools.find_packages(where="project_name"),
python_requires=">=3.6",
)
``` |