diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..a3d8983 --- /dev/null +++ b/.flake8 @@ -0,0 +1,11 @@ +[flake8] +max-line-length = 79 # PEP8 recommends 79, but you can adjust this +exclude = + venv, # Ignore your virtual environment + .git, # Ignore Git files + __pycache__, # Ignore Python cache + +ignore = + E203, # Ignore specific errors (customize as needed) + W503 # Ignore line break before binary operator + diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..ec80edb --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,31 @@ +name: Python Linting + +on: + push: + branches: + - '**' # Match all branches + pull_request: + branches: + - '**' # Match all branches + +jobs: + lint: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m venv venv # Create a virtual environment in the project root + ./venv/bin/pip install -r requirements.txt # Install dependencies from requirements.txt + + - name: Run Flake8 + run: | + ./venv/bin/flake8 . --config=.flake8 # Run flake8 using the configuration in .flake8 diff --git a/idealstructure.md b/idealstructure.md new file mode 100644 index 0000000..e24dd06 --- /dev/null +++ b/idealstructure.md @@ -0,0 +1,65 @@ +To maintain a clean and organized GitHub repository structure, particularly with multiple documentation files, it’s essential to have a structured hierarchy. Here’s a layout that will keep your project files organized and accessible for contributors: + +### Suggested Repository Structure + +```plaintext +MidasTechnologies/ +├── .github/ # GitHub-specific files +│ ├── ISSUE_TEMPLATE/ # GitHub issue templates +│ ├── PULL_REQUEST_TEMPLATE.md # Pull request template +│ └── workflows/ # CI/CD workflow files +│ └── ci.yml # Example CI configuration (e.g., GitHub Actions) +├── docs/ # Documentation directory +│ ├── README.md # Overview of documentation contents +│ ├── setup/ # Setup-related docs +│ │ ├── installation.md # Installation instructions +│ │ └── configuration.md # Configuring the environment or application +│ ├── guides/ # Guide files for team collaboration +│ │ ├── branching.md # Branching strategy guide (from previous step) +│ │ ├── code_style.md # Code style and formatting standards +│ │ ├── contributing.md # Contribution guidelines +│ │ └── testing.md # Testing and CI/CD setup guide +│ ├── reference/ # Technical references or design documentation +│ │ ├── architecture.md # Project architecture +│ │ └── data_structures.md # Key data structures and algorithms used +│ └── API/ # API documentation, if applicable +│ └── api_overview.md # Overview of APIs used or exposed by the project +├── src/ # Source code directory +│ ├── main/ # Main branch source code +│ └── dev/ # Development branch source code +├── tests/ # Testing suite and files +│ ├── unit/ # Unit tests +│ ├── integration/ # Integration tests +│ └── README.md # Overview of testing guidelines +├── .gitignore # Git ignore file +├── LICENSE # License file for the repository +└── README.md # Main README for the repository +``` + +### Directory Explanation + +1. **`.github/`:** Contains GitHub-specific configuration files, such as issue and pull request templates, as well as workflows for automated testing and CI/CD. + +2. **`docs/`:** All documentation files, organized into meaningful subdirectories. + - **`setup/`:** For setup-related documentation like installation, configuration, and environment setup. + - **`guides/`:** Team collaboration guides, including the branching guide, contribution guidelines, and code style documents. + - **`reference/`:** More technical references, project architecture, and specific implementations for future reference. + - **`API/`:** Documentation for APIs if your project has them. + +3. **`src/`:** Contains all source code, organized into the `main` and `dev` branches or modules if needed. + +4. **`tests/`:** For all testing-related files, including subdirectories for unit and integration tests, plus a README outlining test protocols. + +5. **Project Root Files:** + - **`.gitignore`:** For files and directories to ignore in the repository. + - **`LICENSE`:** Licensing information for the repository. + - **`README.md`:** Main project overview, including how to get started, major features, and basic setup steps. + +### Additional Tips + +- **Keep Documentation Centralized:** The `docs/` directory keeps all documentation in one place, easy to locate and update. +- **Standardize Documentation Files:** Use markdown (`.md`) for all documentation to ensure readability on GitHub and other markdown-rendering platforms. +- **Use Templates in `.github/`:** Issue and pull request templates help streamline contributions and feedback. +- **README.md Clarity:** The main README file should serve as a quick start guide and overview for the repository. This document should also link to relevant documentation files within `docs/`. + +This structure will make the repository accessible and organized, simplifying onboarding, documentation, and collaboration among team members. diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..b16d479 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,30 @@ +attrs==24.2.0 +beautifulsoup4==4.12.3 +certifi==2024.8.30 +charset-normalizer==3.4.0 +flake8==7.1.1 +h11==0.14.0 +idna==3.10 +mccabe==0.7.0 +numpy==2.1.2 +outcome==1.3.0.post0 +pandas==2.2.3 +pycodestyle==2.12.1 +pyflakes==3.2.0 +PySocks==1.7.1 +python-dateutil==2.9.0.post0 +pytz==2024.2 +requests==2.32.3 +selenium==4.25.0 +six==1.16.0 +sniffio==1.3.1 +sortedcontainers==2.4.0 +soupsieve==2.6 +tqdm==4.66.6 +trio==0.27.0 +trio-websocket==0.11.1 +typing_extensions==4.12.2 +tzdata==2024.2 +urllib3==2.2.3 +websocket-client==1.8.0 +wsproto==1.2.0