From fb28c6c5c5ded9a68c2de2e8aebd9d21775b13eb Mon Sep 17 00:00:00 2001 From: Nick Touran Date: Fri, 12 Dec 2025 09:40:02 -0500 Subject: [PATCH] [General] Add API docs and pydantic for Data Dict Fix schedule for latex --- .gitignore | 9 +- .vscode/settings.json | 18 ++++ documents/_static/data-hub.png | Bin 0 -> 130741 bytes documents/conf.py | 65 ++++++++++++- documents/glossary.rst | 33 +++++++ documents/index.rst | 4 +- .../administration/document_management.rst | 7 +- .../requirements/national/USA/10cfr50.rst | 2 +- pyproject.toml | 15 ++- src/nrsk/schedule/__init__.py | 0 src/nrsk/schedule/load_schedule.py | 90 +++++++++--------- 11 files changed, 186 insertions(+), 57 deletions(-) create mode 100644 documents/_static/data-hub.png create mode 100644 src/nrsk/schedule/__init__.py diff --git a/.gitignore b/.gitignore index 2dcfed6..84b05ff 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,7 @@ +# project stuff +documents/api **/generated_assets/ + # Typical Python stuff: # Byte-compiled / optimized / DLL files __pycache__/ @@ -159,4 +162,8 @@ cython_debug/ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore # and can be added to the global gitignore or merged into this file. For a more nuclear # option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ \ No newline at end of file +#.idea/ + +# Sphinx +**/_build +**/_generated diff --git a/.vscode/settings.json b/.vscode/settings.json index f0099ea..1026bb8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -5,4 +5,22 @@ "source.organizeImports": "explicit" } }, + "files.watcherExclude": { + "**/_build/**": true, + "**/__pycache__": true + }, + "search.exclude": { + "**/__pycache__": true, + "**/.pytest_cache": true, + "**/.mypy_cache": true, + "**/build": true, + "**/dist": true, + "**/_build": true, + "**/_build/**": true + }, + "files.exclude": { + "**/_build": true, + "**/*.egg-info": true, + "**/__pycache__": true + } } \ No newline at end of file diff --git a/documents/_static/data-hub.png b/documents/_static/data-hub.png new file mode 100644 index 0000000000000000000000000000000000000000..92387a512d1c5719537e8ec2f0adff2a64a5f0a4 GIT binary patch literal 130741 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

t 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 E52uX)*8l(j literal 0 HcmV?d00001 diff --git a/documents/conf.py b/documents/conf.py index e6b738e..f83d9d9 100644 --- a/documents/conf.py +++ b/documents/conf.py @@ -10,9 +10,11 @@ # 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. # -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) +import os +import sys + +SRC = os.path.abspath("../src") +sys.path.insert(0, SRC) import datetime # -- Project information ----------------------------------------------------- @@ -39,11 +41,19 @@ extensions = [ "sphinx.ext.imgmath", "sphinxcontrib.datatemplates", "sphinxcontrib.mermaid", + "sphinxcontrib.apidoc", "sphinx.ext.graphviz", # "sphinx.ext.imgconverter", # SVG to png but rasterizes and bad "sphinxcontrib.inkscapeconverter", # SVG to pdf without rasterizing "sphinx_timeline", + "sphinx.ext.autodoc", + "sphinx.ext.napoleon", + "sphinx_autodoc_typehints", + "sphinx.ext.autosummary", + "sphinxcontrib.autodoc_pydantic", + "sphinx.ext.intersphinx", "nrsk.schedule.load_schedule", + "nrsk.plant.plant_data_table", ] # Add any paths that contain templates here, relative to this directory. @@ -84,6 +94,28 @@ html_css_files = [ # https://sphinx-needs.readthedocs.io/en/latest/installation.html#plantuml-support plantuml = "java -Djava.awt.headless=true -jar /usr/share/plantuml/plantuml.jar" +latex_engine = "xelatex" +latex_elements = { + # "fontenc": r"\usepackage[T2A]{fontenc}", + # "babel": r"\usepackage[english,russian]{babel}", + # "fontpkg": r""" + # \setmainfont{DejaVu Serif} + # \setsansfont{DejaVu Sans} + # \setmonofont{DejaVu Sans Mono} + # """, + "figure_align": "H", + "extraclassoptions": "openany", + #'\makeatletter\@openrightfalse\makeatother' + "extrapackages": r""" + \usepackage{fancyhdr} + \usepackage{etoolbox} + \usepackage{pdflscape} + \usepackage{tabulary} + """, + "preamble": r""" + \AtBeginEnvironment{figure}{\pretocmd{\hyperlink}{\protect}{}{}} + """, +} # LaTeX document generation options # doesn't work with sphinx-needs latex_documents = [ @@ -123,6 +155,7 @@ latex_documents = [ # ] rst_prolog = f""" .. |inst| replace:: **{company_name}** +.. |project| replace:: **{project_name}** """ # will need to move relevant refs somewhere @@ -138,3 +171,29 @@ mermaid_version = "10.6.1" # Sphinx Needs config needs_include_needs = True # turn off to hide all needs (e.g. for working docs) needs_extra_options = ["basis"] + +autodoc_typehints = "description" +autodoc_typehints_description_target = "all" +autodoc_default_options = { + "members": True, + "private-members": False, + "undoc-members": True, + "ignore-module-all": True, +} +autodoc_member_order = "bysource" + +apidoc_module_dir = SRC +apidoc_module_first = True +apidoc_output_dir = "api" +apidoc_separate_modules = True + +autodoc_pydantic_model_show_field_summary = True +autodoc_pydantic_model_show_validator_summary = True +autodoc_pydantic_field_doc_policy = "both" + +set_type_checking_flag = True + +intersphinx_mapping = { + "pydantic": ("https://docs.pydantic.dev/latest", None), + "python": ("https://docs.python.org/3", None), +} diff --git a/documents/glossary.rst b/documents/glossary.rst index a7d4952..d070fb1 100644 --- a/documents/glossary.rst +++ b/documents/glossary.rst @@ -10,6 +10,39 @@ Glossary .. glossary:: + Configuration Management + The process of identifying and documenting the characteristics of a + facility's structures, systems and components (including computer + systems and software), and of ensuring that changes to these + characteristics are properly incorporated into the facility + documentation. :cite:p:`agencyInformationTechnologyNuclear2010` + + Controlled document + Documents whose content is maintained uniform among the copies by an + administrative control system. The goal of controlling documents is to + ensure that work is performed using approved current information, not + obsolete information. Important documents to be controlled are uniquely + identified (including revision number, date, and specific copy number), + and distribution is formally controlled. Revisions to controlled + documents are uniquely tracked and implemented, including mandatory page + replacements and receipt acknowledgment. Controlled documents typically + include procedures for operations, surveillance, and maintenance, and + safety basis documents such as the SAR, and hazard and accident + analyses. :cite:p:`agencyInformationTechnologyNuclear2010` + + Design basis + The range of conditions and events taken explicitly into account in the + design of a facility, according to established criteria, such that the + facility can withstand them without exceeding authorized limits by the + planned operation of safety systems. + :cite:p:`agencyInformationTechnologyNuclear2010` + + Design control + Measures established to ensure that the information from design input + and design process documents for structures, systems, and components is + correctly translated into the final design. + :cite:p:`agencyInformationTechnologyNuclear2010` + Document A written collection of information, instructions, drawings, specifications, etc. that is *maintained* throughout the diff --git a/documents/index.rst b/documents/index.rst index 7ca4a02..1e7ea41 100644 --- a/documents/index.rst +++ b/documents/index.rst @@ -9,10 +9,12 @@ purpose/index organization/index procedures/index - project/index + plant/index + schedule/index bibliography requirements/index glossary + api/nrsk diff --git a/documents/procedures/administration/document_management.rst b/documents/procedures/administration/document_management.rst index 33d111f..89d993c 100644 --- a/documents/procedures/administration/document_management.rst +++ b/documents/procedures/administration/document_management.rst @@ -5,7 +5,7 @@ This procedure governs the creation, maintenance, and retention of :term:`Records ` and :term:`Documents `. .. impl:: Define processes for lifetime records - :links: R_GDC_1_4 + :links: R_GDC_01_04 .. impl:: Define processes for Document Control :links: R_APPB_45 @@ -95,4 +95,7 @@ satisfy the needs of a lower-level procedure. ('Record', 'record'), ('Retention', 'retention')], data, title='Record/Document types', - ) }} \ No newline at end of file + ) }} + +See Also +^^^^^^^^ diff --git a/documents/requirements/national/USA/10cfr50.rst b/documents/requirements/national/USA/10cfr50.rst index 1354882..d7734ec 100644 --- a/documents/requirements/national/USA/10cfr50.rst +++ b/documents/requirements/national/USA/10cfr50.rst @@ -24,7 +24,7 @@ and `RG 1.232 `_. .. needtable:: Appendix A summary :filter: id.startswith("R_GDC") - :columns: id + :columns: id, title .. include:: /generated_assets/10-cfr-50-app-a-list.rst diff --git a/pyproject.toml b/pyproject.toml index 180dd39..598433d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -9,7 +9,7 @@ description = """\ and tools supporting efficient nuclear energy endeavors.\ """ readme = "README.md" -requires-python = ">=3.9" +requires-python = ">=3.12" dependencies = [ "openpyxl", "pyyaml", @@ -24,7 +24,7 @@ dependencies = [ "sphinxcontrib-bibtex >= 2.6.1", "sphinxcontrib-glossaryused @ git+https://github.com/partofthething/glossaryused@bb321e6581b4c0618cd6dc4f1fd8355d314aee4d", "sphinx-autobuild", - "sphinxcontrib.datatemplates", + "sphinxcontrib-datatemplates", "sphinxcontrib-mermaid", "sphinxcontrib-svg2pdfconverter", "sphinx-timeline", @@ -32,6 +32,12 @@ dependencies = [ "matplotlib", "pandas", "jpype1", + "ruamel-yaml>=0.18.16", + "pydantic>=2.12.5", + "sphinx-autodoc-typehints>=3.5.2", + "email-validator>=2.3.0", + "sphinxcontrib-apidoc>=0.6.0", + "autodoc-pydantic>=2.2.0", ] classifiers = [ "Programming Language :: Python :: 3", @@ -81,3 +87,8 @@ include_trailing_comma = true force_grid_wrap = 0 line_length = 88 profile = "black" + +[dependency-groups] +dev = [ + "ipython>=8.18.1", +] diff --git a/src/nrsk/schedule/__init__.py b/src/nrsk/schedule/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/nrsk/schedule/load_schedule.py b/src/nrsk/schedule/load_schedule.py index 4ffc9bb..cfcbabd 100644 --- a/src/nrsk/schedule/load_schedule.py +++ b/src/nrsk/schedule/load_schedule.py @@ -9,13 +9,11 @@ import logging import os import re from datetime import datetime -from glob import glob +from pathlib import Path import jpype -import jpype.imports import matplotlib.dates as mdates import matplotlib.pyplot as plt -import mpl_toolkits.axisartist as axisartist import pandas as pd import yaml from docutils import nodes @@ -29,18 +27,12 @@ logger.setLevel(logging.DEBUG) # Start JVM with MPXJ jar jpype.startJVM(classpath=["/home/nick/repos/mpxj/mpxj-lib/*"]) -from java.io import File +from java.io import File # noqa: E402 from java.time import LocalDateTime # noqa: E402 from org.mpxj import ( # noqa: E402 - Availability, Duration, - FieldType, ProjectFile, Relation, - RelationType, - Resource, - TaskField, - TaskType, TimeUnit, ) from org.mpxj.cpm import MicrosoftScheduler, PrimaveraScheduler # noqa: E402 @@ -196,7 +188,7 @@ def _preprocess_plot(project): return df, df_deps -def plot_schedule( +def plot_schedule( # noqa: C901 input_fname: str = "scheduled.xml", project=None, output_fname: str = "schedule.svg" ): """Generate plot of schedule.""" @@ -270,7 +262,7 @@ def plot_schedule( plt.title("AMS High-Level Schedule") # plt.tight_layout() plt.savefig(output_fname) - plt.show() + # plt.show() class ScheduleDirective(Directive): @@ -281,65 +273,69 @@ class ScheduleDirective(Directive): def run(self): # noqa: D102 env = self.state.document.settings.env - builder = env.app.builder schedule_data = self.arguments[0] - schedule_data_abs = os.path.join(env.srcdir, schedule_data) + schedule_data_abs = Path(env.srcdir) / schedule_data - if not os.path.exists(schedule_data_abs): + if not schedule_data_abs.exists(): logger.error(f"Schedule file not found: {schedule_data_abs}") return [] - # Image output directory - gen_dir = os.path.join(env.app.srcdir, "generated_assets") + # put image within _static so html builder knows to copy it over. + gen_dir = Path(env.app.srcdir) / "_static" / "generated_assets" ensuredir(gen_dir) - ensuredir(os.path.join(env.app.outdir, "_downloads")) # Name of the generated file base = os.path.splitext(os.path.basename(schedule_data))[0] - out_image = os.path.join(gen_dir, f"{base}.svg") + out_image = gen_dir / f"{base}.svg" start_date = datetime(2026, 1, 1) proj = load_from_yaml(fname=schedule_data) solve_schedule(proj, start_date) plot_schedule(project=proj, output_fname=out_image) writer = UniversalProjectWriter(FileFormat.MSPDI) - writer.write(proj, os.path.join("_build", "_downloads", f"{base}_mspdi.xml")) + writer.write(proj, gen_dir / f"{base}_mspdi.xml") env.note_dependency(schedule_data_abs) - rel = str(os.path.relpath(out_image, env.app.srcdir)) - # trying to mock /generated_assets/schedule.svg for the build folder - # but it ends up in _images actually. - # somewhat hacky but works in subfolders - abs_rel = os.path.join("/", rel) - image_node = nodes.image(uri=abs_rel) - uri = builder.get_relative_uri(env.docname, "_images/" + f"{base}.svg") - uri = uri.replace(".html", "") - - ref_node = nodes.reference("", "", refuri=uri) - ref_node += image_node - ref_node["target"] = "_blank" - ref_node["rel"] = "noopener" - - uri_dl1 = builder.get_relative_uri( - env.docname, "_downloads/" + f"{base}_mspdi.xml" - ) - uri_dl1 = uri_dl1.replace(".html", "") - download1 = nodes.reference( - text="Download schedule in MS Project XML format", - refuri=uri_dl1, - classes=["download-link"], - ) + uri = f"/_static/generated_assets/{base}.svg" + image_node = nodes.image(uri=uri) paragraph = nodes.paragraph() - paragraph += ref_node - paragraph += download1 + + # download link only makes sense in web env, not PDF + builder_name = self.state.document.settings.env.app.builder.name + if builder_name not in ("html", "singlehtml", "dirhtml"): + paragraph += image_node + else: + # add hyperlink to image. Since this may be called from a subdir we need + # relative paths that walk up appropriately. + docname = env.docname # subdir/mydoc + relative_root_path = "../" * docname.count(os.sep) + hyperlink_uri = relative_root_path + uri[1:] + + # Result when docname is 'subdir/mydoc': + # hyperlink_uri will be: ../_static/generated_assets/my_diagram.svg + ref_node = nodes.reference("", "", refuri=hyperlink_uri) + ref_node += image_node + ref_node["target"] = "_blank" + ref_node["rel"] = "noopener" + paragraph += ref_node + + # and hyperlink to schedule data + hyperlink_uri = ( + relative_root_path + f"_static/generated_assets/{base}_mspdi.xml" + ) + download1 = nodes.reference( + text="Download schedule in MS Project XML format", + refuri=hyperlink_uri, + classes=["download-link"], + ) + paragraph += download1 return [paragraph] -def setup(app): - """Setup for sphinx extension.""" +def setup(app): # noqa: D103 app.add_directive("schedule", ScheduleDirective) return {