mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 06:01:15 +00:00
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>";
|
||||
danbst = "Danylo Hlynskyi <abcz2.uprola@gmail.com>";
|
||||
dancek = "Hannu Hartikainen <hannu.hartikainen@gmail.com>";
|
||||
danharaj = "Dan Haraj <dan@obsidian.systems>";
|
||||
danielfullmer = "Daniel Fullmer <danielrf12@gmail.com>";
|
||||
dasuxullebt = "Christoph-Simon Senjak <christoph.senjak@googlemail.com>";
|
||||
david50407 = "David Kuo <me@davy.tw>";
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{ stdenv
|
||||
, callPackage
|
||||
, lib
|
||||
, fetchurl
|
||||
, unzip
|
||||
|
@ -11,7 +12,8 @@ if !licenseAccepted then throw ''
|
|||
by setting nixpkgs config option 'sc2-headless.accept_license = true;'
|
||||
''
|
||||
else assert licenseAccepted;
|
||||
stdenv.mkDerivation rec {
|
||||
let maps = callPackage ./maps.nix {};
|
||||
in stdenv.mkDerivation rec {
|
||||
version = "3.17";
|
||||
name = "sc2-headless-${version}";
|
||||
|
||||
|
@ -30,6 +32,8 @@ stdenv.mkDerivation rec {
|
|||
mkdir -p $out
|
||||
cp -r . "$out"
|
||||
rm -r $out/Libs
|
||||
|
||||
cp -r "${maps.minigames}"/* "$out"/Maps/
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
|
@ -50,5 +54,6 @@ stdenv.mkDerivation rec {
|
|||
url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
|
||||
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
|
||||
"3to2" = self.py3to2;
|
||||
|
||||
absl-py = callPackage ../development/python-modules/absl-py { };
|
||||
|
||||
aenum = callPackage ../development/python-modules/aenum { };
|
||||
|
||||
affinity = callPackage ../development/python-modules/affinity { };
|
||||
|
@ -268,6 +270,8 @@ in {
|
|||
pythonPackages = self;
|
||||
};
|
||||
|
||||
pysc2 = callPackage ../development/python-modules/pysc2 { };
|
||||
|
||||
pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
|
||||
|
||||
pyside = callPackage ../development/python-modules/pyside { };
|
||||
|
@ -3321,6 +3325,8 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
mpyq = callPackage ../development/python-modules/mpyq { };
|
||||
|
||||
mxnet = buildPythonPackage rec {
|
||||
inherit (pkgs.mxnet) name version src meta;
|
||||
|
||||
|
@ -3341,6 +3347,8 @@ in {
|
|||
'';
|
||||
};
|
||||
|
||||
portpicker = callPackage ../development/python-modules/portpicker { };
|
||||
|
||||
pkginfo = buildPythonPackage rec {
|
||||
version = "1.3.2";
|
||||
name = "pkginfo-${version}";
|
||||
|
@ -7178,6 +7186,7 @@ in {
|
|||
meta.broken = true; # Tests fail, and no reverse-dependencies anyway
|
||||
};
|
||||
|
||||
s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
|
||||
|
||||
statsd = buildPythonPackage rec {
|
||||
name = "statsd-${version}";
|
||||
|
|
Loading…
Reference in a new issue