Guidelines for Contribution ============================ We would like to thank you and several others who have offered / are willing to contribute their code. We are more than happy to add your code to this project. Just as we strive to ensure that you get the best possible software from us, we ask that you do the same for others. We do NOT ask that your code be as efficient as possible. Instead, we have some simpler and easier requests. We have compiled a list of best practices below with links to additional information. If you are confused or need more help, please feel free to `contact us <./contact.html>`_. General guidelines ------------------ Our sister project, ``sidpy``, has `comprehensive guidelines `_ about contributing code. Please refer to that page before following pycroscopy specific guidelines below. Pycroscopy guidelines --------------------- At a minimum, we request that everyone follow these guidelines: * Please ensure that your code files fit into our `package structure `_ * Application-specific algorithms, engineering tools, data readers and writers go into other packages. * Provide a few examples on how one might use your code - preferably via a jupyter notebook. While not mandatory, we encourage everyone to follow the additional guidelines below to ensure that your code is fully pycroscopy-compatible and is used by everyone. Please consider familiarizing yourself with the `examples `_ on functionality available in ``sidpy`` so that you can use the available functionality to simplify your code in addition to avoiding the development of duplicate code. If you have not yet begun developing your code, please note that it will be far easier to use tools in the pycroscopy ecosystem while developing the code rather than adapting pre-written code to work within pycroscopy.