spawningtool 2.10.0
Build order parser for StarCraft 2 replays

spawningtool
============

spawningtool is tools for analyzing StarCraft 2 Replays. It uses the data parsed by [sc2reader](https://github.com/ggtracker/sc2reader) to make data available in a more human-digestable format.

Currently, spawningtool offers a basic parser for extracting build orders from replays. Our goal is to incorporate more sophisticated techniques from Artificial Intelligence to understand and classify these build orders.

Installation
============
From PyPi (stable but often out of date for the latest patch)
```bash
pip install spawningtool
```

From GitHub (less stable but recommended)
```bash
pip install -e git+git://github.com/StoicLoofah/spawningtool.git#egg=spawningtool
```

Note that master usually requires sc2reader master, not the latest versioned release, so you will need to grab sc2reader from GitHub as well. Although it is less stable, it is recommended because the latest versions of both spawningtool and sc2reader are necessary to parse the most recent patches of StarCraft 2

Usage
============
To execute it directly from the command line
```bash
python -m spawningtool PATH/TO/REPLAY
```

To execute it from within python
```python
import spawningtool.parser
spawningtool.parser.parse_replay('PATH/TO/REPLAY')
```

For more notes, see the [GitHub wiki](https://github.com/StoicLoofah/spawningtool/wiki)

Support
============
Please submit any issues you encounter to the [GitHub project](https://github.com/StoicLoofah/spawningtool/issues). You're also welcome to email Kevin directly at kevin@kevinleung.com.

Thanks To
============
* @dsjoerg for many contributions to sc2reader and replay parsing as a whole through his work at ggtracker
* @hahnicity for all of the code cleanup. Previously, spawningtool was just a script. Thanks to his help, the code is actually readable and packaged for others to use and improve
* @GraylinKim for lots of support. Even before the project switched over to using [sc2reader](https://github.com/GraylinKim/sc2reader), he offered advice and tips on getting this project off the ground.


Changes
=======

* v2.10.0, February 13, 2023 -- update ladder data for balance patch 5.0.11
* v2.9.0, August 17, 2021 -- Fix Liberator build time, add more display names
* v2.8.0, October 28, 2020 -- add Mengsk
* v2.7.0, January 18, 2020 -- update ladder data for balance patch 4.11.0
* v2.6.1, October 14, 2019 -- bump sc2reader>=1.4.0, balance updates
* v2.6.0, August 9, 2019 -- add Stetmann, mark additional worker types
* v2.5.2, March 27, 2019 -- update Forge upgrade timing for March 25, 2019 balance update
* v2.5.1, March 8, 2019 -- remove changelings of Marines with Combat Shield
* v2.5.0, January 22, 2019 -- update ladder data for balance patch 4.8.2
* v2.4.0, November 21, 2018 -- update ladder data for balance patch 4.7.1
* v2.3.0, November 18, 2018 -- bump sc2reader==1.3.0 for StarCraft 4.7, add Zeratul
* v2.2.2, October 28, 2018 -- fix various LotV data, added more display names
* v2.2.1, October 24, 2018 -- fix pip packaging. Thanks Gusgus01
* v2.2.0, October 7, 2018 -- bump sc2reader==1.2.0 for StarCraft 4.6, add Tychus
* v2.1.0, June 13, 2018 -- fix Lair and Hive co-op build time, add Abathur building morph reduction, fix co-op generic build times, moved this file
* v2.0.0, May 18, 2018 -- continuous integration, StarCraft 2 4.0 support (new unit types, chronoboost, etc.), Co-op support
* v1.0.0, December 9, 2016 -- improved LotV chronoboost support, better unit type coverage, updated to LotV 3.8.0 data
* v0.2.1, December 12, 2015 -- Legacy of the Void support, HotS chrono boost
* v0.2.0, March 3, 2015 -- python3 support, analysis script examples, map details, caching
* v0.1.3, August 12, 2013 -- bump to sc2reader 0.6.0, unit tests, add unit change events to build order, add units lost, add ability extraction
* v0.1.2, June 15, 2013 -- Locking in sc2reader version, fix supply for it
* v0.1.1, May 12, 2013 -- Updating main to be accessible via the package, adding more metadata
* v0.1.0, May 12, 2013 -- Initial release