diff --git a/pyproject.toml b/pyproject.toml index 891f702..ee5c967 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,8 +14,8 @@ # 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`. +# many build packages like `setuptools`, `flit`, `poetry`, `hatchling`, etc. We will use +# `hatchling`. requires = ["hatchling"] # Our dependency to build RenderCV # Python has a standard object format called build-backend object. Python standard asks @@ -37,11 +37,9 @@ path = "rendercv/__init__.py" include = ["/README.md", "/rendercv"] [project] -# 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. +# Under the `project` section, we specify the metadata about RenderCV. name = 'rendercv' -description = 'LaTeX CV generator from a YAML/JSON input file' +description = 'LaTeX CV generator engine from a YAML input file' dynamic = [ "version", ] # We will use hatchling to generate the version number @@ -51,16 +49,14 @@ readme = "README.md" # RenderCV depends on these packages. They will be installed automatically when RenderCV # is installed: dependencies = [ - 'annotated-types==0.6.0', - 'Jinja2==3.1.3', - 'phonenumbers==8.13.28', - 'pydantic==2.5.3', - 'pydantic-extra-types==2.4.1', - 'typing_extensions==4.9.0', - 'ruamel.yaml==0.18.5', - 'email-validator==2.1.0.post1', - 'typer[all]==0.9.0', - "markdown==3.5.2", + 'Jinja2==3.1.3', # to generate LaTeX and Markdown files + 'phonenumbers==8.13.30', # to validate phone numbers + 'email-validator==2.1.0.post1', # to validate email addresses + 'pydantic==2.6.1', # to validate and parse the input file + 'pydantic-extra-types==2.5.0', # to validate some extra types + 'ruamel.yaml==0.18.6', # to parse YAML files + 'typer[all]==0.9.0', # to create the command-line interface + "markdown==3.5.2", # to convert Markdown to HTML ] classifiers = [ "Intended Audience :: Science/Research", @@ -96,21 +92,20 @@ rendercv = 'rendercv.__main__:app' # 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. -# 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. -testing = [ - "coverage==7.4.0", - "pytest==7.4.4", - "time-machine==2.13.0", - "pypdf==4.0.1", +docs = [ + "mkdocs-material==9.5.9", # to build docs + "mkdocstrings-python==1.8.0", # to build reference documentation from docstrings +] +tests = [ + "pytest==8.0.1", # to run the tests + "coverage==7.4.1", # to generate coverage reports + "time-machine==2.13.0", # to select an arbitrary date and time for testing + "pypdf==4.0.2", # to read PDF files +] +dev = [ + "ruff==0.2.2", # to lint the code + "black==24.2.0", # to format the code ] - -# Ruff is a linter (a tool to flag stylistic errors, bugs, suspicious constructs, etc.) -# Black is a code formatter. -development = ["ruff==0.1.13", "black==24.1.1"] # RenderCV uses different tools to check the code quality, format the code, build the @@ -120,10 +115,12 @@ development = ["ruff==0.1.13", "black==24.1.1"] # file automatically. [tool.black] -line-length = 88 # The maximum line length -preview = true -enable-unstable-feature = ["string_processing"] +line-length = 88 # maximum line length +preview = true # to allow enable-unstable-feature +enable-unstable-feature = [ + "string_processing", +] # breaking strings into multiple lines [tool.coverage.run] source = ['rendercv'] -relative_files = true +relative_files = true # use relative paths instead of absolute paths, this is useful for combining coverage reports from different OSes