{"id":30996958,"url":"https://github.com/pykale/mmai-hackathon","last_synced_at":"2025-09-12T22:23:46.889Z","repository":{"id":313762999,"uuid":"1048499503","full_name":"pykale/mmai-hackathon","owner":"pykale","description":"Base code implementation for MMAI '25 Workshop Hackathon","archived":false,"fork":false,"pushed_at":"2025-09-08T09:37:52.000Z","size":45,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-08T10:37:31.682Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pykale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-01T14:37:15.000Z","updated_at":"2025-09-08T09:37:55.000Z","dependencies_parsed_at":"2025-09-08T10:37:34.713Z","dependency_job_id":"b509ceb1-40c1-4bfe-b7c5-437f9ad68771","html_url":"https://github.com/pykale/mmai-hackathon","commit_stats":null,"previous_names":["pykale/mmai-hackathon"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/pykale/mmai-hackathon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykale%2Fmmai-hackathon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykale%2Fmmai-hackathon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykale%2Fmmai-hackathon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykale%2Fmmai-hackathon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pykale","download_url":"https://codeload.github.com/pykale/mmai-hackathon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pykale%2Fmmai-hackathon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274885884,"owners_count":25368223,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-12T02:00:09.324Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-09-12T22:23:42.383Z","updated_at":"2025-09-12T22:23:46.870Z","avatar_url":"https://github.com/pykale.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MultimodalAI'25 Hackathon Base Source Code\n\n[![tests](https://github.com/pykale/mmai-hackathon/workflows/test/badge.svg)](https://github.com/pykale/mmai-hackathon/actions/workflows/test.yml)\n[![codecov](https://codecov.io/gh/pykale/mmai-hackathon/branch/main/graph/badge.svg)](https://codecov.io/gh/pykale/mmai-hackathon)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/pykale/mmai-hackathon/blob/main/LICENSE)\n[![Python](https://img.shields.io/badge/python-3.10%20%7C%203.11%20%7C%203.12-blue)](https://www.python.org)\n\n## Overview\n\nThis repository provides the base source code for the MultimodalAI'25 workshop Hackathon. It is designed to help participants get started quickly with a pre-configured Python environment and essential dependencies for development and testing.\n\n## Requirements\n\n- Python 3.10, 3.11, or 3.12\n- Git\n\n## Installation\n\nThe steps below are linear and work with `venv`, `conda`, or `uv`. Pick one method and follow it end‑to‑end.\n\n### 1) Clone and create an environment\n\n```bash\ngit clone https://github.com/pykale/mmai-hackathon.git\ncd mmai-hackathon\n\n# conda (recommended)\nconda create -n mmai-hackathon python=3.11 -y\nconda activate mmai-hackathon\n\n\n# venv (alternative)\n# python3 -m venv .venv \u0026\u0026 source .venv/bin/activate\n\n# uv (alternative)\n# uv venv .venv \u0026\u0026 source .venv/bin/activate\n```\n\n### 2) Install dependencies (with tests)\n\n```bash\n\n# Recommended for development and testing (includes pytest, coverage, linters)\npip install -e .[dev]\n\n# If you only need runtime dependencies (not recommended for contributors):\n# pip install -e .\n```\n\nBy default, the dependencies declared in `pyproject.toml` are sufficient (they include `torch` and `torch-geometric`).\n\nOnly if you enable a data‑loading extension that requires extra PyG ops (e.g., `torch-scatter`, `torch-sparse`, `torch-cluster`, `torch-spline-conv`), do you need to install those extras. The snippet below detects your Torch/CUDA and prints the correct wheel index to use for these optional packages:\n\n```bash\n# Inspect Torch / CUDA (optional)\npython - \u003c\u003c'PYINFO'\nimport torch\nprint('Torch:', torch.__version__)\nprint('CUDA version:', torch.version.cuda)\nprint('CUDA available:', torch.cuda.is_available())\nPYINFO\n\n# Compute the PyG wheel index matching your Torch/CUDA\nPYG_INDEX=$(python - \u003c\u003c'PYG'\nimport torch\ntorch_ver = torch.__version__.split('+')[0]\ncuda = torch.version.cuda\nif cuda:\n    cu_tag = f\"cu{cuda.replace('.', '')}\"\nelse:\n    cu_tag = 'cpu'\nprint(f\"https://data.pyg.org/whl/torch-{torch_ver}+{cu_tag}.html\")\nPYG\n)\necho \"Using PyG wheel index: $PYG_INDEX\"\n\n# Install only the extras you need, for example:\n# pip install torch-scatter -f \"$PYG_INDEX\"\n# pip install torch-sparse  -f \"$PYG_INDEX\"\n# pip install torch-cluster -f \"$PYG_INDEX\"\n# pip install torch-spline-conv -f \"$PYG_INDEX\"\n```\n\nMore details: https://pytorch-geometric.readthedocs.io/en/latest/notes/installation.html\n\n### 3) (Optional) Pre‑commit hooks\n\n```bash\npre-commit install\n```\n\n### 4) Run tests\n\n```bash\npytest\n```\n\n## Example data\n\nExample data can be downloaded from [this Dropbox folder](https://www.dropbox.com/scl/fo/8xjlsri0zcov20v8xsyxa/AOMpquFinnQnp287lT5hxJM?rlkey=1h1sm3wxd4s1oeygludri6hr6\u0026st=cg0qdhic\u0026dl=0). No Dropbox account is required to access the files.\n\n## Notes\n\n- The project restricts Python versions to 3.10–3.12 as specified in `.python-version` and `pyproject.toml`.\n- For more information about the dependencies, see `pyproject.toml`.\n\nTip: Integration tests optionally use real data. In CI, datasets are downloaded with `python -m tests.dropbox_download \"/MMAI25Hackathon\" \"MMAI25Hackathon\" --unzip` when a Dropbox token is configured.\n\n## Authors\n\n- Shuo Zhou (\u003cshuo.zhou@sheffield.ac.uk\u003e)\n- Xianyuan Liu (\u003cxianyuan.liu@sheffield.ac.uk\u003e)\n- Wenrui Fan (\u003cwenrui.fan@sheffield.ac.uk\u003e)\n- Mohammod N. I. Suvon (\u003cm.suvon@sheffield.ac.uk\u003e)\n- L. M. Riza Rizky (\u003cl.m.rizky@sheffield.ac.uk\u003e)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpykale%2Fmmai-hackathon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpykale%2Fmmai-hackathon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpykale%2Fmmai-hackathon/lists"}