{"id":13677516,"url":"https://github.com/DrInfy/sharpy-sc2","last_synced_at":"2025-04-29T11:31:15.227Z","repository":{"id":37981546,"uuid":"224019937","full_name":"DrInfy/sharpy-sc2","owner":"DrInfy","description":"Python framework for rapid development of Starcraft 2 AI bots","archived":false,"fork":false,"pushed_at":"2024-11-24T09:36:32.000Z","size":30030,"stargazers_count":71,"open_issues_count":18,"forks_count":27,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2024-11-24T10:25:59.803Z","etag":null,"topics":["dummy-bots","sc2-pathlib","sharpy-sc2","starcraft2","starcraft2-ai"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DrInfy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2019-11-25T18:57:37.000Z","updated_at":"2024-11-24T09:36:37.000Z","dependencies_parsed_at":"2024-01-14T15:23:46.466Z","dependency_job_id":"a6d0e64b-1f8f-4935-a853-345edb53feaa","html_url":"https://github.com/DrInfy/sharpy-sc2","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrInfy%2Fsharpy-sc2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrInfy%2Fsharpy-sc2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrInfy%2Fsharpy-sc2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DrInfy%2Fsharpy-sc2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DrInfy","download_url":"https://codeload.github.com/DrInfy/sharpy-sc2/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251493775,"owners_count":21598168,"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","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":["dummy-bots","sc2-pathlib","sharpy-sc2","starcraft2","starcraft2-ai"],"created_at":"2024-08-02T13:00:43.356Z","updated_at":"2025-04-29T11:31:11.824Z","avatar_url":"https://github.com/DrInfy.png","language":"Python","readme":"# sharpy-sc2\n\nSharpy is a Python framework for rapid development of Starcraft 2 AI bots.\n\nSharpy is built on top of [python-sc2](https://github.com/BurnySc2/python-sc2) and it is the framework used by [Sharpened Edge](https://ai-arena.net/bots/40/) bot.\n\nSharpy was created to make it as easy as possible to create practice dummies for testing against Sharpened Edge. Sharpy contains everything needed to run all the practise dummies, as well as means to create more.\n\nSharpy is a work in progress. The folder structure and classes are subject to change.\n\n### Build statuses\n\nMaster branch ![](https://github.com/DrInfy/sharpy-sc2/workflows/Python%20actions/badge.svg?branch=master)\n\nDevelop branch ![](https://github.com/DrInfy/sharpy-sc2/workflows/Python%20actions/badge.svg?branch=develop)\n\n### Requirements\n\n1. Python 3.8/3.9/3.11 64-bit\n   * Python-sc2 requires python 3.8\n   * 64-bit requirement comes from [sc2-pathlib](https://github.com/DrInfy/sc2-pathlib) as the pathlib is built for 64-bit python 3.8/3.9/3.11\n1. Windows, Linux or MacOS\n   * This requirement comes from [sc2-pathlib](https://github.com/DrInfy/sc2-pathlib)\n   * macOS should be supported, but I have no way to test it [sc2-pathlib](https://github.com/DrInfy/sc2-pathlib) is built for it.\n\n### Ladder Dummy Bots\n\nTo build dummy bots for ladder, run ladder_zip.py. Bots will appear as individual zip files in publish folder.\n\n### Getting started\n\nRead the [getting started](https://github.com/DrInfy/sharpy-sc2/wiki/Getting-Started) guide in wiki.\n\n## Contributing\n\nTo contribute to sharpy-sc2 source code, please create a pull request.\n\nWe also appreciate well written issues, comments and improvements to project wiki.\n\n### Pull Request Process\n\n* Keep pull requests small and atomic. Change only one logical thing at a time.\n* If you do a pull request for unit micro, showcase it with a dummy bot and explain how it improves the previous implementation\n* All Github actions checks for the PR must pass before it will be reviewed.\n    * Make sure that the source code is formatted according to rules (see below)\n    * Make sure that the source code passes linting\n    * Make sure that all tests pass\n\n## Developing sharpy-sc2\n\n### Using Virtual Environment\n\n#### Windows\n\nVirtual Environments (venv) can be used to isolate this project's Python dependencies from other projects.\n\nYou can create a virtual environment for this project with\n\n```\nvenv-create.bat\n```\n\nAnd activate it with\n\n```\nvenv-activate.bat\n```\n\nVenv needs to be activated for every new console window, so it may be helpful to create an alias such as\n```\ndoskey sharpy=cd C:\\Dev\\sharpy-sc2 $T venv-activate.bat\n```\n\nMore information about virtual environments can be found from the [documentation.](https://docs.python.org/3.6/tutorial/venv.html)\n\n#### Other operating systems\n\nYou may replicate the commands used by the above bat scripts to work on your own operating system. \n\n### Installing Depedencies\n\nTo install all dependencies required to run the bots, use\n\n```\npip install -r requirements.txt\n```\n\nTo install all development dependencies, use\n\n```\npip install -r requirements.dev.txt\n```\n\n#### Pre-commit hooks\n\nTo install git pre-commit hooks that will run black and flake8 (see below), use\n\n```\npre-commit install\n```\n\nIf you ever want to uninstall the hooks, use\n\n```\npre-commit uninstall\n```\n\nor simply uninstall the `.git\\hooks\\pre-commit` file.\n\n### Code Formatting\n\nsharpy-sc2 uses [Black](https://pypi.org/project/black/) for automatic Python source code formatting.\n\nto format code automatically, run \n\n```\n\u003e py -m black .\nAll done! ✨ � ✨\n272 files left unchanged.\n```\n\nBlack can also be integrated to your favorite editor. See Editor Integration section in [Black](https://pypi.org/project/black/#editor-integration) readme.\n\n### Linting\n\nsharpy-sc2 uses [flake8](https://pypi.org/project/flake8/) for source code linting.\n\nTo run flake8 linting, use\n\n```\n\u003e py -m flake8\n0\n```\n\n### Running Tests\n\nTests are written using [pytest framework](https://docs.pytest.org/en/latest/getting-started.html).\n\nTo run all tests, use\n\n```\npytest\n```\n\nTo run tests from a single test file, use `pytest path-to-file` eg.\n\n```\npytest sharpy\\knowledges\\knowledge_test.py\n```\n\npytest follows standard test discovery rules and will run all tests in the current directory and its subdirectories.\n\nFor new tests, make sure that...\n1. file name follows the naming pattern of `*_test.py`\n1. the test class name starts with `Test*`\n1. all test methods start with `test_*`.\n","funding_links":[],"categories":["Frameworks","Software Packages"],"sub_categories":["Python Frameworks"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDrInfy%2Fsharpy-sc2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDrInfy%2Fsharpy-sc2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDrInfy%2Fsharpy-sc2/lists"}