Rules and Procedure
This guide aims to assist ML developers in efficiently and reliably navigating our shared resources. Before starting, lets start with some rules and procedures. Sorry, but we now have a mandate to maintain the following file structure for consistency and predictability in API calls (although the exact rules may be subject to change at any time)
Why All of this Structure and Rules?
Understanding the structure and purpose of files in a project is crucial for several reasons:
- Collaboration: If you're working as part of a team, understanding the file structure helps you and your teammates navigate the project efficiently.
- Scalability: As the project grows, a well-structured file system can accommodate new features and components more easily.
- Reproducibility: Files like
requirements.txtand.envhelp reproduce the development environment, which is crucial for consistent behavior across different setups.
Now that you know why we need this, here is how you do it below (along with reading the documenatation)
Notes
File System
Everything referenced below should be included in your gitlab repo
README.md: This file provides instructions on how to interact with the module.app.ipynb: This script wraps the module with a handler function, serving as the main entry point for the application.module/submodule/__init__.py: This file is used to initialize the Python module and make its features accessible to the rest of the application.requirements.txt: This file lists all Python dependencies required by the application, ensuring that your environment can be reproduced successfully..env: This file contains sensitive information such as credentials. It is excluded from version control using.gitignore..gitignore: This file specifies patterns of files or directories that Git should ignore, preventing unnecessary or sensitive files from being included in the version control system.tests/tests.py: This script contains tests for all use cases, abuse cases, and edge cases. It should be run before each deployment to ensure the application functions as expected.
Remember, it's important to keep your file system organized and well-documented to facilitate collaboration and maintainability.