# Copyright (c) 2023, NVIDIA CORPORATION. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. [build-system] requires = ["setuptools >= 61.0"] build-backend = "setuptools.build_meta" [project] name = "nemo-toolkit" dynamic = ["dependencies", "optional-dependencies", "version"] description = "NeMo - a toolkit for Conversational AI" readme = "README.md" license = {file = "LICENSE"} requires-python = ">=3.10" authors = [{ name = "NVIDIA", email = "nemo-toolkit@nvidia.com" }] maintainers = [{ name = "NVIDIA", email = "nemo-toolkit@nvidia.com" }] keywords = [ "NLP", "NeMo", "deep", "gpu", "language", "learning", "learning", "machine", "nvidia", "pytorch", "speech", "torch", "tts", ] classifiers = [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Image Recognition", "Topic :: Scientific/Engineering :: Mathematics", "Topic :: Scientific/Engineering", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Software Development :: Libraries", "Topic :: Utilities", ] [tool.setuptools] py-modules = ["nemo"] [project.entry-points."nemo_run.cli"] llm = "nemo.collections.llm" [project.urls] Download = "https://github.com/NVIDIA/NeMo/releases" Homepage = "https://github.com/nvidia/nemo" [tool.isort] profile = "black" # black-compatible line_length = 119 # should match black parameters ignore_whitespace = true # ignore whitespace for compatibility with the initial style py_version = 310 # python 3.10 as a target version known_first_party = ["nemo"] # FIRSTPARTY section known_third_party = ["nemo_text_processing", "examples", "scripts"] # THIRDPARTY section sections = ["FUTURE", "STDLIB", "THIRDPARTY", "FIRSTPARTY", "LOCALFOLDER"] default_section = "THIRDPARTY" extend_skip = ["setup.py", "docs/source/conf.py"] [tool.black] line_length = 119 skip_string_normalization = true # major year version is stable, see details in # https://black.readthedocs.io/en/stable/the_black_code_style/index.html # `required_version` is necessary for consistency (other `black` versions will fail to reformat files) required_version = "24" target-version = ['py310', 'py311', 'py312'] extend-exclude = ''' # A regex preceded with ^/ will apply only to files and directories # in the root of the project. # include here only current collections, new collections should not be ignored # exclude the collection once it is reformatted (due to changes in PRs) ( ^\/docs\/ | ^\/external\/ | ^\/examples\/ | ^\/nemo\/collections\/asr\/ | ^\/nemo\/collections\/common\/ | ^\/nemo\/collections\/multimodal\/ | ^\/nemo\/collections\/nlp\/ | ^\/nemo\/collections\/tts\/ | ^\/nemo\/collections\/vision\/ | ^\/nemo\/core\/ | ^\/nemo\/utils\/ | ^\/scripts\/ | ^\/tests\/ | ^\/tools\/ | ^\/tutorials\/ | ^\/setup.py ) ''' [tool.pytest.ini_options] # durations=0 will display all tests execution time, sorted in ascending order starting from from the slowest one. # -vv will also display tests with durration = 0.00s addopts = "--verbose --pyargs --durations=0 --strict-markers" # always add these arguments to pytest testpaths = ["tests"] # directories to ignore when discovering tests norecursedirs = [ "nemo", "nemo_text_processing", "external", "examples", "docs", "scripts", "tools", "tutorials", "*.egg", ".*", "_darcs", "build", "CVS", "dist", "venv", "{arch}" ] # markers to select tests, use `pytest --markers` to see all available markers, `pytest -m ""` to select tests markers = [ "unit: marks unit test, i.e. testing a single, well isolated functionality (deselect with '-m \"not unit\"')", "integration: marks test checking the elements when integrated into subsystems (deselect with '-m \"not integration\"')", "system: marks test working at the highest integration level (deselect with '-m \"not system\"')", "acceptance: marks test checking whether the developed product/model passes the user defined acceptance criteria (deselect with '-m \"not acceptance\"')", "docs: mark tests related to documentation (deselect with '-m \"not docs\"')", "skipduringci: marks tests that are skipped ci as they are addressed by Jenkins jobs but should be run to test user setups", "pleasefixme: marks tests that are broken and need fixing", ]