Contributing to decompy

We welcome contributions to decompy! By contributing, you can help improve the package and make it more useful for others. Please take a moment to review the guidelines below before making any contributions.

Algorithm Contributions

If you would like to contribute a new algorithm to decompy, please follow these guidelines:

  1. Create a new Python file in one of the following folders, based on the type of algorithm:

    • matrix_factorization: For matrix factorization algorithms.

    • rankmethods: For robust algorithms to estimate rank of matrix or low rank component of data in a factor model.

    • tensor_factorization: For tensor factorization algorithms.

  2. Make sure your algorithm file includes a proper docstring with the following information:

    • Description of the algorithm and its functionality.

    • Input and output specifications.

    • Usage examples, if applicable.

    • References section with proper citations to the algorithm paper or source code.

Code Style and Guidelines

To maintain a consistent codebase, please adhere to the following guidelines:

  • Follow the PEP 8 style guide for Python code.

  • Use meaningful variable and function names.

  • Include comments when necessary to explain the code’s functionality.

  • Write clear and concise code that is easy to understand.

Submitting a Pull Request

When you’re ready to submit your contribution, please follow these steps:

  1. Fork the decompy repository on GitHub.

  2. Create a new branch for your contribution.

  3. Commit your changes to the new branch.

  4. Push the branch to your forked repository.

  5. Open a pull request from your branch to the decompy repository.

License

By contributing to decompy, you agree that your contributions will be licensed under the BSD 3-Clause License.

If you have any questions or need further assistance, feel free to reach out to us.

Thank you for your contributions!