{ "info": { "author": "Versentiedge LLC", "author_email": "help.fool@versentiedge.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Games/Entertainment :: Real Time Strategy", "Topic :: Scientific/Engineering :: Artificial Intelligence" ], "description": "\n[![PyPI](https://img.shields.io/pypi/v/sc2players.svg)](https://pypi.org/project/sc2players/)\n[![Build Status](https://travis-ci.org/ttinies/sc2players.svg?branch=master)](https://travis-ci.org/ttinies/sc2players)\n[![Coverage Status](https://coveralls.io/repos/github/ttinies/sc2players/badge.svg?branch=master)](https://coveralls.io/github/ttinies/sc2players?branch=master)\n![Crates.io](https://img.shields.io/crates/l/rustc-serialize.svg)\n\n# Define human or AI players to compete in Starcraft 2 matches\n\n### Purpose\n\nVarious Starcraft 2 processes rely on understanding players and differentiating this. This package provides capability to\ndefine them such that matches can be started, identify the player(s) within the match and act as a key for performance\nacross matches.\n\n## Installation\n\nOn a command line, perform the intended query or operation. All queries are performed on the user's local machine.\n(To query remote player definitions, use the [sc2gameLobby](https://github.com/ttinies/sc2gameLobby).\n\n> EXAMPLE: `python sc2players `\n\nTo view the complete and up-to-date options and how to use them, review the --help documentation.\n\n> EXAMPLE: `python sc2players --help`\n\n## Usage\n\n#### Command line operation\n\nFor general use, the intent is to utilize this package's interface. Unless incorporated into external python code, the\ncommand-line interface is the primary means to acquire player information. After specifying the command to invoke this\npackage, the remaining parameters specify the operation to be performed and any parameters for that operation. (**NOTE:**\nspecifying no arguments after the package name simply displays all known players.)\n\n> EXAMPLE: `python -m sc2players `\n\n> EXAMPLE: `python -m sc2players --help`\n\n#### Create your own human player\n\nOnly two parameters must be supplied to create a human player. Name your player and specify its `type` as `human`.\nEach new player that joins the ladder starts with a 500 rating which helps distinguish how well the player performs\nby winning ladder matches.\n\n> EXAMPLE: `python -m sc2players --add name=foreverbronze type=human`\n\n#### Create your own AI bot definition\n\nSimilar to creating a human player, name and type must be supplied. However, an additional parameter must be specified,\n`initCmd`. Details for this additional paremeter depend on whether you are running a python-based bot or something\nelse. Also, instead of `type=human`, your type value can be either `ai` or `bot`.\n* If you're using code to understand data and make decisions (e.g. if `` then ``), set the\ntype as `bot`.\n* Otherwise if your code uses machine learning in some form to make its decisions, set the type as `ai`.\n\n**NOTE**: in realtime mode, it is possible to skip gameloop values and also possible to receive multiple copies of the\nsame observation, depending on how busy the Starcraft 2 game client is, latency associated with data transfer, etc. \n\n##### python AI / bot\n\nThe `initCmd` format must be followed strictly. The format is `` followed by each additional\npackage/module/attribute needed to access your initializing function. First, your package will be imported. Then each\nsubsequent accessor is accessed until the presumed initializtion routine can be invoked. The initialization routine is\ncalled without any parameters. The return value from this function (callable) must be a list (an indexable iterable).\nThe first value (index 0) in this list must be a callback function. Each time a game state observation is received from\nthe connected Starcraft 2 client, your callback function is invoked and the observation is passed as a parameter. Any\nadditional indexes in the returned list can contain python objects of any kind that you wish to persist over the course\nof the game. Additional indexes are optional and subject to your own implementation.\n\n> `initCmd` format EXAMPLE: \"cheeseBot.source.initFunction\"\n\nIn this example, your bot is defined in the `cheeseBot` package (which must be available in your environment). It's \nsubmodule `source` is accessed and ultimately your `initFunction` is accessed then called. The return value from\n`initFunction` must be a list whose first index is a callback function. The callback function is invoked initially once\nto pass the absolute filepath of the json game configuration. This callback function is then subsequently invoked each\ntime a new observation is received.\n\n> EXAMPLE: `python -m sc2players -add name=cheesebot type=bot initCmd=\"cheeseBot.source.initFunction\"`\n\n##### non-python AI / bot\n\nThe `initCmd` format for non-python bots is fairly loose. Whatever you put into this command will be executed verbatim.\nBecause you specify the command content and the command ultimately runs locally on your machine, this is safe. It is\nhighly recommended that you supply the `__CFG_DATA__` keyword as a placeholder for the filepath name of the file that\ncontains the json data for the game configuration. Interpreting that game configuration data for your bot appropriately\nis important.\n\n> EXAMPLE: `python -m sc2players -add name=cheesebot type=bot initCmd=\"runbot.exe --cfg=__CFG_DATA__\"`\n\nAlso, by running your own instance, additional expectations are placed on you (or at least your framework).\n* Interpret the json game data configuration appropriately.\n* Launch the Starcraft 2 game client process.\n* Construct and run the s2clientprotocol to create/join the game.\n* Run the main game loop that acquires observations, interprets the game state and issues unit commands.\n* Upload results and replay information ( [example ](https://github.com/ttinies/sc2gameLobby/blob/master/sc2gameLobby/launcher.py) )\nto the ladder server following the end of the match.\n\n**NOTE:** The [sc2gameLobby for non-python](https://github.com/ttinies/sc2gameLobby/blob/master/USAGE_NON_PYTHON.md) may\nprovide additional, useful information to you how this parameter value will be interpreted.\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ttinies/sc2players", "keywords": "", "license": "Apache License 2.0", "maintainer": "", "maintainer_email": "", "name": "sc2players", "package_url": "https://pypi.org/project/sc2players/", "platform": "", "project_url": "https://pypi.org/project/sc2players/", "project_urls": { "Homepage": "https://github.com/ttinies/sc2players" }, "release_url": "https://pypi.org/project/sc2players/0.4.0/", "requires_dist": [ "sc2common", "six" ], "requires_python": ">3.4", "summary": "A suystem of managing Starcraft 2 player profiles.", "version": "0.4.0" }, "last_serial": 4321906, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "f2a88afcb033bf64352bafeecd2b4d99", "sha256": "fe4a5631bc8d7a6e459006a2aadfa59a6088e7292c5787c387f1d2abc71bf463" }, "downloads": -1, "filename": "sc2players-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f2a88afcb033bf64352bafeecd2b4d99", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 12606, "upload_time": "2018-07-12T00:56:50", "url": "https://files.pythonhosted.org/packages/39/e1/db2dbb03eb3aaaec2be31d30d50ee8ffed8a428612c74770bb20414de234/sc2players-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2d61e061ce1f26d05cbda9846f01cb36", "sha256": "66d3d44c943e731a259783498118a4228bb2cd15864a4490a22672201c8505b5" }, "downloads": -1, "filename": "sc2players-0.3.0.tar.gz", "has_sig": false, "md5_digest": "2d61e061ce1f26d05cbda9846f01cb36", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 11337, "upload_time": "2018-07-12T00:56:51", "url": "https://files.pythonhosted.org/packages/95/f4/10ed0f43f473d0c2ec1fe67aceca6417eab1357d272036879b4db741414d/sc2players-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "2df022d708dabf4a7e2cca91fd087204", "sha256": "d55c9d3dbd8d9b31a2d940d5edeeb0b98eb79e8ab4a1127c67495e7e46a31689" }, "downloads": -1, "filename": "sc2players-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "2df022d708dabf4a7e2cca91fd087204", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 14562, "upload_time": "2018-07-12T02:27:46", "url": "https://files.pythonhosted.org/packages/b8/bd/7ff843733b4b1021679975fa72caebf6aee0c4ccfd421d5f32adf4be97f6/sc2players-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3dea36b34ccf6ba9d9b8485e25367d08", "sha256": "bd8886220df43a3899ceba4cd996d1b309ca66dd24c10dfdb377114d5c2a4e3f" }, "downloads": -1, "filename": "sc2players-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3dea36b34ccf6ba9d9b8485e25367d08", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 18930, "upload_time": "2018-07-12T02:27:47", "url": "https://files.pythonhosted.org/packages/8b/39/8cba1ac227c52f3d4c638cd05c20f09fcea47bd09e61676a47168421a83f/sc2players-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "41a4737b77a4ff2ce5da6b66bc941926", "sha256": "cb16ff20bdb77eb695322d2679758730e1f3fe3919653d46115b26f2b81940e5" }, "downloads": -1, "filename": "sc2players-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "41a4737b77a4ff2ce5da6b66bc941926", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 14562, "upload_time": "2018-07-12T02:34:52", "url": "https://files.pythonhosted.org/packages/f9/64/c78b6dfa2b0e17b51dd459de5218d722328e657812d1b7fdcd692fd71465/sc2players-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb5545390f6c4458dc537f82261c1d9b", "sha256": "ac464ccd5d97d147fc0e038b897b557e769d285bc09517c03c4e7853de6377ec" }, "downloads": -1, "filename": "sc2players-0.3.2.tar.gz", "has_sig": false, "md5_digest": "bb5545390f6c4458dc537f82261c1d9b", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 18929, "upload_time": "2018-07-12T02:34:53", "url": "https://files.pythonhosted.org/packages/32/4b/293bc0a31ba202464cf25a9f93a135c59e1ef71aad1b5e8f04608ef7e2aa/sc2players-0.3.2.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "4ef2a429ff5d901bf115edd07e7384ec", "sha256": "223f554ea6b4341cba6cc9766cb464bea802b20f4c41a88321dbf9f3182f393f" }, "downloads": -1, "filename": "sc2players-0.3.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ef2a429ff5d901bf115edd07e7384ec", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">2.6", "size": 18933, "upload_time": "2018-07-13T02:43:16", "url": "https://files.pythonhosted.org/packages/03/d0/073ad5af3bcfead6dfca1141231771bc9e3253d840c3f840c1b68e9d96c7/sc2players-0.3.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "45bf5aaa4f03ac0fc419396620685c14", "sha256": "3b25454bc05af5da8137024c1ce498d6a128995f9de072428a612f6ea98c488d" }, "downloads": -1, "filename": "sc2players-0.3.4.tar.gz", "has_sig": false, "md5_digest": "45bf5aaa4f03ac0fc419396620685c14", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 20135, "upload_time": "2018-07-13T02:43:17", "url": "https://files.pythonhosted.org/packages/16/66/1f31218b35b41fea9b74a85e640e71c8febe199bbf344debd183591b7bb5/sc2players-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "c22c7cf1d4f53c91110c61990cceb0d4", "sha256": "93c869cc50ae46ae34a856bac4b46513fa981e17a575592b7f05207facaf409f" }, "downloads": -1, "filename": "sc2players-0.3.5-py3.6.egg", "has_sig": false, "md5_digest": "c22c7cf1d4f53c91110c61990cceb0d4", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">2.6", "size": 31608, "upload_time": "2018-08-04T04:24:25", "url": "https://files.pythonhosted.org/packages/4d/f8/2e55b32ef2de616c8d4abe01c3704a271cf28a1cd65a9617e1e82469e53a/sc2players-0.3.5-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "9eaba4e9535243cb31e410900d60c38d", "sha256": "31f5a9aaaca4b7a161844038c78e41288fb45f1c32c28bd131253154c73b9847" }, "downloads": -1, "filename": "sc2players-0.3.5-py3-none-any.whl", "has_sig": false, "md5_digest": "9eaba4e9535243cb31e410900d60c38d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">2.6", "size": 18982, "upload_time": "2018-08-04T04:24:24", "url": "https://files.pythonhosted.org/packages/14/62/c989110462684f761bd2875a8fd0e3b407d15e5b181a5f9fa50ac6cf52fa/sc2players-0.3.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f163c27812e89b5a4157b9bb9a809077", "sha256": "1502b2ced844aec12abb8854a2810e79f6881c3d78a55e61d3b6fb498ccea890" }, "downloads": -1, "filename": "sc2players-0.3.5.tar.gz", "has_sig": false, "md5_digest": "f163c27812e89b5a4157b9bb9a809077", "packagetype": "sdist", "python_version": "source", "requires_python": ">2.6", "size": 20266, "upload_time": "2018-08-04T04:24:26", "url": "https://files.pythonhosted.org/packages/4c/04/6d61c519cc84c69f8901ab6e3a93eecd8bcff68b0024a3b7a20abbba9174/sc2players-0.3.5.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "43cbb164316d6e3a2143a3600e8d4e0b", "sha256": "ae6043ea2d09553e1c6237014fe369a33bb1a411650a83a82cbc56fe8d51e77d" }, "downloads": -1, "filename": "sc2players-0.4.0-py3.6.egg", "has_sig": false, "md5_digest": "43cbb164316d6e3a2143a3600e8d4e0b", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">3.4", "size": 33252, "upload_time": "2018-09-29T04:55:44", "url": "https://files.pythonhosted.org/packages/59/15/db33e033a87ca76b672f4af958ea615fc4dce4d24a9629bba7e3b2de54a1/sc2players-0.4.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ab13cd54488ebeae49803877e36b22d8", "sha256": "1e35691e0cc9fa6c03c104c6d0ada491dd7945be047a2364ce7175ca283dba2a" }, "downloads": -1, "filename": "sc2players-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ab13cd54488ebeae49803877e36b22d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.4", "size": 19966, "upload_time": "2018-09-29T04:55:42", "url": "https://files.pythonhosted.org/packages/96/07/2d3ba6c013256796792cacf1756ef624b9358ec589775df8de9e78b37f51/sc2players-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc080c7215d791bb17127275c94490e7", "sha256": "a65c4370659d0a2820cec99a3873eab126f1fe7faa3930a827f2eae7bdee943c" }, "downloads": -1, "filename": "sc2players-0.4.0.tar.gz", "has_sig": false, "md5_digest": "dc080c7215d791bb17127275c94490e7", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.4", "size": 20839, "upload_time": "2018-09-29T04:55:45", "url": "https://files.pythonhosted.org/packages/1a/47/69a62cb2b2aee6a771aecbfe57fa1567c61c927d02366076097e096d753f/sc2players-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "43cbb164316d6e3a2143a3600e8d4e0b", "sha256": "ae6043ea2d09553e1c6237014fe369a33bb1a411650a83a82cbc56fe8d51e77d" }, "downloads": -1, "filename": "sc2players-0.4.0-py3.6.egg", "has_sig": false, "md5_digest": "43cbb164316d6e3a2143a3600e8d4e0b", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": ">3.4", "size": 33252, "upload_time": "2018-09-29T04:55:44", "url": "https://files.pythonhosted.org/packages/59/15/db33e033a87ca76b672f4af958ea615fc4dce4d24a9629bba7e3b2de54a1/sc2players-0.4.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ab13cd54488ebeae49803877e36b22d8", "sha256": "1e35691e0cc9fa6c03c104c6d0ada491dd7945be047a2364ce7175ca283dba2a" }, "downloads": -1, "filename": "sc2players-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "ab13cd54488ebeae49803877e36b22d8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">3.4", "size": 19966, "upload_time": "2018-09-29T04:55:42", "url": "https://files.pythonhosted.org/packages/96/07/2d3ba6c013256796792cacf1756ef624b9358ec589775df8de9e78b37f51/sc2players-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc080c7215d791bb17127275c94490e7", "sha256": "a65c4370659d0a2820cec99a3873eab126f1fe7faa3930a827f2eae7bdee943c" }, "downloads": -1, "filename": "sc2players-0.4.0.tar.gz", "has_sig": false, "md5_digest": "dc080c7215d791bb17127275c94490e7", "packagetype": "sdist", "python_version": "source", "requires_python": ">3.4", "size": 20839, "upload_time": "2018-09-29T04:55:45", "url": "https://files.pythonhosted.org/packages/1a/47/69a62cb2b2aee6a771aecbfe57fa1567c61c927d02366076097e096d753f/sc2players-0.4.0.tar.gz" } ] }