diff --git a/README.rst b/README.rst index 8dee78edf..42c9a06a2 100644 --- a/README.rst +++ b/README.rst @@ -1,8 +1,120 @@ -Regolith +|Icon| |title|_ +=============== + +.. |title| replace:: regolith +.. _title: https://regro.github.io/regolith + +.. |Icon| image:: https://avatars.githubusercontent.com/regro + :target: https://regro.github.io/regolith + :height: 100px + +|PyPi| |Forge| |PythonVersion| |PR| + +|CI| |Codecov| |Black| |Tracking| + +.. |Black| image:: https://img.shields.io/badge/code_style-black-black + :target: https://github.com/psf/black + +.. |CI| image:: https://github.com/regro/regolith/actions/workflows/main.yml/badge.svg + :target: https://github.com/regro/regolith/actions/workflows/main.yml + +.. |Codecov| image:: https://codecov.io/gh/regro/regolith/branch/main/graph/badge.svg + :target: https://codecov.io/gh/regro/regolith + +.. |Forge| image:: https://img.shields.io/conda/vn/conda-forge/regolith + :target: https://anaconda.org/conda-forge/regolith + +.. |PR| image:: https://img.shields.io/badge/PR-Welcome-29ab47ff + +.. |PyPi| image:: https://img.shields.io/pypi/v/regolith + :target: https://pypi.org/project/regolith/ + +.. |PythonVersion| image:: https://img.shields.io/pypi/pyversions/regolith + :target: https://pypi.org/project/regolith/ + +.. |Tracking| image:: https://img.shields.io/badge/issue_tracking-github-blue + :target: https://github.com/regro/regolith/issues + +A Group Content Management System + + +For more information about the regolith library, please consult our `online documentation `_. + +Citation -------- -Research Group Content Management System +If you use regolith in a scientific publication, we would like you to cite this package as + + regolith Package, https://github.com/regro/regolith + +Installation +------------ + +The preferred method is to use `Miniconda Python +`_ +and install from the "conda-forge" channel of Conda packages. + +To add "conda-forge" to the conda channels, run the following in a terminal. :: + + conda config --add channels conda-forge + +We want to install our packages in a suitable conda environment. +The following creates and activates a new environment named ``regolith_env`` :: + + conda create -n regolith_env python=3 + conda activate regolith_env + +Then, to fully install ``regolith`` in our active environment, run :: + + conda install regolith + +Another option is to use ``pip`` to download and install the latest release from +`Python Package Index `_. +To install using ``pip`` into your ``regolith_env`` environment, we will also have to install dependencies :: + + pip install -r https://raw.githubusercontent.com/regro/regolith/main/requirements/run.txt + +and then install the package :: + + pip install regolith + +If you prefer to install from sources, after installing the dependencies, obtain the source archive from +`GitHub `_. Once installed, ``cd`` into your ``regolith`` directory +and run the following :: + + pip install . + +Support and Contribute +---------------------- + +`Diffpy user group `_ is the discussion forum for general questions and discussions about the use of regolith. Please join the regolith users community by joining the Google group. The regolith project welcomes your expertise and enthusiasm! + +If you see a bug or want to request a feature, please `report it as an issue `_ and/or `submit a fix as a PR `_. You can also post it to the `Diffpy user group `_. + +Feel free to fork the project and contribute. To install regolith +in a development mode, with its sources being directly used by Python +rather than copied to a package directory, use the following in the root +directory :: + + pip install -e . + +To ensure code quality and to prevent accidental commits into the default branch, please set up the use of our pre-commit +hooks. + +1. Install pre-commit in your working environment by running ``conda install pre-commit``. + +2. Initialize pre-commit (one time only) ``pre-commit install``. + +Thereafter your code will be linted by black and isort and checked against flake8 before you can commit. +If it fails by black or isort, just rerun and it should pass (black and isort will modify the files so should +pass after they are modified). If the flake8 test fails please see the error messages and fix them manually before +trying to commit again. + +Improvements and fixes are always appreciated. + +Before contribuing, please read our `Code of Conduct `_. + +Contact +------- -Docs: ------ -https://regro.github.io/regolith-docs/ +For more information on regolith please visit the project `web-page `_ or email Prof. Simon Billinge at sb2896@columbia.edu. diff --git a/doc/source/api/app.rst b/doc/source/api/app.rst deleted file mode 100644 index fc4ebeb42..000000000 --- a/doc/source/api/app.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_app: - -****************************************************** -Web Application (``regolith.app``) -****************************************************** - -.. automodule:: regolith.app - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/basebuilder.rst b/doc/source/api/basebuilder.rst deleted file mode 100644 index 810558de5..000000000 --- a/doc/source/api/basebuilder.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_basebuilder: - -****************************************************** -Builder Base Class (``regolith.builders.basebuilder``) -****************************************************** - -.. automodule:: regolith.builders.basebuilder - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/broker.rst b/doc/source/api/broker.rst deleted file mode 100644 index 0c8fe8bfb..000000000 --- a/doc/source/api/broker.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_broker: - -****************************************************** -Data Broker (``regolith.broker``) -****************************************************** - -.. automodule:: regolith.broker - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/builder.rst b/doc/source/api/builder.rst deleted file mode 100644 index bba1db8d6..000000000 --- a/doc/source/api/builder.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_builder: - -****************************************************** -Builders (``regolith.builder``) -****************************************************** - -.. automodule:: regolith.builder - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/chained_db.rst b/doc/source/api/chained_db.rst deleted file mode 100644 index 893329fe2..000000000 --- a/doc/source/api/chained_db.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_chained_db: - -****************************************************** -Base class for chaining DBs (``regolith.chained_db``) -****************************************************** - -.. automodule:: regolith.chained_db - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/commands.rst b/doc/source/api/commands.rst deleted file mode 100644 index 20c53266a..000000000 --- a/doc/source/api/commands.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_commands: - -****************************************************** -CLI Commands (``regolith.commands``) -****************************************************** - -.. automodule:: regolith.commands - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/cvbuilder.rst b/doc/source/api/cvbuilder.rst deleted file mode 100644 index 5c03f3f80..000000000 --- a/doc/source/api/cvbuilder.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_cvbuilder: - -****************************************************** -CV Builder (``regolith.builders.cvbuilder``) -****************************************************** - -.. automodule:: regolith.builders.cvbuilder - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/database.rst b/doc/source/api/database.rst deleted file mode 100644 index 1f38f7337..000000000 --- a/doc/source/api/database.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_database: - -****************************************************** -Database Interface Tools (``regolith.database``) -****************************************************** - -.. automodule:: regolith.database - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/dates.rst b/doc/source/api/dates.rst deleted file mode 100644 index 29558c0f0..000000000 --- a/doc/source/api/dates.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_dates: - -****************************************************** -Date Tools (``regolith.dates``) -****************************************************** - -.. automodule:: regolith.dates - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/deploy.rst b/doc/source/api/deploy.rst deleted file mode 100644 index 1175f5573..000000000 --- a/doc/source/api/deploy.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_deploy: - -****************************************************** -Deployment Tools (``regolith.deploy``) -****************************************************** - -.. automodule:: regolith.deploy - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/htmlbuilder.rst b/doc/source/api/htmlbuilder.rst deleted file mode 100644 index 5c812b199..000000000 --- a/doc/source/api/htmlbuilder.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_htmlbuilder: - -****************************************************** -Website Builder (``regolith.builders.htmlbuilder``) -****************************************************** - -.. automodule:: regolith.builders.htmlbuilder - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/index.rst b/doc/source/api/index.rst index 94267b8da..1f52ba354 100644 --- a/doc/source/api/index.rst +++ b/doc/source/api/index.rst @@ -5,31 +5,213 @@ Regolith API ================= For those of you who want the gritty details. -**Central Components:** - .. toctree:: :maxdepth: 1 - runcontrol - database - builder - htmlbuilder - cvbuilder - deploy - basebuilder - chained_db - + regolith.builders + regolith.static + regolith.templates + regolith.helpers -**Helpers:** +Other API usage +---------- -.. toctree:: - :maxdepth: 1 +regolith.fsclient +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.fsclient + :members: + :undoc-members: + :show-inheritance: + +regolith.helper_connect_main +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helper_connect_main + :members: + :undoc-members: + :show-inheritance: + +regolith.stylers +^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.stylers + :members: + :undoc-members: + :show-inheritance: + +regolith.sorters +^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.sorters + :members: + :undoc-members: + :show-inheritance: + +regolith.helper_gui_main +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helper_gui_main + :members: + :undoc-members: + :show-inheritance: + +regolith.deploy +^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.deploy + :members: + :undoc-members: + :show-inheritance: + +regolith.grader +^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.grader + :members: + :undoc-members: + :show-inheritance: + +regolith.validators +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.validators + :members: + :undoc-members: + :show-inheritance: + +regolith.runcontrol +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.runcontrol + :members: + :undoc-members: + :show-inheritance: + +regolith.tools +^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.tools + :members: + :undoc-members: + :show-inheritance: + +regolith.client_manager +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.client_manager + :members: + :undoc-members: + :show-inheritance: + +regolith.builder +^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builder + :members: + :undoc-members: + :show-inheritance: + +regolith.classlist +^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.classlist + :members: + :undoc-members: + :show-inheritance: + +regolith.schemas +^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.schemas + :members: + :undoc-members: + :show-inheritance: + +regolith.storage +^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.storage + :members: + :undoc-members: + :show-inheritance: + +regolith.helper +^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helper + :members: + :undoc-members: + :show-inheritance: + +regolith.emailer +^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.emailer + :members: + :undoc-members: + :show-inheritance: + +regolith.app +^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.app + :members: + :undoc-members: + :show-inheritance: + +regolith.dates +^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.dates + :members: + :undoc-members: + :show-inheritance: + +regolith.broker +^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.broker + :members: + :undoc-members: + :show-inheritance: + +regolith.main +^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.main + :members: + :undoc-members: + :show-inheritance: + +regolith.chained_db +^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.chained_db + :members: + :undoc-members: + :show-inheritance: + +regolith.interact +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.interact + :members: + :undoc-members: + :show-inheritance: + +regolith.commands +^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.commands + :members: + :undoc-members: + :show-inheritance: + +regolith.mongoclient +^^^^^^^^^^^^^^^^^^^^^^^^^^^ - tools - dates - validators - commands - main - app - broker - interactive +.. automodule:: regolith.mongoclient + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/interactive.rst b/doc/source/api/interactive.rst deleted file mode 100644 index 4e64a8d2e..000000000 --- a/doc/source/api/interactive.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. _regolith_interactive: - -****************************************************** -Interactive Sessions (``regolith.interact``) -****************************************************** - -Usage ------ - -.. code-block:: python - - from regolith.interact import * - cj = col['people']['CJ-Wright'] - active = [p for p in col['people'] if p.get('active', True)] - -.. automodule:: regolith.interact - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/main.rst b/doc/source/api/main.rst deleted file mode 100644 index d12b41da3..000000000 --- a/doc/source/api/main.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_main: - -****************************************************** -Command Line Interface (``regolith.main``) -****************************************************** - -.. automodule:: regolith.main - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/regolith.builders.rst b/doc/source/api/regolith.builders.rst new file mode 100644 index 000000000..2e1d3337d --- /dev/null +++ b/doc/source/api/regolith.builders.rst @@ -0,0 +1,180 @@ +:tocdepth: -1 + +regolith.builders package +========================= + +.. automodule:: regolith.builders + :members: + :undoc-members: + :show-inheritance: + +Submodules +---------- + +regolith.builders.reimbursementbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.reimbursementbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.preslistbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.preslistbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.beamplanbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.beamplanbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.manuscriptreviewbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.manuscriptreviewbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.figurebuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.figurebuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.activitylogbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.activitylogbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.coabuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.coabuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.basebuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.basebuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.proposalreviewbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.proposalreviewbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.grantreportbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.grantreportbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.postdocadbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.postdocadbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.publistbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.publistbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.internalhtmlbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.internalhtmlbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.formalletterbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.formalletterbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.gradebuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.gradebuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.htmlbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.htmlbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.cvbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.cvbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.resumebuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.resumebuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.readinglistsbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.readinglistsbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.cpbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.cpbuilder + :members: + :undoc-members: + :show-inheritance: + +regolith.builders.appraisalbuilder module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.builders.appraisalbuilder + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/regolith.example_package.rst b/doc/source/api/regolith.example_package.rst deleted file mode 100644 index e8fdb885f..000000000 --- a/doc/source/api/regolith.example_package.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. _example_package documentation: - -|title| -======= - -.. |title| replace:: regolith.example_package package - -.. automodule:: regolith.example_package - :members: - :undoc-members: - :show-inheritance: - -|foo| ------ - -.. |foo| replace:: regolith.example_package.foo module - -.. automodule:: regolith.example_package.foo - :members: - :undoc-members: - :show-inheritance: - -|bar| ------ - -.. |bar| replace:: regolith.example_package.bar module - -.. automodule:: regolith.example_package.foo - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/api/regolith.helpers.rst b/doc/source/api/regolith.helpers.rst new file mode 100644 index 000000000..4a9a2cddb --- /dev/null +++ b/doc/source/api/regolith.helpers.rst @@ -0,0 +1,260 @@ +:tocdepth: -1 + +regolith.helpers package +======================== + +.. automodule:: regolith.helpers + :members: + :undoc-members: + :show-inheritance: + +Submodules +---------- + +regolith.helpers.l_contactshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_contactshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.u_finishprumhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.u_finishprumhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_todohelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_todohelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.reimbstatushelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.reimbstatushelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_presentationhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_presentationhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_milestoneshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_milestoneshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.v_meetingshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.v_meetingshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.u_contacthelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.u_contacthelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.basehelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.basehelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.u_logurlhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.u_logurlhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_expensehelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_expensehelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_proprevhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_proprevhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_todohelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_todohelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_proposalhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_proposalhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_membershelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_membershelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_manurevhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_manurevhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_progressreporthelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_progressreporthelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.f_todohelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.f_todohelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_grppub_readlisthelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_grppub_readlisthelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_projectahelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_projectahelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_generalhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_generalhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_grantshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_grantshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_currentappointmentshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_currentappointmentshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.l_abstracthelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.l_abstracthelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.attestationshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.attestationshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.a_projectumhelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.a_projectumhelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.u_todohelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.u_todohelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.makeappointmentshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.makeappointmentshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.u_institutionshelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.u_institutionshelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.hellohelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.hellohelper + :members: + :undoc-members: + :show-inheritance: + +regolith.helpers.u_milestonehelper module +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +.. automodule:: regolith.helpers.u_milestonehelper + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/regolith.rst b/doc/source/api/regolith.rst deleted file mode 100644 index 44aceb0e3..000000000 --- a/doc/source/api/regolith.rst +++ /dev/null @@ -1,30 +0,0 @@ -:tocdepth: -1 - -|title| -======= - -.. |title| replace:: regolith package - -.. automodule:: regolith - :members: - :undoc-members: - :show-inheritance: - -Subpackages ------------ - -.. toctree:: - regolith.example_package - -Submodules ----------- - -|module| --------- - -.. |module| replace:: regolith.example_submodule module - -.. automodule:: regolith.example_submodule - :members: - :undoc-members: - :show-inheritance: diff --git a/doc/source/api/regolith.static.img.rst b/doc/source/api/regolith.static.img.rst new file mode 100644 index 000000000..7478b7bcf --- /dev/null +++ b/doc/source/api/regolith.static.img.rst @@ -0,0 +1,9 @@ +:tocdepth: -1 + +regolith.static.img package +=========================== + +.. automodule:: regolith.static.img + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/regolith.static.rst b/doc/source/api/regolith.static.rst new file mode 100644 index 000000000..12e1ca7bf --- /dev/null +++ b/doc/source/api/regolith.static.rst @@ -0,0 +1,17 @@ +:tocdepth: -1 + +regolith.static package +======================= + +.. automodule:: regolith.static + :members: + :undoc-members: + :show-inheritance: + +Subpackages +----------- + +.. toctree:: + :titlesonly: + + regolith.static.img diff --git a/doc/source/api/regolith.templates.rst b/doc/source/api/regolith.templates.rst new file mode 100644 index 000000000..a89089138 --- /dev/null +++ b/doc/source/api/regolith.templates.rst @@ -0,0 +1,9 @@ +:tocdepth: -1 + +regolith.templates package +========================== + +.. automodule:: regolith.templates + :members: + :undoc-members: + :show-inheritance: diff --git a/doc/source/api/runcontrol.rst b/doc/source/api/runcontrol.rst deleted file mode 100644 index 32de42b1b..000000000 --- a/doc/source/api/runcontrol.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_runcontrol: - -****************************************************** -Run Controlers (``regolith.runcontrol``) -****************************************************** - -.. automodule:: regolith.runcontrol - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/tools.rst b/doc/source/api/tools.rst deleted file mode 100644 index c6b5524e5..000000000 --- a/doc/source/api/tools.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_tools: - -****************************************** -Tools (``regolith.tools``) -****************************************** - -.. automodule:: regolith.tools - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/api/validators.rst b/doc/source/api/validators.rst deleted file mode 100644 index 69a3df69b..000000000 --- a/doc/source/api/validators.rst +++ /dev/null @@ -1,10 +0,0 @@ -.. _regolith_validators: - -****************************************************** -Run Control Validators (``regolith.validators``) -****************************************************** - -.. automodule:: regolith.validators - :members: - :undoc-members: - :inherited-members: diff --git a/doc/source/collections/abstracts.rst b/doc/source/collections/abstracts.rst new file mode 100644 index 000000000..5ee5c924f --- /dev/null +++ b/doc/source/collections/abstracts.rst @@ -0,0 +1,56 @@ +Abstracts +========= +Abstracts for a conference or workshop. This is generally public information + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, Unique identifier for submission. This generally includes the author name and part of the title., required +:coauthors: string, names of coauthors, optional +:email: string, contact email for the author., required +:firstname: string, first name of the author., required +:institution: string, name of the institution, required +:lastname: string, last name of the author., required +:references: string, HTML string of reference for the abstract itself, optional +:text: string, HTML string of the abstract., required +:timestamp: string, The time when the abstract was submitted., required +:title: string, title of the presentation/paper., required + + +YAML Example +------------ + +.. code-block:: yaml + + Mouginot.Model: + coauthors: P.P.H. Wilson + email: mouginot@wisc.edu + firstname: Baptiste + institution: University of Wisconsin-Madison + lastname: Mouginot + references: '[1] B. MOUGINOT, “cyCLASS: CLASS models for Cyclus,”, Figshare, https://dx.doi.org/10.6084/m9.figshare.3468671.v2 + (2016).' + text: The CLASS team has developed high quality predictors based on pre-trained + neural network... + timestamp: 5/5/2017 13:15:59 + title: Model Performance Analysis + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "Mouginot.Model", + "coauthors": "P.P.H. Wilson", + "email": "mouginot@wisc.edu", + "firstname": "Baptiste", + "institution": "University of Wisconsin-Madison", + "lastname": "Mouginot", + "references": "[1] B. MOUGINOT, \u201ccyCLASS: CLASS models for Cyclus,\u201d, Figshare, https://dx.doi.org/10.6084/m9.figshare.3468671.v2 (2016).", + "text": "The CLASS team has developed high quality predictors based on pre-trained neural network...", + "timestamp": "5/5/2017 13:15:59", + "title": "Model Performance Analysis" + } diff --git a/doc/source/collections/assignments.rst b/doc/source/collections/assignments.rst new file mode 100644 index 000000000..e60e66649 --- /dev/null +++ b/doc/source/collections/assignments.rst @@ -0,0 +1,62 @@ +Assignments +=========== +Information about assignments for classes. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, A unique id for the assignment, such as HW01-EMCH-558-2016-S, required +:category: string, such as 'homework' or 'final', required +:courses: ['string', 'list'], ids of the courses that have this assignment, required +:file: string, path to assignment file in store, optional +:points: list, list of number of points possible for each question. Length is the number of questions, required + + :anyof_type: ['integer', 'float'], optional +:questions: list, titles for the questions on this assignment, optional +:solution: string, path to solution file in store, optional + + +YAML Example +------------ + +.. code-block:: yaml + + hw01-rx-power: + category: homework + courses: + - EMCH-558-2016-S + - EMCH-758-2016-S + points: + - 1 + - 2 + - 3 + questions: + - 1-9 + - 1-10 + - 1-12 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "hw01-rx-power", + "category": "homework", + "courses": [ + "EMCH-558-2016-S", + "EMCH-758-2016-S" + ], + "points": [ + 1, + 2, + 3 + ], + "questions": [ + "1-9", + "1-10", + "1-12" + ] + } diff --git a/doc/source/collections/beamplan.rst b/doc/source/collections/beamplan.rst new file mode 100644 index 000000000..f381656d7 --- /dev/null +++ b/doc/source/collections/beamplan.rst @@ -0,0 +1,128 @@ +Beamplan +======== +Information about the experiment plan for the beamtime. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, Unique identifier for the experiment plan. It should have a format '{year:2d}{month:2d}{people_id:s}_{plan_name:s}', required +:beamtime: string, The id for the beamtime. Check the Airtable., required +:begin_date: ['string', 'datetime', 'date'], The begin date of the beam time., required +:devices: list, The dictionary of devices used in the measurement e. g. , required + + :type: string, optional +:end_date: ['string', 'datetime', 'date'], The end date of the beam time., required +:exp_plan: list, Steps to carry out the experiments at BNL. Need details, required + + :type: string, optional +:holder: string, Sample holder used during the measurement, e. g. 3 mm OD tubes holder., required +:measurement: string, What data to be measured, e. g. PDF, XRD, SAXS. This will determine the setup., required +:notes: ['list', 'string'], Notes of the plan, e. g. the preferred time., optional + + :type: string, optional +:objective: string, What to study in the experiments. What goal to achieve., required +:pipeline: string, The analysis pipeline for the experiment. If no new pipeline is needed, use 'usual'., required +:prep_plan: list, Steps to prepare the samples. Do NOT need details., required + + :type: string, optional +:project: string, The id for the project which the plan belongs to. It should be on airtable., required +:project_lead: string, The id for person who put out this plan. It should be inside the people.yml., required +:samples: list, The list of samples to be measured., required + + :type: string, optional +:scanplan: list, The scanplan for the experiment, e. g. tseries, Tramp, ct., required + + :type: string, optional +:ship_plan: list, Steps to carry the samples from the producer to the BNL. Do NOT need details., required + + :type: string, optional +:time: integer, The total time of executing the exp_plan. Unit: min., required +:todo: list, The TODO list before the beamtime., required + + :type: string, optional + + +YAML Example +------------ + +.. code-block:: yaml + + test: + beamtime: 2020-1-XPD + begin_date: '2020-01-01' + devices: + - cryostream + end_date: '2020-01-02' + exp_plan: + - load samples on the holder + - scan the holder to locate the samples + - take room temperature measurement of sample and the subtrate + - ramp down temperature to 100K + - ramp up, measure PDF at temperature 100K ~ 300K, 10K stepsize, 1 min exposure + holder: film holder (1 cm * 1 cm * 1 mm) + measurement: Tramp + objective: temperature ramping PDF of one WO3 film (100, 300K, 10K) + pipeline: usual + prep_plan: + - films will be made by kriti + project: 20ks_wo3 + project_lead: kseth + samples: + - WO3 film + - glass subtrate + scanplan: + - Scanplan(bt, Tramp, 30, 80, 500, 10) + ship_plan: + - seal and ship to CU + - carry to the beamline + time: 190 + todo: + - todo something + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "test", + "beamtime": "2020-1-XPD", + "begin_date": "2020-01-01", + "devices": [ + "cryostream" + ], + "end_date": "2020-01-02", + "exp_plan": [ + "load samples on the holder", + "scan the holder to locate the samples", + "take room temperature measurement of sample and the subtrate", + "ramp down temperature to 100K", + "ramp up, measure PDF at temperature 100K ~ 300K, 10K stepsize, 1 min exposure" + ], + "holder": "film holder (1 cm * 1 cm * 1 mm)", + "measurement": "Tramp", + "objective": "temperature ramping PDF of one WO3 film (100, 300K, 10K)", + "pipeline": "usual", + "prep_plan": [ + "films will be made by kriti" + ], + "project": "20ks_wo3", + "project_lead": "kseth", + "samples": [ + "WO3 film", + "glass subtrate" + ], + "scanplan": [ + "Scanplan(bt, Tramp, 30, 80, 500, 10)" + ], + "ship_plan": [ + "seal and ship to CU", + "carry to the beamline" + ], + "time": 190, + "todo": [ + "todo something" + ] + } diff --git a/doc/source/collections/blog.rst b/doc/source/collections/blog.rst new file mode 100644 index 000000000..87388424c --- /dev/null +++ b/doc/source/collections/blog.rst @@ -0,0 +1,48 @@ +Blog +==== +This collection represents blog posts written by the members of the research group. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, short representation, such as this-is-my-title, required +:author: string, name or AKA of author, required +:day: integer, Publication day, required +:month: ['string', 'integer'], Publication month, required +:original: string, URL of original post, if this is a repost, optional +:post: string, actual contents of the post, required +:title: string, full human readable title, required +:year: integer, Publication year, required + + +YAML Example +------------ + +.. code-block:: yaml + + my-vision: + author: Anthony Scopatz + day: 18 + month: September + original: https://scopatz.com/my-vision/ + post: I would like see things move forward. Deep, I know! + title: My Vision + year: 2015 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "my-vision", + "author": "Anthony Scopatz", + "day": 18, + "month": "September", + "original": "https://scopatz.com/my-vision/", + "post": "I would like see things move forward. Deep, I know!", + "title": "My Vision", + "year": 2015 + } diff --git a/doc/source/collections/contacts.rst b/doc/source/collections/contacts.rst new file mode 100644 index 000000000..62f86b907 --- /dev/null +++ b/doc/source/collections/contacts.rst @@ -0,0 +1,71 @@ +Contacts +======== +a lighter version of people. Fewer required fields for capturing people who are less tightly coupled + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:aka: list, other names for the person, optional +:date: ['string', 'date'], date when the entry was created in ISO format, optional +:day: integer, day when the entry was created, optional +:department: string, Department at the institution, optional +:email: string, Contact email for the contact, optional +:institution: string, the institution where they are located. This isrequired for building a COI list of coauthors, butnot in general. It can be institute id or anythingin the aka or name, optional +:month: ['string', 'integer'], month when the entry was created, optional +:name: string, the person's canonical name, required +:notes: ['list', 'string'], notes about the person, optional +:title: string, how the person is addressed, optional +:updated: ['string', 'datetime', 'date'], most recently updated, optional +:uuid: string, universally unique identifier, optional +:year: integer, year when the entry was created, optional + + +YAML Example +------------ + +.. code-block:: yaml + + afriend: + aka: + - A. B. Friend + - AB Friend + - Tony Friend + day: 15 + department: physics + email: friend@deed.com + institution: columbiau + month: January + name: Anthony B Friend + notes: + - The guy I meet for coffee sometimes + title: Mr. + uuid: 76f2a4c7-aa63-4fa3-88b5-396b0c15d368 + year: 2020 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "afriend", + "aka": [ + "A. B. Friend", + "AB Friend", + "Tony Friend" + ], + "day": 15, + "department": "physics", + "email": "friend@deed.com", + "institution": "columbiau", + "month": "January", + "name": "Anthony B Friend", + "notes": [ + "The guy I meet for coffee sometimes" + ], + "title": "Mr.", + "uuid": "76f2a4c7-aa63-4fa3-88b5-396b0c15d368", + "year": 2020 + } diff --git a/doc/source/collections/expenses.rst b/doc/source/collections/expenses.rst new file mode 100644 index 000000000..008b47755 --- /dev/null +++ b/doc/source/collections/expenses.rst @@ -0,0 +1,427 @@ +Expenses +======== +This collection records expenses for the group. It should most likely be private + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, short representation, such as this-is-my-name, required +:begin_date: ['string', 'date'], begin date in YYYY-MM-DD, optional +:begin_day: integer, The day when the travel/business started, optional +:begin_month: ['string', 'integer'], The month when the travel/business started, optional +:begin_year: integer, The year when the travel/business started, optional +:end_date: ['string', 'date'], end date in YYYY-MM-DD, optional +:end_day: integer, The day when the travel/business end, optional +:end_month: ['string', 'integer'], The month when the travel/business end, optional +:end_year: integer, The year when the travel/business end, optional + + Allowed values: + * travel + * business +:grant_percentages: list, the percentage of the reimbursement amount to put on each grant. This list must be the same length asthe grants list and the percentages placed in the order that the grants appear in that list, optional +:grants: ['string', 'list'], the grants in a list, or a string if only one grant, required +:itemized_expenses: list, optional + + :type: dict, optional + + :day: integer, Expense day, optional + :date: ['string', 'date'], Expense date, optional + :month: ['string', 'integer'], Expense month, optional + :year: integer, Expense year, optional + :purpose: string, reason for expense, optional + :unsegregated_expense: float, The allowed expenses, optional + :segregated_expense: float, The unallowed expenses, optional + :currency: string, The currency the payment was made in, optional + :prepaid_expense: float, The amount of prepaid expense in USD, optional + :notes: ['list', 'string'], notes about the expense, optional +:notes: ['list', 'string'], Description of the expenses. It will not be included in the reimbursement form, optional +:overall_purpose: string, The reason for the expenses, required +:payee: string, The name or id of the payee filing the expense, required +:project: ['string', 'list'], project or list of projects that this presentation is associated with. Should be discoverable in projects collection, optional +:reimbursements: list, Reimbursements for the expense, optional + + :type: dict, optional + + :amount: float, amount for reimbursements, optional + :date: ['string', 'date'], date of reimbursement, optional + :submission_date: ['string', 'date'], date of submission, optional + :submission_day: integer, day of submission. deprecated but here for backwards compatibility, optional + :submission_month: ['integer', 'string'], month of submission. deprecated but here for backwards compatibility, optional + :submission_year: integer, year of submission. deprecated but here for backwards compatibility, optional + :day: integer, day of reimbursement. deprecated but here for backwards compatibility, optional + :month: ['string', 'integer'], month of reimbursement. deprecated but here for backwards compatibility, optional + :year: integer, year of reimbursement. deprecated but here for backwards compatibility, optional + :where: string, where the reimbursement has been sent, optional +:status: string, The status of the expense, optional + + Allowed values: + * unsubmitted + * submitted + * reimbursed + * declined + + +YAML Example +------------ + +.. code-block:: yaml + + test: + begin_date: '2018-01-01' + end_date: '2018-01-10' + expense_type: business + grant_percentages: + - '50' + - '50' + grants: + - dmref15 + - SymPy-1.1 + itemized_expenses: + - day: 1 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 10 + year: 2018 + - day: 2 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 20 + year: 2018 + - day: 3 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 30 + year: 2018 + - day: 4 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 40 + year: 2018 + - day: 5 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 50 + year: 2018 + - day: 6 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 60 + year: 2018 + - day: 7 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 70 + year: 2018 + - day: 8 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 80 + year: 2018 + - day: 9 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 90 + year: 2018 + - day: 10 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 100 + year: 2018 + notes: this expense was used to get the work done + overall_purpose: testing the databallectionsse + payee: scopatz + project: Cyclus + reimbursements: + - amount: 500 + date: tbd + submission_date: tbd + where: Columbia + - amount: 1000 + date: '2019-02-15' + submission_date: '2019-09-05' + where: Columbia + status: submitted + test2: + begin_date: '2019-01-01' + end_date: '2019-01-10' + expense_type: business + grant_percentages: + - '100' + grants: + - SymPy-1.1 + itemized_expenses: + - currency: USD + day: 2 + month: Jan + notes: + - this is just a test + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 10 + year: 2019 + notes: some note + overall_purpose: testing + payee: sbillinge + project: reimbursed expense + reimbursements: + - amount: 100 + date: '2019-09-15' + submission_date: tbd + where: Columbia + status: reimbursed + test3: + begin_date: '2020-01-01' + end_date: '2020-01-10' + expense_type: business + grant_percentages: + - '100' + grants: + - SymPy-1.1 + itemized_expenses: + - day: 3 + month: Jan + prepaid_expense: 10.3 + purpose: test + segregated_expense: 0 + unsegregated_expense: 10 + year: 2020 + notes: some other note + overall_purpose: more testing + payee: sbillinge + project: reimbursed expense + reimbursements: + - amount: 100 + date: '2020-09-15' + submission_date: tbd + where: Columbia + status: bad_status + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "test", + "begin_date": "2018-01-01", + "end_date": "2018-01-10", + "expense_type": "business", + "grant_percentages": [ + "50", + "50" + ], + "grants": [ + "dmref15", + "SymPy-1.1" + ], + "itemized_expenses": [ + { + "day": 1, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 10, + "year": 2018 + }, + { + "day": 2, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 20, + "year": 2018 + }, + { + "day": 3, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 30, + "year": 2018 + }, + { + "day": 4, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 40, + "year": 2018 + }, + { + "day": 5, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 50, + "year": 2018 + }, + { + "day": 6, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 60, + "year": 2018 + }, + { + "day": 7, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 70, + "year": 2018 + }, + { + "day": 8, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 80, + "year": 2018 + }, + { + "day": 9, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 90, + "year": 2018 + }, + { + "day": 10, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 100, + "year": 2018 + } + ], + "notes": "this expense was used to get the work done", + "overall_purpose": "testing the databallectionsse", + "payee": "scopatz", + "project": "Cyclus", + "reimbursements": [ + { + "amount": 500, + "date": "tbd", + "submission_date": "tbd", + "where": "Columbia" + }, + { + "amount": 1000, + "date": "2019-02-15", + "submission_date": "2019-09-05", + "where": "Columbia" + } + ], + "status": "submitted" + } + { + "_id": "test2", + "begin_date": "2019-01-01", + "end_date": "2019-01-10", + "expense_type": "business", + "grant_percentages": [ + "100" + ], + "grants": [ + "SymPy-1.1" + ], + "itemized_expenses": [ + { + "currency": "USD", + "day": 2, + "month": "Jan", + "notes": [ + "this is just a test" + ], + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 10, + "year": 2019 + } + ], + "notes": "some note", + "overall_purpose": "testing", + "payee": "sbillinge", + "project": "reimbursed expense", + "reimbursements": [ + { + "amount": 100, + "date": "2019-09-15", + "submission_date": "tbd", + "where": "Columbia" + } + ], + "status": "reimbursed" + } + { + "_id": "test3", + "begin_date": "2020-01-01", + "end_date": "2020-01-10", + "expense_type": "business", + "grant_percentages": [ + "100" + ], + "grants": [ + "SymPy-1.1" + ], + "itemized_expenses": [ + { + "day": 3, + "month": "Jan", + "prepaid_expense": 10.3, + "purpose": "test", + "segregated_expense": 0, + "unsegregated_expense": 10, + "year": 2020 + } + ], + "notes": "some other note", + "overall_purpose": "more testing", + "payee": "sbillinge", + "project": "reimbursed expense", + "reimbursements": [ + { + "amount": 100, + "date": "2020-09-15", + "submission_date": "tbd", + "where": "Columbia" + } + ], + "status": "bad_status" + } diff --git a/doc/source/collections/formalletters.rst b/doc/source/collections/formalletters.rst new file mode 100644 index 000000000..4fde105fc --- /dev/null +++ b/doc/source/collections/formalletters.rst @@ -0,0 +1,94 @@ +Formalletters +============= +Letters with a formal formatting, subject, recipients, enclosures, etc. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: ['string', 'integer', 'float'], short representation, such as id_of_the_letter, required +:copy_to: ['list'], List of people who will receive a copy, optional +:date: ['string', 'date'], Letter date. ISO format YYYY-MM-DD, required +:encls: ['list'], List of enclosures, optional + + :name: string, The name of the sender, optional + :title: string, The title of the person, Sir, Mr., Major. Ranks can be shortened to codes., optional + :postfix: string, The post-fix, PhD, (Admiral, retired), whatever, optional +:paras: ['list'], content of the letter in the form of a List of paragraphs, required +:refs: ['list'], List of references, optional +:subject: ['string'], The subject of the letter, optional + + :name: string, The name of the recipient, optional + :title: string, The title of the person, Sir, Mr., Major. Ranks can be shortened to codes., optional + :postfix: string, The post-fix, PhD, (Admiral, retired), whatever, optional + + +YAML Example +------------ + +.. code-block:: yaml + + first_letter: + copy_to: + - copied-person1 + - copied-person2 + date: '2022-06-05' + encls: + - encl 1 + - encl 2 + from: + name: John Doy + postfix: Royalty + title: Sir + paras: + - first paragraph made long enough to make sure the wrapping gives the desired + result and that it looks nice all around. + - para 2 + - para 3 + refs: + - ref 1 + - ref 2 + subject: this letter is about this + to: + name: Julie Doe + postfix: USM + title: lc + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "first_letter", + "copy_to": [ + "copied-person1", + "copied-person2" + ], + "date": "2022-06-05", + "encls": [ + "encl 1", + "encl 2" + ], + "from": { + "name": "John Doy", + "postfix": "Royalty", + "title": "Sir" + }, + "paras": [ + "first paragraph made long enough to make sure the wrapping gives the desired result and that it looks nice all around.", + "para 2", + "para 3" + ], + "refs": [ + "ref 1", + "ref 2" + ], + "subject": "this letter is about this", + "to": { + "name": "Julie Doe", + "postfix": "USM", + "title": "lc" + } + } diff --git a/doc/source/collections/grades.rst b/doc/source/collections/grades.rst new file mode 100644 index 000000000..0f56a68dc --- /dev/null +++ b/doc/source/collections/grades.rst @@ -0,0 +1,49 @@ +Grades +====== +The grade for a student on an assignment. This information should be private. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, unique id, typically the student-assignment-course, required +:assignment: string, assignment id, required +:course: string, course id, required +:filename: string, path to file in store, optional +:scores: list, the number of points earned on each question, required + + :anyof_type: ['integer', 'float'], optional +:student: string, student id, required + + +YAML Example +------------ + +.. code-block:: yaml + + Human A. Person-rx-power-hw02-EMCH-758-2017-S: + assignment: 2017-rx-power-hw02 + course: EMCH-758-2017-S + scores: + - 1 + - 1.6 + - 3 + student: hap + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "Human A. Person-rx-power-hw02-EMCH-758-2017-S", + "assignment": "2017-rx-power-hw02", + "course": "EMCH-758-2017-S", + "scores": [ + 1, + 1.6, + 3 + ], + "student": "hap" + } diff --git a/doc/source/collections/grants.rst b/doc/source/collections/grants.rst new file mode 100644 index 000000000..78609cfb0 --- /dev/null +++ b/doc/source/collections/grants.rst @@ -0,0 +1,526 @@ +Grants +====== +This collection represents grants that have been awarded to the group. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: ['string', 'integer', 'float'], short representation, such as this-is-my-name, required +:account: string, the account number which holds the funds, optional +:admin: string, the unit or group administering the grant, optional +:alias: string, the alias of the grant, optional +:amount: ['integer', 'float'], value of award, required +:awardnr: string, the number of the award from the agency, optional +:begin_date: ['string', 'date'], start date of the grant (if string, in format YYYY-MM-DD), optional +:begin_day: integer, start day of the grant, optional +:begin_month: ['string', 'integer'], start month of the grant, optional +:begin_year: integer, start year of the grant, optional +:benefit_of_collaboration: string, optional +:budget: list, budget periods of grant, optional + + :type: dict, optional + + :begin_date: ['string', 'date'], start date of the budget period in format YYYY-MM-DD, optional + :end_date: ['string', 'date'], end date of the budget period in format YYYY-MM-DD, optional + :student_months: ['float', 'integer'], number of months of funding for student members during the academic year, optional + :postdoc_months: ['float', 'integer'], number of months of funding for postdoc members during the academic year, optional + :ss_months: ['float', 'integer'], number of months of funding for the summer, optional + :amount: ['float', 'integer'], subaward for this budget period, optional +:call_for_proposals: string, optional +:currency: string, typically '$' or 'USD', optional +:end_date: ['string', 'date'], start date of the grant (if string, in format YYYY-MM-DD), optional +:end_day: ['string', 'integer'], end day of the grant, optional +:end_month: ['string', 'integer'], end month of the grant, optional +:end_year: integer, end year of the grant, optional +:funder: string, the agency funding the work, required +:funds_available: list, funds available on date, optional + + :type: dict, optional + + :date: ['string', 'date'], optional + :funds_available: ['integer', 'float'], optional +:grant_id: string, the identifier for this work, optional +:highlights: list, lists of highlights from the project, optional + + :type: dict, optional + + :year: integer, optional + :month: integer, optional + :description: string, optional +:institution: string, the host institution for the grant, optional +:narrative: string, optional +:notes: string, notes about the grant, optional +:person_months_academic: ['integer', 'float'], Number of months of funding during the academic year, optional +:person_months_summer: ['integer', 'float'], Number of months of funding during the summer, optional +:program: string, the program the work was funded under, optional +:proposal_id: string, initial proposal made for grant, optional +:scope: string, The scope of the grant, answers the prompt: Describe Research Including Synergies and Delineation with Respect to this Proposal/Award:, optional +:status: string, status of the grant, optional + + Allowed values: + * pending + * declined + * accepted + * in-prep +:team: list, information about the team members participating in the grant., required + + :type: dict, optional + + :admin_people: list, optional + :cv: string, optional + :institution: string, optional + :name: string, optional + :position: string, optional + + Allowed values: + * pi + * copi + :subaward_amount: ['integer', 'float'], optional +:title: string, actual title of proposal / grant, required + + +YAML Example +------------ + +.. code-block:: yaml + + SymPy-1.1: + admin: APAM + alias: sym + amount: 3000.0 + awardnr: NF-1234 + begin_day: 1 + begin_month: May + begin_year: 2030 + budget: + - amount: 1000.0 + begin_date: '2030-05-01' + end_date: '2030-06-30' + postdoc_months: 0.0 + ss_months: 1.0 + student_months: 0.5 + - amount: 1000.0 + begin_date: '2030-07-01' + end_date: '2030-09-30' + postdoc_months: 0.0 + ss_months: 2.0 + student_months: 1.5 + - amount: 1000.0 + begin_date: '2030-10-01' + end_date: '2030-12-31' + postdoc_months: 0.0 + ss_months: 0.0 + student_months: 3.0 + call_for_proposals: https://groups.google.com/d/msg/numfocus/wPjhdm8NJiA/S8JL1_NZDQAJ + end_day: 31 + end_month: December + end_year: 2030 + funder: NumFOCUS + funds_available: + - date: '2020-04-01' + funds_available: 2800.0 + - date: '2021-01-03' + funds_available: 2100.0 + - date: '2020-07-21' + funds_available: 2600.0 + narrative: https://docs.google.com/document/d/1nZxqoL-Ucni_aXLWmXtRDd3IWqW0mZBO65CEvDrsXZM/edit?usp=sharing + program: Small Development Grants + team: + - institution: University of South Carolina + name: Anthony Scopatz + position: pi + - admin_people: + - A. D. Ministrator + institution: University of South Carolina + name: Aaron Meurer + position: researcher + title: SymPy 1.1 Release Support + SymPy-2.0: + admin: APAM + alias: sym2.0 + amount: 3000.0 + awardnr: NF-1234 + begin_day: 1 + begin_month: 6 + begin_year: 2019 + call_for_proposals: https://groups.google.com/d/msg/numfocus/wPjhdm8NJiA/S8JL1_NZDQAJ + end_day: 31 + end_month: December + end_year: 2030 + funder: NumFOCUS + funds_available: + - date: '2020-04-01' + funds_available: 2800.0 + - date: '2021-01-03' + funds_available: 2100.0 + - date: '2020-07-21' + funds_available: 2600.0 + highlights: + - description: high profile pub in Nature + month: 5 + year: 2020 + narrative: https://docs.google.com/document/d/1nZxqoL-Ucni_aXLWmXtRDd3IWqW0mZBO65CEvDrsXZM/edit?usp=sharing + program: Small Development Grants + proposal_id: SymPy-2.0 + status: accepted + team: + - institution: University of South Carolina + name: Anthony Scopatz + position: pi + - institution: University of South Carolina + name: Aaron Meurer + position: researcher + title: SymPy 2.0 Release Support + abc42: + alias: abc42 + amount: 42000.0 + begin_date: '2020-06-01' + budget: + - amount: 42000.0 + begin_date: '2020-06-01' + end_date: '2020-12-31' + postdoc_months: 0.0 + ss_months: 1.0 + student_months: 0.0 + end_date: '2020-12-31' + funder: Life + program: Metaphysical Grants + proposal_id: abc42 + team: + - institution: University of Pedagogy + name: Chief Pedagogue + position: pi + - institution: University of Pedagogy + name: Pedagogue Jr. + position: copi + title: The answer to life, the universe, and everything + dmref15: + account: GG012345 + admin: DSI + alias: dmref15 + amount: 982785.0 + awardnr: DMR-0785462 + budget: + - amount: 327595.0 + begin_date: '2018-05-01' + end_date: '2018-09-30' + postdoc_months: 0.0 + ss_months: 6.0 + student_months: 12.0 + - amount: 327595.0 + begin_date: '2018-10-01' + end_date: '2019-01-30' + postdoc_months: 0.0 + ss_months: 12.0 + student_months: 8.0 + - amount: 327595.0 + begin_date: '2019-02-01' + end_date: '2019-05-01' + postdoc_months: 0.0 + ss_months: 6.0 + student_months: 12.0 + funder: NSF + grant_id: DMREF-1534910 + institution: Columbia University + notes: Designing Materials to Revolutionize and Engineer our Future (DMREF) + person_months_academic: 0.0 + person_months_summer: 0.25 + program: DMREF + proposal_id: dmref15 + scope: This grant is to develop complex modeling methods for regularizing ill-posed + nanostructure inverse problems using data analytic and machine learning based + approaches. This does not overlap with any other grant. + team: + - institution: Columbia University + name: qdu + position: copi + - institution: Columbia University + name: dhsu + position: copi + - institution: Columbia University + name: Anthony Scopatz + position: pi + subaward_amount: 330000.0 + title: 'DMREF: Novel, data validated, nanostructure determination methods for accelerating + materials discovery' + ta: + amount: 0.0 + begin_date: '2020-06-01' + budget: + - amount: 0.0 + begin_date: '2020-06-01' + end_date: '2020-08-30' + postdoc_months: 0.0 + ss_months: 0.0 + student_months: 0.0 + end_date: '2020-12-31' + funder: Life + program: Underground Grants + team: + - institution: Ministry of Magic + name: Chief Witch + position: pi + - institution: Ministry of Magic + name: Chief Wizard + position: copi + title: Support for teaching assistants + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "SymPy-1.1", + "admin": "APAM", + "alias": "sym", + "amount": 3000.0, + "awardnr": "NF-1234", + "begin_day": 1, + "begin_month": "May", + "begin_year": 2030, + "budget": [ + { + "amount": 1000.0, + "begin_date": "2030-05-01", + "end_date": "2030-06-30", + "postdoc_months": 0.0, + "ss_months": 1.0, + "student_months": 0.5 + }, + { + "amount": 1000.0, + "begin_date": "2030-07-01", + "end_date": "2030-09-30", + "postdoc_months": 0.0, + "ss_months": 2.0, + "student_months": 1.5 + }, + { + "amount": 1000.0, + "begin_date": "2030-10-01", + "end_date": "2030-12-31", + "postdoc_months": 0.0, + "ss_months": 0.0, + "student_months": 3.0 + } + ], + "call_for_proposals": "https://groups.google.com/d/msg/numfocus/wPjhdm8NJiA/S8JL1_NZDQAJ", + "end_day": 31, + "end_month": "December", + "end_year": 2030, + "funder": "NumFOCUS", + "funds_available": [ + { + "date": "2020-04-01", + "funds_available": 2800.0 + }, + { + "date": "2021-01-03", + "funds_available": 2100.0 + }, + { + "date": "2020-07-21", + "funds_available": 2600.0 + } + ], + "narrative": "https://docs.google.com/document/d/1nZxqoL-Ucni_aXLWmXtRDd3IWqW0mZBO65CEvDrsXZM/edit?usp=sharing", + "program": "Small Development Grants", + "team": [ + { + "institution": "University of South Carolina", + "name": "Anthony Scopatz", + "position": "pi" + }, + { + "admin_people": [ + "A. D. Ministrator" + ], + "institution": "University of South Carolina", + "name": "Aaron Meurer", + "position": "researcher" + } + ], + "title": "SymPy 1.1 Release Support" + } + { + "_id": "SymPy-2.0", + "admin": "APAM", + "alias": "sym2.0", + "amount": 3000.0, + "awardnr": "NF-1234", + "begin_day": 1, + "begin_month": 6, + "begin_year": 2019, + "call_for_proposals": "https://groups.google.com/d/msg/numfocus/wPjhdm8NJiA/S8JL1_NZDQAJ", + "end_day": 31, + "end_month": "December", + "end_year": 2030, + "funder": "NumFOCUS", + "funds_available": [ + { + "date": "2020-04-01", + "funds_available": 2800.0 + }, + { + "date": "2021-01-03", + "funds_available": 2100.0 + }, + { + "date": "2020-07-21", + "funds_available": 2600.0 + } + ], + "highlights": [ + { + "description": "high profile pub in Nature", + "month": 5, + "year": 2020 + } + ], + "narrative": "https://docs.google.com/document/d/1nZxqoL-Ucni_aXLWmXtRDd3IWqW0mZBO65CEvDrsXZM/edit?usp=sharing", + "program": "Small Development Grants", + "proposal_id": "SymPy-2.0", + "status": "accepted", + "team": [ + { + "institution": "University of South Carolina", + "name": "Anthony Scopatz", + "position": "pi" + }, + { + "institution": "University of South Carolina", + "name": "Aaron Meurer", + "position": "researcher" + } + ], + "title": "SymPy 2.0 Release Support" + } + { + "_id": "abc42", + "alias": "abc42", + "amount": 42000.0, + "begin_date": "2020-06-01", + "budget": [ + { + "amount": 42000.0, + "begin_date": "2020-06-01", + "end_date": "2020-12-31", + "postdoc_months": 0.0, + "ss_months": 1.0, + "student_months": 0.0 + } + ], + "end_date": "2020-12-31", + "funder": "Life", + "program": "Metaphysical Grants", + "proposal_id": "abc42", + "team": [ + { + "institution": "University of Pedagogy", + "name": "Chief Pedagogue", + "position": "pi" + }, + { + "institution": "University of Pedagogy", + "name": "Pedagogue Jr.", + "position": "copi" + } + ], + "title": "The answer to life, the universe, and everything" + } + { + "_id": "dmref15", + "account": "GG012345", + "admin": "DSI", + "alias": "dmref15", + "amount": 982785.0, + "awardnr": "DMR-0785462", + "budget": [ + { + "amount": 327595.0, + "begin_date": "2018-05-01", + "end_date": "2018-09-30", + "postdoc_months": 0.0, + "ss_months": 6.0, + "student_months": 12.0 + }, + { + "amount": 327595.0, + "begin_date": "2018-10-01", + "end_date": "2019-01-30", + "postdoc_months": 0.0, + "ss_months": 12.0, + "student_months": 8.0 + }, + { + "amount": 327595.0, + "begin_date": "2019-02-01", + "end_date": "2019-05-01", + "postdoc_months": 0.0, + "ss_months": 6.0, + "student_months": 12.0 + } + ], + "funder": "NSF", + "grant_id": "DMREF-1534910", + "institution": "Columbia University", + "notes": "Designing Materials to Revolutionize and Engineer our Future (DMREF)", + "person_months_academic": 0.0, + "person_months_summer": 0.25, + "program": "DMREF", + "proposal_id": "dmref15", + "scope": "This grant is to develop complex modeling methods for regularizing ill-posed nanostructure inverse problems using data analytic and machine learning based approaches. This does not overlap with any other grant.", + "team": [ + { + "institution": "Columbia University", + "name": "qdu", + "position": "copi" + }, + { + "institution": "Columbia University", + "name": "dhsu", + "position": "copi" + }, + { + "institution": "Columbia University", + "name": "Anthony Scopatz", + "position": "pi", + "subaward_amount": 330000.0 + } + ], + "title": "DMREF: Novel, data validated, nanostructure determination methods for accelerating materials discovery" + } + { + "_id": "ta", + "amount": 0.0, + "begin_date": "2020-06-01", + "budget": [ + { + "amount": 0.0, + "begin_date": "2020-06-01", + "end_date": "2020-08-30", + "postdoc_months": 0.0, + "ss_months": 0.0, + "student_months": 0.0 + } + ], + "end_date": "2020-12-31", + "funder": "Life", + "program": "Underground Grants", + "team": [ + { + "institution": "Ministry of Magic", + "name": "Chief Witch", + "position": "pi" + }, + { + "institution": "Ministry of Magic", + "name": "Chief Wizard", + "position": "copi" + } + ], + "title": "Support for teaching assistants" + } diff --git a/doc/source/collections/groups.rst b/doc/source/collections/groups.rst new file mode 100644 index 000000000..ed7cf79cf --- /dev/null +++ b/doc/source/collections/groups.rst @@ -0,0 +1,60 @@ +Groups +====== +Information about the research groupthis is generally public information + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, Unique identifier for submission. This generally includes the author name and part of the title., required +:aka: list, other names for the group, required +:banner: string, name of image file with the group banner, optional +:department: string, Name of host department, required +:email: string, Contact email for the group, required +:institution: string, Name of the host institution, required +:mission_statement: string, Mission statement of the group, optional +:name: string, Name of the group, required +:pi_name: string, The name of the Principle Investigator, required +:projects: string, About line for projects, required +:website: string, URL to group webpage, optional + + +YAML Example +------------ + +.. code-block:: yaml + + ergs: + aka: + - Energy Research Group Something + - Scopatz Group + department: Mechanical Engineering + email: scopatz (AT) cec.sc.edu + institution: University of South Carolina + mission_statement: We are committed to open and accessible research tools and methods. + name: ERGS + pi_name: Anthony Scopatz + projects: ERGS is involved in a large number of computational projects. + website: www.ergs.sc.edu + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "ergs", + "aka": [ + "Energy Research Group Something", + "Scopatz Group" + ], + "department": "Mechanical Engineering", + "email": "scopatz (AT) cec.sc.edu", + "institution": "University of South Carolina", + "mission_statement": "We are committed to open and accessible research tools and methods.", + "name": "ERGS", + "pi_name": "Anthony Scopatz", + "projects": "ERGS is involved in a large number of computational projects.", + "website": "www.ergs.sc.edu" + } diff --git a/doc/source/collections/index.rst b/doc/source/collections/index.rst index a9396764f..60c4c3dcc 100644 --- a/doc/source/collections/index.rst +++ b/doc/source/collections/index.rst @@ -10,21 +10,28 @@ The following contain the regolith schemas and examples in both YAML and JSON/Mo abstracts assignments + beamplan blog citations contacts courses expenses + formalletters grades grants groups institutions jobs + meetings news people presentations + projecta projects proposalReviews proposals + reading_lists refereeReports + software students + todos diff --git a/doc/source/collections/institutions.rst b/doc/source/collections/institutions.rst new file mode 100644 index 000000000..c4f982a4d --- /dev/null +++ b/doc/source/collections/institutions.rst @@ -0,0 +1,220 @@ +Institutions +============ +This collection will contain all the institutionsin the world and their departments and addresses + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, unique identifier for the institution., required +:aka: list, list of all the different names this the institution is known by, optional +:city: string, the city where the institution is, required +:country: string, The country where the institution is, required +:date: ['string', 'date'], Expense date, optional +:day: integer, the day the entry was created, optional +:departments: dict, all the departments and centers andvarious units in the institution, optional +:month: ['string', 'integer'], the month the entry was created, optional +:name: string, the canonical name of the institutions, required +:schools: dict, this is more for universities, but it be used for larger divisions in big organizations, optional +:state: string, the state where the institution is, optional +:street: string, the street where the institution is, optional +:updated: ['string', 'datetime', 'date'], a datetime when the entry was updated, optional +:uuid: string, a uuid for the entry, optional +:year: integer, the year the entry was created, optional +:zip: ['integer', 'string'], the zip or postal code of the institution, optional + + +YAML Example +------------ + +.. code-block:: yaml + + columbiau: + aka: + - Columbia University + - Columbia + city: New York + country: USA + day: 30 + departments: + apam: + aka: + - APAM + name: Department of Applied Physics and Applied Mathematics + chemistry: + aka: + - Chemistry + - Dept. of Chemistry + name: Department of Chemistry + physics: + aka: + - Dept. of Physics + - Physics + name: Department of Physics + month: May + name: Columbia University + schools: + seas: + aka: + - SEAS + - Columbia Engineering + - Fu Foundation School of Engineering and Applied Science + name: School of Engineering and Applied Science + state: NY + street: 500 W 120th St + updated: '2020-05-30' + uuid: avacazdraca345rfsvwre + year: 2020 + zip: '10027' + usouthcarolina: + aka: + - The University of South Carolina + city: Columbia + country: USA + day: 30 + departments: + apam: + aka: + - APAM + name: Department of Applied Physics and Applied Mathematics + chemistry: + aka: + - Chemistry + - Dept. of Chemistry + name: Department of Chemistry + mechanical engineering: + aka: + - Mechanical + - Dept. of Mechanical + name: Department of Mechanical Engineering + physics: + aka: + - Dept. of Physics + - Physics + name: Department of Physics + month: May + name: The University of South Carolina + schools: + cec: + aka: + - CEC + - College of Engineering and Computing + name: College of Engineering and Computing + state: SC + street: 1716 College Street + updated: '2020-06-30' + uuid: 4E89A0DD-19AE-45CC-BCB4-83A2D84545E3 + year: 2020 + zip: '29208' + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "columbiau", + "aka": [ + "Columbia University", + "Columbia" + ], + "city": "New York", + "country": "USA", + "day": 30, + "departments": { + "apam": { + "aka": [ + "APAM" + ], + "name": "Department of Applied Physics and Applied Mathematics" + }, + "chemistry": { + "aka": [ + "Chemistry", + "Dept. of Chemistry" + ], + "name": "Department of Chemistry" + }, + "physics": { + "aka": [ + "Dept. of Physics", + "Physics" + ], + "name": "Department of Physics" + } + }, + "month": "May", + "name": "Columbia University", + "schools": { + "seas": { + "aka": [ + "SEAS", + "Columbia Engineering", + "Fu Foundation School of Engineering and Applied Science" + ], + "name": "School of Engineering and Applied Science" + } + }, + "state": "NY", + "street": "500 W 120th St", + "updated": "2020-05-30", + "uuid": "avacazdraca345rfsvwre", + "year": 2020, + "zip": "10027" + } + { + "_id": "usouthcarolina", + "aka": [ + "The University of South Carolina" + ], + "city": "Columbia", + "country": "USA", + "day": 30, + "departments": { + "apam": { + "aka": [ + "APAM" + ], + "name": "Department of Applied Physics and Applied Mathematics" + }, + "chemistry": { + "aka": [ + "Chemistry", + "Dept. of Chemistry" + ], + "name": "Department of Chemistry" + }, + "mechanical engineering": { + "aka": [ + "Mechanical", + "Dept. of Mechanical" + ], + "name": "Department of Mechanical Engineering" + }, + "physics": { + "aka": [ + "Dept. of Physics", + "Physics" + ], + "name": "Department of Physics" + } + }, + "month": "May", + "name": "The University of South Carolina", + "schools": { + "cec": { + "aka": [ + "CEC", + "College of Engineering and Computing" + ], + "name": "College of Engineering and Computing" + } + }, + "state": "SC", + "street": "1716 College Street", + "updated": "2020-06-30", + "uuid": "4E89A0DD-19AE-45CC-BCB4-83A2D84545E3", + "year": 2020, + "zip": "29208" + } diff --git a/doc/source/collections/meetings.rst b/doc/source/collections/meetings.rst new file mode 100644 index 000000000..44cffd443 --- /dev/null +++ b/doc/source/collections/meetings.rst @@ -0,0 +1,304 @@ +Meetings +======== +the group meeting. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, unique identifier for the date of the group meeting, required +:actions: list, action items expected from the group members for that particular meeting week, required +:agenda: list, schedule of the current meeting, required +:buddies: list, list of pairs of group members that are selected for the buddy round robin, required +:date: ['string', 'datetime', 'date'], date of meeting in format YYYY-MM-DD, optional +:day: integer, day of the group meeting, or the day the entry was edited, optional +:journal_club: dict, Journal club presentation in group meeting, optional + + :doi: string, The doi of the journal club presentation paper. tbd if it is not known yet, optional + :link: string, the url to the repo, google slide location, or other web location where the presentation can be found, optional + :presenter: string, The _id of the group member presenting, or a string describing the presenter, e.g., their full name., optional + :title: string, The title of the talk., optional +:lead: string, person who will be leading the meeting of the current week, required +:minutes: list, meeting notes in a chronological order according to comments made by the group members, required +:month: ['string', 'integer'], month in which the meeting is taking place, required +:place: string, location where the meeting is taking place on campus, optional +:presentation: dict, indicating the title of the presentation along with the link and the presenter , optional + + :title: string, The title of the presentation. tbd if it is not known yet, optional + :link: string, the url to the repo, google slide location, or other web location where the presentation can be found, optional + :presenter: string, The _id of the group member presenting or a string describing the person., optional +:scribe: string, person who will be taking notes and updating minutes accordingly, required +:time: ['string', 'integer', 'datetime'], the time of the meetingIf an integer is minutes past midnight, so 13:30 is 810 forexample., optional +:updated: ['string', 'datetime', 'date'], The datetime.date object of the most recent update, optional +:uuid: string, A uuid for the entry, optional +:year: integer, year the meeting took place, required + + +YAML Example +------------ + +.. code-block:: yaml + + grp1000-01-01: + actions: + - (Everyone) Update overdue milestones + - (Professor Billinge) Explore, and plan a machine learning project for DSI + - (Professor Billinge, Emil, Yevgeny, Songsheng) Come up with a Kaggle competition + for this DSI project + - (Emil) Set up the slack channel for the DSI project + agenda: + - Review actions + - Fargo is not free on any streaming platforms + - Review Airtable for deliverables and celebrate + - Mention diversity action initiative + - Songsheng's journal club presentation + - (Vivian and Zicheng) Finish rest of crystallography presentation next week + - Emil's 7th inning Yoga Stretch + - Crystallography talk + - Presentation + buddies: + - ' Jaylyn C. Umana, Simon J. L. Billinge' + - ' Long Yang, Emil Kjaer' + - ' Sani Harouna-Mayer, Akshay Choudhry' + - ' Vivian Lin, Songsheng Tao' + - ' Ran Gu, Adiba Ejaz' + - ' Zach Thatcher, Yevgeny Rakita' + - " Zicheng 'Taylor' Liu, Eric Shen " + - ' Hung Vuong, Daniela Hikari Yano' + - ' Ahmed Shaaban, Jiawei Zang' + - ' Berrak Ozer, Michael Winitch' + - ' Shomik Ghose' + day: 1 + journal_club: + doi: 10.1107/S2053273319005606 + link: https://link/to/my/talk.ppt + presenter: sbillinge + title: what the paper was about and more + lead: sbillinge + minutes: + - Talked about eyesight and prescription lenses + - Professor Billinge tells everyone a Logician/Mathematician joke + - Mentioned pyjokes, a package in Python that lists bad jokes + - Jaylyn greets everyone + - Reviewed action items from last time + - Talked about fargo, and the merits (or lack thereof) of the Dakotas + - Celebrated finished prums + - Songhsheng holds journal club presentation on Machine Learning techniques + - Discussed Linear Classification, Gradient Descent, Perceptrons, Convolution + and other ML topics + - Discussed how we can derive scientific meaning from ML algorithms + - Discussed real space versus reciprocal space + - Finished journal club, had to postpone Akshay's presentation, and the Yoga session + to next week + month: 1 + place: Mudd 1106 + presentation: + link: 2007ac_grpmtg + presenter: sbillinge + title: PDF Distance Extraction + scribe: sbillinge + time: '0' + updated: '2020-07-31 23:27:50.764475' + uuid: 3fbee8d9-e283-48e7-948f-eecfc2a123b7 + year: 1000 + grp2020-07-31: + actions: + - (Everyone) Update overdue milestones + - (Professor Billinge) Explore, and plan a machine learning project for DSI + - (Professor Billinge, Emil, Yevgeny, Songsheng) Come up with a Kaggle competition + for this DSI project + - (Emil) Set up the slack channel for the DSI project + agenda: + - Review actions + - Fargo is not free on any streaming platforms + - Review Airtable for deliverables and celebrate + - Mention diversity action initiative + - Songsheng's journal club presentation + - (Vivian and Zicheng) Finish rest of crystallography presentation next week + - Emil's 7th inning Yoga Stretch + - Crystallography talk + - Presentation + buddies: + - ' Jaylyn C. Umana, Simon J. L. Billinge' + - ' Long Yang, Emil Kjaer' + - ' Sani Harouna-Mayer, Akshay Choudhry' + - ' Vivian Lin, Songsheng Tao' + - ' Ran Gu, Adiba Ejaz' + - ' Zach Thatcher, Yevgeny Rakita' + - " Zicheng 'Taylor' Liu, Eric Shen " + - ' Hung Vuong, Daniela Hikari Yano' + - ' Ahmed Shaaban, Jiawei Zang' + - ' Berrak Ozer, Michael Winitch' + - ' Shomik Ghose' + day: 1 + journal_club: + doi: 10.1107/S2053273319005606 + link: http://myslides.com/link/to/2007ac_grpmtg + presenter: not_a_valid_group_id + lead: sbillinge + minutes: + - Talked about eyesight and prescription lenses + - Professor Billinge tells everyone a Logician/Mathematician joke + - Mentioned pyjokes, a package in Python that lists bad jokes + - Jaylyn greets everyone + - Reviewed action items from last time + - Talked about fargo, and the merits (or lack thereof) of the Dakotas + - Celebrated finished prums + - Songhsheng holds journal club presentation on Machine Learning techniques + - Discussed Linear Classification, Gradient Descent, Perceptrons, Convolution + and other ML topics + - Discussed how we can derive scientific meaning from ML algorithms + - Discussed real space versus reciprocal space + - Finished journal club, had to postpone Akshay's presentation, and the Yoga session + to next week + month: 1 + place: Mudd 1106 + presentation: + link: 2007ac_grpmtg + presenter: not_a_valid_group_id + title: PDF Distance Extraction + scribe: sbillinge + time: '0' + updated: '2020-07-31 23:27:50.764475' + uuid: 3fbee8d9-e283-48e7-948f-eecfc2a123b7 + year: 7000 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "grp1000-01-01", + "actions": [ + "(Everyone) Update overdue milestones", + "(Professor Billinge) Explore, and plan a machine learning project for DSI", + "(Professor Billinge, Emil, Yevgeny, Songsheng) Come up with a Kaggle competition for this DSI project", + "(Emil) Set up the slack channel for the DSI project" + ], + "agenda": [ + "Review actions", + "Fargo is not free on any streaming platforms", + "Review Airtable for deliverables and celebrate", + "Mention diversity action initiative", + "Songsheng's journal club presentation", + "(Vivian and Zicheng) Finish rest of crystallography presentation next week", + "Emil's 7th inning Yoga Stretch", + "Crystallography talk", + "Presentation" + ], + "buddies": [ + " Jaylyn C. Umana, Simon J. L. Billinge", + " Long Yang, Emil Kjaer", + " Sani Harouna-Mayer, Akshay Choudhry", + " Vivian Lin, Songsheng Tao", + " Ran Gu, Adiba Ejaz", + " Zach Thatcher, Yevgeny Rakita", + " Zicheng 'Taylor' Liu, Eric Shen ", + " Hung Vuong, Daniela Hikari Yano", + " Ahmed Shaaban, Jiawei Zang", + " Berrak Ozer, Michael Winitch", + " Shomik Ghose" + ], + "day": 1, + "journal_club": { + "doi": "10.1107/S2053273319005606", + "link": "https://link/to/my/talk.ppt", + "presenter": "sbillinge", + "title": "what the paper was about and more" + }, + "lead": "sbillinge", + "minutes": [ + "Talked about eyesight and prescription lenses", + "Professor Billinge tells everyone a Logician/Mathematician joke", + "Mentioned pyjokes, a package in Python that lists bad jokes", + "Jaylyn greets everyone", + "Reviewed action items from last time", + "Talked about fargo, and the merits (or lack thereof) of the Dakotas", + "Celebrated finished prums", + "Songhsheng holds journal club presentation on Machine Learning techniques", + "Discussed Linear Classification, Gradient Descent, Perceptrons, Convolution and other ML topics", + "Discussed how we can derive scientific meaning from ML algorithms", + "Discussed real space versus reciprocal space", + "Finished journal club, had to postpone Akshay's presentation, and the Yoga session to next week" + ], + "month": 1, + "place": "Mudd 1106", + "presentation": { + "link": "2007ac_grpmtg", + "presenter": "sbillinge", + "title": "PDF Distance Extraction" + }, + "scribe": "sbillinge", + "time": "0", + "updated": "2020-07-31 23:27:50.764475", + "uuid": "3fbee8d9-e283-48e7-948f-eecfc2a123b7", + "year": 1000 + } + { + "_id": "grp2020-07-31", + "actions": [ + "(Everyone) Update overdue milestones", + "(Professor Billinge) Explore, and plan a machine learning project for DSI", + "(Professor Billinge, Emil, Yevgeny, Songsheng) Come up with a Kaggle competition for this DSI project", + "(Emil) Set up the slack channel for the DSI project" + ], + "agenda": [ + "Review actions", + "Fargo is not free on any streaming platforms", + "Review Airtable for deliverables and celebrate", + "Mention diversity action initiative", + "Songsheng's journal club presentation", + "(Vivian and Zicheng) Finish rest of crystallography presentation next week", + "Emil's 7th inning Yoga Stretch", + "Crystallography talk", + "Presentation" + ], + "buddies": [ + " Jaylyn C. Umana, Simon J. L. Billinge", + " Long Yang, Emil Kjaer", + " Sani Harouna-Mayer, Akshay Choudhry", + " Vivian Lin, Songsheng Tao", + " Ran Gu, Adiba Ejaz", + " Zach Thatcher, Yevgeny Rakita", + " Zicheng 'Taylor' Liu, Eric Shen ", + " Hung Vuong, Daniela Hikari Yano", + " Ahmed Shaaban, Jiawei Zang", + " Berrak Ozer, Michael Winitch", + " Shomik Ghose" + ], + "day": 1, + "journal_club": { + "doi": "10.1107/S2053273319005606", + "link": "http://myslides.com/link/to/2007ac_grpmtg", + "presenter": "not_a_valid_group_id" + }, + "lead": "sbillinge", + "minutes": [ + "Talked about eyesight and prescription lenses", + "Professor Billinge tells everyone a Logician/Mathematician joke", + "Mentioned pyjokes, a package in Python that lists bad jokes", + "Jaylyn greets everyone", + "Reviewed action items from last time", + "Talked about fargo, and the merits (or lack thereof) of the Dakotas", + "Celebrated finished prums", + "Songhsheng holds journal club presentation on Machine Learning techniques", + "Discussed Linear Classification, Gradient Descent, Perceptrons, Convolution and other ML topics", + "Discussed how we can derive scientific meaning from ML algorithms", + "Discussed real space versus reciprocal space", + "Finished journal club, had to postpone Akshay's presentation, and the Yoga session to next week" + ], + "month": 1, + "place": "Mudd 1106", + "presentation": { + "link": "2007ac_grpmtg", + "presenter": "not_a_valid_group_id", + "title": "PDF Distance Extraction" + }, + "scribe": "sbillinge", + "time": "0", + "updated": "2020-07-31 23:27:50.764475", + "uuid": "3fbee8d9-e283-48e7-948f-eecfc2a123b7", + "year": 7000 + } diff --git a/doc/source/collections/people.rst b/doc/source/collections/people.rst new file mode 100644 index 000000000..77625fb56 --- /dev/null +++ b/doc/source/collections/people.rst @@ -0,0 +1,1702 @@ +People +====== +This collection describes the members of the research group. This is normally public data. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, unique identifier for the group member, required +:active: boolean, If the person is an active member, default true., optional +:activities: list, activities may be teaching or research things, optional + + :type: dict, optional + + :day: integer, the day the activity took place, optional + :type: string, the type of the activity, optional + + Allowed values: + * teaching + * research + :month: ['integer', 'string'], the month the activity took place, optional + :name: string, brief statement of the activity, optional + :other: string, longer statement of the activity, optional + :year: integer, the year the activity took place, optional +:aka: ['string', 'list'], list of aliases (also-known-as), useful for identifying the group member in citations or elsewhere., required +:appointments: dict, begin and end date, grant loading status and notes about appointments, optional +:avatar: string, URL to avatar, required +:bio: string, short biographical text, required +:bios: ['string', 'list'], longer biographical text if needed, optional +:collab: boolean, If the person is a collaborator, default false., optional +:committees: list, Committees that are served on, optional + + :type: dict, optional + + :name: string, name of committee, or person if it is a phd committee, optional + :day: integer, optional + :month: ['string', 'integer'], optional + :notes: ['string', 'list'], extra things you want to record about the thing, optional + :year: integer, optional + :unit: string, name of department or school etc., optional + :type: string, type of committee, department, school, university, external, optional + + Allowed values: + * phdoral + * phddefense + * phdproposal + * promotion + :level: string, department or school or university, or external, optional + + Allowed values: + * department + * school + * university + * external + :group: string, this employment is/was ina group in groups coll, optional +:education: list, This contains the educational information for the group member., required + + :type: dict, optional + + :advisor: string, name or id of advisor for this degree, optional + :begin_day: integer, optional + :begin_month: ['string', 'integer'], optional + :begin_year: integer, optional + :degree: string, optional + :department: string, department within the institution, optional + :group: string, this employment is/was ina group in groups coll, optional + :end_day: integer, optional + :end_month: ['string', 'integer'], optional + :end_year: integer, optional + :gpa: ['float', 'string'], optional + :institution: string, optional + :location: string, optional + :other: list, optional +:email: string, email address of the group member, optional +:employment: list, Employment information, similar to educational information., optional + + :type: dict, optional + + :advisor: string, name or id of advisor/mentor/manager, optional + :begin_day: integer, optional + :begin_month: ['string', 'integer'], optional + :begin_year: integer, optional + :begin_date: ['string', 'date', 'datetime'], begin date of employment in format YYYY-MM-DD, optional + :coworkers: list, list of coworkers. If position is editor, these are assumed to be coeditors inconflict of interest builder, optional + :department: string, optional + :end_day: integer, optional + :end_year: integer, optional + :end_date: ['string', 'date', 'datetime'], end date of employment in format YYYY-MM-DD, optional + :group: string, this employment is/was ina group in groups coll, optional + :location: string, optional + :not_in_cv: boolean, set to true if you want to suppress this entry in all cv's and resumes, optional + :organization: string, optional + :other: list, optional + :permanent: boolean, true if the position is open ended and has no fixed end-date, optional + :position: string, optional + + Allowed values: + * ``''`` + * editor + * unknown + * undergraduate research assistant + * undergraduate researcher + * intern + * visiting student + * research assistant + * masters research assistant + * masters researcher + * graduate research assistant + * teaching assistant + * post-doctoral scholar + * research fellow + * assistant scientist + * assistant lecturer + * research scientist + * lecturer + * adjunct scientist + * senior assistant lecturer + * research associate + * reader + * ajunct professor + * adjunct professor + * consultant + * programer + * programmer + * visiting scientist + * research assistant professor + * associate scientist + * assistant professor + * assistant physicist + * associate professor + * associate physicist + * professor emeritus + * visiting professor + * manager + * director + * scientist + * engineer + * physicist + * president + * professor + * distinguished professor + :position_full: string, The full on title of the position. This will be typeset if it is here, or if not Position will be used. Position will be used for sorting and must come from a fixed list of positions, optional + :status: string, optional + + Allowed values: + * pi + * adjunct + * high-school + * undergrad + * ms + * phd + * postdoc + * visitor-supported + * visitor-unsupported + * research-associate +:facilities: list, facilities may be teaching or research things, optional + + :type: dict, optional + + :begin_day: integer, the day facility, or the wish for the facility, started, optional + :end_day: integer, the day facility started, optional + :type: string, the type of the facility. Columbia asksfor wished-for facilities, so there are teaching-wish and research-wish fields., optional + + Allowed values: + * teaching + * research + * shared + * other + * teaching_wish + * research_wish + :begin_month: ['integer', 'string'], the month the facility (or wish) started, optional + :end_month: ['integer', 'string'], the month the faclity went away, optional + :name: string, description of the facility, optional + :notes: ['string', 'list'], anything else you want to jot down, optional + :begin_year: integer, the year the facility (or wish) started, optional + :end_year: integer, the year the facility (or wish) went away, optional +:funding: list, Funding and scholarship that the group member has individually obtained in the past. **WARNING:** this is not to be confused with the **grants** collection, optional + + :type: dict, optional + + :currency: string, optional + :duration: string, optional + :month: ['string', 'integer'], optional + :name: string, optional + :value: ['float', 'integer'], optional + :year: integer, optional +:github_id: string, Your GitHub ID, optional +:google_scholar_url: string, URL of your Google Scholar profile, optional +:grp_mtg_active: boolean, Whether to schedule tasks at group meeting or not, optional +:hindex: list, details of hindex pulled on a certain date, optional + + :type: dict, optional + + :h: integer, the value of the h index, optional + :h_last_five: integer, h index over past 5 years, optional + :citations: integer, total number of citations, optional + :citations_last_five: integer, number of citations in the past 5 years, optional + :origin: string, where the numbers came from, optional + :since: integer, year of first citation, optional + :year: integer, year when the data were pulled, optional + :month: ['string', 'integer'], month when the data were pulled, optional + :day: integer, day when the data were pulled, optional +:home_address: dict, The person's home address, optional + + :street: string, street address, optional + :city: string, name of home city, optional + :state: string, name o home state, optional + :zip: string, zip code, optional +:honors: list, Honors that have been awarded to this group member, optional + + :type: dict, optional + + :description: string, optional + :month: ['string', 'integer'], optional + :name: string, optional + :year: integer, optional +:initials: string, The canonical initials for this group member, optional +:linkedin_url: string, The URL of this person's LinkedIn account, optional +:membership: list, Professional organizations this member is a part of, optional + + :type: dict, optional + + :begin_month: ['string', 'integer'], optional + :begin_year: integer, optional + :description: string, optional + :end_month: ['string', 'integer'], optional + :end_year: integer, optional + :organization: string, optional + :position: string, optional + :website: string, optional +:miscellaneous: dict, Place to put weird things needed for special reporta, optional + + :metrics_for_success: list, How do I want to be judged, optional +:name: string, Full, canonical name for the person, required +:office: string, The person's office, optional +:orcid_id: string, The ORCID ID of the person, optional +:position: string, such as professor, graduate student, or scientist, optional + + Allowed values: + * ``''`` + * editor + * unknown + * undergraduate research assistant + * undergraduate researcher + * intern + * visiting student + * research assistant + * masters research assistant + * masters researcher + * graduate research assistant + * teaching assistant + * post-doctoral scholar + * research fellow + * assistant scientist + * assistant lecturer + * research scientist + * lecturer + * adjunct scientist + * senior assistant lecturer + * research associate + * reader + * ajunct professor + * adjunct professor + * consultant + * programer + * programmer + * visiting scientist + * research assistant professor + * associate scientist + * assistant professor + * assistant physicist + * associate professor + * associate physicist + * professor emeritus + * visiting professor + * manager + * director + * scientist + * engineer + * physicist + * president + * professor + * distinguished professor +:position_full: string, The full on title of the position. This will be typeset if it is here, or if not Position will be used. Position will be used for sorting and must come from a fixed list of positions, optional +:publicity: list, summary of publicity that person has received, optional + + :type: dict, optional + + :type: string, optional + + Allowed values: + * online + * article + :topic: string, The short sentence of what the publicity was about, optional + :title: string, The title of the piece, optional + :date: ['string', 'date'], the date of the service, optional + :day: integer, The day the piece appeared, optional + :month: ['string', 'integer'], The month the piece appeared, optional + :publication: string, The place where the publicity was placed, optional + :text: string, The text of the publicity, optional + :url: string, The URL where the piece may be found, optional + :year: integer, The year the piece appeared, optional + :grant: string, The identifier of the grant associated with the piece, optional +:research_focus_areas: list, summary of research projects that are ongoing. Usedin Annual appraisal for example, optional + + :type: dict, optional + + :begin_year: integer, optional + :end_year: integer, optional + :description: string, optional +:research_summary: string, Brief summary of overarching research goals, optional +:service: list, Service that this group member has provided, optional + + :type: dict, optional + + :date: ['string', 'date'], the date of the service, optional + :begin_date: ['string', 'date'], the begin date, optional + :end_date: ['string', 'date'], the end date, optional + :description: string, optional + :duration: string, optional + :month: ['string', 'integer'], Use month and year if the servicedoesn't extend more than one year.Otherwise use begin_year and end_year, optional + :name: string, optional + :role: string, the role played in the activity, e.g., co-chair, optional + :notes: ['string', 'list'], optional + :year: integer, optional + :begin_year: integer, optional + :begin_day: integer, optional + :begin_month: ['string', 'integer'], Use month and year if the servicedoesn't extend more than one year.Otherwise use begin_year/month and end_year/month, optional + :end_year: integer, optional + :end_month: ['string', 'integer'], Use month and year if the servicedoesn't extend more than one year.Otherwise use begin_year and end_year, optional + :end_day: integer, optional + :other: ['string', 'list'], optional + :type: string, profession, department, school, university, optional + + Allowed values: + * profession + * university + * school + * department +:skills: list, Skill the group member has, optional + + :type: dict, optional + + :category: string, optional + :level: string, optional + :name: string, optional +:teaching: list, Courses that this group member has taught, if any, optional + + :type: dict, optional + + :course: string, optional + :courseid: string, optional + :description: string, optional + :end_month: ['string', 'integer'], optional + :end_year: integer, optional + :enrollment: ['integer', 'string'], optional + :evaluation: dict, optional + + :response_rate: number, optional + :amount_learned: number, optional + :appropriateness_workload: number, optional + :course_overall: number, optional + :fairness_grading: number, optional + :organization: number, optional + :classroom_delivery: number, optional + :approachability: number, optional + :instructor_overall: number, optional + :comments: list, student comments, optional + :materials: string, optional + :month: ['string', 'integer'], optional + :organization: string, optional + :position: string, optional + :semester: string, optional + :syllabus: string, optional + :video: string, optional + :website: string, optional + :year: integer, optional +:title: string, for example, Dr., etc., optional + + +YAML Example +------------ + +.. code-block:: yaml + + abeing: + active: false + aka: + - being + - human + - person + avatar: https://xkcd.com/1221/ + bio: Abstract Being is an exemplar human existence + education: + - begin_year: 2010 + degree: bachelors + institution: University of Laughs + employment: + - begin_date: '2015-06-01' + end_date: '2015-08-31' + group: bg + organization: columbiau + position: intern + - begin_date: '2020-01-01' + end_date: '2030-12-31' + group: agroup + organization: usouthcarolina + position: intern + - begin_date: '2010-06-01' + end_date: '2012-08-31' + group: ergs + organization: columbiau + position: intern + - begin_date: '2017-06-01' + end_date: '2019-08-31' + group: bg + organization: columbiau + position: intern + name: Abstract Being + position: intern + sbillinge: + active: true + activities: + - name: course development + other: Developed a new course for Materials Science + type: teaching + year: 2018 + aka: + - Billinge + avatar: https://avatars1.githubusercontent.com/u/320553?v=3&s=200 + bio: Simon teaches and does research + committees: + - level: department + name: Same Old + notes: something + type: phddefense + unit: Materials Science + year: 2018 + education: + - advisor: scopatz + begin_year: 2008 + degree: Ph.D. Mechanical Engineering, Nuclear and Radiation Engineering Program + department: apam + end_year: 2011 + group: ergs + institution: The University of Texas at Austin + location: Austin, TX + other: + - 'Adviser: Erich A. Schneider' + - 'Dissertation: Essential Physics for Fuel Cycle Modeling & Analysis' + email: sb2896@columbia.edu + employment: + - advisor: scopatz + begin_year: 2015 + group: ergs + location: Columbia, SC + organization: The University of South Carolina + other: + - 'Cyclus: An agent-based, discrete time nuclear fuel cycle simulator.' + - 'PyNE: The Nuclear Engineering Toolkit.' + - 'Website: http://www.ergs.sc.edu/' + position: assistant professor + status: phd + facilities: + - begin_year: 2015 + name: Shared {Habanero} compute cluster + type: other + - begin_year: 2015 + name: Shared access to wet lab + type: research_wish + - begin_year: 2017 + name: Courseworks2 + type: teaching + - begin_year: 2019 + name: nothing right now + type: teaching_wish + - begin_year: 2008 + name: I don't have one + type: research + funding: + - name: Omega Laser User's Group Travel Award + value: 1100 + year: 2013 + - name: NIF User's Group Travel Award + value: 1150 + year: 2013 + google_scholar_url: https://scholar.google.com/citations?user=dRm8f + grp_mtg_active: true + hindex: + - citations: 17890 + citations_last_five: 8817 + day: 12 + h: 65 + h_last_five: 43 + month: May + origin: Google Scholar + since: 1991 + year: 2019 + home_address: + city: The big apple + state: plasma + street: 123 Wallabe Ln + zip: '007' + initials: SJLB + linkedin_url: https://scholar.google.com/citations?hl=en&user=PAJ + membership: + - begin_year: 2006 + organization: American Nuclear Society + position: Member + miscellaneous: + metrics_for_success: + - publications(quality, quantity) + - invite talks + - funding + - citations + name: Simon J. L. Billinge + office: 1105 Seely W. Mudd Building (inner office) + orcid_id: 0000-0002-9432-4248 + position: professor + publicity: + - date: '2019-07-24' + day: 24 + grant: bnlldrd18 + month: Jul + publication: Brookhaven National Laboratory Web Story + title: An awesome project and well worth the money + topic: LDRD Provenance project + type: online + url: http://www.google.com + year: 2019 + research_focus_areas: + - begin_year: 2010 + description: software applied to materials engineering and life + service: + - month: August + name: 'Master of Ceremonies and Organizer Brown University Chemistry: Believe + it or Not public chemistry demonstration' + type: profession + year: 2017 + - begin_date: '2018-01-01' + end_date: '2018-01-01' + name: Applied Physics program committee + type: department + - date: '2017-06-01' + name: Ad hoc tenure committee + notes: Albert Einstein + type: school + - month: 12 + name: Co-organizer JUAMI + other: + - great way to meet people + role: co-organizer + type: profession + year: 2017 + skills: + - category: Programming Languages + level: expert + name: Python + teaching: + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: f16-3010 + description: This course is an introduction to nuclear physics. + enrollment: 18 + evaluation: + amount_learned: 4.57 + approachability: 4.86 + appropriateness_workload: 4.29 + classroom_delivery: 4.29 + comments: + - Great teacher but disorganized + - Wears pink pants. Why? + course_overall: 4.43 + fairness_grading: 4.57 + instructor_overall: 4.43 + organization: 4.0 + response_rate: 58.33 + month: August + organization: Columbia University + position: professor + semester: Fall + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2016 + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: f17-3010 + description: This course is an introduction to nuclear physics. + enrollment: 18 + evaluation: + amount_learned: 4.57 + approachability: 4.86 + appropriateness_workload: 4.29 + classroom_delivery: 4.29 + comments: + - Great teacher but disorganized + - Wears pink pants. Why? + course_overall: 4.43 + fairness_grading: 4.57 + instructor_overall: 4.43 + organization: 4.0 + response_rate: 58.33 + month: August + organization: Columbia University + position: professor + semester: Fall + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2017 + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: s18-3010 + description: This course is an introduction to nuclear physics. + enrollment: 18 + evaluation: + amount_learned: 4.57 + approachability: 4.86 + appropriateness_workload: 4.29 + classroom_delivery: 4.29 + comments: + - Great teacher but disorganized + - Wears pink pants. Why? + course_overall: 4.43 + fairness_grading: 4.57 + instructor_overall: 4.43 + organization: 4.0 + response_rate: 58.33 + month: Jan + organization: Columbia University + position: professor + semester: Spring + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2018 + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: s17-3010 + description: This course is an introduction to nuclear physics. + enrollment: 18 + evaluation: + amount_learned: 4.57 + approachability: 4.86 + appropriateness_workload: 4.29 + classroom_delivery: 4.29 + comments: + - Great teacher but disorganized + - Wears pink pants. Why? + course_overall: 4.43 + fairness_grading: 4.57 + instructor_overall: 4.43 + organization: 4.0 + response_rate: 58.33 + month: Jan + organization: Columbia University + position: professor + semester: Spring + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2017 + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: s19-3010 + description: This course is an introduction to nuclear physics. + enrollment: 18 + month: Jan + organization: Columbia University + position: professor + semester: Spring + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2019 + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: f18-3010 + description: This course is an introduction to nuclear physics. + enrollment: 18 + month: August + organization: Columbia University + position: professor + semester: Fall + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2018 + - course: 'MSAE-3010: Introduction to Materials Science' + courseid: f19-3010 + description: This course is an introduction to nuclear physics. + month: August + organization: Columbia University + position: professor + semester: Fall + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2019 + title: Dr. + scopatz: + aka: + - Scopatz + - Scopatz, A + - Scopatz, A. + - Scopatz, A M + - Anthony Michael Scopatz + appointments: + f19: + begin_day: 1 + begin_month: 2 + begin_year: 2019 + end_day: 31 + end_month: 3 + end_year: 2019 + grant: dmref15 + loading: 0.75 + notes: + - forgetmenot + status: finalized + type: pd + s20: + begin_date: '2020-01-01' + end_date: '2020-05-15' + grant: sym + loading: 1.0 + notes: + - fully appointed + - outdated grant + status: finalized + type: pd + ss20: + begin_date: '2020-06-01' + end_date: '2020-08-31' + grant: abc42 + loading: 0.8 + notes: [] + status: proposed + type: ss + ss21: + begin_date: '2020-09-01' + end_date: '2021-08-31' + grant: future_grant + loading: 1.0 + notes: [] + status: proposed + type: ss + avatar: https://avatars1.githubusercontent.com/u/320553?v=3&s=200 + bio: Anthony Scopatz is currently an Assistant Professor + bios: + - Anthony Scopatz is currently an Assistant Professor but will go on to do great + things + committees: + - day: 1 + level: department + month: 3 + name: Heather Stanford + type: phdoral + unit: apam + year: 2020 + - day: 1 + level: school + month: 3 + name: Heather Stanford + type: promotion + unit: seas + year: 2020 + - day: 1 + level: external + month: 3 + name: Heather Stanford + notes: something else to remember about it, not published + type: phddefense + unit: U Denmark + year: 2020 + - day: 1 + level: university + month: 3 + name: Heather Stanford + type: promotion + unit: columbiau + year: 2020 + education: + - advisor: scopatz + begin_year: 2008 + degree: Ph.D. Mechanical Engineering, Nuclear and Radiation Engineering Program + department: apam + end_year: 2011 + group: ergs + institution: The University of Texas at Austin + location: Austin, TX + other: + - 'Adviser: Erich A. Schneider' + - 'Dissertation: Essential Physics for Fuel Cycle Modeling & Analysis' + - begin_year: 2006 + degree: M.S.E. Mechanical Engineering, Nuclear and Radiation Engineering Program + end_year: 2007 + institution: The University of Texas at Austin + location: Austin, TX + other: + - 'Adviser: Erich A. Schneider' + - 'Thesis: Recyclable Uranium Options under the Global Nuclear Energy Partnership' + - begin_day: 1 + begin_month: Sep + begin_year: 2002 + degree: B.S. Physics + end_day: 20 + end_month: 5 + end_year: 2006 + institution: University of California, Santa Barbara + location: Santa Barbara, CA + other: + - Graduated with a Major in Physics and a Minor in Mathematics + - begin_year: 2008 + degree: ongoing + department: earth + group: life + institution: solar system + location: land, mostly + email: scopatz@cec.sc.edu + employment: + - advisor: scopatz + begin_year: 2015 + coworkers: + - afriend + group: ergs + location: Columbia, SC + organization: The University of South Carolina + other: + - 'Cyclus: An agent-based, discrete time nuclear fuel cycle simulator.' + - 'PyNE: The Nuclear Engineering Toolkit.' + - 'Website: http://www.ergs.sc.edu/' + permanent: true + position: assistant professor + position_full: Assistant Professor, Mechanical Engineering Department + status: ms + - advisor: scopatz + begin_day: 1 + begin_month: Jun + begin_year: 2013 + department: Physics + end_day: 15 + end_month: 3 + end_year: 2015 + location: Madison, WI + organization: CNERG, The University of Wisconsin-Madison + other: + - 'Cyclus: An agent-based, discrete time nuclear fuel cycle simulator.' + - 'PyNE: The Nuclear Engineering Toolkit.' + - 'Website: https://cnerg.github.io/' + position: associate scientist + position_full: Associate Scientist, Engineering Physics Department + status: undergrad + - begin_day: 1 + begin_month: Nov + begin_year: 2011 + end_month: May + end_year: 2013 + location: Chicago, IL + organization: The FLASH Center, The University of Chicago + other: + - 'NIF: Simulation of magnetic field generation from neutral plasmas using + FLASH.' + - 'CosmoB: Simulation of magnetic field generation from neutral plasmas using + FLASH.' + - 'FLASH4: High-energy density physics capabilities and utilities.' + - 'Simulated Diagnostics: Schlieren, shadowgraphy, Langmuir probes, etc. from + FLASH.' + - 'OpacPlot: HDF5-based equation of state and opacity file format.' + - 'Website: http://flash.uchicago.edu/site/' + position: post-doctoral scholar + position_full: Research Scientist, Postdoctoral Scholar + status: pi + - begin_date: '2000-01-01' + end_date: '2001-12-31' + location: Chicago, IL + not_in_cv: true + organization: Google + other: [] + position: janitor + funding: + - name: Omega Laser User's Group Travel Award + value: 1100 + year: 2013 + - name: NIF User's Group Travel Award + value: 1150 + year: 2013 + github_id: ascopatz + google_scholar_url: https://scholar.google.com/citations?user=dRm8f + hindex: + - citations: 19837 + citations_last_five: 9419 + day: 19 + h: 25 + h_last_five: 46 + month: 2 + origin: Google Scholar + since: 1991 + year: 2020 + home_address: + city: The big apple + state: plasma + street: 123 Wallabe Ln + zip: '007' + initials: AMS + membership: + - begin_year: 2006 + organization: American Nuclear Society + position: Member + - begin_year: 2013 + organization: Python Software Foundation + position: Fellow + name: Anthony Scopatz + orcid_id: 0000-0002-9432-4248 + position: professor + research_focus_areas: + - begin_year: 2010 + description: software applied to nuclear engineering and life + service: + - month: 3 + name: International Steering Committee + notes: + - something + role: chair + type: profession + year: 2020 + - begin_year: 2018 + end_year: 2021 + name: National Steering Committee + notes: something + type: profession + skills: + - category: Programming Languages + level: expert + name: Python + - category: Programming Languages + level: expert + name: Cython + teaching: + - course: 'EMCH 552: Intro to Nuclear Engineering' + courseid: EMCH 552 + description: This course is an introduction to nuclear physics. + enrollment: tbd + month: August + organization: University of South Carolina + position: professor + semester: Spring + syllabus: https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc + year: 2017 + - course: 'EMCH 558/758: Reactor Power Systems' + courseid: EMCH 558 + description: This course covers conventional reactors. + enrollment: 28 + evaluation: + amount_learned: 3.5 + approachability: 4.3 + appropriateness_workload: 3.15 + classroom_delivery: 4 + comments: + - super duper + - dandy + course_overall: 3.67 + fairness_grading: 3.54 + instructor_overall: 3.5 + organization: 3.25 + response_rate: 66.76 + month: January + organization: University of South Carolina + position: professor + syllabus: https://docs.google.com/document/d/1uMAx_KFZK9ugYyF6wWtLLWgITVhaTBkAf8-PxiboYdM/edit?usp=sharing + year: 2017 + title: Dr. + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "abeing", + "active": false, + "aka": [ + "being", + "human", + "person" + ], + "avatar": "https://xkcd.com/1221/", + "bio": "Abstract Being is an exemplar human existence", + "education": [ + { + "begin_year": 2010, + "degree": "bachelors", + "institution": "University of Laughs" + } + ], + "employment": [ + { + "begin_date": "2015-06-01", + "end_date": "2015-08-31", + "group": "bg", + "organization": "columbiau", + "position": "intern" + }, + { + "begin_date": "2020-01-01", + "end_date": "2030-12-31", + "group": "agroup", + "organization": "usouthcarolina", + "position": "intern" + }, + { + "begin_date": "2010-06-01", + "end_date": "2012-08-31", + "group": "ergs", + "organization": "columbiau", + "position": "intern" + }, + { + "begin_date": "2017-06-01", + "end_date": "2019-08-31", + "group": "bg", + "organization": "columbiau", + "position": "intern" + } + ], + "name": "Abstract Being", + "position": "intern" + } + { + "_id": "sbillinge", + "active": true, + "activities": [ + { + "name": "course development", + "other": "Developed a new course for Materials Science", + "type": "teaching", + "year": 2018 + } + ], + "aka": [ + "Billinge" + ], + "avatar": "https://avatars1.githubusercontent.com/u/320553?v=3&s=200", + "bio": "Simon teaches and does research", + "committees": [ + { + "level": "department", + "name": "Same Old", + "notes": "something", + "type": "phddefense", + "unit": "Materials Science", + "year": 2018 + } + ], + "education": [ + { + "advisor": "scopatz", + "begin_year": 2008, + "degree": "Ph.D. Mechanical Engineering, Nuclear and Radiation Engineering Program", + "department": "apam", + "end_year": 2011, + "group": "ergs", + "institution": "The University of Texas at Austin", + "location": "Austin, TX", + "other": [ + "Adviser: Erich A. Schneider", + "Dissertation: Essential Physics for Fuel Cycle Modeling & Analysis" + ] + } + ], + "email": "sb2896@columbia.edu", + "employment": [ + { + "advisor": "scopatz", + "begin_year": 2015, + "group": "ergs", + "location": "Columbia, SC", + "organization": "The University of South Carolina", + "other": [ + "Cyclus: An agent-based, discrete time nuclear fuel cycle simulator.", + "PyNE: The Nuclear Engineering Toolkit.", + "Website: http://www.ergs.sc.edu/" + ], + "position": "assistant professor", + "status": "phd" + } + ], + "facilities": [ + { + "begin_year": 2015, + "name": "Shared {Habanero} compute cluster", + "type": "other" + }, + { + "begin_year": 2015, + "name": "Shared access to wet lab", + "type": "research_wish" + }, + { + "begin_year": 2017, + "name": "Courseworks2", + "type": "teaching" + }, + { + "begin_year": 2019, + "name": "nothing right now", + "type": "teaching_wish" + }, + { + "begin_year": 2008, + "name": "I don't have one", + "type": "research" + } + ], + "funding": [ + { + "name": "Omega Laser User's Group Travel Award", + "value": 1100, + "year": 2013 + }, + { + "name": "NIF User's Group Travel Award", + "value": 1150, + "year": 2013 + } + ], + "google_scholar_url": "https://scholar.google.com/citations?user=dRm8f", + "grp_mtg_active": true, + "hindex": [ + { + "citations": 17890, + "citations_last_five": 8817, + "day": 12, + "h": 65, + "h_last_five": 43, + "month": "May", + "origin": "Google Scholar", + "since": 1991, + "year": 2019 + } + ], + "home_address": { + "city": "The big apple", + "state": "plasma", + "street": "123 Wallabe Ln", + "zip": "007" + }, + "initials": "SJLB", + "linkedin_url": "https://scholar.google.com/citations?hl=en&user=PAJ", + "membership": [ + { + "begin_year": 2006, + "organization": "American Nuclear Society", + "position": "Member" + } + ], + "miscellaneous": { + "metrics_for_success": [ + "publications(quality, quantity)", + "invite talks", + "funding", + "citations" + ] + }, + "name": "Simon J. L. Billinge", + "office": "1105 Seely W. Mudd Building (inner office)", + "orcid_id": "0000-0002-9432-4248", + "position": "professor", + "publicity": [ + { + "date": "2019-07-24", + "day": 24, + "grant": "bnlldrd18", + "month": "Jul", + "publication": "Brookhaven National Laboratory Web Story", + "title": "An awesome project and well worth the money", + "topic": "LDRD Provenance project", + "type": "online", + "url": "http://www.google.com", + "year": 2019 + } + ], + "research_focus_areas": [ + { + "begin_year": 2010, + "description": "software applied to materials engineering and life" + } + ], + "service": [ + { + "month": "August", + "name": "Master of Ceremonies and Organizer Brown University Chemistry: Believe it or Not public chemistry demonstration", + "type": "profession", + "year": 2017 + }, + { + "begin_date": "2018-01-01", + "end_date": "2018-01-01", + "name": "Applied Physics program committee", + "type": "department" + }, + { + "date": "2017-06-01", + "name": "Ad hoc tenure committee", + "notes": "Albert Einstein", + "type": "school" + }, + { + "month": 12, + "name": "Co-organizer JUAMI", + "other": [ + "great way to meet people" + ], + "role": "co-organizer", + "type": "profession", + "year": 2017 + } + ], + "skills": [ + { + "category": "Programming Languages", + "level": "expert", + "name": "Python" + } + ], + "teaching": [ + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "f16-3010", + "description": "This course is an introduction to nuclear physics.", + "enrollment": 18, + "evaluation": { + "amount_learned": 4.57, + "approachability": 4.86, + "appropriateness_workload": 4.29, + "classroom_delivery": 4.29, + "comments": [ + "Great teacher but disorganized", + "Wears pink pants. Why?" + ], + "course_overall": 4.43, + "fairness_grading": 4.57, + "instructor_overall": 4.43, + "organization": 4.0, + "response_rate": 58.33 + }, + "month": "August", + "organization": "Columbia University", + "position": "professor", + "semester": "Fall", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2016 + }, + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "f17-3010", + "description": "This course is an introduction to nuclear physics.", + "enrollment": 18, + "evaluation": { + "amount_learned": 4.57, + "approachability": 4.86, + "appropriateness_workload": 4.29, + "classroom_delivery": 4.29, + "comments": [ + "Great teacher but disorganized", + "Wears pink pants. Why?" + ], + "course_overall": 4.43, + "fairness_grading": 4.57, + "instructor_overall": 4.43, + "organization": 4.0, + "response_rate": 58.33 + }, + "month": "August", + "organization": "Columbia University", + "position": "professor", + "semester": "Fall", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2017 + }, + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "s18-3010", + "description": "This course is an introduction to nuclear physics.", + "enrollment": 18, + "evaluation": { + "amount_learned": 4.57, + "approachability": 4.86, + "appropriateness_workload": 4.29, + "classroom_delivery": 4.29, + "comments": [ + "Great teacher but disorganized", + "Wears pink pants. Why?" + ], + "course_overall": 4.43, + "fairness_grading": 4.57, + "instructor_overall": 4.43, + "organization": 4.0, + "response_rate": 58.33 + }, + "month": "Jan", + "organization": "Columbia University", + "position": "professor", + "semester": "Spring", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2018 + }, + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "s17-3010", + "description": "This course is an introduction to nuclear physics.", + "enrollment": 18, + "evaluation": { + "amount_learned": 4.57, + "approachability": 4.86, + "appropriateness_workload": 4.29, + "classroom_delivery": 4.29, + "comments": [ + "Great teacher but disorganized", + "Wears pink pants. Why?" + ], + "course_overall": 4.43, + "fairness_grading": 4.57, + "instructor_overall": 4.43, + "organization": 4.0, + "response_rate": 58.33 + }, + "month": "Jan", + "organization": "Columbia University", + "position": "professor", + "semester": "Spring", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2017 + }, + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "s19-3010", + "description": "This course is an introduction to nuclear physics.", + "enrollment": 18, + "month": "Jan", + "organization": "Columbia University", + "position": "professor", + "semester": "Spring", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2019 + }, + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "f18-3010", + "description": "This course is an introduction to nuclear physics.", + "enrollment": 18, + "month": "August", + "organization": "Columbia University", + "position": "professor", + "semester": "Fall", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2018 + }, + { + "course": "MSAE-3010: Introduction to Materials Science", + "courseid": "f19-3010", + "description": "This course is an introduction to nuclear physics.", + "month": "August", + "organization": "Columbia University", + "position": "professor", + "semester": "Fall", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2019 + } + ], + "title": "Dr." + } + { + "_id": "scopatz", + "aka": [ + "Scopatz", + "Scopatz, A", + "Scopatz, A.", + "Scopatz, A M", + "Anthony Michael Scopatz" + ], + "appointments": { + "f19": { + "begin_day": 1, + "begin_month": 2, + "begin_year": 2019, + "end_day": 31, + "end_month": 3, + "end_year": 2019, + "grant": "dmref15", + "loading": 0.75, + "notes": [ + "forgetmenot" + ], + "status": "finalized", + "type": "pd" + }, + "s20": { + "begin_date": "2020-01-01", + "end_date": "2020-05-15", + "grant": "sym", + "loading": 1.0, + "notes": [ + "fully appointed", + "outdated grant" + ], + "status": "finalized", + "type": "pd" + }, + "ss20": { + "begin_date": "2020-06-01", + "end_date": "2020-08-31", + "grant": "abc42", + "loading": 0.8, + "notes": [], + "status": "proposed", + "type": "ss" + }, + "ss21": { + "begin_date": "2020-09-01", + "end_date": "2021-08-31", + "grant": "future_grant", + "loading": 1.0, + "notes": [], + "status": "proposed", + "type": "ss" + } + }, + "avatar": "https://avatars1.githubusercontent.com/u/320553?v=3&s=200", + "bio": "Anthony Scopatz is currently an Assistant Professor", + "bios": [ + "Anthony Scopatz is currently an Assistant Professor but will go on to do great things" + ], + "committees": [ + { + "day": 1, + "level": "department", + "month": 3, + "name": "Heather Stanford", + "type": "phdoral", + "unit": "apam", + "year": 2020 + }, + { + "day": 1, + "level": "school", + "month": 3, + "name": "Heather Stanford", + "type": "promotion", + "unit": "seas", + "year": 2020 + }, + { + "day": 1, + "level": "external", + "month": 3, + "name": "Heather Stanford", + "notes": "something else to remember about it, not published", + "type": "phddefense", + "unit": "U Denmark", + "year": 2020 + }, + { + "day": 1, + "level": "university", + "month": 3, + "name": "Heather Stanford", + "type": "promotion", + "unit": "columbiau", + "year": 2020 + } + ], + "education": [ + { + "advisor": "scopatz", + "begin_year": 2008, + "degree": "Ph.D. Mechanical Engineering, Nuclear and Radiation Engineering Program", + "department": "apam", + "end_year": 2011, + "group": "ergs", + "institution": "The University of Texas at Austin", + "location": "Austin, TX", + "other": [ + "Adviser: Erich A. Schneider", + "Dissertation: Essential Physics for Fuel Cycle Modeling & Analysis" + ] + }, + { + "begin_year": 2006, + "degree": "M.S.E. Mechanical Engineering, Nuclear and Radiation Engineering Program", + "end_year": 2007, + "institution": "The University of Texas at Austin", + "location": "Austin, TX", + "other": [ + "Adviser: Erich A. Schneider", + "Thesis: Recyclable Uranium Options under the Global Nuclear Energy Partnership" + ] + }, + { + "begin_day": 1, + "begin_month": "Sep", + "begin_year": 2002, + "degree": "B.S. Physics", + "end_day": 20, + "end_month": 5, + "end_year": 2006, + "institution": "University of California, Santa Barbara", + "location": "Santa Barbara, CA", + "other": [ + "Graduated with a Major in Physics and a Minor in Mathematics" + ] + }, + { + "begin_year": 2008, + "degree": "ongoing", + "department": "earth", + "group": "life", + "institution": "solar system", + "location": "land, mostly" + } + ], + "email": "scopatz@cec.sc.edu", + "employment": [ + { + "advisor": "scopatz", + "begin_year": 2015, + "coworkers": [ + "afriend" + ], + "group": "ergs", + "location": "Columbia, SC", + "organization": "The University of South Carolina", + "other": [ + "Cyclus: An agent-based, discrete time nuclear fuel cycle simulator.", + "PyNE: The Nuclear Engineering Toolkit.", + "Website: http://www.ergs.sc.edu/" + ], + "permanent": true, + "position": "assistant professor", + "position_full": "Assistant Professor, Mechanical Engineering Department", + "status": "ms" + }, + { + "advisor": "scopatz", + "begin_day": 1, + "begin_month": "Jun", + "begin_year": 2013, + "department": "Physics", + "end_day": 15, + "end_month": 3, + "end_year": 2015, + "location": "Madison, WI", + "organization": "CNERG, The University of Wisconsin-Madison", + "other": [ + "Cyclus: An agent-based, discrete time nuclear fuel cycle simulator.", + "PyNE: The Nuclear Engineering Toolkit.", + "Website: https://cnerg.github.io/" + ], + "position": "associate scientist", + "position_full": "Associate Scientist, Engineering Physics Department", + "status": "undergrad" + }, + { + "begin_day": 1, + "begin_month": "Nov", + "begin_year": 2011, + "end_month": "May", + "end_year": 2013, + "location": "Chicago, IL", + "organization": "The FLASH Center, The University of Chicago", + "other": [ + "NIF: Simulation of magnetic field generation from neutral plasmas using FLASH.", + "CosmoB: Simulation of magnetic field generation from neutral plasmas using FLASH.", + "FLASH4: High-energy density physics capabilities and utilities.", + "Simulated Diagnostics: Schlieren, shadowgraphy, Langmuir probes, etc. from FLASH.", + "OpacPlot: HDF5-based equation of state and opacity file format.", + "Website: http://flash.uchicago.edu/site/" + ], + "position": "post-doctoral scholar", + "position_full": "Research Scientist, Postdoctoral Scholar", + "status": "pi" + }, + { + "begin_date": "2000-01-01", + "end_date": "2001-12-31", + "location": "Chicago, IL", + "not_in_cv": true, + "organization": "Google", + "other": [], + "position": "janitor" + } + ], + "funding": [ + { + "name": "Omega Laser User's Group Travel Award", + "value": 1100, + "year": 2013 + }, + { + "name": "NIF User's Group Travel Award", + "value": 1150, + "year": 2013 + } + ], + "github_id": "ascopatz", + "google_scholar_url": "https://scholar.google.com/citations?user=dRm8f", + "hindex": [ + { + "citations": 19837, + "citations_last_five": 9419, + "day": 19, + "h": 25, + "h_last_five": 46, + "month": 2, + "origin": "Google Scholar", + "since": 1991, + "year": 2020 + } + ], + "home_address": { + "city": "The big apple", + "state": "plasma", + "street": "123 Wallabe Ln", + "zip": "007" + }, + "initials": "AMS", + "membership": [ + { + "begin_year": 2006, + "organization": "American Nuclear Society", + "position": "Member" + }, + { + "begin_year": 2013, + "organization": "Python Software Foundation", + "position": "Fellow" + } + ], + "name": "Anthony Scopatz", + "orcid_id": "0000-0002-9432-4248", + "position": "professor", + "research_focus_areas": [ + { + "begin_year": 2010, + "description": "software applied to nuclear engineering and life" + } + ], + "service": [ + { + "month": 3, + "name": "International Steering Committee", + "notes": [ + "something" + ], + "role": "chair", + "type": "profession", + "year": 2020 + }, + { + "begin_year": 2018, + "end_year": 2021, + "name": "National Steering Committee", + "notes": "something", + "type": "profession" + } + ], + "skills": [ + { + "category": "Programming Languages", + "level": "expert", + "name": "Python" + }, + { + "category": "Programming Languages", + "level": "expert", + "name": "Cython" + } + ], + "teaching": [ + { + "course": "EMCH 552: Intro to Nuclear Engineering", + "courseid": "EMCH 552", + "description": "This course is an introduction to nuclear physics.", + "enrollment": "tbd", + "month": "August", + "organization": "University of South Carolina", + "position": "professor", + "semester": "Spring", + "syllabus": "https://drive.google.com/open?id=0BxUpd34yizZreDBCMEJNY2FUbnc", + "year": 2017 + }, + { + "course": "EMCH 558/758: Reactor Power Systems", + "courseid": "EMCH 558", + "description": "This course covers conventional reactors.", + "enrollment": 28, + "evaluation": { + "amount_learned": 3.5, + "approachability": 4.3, + "appropriateness_workload": 3.15, + "classroom_delivery": 4, + "comments": [ + "super duper", + "dandy" + ], + "course_overall": 3.67, + "fairness_grading": 3.54, + "instructor_overall": 3.5, + "organization": 3.25, + "response_rate": 66.76 + }, + "month": "January", + "organization": "University of South Carolina", + "position": "professor", + "syllabus": "https://docs.google.com/document/d/1uMAx_KFZK9ugYyF6wWtLLWgITVhaTBkAf8-PxiboYdM/edit?usp=sharing", + "year": 2017 + } + ], + "title": "Dr." + } diff --git a/doc/source/collections/presentations.rst b/doc/source/collections/presentations.rst new file mode 100644 index 000000000..3e6934d0e --- /dev/null +++ b/doc/source/collections/presentations.rst @@ -0,0 +1,200 @@ +Presentations +============= +This collection describes presentations that groupmembers make at conferences, symposia, seminars andso on. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, unique id for the presentation, required +:abstract: string, abstract of the presentation, optional +:authors: ['string', 'list'], Author list., required +:begin_date: ['date', 'string'], begin date in YYYY-MM-DD, optional +:begin_day: integer, optional +:begin_month: ['string', 'integer'], optional +:begin_year: integer, year the conference or trip begins., optional +:department: string, department of the institution where thepresentation will be made, if applicable. should be discoverable in institutions., optional +:end_date: ['date', 'string'], end_date in YYYY-MM-DD, optional +:end_day: integer, optional +:end_month: ['string', 'integer'], optional +:end_year: integer, year the conference or trip ends, optional +:institution: string, institution where thepresentation will be made, if applicable., optional +:location: string, city and {state or country} of meeting, optional +:meeting_name: string, full name of the conference or meeting. If it is a departmental seminar or colloquium, write Seminaror Colloquium and fill in department and institution fields, optional +:notes: ['list', 'string'], any reminder or memory aid about anything, optional +:presentation_url: string, the url to the presentation on Google slides, GitHub or wherever, optional +:project: ['string', 'list'], project or list of projects that this presentation is associated with. Should be discoverable in projects collection, optional +:status: string, Is the application in prep or submitted, was the invitation accepted or declined, was the trip cancelled?, required + + Allowed values: + * in-prep + * submitted + * accepted + * declined + * cancelled + * postponed +:title: string, title of the presentation, required +:type: string, type of presentation, required + + Allowed values: + * award + * colloquium + * contributed_oral + * invited + * keynote + * plenary + * poster + * seminar + * tutorial + * other +:webinar: boolean, true if a webinar. Default to false, optional + + +YAML Example +------------ + +.. code-block:: yaml + + 18sb04_kentstate: + abstract: We made the case for local structure + authors: + - scopatz + begin_day: 22 + begin_month: May + begin_year: 2018 + department: physics + end_day: 22 + end_month: 5 + end_year: 2018 + institution: columbiau + notes: + - what a week! + project: 18kj_conservation + status: accepted + title: Nanostructure challenges and successes from 16th Century warships to 21st + Century energy + type: colloquium + webinar: true + 18sb_nslsii: + abstract: We pulled apart graphite with tape + authors: + - scopatz + begin_day: 22 + begin_month: 5 + begin_year: 2018 + department: apam + end_day: 22 + end_month: 5 + end_year: 2018 + institution: columbiau + location: Upton NY + meeting_name: 2018 NSLS-II and CFN Users Meeting + notes: + - We hope the weather will be sunny + - if the weather is nice we will go to the beach + project: 18sob_clustermining + status: accepted + title: 'ClusterMining: extracting core structures of metallic nanoparticles from + the atomic pair distribution function' + type: poster + 18sb_this_and_that: + abstract: We pulled apart graphite with tape + authors: + - scopatz + - afriend + begin_day: 22 + begin_month: 5 + begin_year: 2018 + department: apam + institution: columbiau + location: Upton NY + meeting_name: Meeting to check flexibility on dates + notes: + - We hope the weather will be sunny + - if the weather is nice we will go to the beach + presentation_url: http://github.com/blob/my_talk.pdf + project: 18sob_clustermining + status: accepted + title: Graphitic Dephenestration + type: award + webinar: false + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "18sb04_kentstate", + "abstract": "We made the case for local structure", + "authors": [ + "scopatz" + ], + "begin_day": 22, + "begin_month": "May", + "begin_year": 2018, + "department": "physics", + "end_day": 22, + "end_month": 5, + "end_year": 2018, + "institution": "columbiau", + "notes": [ + "what a week!" + ], + "project": "18kj_conservation", + "status": "accepted", + "title": "Nanostructure challenges and successes from 16th Century warships to 21st Century energy", + "type": "colloquium", + "webinar": true + } + { + "_id": "18sb_nslsii", + "abstract": "We pulled apart graphite with tape", + "authors": [ + "scopatz" + ], + "begin_day": 22, + "begin_month": 5, + "begin_year": 2018, + "department": "apam", + "end_day": 22, + "end_month": 5, + "end_year": 2018, + "institution": "columbiau", + "location": "Upton NY", + "meeting_name": "2018 NSLS-II and CFN Users Meeting", + "notes": [ + "We hope the weather will be sunny", + "if the weather is nice we will go to the beach" + ], + "project": "18sob_clustermining", + "status": "accepted", + "title": "ClusterMining: extracting core structures of metallic nanoparticles from the atomic pair distribution function", + "type": "poster" + } + { + "_id": "18sb_this_and_that", + "abstract": "We pulled apart graphite with tape", + "authors": [ + "scopatz", + "afriend" + ], + "begin_day": 22, + "begin_month": 5, + "begin_year": 2018, + "department": "apam", + "institution": "columbiau", + "location": "Upton NY", + "meeting_name": "Meeting to check flexibility on dates", + "notes": [ + "We hope the weather will be sunny", + "if the weather is nice we will go to the beach" + ], + "presentation_url": "http://github.com/blob/my_talk.pdf", + "project": "18sob_clustermining", + "status": "accepted", + "title": "Graphitic Dephenestration", + "type": "award", + "webinar": false + } diff --git a/doc/source/collections/projecta.rst b/doc/source/collections/projecta.rst new file mode 100644 index 000000000..498fda8ed --- /dev/null +++ b/doc/source/collections/projecta.rst @@ -0,0 +1,506 @@ +Projecta +======== +This collection describes a single deliverable of a larger project. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, Unique projectum identifier, required +:begin_date: ['string', 'date'], projectum start date, yyyy-mm-dd, optional +:collaborators: list, list of collaborators ids. These are non-group members. These will be dereferenced from the contacts collection., optional +:deliverable: dict, outline of the deliverable for this projectum, required + + :audience: list, the target audience for this deliverable, optional + :due_date: ['date', 'string'], due date of deliverable, yyyy-mm-dd, optional + :success_def: string, definition of a successful deliverable, optional + :scope: list, a list of items that define the scope of the deliverable.If this is a software release it might be a list of Use Cases that will be satisfied.If it is a paper it defines what will, and what won't, be described in the paper., optional + :platform: string, description of how and where the audience will access the deliverable.e.g. Journal if it is a paper. For software releases, this may be the computer operating systems that will be supported, or if it will be a web service, etc., optional + :roll_out: list, steps that the audience will take to access and interact with the deliverable, not needed for paper submissions, optional + :notes: list, any notes about the deliverable that we want to keep track of, optional + :status: string, status of the deliverable. Allowed values are {', '.join(PROJECTUM_STATI)}, optional + + Allowed values: + * proposed + * converged + * started + * backburner + * paused + * cancelled + * finished + * all + :type: string, type of deliverable, optional +:description: string, explanation of projectum, optional +:end_date: ['date', 'string'], projectum end date, yyyy-mm-dd., optional +:grants: ['string', 'list'], grant id funding the project, optional +:group_members: list, list of group member id's working on this project,These will be dereferenced from the people collection., optional +:kickoff: dict, details the projectum kickoff meeting, optional + + :date: ['date', 'string'], kickoff meeting date, yyyy-mm-dd., optional + :due_date: ['date', 'string'], kickoff meeting by date, yyyy-mm-dd., optional + :end_date: ['date', 'string'], date when the kickoff was done, optional + :name: string, name of meeting, optional + :objective: string, goal of the meeting, optional + :audience: list, list of people attending the meeting.Normally this list is group_members, collaborators, and pi, or some subset of these. if people are invited who are not alreadyin these groups their names or id's can be added explicitly to the list, optional + :notes: list, any notes about the kickoff, optional + :status: string, status of the kickoff. Allowed values are {', '.join(PROJECTUM_STATI)}, optional + + Allowed values: + * proposed + * converged + * started + * backburner + * paused + * cancelled + * finished + * all + :type: string, type of kickoff deliverable. In general will be 'meeting'Allowed values are {', '.join(MILESTONE_TYPES)}, optional + + Allowed values: + * mergedpr + * meeting + * other + * paper + * release + * email + * handin + * purchase + * approval + * presentation + * report + * submission + * decision + * demo + * skel +:lead: string, the id of the lead student or person for the projectum. Person details will be dereferenced from the people collection., required +:log_url: string, link to an online document (e.g., Google doc) that is a log of notes and meeting minutes for the projectum, optional +:milestones: list, smaller deliverables done by a certain date a series of milestones ends with the projectum deliverable, optional + + :type: dict, optional + + :uuid: string, a universally unique id for the task so it can be referenced elsewhere, optional + :due_date: ['date', 'string'], due date of milestone, yyyy-mm-dd, optional + :name: string, what is the deliverable of milestone, optional + :notes: list, any notes about the milestone and/or small, non-deliverable to-dos to reach the milestone, optional + :tasks: list, list of todo uuids to complete the milestone , optional + :progress: dict, update on the milestone, optional + + :text: string, text description of progress and observations, optional + :figure: list, token that dereferences a figure or image in group local storage db, optional + :slides_urls: list, urls to slides describing the development, e.g., Google slides url, optional + :objective: string, explains goal of the milestone, optional + :audience: list, list of people attending the meeting.Normally this list is group_members, collaborators, and pi, or some subset of these. if people are invited who are not alreadyin these groups their names or id's can be added explicitly to the list, optional + :status: string, status of the milestone. Allowed values are {', '.join(PROJECTUM_STATI)}, optional + + Allowed values: + * proposed + * converged + * started + * backburner + * paused + * cancelled + * finished + * all + :type: string, type of milestone deliverable. Allowed values are {', '.join(MILESTONE_TYPES)}, optional + + Allowed values: + * mergedpr + * meeting + * other + * paper + * release + * email + * handin + * purchase + * approval + * presentation + * report + * submission + * decision + * demo + * skel + :end_date: ['date', 'string'], end date of milestone, yyyy-mm-dd, optional + :identifier: string, label of milestone, optional +:name: string, name of the projectum, optional +:notes: list, notes about the projectum, optional +:other_urls: list, link to remote repository. e.g. analysis or data repositories, optional +:pi_id: string, id of the PI, optional +:product_url: string, url for manuscript or code repository, optional +:status: string, status of the projectum. Allowed values are {', '.join(PROJECTUM_STATI)}, required + + Allowed values: + * proposed + * converged + * started + * backburner + * paused + * cancelled + * finished + * all +:supplementary_info_urls: list, list of urls that are links to repos gdocs, etc. that contain supplementary info such as data or code snippets, optional + + +YAML Example +------------ + +.. code-block:: yaml + + ab_inactive: + begin_date: '2020-05-03' + deliverable: + due_date: '2021-05-03' + status: paused + description: a prum that has various inactive states in milestones and overall + grants: dmref15 + kickoff: + due_date: '2021-05-03' + name: Kickoff + status: backburner + type: meeting + lead: abeing + milestones: + - due_date: '2021-05-03' + name: Milestone + status: converged + uuid: milestone_uuid_inactive + status: backburner + pl_firstprojectum: + begin_date: '2020-07-25' + deliverable: + due_date: '2021-08-26' + status: finished + end_date: '2020-07-27' + kickoff: + due_date: '2021-08-03' + name: Kickoff + status: backburner + lead: pliu + milestones: + - due_date: '2021-08-03' + name: Milestone + status: converged + uuid: milestone_uuid_pl1 + status: finished + pl_secondprojectum: + begin_date: '2020-07-25' + deliverable: + due_date: '2021-08-26' + status: finished + kickoff: + due_date: '2021-08-03' + name: Kickoff + status: backburner + lead: pliu + milestones: + - due_date: '2021-08-03' + name: Milestone + status: converged + uuid: milestone_uuid_pl2 + status: proposed + pl_thirdprojectum: + begin_date: '2020-07-25' + deliverable: + due_date: '2021-08-26' + status: finished + kickoff: + due_date: '2021-08-03' + name: Kickoff + status: backburner + lead: pliu + milestones: + - due_date: '2021-08-03' + name: Milestone + status: converged + uuid: milestone_uuid_pl3 + status: backburner + sb_firstprojectum: + begin_date: '2020-04-28' + collaborators: + - aeinstein + - pdirac + deliverable: + audience: + - beginning grad in chemistry + due_date: '2021-05-05' + notes: + - deliverable note + platform: description of how and where the audience will access the deliverable. Journal + if it is a paper + roll_out: + - steps that the audience will take to access and interact with the deliverable + - not needed for paper submissions + scope: + - UCs that are supported or some other scope description if it is software + - sketch of science story if it is paper + status: proposed + success_def: audience is happy + description: My first projectum + grants: SymPy-1.1 + group_members: + - ascopatz + kickoff: + audience: + - lead + - pi + - group_members + date: '2020-05-05' + due_date: '2020-05-06' + end_date: '2020-05-07' + name: Kick off meeting + notes: + - kickoff note + objective: introduce project to the lead + status: finished + lead: ascopatz + log_url: https://docs.google.com/document/d/1YC_wtW5Q + milestones: + - audience: + - lead + - pi + - group_members + due_date: '2020-05-20' + name: Project lead presentation + notes: + - do background reading + - understand math + objective: lead presents background reading and initial project plan + progress: + figure: + - token that dereferences a figure or image in group local storage db + slides_urls: + - url to slides describing the development, e.g. Google slides url + text: The samples have been synthesized and places in the sample cupboard. + They turned out well and are blue as expected + status: proposed + tasks: + - 1saefadf-wdaagea2 + type: meeting + uuid: milestone_uuid_sb1 + - audience: + - lead + - pi + - group_members + due_date: '2020-05-27' + name: planning meeting + objective: develop a detailed plan with dates + status: proposed + type: mergedpr + uuid: milestone_uuid_sb1_2 + name: First Projectum + other_urls: + - https://docs.google.com/document/d/analysis + pi_id: scopatz + product_url: https://docs.google.com/document/d/manuscript + status: started + supplementary_info_urls: + - https://google.com + - https://nytimes.com + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "ab_inactive", + "begin_date": "2020-05-03", + "deliverable": { + "due_date": "2021-05-03", + "status": "paused" + }, + "description": "a prum that has various inactive states in milestones and overall", + "grants": "dmref15", + "kickoff": { + "due_date": "2021-05-03", + "name": "Kickoff", + "status": "backburner", + "type": "meeting" + }, + "lead": "abeing", + "milestones": [ + { + "due_date": "2021-05-03", + "name": "Milestone", + "status": "converged", + "uuid": "milestone_uuid_inactive" + } + ], + "status": "backburner" + } + { + "_id": "pl_firstprojectum", + "begin_date": "2020-07-25", + "deliverable": { + "due_date": "2021-08-26", + "status": "finished" + }, + "end_date": "2020-07-27", + "kickoff": { + "due_date": "2021-08-03", + "name": "Kickoff", + "status": "backburner" + }, + "lead": "pliu", + "milestones": [ + { + "due_date": "2021-08-03", + "name": "Milestone", + "status": "converged", + "uuid": "milestone_uuid_pl1" + } + ], + "status": "finished" + } + { + "_id": "pl_secondprojectum", + "begin_date": "2020-07-25", + "deliverable": { + "due_date": "2021-08-26", + "status": "finished" + }, + "kickoff": { + "due_date": "2021-08-03", + "name": "Kickoff", + "status": "backburner" + }, + "lead": "pliu", + "milestones": [ + { + "due_date": "2021-08-03", + "name": "Milestone", + "status": "converged", + "uuid": "milestone_uuid_pl2" + } + ], + "status": "proposed" + } + { + "_id": "pl_thirdprojectum", + "begin_date": "2020-07-25", + "deliverable": { + "due_date": "2021-08-26", + "status": "finished" + }, + "kickoff": { + "due_date": "2021-08-03", + "name": "Kickoff", + "status": "backburner" + }, + "lead": "pliu", + "milestones": [ + { + "due_date": "2021-08-03", + "name": "Milestone", + "status": "converged", + "uuid": "milestone_uuid_pl3" + } + ], + "status": "backburner" + } + { + "_id": "sb_firstprojectum", + "begin_date": "2020-04-28", + "collaborators": [ + "aeinstein", + "pdirac" + ], + "deliverable": { + "audience": [ + "beginning grad in chemistry" + ], + "due_date": "2021-05-05", + "notes": [ + "deliverable note" + ], + "platform": "description of how and where the audience will access the deliverable. Journal if it is a paper", + "roll_out": [ + "steps that the audience will take to access and interact with the deliverable", + "not needed for paper submissions" + ], + "scope": [ + "UCs that are supported or some other scope description if it is software", + "sketch of science story if it is paper" + ], + "status": "proposed", + "success_def": "audience is happy" + }, + "description": "My first projectum", + "grants": "SymPy-1.1", + "group_members": [ + "ascopatz" + ], + "kickoff": { + "audience": [ + "lead", + "pi", + "group_members" + ], + "date": "2020-05-05", + "due_date": "2020-05-06", + "end_date": "2020-05-07", + "name": "Kick off meeting", + "notes": [ + "kickoff note" + ], + "objective": "introduce project to the lead", + "status": "finished" + }, + "lead": "ascopatz", + "log_url": "https://docs.google.com/document/d/1YC_wtW5Q", + "milestones": [ + { + "audience": [ + "lead", + "pi", + "group_members" + ], + "due_date": "2020-05-20", + "name": "Project lead presentation", + "notes": [ + "do background reading", + "understand math" + ], + "objective": "lead presents background reading and initial project plan", + "progress": { + "figure": [ + "token that dereferences a figure or image in group local storage db" + ], + "slides_urls": [ + "url to slides describing the development, e.g. Google slides url" + ], + "text": "The samples have been synthesized and places in the sample cupboard. They turned out well and are blue as expected" + }, + "status": "proposed", + "tasks": [ + "1saefadf-wdaagea2" + ], + "type": "meeting", + "uuid": "milestone_uuid_sb1" + }, + { + "audience": [ + "lead", + "pi", + "group_members" + ], + "due_date": "2020-05-27", + "name": "planning meeting", + "objective": "develop a detailed plan with dates", + "status": "proposed", + "type": "mergedpr", + "uuid": "milestone_uuid_sb1_2" + } + ], + "name": "First Projectum", + "other_urls": [ + "https://docs.google.com/document/d/analysis" + ], + "pi_id": "scopatz", + "product_url": "https://docs.google.com/document/d/manuscript", + "status": "started", + "supplementary_info_urls": [ + "https://google.com", + "https://nytimes.com" + ] + } diff --git a/doc/source/collections/projects.rst b/doc/source/collections/projects.rst new file mode 100644 index 000000000..cdc29d447 --- /dev/null +++ b/doc/source/collections/projects.rst @@ -0,0 +1,119 @@ +Projects +======== +This collection describes the research group projects. This is normally public data. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, Unique project identifier., required +:active: ['string', 'boolean'], true if the project is active, optional +:description: string, brief project description., required +:grants: list, Grant id if there is a grant supporting this project, optional + + :type: string, the list of ids/akas of grants related to this project, optional + :description: string, the list of ids/akas of grants related to this project, optional +:group: string, id for the group in the groups collection whose project this is, optional +:highlights: list, list of things to highlight in a report or website, such as releases for for software or high profile publications, optional + + :type: dict, optional + + :year: integer, the year of the highlight, optional + :month: ['string', 'integer'], the month of the highlight, optional + :description: string, the highlight, optional +:logo: string, URL to the project logo, optional +:name: string, name of the project., required +:other: ['list', 'string'], other information about the project, optional +:repo: string, URL of the source code repo, if available, optional +:summary: string, The summary of the project, optional +:team: list, People who are/have been working on this project., required + + :type: dict, optional + + :begin_month: ['string', 'integer'], optional + :begin_year: integer, optional + :end_month: ['string', 'integer'], optional + :end_year: integer, optional + :name: string, optional + :position: string, optional +:type: ['string'], The type of project, optional + + Allowed values: + * ossoftware + * funded + * outreach +:website: string, URL of the website., optional + + +YAML Example +------------ + +.. code-block:: yaml + + Cyclus: + description: Agent-Based Nuclear Fuel Cycle Simulator + grants: + - dmref15 + group: ergs + highlights: + - description: high profile pub in Nature + month: 5 + year: 2020 + logo: http://fuelcycle.org/_static/big_c.png + name: Cyclus + other: + - Discrete facilities with discrete material transactions + - Low barrier to entry, rapid payback to adoption + repo: https://github.com/cyclus/cyclus/ + summary: In summary, a cool project + team: + - begin_month: June + begin_year: 2013 + end_month: July + end_year: 2015 + name: Anthony Scopatz + position: Project Lead + type: funded + website: http://fuelcycle.org/ + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "Cyclus", + "description": "Agent-Based Nuclear Fuel Cycle Simulator", + "grants": [ + "dmref15" + ], + "group": "ergs", + "highlights": [ + { + "description": "high profile pub in Nature", + "month": 5, + "year": 2020 + } + ], + "logo": "http://fuelcycle.org/_static/big_c.png", + "name": "Cyclus", + "other": [ + "Discrete facilities with discrete material transactions", + "Low barrier to entry, rapid payback to adoption" + ], + "repo": "https://github.com/cyclus/cyclus/", + "summary": "In summary, a cool project", + "team": [ + { + "begin_month": "June", + "begin_year": 2013, + "end_month": "July", + "end_year": 2015, + "name": "Anthony Scopatz", + "position": "Project Lead" + } + ], + "type": "funded", + "website": "http://fuelcycle.org/" + } diff --git a/doc/source/collections/proposalReviews.rst b/doc/source/collections/proposalReviews.rst new file mode 100644 index 000000000..b0967351e --- /dev/null +++ b/doc/source/collections/proposalReviews.rst @@ -0,0 +1,254 @@ +Proposalreviews +=============== +This collection contains reviews of funding proposals + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: ['string', 'integer', 'float'], ID, e.g. 1906_doe_example, required +:adequacy_of_resources: list, Are the resources of the PI adequate, required +:agency: string, currently nsf, doe or other, optional + + Allowed values: + * nsf + * doe + * other +:competency_of_team: list, Is the team competent, required +:doe_appropriateness_of_approach: list, Appropriateness of Research. only used if agency is doe., optional +:doe_reasonableness_of_budget: list, Reasonableness of budget. only used if agency is doe., optional +:doe_relevance_to_program_mission: list, Relevance to program mission. only used if agency is doe., optional +:does_how: list, How will the research be done, required +:does_what: string, What will the team do, required +:due_date: ['string', 'date'], date the review is due in ISO format, required +:freewrite: ['string', 'list'], Anything and this will appear in the built documentright before the summary. This section often used for extra review criteria for the particular proposal, optional +:goals: list, What are the main goals of the proposed research, required +:importance: list, The importance of the Research, required +:institutions: ['string', 'list'], The institutions of the authors in the same order, required +:month: ['string', 'integer'], The month the review was submitted, required +:names: ['list', 'string'], The names of the PIs, required +:nsf_broader_impacts: list, The broader impacts of the research. Only used if agency is nsf, optional +:nsf_create_original_transformative: list, Answer to the question how the work is creative, original or transformative. Only used if agency is nsf, optional +:nsf_plan_good: list, Is the plan good? Only used if agency is nsf, optional +:nsf_pot_to_advance_knowledge: list, Answer to the question how the work will advanceknowledge. Only used if agency is nsf, optional +:nsf_pot_to_benefit_society: list, Answer to the question how the work has the potentialto benefit society. Only used if agency is nsf, optional +:requester: string, Name of the program officer who requested the review, required +:reviewer: string, short name of the reviewer. Will be used in the filename of the resulting text file, required +:status: string, the status of the review, optional + + Allowed values: + * invited + * accepted + * declined + * downloaded + * inprogress + * submitted + * cancelled +:summary: string, Summary statement, required +:title: string, The title of the proposal, required +:year: integer, The year the review was submitted, required + + +YAML Example +------------ + +.. code-block:: yaml + + 1906doeExample: + adequacy_of_resources: + - The resources available to the PI seem adequate + agency: doe + competency_of_team: + - super competent! + doe_appropriateness_of_approach: + - The proposed approach is highly innovative + doe_reasonableness_of_budget: + - They could do it with half the money + doe_relevance_to_program_mission: + - super relevant + does_how: + - they will find the cause of Malaria + - when they find it they will determine a cure + does_what: Find a cure for Malaria + due_date: '2020-04-10' + freewrite: + - I can put extra things here, such as special instructions from the + - program officer + goals: + - The goals of the proposal are to put together a team to find a cure for Malaria, + and then to find it + importance: + - save lives + - lift people from poverty + institutions: columbiau + month: May + names: + - B. Cause + - A.N. Effect + nsf_broader_impacts: [] + nsf_create_original_transformative: [] + nsf_plan_good: [] + nsf_pot_to_advance_knowledge: [] + nsf_pot_to_benefit_society: [] + requester: Lane Wilson + reviewer: sbillinge + status: submitted + summary: dynamite proposal + title: A stunning new way to cure Malaria + year: 2019 + 1906nsfExample: + adequacy_of_resources: + - The resources available to the PI seem adequate + agency: nsf + competency_of_team: + - super competent! + doe_appropriateness_of_approach: [] + doe_reasonableness_of_budget: [] + doe_relevance_to_program_mission: [] + does_how: + - they will find the cause of Poverty + - when they find it they will determine a cure + does_what: Find a cure for Poverty + due_date: '2020-04-10' + freewrite: I can put extra things here, such as special instructions from the + goals: + - The goals of the proposal are to put together a team to find a cure for Poverty, + and then to find it + importance: + - save lives + - lift people from poverty + institutions: [] + month: May + names: + - A Genius + nsf_broader_impacts: + - Poor people will be made unpoor + nsf_create_original_transformative: + - transformative because lives will be transformed + nsf_plan_good: + - I don't see any issues with the plan + - it should be very straightforward + nsf_pot_to_advance_knowledge: + - This won't advance knowledge at all + nsf_pot_to_benefit_society: + - Society will benefit by poor people being made unpoor if they want to be + requester: Tessemer Guebre + reviewer: sbillinge + status: submitted + summary: dynamite proposal + title: A stunning new way to cure Poverty + year: 2019 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "1906doeExample", + "adequacy_of_resources": [ + "The resources available to the PI seem adequate" + ], + "agency": "doe", + "competency_of_team": [ + "super competent!" + ], + "doe_appropriateness_of_approach": [ + "The proposed approach is highly innovative" + ], + "doe_reasonableness_of_budget": [ + "They could do it with half the money" + ], + "doe_relevance_to_program_mission": [ + "super relevant" + ], + "does_how": [ + "they will find the cause of Malaria", + "when they find it they will determine a cure" + ], + "does_what": "Find a cure for Malaria", + "due_date": "2020-04-10", + "freewrite": [ + "I can put extra things here, such as special instructions from the", + "program officer" + ], + "goals": [ + "The goals of the proposal are to put together a team to find a cure for Malaria, and then to find it" + ], + "importance": [ + "save lives", + "lift people from poverty" + ], + "institutions": "columbiau", + "month": "May", + "names": [ + "B. Cause", + "A.N. Effect" + ], + "nsf_broader_impacts": [], + "nsf_create_original_transformative": [], + "nsf_plan_good": [], + "nsf_pot_to_advance_knowledge": [], + "nsf_pot_to_benefit_society": [], + "requester": "Lane Wilson", + "reviewer": "sbillinge", + "status": "submitted", + "summary": "dynamite proposal", + "title": "A stunning new way to cure Malaria", + "year": 2019 + } + { + "_id": "1906nsfExample", + "adequacy_of_resources": [ + "The resources available to the PI seem adequate" + ], + "agency": "nsf", + "competency_of_team": [ + "super competent!" + ], + "doe_appropriateness_of_approach": [], + "doe_reasonableness_of_budget": [], + "doe_relevance_to_program_mission": [], + "does_how": [ + "they will find the cause of Poverty", + "when they find it they will determine a cure" + ], + "does_what": "Find a cure for Poverty", + "due_date": "2020-04-10", + "freewrite": "I can put extra things here, such as special instructions from the", + "goals": [ + "The goals of the proposal are to put together a team to find a cure for Poverty, and then to find it" + ], + "importance": [ + "save lives", + "lift people from poverty" + ], + "institutions": [], + "month": "May", + "names": [ + "A Genius" + ], + "nsf_broader_impacts": [ + "Poor people will be made unpoor" + ], + "nsf_create_original_transformative": [ + "transformative because lives will be transformed" + ], + "nsf_plan_good": [ + "I don't see any issues with the plan", + "it should be very straightforward" + ], + "nsf_pot_to_advance_knowledge": [ + "This won't advance knowledge at all" + ], + "nsf_pot_to_benefit_society": [ + "Society will benefit by poor people being made unpoor if they want to be" + ], + "requester": "Tessemer Guebre", + "reviewer": "sbillinge", + "status": "submitted", + "summary": "dynamite proposal", + "title": "A stunning new way to cure Poverty", + "year": 2019 + } diff --git a/doc/source/collections/proposals.rst b/doc/source/collections/proposals.rst new file mode 100644 index 000000000..8d3acba0b --- /dev/null +++ b/doc/source/collections/proposals.rst @@ -0,0 +1,367 @@ +Proposals +========= +This collection represents proposals that have been submitted by the group. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: ['string', 'integer', 'float'], short representation, such as this-is-my-name, required +:amount: ['integer', 'float'], value of award, required +:authors: ['list', 'string'], other investigator names, optional +:begin_date: ['string', 'date'], start date of the proposed grant in format YYYY-MM-DD, optional +:begin_day: integer, start day of the proposed grant, optional +:begin_month: ['string', 'integer'], start month of the proposed grant, optional +:begin_year: integer, start year of the proposed grant, optional +:call_for_proposals: string, optional +:cpp_info: dict, extra information needed for building current and pending form , optional + + :cppflag: boolean, optional + :other_agencies_submitted: ['string', 'boolean'], optional + :institution: string, place where the proposed grant will be located, optional + :person_months_academic: ['float', 'integer'], optional + :person_months_summer: ['float', 'integer'], optional + :project_scope: string, optional + :single_pi: boolean, set to true if there are no co-pi's, optional +:currency: string, typically '$' or 'USD', required +:due_date: ['string', 'date'], day that the proposal is due, optional +:duration: ['integer', 'float'], number of years, optional +:end_date: ['string', 'date'], end date of the proposed grant in format YYYY-MM-DD, optional +:end_day: ['string', 'integer'], end day of the proposed grant, optional +:end_month: ['string', 'integer'], end month of the proposed grant, optional +:end_year: integer, end year of the proposed grant, optional +:full: dict, full body of the proposal, optional +:funder: string, who will fund the proposalas funder in grants, optional +:notes: ['string', 'list'], anything you want to note, optional +:pi: string, principal investigator name, required +:pre: dict, Information about the pre-proposal, optional +:status: string, e.g. 'pending', 'accepted', 'declined', required + + Allowed values: + * pending + * declined + * accepted + * inprep + * submitted +:submitted_date: ['string', 'date'], date that the proposal was submitted, optional +:submitted_day: integer, day that the proposal was submitted, optional +:submitted_month: ['string', 'integer'], month that the proposal was submitted, optional +:submitted_year: integer, Year that the proposal was submitted, optional +:team: list, information about the team members participating in the grant., optional + + :type: dict, optional + + :cv: string, optional + :email: string, optional + :institution: string, optional + :name: string, optional + :position: string, optional + :subaward_amount: ['integer', 'float'], optional +:title: string, actual title of proposal, required +:title_short: string, short title of proposal, optional + + +YAML Example +------------ + +.. code-block:: yaml + + SymPy-1.1: + amount: 3000.0 + begin_date: '2030-05-01' + cpp_info: + cppflag: true + institution: Columbia University + other_agencies_submitted: None + person_months_academic: 0 + person_months_summer: 1 + project_scope: '' + currency: USD + end_date: '2030-12-31' + pi: Anthony Scopatz + status: pending + team: + - institution: Columbia University + name: scopatz + position: pi + title: SymPy 1.1 Release Support + SymPy-2.1: + amount: 3000.0 + begin_date: '2019-06-01' + cpp_info: + cppflag: true + institution: Columbia University + other_agencies_submitted: None + person_months_academic: 0 + person_months_summer: 1 + project_scope: '' + currency: USD + end_date: '2030-12-31' + pi: sbillinge + status: accepted + team: + - institution: University of 2.1 + name: Anthony Scopatz 2.1 + position: pi + title: SymPy 2.1 Release Support + abc42: + amount: 42000.0 + begin_date: '2020-06-01' + cpp_info: + cppflag: true + institution: Columbia University + other_agencies_submitted: None + person_months_academic: 0 + person_months_summer: 1 + project_scope: '' + currency: USD + end_date: '2020-12-31' + pi: sbillinge + status: submitted + title: The answer to life, the universe, and everything + dmref15: + amount: 982785.0 + authors: + - qdu + - dhsu + - sbillinge + begin_day: 1 + begin_month: May + begin_year: 2018 + call_for_proposals: http://www.nsf.gov/pubs/2014/nsf14591/nsf14591.htm + cpp_info: + cppflag: true + institution: Columbia University + other_agencies_submitted: None + person_months_academic: 0 + person_months_summer: 1 + project_scope: lots to do but it doesn't overlap with any other of my grants + single_pi: true + currency: USD + duration: 3 + end_day: 1 + end_month: May + end_year: 2019 + funder: NSF + notes: Quite an idea + pi: Simon Billinge + status: accepted + submitted_date: '2015-02-02' + team: + - institution: Columbia University + name: qdu + position: copi + - institution: Columbia University + name: dhsu + position: copi + - institution: Columbia University + name: sbillinge + position: pi + subaward_amount: 330000.0 + title: 'DMREF: Novel, data validated, nanostructure determination methods for accelerating + materials discovery' + title_short: DMREF nanostructure + mypropsal: + amount: 1000000.0 + authors: + - Anthony Scopatz + - Robert Flanagan + begin_day: 1 + begin_month: May + begin_year: 2030 + currency: USD + duration: 3 + end_day: 31 + end_month: December + end_year: 2030 + full: + benefit_of_collaboration: http://pdf.com/benefit_of_collaboration + cv: + - http://pdf.com/scopatz-cv + - http://pdf.com/flanagan-cv + narrative: http://some.com/pdf + notes: Quite an idea + pi: Anthony Scopatz + pre: + benefit_of_collaboration: http://pdf.com/benefit_of_collaboration + cv: + - http://pdf.com/scopatz-cv + - http://pdf.com/flanagan-cv + day: 2 + month: Aug + narrative: http://some.com/pdf + year: 1998 + status: submitted + submitted_day: 18 + submitted_month: Aug + submitted_year: 1999 + title: A very fine proposal indeed + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "SymPy-1.1", + "amount": 3000.0, + "begin_date": "2030-05-01", + "cpp_info": { + "cppflag": true, + "institution": "Columbia University", + "other_agencies_submitted": "None", + "person_months_academic": 0, + "person_months_summer": 1, + "project_scope": "" + }, + "currency": "USD", + "end_date": "2030-12-31", + "pi": "Anthony Scopatz", + "status": "pending", + "team": [ + { + "institution": "Columbia University", + "name": "scopatz", + "position": "pi" + } + ], + "title": "SymPy 1.1 Release Support" + } + { + "_id": "SymPy-2.1", + "amount": 3000.0, + "begin_date": "2019-06-01", + "cpp_info": { + "cppflag": true, + "institution": "Columbia University", + "other_agencies_submitted": "None", + "person_months_academic": 0, + "person_months_summer": 1, + "project_scope": "" + }, + "currency": "USD", + "end_date": "2030-12-31", + "pi": "sbillinge", + "status": "accepted", + "team": [ + { + "institution": "University of 2.1", + "name": "Anthony Scopatz 2.1", + "position": "pi" + } + ], + "title": "SymPy 2.1 Release Support" + } + { + "_id": "abc42", + "amount": 42000.0, + "begin_date": "2020-06-01", + "cpp_info": { + "cppflag": true, + "institution": "Columbia University", + "other_agencies_submitted": "None", + "person_months_academic": 0, + "person_months_summer": 1, + "project_scope": "" + }, + "currency": "USD", + "end_date": "2020-12-31", + "pi": "sbillinge", + "status": "submitted", + "title": "The answer to life, the universe, and everything" + } + { + "_id": "dmref15", + "amount": 982785.0, + "authors": [ + "qdu", + "dhsu", + "sbillinge" + ], + "begin_day": 1, + "begin_month": "May", + "begin_year": 2018, + "call_for_proposals": "http://www.nsf.gov/pubs/2014/nsf14591/nsf14591.htm", + "cpp_info": { + "cppflag": true, + "institution": "Columbia University", + "other_agencies_submitted": "None", + "person_months_academic": 0, + "person_months_summer": 1, + "project_scope": "lots to do but it doesn't overlap with any other of my grants", + "single_pi": true + }, + "currency": "USD", + "duration": 3, + "end_day": 1, + "end_month": "May", + "end_year": 2019, + "funder": "NSF", + "notes": "Quite an idea", + "pi": "Simon Billinge", + "status": "accepted", + "submitted_date": "2015-02-02", + "team": [ + { + "institution": "Columbia University", + "name": "qdu", + "position": "copi" + }, + { + "institution": "Columbia University", + "name": "dhsu", + "position": "copi" + }, + { + "institution": "Columbia University", + "name": "sbillinge", + "position": "pi", + "subaward_amount": 330000.0 + } + ], + "title": "DMREF: Novel, data validated, nanostructure determination methods for accelerating materials discovery", + "title_short": "DMREF nanostructure" + } + { + "_id": "mypropsal", + "amount": 1000000.0, + "authors": [ + "Anthony Scopatz", + "Robert Flanagan" + ], + "begin_day": 1, + "begin_month": "May", + "begin_year": 2030, + "currency": "USD", + "duration": 3, + "end_day": 31, + "end_month": "December", + "end_year": 2030, + "full": { + "benefit_of_collaboration": "http://pdf.com/benefit_of_collaboration", + "cv": [ + "http://pdf.com/scopatz-cv", + "http://pdf.com/flanagan-cv" + ], + "narrative": "http://some.com/pdf" + }, + "notes": "Quite an idea", + "pi": "Anthony Scopatz", + "pre": { + "benefit_of_collaboration": "http://pdf.com/benefit_of_collaboration", + "cv": [ + "http://pdf.com/scopatz-cv", + "http://pdf.com/flanagan-cv" + ], + "day": 2, + "month": "Aug", + "narrative": "http://some.com/pdf", + "year": 1998 + }, + "status": "submitted", + "submitted_day": 18, + "submitted_month": "Aug", + "submitted_year": 1999, + "title": "A very fine proposal indeed" + } diff --git a/doc/source/collections/reading_lists.rst b/doc/source/collections/reading_lists.rst new file mode 100644 index 000000000..697711bf7 --- /dev/null +++ b/doc/source/collections/reading_lists.rst @@ -0,0 +1,90 @@ +Reading_Lists +============= +Reading lists consist of doi's or urls of items and a brief synopsis of why they are interesting + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, Unique identifier for the reading list., required +:date: ['date', 'string'], date the list was edited, optional +:day: integer, The day the list was edited, optional +:month: ['integer', 'string'], The month the list was edited, optional +:papers: list, The list of items that are in the list, required + + :type: dict, optional + + :doi: string, the doi of the paper. If it doesn't have one put 'na', optional + :text: string, the description of why the item is important or interesting, optional + :url: string, the url of the item if it has one, optional +:purpose: string, The purpose or target audience for the list, optional +:title: string, The title of the list, required +:year: integer, The day the list was edited, optional + + +YAML Example +------------ + +.. code-block:: yaml + + african_swallows: + date: '2019-12-01' + papers: + - doi: 10.1107/97809553602060000935 + text: Very basic, but brief, intro to african swallows + title: A step-by-step pathway towards african swallow understanding. + getting_started_with_pdf: + day: 15 + month: 12 + papers: + - doi: 10.1107/97809553602060000935 + text: Very basic, but brief, intro to powder diffraction in general + - doi: 10.1039/9781847558237-00464 + text: Lightest weight overview of PDF analysis around. Good starting point + - text: Download and install PDFgui software and run through the step by step + tutorial under the help tab + url: http://www.diffpy.org + purpose: Beginning reading about PDF + title: A step-by-step pathway towards PDF understanding. It is recommended to read + the papers in the order they are listed here. + year: 2019 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "african_swallows", + "date": "2019-12-01", + "papers": [ + { + "doi": "10.1107/97809553602060000935", + "text": "Very basic, but brief, intro to african swallows" + } + ], + "title": "A step-by-step pathway towards african swallow understanding." + } + { + "_id": "getting_started_with_pdf", + "day": 15, + "month": 12, + "papers": [ + { + "doi": "10.1107/97809553602060000935", + "text": "Very basic, but brief, intro to powder diffraction in general" + }, + { + "doi": "10.1039/9781847558237-00464", + "text": "Lightest weight overview of PDF analysis around. Good starting point" + }, + { + "text": "Download and install PDFgui software and run through the step by step tutorial under the help tab", + "url": "http://www.diffpy.org" + } + ], + "purpose": "Beginning reading about PDF", + "title": "A step-by-step pathway towards PDF understanding. It is recommended to read the papers in the order they are listed here.", + "year": 2019 + } diff --git a/doc/source/collections/refereeReports.rst b/doc/source/collections/refereeReports.rst new file mode 100644 index 000000000..66f92f424 --- /dev/null +++ b/doc/source/collections/refereeReports.rst @@ -0,0 +1,191 @@ +Refereereports +============== +This is a collection of information that will be be used to build a referee report. This should probably be private. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, the ID, required +:claimed_found_what: list, What the authors claim to have found, required + + :type: string, required +:claimed_why_important: list, What importance the authors claim, required + + :type: string, required +:did_how: list, How the study was done, required + + :type: string, required +:did_what: list, What the study was, required + + :type: string, required +:due_date: ['string', 'date'], date the review is due in ISO format, required +:editor_eyes_only: string, Comments you don't want passed to the author, optional +:final_assessment: list, Summary of impressions of the study, required + + :type: string, required +:first_author_last_name: string, Last name of first author will be referred to with et al., required +:freewrite: string, Things that you want to add that don't fit into any category above, optional +:institutions: ['string', 'list'], the institutions of the pi and co-pis, optional +:journal: string, name of the journal, required +:month: ['integer', 'string'], The month the review was requested, optional +:recommendation: string, Your publication recommendation, required + + Allowed values: + * reject + * asis + * smalledits + * diffjournal + * majoredits +:requester: string, Name of the program officer who requested the review, required +:reviewer: string, name of person reviewing the paper, required +:status: string, Where you are with the review, required + + Allowed values: + * invited + * accepted + * declined + * downloaded + * inprogress + * submitted + * cancelled +:submitted_date: ['string', 'date'], submitted date in ISO YYYY-MM-DD format., optional +:title: string, title of the paper under review, required +:validity_assessment: list, List of impressions of the validity of the claims, required + + :type: string, required +:year: ['string', 'integer'], year when the review is being done, required + + +YAML Example +------------ + +.. code-block:: yaml + + 1902nature: + claimed_found_what: + - gravity waves + claimed_why_important: + - more money for ice cream + did_how: + - measured with a ruler + did_what: + - found a much cheaper way to measure gravity waves + due_date: '2020-04-11' + editor_eyes_only: to be honest, I don't believe a word of it + final_assessment: + - The authors should really start over + first_author_last_name: Wingit + freewrite: this comment didn't fit anywhere above + journal: Nature + month: jun + recommendation: reject + requester: Max Planck + reviewer: sbillinge + status: submitted + submitted_date: '2019-01-01' + title: a ruler approach to measuring gravity waves + validity_assessment: + - complete rubbish + year: 2019 + 2002nature: + claimed_found_what: + - more gravity waves + claimed_why_important: + - even more money for ice cream + did_how: + - measured with a ruler + did_what: + - found an even cheaper way to measure gravity waves + due_date: '2021-04-11' + editor_eyes_only: to be honest, I don't believe a word of it + final_assessment: + - The authors should really start over + first_author_last_name: Wingit + freewrite: this comment didn't fit anywhere above + journal: Nature + month: jun + recommendation: reject + requester: Max Planck + reviewer: sbillinge + status: accepted + submitted_date: '2020-01-01' + title: an even smaller ruler approach to measuring gravity waves + validity_assessment: + - complete rubbish + year: 2020 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "1902nature", + "claimed_found_what": [ + "gravity waves" + ], + "claimed_why_important": [ + "more money for ice cream" + ], + "did_how": [ + "measured with a ruler" + ], + "did_what": [ + "found a much cheaper way to measure gravity waves" + ], + "due_date": "2020-04-11", + "editor_eyes_only": "to be honest, I don't believe a word of it", + "final_assessment": [ + "The authors should really start over" + ], + "first_author_last_name": "Wingit", + "freewrite": "this comment didn't fit anywhere above", + "journal": "Nature", + "month": "jun", + "recommendation": "reject", + "requester": "Max Planck", + "reviewer": "sbillinge", + "status": "submitted", + "submitted_date": "2019-01-01", + "title": "a ruler approach to measuring gravity waves", + "validity_assessment": [ + "complete rubbish" + ], + "year": 2019 + } + { + "_id": "2002nature", + "claimed_found_what": [ + "more gravity waves" + ], + "claimed_why_important": [ + "even more money for ice cream" + ], + "did_how": [ + "measured with a ruler" + ], + "did_what": [ + "found an even cheaper way to measure gravity waves" + ], + "due_date": "2021-04-11", + "editor_eyes_only": "to be honest, I don't believe a word of it", + "final_assessment": [ + "The authors should really start over" + ], + "first_author_last_name": "Wingit", + "freewrite": "this comment didn't fit anywhere above", + "journal": "Nature", + "month": "jun", + "recommendation": "reject", + "requester": "Max Planck", + "reviewer": "sbillinge", + "status": "accepted", + "submitted_date": "2020-01-01", + "title": "an even smaller ruler approach to measuring gravity waves", + "validity_assessment": [ + "complete rubbish" + ], + "year": 2020 + } diff --git a/doc/source/collections/software.rst b/doc/source/collections/software.rst new file mode 100644 index 000000000..f70a9da4e --- /dev/null +++ b/doc/source/collections/software.rst @@ -0,0 +1,47 @@ +Software +======== +Information about software, such as active, grants, etc. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, package id, required +:active: boolean, the status whether the package is actively maintained or not., required +:grants: list, grant(s) that supported package development/maintenance, required +:groups: list, research group(s) that develop the package., required +:url: string, url to the package on GitHub or GitLab, etc., required + + +YAML Example +------------ + +.. code-block:: yaml + + unique-package-id: + active: true + grants: + - dmref15 + - SymPy-1.1 + groups: + - ergs + url: https://github.com/diffpy/diffpy.utils + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "unique-package-id", + "active": true, + "grants": [ + "dmref15", + "SymPy-1.1" + ], + "groups": [ + "ergs" + ], + "url": "https://github.com/diffpy/diffpy.utils" + } diff --git a/doc/source/collections/students.rst b/doc/source/collections/students.rst new file mode 100644 index 000000000..04d886669 --- /dev/null +++ b/doc/source/collections/students.rst @@ -0,0 +1,41 @@ +Students +======== +This is a collection of student names and metadata. This should probably be private. + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, short representation, such as this-is-my-name, required +:aka: ['list', 'string'], list of aliases, optional + + :type: string, optional +:email: string, email address, optional +:university_id: string, The university identifier for the student, optional + + +YAML Example +------------ + +.. code-block:: yaml + + Human A. Person: + aka: + - H. A. Person + email: haperson@uni.edu + university_id: HAP42 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "Human A. Person", + "aka": [ + "H. A. Person" + ], + "email": "haperson@uni.edu", + "university_id": "HAP42" + } diff --git a/doc/source/collections/todos.rst b/doc/source/collections/todos.rst new file mode 100644 index 000000000..5aba00708 --- /dev/null +++ b/doc/source/collections/todos.rst @@ -0,0 +1,120 @@ +Todos +===== +This is a collection of todo items + +Schema +------ +The following lists key names mapped to its type and meaning for each entry. + +:_id: string, the person to whom these todos are applied.this should be the id of a person from people, required +:todos: list, a list of the todo tasks, optional + + :type: dict, optional + + :uuid: string, a universally unique id for the task so it can be referenced elsewhere, optional + :assigned_by: string, ID of the member that assigns the task, optional + :begin_date: ['string', 'date'], the begin date, optional + :end_date: ['string', 'date'], the end date, optional + :deadline: boolean, true if the due date is a hard deadline, optional + :description: string, the description of the to-do task, optional + :due_date: ['string', 'date'], the due date, optional + :duration: float, the size of the task/ the estimated duration it will take to finish the task. Unit: miniutes., optional + :importance: integer, the importance, from 0 to 3, optional + :status: string, the status: started/finished/cancelled, optional + + Allowed values: + * started + * finished + * cancelled + * paused + :notes: list, additional notes for this task, optional + + :type: string, optional + :running_index: integer, Index of a certain task used to update that task in the enumerated todo list., optional + :tags: list, user-defined tags that can be used to filter tasks, optional + + +YAML Example +------------ + +.. code-block:: yaml + + ascopatz: {} + sbillinge: + todos: + - assigned_by: scopatz + begin_date: '2020-06-15' + deadline: true + description: read paper + due_date: '2020-07-19' + duration: 60.0 + importance: 2 + running_index: 1 + status: started + tags: + - reading + - downtime + uuid: 1saefadf-wdaagea2 + - assigned_by: sbillinge + begin_date: '2020-06-22' + description: prepare the presentation + due_date: '2020-07-29' + duration: 30.0 + importance: 0 + notes: + - about 10 minutes + - don't forget to upload to the website + running_index: 2 + status: started + tags: + - downtime + uuid: 2saefadf-wdaagea3 + + +JSON/Mongo Example +------------------ + +.. code-block:: json + + { + "_id": "ascopatz" + } + { + "_id": "sbillinge", + "todos": [ + { + "assigned_by": "scopatz", + "begin_date": "2020-06-15", + "deadline": true, + "description": "read paper", + "due_date": "2020-07-19", + "duration": 60.0, + "importance": 2, + "running_index": 1, + "status": "started", + "tags": [ + "reading", + "downtime" + ], + "uuid": "1saefadf-wdaagea2" + }, + { + "assigned_by": "sbillinge", + "begin_date": "2020-06-22", + "description": "prepare the presentation", + "due_date": "2020-07-29", + "duration": 30.0, + "importance": 0, + "notes": [ + "about 10 minutes", + "don't forget to upload to the website" + ], + "running_index": 2, + "status": "started", + "tags": [ + "downtime" + ], + "uuid": "2saefadf-wdaagea3" + } + ] + } diff --git a/doc/source/commands/add.rst b/doc/source/commands/add.rst new file mode 100644 index 000000000..9a2963cdf --- /dev/null +++ b/doc/source/commands/add.rst @@ -0,0 +1,14 @@ +add +=== + +.. code-block:: bash + + usage: regolith add [-h] db coll documents [documents ...] + + positional arguments: + db database name + coll collection name + documents documents, in JSON / mongodb format + + options: + -h, --help show this help message and exit diff --git a/doc/source/commands/app.rst b/doc/source/commands/app.rst new file mode 100644 index 000000000..a1d4e3fde --- /dev/null +++ b/doc/source/commands/app.rst @@ -0,0 +1,10 @@ +app +=== + +.. code-block:: bash + + usage: regolith app [-h] [--debug] + + options: + -h, --help show this help message and exit + --debug starts server in debug mode diff --git a/doc/source/commands/build.rst b/doc/source/commands/build.rst new file mode 100644 index 000000000..a518ff486 --- /dev/null +++ b/doc/source/commands/build.rst @@ -0,0 +1,26 @@ +build +===== + +.. code-block:: bash + + usage: regolith build [-h] [--no-pdf] [--from FROM_DATE] [--to TO_DATE] + [--grants GRANTS [GRANTS ...]] + [--people PEOPLE [PEOPLE ...]] + [--kwargs KWARGS [KWARGS ...]] + build_targets [build_targets ...] + + positional arguments: + build_targets targets to build. Currently valid targets are: + ['annual-activity', 'beamplan', 'current-pending', 'cv', 'figure', 'formalletter', 'grade', 'grades', 'grant-report', 'html', 'internalhtml', 'postdocad', 'preslist', 'publist', 'reading-lists', 'reimb', 'recent-collabs', 'resume', 'review-man', 'review-prop'] + + options: + -h, --help show this help message and exit + --no-pdf don't produce PDFs during the build (for builds which produce PDFs) + --from FROM_DATE date in form YYYY-MM-DD. Items will only be built if their date or end_date is equal or after this date + --to TO_DATE date in form YYYY-MM-DD. Items will only be built if their date or begin_date is equal or before this date + --grants GRANTS [GRANTS ...] + specify a grant or a space-separated list of grants so items are built only if associated with this(these) grant(s) + --people PEOPLE [PEOPLE ...] + specify a person or a space-separated list of people such that the build will be for only those people + --kwargs KWARGS [KWARGS ...] + pass a specific command to build a specific task if it exists diff --git a/doc/source/commands/classlist.rst b/doc/source/commands/classlist.rst new file mode 100644 index 000000000..dfd908d45 --- /dev/null +++ b/doc/source/commands/classlist.rst @@ -0,0 +1,21 @@ +classlist +========= + +.. code-block:: bash + + usage: regolith classlist [-h] [-f FORMAT] [-d] [--db DB] + op filename course_id + + positional arguments: + op operatation to perform, such as "add" or "replace". + filename file to read class information from. + course_id course identifier whose registry should be updated + + options: + -h, --help show this help message and exit + -f FORMAT, --format FORMAT + file / school format to read information from. Current + values are "json" and "usc". Determined from extension + if not available. + -d, --dry-run only does a dry run and reports results + --db DB database name diff --git a/doc/source/commands/deploy.rst b/doc/source/commands/deploy.rst new file mode 100644 index 000000000..72dfea86e --- /dev/null +++ b/doc/source/commands/deploy.rst @@ -0,0 +1,9 @@ +deploy +====== + +.. code-block:: bash + + usage: regolith deploy [-h] + + options: + -h, --help show this help message and exit diff --git a/doc/source/commands/email.rst b/doc/source/commands/email.rst new file mode 100644 index 000000000..ed2b8a973 --- /dev/null +++ b/doc/source/commands/email.rst @@ -0,0 +1,23 @@ +email +===== + +.. code-block:: bash + + usage: regolith email [-h] [--to TO] [--subject SUBJECT] [--body BODY] + [--attach ATTACHMENTS [ATTACHMENTS ...]] + [-c COURSE_IDS [COURSE_IDS ...]] [--db DB] + email_target + + positional arguments: + email_target targets to email, eg "test" or "grades". + + options: + -h, --help show this help message and exit + --to TO receiver of email + --subject SUBJECT email subject line + --body BODY email body, as restructured text + --attach ATTACHMENTS [ATTACHMENTS ...] + attachments to send along as well. + -c COURSE_IDS [COURSE_IDS ...], --course-id COURSE_IDS [COURSE_IDS ...] + course identifier that should be emailed. + --db DB database name diff --git a/doc/source/commands/fs-to-mongo.rst b/doc/source/commands/fs-to-mongo.rst index d81563884..32a335896 100644 --- a/doc/source/commands/fs-to-mongo.rst +++ b/doc/source/commands/fs-to-mongo.rst @@ -1,25 +1,12 @@ fs-to-mongo -======== -This command is used to port collections from the filesystem to either a local -or remote mongo cluster on a specific database. The following codeblock can be -utilized as the body of a regolithrc.json file in the local directory adjacent -to a db directory containing json or yaml files. This specific setup is used to -export to a remote atlas cluster (as indicated by the +srv). In order to do so, -the text encapsulated by the <> brackets must be completed for your application. +=========== -This functionality relies on the subprocess calls to a locally running mongo -instance regardless of whether or not the user is importing to a local or remote -instance. This can be downloaded from the following link: -https://www.mongodb.com/try/download/community +.. code-block:: bash -.. code-block:: JSON -{"groupname": "Example Group Name", - "databases": [ - "name": "", - "dst_url": "mongodb+srv://:@.uc5ro.mongodb.net/?w=majority", - "url": "..", - "public": false, - "path": "db", - "local": true} - ] -} + usage: regolith fs-to-mongo [-h] [--host HOST] + + options: + -h, --help show this help message and exit + --host HOST Specifies a resolvable hostname for the mongod to which to + connect. By default, the mongoimport attempts to connect to a + MongoDB instance running on the localhost on port number 27017. diff --git a/doc/source/commands/grade.rst b/doc/source/commands/grade.rst new file mode 100644 index 000000000..9af4e053f --- /dev/null +++ b/doc/source/commands/grade.rst @@ -0,0 +1,10 @@ +grade +===== + +.. code-block:: bash + + usage: regolith grade [-h] [--debug] + + options: + -h, --help show this help message and exit + --debug starts server in debug mode diff --git a/doc/source/commands/helper.rst b/doc/source/commands/helper.rst new file mode 100644 index 000000000..bab066186 --- /dev/null +++ b/doc/source/commands/helper.rst @@ -0,0 +1,9 @@ +helper +====== + +.. code-block:: bash + + usage: regolith helper [-h] + + options: + -h, --help show this help message and exit diff --git a/doc/source/commands/index.html b/doc/source/commands/index.html new file mode 100644 index 000000000..cba2d130c --- /dev/null +++ b/doc/source/commands/index.html @@ -0,0 +1,421 @@ + + + + + + +Regolith Commands + + + +
+ +

Regolith Commands

+ +

Shell commands for regolith

+
+usage: regolith [-h]
+                {rc,add,ingest,store,app,grade,build,deploy,email,classlist,json-to-yaml,yaml-to-json,validate}
+                ...
+
+options:
+  -h, --help            show this help message and exit
+
+cmd:
+  {rc,add,ingest,store,app,grade,build,deploy,email,classlist,json-to-yaml,yaml-to-json,validate}
+    rc                  prints run control
+    add                 adds a record to a database and collection
+    ingest              ingest many records from a foreign resource into a
+                        database
+    store               stores a file into the appropriate storage location.
+    app                 starts up a flask app for inspecting and modifying
+                        regolith data.
+    grade               starts up a flask app for adding grades to the
+                        database.
+    build               builds various available targets
+    deploy              deploys what was built by regolith
+    email               automates emailing
+    classlist           updates classlist information from file
+    json-to-yaml        Converts files from JSON to YAML
+    yaml-to-json        Converts files from YAML to JSON
+    validate            Validates db
+
+
+

System Message: ERROR/3 (/Users/huarundong/dbs/regolith/doc/source/commands/index.rst, line 38)

+

Unknown directive type "toctree".

+
+.. toctree::
+    :maxdepth: 1
+
+    add
+    app
+    build
+    classlist
+    deploy
+    email
+    grade
+    ingest
+    fs-to-mongo
+    json-to-yaml
+    rc
+    store
+    validate
+    yaml-to-json
+
+
+
+ + diff --git a/doc/source/commands/index.rst b/doc/source/commands/index.rst index 09bf61f88..94c314dde 100644 --- a/doc/source/commands/index.rst +++ b/doc/source/commands/index.rst @@ -7,15 +7,17 @@ Shell commands for regolith .. code-block:: bash - usage: regolith [-h] - {rc,add,ingest,store,app,grade,build,helper,deploy,email,classlist,json-to-yaml,yaml-to-json,validate} + usage: regolith [-h] [--version] + {helper,rc,add,ingest,store,app,grade,build,deploy,email,classlist,json-to-yaml,yaml-to-json,mongo-to-fs,fs-to-mongo,validate} ... - optional arguments: + options: -h, --help show this help message and exit + --version cmd: - {rc,add,ingest,store,app,grade,build,deploy,email,classlist,json-to-yaml,yaml-to-json,validate} + {helper,rc,add,ingest,store,app,grade,build,deploy,email,classlist,json-to-yaml,yaml-to-json,mongo-to-fs,fs-to-mongo,validate} + helper runs an available helper target rc prints run control add adds a record to a database and collection ingest ingest many records from a foreign resource into a @@ -26,21 +28,23 @@ Shell commands for regolith grade starts up a flask app for adding grades to the database. build builds various available targets - helper runs an available helper target deploy deploys what was built by regolith email automates emailing classlist updates classlist information from file json-to-yaml Converts files from JSON to YAML - yaml-to-json Converts files from YAML to JSON - fs-to-mongo Import database from filesystem to mongodb. By - default, the database will be import to the local - mongodb. The database can also be imported to the - destination specified by the 'database':'dst_url' key. - For this to work, ensure that the username, password, - and database are included in the dst_url, and that - local is set to true. - validate Validates db - + yaml-to-json Converts files from YAML to JSON + mongo-to-fs Backup database from mongodb to filesystem as json. + The database will be imported to the destination + specified by the 'database':'dst_url' key. For this to + work, ensure that the database is included in the + dst_url, and that local is set to true. + fs-to-mongo Import database from filesystem to mongodb. By + default, the database will be import to the local + mongodb. The database can also be imported to the + destination specified by the 'database':'dst_url' key. + For this to work, ensure that the database is included + in the dst_url, and that local is set to true. + validate Validates db @@ -50,13 +54,15 @@ Shell commands for regolith add app build - helper classlist deploy email + fs-to-mongo grade + helper ingest json-to-yaml + mongo-to-fs rc store validate diff --git a/doc/source/commands/ingest.rst b/doc/source/commands/ingest.rst new file mode 100644 index 000000000..a0e8b6bb3 --- /dev/null +++ b/doc/source/commands/ingest.rst @@ -0,0 +1,15 @@ +ingest +====== + +.. code-block:: bash + + usage: regolith ingest [-h] [--coll COLL] db filename + + positional arguments: + db database name + filename file to ingest. Currently valid formats are: ['.bib'] + + options: + -h, --help show this help message and exit + --coll COLL collection name, if this is not given it is infered from the + file type or file name. diff --git a/doc/source/commands/json-to-yaml.rst b/doc/source/commands/json-to-yaml.rst new file mode 100644 index 000000000..c4da3e4d3 --- /dev/null +++ b/doc/source/commands/json-to-yaml.rst @@ -0,0 +1,12 @@ +json-to-yaml +============ + +.. code-block:: bash + + usage: regolith json-to-yaml [-h] files [files ...] + + positional arguments: + files file names to convert + + options: + -h, --help show this help message and exit diff --git a/doc/source/commands/mongo-to-fs.rst b/doc/source/commands/mongo-to-fs.rst new file mode 100644 index 000000000..a152c44f7 --- /dev/null +++ b/doc/source/commands/mongo-to-fs.rst @@ -0,0 +1,12 @@ +mongo-to-fs +=========== + +.. code-block:: bash + + usage: regolith mongo-to-fs [-h] [--host HOST] + + options: + -h, --help show this help message and exit + --host HOST Specifies a resolvable hostname for the mongod to which to + connect. By default, the mongoexport attempts to connect to a + MongoDB instance running on the localhost on port number 27017. diff --git a/doc/source/commands/rc.rst b/doc/source/commands/rc.rst new file mode 100644 index 000000000..42e30f88d --- /dev/null +++ b/doc/source/commands/rc.rst @@ -0,0 +1,9 @@ +rc +== + +.. code-block:: bash + + usage: regolith rc [-h] + + options: + -h, --help show this help message and exit diff --git a/doc/source/commands/store.rst b/doc/source/commands/store.rst new file mode 100644 index 000000000..64040e83c --- /dev/null +++ b/doc/source/commands/store.rst @@ -0,0 +1,14 @@ +store +===== + +.. code-block:: bash + + usage: regolith store [-h] [-f] storename documents [documents ...] + + positional arguments: + storename storage name + documents paths to documents, i.e. PDFs, images, etc. + + options: + -h, --help show this help message and exit + -f, --force forces copy of file if one of the same name already exists diff --git a/doc/source/commands/validate.rst b/doc/source/commands/validate.rst index a826e64d9..710f8763a 100644 --- a/doc/source/commands/validate.rst +++ b/doc/source/commands/validate.rst @@ -5,7 +5,7 @@ validate usage: regolith validate [-h] [--collection COLLECTION] - optional arguments: + options: -h, --help show this help message and exit --collection COLLECTION If provided only validate that collection diff --git a/doc/source/commands/yaml-to-json.rst b/doc/source/commands/yaml-to-json.rst new file mode 100644 index 000000000..8a73b25f0 --- /dev/null +++ b/doc/source/commands/yaml-to-json.rst @@ -0,0 +1,12 @@ +yaml-to-json +============ + +.. code-block:: bash + + usage: regolith yaml-to-json [-h] files [files ...] + + positional arguments: + files file names to convert + + options: + -h, --help show this help message and exit diff --git a/doc/source/conf.py b/doc/source/conf.py index 5f7abb709..e6e99d585 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -19,11 +19,16 @@ import cloud_sptheme as csp +import regolith from regolith import __version__ as REGOLITH_VERSION from regolith.fsclient import _id_key, dump_json, json_to_yaml from regolith.main import CONNECTED_COMMANDS, DISCONNECTED_COMMANDS from regolith.schemas import EXEMPLARS, SCHEMAS +autodoc_mock_imports = [ + regolith, +] + # 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. @@ -113,7 +118,7 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -html_theme = "redcloud" +html_theme = "sphinx_rtd_theme" # html_theme = 'blackcloud' # Theme options are theme-specific and customize the look and feel of a theme diff --git a/src/regolith/schemas.json b/src/regolith/schemas.json index a9488d731..e2dea6d7f 100644 --- a/src/regolith/schemas.json +++ b/src/regolith/schemas.json @@ -2877,6 +2877,7 @@ } }, "software": { + "_description": {"description": "Information about software, such as active, grants, etc."}, "_id": { "description": "package id", "required": true,