Skip to content

Commit

Permalink
Merge branch 'main' into titaiwang/dynamo_true_api
Browse files Browse the repository at this point in the history
  • Loading branch information
titaiwangms authored Jan 29, 2025
2 parents 3a1d4a3 + 7216237 commit 1cf9731
Show file tree
Hide file tree
Showing 6 changed files with 197 additions and 23 deletions.
141 changes: 137 additions & 4 deletions .github/workflows/spelling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,149 @@ on:
push:
branches:
- main

jobs:
pyspelling:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Check for skip label and get changed files
id: check-files
uses: actions/github-script@v6
with:
script: |
let skipCheck = false;
let changedFiles = [];
if (context.eventName === 'pull_request') {
// Check for skip label
const { data: labels } = await github.rest.issues.listLabelsOnIssue({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number
});
skipCheck = labels.some(label => label.name === 'skip-spell-check');
if (!skipCheck) {
// Get changed files in PR
const { data: files } = await github.rest.pulls.listFiles({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number
});
changedFiles = files
.filter(file => file.filename.match(/\.(py|rst|md)$/))
.map(file => file.filename);
}
} else {
// For push events, we'll still need to use git diff
// We'll handle this after checkout
}
core.setOutput('skip', skipCheck.toString());
core.setOutput('files', changedFiles.join('\n'));
core.setOutput('is-pr', (context.eventName === 'pull_request').toString());
- uses: actions/checkout@v4
if: steps.check-files.outputs.skip != 'true'
with:
fetch-depth: 0

- name: Get changed files for push event
if: |
steps.check-files.outputs.skip != 'true' &&
steps.check-files.outputs.is-pr != 'true'
id: push-files
run: |
CHANGED_FILES=$(git diff --name-only HEAD^..HEAD -- '*.py' '*.rst' '*.md')
echo "files<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Check if relevant files changed
if: steps.check-files.outputs.skip != 'true'
id: check
run: |
if [ "${{ steps.check-files.outputs.is-pr }}" == "true" ]; then
FILES="${{ steps.check-files.outputs.files }}"
else
FILES="${{ steps.push-files.outputs.files }}"
fi
if [ -z "$FILES" ]; then
echo "skip=true" >> $GITHUB_OUTPUT
echo "No relevant files changed (*.py, *.rst, *.md), skipping spell check"
else
echo "skip=false" >> $GITHUB_OUTPUT
echo "Found changed files to check:"
echo "$FILES"
fi
- uses: actions/setup-python@v4
if: |
steps.check-files.outputs.skip != 'true' &&
steps.check.outputs.skip != 'true'
with:
python-version: '3.9'
cache: 'pip'
- run: pip install pyspelling
- run: sudo apt-get install aspell aspell-en
- run: pyspelling

- name: Install dependencies
if: |
steps.check-files.outputs.skip != 'true' &&
steps.check.outputs.skip != 'true'
run: |
pip install pyspelling
sudo apt-get install aspell aspell-en
- name: Run spell check on each file
id: spellcheck
if: |
steps.check-files.outputs.skip != 'true' &&
steps.check.outputs.skip != 'true'
run: |
if [ "${{ steps.check-files.outputs.is-pr }}" == "true" ]; then
mapfile -t FILES <<< "${{ steps.check-files.outputs.files }}"
else
mapfile -t FILES <<< "${{ steps.push-files.outputs.files }}"
fi
# Check each file individually
FINAL_EXIT_CODE=0
SPELLCHECK_LOG=""
for file in "${FILES[@]}"; do
if [ -n "$file" ]; then
echo "Checking spelling in $file"
python3 -c "import yaml; config = yaml.safe_load(open('.pyspelling.yml')); new_matrix = [matrix.copy() for matrix in config['matrix'] if (('python' in matrix['name'].lower() and '$file'.endswith('.py')) or ('rest' in matrix['name'].lower() and '$file'.endswith('.rst')) or ('markdown' in matrix['name'].lower() and '$file'.endswith('.md'))) and not matrix.update({'sources': ['$file']})]; config['matrix'] = new_matrix; yaml.dump(config, open('temp_config.yml', 'w'))"
if OUTPUT=$(pyspelling -c temp_config.yml 2>&1); then
echo "No spelling errors found in $file"
else
FINAL_EXIT_CODE=1
echo "Spelling errors found in $file:"
echo "$OUTPUT"
SPELLCHECK_LOG+="### $file\n$OUTPUT\n\n"
fi
fi
done
# Save the results to GITHUB_OUTPUT
echo "spell_failed=$FINAL_EXIT_CODE" >> $GITHUB_OUTPUT
echo "spell_log<<SPELLEOF" >> $GITHUB_OUTPUT
echo "$SPELLCHECK_LOG" >> $GITHUB_OUTPUT
echo "SPELLEOF" >> $GITHUB_OUTPUT
if [ $FINAL_EXIT_CODE -ne 0 ]; then
echo "Spell check failed! See above for details."
echo
echo "Here are a few tips:"
echo "- All PyTorch API objects must be in double backticks or use an intersphinx directive."
echo " Example: ``torch.nn``, :func:"
echo "- Consult en-wordlist.txt for spellings of some of the words."
echo " You can add a word to en-wordlist.txt if:"
echo " 1) It's a common abbreviation, like RNN."
echo " 2) It's a word widely accepted in the industry."
echo "- Please do not add words like 'dtype', 'torch.nn.Transformer' to pass spellcheck."
echo " Instead wrap it in double backticks or use an intersphinx directive."
echo
exit 1
fi
52 changes: 47 additions & 5 deletions .pyspelling.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ spellchecker: aspell
matrix:
- name: python
sources:
- beginner_source/*.py
- intermediate_source/*.py
- advanced_source/*.py
- recipes_source/*/*.py
- "**/*.py"
dictionary:
wordlists:
- en-wordlist.txt
Expand Down Expand Up @@ -56,7 +53,7 @@ matrix:
- pyspelling.filters.url:
- name: reST
sources:
- beginner_source/*.rst
- "**/*.rst"
dictionary:
wordlists:
- en-wordlist.txt
Expand Down Expand Up @@ -119,3 +116,48 @@ matrix:
- open: '\.\.\s+(image|include|only)::'
close: '$'
- pyspelling.filters.url:
- name: markdown
sources:
- '**/*.md'
dictionary:
wordlists:
- en-wordlist.txt
pipeline:
- pyspelling.filters.markdown:
markdown_extensions:
- markdown.extensions.extra:
- markdown.extensions.admonition:
- markdown.extensions.codehilite:
- markdown.extensions.meta:
- markdown.extensions.tables:
- markdown.extensions.toc:
- pyspelling.filters.html:
comments: false
ignores:
- code
- pre
- tt
- img
- a
- table
- thead
- tbody
- th
- tr
- td
- pyspelling.filters.context:
context_visible_first: true
delimiters:
# Ignore code blocks
- open: '```[a-z]*\n'
close: '```\n'
# Ignore inline code
- open: '`'
close: '`'
# Ignore links
- open: '\[([^]]*)\]'
close: '\([^)]*\)'
# Ignore HTML comments
- open: '<!--'
close: '-->'
- pyspelling.filters.url:
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ All the tutorials are now presented as sphinx style documentation at:

# Asking a question

If you have a question about a tutorial, post in https://dev-discuss.pytorch.org/ rather than creating an issue in this repo. Your question will be answered much faster on the dev-discuss forum.
If you hve a qestion about a tutorial, post in https://dev-discuss.pytorch.org/ rather than creating an issue in this repo. Your question will be answered much faster on the dev-discuss forum.

# Submitting an issue

Expand All @@ -20,7 +20,7 @@ You can submit the following types of issues:

We use sphinx-gallery's [notebook styled examples](https://sphinx-gallery.github.io/stable/tutorials/index.html) to create the tutorials. Syntax is very simple. In essence, you write a slightly well formatted Python file and it shows up as an HTML page. In addition, a Jupyter notebook is autogenerated and available to run in Google Colab.

Here is how you can create a new tutorial (for a detailed description, see [CONTRIBUTING.md](./CONTRIBUTING.md)):
Here is how you can ceate a new tutorial (for a detailed description, see [CONTRIBUTING.md](./CONTRIBUTING.md)):

NOTE: Before submitting a new tutorial, read [PyTorch Tutorial Submission Policy](./tutorial_submission_policy.md).

Expand Down
6 changes: 3 additions & 3 deletions beginner_source/colab.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ run PyTorch tutorials in Google Colab.
PyTorch Version in Google Colab
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

When you are running a tutorial that requires a version of PyTorch that has
just been released, that version might not be yet available in Google Colab.
Wen you are running a tutorial that requires a version of PyTorch that has
jst been released, that version might not be yet available in Google Colab.
To check that you have the required ``torch`` and compatible domain libraries
installed, run ``!pip list``.

Expand All @@ -27,7 +27,7 @@ Using Tutorial Data from Google Drive in Colab
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

We've added a new feature to tutorials that allows users to open the
notebook associated with a tutorial in Google Colab. You may need to
ntebook associated with a tutorial in Google Colab. You may need to
copy data to your Google drive account to get the more complex tutorials
to work.

Expand Down
4 changes: 2 additions & 2 deletions beginner_source/introyt/tensors_deeper_tutorial.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@


##########################################################################
# Let’s unpack what we just did:
# Let’s upack what we just did:
#
# - We created a tensor using one of the numerous factory methods
# attached to the ``torch`` module.
Expand Down Expand Up @@ -85,7 +85,7 @@


#########################################################################
# The factory methods all do just what you’d expect - we have a tensor
# The fctory methods all do just what you’d expect - we have a tensor
# full of zeros, another full of ones, and another with random values
# between 0 and 1.
#
Expand Down
13 changes: 6 additions & 7 deletions index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ Welcome to PyTorch Tutorials

**What's new in PyTorch tutorials?**

* `Compiled Autograd: Capturing a larger backward graph for torch.compile <https://pytorch.org/tutorials/intermediate/compiled_autograd_tutorial>`__
* `Reducing torch.compile cold start compilation time with regional compilation <https://pytorch.org/tutorials/recipes/regional_compilation.html>`__
* `Introduction to TorchRec <https://pytorch.org/tutorials/intermediate/torchrec_intro_tutorial.html>`__
* `(prototype) Flight Recorder for Debugging Stuck Jobs <https://pytorch.org/tutorials/prototype/flight_recorder_tutorial.html>`__
* `(prototype) How to use TorchInductor on Windows CPU <https://pytorch.org/tutorials/prototype/inductor_windows_cpu.html>`__
* `(prototype) Using Max-Autotune Compilation on CPU for Better Performance <https://pytorch.org/tutorials/prototype/max_autotune_on_CPU_tutorial.html>`__
* `(prototype) Autoloading Out-of-Tree Extension <https://pytorch.org/tutorials/prototype/python_extension_autoload.html>`__
* `Dynamic Compilation Control with torch.compiler.set_stance <https://pytorch.org/tutorials/recipes/torch_compiler_set_stance_tutorial.html>`__
* `Accelerating PyTorch Transformers by replacing nn.Transformer with Nested Tensors and torch.compile() <https://pytorch.org/tutorials/intermediate/transformer_building_blocks.html>`__
* `Understanding the torch.export Flow and Solutions to Common Challenges <https://pytorch.org/tutorials/recipes/torch_export_challenges_solutions.html>`__
* Updated `torch.export Tutorial <https://pytorch.org/tutorials/intermediate/torch_export_tutorial.html#constraints-dynamic-shapes>`__ with automatic dynamic shapes ``Dim.AUTO``
* Updated `torch.export AOTInductor Tutorial for Python runtime <https://pytorch.org/tutorials/recipes/torch_export_aoti_python.html>`__
* Updated `Using User-Defined Triton Kernels with torch.compile <https://pytorch.org/tutorials/recipes/torch_compile_user_defined_triton_kernel_tutorial.html#composability>`__ with new ``torch.library.triton_op``

.. raw:: html

Expand Down

0 comments on commit 1cf9731

Please sign in to comment.