Собрали в одном месте самые важные ссылки
консультируем про IT, Python
Позволяет организовать такую структуру
~/music
│ ├── Artist 01
│ │ └── Album 01
│ │ │ └── Title 01
│ │ │ │── Title 02
│ ├── Artist 02
│ │ └── Album 01
│ │ │ └── Title 01
│ │ │ │── Title 02
Утилита позволяет реализовать порядок без перемещения файлов (с помощью ссылок)
Проект представляет собой Django-модуль, который позволяет организовать агрегацию логов на основе Django.
Django выступает в роли сервера, который принимает запросы логгирования, а клиент отправляет POST запросы на этот сервер.
ffi = FFIpp()
ffi.cdef("""
class testClass {
public:
testClass();
void test(int);
int returnsInt(int);
private:
void shouldNotBeInModule();
};
""")
self.assertTrue(ffi.has_class("testClass"))
ffi.set_source("example_module", """
class testClass {
public:
testClass(){}
void test(int){/*nop*/}
int returnsInt(int){return 1;}
private:
void shouldNotBeInModule() {/*nop*/}
};""")
ffi.compile()
import example_module
c = example_module.testClass()
self.assertEqual(c.returnsInt(5), 1)
Модуль позволяет принять Github webhook для последующей удобной обработки
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. Подскажем как разработать бота наиболее быстро