PythonicNightmares β ΡΡΠΎ ΡΠΆΠ°ΡΠ½ΡΠΉ CLI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π² ΡΠ΅Π±Π΅ ΡΠ°ΠΌΡΠ΅ Π±Π΅Π·ΡΠΌΠ½ΡΠ΅ ΠΈ ΡΡΡΠ°Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΌΠΈΡΠ΅ Python. ΠΡΠΎΠ΅ΠΊΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΏΠ»ΠΎΡ ΠΈΡ ΠΏΡΠ°ΠΊΡΠΈΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π°Π±ΡΡΡΠ΄Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΡΡΠ΅ΡΡΠ²ΠΎΠ²Π°ΡΡ.
ΠΠ»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Python Π²Π΅ΡΡΠΈΠΈ 3.11 ΠΈ Π²ΡΡΠ΅. Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ pip:
pip install pynightmaresΠΠ»ΠΈ ΡΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
git clone https://github.com/mrf0rtuna4/PythonicNightmares.git
cd PythonicNightmares
pip install -r requirements.txt
pip install .ΠΠΎΡΠ»Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·Π°ΠΏΡΡΡΠΈΡΡ PyNightmares ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ:
pynightmares <command>pynightmares hello # ΠΡΠ²ΠΎΠ΄ΠΈΡ 'Hello, World!'
pynightmares infinite_loop # ΠΠ°ΠΏΡΡΠΊΠ°Π΅Ρ Π²Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ» (ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ!)
pynightmares random_error # ΠΠ΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΎΡΠΈΠ±ΠΊΡ
pynightmares spaghetti_code # ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ "ΡΠΏΠ°Π³Π΅ΡΡΠΈ-ΠΊΠΎΠ΄", ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ»ΠΎΡ
ΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ
pynightmares troll # ΠΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ
pynightmares evil_syntax # ΠΠ°ΡΡΡΠ°Π΅Ρ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Python
pynightmares strange_lib # ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ ΡΠ°ΠΌΡΡ ΡΡΡΠ°Π½Π½ΡΡ Π»ΠΈΠ±Ρ
pynightmares strange_gui # ΠΡΠΊΡΡΠ²Π°Π΅Ρ Tk-ΠΎΠΊΠ½ΠΎ Ρ ΡΠΎΠΉ ΠΆΠ΅ Π»ΡΠ±ΠΎΠΉ- Hello World: ΠΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° 'Hello, World!'.
- ΠΠ΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΡΠΈΠΊΠ»: ΠΠ»Ρ ΡΠ°ΠΌΡΡ Ρ Π°ΡΠ΄ΠΊΠΎΡΠ½ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π·Π°ΠΏΡΡΠΊΠ°ΡΡΠΈΡ Π²Π΅ΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ: ΠΠΎΡΠ΅ΠΌΡ Π±Ρ Π½Π΅ Π½Π°ΡΠ»Π°Π΄ΠΈΡΡΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΠΊΡΠ°Ρ ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ?
- Π‘ΠΏΠ°Π³Π΅ΡΡΠΈ-ΠΊΠΎΠ΄: ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΠΏΠ»ΠΎΡ ΠΎΠ³ΠΎ ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
- ΠΠ°ΡΡΡΠ΅Π½ΠΈΠ΅ PEP8: ΠΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π»ΠΎΠΌΠ°ΡΡ Π²ΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Ρ ΠΎΡΠΎΡΠ΅Π³ΠΎ ΡΡΠΈΠ»Ρ Π² Python.
- Π‘ΡΡΠ°Π½Π½Π°Ρ Π»ΠΈΠ±Π°: ΠΠ΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡΠ²ΠΎΡΡΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ.
- Π‘ΡΡΠ°Π½Π½ΡΠΉ GUI: ΠΠ΅Π±ΠΎΠ»ΡΡΠΎΠ΅ Tk-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈΠ· ΡΠΊΡΠΈΠΏΡΠΎΠ² ΠΈ Π΄Π΅Π»Π°Π΅Ρ Π²ΠΈΠ΄, ΡΡΠΎ ΡΠ°ΠΊ ΠΈ Π½Π°Π΄ΠΎ.
- ΠΠ°ΡΡ Π°Π»ΠΊΠΈ: ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΡΠΏΡΡΡΠ°Π½Π½ΡΠ΅ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅.
ΠΡΠΎΠ΅ΠΊΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Python CLI ΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ argparse Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ. ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΡΡΡΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π΄Π΅ΠΊΠΎΡΠ°ΡΠΎΡΠΎΠ², Π° Π·Π°ΡΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π· CLI-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Π°Π²ΡΠΎΠ·Π°Π³ΡΡΠ·ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΡΠΌ.
ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²Π½Π΅ΡΡΠΈ Π²ΠΊΠ»Π°Π΄ Π² ΠΏΡΠΎΠ΅ΠΊΡ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ "ΡΠΆΠ°ΡΠ½ΡΠ΅" ΡΡΠ½ΠΊΡΠΈΠΈ, ΡΠ»Π΅Π΄ΡΠΉΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΠΌ:
- Π€ΠΎΡΠΊΠ½ΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ.
- ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π²Π°ΡΡ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠ°ΠΏΠΊΡ
scripts. - ΠΠ°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ.
- Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ pull request.
ΠΡΠΈΠΌΠ΅Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
from nightmares.modules import CommandRegistry
registry = CommandRegistry()
@registry.register("my_command", aliases=["mc"], help_text="ΠΠΎΡ Π½ΠΎΠ²Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°")
def my_command():
print("ΠΡΠΎ ΠΌΠΎΡ ΠΊΠ°ΡΡΠΎΠΌΠ½Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°!")- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π°Π±ΡΡΡΠ΄Π½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
- ΠΡΡΡΠΎΠΈΡΡ "meta_pranks" β ΠΊΠΎΠΌΠ°Π½Π΄Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
- ΠΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠ°ΡΡ Π°Π»ΠΎΠΊ ΠΈ ΡΠΊΡΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ.
- Π£Π»ΡΡΡΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Ρ Π°ΠΎΡΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ MIT.