From 280b3b4abfa04e4269a9f9108101daa5006fd360 Mon Sep 17 00:00:00 2001 From: Valerio Mariani <valerio.mariani@desy.de> Date: Tue, 13 Aug 2019 14:20:07 +0200 Subject: [PATCH] Updated documentation --- cfelpyutils/geometry_utils.py | 30 ++-- cfelpyutils/named_tuples.py | 2 +- docs/.buildinfo | 2 +- docs/_modules/cfelpyutils/crystfel_utils.html | 1 + docs/_modules/cfelpyutils/geometry_utils.html | 31 ++-- docs/_modules/cfelpyutils/named_tuples.html | 3 +- docs/_modules/index.html | 1 + ...tation_guidelines_for_contributors.rst.txt | 79 ++++++++++ docs/_sources/index.rst.txt | 45 +++++- docs/cfelpyutils.crystfel_utils.html | 1 + docs/cfelpyutils.geometry_utils.html | 31 ++-- docs/cfelpyutils.html | 1 + docs/cfelpyutils.named_tuples.html | 5 +- ...mentation_guidelines_for_contributors.html | 146 ++++++++++++++++++ docs/genindex.html | 1 + docs/index.html | 36 ++++- docs/objects.inv | Bin 469 -> 508 bytes docs/py-modindex.html | 1 + docs/search.html | 1 + docs/searchindex.js | 2 +- .../cfelpyutils.geometry_utils.doctree | Bin 30154 -> 30224 bytes .../doctrees/cfelpyutils.named_tuples.doctree | Bin 14526 -> 14469 bytes ...tation_guidelines_for_contributors.doctree | Bin 0 -> 19892 bytes docs_src/_build/doctrees/environment.pickle | Bin 51599 -> 54740 bytes docs_src/_build/doctrees/index.doctree | Bin 6796 -> 12227 bytes docs_src/_build/html/.buildinfo | 2 +- .../_modules/cfelpyutils/crystfel_utils.html | 1 + .../_modules/cfelpyutils/geometry_utils.html | 31 ++-- .../_modules/cfelpyutils/named_tuples.html | 3 +- docs_src/_build/html/_modules/index.html | 1 + ...tation_guidelines_for_contributors.rst.txt | 79 ++++++++++ docs_src/_build/html/_sources/index.rst.txt | 45 +++++- .../html/cfelpyutils.crystfel_utils.html | 1 + .../html/cfelpyutils.geometry_utils.html | 31 ++-- docs_src/_build/html/cfelpyutils.html | 1 + .../_build/html/cfelpyutils.named_tuples.html | 5 +- ...mentation_guidelines_for_contributors.html | 146 ++++++++++++++++++ docs_src/_build/html/genindex.html | 1 + docs_src/_build/html/index.html | 36 ++++- docs_src/_build/html/objects.inv | Bin 469 -> 508 bytes docs_src/_build/html/py-modindex.html | 1 + docs_src/_build/html/search.html | 1 + docs_src/_build/html/searchindex.js | 2 +- docs_src/conf.py | 1 + ...umentation_guidelines_for_contributors.rst | 79 ++++++++++ docs_src/index.rst | 45 +++++- 46 files changed, 811 insertions(+), 120 deletions(-) create mode 100644 docs/_sources/documentation_guidelines_for_contributors.rst.txt create mode 100644 docs/documentation_guidelines_for_contributors.html create mode 100644 docs_src/_build/doctrees/documentation_guidelines_for_contributors.doctree create mode 100644 docs_src/_build/html/_sources/documentation_guidelines_for_contributors.rst.txt create mode 100644 docs_src/_build/html/documentation_guidelines_for_contributors.html create mode 100644 docs_src/documentation_guidelines_for_contributors.rst diff --git a/cfelpyutils/geometry_utils.py b/cfelpyutils/geometry_utils.py index 7bf386b..0efdb03 100644 --- a/cfelpyutils/geometry_utils.py +++ b/cfelpyutils/geometry_utils.py @@ -34,10 +34,10 @@ def compute_pix_maps(geometry): This function takes as input some geometry information read from a `CrystFEL <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and - returns a set of some pre-computed pixel maps. + returns a set of pre-computed pixel maps. - The origin and the orientation of the reference system for the pixel maps follow - the same conventions as in CrystFEL: + The origin and the orientation of the reference system for the pixel maps are set + according to the same conventions as CrystFEL: * The center of the reference system is the beam interaction point. @@ -133,8 +133,8 @@ def compute_visualization_pix_maps(geometry): This function takes as input some geometry information read from a `CrystFEL <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and - returns a set of some pre-computed pixel maps that can be used to display data in - an ImageView widget from the `PyQtGraph <http://pyqtgraph.org/>`_ library. + returns a set of pre-computed pixel maps that can be used to display data in an + ImageView widget from the `PyQtGraph <http://pyqtgraph.org/>`_ library. These pixel maps are different from the ones generated by the :func:`~compute_pix_maps` function. The main differences are: @@ -142,8 +142,8 @@ def compute_visualization_pix_maps(geometry): * The origin of the reference system is not the beam interaction point, but the top left corner of the array used to visualize the data. - * Only the x and y pixel maps are available. The other entries in the named tuple - (z, r and phi) are set to None. + * Only the x and y pixel maps are available. The other entries in the returned + named tuple (z, r and phi) are set to None. Arguments: @@ -179,17 +179,17 @@ def apply_geometry_to_data(data, geometry): This function takes as input some geometry information read from a `CrystFEL <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and - some data on which to apply it. It returns an array that can be displayed using a - library like `matplotlib <https://matplotlib.org/>`_ or + some data on which to apply the information. It returns an array that can be + displayed using libraries like `matplotlib <https://matplotlib.org/>`_ or `PyQtGraph <http://pyqtgraph.org/>`_. - The shape of the returned array is big enough to display all the input pixel - values, and is symmetric around the center of the reference system (i.e: the beam - interaction point). + The shape of the returned array is big enough to display all the pixel values in + the input data, and is symmetric around the center of the reference system + (i.e: the beam interaction point). - NOTE: This restrictions often cause the returned array to be bigger than the minimum - size needed to store the physical layout of the pixels in the detector, - particularly if the detector is not centered at the beam interaction point. + This restrictions often cause the returned array to be bigger than the minimum size + needed to store the physical layout of the pixels in the detector, particularly if + the detector is not centered at the beam interaction point. Arguments: diff --git a/cfelpyutils/named_tuples.py b/cfelpyutils/named_tuples.py index dc75130..97d727b 100644 --- a/cfelpyutils/named_tuples.py +++ b/cfelpyutils/named_tuples.py @@ -37,5 +37,5 @@ Arguments: the reference system. phi (numpy.ndarray): pixel map storing the amplitude of the angle between each - pixel, the center of the reference system, and the x axis through the center. + pixel, the center of the reference system, and the x axis. """ diff --git a/docs/.buildinfo b/docs/.buildinfo index 07914e1..5c20a1a 100644 --- a/docs/.buildinfo +++ b/docs/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: fd8cf3500139e539a950fcaee26c3d53 +config: b2d79c21d77cd2b06bfb2cb4376d24d9 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/_modules/cfelpyutils/crystfel_utils.html b/docs/_modules/cfelpyutils/crystfel_utils.html index 8d1f451..f114828 100644 --- a/docs/_modules/cfelpyutils/crystfel_utils.html +++ b/docs/_modules/cfelpyutils/crystfel_utils.html @@ -703,6 +703,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/_modules/cfelpyutils/geometry_utils.html b/docs/_modules/cfelpyutils/geometry_utils.html index 479e596..61de150 100644 --- a/docs/_modules/cfelpyutils/geometry_utils.html +++ b/docs/_modules/cfelpyutils/geometry_utils.html @@ -69,10 +69,10 @@ <span class="sd"> This function takes as input some geometry information read from a `CrystFEL</span> <span class="sd"> <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and</span> -<span class="sd"> returns a set of some pre-computed pixel maps.</span> +<span class="sd"> returns a set of pre-computed pixel maps.</span> -<span class="sd"> The origin and the orientation of the reference system for the pixel maps follow</span> -<span class="sd"> the same conventions as in CrystFEL:</span> +<span class="sd"> The origin and the orientation of the reference system for the pixel maps are set</span> +<span class="sd"> according to the same conventions as CrystFEL:</span> <span class="sd"> * The center of the reference system is the beam interaction point.</span> @@ -168,8 +168,8 @@ <span class="sd"> This function takes as input some geometry information read from a `CrystFEL</span> <span class="sd"> <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and</span> -<span class="sd"> returns a set of some pre-computed pixel maps that can be used to display data in</span> -<span class="sd"> an ImageView widget from the `PyQtGraph <http://pyqtgraph.org/>`_ library.</span> +<span class="sd"> returns a set of pre-computed pixel maps that can be used to display data in an</span> +<span class="sd"> ImageView widget from the `PyQtGraph <http://pyqtgraph.org/>`_ library.</span> <span class="sd"> These pixel maps are different from the ones generated by the</span> <span class="sd"> :func:`~compute_pix_maps` function. The main differences are:</span> @@ -177,8 +177,8 @@ <span class="sd"> * The origin of the reference system is not the beam interaction point, but the top</span> <span class="sd"> left corner of the array used to visualize the data.</span> -<span class="sd"> * Only the x and y pixel maps are available. The other entries in the named tuple</span> -<span class="sd"> (z, r and phi) are set to None.</span> +<span class="sd"> * Only the x and y pixel maps are available. The other entries in the returned</span> +<span class="sd"> named tuple (z, r and phi) are set to None.</span> <span class="sd"> Arguments:</span> @@ -214,17 +214,17 @@ <span class="sd"> This function takes as input some geometry information read from a `CrystFEL</span> <span class="sd"> <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and</span> -<span class="sd"> some data on which to apply it. It returns an array that can be displayed using a</span> -<span class="sd"> library like `matplotlib <https://matplotlib.org/>`_ or </span> +<span class="sd"> some data on which to apply the information. It returns an array that can be</span> +<span class="sd"> displayed using libraries like `matplotlib <https://matplotlib.org/>`_ or</span> <span class="sd"> `PyQtGraph <http://pyqtgraph.org/>`_.</span> -<span class="sd"> The shape of the returned array is big enough to display all the input pixel</span> -<span class="sd"> values, and is symmetric around the center of the reference system (i.e: the beam</span> -<span class="sd"> interaction point).</span> +<span class="sd"> The shape of the returned array is big enough to display all the pixel values in</span> +<span class="sd"> the input data, and is symmetric around the center of the reference system</span> +<span class="sd"> (i.e: the beam interaction point).</span> -<span class="sd"> NOTE: This restrictions often cause the returned array to be bigger than the minimum</span> -<span class="sd"> size needed to store the physical layout of the pixels in the detector,</span> -<span class="sd"> particularly if the detector is not centered at the beam interaction point.</span> +<span class="sd"> This restrictions often cause the returned array to be bigger than the minimum size</span> +<span class="sd"> needed to store the physical layout of the pixels in the detector, particularly if</span> +<span class="sd"> the detector is not centered at the beam interaction point.</span> <span class="sd"> Arguments:</span> @@ -270,6 +270,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/_modules/cfelpyutils/named_tuples.html b/docs/_modules/cfelpyutils/named_tuples.html index 7649063..5c11e47 100644 --- a/docs/_modules/cfelpyutils/named_tuples.html +++ b/docs/_modules/cfelpyutils/named_tuples.html @@ -72,7 +72,7 @@ <span class="sd"> the reference system.</span> <span class="sd"> phi (numpy.ndarray): pixel map storing the amplitude of the angle between each</span> -<span class="sd"> pixel, the center of the reference system, and the x axis through the center.</span> +<span class="sd"> pixel, the center of the reference system, and the x axis.</span> <span class="sd">"""</span> </pre></div> @@ -94,6 +94,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/_modules/index.html b/docs/_modules/index.html index 0426bf5..a28cdf2 100644 --- a/docs/_modules/index.html +++ b/docs/_modules/index.html @@ -56,6 +56,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/_sources/documentation_guidelines_for_contributors.rst.txt b/docs/_sources/documentation_guidelines_for_contributors.rst.txt new file mode 100644 index 0000000..bcdb3cb --- /dev/null +++ b/docs/_sources/documentation_guidelines_for_contributors.rst.txt @@ -0,0 +1,79 @@ +Guidelines for Contributors +=========================== + +Contributions to the project are welcome. Please feel free to submit pull requests +using the standard `GitHub flow <https://guides.github.com/introduction/flow/>`_. + + +Version Control +^^^^^^^^^^^^^^^ + +The CFELPyUtils library is developed using the `Git <https://git-scm.com>`_ version +control system. + +It uses the branching strategy proposed by Vincent Driessen and commonly known as +`Gitflow <https://nvie.com/posts/a-successful-git-branching-model>`_. + + +Python +^^^^^^ + +The CFELPyUtils library is mainly developed in `Python <https://www.python.org>`_. + +* All code in the library must run with both version 2 and 3 of Python, except for + facility-specific code that specifically requires one of the two versions (for + example, Python 2 for the LCSL facility). The code must specifically support all the + currently active versions of python: + + * Python 2 + + * 2.7 + + * Python 3 + + * 3.5 + * 3.6 + * 3.7 + +* The `python-future <https://python-future.org>`_ project should be used to ensure + that code contributed to the project is compatible with all the supported versions of + Python. + +* The Python coding style should follow for the most part the `Google Python \ + Coding Style <https://github.com/google/styleguide/blob/gh-pages/pyguide.md>`_. + +* All docstrings should be written following the `Google Style \ + <https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html>`_. + +* `Pylint <https://www.pylint.org>`_ should be run on the code before + submission, as stated in the Google Python Coding Style Guide. In the root + folder of the CFELPyUtils repository, contributors can find a 'pylintrc' file with + the settings that should be applied when linting the code. Please see `here + <http://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=pylintrc>`_ how to + use the pylintrc file. + +* The `Black <https://github.com/psf/black>`_ Python code formatter should be run on + the code before submission. + + +C/C++ +^^^^^ + +Some extension can, for performance reason, be written using the `C++ +<https://en.wikipedia.org/wiki/C%2B%2B>`_ or `C +<https://en.wikipedia.org/wiki/C_(programming_language)>`_ programming languages. + +* All C++ code in OnDA must follow at most the C++98 ISO standard, and the code + must compile on a Linux RHEL7/CentOS7 platform using the standard development stack + that comes with these systems. + +* Part of the C++11 standard can be used when writing extensions. However, it must be + possible to compile the code using version 4.8 of the 'gcc' compiler (in order to + create the Linux binary Python wheel). + +* All C code in OnDA must follow at most the C99 ISO standard, and the code + must compile on a Linux RHEL7/CentOS7 platform using the standard development stack + that comes with these systems. + +* The `Cython <http://cython.org>`_ project should be used to interface C/C++ code with + Python. diff --git a/docs/_sources/index.rst.txt b/docs/_sources/index.rst.txt index 929f41c..a3b5c6e 100644 --- a/docs/_sources/index.rst.txt +++ b/docs/_sources/index.rst.txt @@ -10,6 +10,7 @@ CFELPyUtils :hidden: cfelpyutils + documentation_guidelines_for_contributors Introduction @@ -25,29 +26,57 @@ several internal and released CFEL software projects. Installation ------------ -The CFELPyUtils library is available on PyPI and can be installed using the pip -command: +The CFELPyUtils library is available on the `Python Package Index +<https://pypi.org/>`_ (PyPI). It can be installed using the 'pip' command: .. code-block:: bash python3 -m pip install cfelpyutils -Or, for python2: +Or, for Python 2: .. code-block:: bash - python -m pip install cfelpyutils + python2 -m pip install cfelpyutils - -It is also available as an Anaconda package in the 'ondateam' channel. It can be -installed using the 'conda' command: +It is also available as a package for the `Anaconda <https://anaconda.org/>`_ Python +distribution. It can be installed using the 'conda' command: .. code-block:: bash conda install -c ondateam cfelpyutils +The library can also be installed manually by checking out the repository and running: + +.. code-block:: bash + + python setup.py install + + +Authors +------- + +The CFELPyUtils library is currently developed in the lab of +`Henry Chapman <https://cid.cfel.de/>`_ at the Center For Free Electron Laser Science +in Hamburg. + +Many people from different institutions worlwide contribute code, testing and support +to the project: + +* **Valerio Mariani** (corresponding author: valerio.mariani@desy.de) +* Anton Barty +* Andrew Morgan +* Thomas A. White + Code Documentation ------------------ -Code documentation for the CFELPyUtils library can be found :doc:`here <cfelpyutils>`. \ No newline at end of file +Code documentation for the CFELPyUtils library can be found :doc:`here <cfelpyutils>`. + + +Guidelines for Contributors +--------------------------- + +Contributions to the projects are welcome. Please see the guidelines for contributors +:doc:`here <documentation_guidelines_for_contributors>`. \ No newline at end of file diff --git a/docs/cfelpyutils.crystfel_utils.html b/docs/cfelpyutils.crystfel_utils.html index d162d9e..58736df 100644 --- a/docs/cfelpyutils.crystfel_utils.html +++ b/docs/cfelpyutils.crystfel_utils.html @@ -95,6 +95,7 @@ file.</td> <li class="toctree-l2"><a class="reference internal" href="cfelpyutils.named_tuples.html">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/cfelpyutils.geometry_utils.html b/docs/cfelpyutils.geometry_utils.html index 77c72d0..a474102 100644 --- a/docs/cfelpyutils.geometry_utils.html +++ b/docs/cfelpyutils.geometry_utils.html @@ -43,9 +43,9 @@ <code class="descname">compute_pix_maps</code><span class="sig-paren">(</span><em>geometry</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/cfelpyutils/geometry_utils.html#compute_pix_maps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#cfelpyutils.geometry_utils.compute_pix_maps" title="Permalink to this definition">¶</a></dt> <dd><p>Computes pixel maps from CrystFEL geometry information.</p> <p>This function takes as input some geometry information read from a <a class="reference external" href="http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html">CrystFEL</a> file, and -returns a set of some pre-computed pixel maps.</p> -<p>The origin and the orientation of the reference system for the pixel maps follow -the same conventions as in CrystFEL:</p> +returns a set of pre-computed pixel maps.</p> +<p>The origin and the orientation of the reference system for the pixel maps are set +according to the same conventions as CrystFEL:</p> <ul class="simple"> <li>The center of the reference system is the beam interaction point.</li> <li>+z is the beam direction, and points along the beam (i.e. away from the source).</li> @@ -73,15 +73,15 @@ pixel maps.</td> <code class="descname">compute_visualization_pix_maps</code><span class="sig-paren">(</span><em>geometry</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/cfelpyutils/geometry_utils.html#compute_visualization_pix_maps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#cfelpyutils.geometry_utils.compute_visualization_pix_maps" title="Permalink to this definition">¶</a></dt> <dd><p>Computes pixel maps for data visualization from CrystFEL geometry information.</p> <p>This function takes as input some geometry information read from a <a class="reference external" href="http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html">CrystFEL</a> file, and -returns a set of some pre-computed pixel maps that can be used to display data in -an ImageView widget from the <a class="reference external" href="http://pyqtgraph.org/">PyQtGraph</a> library.</p> +returns a set of pre-computed pixel maps that can be used to display data in an +ImageView widget from the <a class="reference external" href="http://pyqtgraph.org/">PyQtGraph</a> library.</p> <p>These pixel maps are different from the ones generated by the <a class="reference internal" href="#cfelpyutils.geometry_utils.compute_pix_maps" title="cfelpyutils.geometry_utils.compute_pix_maps"><code class="xref py py-func docutils literal notranslate"><span class="pre">compute_pix_maps()</span></code></a> function. The main differences are:</p> <ul class="simple"> <li>The origin of the reference system is not the beam interaction point, but the top left corner of the array used to visualize the data.</li> -<li>Only the x and y pixel maps are available. The other entries in the named tuple -(z, r and phi) are set to None.</li> +<li>Only the x and y pixel maps are available. The other entries in the returned +named tuple (z, r and phi) are set to None.</li> </ul> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -103,15 +103,15 @@ the <a class="reference internal" href="cfelpyutils.crystfel_utils.html#cfelpyut <code class="descname">apply_geometry_to_data</code><span class="sig-paren">(</span><em>data</em>, <em>geometry</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/cfelpyutils/geometry_utils.html#apply_geometry_to_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#cfelpyutils.geometry_utils.apply_geometry_to_data" title="Permalink to this definition">¶</a></dt> <dd><p>Applies CrystFEL geometry information to some data.</p> <p>This function takes as input some geometry information read from a <a class="reference external" href="http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html">CrystFEL</a> file, and -some data on which to apply it. It returns an array that can be displayed using a -library like <a class="reference external" href="https://matplotlib.org/">matplotlib</a> or +some data on which to apply the information. It returns an array that can be +displayed using libraries like <a class="reference external" href="https://matplotlib.org/">matplotlib</a> or <a class="reference external" href="http://pyqtgraph.org/">PyQtGraph</a>.</p> -<p>The shape of the returned array is big enough to display all the input pixel -values, and is symmetric around the center of the reference system (i.e: the beam -interaction point).</p> -<p>NOTE: This restrictions often cause the returned array to be bigger than the minimum -size needed to store the physical layout of the pixels in the detector, -particularly if the detector is not centered at the beam interaction point.</p> +<p>The shape of the returned array is big enough to display all the pixel values in +the input data, and is symmetric around the center of the reference system +(i.e: the beam interaction point).</p> +<p>This restrictions often cause the returned array to be bigger than the minimum size +needed to store the physical layout of the pixels in the detector, particularly if +the detector is not centered at the beam interaction point.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> @@ -161,6 +161,7 @@ applied.</p> <li class="toctree-l2"><a class="reference internal" href="cfelpyutils.named_tuples.html">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/cfelpyutils.html b/docs/cfelpyutils.html index 24ffb50..e7a0d92 100644 --- a/docs/cfelpyutils.html +++ b/docs/cfelpyutils.html @@ -70,6 +70,7 @@ <li class="toctree-l2"><a class="reference internal" href="cfelpyutils.named_tuples.html">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/cfelpyutils.named_tuples.html b/docs/cfelpyutils.named_tuples.html index d992c10..377126c 100644 --- a/docs/cfelpyutils.named_tuples.html +++ b/docs/cfelpyutils.named_tuples.html @@ -16,6 +16,7 @@ <script type="text/javascript" src="_static/language_data.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="next" title="Guidelines for Contributors" href="documentation_guidelines_for_contributors.html" /> <link rel="prev" title="The geometry_utils Module" href="cfelpyutils.geometry_utils.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -54,7 +55,7 @@ library.</p> <li><strong>r</strong> (<em>numpy.ndarray</em>) – pixel map storing the distance of each pixel from the center of the reference system.</li> <li><strong>phi</strong> (<em>numpy.ndarray</em>) – pixel map storing the amplitude of the angle between each -pixel, the center of the reference system, and the x axis through the center.</li> +pixel, the center of the reference system, and the x axis.</li> </ul> </td> </tr> @@ -118,6 +119,7 @@ pixel, the center of the reference system, and the x axis through the center.</l <li class="toctree-l2 current"><a class="current reference internal" href="#">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> @@ -126,6 +128,7 @@ pixel, the center of the reference system, and the x axis through the center.</l <li><a href="index.html">Documentation overview</a><ul> <li><a href="cfelpyutils.html">The cfelpyutils Package</a><ul> <li>Previous: <a href="cfelpyutils.geometry_utils.html" title="previous chapter">The geometry_utils Module</a></li> + <li>Next: <a href="documentation_guidelines_for_contributors.html" title="next chapter">Guidelines for Contributors</a></li> </ul></li> </ul></li> </ul> diff --git a/docs/documentation_guidelines_for_contributors.html b/docs/documentation_guidelines_for_contributors.html new file mode 100644 index 0000000..81baa5a --- /dev/null +++ b/docs/documentation_guidelines_for_contributors.html @@ -0,0 +1,146 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Guidelines for Contributors — CFELPyUtils 1.0.0 documentation</title> + <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + <link rel="prev" title="The named_tuples Module" href="cfelpyutils.named_tuples.html" /> + + <link rel="stylesheet" href="_static/custom.css" type="text/css" /> + + + <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> + + </head><body> + + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + + + <div class="body" role="main"> + + <div class="section" id="guidelines-for-contributors"> +<h1>Guidelines for Contributors<a class="headerlink" href="#guidelines-for-contributors" title="Permalink to this headline">¶</a></h1> +<p>Contributions to the project are welcome. Please feel free to submit pull requests +using the standard <a class="reference external" href="https://guides.github.com/introduction/flow/">GitHub flow</a>.</p> +<div class="section" id="version-control"> +<h2>Version Control<a class="headerlink" href="#version-control" title="Permalink to this headline">¶</a></h2> +<p>The CFELPyUtils library is developed using the <a class="reference external" href="https://git-scm.com">Git</a> version +control system.</p> +<p>It uses the branching strategy proposed by Vincent Driessen and commonly known as +<a class="reference external" href="https://nvie.com/posts/a-successful-git-branching-model">Gitflow</a>.</p> +</div> +<div class="section" id="python"> +<h2>Python<a class="headerlink" href="#python" title="Permalink to this headline">¶</a></h2> +<p>The CFELPyUtils library is mainly developed in <a class="reference external" href="https://www.python.org">Python</a>.</p> +<ul class="simple"> +<li>All code in the library must run with both version 2 and 3 of Python, except for +facility-specific code that specifically requires one of the two versions (for +example, Python 2 for the LCSL facility). The code must specifically support all the +currently active versions of python:<ul> +<li>Python 2<ul> +<li>2.7</li> +</ul> +</li> +<li>Python 3<ul> +<li>3.5</li> +<li>3.6</li> +<li>3.7</li> +</ul> +</li> +</ul> +</li> +<li>The <a class="reference external" href="https://python-future.org">python-future</a> project should be used to ensure +that code contributed to the project is compatible with all the supported versions of +Python.</li> +<li>The Python coding style should follow for the most part the <a class="reference external" href="https://github.com/google/styleguide/blob/gh-pages/pyguide.md">Google Python Coding Style</a>.</li> +<li>All docstrings should be written following the <a class="reference external" href="https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html">Google Style </a>.</li> +<li><a class="reference external" href="https://www.pylint.org">Pylint</a> should be run on the code before +submission, as stated in the Google Python Coding Style Guide. In the root +folder of the CFELPyUtils repository, contributors can find a ‘pylintrc’ file with +the settings that should be applied when linting the code. Please see <a class="reference external" href="http://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=pylintrc">here</a> how to +use the pylintrc file.</li> +<li>The <a class="reference external" href="https://github.com/psf/black">Black</a> Python code formatter should be run on +the code before submission.</li> +</ul> +</div> +<div class="section" id="c-c"> +<h2>C/C++<a class="headerlink" href="#c-c" title="Permalink to this headline">¶</a></h2> +<p>Some extension can, for performance reason, be written using the <a class="reference external" href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> or <a class="reference external" href="https://en.wikipedia.org/wiki/C_(programming_language)">C</a> programming languages.</p> +<ul class="simple"> +<li>All C++ code in OnDA must follow at most the C++98 ISO standard, and the code +must compile on a Linux RHEL7/CentOS7 platform using the standard development stack +that comes with these systems.</li> +<li>Part of the C++11 standard can be used when writing extensions. However, it must be +possible to compile the code using version 4.8 of the ‘gcc’ compiler (in order to +create the Linux binary Python wheel).</li> +<li>All C code in OnDA must follow at most the C99 ISO standard, and the code +must compile on a Linux RHEL7/CentOS7 platform using the standard development stack +that comes with these systems.</li> +<li>The <a class="reference external" href="http://cython.org">Cython</a> project should be used to interface C/C++ code with +Python.</li> +</ul> +</div> +</div> + + + </div> + + </div> + </div> + <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Guidelines for Contributors</a><ul> +<li><a class="reference internal" href="#version-control">Version Control</a></li> +<li><a class="reference internal" href="#python">Python</a></li> +<li><a class="reference internal" href="#c-c">C/C++</a></li> +</ul> +</li> +</ul> + +<div id="searchbox" style="display: none" role="search"> + <h3>Quick search</h3> + <div class="searchformwrapper"> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + </div> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="footer"> + ©2019, OnDA Team. + + | + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a> + & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + + </div> + + + + + </body> +</html> \ No newline at end of file diff --git a/docs/genindex.html b/docs/genindex.html index c2a43c1..19e0c10 100644 --- a/docs/genindex.html +++ b/docs/genindex.html @@ -147,6 +147,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/index.html b/docs/index.html index ea167f9..6e91902 100644 --- a/docs/index.html +++ b/docs/index.html @@ -47,25 +47,47 @@ several internal and released CFEL software projects.</p> </div> <div class="section" id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h2> -<p>The CFELPyUtils library is available on PyPI and can be installed using the pip -command:</p> +<p>The CFELPyUtils library is available on the <a class="reference external" href="https://pypi.org/">Python Package Index</a> (PyPI). It can be installed using the ‘pip’ command:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python3 -m pip install cfelpyutils </pre></div> </div> -<p>Or, for python2:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python -m pip install cfelpyutils +<p>Or, for Python 2:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python2 -m pip install cfelpyutils </pre></div> </div> -<p>It is also available as an Anaconda package in the ‘ondateam’ channel. It can be -installed using the ‘conda’ command:</p> +<p>It is also available as a package for the <a class="reference external" href="https://anaconda.org/">Anaconda</a> Python +distribution. It can be installed using the ‘conda’ command:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>conda install -c ondateam cfelpyutils </pre></div> </div> +<p>The library can also be installed manually by checking out the repository and running:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python setup.py install +</pre></div> +</div> +</div> +<div class="section" id="authors"> +<h2>Authors<a class="headerlink" href="#authors" title="Permalink to this headline">¶</a></h2> +<p>The CFELPyUtils library is currently developed in the lab of +<a class="reference external" href="https://cid.cfel.de/">Henry Chapman</a> at the Center For Free Electron Laser Science +in Hamburg.</p> +<p>Many people from different institutions worlwide contribute code, testing and support +to the project:</p> +<ul class="simple"> +<li><strong>Valerio Mariani</strong> (corresponding author: <a class="reference external" href="mailto:valerio.mariani%40desy.de">valerio<span>.</span>mariani<span>@</span>desy<span>.</span>de</a>)</li> +<li>Anton Barty</li> +<li>Andrew Morgan</li> +<li>Thomas A. White</li> +</ul> </div> <div class="section" id="code-documentation"> <h2>Code Documentation<a class="headerlink" href="#code-documentation" title="Permalink to this headline">¶</a></h2> <p>Code documentation for the CFELPyUtils library can be found <a class="reference internal" href="cfelpyutils.html"><span class="doc">here</span></a>.</p> </div> +<div class="section" id="guidelines-for-contributors"> +<h2>Guidelines for Contributors<a class="headerlink" href="#guidelines-for-contributors" title="Permalink to this headline">¶</a></h2> +<p>Contributions to the projects are welcome. Please see the guidelines for contributors +<a class="reference internal" href="documentation_guidelines_for_contributors.html"><span class="doc">here</span></a>.</p> +</div> </div> @@ -80,7 +102,9 @@ installed using the ‘conda’ command:</p> <li><a class="reference internal" href="#">CFELPyUtils</a><ul> <li><a class="reference internal" href="#introduction">Introduction</a></li> <li><a class="reference internal" href="#installation">Installation</a></li> +<li><a class="reference internal" href="#authors">Authors</a></li> <li><a class="reference internal" href="#code-documentation">Code Documentation</a></li> +<li><a class="reference internal" href="#guidelines-for-contributors">Guidelines for Contributors</a></li> </ul> </li> </ul> diff --git a/docs/objects.inv b/docs/objects.inv index 34d07436a47e4c7ece1eb791d06dad404d86eca3..4a820253d6ecab3d4028bc2d93308bcfad0ecf29 100644 GIT binary patch delta 382 zcmV-^0fGM21N;M!hkrapr0q(zUVE*!Y0@eoZ97M4;?ig#iAXX*pMF4SODNDzD>txz zf4^gh=?;W0o#nzHU9K|4oB;HM=sCXF+e|$8O#F!AsGFmCX>9e5rxBs-55$E~gyB;x z1(ku#%i3t?B(+>gw7hE7_c&s%bREhjyY5Me)}lOhi><<pSbs9n^^nyS52`ZlEMUzG zoDps2q5p8>h~NiOWAEi9Nd^pCrv;2pzbl%YeIQJD0b<j(NCh#b*WV@fHr_(-dCer& z=6qX?=3d-<7HTmIwVZ`|_!ku!%T`QL6fZB<7W&*nH;58Kzex&HJ8T3uuva`itll*L z=+w3u;Sb!KhIikq9^ePJX@q_;#fBYJw&beVWgxA;@Tubr1eaj&PUV;?>A#Z71FM^h zy!Y!#fGPo6cLY%il1m0fgBN5AqBb~2ef?Yg7@cKp7ahg=<@r4+zv{C`)!G;!>M}ki ce2G7Q%QirAx(_RS%!@yKKB@nuUzORuw3?E;zW@LL delta 343 zcmV-d0jU1`1JwhNhkt#FNZXZaz4kh7(xgp7+IEiI#4XVRiAb18pMDLYEula+t=z!= z{r#4~W?PinRaQttv|HzjR}#qsVdwZVv$?zrndF`%i*AmU&e+2{okqm6KM<Ev0jH<f z4pok}blzxN70e1%kkwVIzQ+-BrR!KW*>z6}T1$88mRdzQSbv!4ddTXE2UEGOEK)6M znu9j;(7%PLK#Dzh?5(^C$dOZ9X^G?0?}{d89|==YqkL;yWD<<&^>>N=9dD^K;hA7< zDK>}E+=^SyLak?^x>>0Ee^H6Ce9aXj$?D>4k&g_!L6QRdf*nrXuo2wAT?zEK`mOm# zr>@Nie_(GKeo(J^fFEts2>oJ;4LhoA$vZ4W!Le>g5;iD3>lh8SFaB|HmbHc*#pCnS pYwA9|_u{a&14QkTV<MCU|CVhKN|wbHAr{2%A)oqh`2(9_j3!PFt{ngX diff --git a/docs/py-modindex.html b/docs/py-modindex.html index 02294c3..b250e79 100644 --- a/docs/py-modindex.html +++ b/docs/py-modindex.html @@ -88,6 +88,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/search.html b/docs/search.html index a117965..e7b25fc 100644 --- a/docs/search.html +++ b/docs/search.html @@ -83,6 +83,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs/searchindex.js b/docs/searchindex.js index be933e7..2f17d5d 100644 --- a/docs/searchindex.js +++ b/docs/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["cfelpyutils","cfelpyutils.crystfel_utils","cfelpyutils.geometry_utils","cfelpyutils.named_tuples","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["cfelpyutils.rst","cfelpyutils.crystfel_utils.rst","cfelpyutils.geometry_utils.rst","cfelpyutils.named_tuples.rst","index.rst"],objects:{"":{cfelpyutils:[0,0,0,"-"]},"cfelpyutils.crystfel_utils":{load_crystfel_geometry:[1,1,1,""]},"cfelpyutils.geometry_utils":{apply_geometry_to_data:[2,1,1,""],compute_pix_maps:[2,1,1,""],compute_visualization_pix_maps:[2,1,1,""]},"cfelpyutils.named_tuples":{PixelMaps:[3,2,1,""]},"cfelpyutils.named_tuples.PixelMaps":{phi:[3,3,1,""],r:[3,3,1,""],x:[3,3,1,""],y:[3,3,1,""],z:[3,3,1,""]},cfelpyutils:{crystfel_utils:[1,0,0,"-"],geometry_utils:[2,0,0,"-"],named_tuples:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},terms:{"41a8fa9819010":1,"class":[3,4],"float":[],"function":[1,2,4],"int":[],"new":[],"return":[1,2],For:[1,4],The:4,These:2,absolut:1,adjust:[],alia:3,all:2,along:2,also:4,amplitud:3,anaconda:4,angl:3,ani:[1,2],appli:[2,4],apply_geometry_to_data:2,around:2,arrai:2,assum:[],avail:[2,4],awai:2,axi:3,base:3,beam:2,been:[],between:3,big:2,bigger:2,can:[2,4],caus:2,ceil:2,center:[2,3,4],cfel:4,cfelpyutil:3,channel:4,code:1,collect:3,command:4,commit:1,complet:2,comput:2,compute_min_array_s:[],compute_pix_map:2,compute_visualization_pix_map:2,conda:4,connect:[],contain:[0,1,2,3,4],convent:2,convert:[],coordin:[2,3],corner:2,correspond:1,crystfel:[1,2],crystfel_util:0,current:[1,4],data:[2,4],describ:[],desi:[],detector:[2,4],develop:4,dict:[1,2],dictionari:[1,2],differ:2,direct:2,displai:2,displayedus:[],distanc:3,document:1,each:3,electron:4,enough:2,entri:2,field:3,fifth:[],file:[1,2],filenam:1,first:[],follow:2,format:1,found:4,fourth:[],free:4,from:[1,2,3],full:1,gener:2,geometri:[1,2,3,4],geometry_util:0,get_detector_geometry_2:1,hamburg:4,hand:2,has:[],here:4,http:[],imag:4,imageview:2,implement:[],inform:[1,2,3,4],input:2,instead:[],interact:2,intern:4,just:[],kei:1,languag:1,laser:4,layout:2,left:2,librari:[0,2,3,4],like:2,link:[],load:1,load_crystfel_geometri:[1,2],main:[0,2],make:[],man:1,mani:[],manipul:2,map:[2,3],match:1,matplotlib:2,minimum:2,mostli:4,name:[2,3],named_tupl:0,ndarrai:[2,3],need:2,none:2,note:2,number:3,numpi:[2,3],object:2,often:2,ondateam:4,ones:2,onli:2,org:[],orient:2,origin:2,other:2,packag:[1,4],page:1,paramet:[1,2,3],particularli:2,path:1,perform:4,phi:[2,3],physic:2,pip:4,pixel:[2,3],pixel_map:[],pixelmap:[2,3],point:2,pre:2,prepar:[],process:4,project:4,provid:[],pypi:4,pyqtgraph:2,python2:4,python3:4,python:[1,4],rai:4,read:[1,2,4],readi:[],refer:[2,3],reimplement:1,rel:1,relat:4,releas:4,relev:1,respect:[],restrict:2,result:[],right:2,same:2,scienc:4,see:1,set:2,sever:4,shape:2,should:2,size:2,softwar:[1,4],some:[1,2],sourc:[1,2],standard:[],store:[1,2,3],str:[1,2],stro:[],style:[],submodul:[],suppos:[],symmetr:2,sync:[],synchron:1,system:[2,3],take:2,task:4,than:2,thi:[1,2,3],third:[],three:[],through:3,throughout:3,top:2,toward:2,tupl:[2,3],twhite:[],two:[],type:[1,2],used:[2,3,4],uses:1,using:[2,4],util:[1,2,4],valu:[1,2],variou:4,vector:[],visual:2,which:[0,2],whole:0,widget:2,work:[],written:4,wth:[],www:[],zenith:2},titles:["The cfelpyutils Package","The crystfel_utils Module","The geometry_utils Module","The named_tuples Module","CFELPyUtils"],titleterms:{The:[0,1,2,3],cfelpyutil:[0,4],code:4,crystfel_util:1,document:4,geometry_util:2,instal:4,introduct:4,modul:[1,2,3],named_tupl:3,packag:0,thecfelpyutil:[]}}) \ No newline at end of file +Search.setIndex({docnames:["cfelpyutils","cfelpyutils.crystfel_utils","cfelpyutils.geometry_utils","cfelpyutils.named_tuples","documentation_guidelines_for_contributors","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["cfelpyutils.rst","cfelpyutils.crystfel_utils.rst","cfelpyutils.geometry_utils.rst","cfelpyutils.named_tuples.rst","documentation_guidelines_for_contributors.rst","index.rst"],objects:{"":{cfelpyutils:[0,0,0,"-"]},"cfelpyutils.crystfel_utils":{load_crystfel_geometry:[1,1,1,""]},"cfelpyutils.geometry_utils":{apply_geometry_to_data:[2,1,1,""],compute_pix_maps:[2,1,1,""],compute_visualization_pix_maps:[2,1,1,""]},"cfelpyutils.named_tuples":{PixelMaps:[3,2,1,""]},"cfelpyutils.named_tuples.PixelMaps":{phi:[3,3,1,""],r:[3,3,1,""],x:[3,3,1,""],y:[3,3,1,""],z:[3,3,1,""]},cfelpyutils:{crystfel_utils:[1,0,0,"-"],geometry_utils:[2,0,0,"-"],named_tuples:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},terms:{"41a8fa9819010":1,"class":[3,5],"float":[],"function":[1,2,5],"int":[],"new":[],"return":[1,2],For:[1,5],The:[4,5],These:2,absolut:1,accord:2,activ:4,adjust:[],alia:3,all:[2,4],along:2,also:5,amplitud:3,anaconda:5,andrew:5,angl:3,ani:[1,2],anton:5,appli:[2,4,5],apply_geometry_to_data:2,around:2,arrai:2,assum:[],avail:[2,5],awai:2,axi:3,barti:5,base:3,beam:2,been:[],befor:4,between:3,big:2,bigger:2,binari:4,black:4,both:4,branch:4,c99:4,can:[2,4,5],caus:2,ceil:2,center:[2,3,5],centos7:4,cfel:5,cfelpyutil:[3,4],channel:[],chapman:5,check:5,code:[1,4],collect:3,com:[],come:4,command:5,commit:1,commonli:4,compat:4,compil:4,complet:2,comput:2,compute_min_array_s:[],compute_pix_map:2,compute_visualization_pix_map:2,conda:5,connect:[],contain:[0,1,2,3,5],contribut:[4,5],convent:2,convert:[],coordin:[2,3],corner:2,correspond:[1,5],creat:4,crystfel:[1,2],crystfel_util:0,current:[1,4,5],cython:4,data:[2,5],describ:[],desi:5,detector:[2,5],develop:[4,5],dict:[1,2],dictionari:[1,2],differ:[2,5],direct:2,displai:2,displayedus:[],distanc:3,distribut:5,doc:[],docstr:4,document:1,documentation_guidelines_for_contributor:[],driessen:4,each:3,electron:5,enough:2,ensur:4,entri:2,exampl:4,except:4,extens:4,facil:4,feel:4,field:3,fifth:[],file:[1,2,4],filenam:1,find:4,first:[],flow:4,folder:4,follow:4,fork:[],format:1,formatt:4,found:5,fourth:[],free:[4,5],from:[1,2,3,5],full:1,futur:4,gcc:4,gener:2,geometri:[1,2,3,5],geometry_util:0,get_detector_geometry_2:1,git:4,gitflow:4,github:4,googl:4,guid:4,hamburg:5,hand:2,has:[],henri:5,here:[4,5],how:4,howev:4,http:[],imag:5,imageview:2,implement:[],index:5,inform:[1,2,3,5],input:2,instead:[],institut:5,interact:2,interfac:4,intern:5,introduct:[],iso:4,just:[],kei:1,known:4,lab:5,languag:[1,4],laser:5,layout:2,lcsl:4,left:2,librari:[0,2,3,4,5],like:2,link:[],lint:4,linux:4,load:1,load_crystfel_geometri:[1,2],main:[0,2],mainli:4,make:[],man:1,mani:5,manipul:2,manual:5,map:[2,3],mariani:5,match:1,matplotlib:2,minimum:2,model:[],morgan:5,most:4,mostli:5,must:4,name:[2,3],named_tupl:0,ndarrai:[2,3],need:2,none:2,note:[],number:3,numpi:[2,3],nvie:[],object:2,often:2,onda:4,ondateam:5,one:4,ones:2,onli:2,order:4,org:[],orient:2,origin:2,other:2,out:5,packag:[1,5],page:1,paramet:[1,2,3],part:4,particularli:2,path:1,peopl:5,perform:[4,5],phi:[2,3],physic:2,pip:5,pixel:[2,3],pixel_map:[],pixelmap:[2,3],platform:4,pleas:[4,5],point:2,possibl:4,post:[],pre:2,prepar:[],process:5,program:4,project:[4,5],propos:4,provid:[],pull:4,pylint:4,pylintrc:4,pypi:5,pyqtgraph:2,python2:5,python3:5,python:[1,5],rai:5,read:[1,2,5],readi:[],reason:4,refer:[2,3],reimplement:1,rel:1,relat:5,releas:5,relev:1,repositori:[4,5],request:4,requir:4,respect:[],restrict:2,result:[],rhel7:4,right:2,root:4,run:[4,5],same:2,scienc:5,scm:[],see:[1,4,5],set:[2,4],setup:5,sever:5,shape:2,should:[2,4],size:2,softwar:[1,5],some:[1,2,4],sourc:[1,2],specif:4,stack:4,standard:4,state:4,store:[1,2,3],str:[1,2],strategi:4,stro:[],style:4,submiss:4,submit:4,submodul:[],success:[],support:[4,5],suppos:[],symmetr:2,sync:[],synchron:1,system:[2,3,4],take:2,task:5,test:5,than:2,thi:[1,2,3],third:[],thoma:5,three:[],through:[],throughout:3,top:2,toward:2,tupl:[2,3],twhite:[],two:4,type:[1,2],use:4,used:[2,3,4,5],uses:[1,4],using:[2,4,5],util:[1,2,5],valerio:5,valu:[1,2],variou:5,vector:[],vincent:4,visual:2,welcom:[4,5],wheel:4,when:4,which:[0,2],white:5,whole:0,widget:2,work:[],worlwid:5,write:4,written:[4,5],wth:[],www:[],zenith:2},titles:["The cfelpyutils Package","The crystfel_utils Module","The geometry_utils Module","The named_tuples Module","Guidelines for Contributors","CFELPyUtils"],titleterms:{The:[0,1,2,3],author:5,cfelpyutil:[0,5],code:5,contributor:[4,5],control:4,crystfel_util:1,document:5,geometry_util:2,guidelin:[4,5],instal:5,introduct:5,modul:[1,2,3],named_tupl:3,packag:0,python:4,thecfelpyutil:[],version:4}}) \ No newline at end of file diff --git a/docs_src/_build/doctrees/cfelpyutils.geometry_utils.doctree b/docs_src/_build/doctrees/cfelpyutils.geometry_utils.doctree index ca1e14957b5fc883079921f36592dd98910a8eb3..ef78c530f1bd185db8de4b0d027a1bf0655e3480 100644 GIT binary patch delta 766 zcmX^0nsLG#M%D(FsjOuiSxdPYk4+ZzojX~QUvRQMztm<Ao(3jHlgWJiGC;26<Q@es zI4_m4Ve(XdFZ;xzRE6Ty60XGL<ou$P%)E4kl6-}d44`0QZmL3ZeqLE>UP)$tUa>-A zv4V3^WpRm{tB=)`4EES58KOO4GjvEXV{@IrW+{*>d>25SDL(nXwhD_vVjkDzJ^E6c z9d)KKF_uEzj3Ot^-8!XlO6?Sl4Ave@1)KNi`>-=sPVO>y5iLqBDJ{xNP2tJ|dLl)k zq_iL>RblcibNR^?=7NkBc-5#AkXP7TWHDQWF%sy5J^Y}6%FIj4FUm~>1=8eq0g6&w zDVfCuIf<1(i%W|^0h*JURFqhhnOeM=-ES`wWBFw3Ky_?7b#UthnvtEVFa_a%oQB}D zetw`jGvmI=$3q<D3NkBFa}>%Fb4pW-fj;1Zc%-1TL?I=yByqA-s0|yJMy6h>)#N@w zX>LtDScH?Id$Lhj8snqM6T<!26pAyeQn@BS33n1yC`c?S$xJTINi52#RLD%@nrt3n Q!vRfJgjH`gkC-eA0AA=1KL7v# delta 653 zcmb7;-z!659L9T3o0DVNh?3D>n$Tp*1=dP_UTDTJq?8x$oR@cJr}G0-D~h{asPAzn z`2(bQU6Omsy(_nh|A7^<Lb&`s&+~b{&;B#Ic|z`O*TJ=Y=C;ewEkr}7E;Ey+5b*lN zfM;7mJ#ZJQd($4ugT-gSn?g2teIs%z!+B;y0nJxa%``k<WKC;$C>C*4dEQa0^IuXD z)5M-n)E4R*Mvvh>RPphl2J+#cOCcH-t!<|g+A4nkX+meX=_gNIgkv(&0d);}G?J#v z*s^s_6`1SlK$-94K<UTQ?`^T$eOQHJg{_wov*0MvP>YwDsdJJowA&`rRxnXGTQrD~ z70vN039W*fXnqg3{T#-etx@dkIXh0yX;IzzVh;bt!T4mOKoc(#ItP^Ot7MvPTUckC zlq>6m+th@GWYmXSSUZhiOQm>`lC%ORN&i0yb9zI5jE_wXMKC-~$4eBGZBY!pGyN5c cP7I4J*_;?Wi&+XoZZ-;cGxDDSk(-73SF6t8;s5{u diff --git a/docs_src/_build/doctrees/cfelpyutils.named_tuples.doctree b/docs_src/_build/doctrees/cfelpyutils.named_tuples.doctree index 951a3aee914e21348f74f94850fe62bb7a96d8a1..ba3c44ff6f9b3795a51c675e8a6f8088d9483c4e 100644 GIT binary patch delta 64 zcmdm2*jmWaz%sRJBa5O0OLsv==HzOAxykMlnUn2BMK|A&n90akGTBz5m{)H~>y*YR RwNo@QSbM-Co4cirWdY`S7Qp}j delta 130 zcmZoI+*iobz%q67Mixa0mU#sknUkye<tArJWeO{lWEAC>re^@@RE6Z!ypq(S%^M`v vF*3GKj+ZJ{z#^?TrFBZ<l-em88LT~EMN(K5Wk_d*Firl&XRx_b`i~3%Q%W$; diff --git a/docs_src/_build/doctrees/documentation_guidelines_for_contributors.doctree b/docs_src/_build/doctrees/documentation_guidelines_for_contributors.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a5446767a2c64afa17aadb39889320d78fe0f147 GIT binary patch literal 19892 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 literal 0 HcmV?d00001 diff --git a/docs_src/_build/doctrees/environment.pickle b/docs_src/_build/doctrees/environment.pickle index ab85190b94d6e6c3a55d42111fbf201f24b8a836..b8ee0ab9479772890454c5d87da8fc1f9540c191 100644 GIT binary patch delta 10798 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 delta 7829 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 ND8M6V<la|0{|jaV>y`ij diff --git a/docs_src/_build/doctrees/index.doctree b/docs_src/_build/doctrees/index.doctree index 40c0debfc498eee782bf01c6988c1be8aa48990d..eabd823eacd46babafe90b699e47c95d0c7fd58c 100644 GIT binary patch literal 12227 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 Yfk?IHxuRJsRKp^W%<zQb`nbLNd%B@U#sB~S delta 1010 zcmbVLO-~b16y;4j(xQd((S$&OS4vx2r3nxgx?|yjkW@$-1BnJ+r&I5g>9nCU#4Z|( zi6kULjCo@s3-JetF{Vp{@netr10;k*H<}n(xgx&T4_ef?a5H)L+<VVG_so0mmdq)! zWPiBc_d>MUgE8~Gl#<n4!O#^oZ*5q_yr5{3Y9!^9qRM&erUmna68ldPzym4z!5MW) zfWQU;2tsJqUEUV2+r--}xyF(amtISBF+`#lopI!*CFiX8fW`NDd%xM#-e)Ah2(Md3 zYZOFtfj(~=b<7p!W-!r`^izk|lT&hSQZ|!e@f8bNnH=|D%DiXF?pZZLc*2H0J|oM^ z5R=ZiO6VE==!!2qt;rqYI2U$Cko(%|C7jBx;#@(8tTu5f;m<^4=vzkhnhy=sz3?}Y z@1Ab!tCG_9?f%xr*-O86xdhl}>hK+SY1$Jc4;Jig!mFZXzzEb82bxG578)};R`Qsr z`79=DL{UjXl`&z6hNm?mWwj*1IU=o)TQXKOtb>e09Mol!31JC{rpam)Ga8AA8cxV< z^m9jek=b7S59*`RqdNIfY5O<&D*Jxt#5p)*%N%geJax|^P3!H_t*#XTzHv`{|MFyv zH_`7san#2y-5~ukblKrVEiK?lx6&=oc#oY2joUlP|29?evEV^;*|#JNBl^ZSfP!?o zzndQW!j6$@H)g;P)q(@UIHF|uYUd!wt50Bxv9tCc!ET3%q85+nVeeRbeG{IyBkJ-e z&}4Zp1cGoEl|zvo+wu)Yl3wIYo3N2a{BV+vb8w!04AZHRjI0-O>>aWPlIG<x*o;*w cW0k^~0lhp`A&I~SNN@sXrJc<z??eOW7fWML{{R30 diff --git a/docs_src/_build/html/.buildinfo b/docs_src/_build/html/.buildinfo index 07914e1..5c20a1a 100644 --- a/docs_src/_build/html/.buildinfo +++ b/docs_src/_build/html/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: fd8cf3500139e539a950fcaee26c3d53 +config: b2d79c21d77cd2b06bfb2cb4376d24d9 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs_src/_build/html/_modules/cfelpyutils/crystfel_utils.html b/docs_src/_build/html/_modules/cfelpyutils/crystfel_utils.html index 8d1f451..f114828 100644 --- a/docs_src/_build/html/_modules/cfelpyutils/crystfel_utils.html +++ b/docs_src/_build/html/_modules/cfelpyutils/crystfel_utils.html @@ -703,6 +703,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/_modules/cfelpyutils/geometry_utils.html b/docs_src/_build/html/_modules/cfelpyutils/geometry_utils.html index 479e596..61de150 100644 --- a/docs_src/_build/html/_modules/cfelpyutils/geometry_utils.html +++ b/docs_src/_build/html/_modules/cfelpyutils/geometry_utils.html @@ -69,10 +69,10 @@ <span class="sd"> This function takes as input some geometry information read from a `CrystFEL</span> <span class="sd"> <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and</span> -<span class="sd"> returns a set of some pre-computed pixel maps.</span> +<span class="sd"> returns a set of pre-computed pixel maps.</span> -<span class="sd"> The origin and the orientation of the reference system for the pixel maps follow</span> -<span class="sd"> the same conventions as in CrystFEL:</span> +<span class="sd"> The origin and the orientation of the reference system for the pixel maps are set</span> +<span class="sd"> according to the same conventions as CrystFEL:</span> <span class="sd"> * The center of the reference system is the beam interaction point.</span> @@ -168,8 +168,8 @@ <span class="sd"> This function takes as input some geometry information read from a `CrystFEL</span> <span class="sd"> <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and</span> -<span class="sd"> returns a set of some pre-computed pixel maps that can be used to display data in</span> -<span class="sd"> an ImageView widget from the `PyQtGraph <http://pyqtgraph.org/>`_ library.</span> +<span class="sd"> returns a set of pre-computed pixel maps that can be used to display data in an</span> +<span class="sd"> ImageView widget from the `PyQtGraph <http://pyqtgraph.org/>`_ library.</span> <span class="sd"> These pixel maps are different from the ones generated by the</span> <span class="sd"> :func:`~compute_pix_maps` function. The main differences are:</span> @@ -177,8 +177,8 @@ <span class="sd"> * The origin of the reference system is not the beam interaction point, but the top</span> <span class="sd"> left corner of the array used to visualize the data.</span> -<span class="sd"> * Only the x and y pixel maps are available. The other entries in the named tuple</span> -<span class="sd"> (z, r and phi) are set to None.</span> +<span class="sd"> * Only the x and y pixel maps are available. The other entries in the returned</span> +<span class="sd"> named tuple (z, r and phi) are set to None.</span> <span class="sd"> Arguments:</span> @@ -214,17 +214,17 @@ <span class="sd"> This function takes as input some geometry information read from a `CrystFEL</span> <span class="sd"> <http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html>`_ file, and</span> -<span class="sd"> some data on which to apply it. It returns an array that can be displayed using a</span> -<span class="sd"> library like `matplotlib <https://matplotlib.org/>`_ or </span> +<span class="sd"> some data on which to apply the information. It returns an array that can be</span> +<span class="sd"> displayed using libraries like `matplotlib <https://matplotlib.org/>`_ or</span> <span class="sd"> `PyQtGraph <http://pyqtgraph.org/>`_.</span> -<span class="sd"> The shape of the returned array is big enough to display all the input pixel</span> -<span class="sd"> values, and is symmetric around the center of the reference system (i.e: the beam</span> -<span class="sd"> interaction point).</span> +<span class="sd"> The shape of the returned array is big enough to display all the pixel values in</span> +<span class="sd"> the input data, and is symmetric around the center of the reference system</span> +<span class="sd"> (i.e: the beam interaction point).</span> -<span class="sd"> NOTE: This restrictions often cause the returned array to be bigger than the minimum</span> -<span class="sd"> size needed to store the physical layout of the pixels in the detector,</span> -<span class="sd"> particularly if the detector is not centered at the beam interaction point.</span> +<span class="sd"> This restrictions often cause the returned array to be bigger than the minimum size</span> +<span class="sd"> needed to store the physical layout of the pixels in the detector, particularly if</span> +<span class="sd"> the detector is not centered at the beam interaction point.</span> <span class="sd"> Arguments:</span> @@ -270,6 +270,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/_modules/cfelpyutils/named_tuples.html b/docs_src/_build/html/_modules/cfelpyutils/named_tuples.html index 7649063..5c11e47 100644 --- a/docs_src/_build/html/_modules/cfelpyutils/named_tuples.html +++ b/docs_src/_build/html/_modules/cfelpyutils/named_tuples.html @@ -72,7 +72,7 @@ <span class="sd"> the reference system.</span> <span class="sd"> phi (numpy.ndarray): pixel map storing the amplitude of the angle between each</span> -<span class="sd"> pixel, the center of the reference system, and the x axis through the center.</span> +<span class="sd"> pixel, the center of the reference system, and the x axis.</span> <span class="sd">"""</span> </pre></div> @@ -94,6 +94,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/_modules/index.html b/docs_src/_build/html/_modules/index.html index 0426bf5..a28cdf2 100644 --- a/docs_src/_build/html/_modules/index.html +++ b/docs_src/_build/html/_modules/index.html @@ -56,6 +56,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="../cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="../documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/_sources/documentation_guidelines_for_contributors.rst.txt b/docs_src/_build/html/_sources/documentation_guidelines_for_contributors.rst.txt new file mode 100644 index 0000000..bcdb3cb --- /dev/null +++ b/docs_src/_build/html/_sources/documentation_guidelines_for_contributors.rst.txt @@ -0,0 +1,79 @@ +Guidelines for Contributors +=========================== + +Contributions to the project are welcome. Please feel free to submit pull requests +using the standard `GitHub flow <https://guides.github.com/introduction/flow/>`_. + + +Version Control +^^^^^^^^^^^^^^^ + +The CFELPyUtils library is developed using the `Git <https://git-scm.com>`_ version +control system. + +It uses the branching strategy proposed by Vincent Driessen and commonly known as +`Gitflow <https://nvie.com/posts/a-successful-git-branching-model>`_. + + +Python +^^^^^^ + +The CFELPyUtils library is mainly developed in `Python <https://www.python.org>`_. + +* All code in the library must run with both version 2 and 3 of Python, except for + facility-specific code that specifically requires one of the two versions (for + example, Python 2 for the LCSL facility). The code must specifically support all the + currently active versions of python: + + * Python 2 + + * 2.7 + + * Python 3 + + * 3.5 + * 3.6 + * 3.7 + +* The `python-future <https://python-future.org>`_ project should be used to ensure + that code contributed to the project is compatible with all the supported versions of + Python. + +* The Python coding style should follow for the most part the `Google Python \ + Coding Style <https://github.com/google/styleguide/blob/gh-pages/pyguide.md>`_. + +* All docstrings should be written following the `Google Style \ + <https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html>`_. + +* `Pylint <https://www.pylint.org>`_ should be run on the code before + submission, as stated in the Google Python Coding Style Guide. In the root + folder of the CFELPyUtils repository, contributors can find a 'pylintrc' file with + the settings that should be applied when linting the code. Please see `here + <http://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=pylintrc>`_ how to + use the pylintrc file. + +* The `Black <https://github.com/psf/black>`_ Python code formatter should be run on + the code before submission. + + +C/C++ +^^^^^ + +Some extension can, for performance reason, be written using the `C++ +<https://en.wikipedia.org/wiki/C%2B%2B>`_ or `C +<https://en.wikipedia.org/wiki/C_(programming_language)>`_ programming languages. + +* All C++ code in OnDA must follow at most the C++98 ISO standard, and the code + must compile on a Linux RHEL7/CentOS7 platform using the standard development stack + that comes with these systems. + +* Part of the C++11 standard can be used when writing extensions. However, it must be + possible to compile the code using version 4.8 of the 'gcc' compiler (in order to + create the Linux binary Python wheel). + +* All C code in OnDA must follow at most the C99 ISO standard, and the code + must compile on a Linux RHEL7/CentOS7 platform using the standard development stack + that comes with these systems. + +* The `Cython <http://cython.org>`_ project should be used to interface C/C++ code with + Python. diff --git a/docs_src/_build/html/_sources/index.rst.txt b/docs_src/_build/html/_sources/index.rst.txt index 929f41c..a3b5c6e 100644 --- a/docs_src/_build/html/_sources/index.rst.txt +++ b/docs_src/_build/html/_sources/index.rst.txt @@ -10,6 +10,7 @@ CFELPyUtils :hidden: cfelpyutils + documentation_guidelines_for_contributors Introduction @@ -25,29 +26,57 @@ several internal and released CFEL software projects. Installation ------------ -The CFELPyUtils library is available on PyPI and can be installed using the pip -command: +The CFELPyUtils library is available on the `Python Package Index +<https://pypi.org/>`_ (PyPI). It can be installed using the 'pip' command: .. code-block:: bash python3 -m pip install cfelpyutils -Or, for python2: +Or, for Python 2: .. code-block:: bash - python -m pip install cfelpyutils + python2 -m pip install cfelpyutils - -It is also available as an Anaconda package in the 'ondateam' channel. It can be -installed using the 'conda' command: +It is also available as a package for the `Anaconda <https://anaconda.org/>`_ Python +distribution. It can be installed using the 'conda' command: .. code-block:: bash conda install -c ondateam cfelpyutils +The library can also be installed manually by checking out the repository and running: + +.. code-block:: bash + + python setup.py install + + +Authors +------- + +The CFELPyUtils library is currently developed in the lab of +`Henry Chapman <https://cid.cfel.de/>`_ at the Center For Free Electron Laser Science +in Hamburg. + +Many people from different institutions worlwide contribute code, testing and support +to the project: + +* **Valerio Mariani** (corresponding author: valerio.mariani@desy.de) +* Anton Barty +* Andrew Morgan +* Thomas A. White + Code Documentation ------------------ -Code documentation for the CFELPyUtils library can be found :doc:`here <cfelpyutils>`. \ No newline at end of file +Code documentation for the CFELPyUtils library can be found :doc:`here <cfelpyutils>`. + + +Guidelines for Contributors +--------------------------- + +Contributions to the projects are welcome. Please see the guidelines for contributors +:doc:`here <documentation_guidelines_for_contributors>`. \ No newline at end of file diff --git a/docs_src/_build/html/cfelpyutils.crystfel_utils.html b/docs_src/_build/html/cfelpyutils.crystfel_utils.html index d162d9e..58736df 100644 --- a/docs_src/_build/html/cfelpyutils.crystfel_utils.html +++ b/docs_src/_build/html/cfelpyutils.crystfel_utils.html @@ -95,6 +95,7 @@ file.</td> <li class="toctree-l2"><a class="reference internal" href="cfelpyutils.named_tuples.html">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/cfelpyutils.geometry_utils.html b/docs_src/_build/html/cfelpyutils.geometry_utils.html index 77c72d0..a474102 100644 --- a/docs_src/_build/html/cfelpyutils.geometry_utils.html +++ b/docs_src/_build/html/cfelpyutils.geometry_utils.html @@ -43,9 +43,9 @@ <code class="descname">compute_pix_maps</code><span class="sig-paren">(</span><em>geometry</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/cfelpyutils/geometry_utils.html#compute_pix_maps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#cfelpyutils.geometry_utils.compute_pix_maps" title="Permalink to this definition">¶</a></dt> <dd><p>Computes pixel maps from CrystFEL geometry information.</p> <p>This function takes as input some geometry information read from a <a class="reference external" href="http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html">CrystFEL</a> file, and -returns a set of some pre-computed pixel maps.</p> -<p>The origin and the orientation of the reference system for the pixel maps follow -the same conventions as in CrystFEL:</p> +returns a set of pre-computed pixel maps.</p> +<p>The origin and the orientation of the reference system for the pixel maps are set +according to the same conventions as CrystFEL:</p> <ul class="simple"> <li>The center of the reference system is the beam interaction point.</li> <li>+z is the beam direction, and points along the beam (i.e. away from the source).</li> @@ -73,15 +73,15 @@ pixel maps.</td> <code class="descname">compute_visualization_pix_maps</code><span class="sig-paren">(</span><em>geometry</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/cfelpyutils/geometry_utils.html#compute_visualization_pix_maps"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#cfelpyutils.geometry_utils.compute_visualization_pix_maps" title="Permalink to this definition">¶</a></dt> <dd><p>Computes pixel maps for data visualization from CrystFEL geometry information.</p> <p>This function takes as input some geometry information read from a <a class="reference external" href="http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html">CrystFEL</a> file, and -returns a set of some pre-computed pixel maps that can be used to display data in -an ImageView widget from the <a class="reference external" href="http://pyqtgraph.org/">PyQtGraph</a> library.</p> +returns a set of pre-computed pixel maps that can be used to display data in an +ImageView widget from the <a class="reference external" href="http://pyqtgraph.org/">PyQtGraph</a> library.</p> <p>These pixel maps are different from the ones generated by the <a class="reference internal" href="#cfelpyutils.geometry_utils.compute_pix_maps" title="cfelpyutils.geometry_utils.compute_pix_maps"><code class="xref py py-func docutils literal notranslate"><span class="pre">compute_pix_maps()</span></code></a> function. The main differences are:</p> <ul class="simple"> <li>The origin of the reference system is not the beam interaction point, but the top left corner of the array used to visualize the data.</li> -<li>Only the x and y pixel maps are available. The other entries in the named tuple -(z, r and phi) are set to None.</li> +<li>Only the x and y pixel maps are available. The other entries in the returned +named tuple (z, r and phi) are set to None.</li> </ul> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> @@ -103,15 +103,15 @@ the <a class="reference internal" href="cfelpyutils.crystfel_utils.html#cfelpyut <code class="descname">apply_geometry_to_data</code><span class="sig-paren">(</span><em>data</em>, <em>geometry</em><span class="sig-paren">)</span><a class="reference internal" href="_modules/cfelpyutils/geometry_utils.html#apply_geometry_to_data"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#cfelpyutils.geometry_utils.apply_geometry_to_data" title="Permalink to this definition">¶</a></dt> <dd><p>Applies CrystFEL geometry information to some data.</p> <p>This function takes as input some geometry information read from a <a class="reference external" href="http://www.desy.de/~twhite/crystfel/manual-crystfel_geometry.html">CrystFEL</a> file, and -some data on which to apply it. It returns an array that can be displayed using a -library like <a class="reference external" href="https://matplotlib.org/">matplotlib</a> or +some data on which to apply the information. It returns an array that can be +displayed using libraries like <a class="reference external" href="https://matplotlib.org/">matplotlib</a> or <a class="reference external" href="http://pyqtgraph.org/">PyQtGraph</a>.</p> -<p>The shape of the returned array is big enough to display all the input pixel -values, and is symmetric around the center of the reference system (i.e: the beam -interaction point).</p> -<p>NOTE: This restrictions often cause the returned array to be bigger than the minimum -size needed to store the physical layout of the pixels in the detector, -particularly if the detector is not centered at the beam interaction point.</p> +<p>The shape of the returned array is big enough to display all the pixel values in +the input data, and is symmetric around the center of the reference system +(i.e: the beam interaction point).</p> +<p>This restrictions often cause the returned array to be bigger than the minimum size +needed to store the physical layout of the pixels in the detector, particularly if +the detector is not centered at the beam interaction point.</p> <table class="docutils field-list" frame="void" rules="none"> <col class="field-name" /> <col class="field-body" /> @@ -161,6 +161,7 @@ applied.</p> <li class="toctree-l2"><a class="reference internal" href="cfelpyutils.named_tuples.html">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/cfelpyutils.html b/docs_src/_build/html/cfelpyutils.html index 24ffb50..e7a0d92 100644 --- a/docs_src/_build/html/cfelpyutils.html +++ b/docs_src/_build/html/cfelpyutils.html @@ -70,6 +70,7 @@ <li class="toctree-l2"><a class="reference internal" href="cfelpyutils.named_tuples.html">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/cfelpyutils.named_tuples.html b/docs_src/_build/html/cfelpyutils.named_tuples.html index d992c10..377126c 100644 --- a/docs_src/_build/html/cfelpyutils.named_tuples.html +++ b/docs_src/_build/html/cfelpyutils.named_tuples.html @@ -16,6 +16,7 @@ <script type="text/javascript" src="_static/language_data.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" /> + <link rel="next" title="Guidelines for Contributors" href="documentation_guidelines_for_contributors.html" /> <link rel="prev" title="The geometry_utils Module" href="cfelpyutils.geometry_utils.html" /> <link rel="stylesheet" href="_static/custom.css" type="text/css" /> @@ -54,7 +55,7 @@ library.</p> <li><strong>r</strong> (<em>numpy.ndarray</em>) – pixel map storing the distance of each pixel from the center of the reference system.</li> <li><strong>phi</strong> (<em>numpy.ndarray</em>) – pixel map storing the amplitude of the angle between each -pixel, the center of the reference system, and the x axis through the center.</li> +pixel, the center of the reference system, and the x axis.</li> </ul> </td> </tr> @@ -118,6 +119,7 @@ pixel, the center of the reference system, and the x axis through the center.</l <li class="toctree-l2 current"><a class="current reference internal" href="#">named_tuples</a></li> </ul> </li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> @@ -126,6 +128,7 @@ pixel, the center of the reference system, and the x axis through the center.</l <li><a href="index.html">Documentation overview</a><ul> <li><a href="cfelpyutils.html">The cfelpyutils Package</a><ul> <li>Previous: <a href="cfelpyutils.geometry_utils.html" title="previous chapter">The geometry_utils Module</a></li> + <li>Next: <a href="documentation_guidelines_for_contributors.html" title="next chapter">Guidelines for Contributors</a></li> </ul></li> </ul></li> </ul> diff --git a/docs_src/_build/html/documentation_guidelines_for_contributors.html b/docs_src/_build/html/documentation_guidelines_for_contributors.html new file mode 100644 index 0000000..81baa5a --- /dev/null +++ b/docs_src/_build/html/documentation_guidelines_for_contributors.html @@ -0,0 +1,146 @@ + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" lang="en"> + <head> + <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> + <title>Guidelines for Contributors — CFELPyUtils 1.0.0 documentation</title> + <link rel="stylesheet" href="_static/alabaster.css" type="text/css" /> + <link rel="stylesheet" href="_static/pygments.css" type="text/css" /> + <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script> + <script type="text/javascript" src="_static/jquery.js"></script> + <script type="text/javascript" src="_static/underscore.js"></script> + <script type="text/javascript" src="_static/doctools.js"></script> + <script type="text/javascript" src="_static/language_data.js"></script> + <link rel="index" title="Index" href="genindex.html" /> + <link rel="search" title="Search" href="search.html" /> + <link rel="prev" title="The named_tuples Module" href="cfelpyutils.named_tuples.html" /> + + <link rel="stylesheet" href="_static/custom.css" type="text/css" /> + + + <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" /> + + </head><body> + + + <div class="document"> + <div class="documentwrapper"> + <div class="bodywrapper"> + + + <div class="body" role="main"> + + <div class="section" id="guidelines-for-contributors"> +<h1>Guidelines for Contributors<a class="headerlink" href="#guidelines-for-contributors" title="Permalink to this headline">¶</a></h1> +<p>Contributions to the project are welcome. Please feel free to submit pull requests +using the standard <a class="reference external" href="https://guides.github.com/introduction/flow/">GitHub flow</a>.</p> +<div class="section" id="version-control"> +<h2>Version Control<a class="headerlink" href="#version-control" title="Permalink to this headline">¶</a></h2> +<p>The CFELPyUtils library is developed using the <a class="reference external" href="https://git-scm.com">Git</a> version +control system.</p> +<p>It uses the branching strategy proposed by Vincent Driessen and commonly known as +<a class="reference external" href="https://nvie.com/posts/a-successful-git-branching-model">Gitflow</a>.</p> +</div> +<div class="section" id="python"> +<h2>Python<a class="headerlink" href="#python" title="Permalink to this headline">¶</a></h2> +<p>The CFELPyUtils library is mainly developed in <a class="reference external" href="https://www.python.org">Python</a>.</p> +<ul class="simple"> +<li>All code in the library must run with both version 2 and 3 of Python, except for +facility-specific code that specifically requires one of the two versions (for +example, Python 2 for the LCSL facility). The code must specifically support all the +currently active versions of python:<ul> +<li>Python 2<ul> +<li>2.7</li> +</ul> +</li> +<li>Python 3<ul> +<li>3.5</li> +<li>3.6</li> +<li>3.7</li> +</ul> +</li> +</ul> +</li> +<li>The <a class="reference external" href="https://python-future.org">python-future</a> project should be used to ensure +that code contributed to the project is compatible with all the supported versions of +Python.</li> +<li>The Python coding style should follow for the most part the <a class="reference external" href="https://github.com/google/styleguide/blob/gh-pages/pyguide.md">Google Python Coding Style</a>.</li> +<li>All docstrings should be written following the <a class="reference external" href="https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html">Google Style </a>.</li> +<li><a class="reference external" href="https://www.pylint.org">Pylint</a> should be run on the code before +submission, as stated in the Google Python Coding Style Guide. In the root +folder of the CFELPyUtils repository, contributors can find a ‘pylintrc’ file with +the settings that should be applied when linting the code. Please see <a class="reference external" href="http://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=pylintrc">here</a> how to +use the pylintrc file.</li> +<li>The <a class="reference external" href="https://github.com/psf/black">Black</a> Python code formatter should be run on +the code before submission.</li> +</ul> +</div> +<div class="section" id="c-c"> +<h2>C/C++<a class="headerlink" href="#c-c" title="Permalink to this headline">¶</a></h2> +<p>Some extension can, for performance reason, be written using the <a class="reference external" href="https://en.wikipedia.org/wiki/C%2B%2B">C++</a> or <a class="reference external" href="https://en.wikipedia.org/wiki/C_(programming_language)">C</a> programming languages.</p> +<ul class="simple"> +<li>All C++ code in OnDA must follow at most the C++98 ISO standard, and the code +must compile on a Linux RHEL7/CentOS7 platform using the standard development stack +that comes with these systems.</li> +<li>Part of the C++11 standard can be used when writing extensions. However, it must be +possible to compile the code using version 4.8 of the ‘gcc’ compiler (in order to +create the Linux binary Python wheel).</li> +<li>All C code in OnDA must follow at most the C99 ISO standard, and the code +must compile on a Linux RHEL7/CentOS7 platform using the standard development stack +that comes with these systems.</li> +<li>The <a class="reference external" href="http://cython.org">Cython</a> project should be used to interface C/C++ code with +Python.</li> +</ul> +</div> +</div> + + + </div> + + </div> + </div> + <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> + <div class="sphinxsidebarwrapper"> + <h3><a href="index.html">Table of Contents</a></h3> + <ul> +<li><a class="reference internal" href="#">Guidelines for Contributors</a><ul> +<li><a class="reference internal" href="#version-control">Version Control</a></li> +<li><a class="reference internal" href="#python">Python</a></li> +<li><a class="reference internal" href="#c-c">C/C++</a></li> +</ul> +</li> +</ul> + +<div id="searchbox" style="display: none" role="search"> + <h3>Quick search</h3> + <div class="searchformwrapper"> + <form class="search" action="search.html" method="get"> + <input type="text" name="q" /> + <input type="submit" value="Go" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> + </div> +</div> +<script type="text/javascript">$('#searchbox').show(0);</script> + </div> + </div> + <div class="clearer"></div> + </div> + <div class="footer"> + ©2019, OnDA Team. + + | + Powered by <a href="http://sphinx-doc.org/">Sphinx 1.8.5</a> + & <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.12</a> + + </div> + + + + + </body> +</html> \ No newline at end of file diff --git a/docs_src/_build/html/genindex.html b/docs_src/_build/html/genindex.html index c2a43c1..19e0c10 100644 --- a/docs_src/_build/html/genindex.html +++ b/docs_src/_build/html/genindex.html @@ -147,6 +147,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/index.html b/docs_src/_build/html/index.html index ea167f9..6e91902 100644 --- a/docs_src/_build/html/index.html +++ b/docs_src/_build/html/index.html @@ -47,25 +47,47 @@ several internal and released CFEL software projects.</p> </div> <div class="section" id="installation"> <h2>Installation<a class="headerlink" href="#installation" title="Permalink to this headline">¶</a></h2> -<p>The CFELPyUtils library is available on PyPI and can be installed using the pip -command:</p> +<p>The CFELPyUtils library is available on the <a class="reference external" href="https://pypi.org/">Python Package Index</a> (PyPI). It can be installed using the ‘pip’ command:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python3 -m pip install cfelpyutils </pre></div> </div> -<p>Or, for python2:</p> -<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python -m pip install cfelpyutils +<p>Or, for Python 2:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python2 -m pip install cfelpyutils </pre></div> </div> -<p>It is also available as an Anaconda package in the ‘ondateam’ channel. It can be -installed using the ‘conda’ command:</p> +<p>It is also available as a package for the <a class="reference external" href="https://anaconda.org/">Anaconda</a> Python +distribution. It can be installed using the ‘conda’ command:</p> <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>conda install -c ondateam cfelpyutils </pre></div> </div> +<p>The library can also be installed manually by checking out the repository and running:</p> +<div class="highlight-bash notranslate"><div class="highlight"><pre><span></span>python setup.py install +</pre></div> +</div> +</div> +<div class="section" id="authors"> +<h2>Authors<a class="headerlink" href="#authors" title="Permalink to this headline">¶</a></h2> +<p>The CFELPyUtils library is currently developed in the lab of +<a class="reference external" href="https://cid.cfel.de/">Henry Chapman</a> at the Center For Free Electron Laser Science +in Hamburg.</p> +<p>Many people from different institutions worlwide contribute code, testing and support +to the project:</p> +<ul class="simple"> +<li><strong>Valerio Mariani</strong> (corresponding author: <a class="reference external" href="mailto:valerio.mariani%40desy.de">valerio<span>.</span>mariani<span>@</span>desy<span>.</span>de</a>)</li> +<li>Anton Barty</li> +<li>Andrew Morgan</li> +<li>Thomas A. White</li> +</ul> </div> <div class="section" id="code-documentation"> <h2>Code Documentation<a class="headerlink" href="#code-documentation" title="Permalink to this headline">¶</a></h2> <p>Code documentation for the CFELPyUtils library can be found <a class="reference internal" href="cfelpyutils.html"><span class="doc">here</span></a>.</p> </div> +<div class="section" id="guidelines-for-contributors"> +<h2>Guidelines for Contributors<a class="headerlink" href="#guidelines-for-contributors" title="Permalink to this headline">¶</a></h2> +<p>Contributions to the projects are welcome. Please see the guidelines for contributors +<a class="reference internal" href="documentation_guidelines_for_contributors.html"><span class="doc">here</span></a>.</p> +</div> </div> @@ -80,7 +102,9 @@ installed using the ‘conda’ command:</p> <li><a class="reference internal" href="#">CFELPyUtils</a><ul> <li><a class="reference internal" href="#introduction">Introduction</a></li> <li><a class="reference internal" href="#installation">Installation</a></li> +<li><a class="reference internal" href="#authors">Authors</a></li> <li><a class="reference internal" href="#code-documentation">Code Documentation</a></li> +<li><a class="reference internal" href="#guidelines-for-contributors">Guidelines for Contributors</a></li> </ul> </li> </ul> diff --git a/docs_src/_build/html/objects.inv b/docs_src/_build/html/objects.inv index 34d07436a47e4c7ece1eb791d06dad404d86eca3..4a820253d6ecab3d4028bc2d93308bcfad0ecf29 100644 GIT binary patch delta 382 zcmV-^0fGM21N;M!hkrapr0q(zUVE*!Y0@eoZ97M4;?ig#iAXX*pMF4SODNDzD>txz zf4^gh=?;W0o#nzHU9K|4oB;HM=sCXF+e|$8O#F!AsGFmCX>9e5rxBs-55$E~gyB;x z1(ku#%i3t?B(+>gw7hE7_c&s%bREhjyY5Me)}lOhi><<pSbs9n^^nyS52`ZlEMUzG zoDps2q5p8>h~NiOWAEi9Nd^pCrv;2pzbl%YeIQJD0b<j(NCh#b*WV@fHr_(-dCer& z=6qX?=3d-<7HTmIwVZ`|_!ku!%T`QL6fZB<7W&*nH;58Kzex&HJ8T3uuva`itll*L z=+w3u;Sb!KhIikq9^ePJX@q_;#fBYJw&beVWgxA;@Tubr1eaj&PUV;?>A#Z71FM^h zy!Y!#fGPo6cLY%il1m0fgBN5AqBb~2ef?Yg7@cKp7ahg=<@r4+zv{C`)!G;!>M}ki ce2G7Q%QirAx(_RS%!@yKKB@nuUzORuw3?E;zW@LL delta 343 zcmV-d0jU1`1JwhNhkt#FNZXZaz4kh7(xgp7+IEiI#4XVRiAb18pMDLYEula+t=z!= z{r#4~W?PinRaQttv|HzjR}#qsVdwZVv$?zrndF`%i*AmU&e+2{okqm6KM<Ev0jH<f z4pok}blzxN70e1%kkwVIzQ+-BrR!KW*>z6}T1$88mRdzQSbv!4ddTXE2UEGOEK)6M znu9j;(7%PLK#Dzh?5(^C$dOZ9X^G?0?}{d89|==YqkL;yWD<<&^>>N=9dD^K;hA7< zDK>}E+=^SyLak?^x>>0Ee^H6Ce9aXj$?D>4k&g_!L6QRdf*nrXuo2wAT?zEK`mOm# zr>@Nie_(GKeo(J^fFEts2>oJ;4LhoA$vZ4W!Le>g5;iD3>lh8SFaB|HmbHc*#pCnS pYwA9|_u{a&14QkTV<MCU|CVhKN|wbHAr{2%A)oqh`2(9_j3!PFt{ngX diff --git a/docs_src/_build/html/py-modindex.html b/docs_src/_build/html/py-modindex.html index 02294c3..b250e79 100644 --- a/docs_src/_build/html/py-modindex.html +++ b/docs_src/_build/html/py-modindex.html @@ -88,6 +88,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/search.html b/docs_src/_build/html/search.html index a117965..e7b25fc 100644 --- a/docs_src/_build/html/search.html +++ b/docs_src/_build/html/search.html @@ -83,6 +83,7 @@ <h3>Navigation</h3> <ul> <li class="toctree-l1"><a class="reference internal" href="cfelpyutils.html">The cfelpyutils Package</a></li> +<li class="toctree-l1"><a class="reference internal" href="documentation_guidelines_for_contributors.html">Guidelines for Contributors</a></li> </ul> <div class="relations"> diff --git a/docs_src/_build/html/searchindex.js b/docs_src/_build/html/searchindex.js index be933e7..2f17d5d 100644 --- a/docs_src/_build/html/searchindex.js +++ b/docs_src/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({docnames:["cfelpyutils","cfelpyutils.crystfel_utils","cfelpyutils.geometry_utils","cfelpyutils.named_tuples","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["cfelpyutils.rst","cfelpyutils.crystfel_utils.rst","cfelpyutils.geometry_utils.rst","cfelpyutils.named_tuples.rst","index.rst"],objects:{"":{cfelpyutils:[0,0,0,"-"]},"cfelpyutils.crystfel_utils":{load_crystfel_geometry:[1,1,1,""]},"cfelpyutils.geometry_utils":{apply_geometry_to_data:[2,1,1,""],compute_pix_maps:[2,1,1,""],compute_visualization_pix_maps:[2,1,1,""]},"cfelpyutils.named_tuples":{PixelMaps:[3,2,1,""]},"cfelpyutils.named_tuples.PixelMaps":{phi:[3,3,1,""],r:[3,3,1,""],x:[3,3,1,""],y:[3,3,1,""],z:[3,3,1,""]},cfelpyutils:{crystfel_utils:[1,0,0,"-"],geometry_utils:[2,0,0,"-"],named_tuples:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},terms:{"41a8fa9819010":1,"class":[3,4],"float":[],"function":[1,2,4],"int":[],"new":[],"return":[1,2],For:[1,4],The:4,These:2,absolut:1,adjust:[],alia:3,all:2,along:2,also:4,amplitud:3,anaconda:4,angl:3,ani:[1,2],appli:[2,4],apply_geometry_to_data:2,around:2,arrai:2,assum:[],avail:[2,4],awai:2,axi:3,base:3,beam:2,been:[],between:3,big:2,bigger:2,can:[2,4],caus:2,ceil:2,center:[2,3,4],cfel:4,cfelpyutil:3,channel:4,code:1,collect:3,command:4,commit:1,complet:2,comput:2,compute_min_array_s:[],compute_pix_map:2,compute_visualization_pix_map:2,conda:4,connect:[],contain:[0,1,2,3,4],convent:2,convert:[],coordin:[2,3],corner:2,correspond:1,crystfel:[1,2],crystfel_util:0,current:[1,4],data:[2,4],describ:[],desi:[],detector:[2,4],develop:4,dict:[1,2],dictionari:[1,2],differ:2,direct:2,displai:2,displayedus:[],distanc:3,document:1,each:3,electron:4,enough:2,entri:2,field:3,fifth:[],file:[1,2],filenam:1,first:[],follow:2,format:1,found:4,fourth:[],free:4,from:[1,2,3],full:1,gener:2,geometri:[1,2,3,4],geometry_util:0,get_detector_geometry_2:1,hamburg:4,hand:2,has:[],here:4,http:[],imag:4,imageview:2,implement:[],inform:[1,2,3,4],input:2,instead:[],interact:2,intern:4,just:[],kei:1,languag:1,laser:4,layout:2,left:2,librari:[0,2,3,4],like:2,link:[],load:1,load_crystfel_geometri:[1,2],main:[0,2],make:[],man:1,mani:[],manipul:2,map:[2,3],match:1,matplotlib:2,minimum:2,mostli:4,name:[2,3],named_tupl:0,ndarrai:[2,3],need:2,none:2,note:2,number:3,numpi:[2,3],object:2,often:2,ondateam:4,ones:2,onli:2,org:[],orient:2,origin:2,other:2,packag:[1,4],page:1,paramet:[1,2,3],particularli:2,path:1,perform:4,phi:[2,3],physic:2,pip:4,pixel:[2,3],pixel_map:[],pixelmap:[2,3],point:2,pre:2,prepar:[],process:4,project:4,provid:[],pypi:4,pyqtgraph:2,python2:4,python3:4,python:[1,4],rai:4,read:[1,2,4],readi:[],refer:[2,3],reimplement:1,rel:1,relat:4,releas:4,relev:1,respect:[],restrict:2,result:[],right:2,same:2,scienc:4,see:1,set:2,sever:4,shape:2,should:2,size:2,softwar:[1,4],some:[1,2],sourc:[1,2],standard:[],store:[1,2,3],str:[1,2],stro:[],style:[],submodul:[],suppos:[],symmetr:2,sync:[],synchron:1,system:[2,3],take:2,task:4,than:2,thi:[1,2,3],third:[],three:[],through:3,throughout:3,top:2,toward:2,tupl:[2,3],twhite:[],two:[],type:[1,2],used:[2,3,4],uses:1,using:[2,4],util:[1,2,4],valu:[1,2],variou:4,vector:[],visual:2,which:[0,2],whole:0,widget:2,work:[],written:4,wth:[],www:[],zenith:2},titles:["The cfelpyutils Package","The crystfel_utils Module","The geometry_utils Module","The named_tuples Module","CFELPyUtils"],titleterms:{The:[0,1,2,3],cfelpyutil:[0,4],code:4,crystfel_util:1,document:4,geometry_util:2,instal:4,introduct:4,modul:[1,2,3],named_tupl:3,packag:0,thecfelpyutil:[]}}) \ No newline at end of file +Search.setIndex({docnames:["cfelpyutils","cfelpyutils.crystfel_utils","cfelpyutils.geometry_utils","cfelpyutils.named_tuples","documentation_guidelines_for_contributors","index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.todo":1,"sphinx.ext.viewcode":1,sphinx:55},filenames:["cfelpyutils.rst","cfelpyutils.crystfel_utils.rst","cfelpyutils.geometry_utils.rst","cfelpyutils.named_tuples.rst","documentation_guidelines_for_contributors.rst","index.rst"],objects:{"":{cfelpyutils:[0,0,0,"-"]},"cfelpyutils.crystfel_utils":{load_crystfel_geometry:[1,1,1,""]},"cfelpyutils.geometry_utils":{apply_geometry_to_data:[2,1,1,""],compute_pix_maps:[2,1,1,""],compute_visualization_pix_maps:[2,1,1,""]},"cfelpyutils.named_tuples":{PixelMaps:[3,2,1,""]},"cfelpyutils.named_tuples.PixelMaps":{phi:[3,3,1,""],r:[3,3,1,""],x:[3,3,1,""],y:[3,3,1,""],z:[3,3,1,""]},cfelpyutils:{crystfel_utils:[1,0,0,"-"],geometry_utils:[2,0,0,"-"],named_tuples:[3,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","attribute","Python attribute"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:attribute"},terms:{"41a8fa9819010":1,"class":[3,5],"float":[],"function":[1,2,5],"int":[],"new":[],"return":[1,2],For:[1,5],The:[4,5],These:2,absolut:1,accord:2,activ:4,adjust:[],alia:3,all:[2,4],along:2,also:5,amplitud:3,anaconda:5,andrew:5,angl:3,ani:[1,2],anton:5,appli:[2,4,5],apply_geometry_to_data:2,around:2,arrai:2,assum:[],avail:[2,5],awai:2,axi:3,barti:5,base:3,beam:2,been:[],befor:4,between:3,big:2,bigger:2,binari:4,black:4,both:4,branch:4,c99:4,can:[2,4,5],caus:2,ceil:2,center:[2,3,5],centos7:4,cfel:5,cfelpyutil:[3,4],channel:[],chapman:5,check:5,code:[1,4],collect:3,com:[],come:4,command:5,commit:1,commonli:4,compat:4,compil:4,complet:2,comput:2,compute_min_array_s:[],compute_pix_map:2,compute_visualization_pix_map:2,conda:5,connect:[],contain:[0,1,2,3,5],contribut:[4,5],convent:2,convert:[],coordin:[2,3],corner:2,correspond:[1,5],creat:4,crystfel:[1,2],crystfel_util:0,current:[1,4,5],cython:4,data:[2,5],describ:[],desi:5,detector:[2,5],develop:[4,5],dict:[1,2],dictionari:[1,2],differ:[2,5],direct:2,displai:2,displayedus:[],distanc:3,distribut:5,doc:[],docstr:4,document:1,documentation_guidelines_for_contributor:[],driessen:4,each:3,electron:5,enough:2,ensur:4,entri:2,exampl:4,except:4,extens:4,facil:4,feel:4,field:3,fifth:[],file:[1,2,4],filenam:1,find:4,first:[],flow:4,folder:4,follow:4,fork:[],format:1,formatt:4,found:5,fourth:[],free:[4,5],from:[1,2,3,5],full:1,futur:4,gcc:4,gener:2,geometri:[1,2,3,5],geometry_util:0,get_detector_geometry_2:1,git:4,gitflow:4,github:4,googl:4,guid:4,hamburg:5,hand:2,has:[],henri:5,here:[4,5],how:4,howev:4,http:[],imag:5,imageview:2,implement:[],index:5,inform:[1,2,3,5],input:2,instead:[],institut:5,interact:2,interfac:4,intern:5,introduct:[],iso:4,just:[],kei:1,known:4,lab:5,languag:[1,4],laser:5,layout:2,lcsl:4,left:2,librari:[0,2,3,4,5],like:2,link:[],lint:4,linux:4,load:1,load_crystfel_geometri:[1,2],main:[0,2],mainli:4,make:[],man:1,mani:5,manipul:2,manual:5,map:[2,3],mariani:5,match:1,matplotlib:2,minimum:2,model:[],morgan:5,most:4,mostli:5,must:4,name:[2,3],named_tupl:0,ndarrai:[2,3],need:2,none:2,note:[],number:3,numpi:[2,3],nvie:[],object:2,often:2,onda:4,ondateam:5,one:4,ones:2,onli:2,order:4,org:[],orient:2,origin:2,other:2,out:5,packag:[1,5],page:1,paramet:[1,2,3],part:4,particularli:2,path:1,peopl:5,perform:[4,5],phi:[2,3],physic:2,pip:5,pixel:[2,3],pixel_map:[],pixelmap:[2,3],platform:4,pleas:[4,5],point:2,possibl:4,post:[],pre:2,prepar:[],process:5,program:4,project:[4,5],propos:4,provid:[],pull:4,pylint:4,pylintrc:4,pypi:5,pyqtgraph:2,python2:5,python3:5,python:[1,5],rai:5,read:[1,2,5],readi:[],reason:4,refer:[2,3],reimplement:1,rel:1,relat:5,releas:5,relev:1,repositori:[4,5],request:4,requir:4,respect:[],restrict:2,result:[],rhel7:4,right:2,root:4,run:[4,5],same:2,scienc:5,scm:[],see:[1,4,5],set:[2,4],setup:5,sever:5,shape:2,should:[2,4],size:2,softwar:[1,5],some:[1,2,4],sourc:[1,2],specif:4,stack:4,standard:4,state:4,store:[1,2,3],str:[1,2],strategi:4,stro:[],style:4,submiss:4,submit:4,submodul:[],success:[],support:[4,5],suppos:[],symmetr:2,sync:[],synchron:1,system:[2,3,4],take:2,task:5,test:5,than:2,thi:[1,2,3],third:[],thoma:5,three:[],through:[],throughout:3,top:2,toward:2,tupl:[2,3],twhite:[],two:4,type:[1,2],use:4,used:[2,3,4,5],uses:[1,4],using:[2,4,5],util:[1,2,5],valerio:5,valu:[1,2],variou:5,vector:[],vincent:4,visual:2,welcom:[4,5],wheel:4,when:4,which:[0,2],white:5,whole:0,widget:2,work:[],worlwid:5,write:4,written:[4,5],wth:[],www:[],zenith:2},titles:["The cfelpyutils Package","The crystfel_utils Module","The geometry_utils Module","The named_tuples Module","Guidelines for Contributors","CFELPyUtils"],titleterms:{The:[0,1,2,3],author:5,cfelpyutil:[0,5],code:5,contributor:[4,5],control:4,crystfel_util:1,document:5,geometry_util:2,guidelin:[4,5],instal:5,introduct:5,modul:[1,2,3],named_tupl:3,packag:0,python:4,thecfelpyutil:[],version:4}}) \ No newline at end of file diff --git a/docs_src/conf.py b/docs_src/conf.py index 135ef9b..da95e3c 100644 --- a/docs_src/conf.py +++ b/docs_src/conf.py @@ -101,6 +101,7 @@ html_static_path = ['_static'] # html_sidebars = { "index": ["localtoc.html", "searchbox.html"], + "documentation*": ["localtoc.html", "searchbox.html"], } # -- Options for HTMLHelp output --------------------------------------------- diff --git a/docs_src/documentation_guidelines_for_contributors.rst b/docs_src/documentation_guidelines_for_contributors.rst new file mode 100644 index 0000000..bcdb3cb --- /dev/null +++ b/docs_src/documentation_guidelines_for_contributors.rst @@ -0,0 +1,79 @@ +Guidelines for Contributors +=========================== + +Contributions to the project are welcome. Please feel free to submit pull requests +using the standard `GitHub flow <https://guides.github.com/introduction/flow/>`_. + + +Version Control +^^^^^^^^^^^^^^^ + +The CFELPyUtils library is developed using the `Git <https://git-scm.com>`_ version +control system. + +It uses the branching strategy proposed by Vincent Driessen and commonly known as +`Gitflow <https://nvie.com/posts/a-successful-git-branching-model>`_. + + +Python +^^^^^^ + +The CFELPyUtils library is mainly developed in `Python <https://www.python.org>`_. + +* All code in the library must run with both version 2 and 3 of Python, except for + facility-specific code that specifically requires one of the two versions (for + example, Python 2 for the LCSL facility). The code must specifically support all the + currently active versions of python: + + * Python 2 + + * 2.7 + + * Python 3 + + * 3.5 + * 3.6 + * 3.7 + +* The `python-future <https://python-future.org>`_ project should be used to ensure + that code contributed to the project is compatible with all the supported versions of + Python. + +* The Python coding style should follow for the most part the `Google Python \ + Coding Style <https://github.com/google/styleguide/blob/gh-pages/pyguide.md>`_. + +* All docstrings should be written following the `Google Style \ + <https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html>`_. + +* `Pylint <https://www.pylint.org>`_ should be run on the code before + submission, as stated in the Google Python Coding Style Guide. In the root + folder of the CFELPyUtils repository, contributors can find a 'pylintrc' file with + the settings that should be applied when linting the code. Please see `here + <http://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=pylintrc>`_ how to + use the pylintrc file. + +* The `Black <https://github.com/psf/black>`_ Python code formatter should be run on + the code before submission. + + +C/C++ +^^^^^ + +Some extension can, for performance reason, be written using the `C++ +<https://en.wikipedia.org/wiki/C%2B%2B>`_ or `C +<https://en.wikipedia.org/wiki/C_(programming_language)>`_ programming languages. + +* All C++ code in OnDA must follow at most the C++98 ISO standard, and the code + must compile on a Linux RHEL7/CentOS7 platform using the standard development stack + that comes with these systems. + +* Part of the C++11 standard can be used when writing extensions. However, it must be + possible to compile the code using version 4.8 of the 'gcc' compiler (in order to + create the Linux binary Python wheel). + +* All C code in OnDA must follow at most the C99 ISO standard, and the code + must compile on a Linux RHEL7/CentOS7 platform using the standard development stack + that comes with these systems. + +* The `Cython <http://cython.org>`_ project should be used to interface C/C++ code with + Python. diff --git a/docs_src/index.rst b/docs_src/index.rst index 929f41c..a3b5c6e 100644 --- a/docs_src/index.rst +++ b/docs_src/index.rst @@ -10,6 +10,7 @@ CFELPyUtils :hidden: cfelpyutils + documentation_guidelines_for_contributors Introduction @@ -25,29 +26,57 @@ several internal and released CFEL software projects. Installation ------------ -The CFELPyUtils library is available on PyPI and can be installed using the pip -command: +The CFELPyUtils library is available on the `Python Package Index +<https://pypi.org/>`_ (PyPI). It can be installed using the 'pip' command: .. code-block:: bash python3 -m pip install cfelpyutils -Or, for python2: +Or, for Python 2: .. code-block:: bash - python -m pip install cfelpyutils + python2 -m pip install cfelpyutils - -It is also available as an Anaconda package in the 'ondateam' channel. It can be -installed using the 'conda' command: +It is also available as a package for the `Anaconda <https://anaconda.org/>`_ Python +distribution. It can be installed using the 'conda' command: .. code-block:: bash conda install -c ondateam cfelpyutils +The library can also be installed manually by checking out the repository and running: + +.. code-block:: bash + + python setup.py install + + +Authors +------- + +The CFELPyUtils library is currently developed in the lab of +`Henry Chapman <https://cid.cfel.de/>`_ at the Center For Free Electron Laser Science +in Hamburg. + +Many people from different institutions worlwide contribute code, testing and support +to the project: + +* **Valerio Mariani** (corresponding author: valerio.mariani@desy.de) +* Anton Barty +* Andrew Morgan +* Thomas A. White + Code Documentation ------------------ -Code documentation for the CFELPyUtils library can be found :doc:`here <cfelpyutils>`. \ No newline at end of file +Code documentation for the CFELPyUtils library can be found :doc:`here <cfelpyutils>`. + + +Guidelines for Contributors +--------------------------- + +Contributions to the projects are welcome. Please see the guidelines for contributors +:doc:`here <documentation_guidelines_for_contributors>`. \ No newline at end of file -- GitLab