diff --git a/.bumpversion.cfg b/.bumpversion.cfg index aedcad5d4..8020ee2a3 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,7 +1,7 @@ [bumpversion] current_version = 3.8.0 parse = (?P\d+)\.(?P\d+)\.(?P\d+) -serialize = +serialize = {major}.{minor}.{patch} commit = False tag = False diff --git a/.dockerignore b/.dockerignore index 9c4e8cd6b..ddaee1c71 100644 --- a/.dockerignore +++ b/.dockerignore @@ -247,4 +247,3 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk - diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 000000000..689f8414b --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,5 @@ +6ad28467153aab333eba6fe65298904d836aa712 +778533215c89743e041303e10a79166187d0408b +b21e47d612bc442204177ca492e444c31e923d75 +8ac3292a50e1aa8373bc01d897209514d67bb835 +b51cc243b0fb1ff301e4a24361b007ed54294800 diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 70b2f2954..d98c9555c 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -2,7 +2,7 @@ name: PYPI_Upload -# Controls when the action will run. +# Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the master branch push: diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index c369e317b..9c651d3b6 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -6,7 +6,7 @@ name: Upload Python Package on: release: types: [created] - + workflow_dispatch: jobs: diff --git a/.gitignore b/.gitignore index 53c867289..3a8c5ce2f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,11 @@ __pycache__/ *.py[cod] *$py.class +# Pants tooling +/.pants.* +/dist/ +/.pids + # C extensions *.so @@ -110,6 +115,7 @@ celerybeat.pid .venv env/ venv/ +venv310/ ENV/ env.bak/ venv.bak/ @@ -236,4 +242,3 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk - diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..c85209196 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,39 @@ +repos: +- repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.4.0 + hooks: + - id: check-json + - id: check-ast + - id: check-yaml + - id: trailing-whitespace + - id: end-of-file-fixer + - id: requirements-txt-fixer + - id: no-commit-to-branch + args: [--branch, master, --branch, staging, --branch, production] +- repo: https://github.com/PyCQA/isort + rev: 5.12.0 + hooks: + - id: isort + args: ["--profile", "black", "--filter-files"] +- repo: https://github.com/psf/black + rev: 22.12.0 + hooks: + - id: black +- repo: https://github.com/asottile/pyupgrade + rev: v3.3.1 + hooks: + - id: pyupgrade + args: [--py36-plus] +- repo: https://github.com/PyCQA/flake8 + rev: 6.0.0 + hooks: + - id: flake8 + stages: + - manual +- repo: https://github.com/pre-commit/mirrors-mypy + rev: v0.991 + hooks: + - id: mypy + exclude: docs\* + stages: + - manual diff --git a/LICENSE.txt b/LICENSE.txt index 61cc5974b..db86fa402 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -12,4 +12,4 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. \ No newline at end of file +IN THE SOFTWARE. diff --git a/MANIFEST.in b/MANIFEST.in index 86def09a3..6a25f227a 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1 +1 @@ -prune tests* \ No newline at end of file +prune tests* diff --git a/docs/source/calibration_docs.rst b/docs/source/calibration_docs.rst index d03b84c40..4500e3c8b 100644 --- a/docs/source/calibration_docs.rst +++ b/docs/source/calibration_docs.rst @@ -305,4 +305,3 @@ TRS-398 API Documentation .. autoclass:: pylinac.calibration.trs398.TRS398Photon .. autoclass:: pylinac.calibration.trs398.TRS398Electron - diff --git a/docs/source/code_snippets/tg51_class.py b/docs/source/code_snippets/tg51_class.py index 462d3a7fd..f9f0bedfb 100644 --- a/docs/source/code_snippets/tg51_class.py +++ b/docs/source/code_snippets/tg51_class.py @@ -1,28 +1,33 @@ """A script to calculate TG-51 dose using pylinac classes and following the TG-51 photon form""" from pylinac.calibration import tg51 - ENERGY = 6 TEMP = 22.1 PRESS = tg51.mmHg2kPa(755.0) -CHAMBER = '30013' # PTW +CHAMBER = "30013" # PTW P_ELEC = 1.000 ND_w = 5.443 # Gy/nC MU = 200 CLINICAL_PDD = 66.5 tg51_6x = tg51.TG51Photon( - unit='TrueBeam1', + unit="TrueBeam1", chamber=CHAMBER, - temp=TEMP, press=PRESS, - n_dw=ND_w, p_elec=P_ELEC, - measured_pdd10=66.4, lead_foil=None, - clinical_pdd10=66.5, energy=ENERGY, - voltage_reference=-300, voltage_reduced=-150, + temp=TEMP, + press=PRESS, + n_dw=ND_w, + p_elec=P_ELEC, + measured_pdd10=66.4, + lead_foil=None, + clinical_pdd10=66.5, + energy=ENERGY, + voltage_reference=-300, + voltage_reduced=-150, m_reference=(25.65, 25.66, 25.65), m_opposite=(25.64, 25.65, 25.65), m_reduced=(25.64, 25.63, 25.63), - mu=MU, tissue_correction=1.0 + mu=MU, + tissue_correction=1.0, ) # Done! @@ -39,4 +44,8 @@ print(tg51_6x.dose_mu_dmax_adjusted) # generate a PDF for record-keeping -tg51_6x.publish_pdf('TB1 6MV TG-51.pdf', notes=['My notes', 'I used Pylinac to do this; so easy!'], open_file=False) +tg51_6x.publish_pdf( + "TB1 6MV TG-51.pdf", + notes=["My notes", "I used Pylinac to do this; so easy!"], + open_file=False, +) diff --git a/docs/source/code_snippets/tg51_function.py b/docs/source/code_snippets/tg51_function.py index 218d5a8e0..c69539deb 100644 --- a/docs/source/code_snippets/tg51_function.py +++ b/docs/source/code_snippets/tg51_function.py @@ -1,11 +1,10 @@ """A script to calculate TG-51 dose using pylinac functions and following the TG-51 photon form""" from pylinac.calibration import tg51 - ENERGY = 6 TEMP = 22.1 PRESS = tg51.mmHg2kPa(755.0) -CHAMBER = '30013' # PTW +CHAMBER = "30013" # PTW P_ELEC = 1.000 ND_w = 5.443 # Gy/nC MU = 200 @@ -18,7 +17,7 @@ # Section 5 (kQ) kq = tg51.kq_photon_pddx(chamber=CHAMBER, pddx=pdd10x) # Alternatively, get kQ from TPR (way quicker to measure, without needing to measure TPR!) -tpr = tg51.tpr2010_from_pdd2010(pdd2010=(38.0/66.4)) +tpr = tg51.tpr2010_from_pdd2010(pdd2010=(38.0 / 66.4)) kq = tg51.kq_photon_tpr(chamber=CHAMBER, tpr=tpr) # Section 6 (Temp/Press) @@ -31,13 +30,20 @@ # Section 8 (ionization) m_reduced = (25.61, 25.62) -p_ion = tg51.p_ion(voltage_reference=300, voltage_reduced=150, m_reference=m_reference, m_reduced=m_reduced) +p_ion = tg51.p_ion( + voltage_reference=300, + voltage_reduced=150, + m_reference=m_reference, + m_reduced=m_reduced, +) # Section 9 (M corrected) -m_corr = tg51.m_corrected(p_ion=p_ion, p_tp=p_tp, p_elec=P_ELEC, p_pol=p_pol, m_reference=m_reference) +m_corr = tg51.m_corrected( + p_ion=p_ion, p_tp=p_tp, p_elec=P_ELEC, p_pol=p_pol, m_reference=m_reference +) # Section 10 (dose to water @ 10cm) -dose_10 = m_corr*kq*ND_w +dose_10 = m_corr * kq * ND_w dose_10_per_mu = dose_10 / MU # Section 11 (dose/MU to water @ dmax) diff --git a/docs/source/code_snippets/trs398_class.py b/docs/source/code_snippets/trs398_class.py index 4485ea55f..ba26c2075 100644 --- a/docs/source/code_snippets/trs398_class.py +++ b/docs/source/code_snippets/trs398_class.py @@ -1,32 +1,34 @@ """A script to calculate TRS-398 dose using pylinac classes and following the TRS-398 photon form""" from pylinac.calibration import trs398 - ENERGY = 6 TEMP = 22.1 PRESS = trs398.mmHg2kPa(755.0) -CHAMBER = '30013' # PTW +CHAMBER = "30013" # PTW K_ELEC = 1.000 ND_w = 5.443 # Gy/nC MU = 200 CLINICAL_PDD = 66.5 trs398_6x = trs398.TRS398Photon( - unit='TrueBeam1', - setup='SSD', + unit="TrueBeam1", + setup="SSD", chamber=CHAMBER, - temp=TEMP, press=PRESS, + temp=TEMP, + press=PRESS, n_dw=ND_w, clinical_pdd_zref=CLINICAL_PDD, - tpr2010=(38.2/66.6), + tpr2010=(38.2 / 66.6), energy=ENERGY, fff=False, k_elec=K_ELEC, - voltage_reference=-300, voltage_reduced=-150, + voltage_reference=-300, + voltage_reduced=-150, m_reference=(25.65, 25.66, 25.65), m_opposite=(25.64, 25.65, 25.65), m_reduced=(25.64, 25.63, 25.63), - mu=MU, tissue_correction=1.0 + mu=MU, + tissue_correction=1.0, ) # Done! @@ -43,4 +45,8 @@ print(trs398_6x.dose_mu_zmax_adjusted) # generate a PDF for record-keeping -trs398_6x.publish_pdf('TB1 6MV TRS-398.pdf', notes=['My notes', 'I used Pylinac to do this; so easy!'], open_file=False) +trs398_6x.publish_pdf( + "TB1 6MV TRS-398.pdf", + notes=["My notes", "I used Pylinac to do this; so easy!"], + open_file=False, +) diff --git a/docs/source/code_snippets/trs398_function.py b/docs/source/code_snippets/trs398_function.py index 2ae972cfb..d83479630 100644 --- a/docs/source/code_snippets/trs398_function.py +++ b/docs/source/code_snippets/trs398_function.py @@ -1,10 +1,9 @@ """A script to calculate TRS-398 dose using pylinac functions and following the TRS-398 photon form""" from pylinac.calibration import trs398 - TEMP = 22.1 PRESS = trs398.mmHg2kPa(755.0) -CHAMBER = '30013' # PTW +CHAMBER = "30013" # PTW K_ELEC = 1.000 ND_w = 5.443 # Gy/nC MU = 200 @@ -12,15 +11,28 @@ # Section 3 (dosimeter corrections) k_tp = trs398.k_tp(temp=TEMP, press=PRESS) -k_pol = trs398.k_pol(m_reference=(25.66, 25.67, 25.66), m_opposite=(25.65, 25.66, 25.66)) -k_s = trs398.k_s(voltage_reference=300, voltage_reduced=150, - m_reference=(25.66, 25.67, 25.66), m_reduced=(25.63, 25.65, 25.64)) -m_corrected = trs398.m_corrected(m_reference=(25.66, 25.67, 25.66), - k_tp=k_tp, k_elec=K_ELEC, k_pol=k_pol, k_s=k_s) \ - / MU +k_pol = trs398.k_pol( + m_reference=(25.66, 25.67, 25.66), m_opposite=(25.65, 25.66, 25.66) +) +k_s = trs398.k_s( + voltage_reference=300, + voltage_reduced=150, + m_reference=(25.66, 25.67, 25.66), + m_reduced=(25.63, 25.65, 25.64), +) +m_corrected = ( + trs398.m_corrected( + m_reference=(25.66, 25.67, 25.66), + k_tp=k_tp, + k_elec=K_ELEC, + k_pol=k_pol, + k_s=k_s, + ) + / MU +) # Section 4 (kQ + dose at zref) -kq = trs398.kq_photon(chamber=CHAMBER, tpr=(39.2/68.1)) +kq = trs398.kq_photon(chamber=CHAMBER, tpr=(39.2 / 68.1)) dose_mu_zref = m_corrected * ND_w * kq # Section 5 (Dose at zmax) diff --git a/docs/source/conf.py b/docs/source/conf.py index ac02777ec..9276260f7 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -1,5 +1,4 @@ #!/usr/bin/env python3 -# -*- coding: utf-8 -*- # # pylinac documentation build configuration file, created by # sphinx-quickstart on Thu Sep 10 11:56:25 2015. @@ -19,77 +18,79 @@ # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) -sys.path.insert(0, os.path.abspath('../..')) +# sys.path.insert(0, os.path.abspath('.')) +sys.path.insert(0, os.path.abspath("../..")) # sys.path.append(os.path.abspath('sphinxext')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ - 'sphinx.ext.autodoc', - 'sphinx.ext.viewcode', - 'sphinx.ext.mathjax', - 'sphinx.ext.napoleon', - 'matplotlib.sphinxext.plot_directive', + "sphinx.ext.autodoc", + "sphinx.ext.viewcode", + "sphinx.ext.mathjax", + "sphinx.ext.napoleon", + "matplotlib.sphinxext.plot_directive", ] # put mock objects here -autodoc_mock_imports = ['_tkinter', 'tkinter'] +autodoc_mock_imports = ["_tkinter", "tkinter"] -autoclass_content = 'both' -autodoc_default_flags = ['show-inheritance', 'members' - ] # See: http://sphinx-doc.org/latest/ext/autodoc.html#confval-autodoc_default_flags -autodoc_member_order = 'bysource' +autoclass_content = "both" +autodoc_default_flags = [ + "show-inheritance", + "members", +] # See: http://sphinx-doc.org/latest/ext/autodoc.html#confval-autodoc_default_flags +autodoc_member_order = "bysource" napoleon_include_special_with_doc = False # Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] +templates_path = ["_templates"] # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: # source_suffix = ['.rst', '.md'] -source_suffix = '.rst' +source_suffix = ".rst" # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. -master_doc = 'index' +master_doc = "index" # General information about the project. -project = 'pylinac' -copyright = '2022' -author = 'James Kerns' +project = "pylinac" +copyright = "2022" +author = "James Kerns" # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. # # The short X.Y version. -version = '3.8' +version = "3.8" # The full version, including alpha/beta/rc tags. -release = '3.8.0' +release = "3.8.0" # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = 'en' +language = "en" # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -97,27 +98,27 @@ # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' +pygments_style = "sphinx" # A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] +# modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. -#keep_warnings = False +# keep_warnings = False # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = False @@ -127,156 +128,149 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = 'sphinx_rtd_theme' +html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] +html_static_path = ["_static"] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. -#html_extra_path = [] +# html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' +# html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr' -#html_search_language = 'en' +# html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value -#html_search_options = {'type': 'default'} +# html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. -#html_search_scorer = 'scorer.js' +# html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. -htmlhelp_basename = 'pylinacdoc' +htmlhelp_basename = "pylinacdoc" # -- Options for LaTeX output --------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', - -# Latex figure (float) alignment -#'figure_align': 'htbp', + # The paper size ('letterpaper' or 'a4paper'). + #'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + #'preamble': '', + # Latex figure (float) alignment + #'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ - (master_doc, 'pylinac.tex', 'pylinac Documentation', - 'James', 'manual'), + (master_doc, "pylinac.tex", "pylinac Documentation", "James", "manual"), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, 'pylinac', 'pylinac Documentation', - [author], 1) -] +man_pages = [(master_doc, "pylinac", "pylinac Documentation", [author], 1)] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ------------------------------------------- @@ -285,21 +279,27 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - (master_doc, 'pylinac', 'pylinac Documentation', - author, 'pylinac', 'One line description of project.', - 'Miscellaneous'), + ( + master_doc, + "pylinac", + "pylinac Documentation", + author, + "pylinac", + "One line description of project.", + "Miscellaneous", + ), ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. -#texinfo_no_detailmenu = False +# texinfo_no_detailmenu = False plot_include_source = True diff --git a/docs/source/image_generator.rst b/docs/source/image_generator.rst index 4de6cd192..4f10b2f64 100644 --- a/docs/source/image_generator.rst +++ b/docs/source/image_generator.rst @@ -310,4 +310,4 @@ Helpers .. autofunction:: pylinac.core.image_generator.utils.generate_winstonlutz_cone -.. autofunction:: pylinac.core.image_generator.utils.generate_winstonlutz_multi_bb_multi_field \ No newline at end of file +.. autofunction:: pylinac.core.image_generator.utils.generate_winstonlutz_multi_bb_multi_field diff --git a/docs/source/images/IEC61217.svg b/docs/source/images/IEC61217.svg index f6c96e1bc..eaf0efd92 100644 --- a/docs/source/images/IEC61217.svg +++ b/docs/source/images/IEC61217.svg @@ -1,8 +1,8 @@ - +