Imported from Dmitriyrus99/fer (
AGENTS.md). Install upstream withnpx skills add Dmitriyrus99/fer. Copyright stays with the author.
Π ΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ Π΄Π»Ρ AI ΠΠ³Π΅Π½ΡΠΎΠ² ΠΏΠΎ ΠΏΡΠΎΠ΅ΠΊΡΡ Ferum Customs
ΠΡΠΎΡ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡΠ° ferum_customs.
1. ΠΠ±Π·ΠΎΡ ΠΈ Π¦Π΅Π»Ρ
ΠΡΠΎΠ΅ΠΊΡ ferum_customs ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ Frappe/ERPNext, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΌ Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ΅ΡΠ²ΠΈΡΠ½ΡΠΌΠΈ Π·Π°ΡΠ²ΠΊΠ°ΠΌΠΈ. ΠΠ»ΡΡΠ΅Π²Π°Ρ ΡΠ΅Π»Ρ β ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²ΡΡΠΎΠΊΠΎΠ΅ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Frappe ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΠΎΠ»Π½ΠΎΠ΅ ΡΠ΅ΡΡΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠΊΡΡΡΠΈΠ΅.
2. ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ Π’Π΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ
- Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ: Frappe v15, ERPNext v15
- Π―Π·ΡΠΊ: Python 3.10+
- ΠΠ°ΡΠ΅ΡΡΠ²ΠΎ ΠΊΠΎΠ΄Π°:
- Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
black - ΠΠΈΠ½ΡΠΈΠ½Π³:
ruff - ΠΠ½Π°Π»ΠΈΠ· ΡΠΈΠΏΠΎΠ²:
mypy
- Π€ΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
- Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
pytest - ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ:
pre-commit
3. ΠΡΠΎΡΠ΅ΡΡ Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΠ΅ΡΠ΅Π΄ Π»ΡΠ±ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΡΠΎΡ ΠΎΠ΄ΡΡ.
-
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ: ΠΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π²
dev-requirements.txt. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:pip install -r dev-requirements.txt -
ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΊΠΎΠ΄Π°: ΠΠ΅ΡΠ΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ Π²ΡΠ΅Π³Π΄Π° Π·Π°ΠΏΡΡΠΊΠ°ΠΉΡΠ΅ ΠΏΠΎΠ»Π½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ ΡΠ΅ΡΠ΅Π·
pre-commit:pre-commit run --all-filesΠΡΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΡΠ΅Ρ ΠΊΠΎΠ΄ (
black) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡ Π΅Π³ΠΎ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ (ruff,mypy). -
ΠΠ°ΠΏΡΡΠΊ ΡΠ΅ΡΡΠΎΠ²: ΠΠ»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅
pytest. Π’Π΅ΡΡΠΎΠ²Π°Ρ ΡΡΠ΅Π΄Π° Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΈΠΊΡΡΡΡΡ Π²ferum_customs/tests/conftest.py, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ ΡΠ°ΠΉΡ Frappe ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.pytest
4. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠ΅ ΠΡΠΈΠ½ΡΠΈΠΏΡ
- Π‘ΡΡΡΠΊΡΡΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ°: Π‘Π»Π΅Π΄ΡΠΉΡΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅, ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ Π²
README.md. - ΠΠΈΠ·Π½Π΅Ρ-Π»ΠΎΠ³ΠΈΠΊΠ°: ΠΡΠ½ΠΎΡΠΈΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ Π»ΠΎΠ³ΠΈΠΊΡ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠΎΠ±ΡΡΠΈΠΉ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ
ferum_customs/custom_logic/ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ ΠΈΡ ΡΠ΅ΡΠ΅Π·ferum_customs/hooks.py. - ΠΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΠ: ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΡ Π΄Π°Π½Π½ΡΡ
, ΡΡΠ΅Π±ΡΡΡΠΈΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ, Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΡΠΌΠ»ΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°ΡΡΠ΅ΠΉ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ
ferum_customs/patches/. - API: ΠΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠ°Π·ΠΌΠ΅ΡΠ°ΠΉΡΠ΅ Π²
ferum_customs/api.py.
5. ΠΠ°ΠΆΠ½ΡΠ΅ Π€Π°ΠΉΠ»Ρ
setup-environment.sh: ΠΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠΊΡΠΈΠΏΡ Π΄Π»Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°.ferum_customs/tests/conftest.py: ΠΠ»ΡΡΠ΅Π²ΠΎΠΉ ΡΠ°ΠΉΠ» Π΄Π»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΉ ΡΡΠ΅Π΄Ρ.docs/INSTALL_FULL.md: ΠΠΎΠ΄ΡΠΎΠ±Π½Π°Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ ΠΏΠΎ ΡΡΡΠ½ΠΎΠΉ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠ΅.