Собрали в одном месте самые важные ссылки
читайте нас в Twitter
import keyboard
# Press PAGE UP then PAGE DOWN to type "foobar".
keyboard.add_hotkey('page up, page down', lambda: keyboard.write('foobar'))
# Blocks until you press esc.
wait('esc')
Модуль содержит набор моделей, view's. Можно адаптировать под обычную Django
~$ tag ~/frontend @frontend ~$ tag ~/backend @backend ~$ tag ~/frontend ~/backend @work ~$ tag ~/db @vm ~$ tag ~/web @vm # Or equivalently ~$ tag ~/frontend @frontend @work ~/backend @backend @work ~/db ~/web @vm # All tag names must begin with the @ symbol
# Execute 'git fetch origin' in all directories tagged @project ~$ run @project git fetch origin # Execute 'git status -sb' in all directories tagged @frontend and @backend ~$ run @frontend @backend git status -sb # Execute 'vagrant status' in all directories tagged @vms ~$ run @vms vagrant status # Directory paths can be specified along with tags ~$ run @backend ~/scripts ~/redis ls -la # The command can be executed in parallel as long as it doesn't wait for input ~$ run -p @backend 'sleep 5 && echo done' ~$ run -p @project git pull ~$ run -p @vms vagrant up
from signaller import Signal logging.basicConfig(level=logging.DEBUG) def slot(arg): print('slot:', arg) # Creating signals (you can set signal name, but it is not required, # signals can be anonymous): sig_test = Signal('sig_test') # Connecting signals to slots (uses weak references by default, # but you can force strong references by specifying weak=False): sig_test.connect(slot) sig_test.connect(lambda arg: print('slot_lambda:', arg), weak=False) # You can also use decorators for connecting signals to slots: @sig_test.connect def slot2(arg): print('slot2:', arg) # And weak=False can be specified when using decorators too: @sig_test.connect(weak=False) def slot3(arg): print('slot3:', arg) # Slots are automatically disconnected from signals # when using weak references: del slot2 # Or you can disconnect slots manually: sig_test.disconnect(slot3) # Emitting signals (you can send positional and keyword # arguments to connected slots): sig_test.emit('Hello world!')
Написание ботов не такая простая задача, как кажется. Необходимо учесть сценарии использования, пройти через дебри настроек и отладки, наладить мониторинг.
Мы консультируем по написанию ботов - обращайтесь https://t.me/axsapronov. Подскажем как разработать бота наиболее быстро
$ pep257 test.py test.py:18 in private nested class `meta`: D101: Docstring missing test.py:22 in public method `method`: D102: Docstring missing ...
В этом репозитории вы найдете пример TCP сервера на Python. Код изобилует комментариями
import click def test_cli(cli_runner): @click.command() @click.argument('name') def hello(name): click.echo('Hello %s!' % name) result = cli_runner.invoke(hello, ['Peter']) assert result.exit_code == 0 assert result.output == 'Hello Peter!\n'
Утилита может выступать в роли демона, который собирает активность на всем компьютере. Есть возможность отправлять логи по email
Использует JSON веб токены вместо сессий.
Сейчас есть поддержка Twitter, Facebook