2024-01-17 16:17:02 +00:00
|
|
|
# Every modern Python package today has a `pyproject.toml` file. It is a Python
|
|
|
|
# standard. `pyproject.toml` file contains all the metadata about the package. It also
|
|
|
|
# includes the dependencies and required information for building the package. For more
|
|
|
|
# details, see https://pip.pypa.io/en/stable/reference/build-system/pyproject-toml/.
|
|
|
|
|
|
|
|
[build-system]
|
|
|
|
# If a code needs to be distributed, it might need to be compiled, or it might need to
|
|
|
|
# be bundled with other files. This process of making a code ready for distribution is
|
|
|
|
# called building.
|
|
|
|
|
|
|
|
# Python packages need to be built too, even though they are not compiled (mostly). At
|
|
|
|
# the end of the building process, a source Distribution Package, `sdist`, is created.
|
|
|
|
# This sdist is a compressed archive of the source code, and it is ready to be uploaded
|
|
|
|
# to PyPI. See https://packaging.python.org/en/latest/tutorials/packaging-projects/
|
|
|
|
|
|
|
|
# To build RenderCV, we need to specify which build package we want to use. There are
|
|
|
|
# many build packages like `setuptools`, `flit`, `poetry`, `hatch`, etc. We will use
|
|
|
|
# `hatch`.
|
|
|
|
requires = ["hatchling"] # Our dependency to build RenderCV
|
|
|
|
|
|
|
|
# Python has a standard object format called build-backend object. Python standard asks
|
|
|
|
# this object to have some specific methods that do a specific job. For example, it
|
|
|
|
# should have a method called `build_wheel` that builds a wheel file. We use hatchling
|
|
|
|
# to build RenderCV, and hatchling's build-backend object is `hatchling.build`.
|
|
|
|
# See https://peps.python.org/pep-0517/
|
|
|
|
build-backend = "hatchling.build" # A build-backend object for building RenderCV
|
|
|
|
|
|
|
|
[tool.hatch.version]
|
|
|
|
# We will use hatchling to generate the version number of RenderCV. It will go to the
|
|
|
|
# `path` below and get the version number from there.
|
|
|
|
# See https://hatch.pypa.io/latest/version/
|
|
|
|
path = "rendercv/__init__.py"
|
|
|
|
|
|
|
|
[tool.hatch.build]
|
|
|
|
# In the sdist package, what do we want to include and exclude? For example, we don't
|
|
|
|
# want to include `docs` and `tests` because they are not needed to run RenderCV.
|
2024-01-18 17:23:46 +00:00
|
|
|
include = ["/README.md", "/rendercv"]
|
2024-01-17 16:17:02 +00:00
|
|
|
|
2023-10-14 21:59:57 +00:00
|
|
|
[project]
|
2024-01-17 16:17:02 +00:00
|
|
|
# Under the `project` section, we specify the metadata about RenderCV.e will use
|
|
|
|
# hatchling to generate the version number of RenderCV. It will go to the `path` below
|
|
|
|
# and get the version number from there.
|
2023-10-14 21:59:57 +00:00
|
|
|
name = 'rendercv'
|
2024-01-17 16:17:02 +00:00
|
|
|
description = 'LaTeX CV generator from a YAML/JSON input file'
|
2024-01-18 17:23:46 +00:00
|
|
|
dynamic = [
|
|
|
|
"version",
|
|
|
|
] # We will use hatchling to generate the version number
|
2023-10-14 21:59:57 +00:00
|
|
|
authors = [{ name = 'Sina Atalay' }]
|
|
|
|
requires-python = '>=3.10'
|
|
|
|
readme = "README.md"
|
2024-01-17 16:17:02 +00:00
|
|
|
# RenderCV depends on these packages. They will be installed automatically when RenderCV
|
|
|
|
# is installed:
|
2023-10-14 21:59:57 +00:00
|
|
|
dependencies = [
|
|
|
|
'annotated-types==0.6.0',
|
2024-01-18 17:23:46 +00:00
|
|
|
'Jinja2==3.1.3',
|
|
|
|
'phonenumbers==8.13.28',
|
|
|
|
'pydantic==2.5.3',
|
|
|
|
'pydantic-extra-types==2.4.1',
|
|
|
|
'typing_extensions==4.9.0',
|
2024-02-04 20:50:24 +00:00
|
|
|
'ruamel.yaml==0.18.5',
|
2024-01-18 17:23:46 +00:00
|
|
|
'email-validator==2.1.0.post1',
|
2023-10-20 17:34:06 +00:00
|
|
|
'typer[all]==0.9.0',
|
2023-10-14 21:59:57 +00:00
|
|
|
]
|
|
|
|
classifiers = [
|
2023-10-15 16:35:14 +00:00
|
|
|
"Intended Audience :: Science/Research",
|
|
|
|
"Intended Audience :: Education",
|
|
|
|
"Topic :: Text Processing :: Markup :: LaTeX",
|
|
|
|
"Topic :: Printing",
|
2023-10-20 17:50:50 +00:00
|
|
|
"Development Status :: 5 - Production/Stable",
|
2023-10-15 16:35:14 +00:00
|
|
|
"Programming Language :: Python :: 3.10",
|
|
|
|
"Programming Language :: Python :: 3.11",
|
|
|
|
"Programming Language :: Python :: 3.12",
|
2023-10-14 21:59:57 +00:00
|
|
|
"License :: OSI Approved :: MIT License",
|
|
|
|
"Operating System :: OS Independent",
|
2024-01-17 16:17:02 +00:00
|
|
|
] # go to https://pypi.org/classifiers/ to see all classifiers
|
2023-10-14 21:59:57 +00:00
|
|
|
|
|
|
|
[project.urls]
|
2024-01-17 16:17:02 +00:00
|
|
|
# Here, we can specify the URLs related to RenderCV. They will be listed under the
|
|
|
|
# "Project links" section in PyPI. See https://pypi.org/project/rendercv/
|
2023-10-14 21:59:57 +00:00
|
|
|
Documentation = 'https://sinaatalay.github.io/rendercv/'
|
|
|
|
Source = 'https://github.com/sinaatalay/rendercv'
|
|
|
|
|
2023-10-15 16:35:14 +00:00
|
|
|
[project.scripts]
|
2024-01-17 16:17:02 +00:00
|
|
|
# Here, we specify the entry points of RenderCV.
|
|
|
|
# See https://packaging.python.org/en/latest/specifications/entry-points/#entry-points
|
|
|
|
|
|
|
|
# The key and value below mean this: If someone installs RenderCV, then running
|
|
|
|
# `rendercv` in the terminal will run the function `cli` in the module `__main__` in the
|
|
|
|
# package `rendercv`.
|
2023-10-20 17:50:50 +00:00
|
|
|
rendercv = 'rendercv.__main__:cli'
|
2023-10-15 16:35:14 +00:00
|
|
|
|
2023-10-14 21:59:57 +00:00
|
|
|
[project.optional-dependencies]
|
2024-01-17 16:17:02 +00:00
|
|
|
# RenderCV depends on other packages. However, some of these packages are not required
|
|
|
|
# to run RenderCV, but they are required to develop RenderCV. For example, to build the
|
|
|
|
# documentation of RenderCV, we need to install some packages. However, not all the
|
|
|
|
# users of RenderCV will build the documentation, so these are optional dependencies.
|
2024-01-18 17:23:46 +00:00
|
|
|
|
|
|
|
# The documentation of RenderCV is built using MkDocs.
|
|
|
|
building_docs = ["mkdocs-material==9.5.4", "mkdocstrings-python==1.8.0"]
|
|
|
|
|
|
|
|
# For tests, RenderCV uses pytest. Coverage package is used to generate coverage
|
|
|
|
# reports.
|
2024-01-28 20:13:36 +00:00
|
|
|
testing = ["coverage==7.4.0", "pytest==7.4.4", "time-machine==2.13.0"]
|
2024-01-18 17:23:46 +00:00
|
|
|
|
|
|
|
# Ruff is a linter (a tool to flag stylistic errors, bugs, suspicious constructs, etc.)
|
|
|
|
# Black is a code formatter.
|
2024-02-02 17:02:30 +00:00
|
|
|
development = ["ruff==0.1.13", "black==24.1.1"]
|
2023-10-14 21:59:57 +00:00
|
|
|
|
2024-01-17 16:17:02 +00:00
|
|
|
|
|
|
|
# RenderCV uses different tools to check the code quality, format the code, build the
|
|
|
|
# documentation, build the package, etc. We can specify the settings for these tools in
|
|
|
|
# `pyproject.toml` file under `[tool.name_of_the_tool]` so that new contributors can use
|
|
|
|
# these tools easily. Generally, popular IDEs grab these settings from `pyproject.toml`
|
|
|
|
# file automatically.
|
2023-10-14 21:59:57 +00:00
|
|
|
|
2024-01-18 17:23:46 +00:00
|
|
|
[tool.black]
|
2024-02-02 17:02:30 +00:00
|
|
|
line-length = 88 # The maximum line length
|
|
|
|
preview = true
|
|
|
|
enable-unstable-feature = ["string_processing"]
|
2023-10-14 21:59:57 +00:00
|
|
|
|
|
|
|
[tool.coverage.run]
|
|
|
|
source = ['rendercv']
|
|
|
|
relative_files = true
|