Skip to content

Commit 37eb5c3

Browse files
committed
Merge branch 'dev'
2 parents c4a46d9 + 59d2301 commit 37eb5c3

File tree

8 files changed

+744
-1
lines changed

8 files changed

+744
-1
lines changed

.gitignore

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
*.swp
6+
7+
# C extensions
8+
*.so
9+
10+
# Distribution / packaging
11+
.Python
12+
build/
13+
develop-eggs/
14+
dist/
15+
downloads/
16+
eggs/
17+
.eggs/
18+
lib/
19+
lib64/
20+
parts/
21+
sdist/
22+
var/
23+
wheels/
24+
pip-wheel-metadata/
25+
share/python-wheels/
26+
*.egg-info/
27+
.installed.cfg
28+
*.egg
29+
MANIFEST
30+
31+
# PyInstaller
32+
# Usually these files are written by a python script from a template
33+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
34+
*.manifest
35+
*.spec
36+
37+
# Installer logs
38+
pip-log.txt
39+
pip-delete-this-directory.txt
40+
41+
# Unit test / coverage reports
42+
htmlcov/
43+
.tox/
44+
.nox/
45+
.coverage
46+
.coverage.*
47+
.cache
48+
nosetests.xml
49+
coverage.xml
50+
*.cover
51+
*.py,cover
52+
.hypothesis/
53+
.pytest_cache/
54+
55+
# Translations
56+
*.mo
57+
*.pot
58+
59+
# Django stuff:
60+
*.log
61+
local_settings.py
62+
db.sqlite3
63+
db.sqlite3-journal
64+
65+
# Flask stuff:
66+
instance/
67+
.webassets-cache
68+
69+
# Scrapy stuff:
70+
.scrapy
71+
72+
# Sphinx documentation
73+
docs/_build/
74+
75+
# PyBuilder
76+
target/
77+
78+
# Jupyter Notebook
79+
.ipynb_checkpoints
80+
81+
# IPython
82+
profile_default/
83+
ipython_config.py
84+
85+
# pyenv
86+
.python-version
87+
88+
# pipenv
89+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
90+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
91+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
92+
# install all needed dependencies.
93+
#Pipfile.lock
94+
95+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
96+
__pypackages__/
97+
98+
# Celery stuff
99+
celerybeat-schedule
100+
celerybeat.pid
101+
102+
# SageMath parsed files
103+
*.sage.py
104+
105+
# Environments
106+
.env
107+
.venv
108+
env/
109+
venv/
110+
ENV/
111+
env.bak/
112+
venv.bak/
113+
114+
# Spyder project settings
115+
.spyderproject
116+
.spyproject
117+
118+
# Rope project settings
119+
.ropeproject
120+
121+
# mkdocs documentation
122+
/site
123+
124+
# mypy
125+
.mypy_cache/
126+
.dmypy.json
127+
dmypy.json
128+
129+
# Pyre type checker
130+
.pyre/

CONTRIBUTING.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
# Contributing to PathOfBuilding-Python
2+
3+
## Setting up a development installation
4+
5+
* This project targets Python 3.10. You can install it from
6+
[here](https://www.python.org/downloads/release/python-3100/).
7+
* For dependency management, we use [poetry](https://python-poetry.org/).
8+
Install it like so (Powershell):
9+
```shell
10+
(Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py -UseBasicParsing).Content | python -
11+
```
12+
* Run this command to clone the repository:
13+
```shell
14+
git clone -b dev https://github.com/PathOfBuildingCommunity/PathOfBuilding.git
15+
```
16+
* Afterwards, run this command to install all dependencies:
17+
```shell
18+
poetry install
19+
```
20+
21+
## Before submitting your PR
22+
23+
### Style guide
24+
25+
* Code: [PEP 8](https://www.python.org/dev/peps/pep-0008/)
26+
* Docstrings: [PEP 257](https://www.python.org/dev/peps/pep-0257/)
27+
* Type hints: [PEP 484](https://www.python.org/dev/peps/pep-0484/)
28+
* Formatting: [black](https://github.com/psf/black) and
29+
[isort](https://github.com/PyCQA/isort)
30+
* Commit message: Follow the
31+
[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) guidelines
32+
* Branch: Pull requests must be created against the `dev` branch. It is strongly
33+
recommended creating a new branch off of `dev` to contain your proposed changes.
34+
35+
Here's a primer on the specifics:
36+
* Class/type names: `CamelCase`
37+
* Variable/function/module/file names: `snake_case`.
38+
* Variables with values that do not change during program execution: `UPPER_SNAKE_CASE`.
39+
These could be literals or enum variants.
40+
* Mark module- or class-level implementation details by prepending a single underscore,
41+
like `_variable`, `_method`.
42+
* Do not shadow built-ins (even `id`, `help` and the like).
43+
Instead, append a single underscore, like `id_`, `help_.
44+
* Likewise for reserved keywords (`class_`, `import_`, etc.
45+
Please no `klass`, `clazz or similar!)
46+
47+
In case of contradictions between individual guidelines, `black` is right.
48+
49+
In the specific case of third-party libraries with divergent style conventions,
50+
follow theirs. This is in line with PEP 8.
51+
52+
53+
## Getting in touch with the developers
54+
55+
There is a [Discord](https://discordapp.com/) server, intended for active development on
56+
this project. If you are interested in joining, send a private message to
57+
Cinnabarit#1341.
58+
59+
## Keeping your fork up to date
60+
61+
* Add a new remote repository and name it upstream.
62+
```shell
63+
git remote add upstream https://github.com/PathOfBuildingCommunity/PathOfBuilding.git
64+
```
65+
* Verify that adding the remote worked.
66+
```shell
67+
git remote -v
68+
```
69+
* Fetch all branches and their commits from upstream.
70+
```shell
71+
git fetch upstream
72+
```
73+
* Check out your local dev branch if you haven't already.
74+
```shell
75+
git checkout dev
76+
```
77+
* Merge all changes from upstream/dev into your local dev branch.
78+
```shell
79+
git rebase upstream/dev
80+
```
81+
* Push your updated branch to GitHub.
82+
```shell
83+
git push -f origin dev
84+
```

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ from Lua to Python. Currently, it is mostly intended for exploring ideas on how
55
accomplish this.
66

77
## Install
8-
This project targets Python 3.9. You need to have Python 3.9 or later installed
8+
This project targets Python 3.10. You need to have Python 3.10 installed
99
to run this project. Start off by cloning the repository like so:
1010
```commandline
1111
git clone -b dev https://github.com/PathOfBuildingCommunity/PathOfBuilding-Python.git

docs/code_structure.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# Python Object Enumeration Thoughts
2+
3+
[dict] All GGPK Extracted Gems { act_str, act_dex, act_int, sup_str, sup_dex, sup_str }
4+
-- addressable by name
5+
6+
[dict] All Uniques (sub-partitioned by item type)
7+
-- addressable by name
8+
-- can return applicable list based on item type
9+
10+
[class] Environment
11+
[dict] Environment Configuration
12+
13+
[class] Build
14+
[ref] Tree
15+
[ref] Player
16+
17+
[class] Tree
18+
[str] version
19+
[dict] All Nodes (addressable by Node ID)
20+
[dict] Selected Nodes (addressable by Node ID)
21+
22+
[class] Player
23+
[enum] Class Selection
24+
[enum] Ascendancy Selection
25+
[dict] Stats (e.g. Str/Dex/Int, Hit/Crit, Life/Mana, Block/Spell Block/Evade/Dodge, etc.)
26+
[dict] Item Slots
27+
[per slot ref] Item
28+
[optional list] Minions
29+
30+
[class] Item
31+
[dict] Attribute requirements
32+
[list] Modifiers
33+
[optional ref] Skill class (for skills granted by items)
34+
35+
[class] Skill
36+
[dict] Requirements (per level Str, Dex, Int)
37+
[list] Granted Effect reference
38+
[list] Supports
39+
40+
[class] GrantedEffect
41+
[str] Name
42+
[dict] PerLevelEffects
43+
44+
[class] Minion
45+
[ref] Player
46+
[dict] Stats
47+
[ref list] Items
48+
[ref list] Skills
49+
[int] Quantity
50+
51+
[class] EnemyModel (e.g. Shaper, Maven)
52+
[dict] Stats (e.g. Str/Dex/Int, Hit/Crit, Life/Mana, Block/Spell Block/Evade/Dodge, etc.)
53+
54+
[class] Simulator
55+
[ref] Environment(s)
56+
[ref list] Build(s)
57+
[ref] Enemy Model(s)
58+
59+
[class] Analytics Module
60+
[func] Node Comparison
61+
[func] Item Comparison
62+
[func] Gem Comparison
63+
64+
[list] Saved Builds
65+
66+
[dict] UI API imports/exports

0 commit comments

Comments
 (0)