Excluding files
ty automatically discovers all Python files in your project. You can customize where ty searches by using the src.include
and src.exclude
settings.
For example, with the following configuration, ty checks all Python files in the src
and tests
directories except those in the src/generated
directory:
By default, ty excludes a variety of commonly ignored directories. If you want to include one of these directories, you can do so by adding a negative exclude
:
By default, ty ignores files listed in an .ignore
or .gitignore
file. To disable this functionality, set respect-ignore-files
to false
.
You may also explicitly pass the paths that ty should check, e.g.:
Paths that are passed as positional arguments to ty check
are included even if they would otherwise be ignored through exclude
filters or an ignore-file.
Include and exclude syntax
Both include
and exclude
support gitignore like glob patterns:
src/
matches a directory (including its contents) namedsrc
.src
matches a file or directory (including its contents) namedsrc
.*
matches any (possibly empty) sequence of characters (except/
).**
matches zero or more path components. This sequence must form a single path component, so both./**a
and./b**/
are invalid and will result in an error. A sequence of more than two consecutive*
characters is also invalid.?
matches any single character except/
[abc]
matches any character inside the brackets. Character sequences can also specify ranges of characters, as ordered by Unicode, so e.g.[0-9]
specifies any character between0
and9
inclusive. An unclosed bracket is invalid.
All patterns are anchored: The pattern src
only includes <project_root>/src
but not something like <project_root>/test/src
. To include any directory named src
, use the prefix match **/src
. The same applies for exclude patterns where src
only excludes <project_root>/src
but not something like <project_root>/test/src
.
Note
A prefix include pattern like **/src
can notably slow down the Python file discovery.
All fields accepting patterns use the reduced portable glob syntax from PEP 639, with the addition that characters can be escaped with a backslash.