Merge pull request #30552 from obsidiansystems/pysc2-init
pysc2: init at 1.2
This commit is contained in:
commit
0cedba16b8
@ -145,6 +145,7 @@
|
|||||||
DamienCassou = "Damien Cassou <damien@cassou.me>";
|
DamienCassou = "Damien Cassou <damien@cassou.me>";
|
||||||
danbst = "Danylo Hlynskyi <abcz2.uprola@gmail.com>";
|
danbst = "Danylo Hlynskyi <abcz2.uprola@gmail.com>";
|
||||||
dancek = "Hannu Hartikainen <hannu.hartikainen@gmail.com>";
|
dancek = "Hannu Hartikainen <hannu.hartikainen@gmail.com>";
|
||||||
|
danharaj = "Dan Haraj <dan@obsidian.systems>";
|
||||||
danielfullmer = "Daniel Fullmer <danielrf12@gmail.com>";
|
danielfullmer = "Daniel Fullmer <danielrf12@gmail.com>";
|
||||||
dasuxullebt = "Christoph-Simon Senjak <christoph.senjak@googlemail.com>";
|
dasuxullebt = "Christoph-Simon Senjak <christoph.senjak@googlemail.com>";
|
||||||
david50407 = "David Kuo <me@davy.tw>";
|
david50407 = "David Kuo <me@davy.tw>";
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{ stdenv
|
{ stdenv
|
||||||
|
, callPackage
|
||||||
, lib
|
, lib
|
||||||
, fetchurl
|
, fetchurl
|
||||||
, unzip
|
, unzip
|
||||||
@ -11,7 +12,8 @@ if !licenseAccepted then throw ''
|
|||||||
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
|
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
|
||||||
''
|
''
|
||||||
else assert licenseAccepted;
|
else assert licenseAccepted;
|
||||||
stdenv.mkDerivation rec {
|
let maps = callPackage ./maps.nix {};
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
version = "3.17";
|
version = "3.17";
|
||||||
name = "sc2-headless-${version}";
|
name = "sc2-headless-${version}";
|
||||||
|
|
||||||
@ -30,6 +32,8 @@ stdenv.mkDerivation rec {
|
|||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
cp -r . "$out"
|
cp -r . "$out"
|
||||||
rm -r $out/Libs
|
rm -r $out/Libs
|
||||||
|
|
||||||
|
cp -r "${maps.minigames}"/* "$out"/Maps/
|
||||||
'';
|
'';
|
||||||
|
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
@ -50,5 +54,6 @@ stdenv.mkDerivation rec {
|
|||||||
url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
|
url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
|
||||||
free = false;
|
free = false;
|
||||||
};
|
};
|
||||||
|
maintainers = with lib.maintainers; [ danharaj ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
{ fetchzip
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
minigames = fetchzip {
|
||||||
|
url = "https://github.com/deepmind/pysc2/releases/download/v1.2/mini_games.zip";
|
||||||
|
sha256 = "19f873ilcdsf50g2v0s2zzmxil1bqncsk8nq99bzy87h0i7khkla";
|
||||||
|
stripRoot = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
28
pkgs/development/python-modules/absl-py/default.nix
Normal file
28
pkgs/development/python-modules/absl-py/default.nix
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{ buildPythonPackage
|
||||||
|
, lib
|
||||||
|
, fetchPypi
|
||||||
|
, six
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "absl-py";
|
||||||
|
version = "0.1.3";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "017wc85i7l3vpjzw3shgb7k7n0jfid88g09dlf1kgdy4ll0sjfax";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = [ six ];
|
||||||
|
|
||||||
|
# checks use bazel; should be revisited
|
||||||
|
doCheck = false;
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Abseil Python Common Libraries";
|
||||||
|
homepage = "https://github.com/abseil/abseil-py";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
maintainers = with lib.maintainers; [ danharaj ];
|
||||||
|
};
|
||||||
|
}
|
22
pkgs/development/python-modules/mpyq/default.nix
Normal file
22
pkgs/development/python-modules/mpyq/default.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ buildPythonPackage
|
||||||
|
, lib
|
||||||
|
, fetchPypi
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "mpyq";
|
||||||
|
version = "0.2.5";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "01q0xh2fy3zzsrfr45d2ypj4whs7s060cy1rnprg6sg55fbgbaih";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A Python library for extracting MPQ (MoPaQ) files.";
|
||||||
|
homepage = "https://github.com/eagleflo/mpyq";
|
||||||
|
license = lib.licenses.bsd2;
|
||||||
|
maintainers = with lib.maintainers; [ danharaj ];
|
||||||
|
};
|
||||||
|
}
|
22
pkgs/development/python-modules/portpicker/default.nix
Normal file
22
pkgs/development/python-modules/portpicker/default.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{ buildPythonPackage
|
||||||
|
, lib
|
||||||
|
, fetchPypi
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "portpicker";
|
||||||
|
version = "1.2.0";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "0c1lm3i4yngi1qclb0hny19vwjd2si5k2qni30wcrnxqqasqak1y";
|
||||||
|
};
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A library to choose unique available network ports.";
|
||||||
|
homepage = "https://github.com/google/python_portpicker";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
maintainers = with lib.maintainers; [ danharaj ];
|
||||||
|
};
|
||||||
|
}
|
64
pkgs/development/python-modules/pysc2/default.nix
Normal file
64
pkgs/development/python-modules/pysc2/default.nix
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
{ buildPythonPackage
|
||||||
|
, lib
|
||||||
|
, fetchFromGitHub
|
||||||
|
, absl-py
|
||||||
|
, enum34
|
||||||
|
, future
|
||||||
|
, futures
|
||||||
|
, mock
|
||||||
|
, mpyq
|
||||||
|
, numpy
|
||||||
|
, portpicker
|
||||||
|
, protobuf
|
||||||
|
, pygame
|
||||||
|
, s2clientprotocol
|
||||||
|
, six
|
||||||
|
, websocket_client
|
||||||
|
, sc2-headless
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
version = "1.2";
|
||||||
|
name = "PySC2-${version}";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "deepmind";
|
||||||
|
repo = "pysc2";
|
||||||
|
rev = "39f84b01d662eb58b3d95791f59208c210afd4e7";
|
||||||
|
sha256 = "0dfbc2krd2rys1ji75ng2nl0ki8nhnylxljcp287bfb8qyz2m25p";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./fix-setup-for-py3.patch
|
||||||
|
./parameterize-runconfig-sc2path.patch
|
||||||
|
];
|
||||||
|
|
||||||
|
postPatch = ''
|
||||||
|
substituteInPlace "./pysc2/run_configs/platforms.py" \
|
||||||
|
--subst-var-by 'sc2path' '${sc2-headless}'
|
||||||
|
'';
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
absl-py
|
||||||
|
enum34
|
||||||
|
future
|
||||||
|
mock
|
||||||
|
mpyq
|
||||||
|
numpy
|
||||||
|
portpicker
|
||||||
|
protobuf
|
||||||
|
pygame
|
||||||
|
s2clientprotocol
|
||||||
|
six
|
||||||
|
websocket_client
|
||||||
|
sc2-headless
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Starcraft II environment and library for training agents.";
|
||||||
|
homepage = "https://github.com/deepmind/pysc2";
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
maintainers = with lib.maintainers; [ danharaj ];
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,64 @@
|
|||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 020768f..13c2b67 100755
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -17,6 +17,8 @@ from __future__ import absolute_import
|
||||||
|
from __future__ import division
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
+import sys
|
||||||
|
+
|
||||||
|
from setuptools import setup
|
||||||
|
|
||||||
|
description = """PySC2 - StarCraft II Learning Environment
|
||||||
|
@@ -36,6 +38,27 @@ some initial research results using the environment.
|
||||||
|
Read the README at https://github.com/deepmind/pysc2 for more information.
|
||||||
|
"""
|
||||||
|
|
||||||
|
+requires = [
|
||||||
|
+ 'absl-py>=0.1.0',
|
||||||
|
+ 'future',
|
||||||
|
+ 'mock',
|
||||||
|
+ 'mpyq',
|
||||||
|
+ 'numpy>=1.10',
|
||||||
|
+ 'portpicker>=1.2.0',
|
||||||
|
+ 'protobuf>=2.6',
|
||||||
|
+ 'pygame',
|
||||||
|
+ 's2clientprotocol>=3.19.0.58400.0',
|
||||||
|
+ 'six',
|
||||||
|
+ 'websocket-client',
|
||||||
|
+]
|
||||||
|
+
|
||||||
|
+if sys.version_info[0] == 2:
|
||||||
|
+ requires.append('futures')
|
||||||
|
+
|
||||||
|
+if (sys.version_info[0] == 2
|
||||||
|
+ or (sys.version_info[0] == 3 and sys.version_info[1] < 4)):
|
||||||
|
+ requires.append('enum34')
|
||||||
|
+
|
||||||
|
setup(
|
||||||
|
name='PySC2',
|
||||||
|
version='1.2',
|
||||||
|
@@ -56,21 +79,7 @@ setup(
|
||||||
|
'pysc2.run_configs',
|
||||||
|
'pysc2.tests',
|
||||||
|
],
|
||||||
|
- install_requires=[
|
||||||
|
- 'absl-py>=0.1.0',
|
||||||
|
- 'enum34',
|
||||||
|
- 'future',
|
||||||
|
- 'futures',
|
||||||
|
- 'mock',
|
||||||
|
- 'mpyq',
|
||||||
|
- 'numpy>=1.10',
|
||||||
|
- 'portpicker>=1.2.0',
|
||||||
|
- 'protobuf>=2.6',
|
||||||
|
- 'pygame',
|
||||||
|
- 's2clientprotocol>=3.19.0.58400.0',
|
||||||
|
- 'six',
|
||||||
|
- 'websocket-client',
|
||||||
|
- ],
|
||||||
|
+ install_requires=requires,
|
||||||
|
entry_points={
|
||||||
|
'console_scripts': [
|
||||||
|
'pysc2_agent = pysc2.bin.agent:entry_point',
|
@ -0,0 +1,18 @@
|
|||||||
|
diff --git a/pysc2/run_configs/platforms.py b/pysc2/run_configs/platforms.py
|
||||||
|
index 5cd84f9..1923cb7 100644
|
||||||
|
--- a/pysc2/run_configs/platforms.py
|
||||||
|
+++ b/pysc2/run_configs/platforms.py
|
||||||
|
@@ -119,12 +119,9 @@ class Linux(LocalBase):
|
||||||
|
"""Config to run on Linux."""
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
- base_dir = os.environ.get("SC2PATH", "~/StarCraftII")
|
||||||
|
+ base_dir = os.environ.get("SC2PATH", "@sc2path@")
|
||||||
|
base_dir = os.path.expanduser(base_dir)
|
||||||
|
env = copy.deepcopy(os.environ)
|
||||||
|
- env["LD_LIBRARY_PATH"] = ":".join(filter(None, [
|
||||||
|
- os.environ.get("LD_LIBRARY_PATH"),
|
||||||
|
- os.path.join(base_dir, "Libs/")]))
|
||||||
|
super(Linux, self).__init__(base_dir, "SC2_x64", env=env)
|
||||||
|
|
||||||
|
@classmethod
|
27
pkgs/development/python-modules/s2clientprotocol/default.nix
Normal file
27
pkgs/development/python-modules/s2clientprotocol/default.nix
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
{ buildPythonPackage
|
||||||
|
, lib
|
||||||
|
, fetchPypi
|
||||||
|
, protobuf
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "s2clientprotocol";
|
||||||
|
version = "3.19.1.58600.0";
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
|
||||||
|
src = fetchPypi {
|
||||||
|
inherit pname version;
|
||||||
|
sha256 = "02jqwdfj5zpag4c5nf0707qmwk7sqm98yfgrd19rq6pi58zgl74f";
|
||||||
|
};
|
||||||
|
|
||||||
|
patches = [ ./pure-version.patch ];
|
||||||
|
|
||||||
|
buildInputs = [ protobuf ];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "StarCraft II - client protocol.";
|
||||||
|
homepage = "https://github.com/Blizzard/sc2client-proto";
|
||||||
|
license = lib.licenses.mit;
|
||||||
|
maintainers = with lib.maintainers; [ danharaj ];
|
||||||
|
};
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 89131a8..19527df 100755
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -13,8 +13,6 @@ from distutils.spawn import find_executable
|
||||||
|
from setuptools import setup
|
||||||
|
from setuptools.command.build_py import build_py
|
||||||
|
|
||||||
|
-import gameversion_autogen as ver
|
||||||
|
-
|
||||||
|
SETUP_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
PROTO_DIR = os.path.join(SETUP_DIR, 's2clientprotocol')
|
||||||
|
|
@ -106,6 +106,8 @@ in {
|
|||||||
# Left for backwards compatibility
|
# Left for backwards compatibility
|
||||||
"3to2" = self.py3to2;
|
"3to2" = self.py3to2;
|
||||||
|
|
||||||
|
absl-py = callPackage ../development/python-modules/absl-py { };
|
||||||
|
|
||||||
aenum = callPackage ../development/python-modules/aenum { };
|
aenum = callPackage ../development/python-modules/aenum { };
|
||||||
|
|
||||||
affinity = callPackage ../development/python-modules/affinity { };
|
affinity = callPackage ../development/python-modules/affinity { };
|
||||||
@ -268,6 +270,8 @@ in {
|
|||||||
pythonPackages = self;
|
pythonPackages = self;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
pysc2 = callPackage ../development/python-modules/pysc2 { };
|
||||||
|
|
||||||
pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
|
pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
|
||||||
|
|
||||||
pyside = callPackage ../development/python-modules/pyside { };
|
pyside = callPackage ../development/python-modules/pyside { };
|
||||||
@ -3321,6 +3325,8 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mpyq = callPackage ../development/python-modules/mpyq { };
|
||||||
|
|
||||||
mxnet = buildPythonPackage rec {
|
mxnet = buildPythonPackage rec {
|
||||||
inherit (pkgs.mxnet) name version src meta;
|
inherit (pkgs.mxnet) name version src meta;
|
||||||
|
|
||||||
@ -3341,6 +3347,8 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
portpicker = callPackage ../development/python-modules/portpicker { };
|
||||||
|
|
||||||
pkginfo = buildPythonPackage rec {
|
pkginfo = buildPythonPackage rec {
|
||||||
version = "1.3.2";
|
version = "1.3.2";
|
||||||
name = "pkginfo-${version}";
|
name = "pkginfo-${version}";
|
||||||
@ -7178,6 +7186,7 @@ in {
|
|||||||
meta.broken = true; # Tests fail, and no reverse-dependencies anyway
|
meta.broken = true; # Tests fail, and no reverse-dependencies anyway
|
||||||
};
|
};
|
||||||
|
|
||||||
|
s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
|
||||||
|
|
||||||
statsd = buildPythonPackage rec {
|
statsd = buildPythonPackage rec {
|
||||||
name = "statsd-${version}";
|
name = "statsd-${version}";
|
||||||
|
Loading…
Reference in New Issue
Block a user