Планировщик задач встроенный в Python
import schedimport timefrom datetime import datetime, timedeltascheduler = sched.scheduler(timefunc=time.time)def saytime(): print(time.ctime()) scheduler.enter(10, priority=0, action=saytime)saytime() try: scheduler.run(blocking=True) except KeyboardInterrupt: print('Stopped.')Цветовое оформление логов
import colorloglogger = colorlog.getLogger()logger.setLevel(colorlog.colorlog.logging.DEBUG)handler = colorlog.StreamHandler()handler.setFormatter(colorlog.ColoredFormatter())logger.addHandler(handler)logger.debug("Debug message")logger.info("Information message")logger.warning("Warning message")logger.error("Error message")logger.critical("Critical message")import dominatefrom dominate.tags import *doc = dominate.document(title='Main Page')with doc.head: meta(charset="utf-8")with doc.body: h1("hello!")print(str(doc))Инфа по процессору, памяти, диску и сети
psutilimport psutilimport os, sys, timepid = os.getpid()p = psutil.Process(pid)print('Process info:')print(' name :', p.name())print(' exe :', p.exe())data = []while True: data += list(range(100000)) info = p.memory_full_info() # Convert to MB memory = info.uss / 1024 / 1024 print('Memory used: {:.2f} MB'.format(memory)) if memory > 40: print('Memory too big! Exiting.') sys.exit() time.sleep(1)Process info: name : Python exe : /usr/local/Cellar/.../PythonMemory used: 11.82 MBMemory used: 14.91 MBMemory used: 18.77 MBMemory used: 22.63 MBMemory used: 26.48 MBMemory used: 30.34 MBMemory used: 34.19 MBMemory used: 38.05 MBMemory used: 41.90 MBMemory too big! Exiting.Кроссплатформенный мониторинг изменений файловой системы
watchdog from watchdog.observers import Observerfrom watchdog.events import (PatternMatchingEventHandler, FileModifiedEvent, FileCreatedEvent)observer = Observer()class Handler(PatternMatchingEventHandler): def on_created(self, event: FileCreatedEvent): print('File Created: ', event.src_path) def on_modified(self, event: FileModifiedEvent): print('File Modified: %s [%s]' % ( event.src_path, event.event_type))observer.schedule(event_handler=Handler('*'), path='.')observer.daemon = Falseobserver.start()try: observer.join()except KeyboardInterrupt: print('Stopped.') observer.stop() observer.join()File Created: ./secrets.txtFile Modified: . [modified]File Modified: ./secrets.txt [modified]File Modified: ./secrets.txt [modified]File Modified: ./secrets.txt [modified]File Modified: ./secrets.txt [modified]Stopped.API maker -
Internet APIs for web services.
hughug is a library that provides an extremely simple way to createInternet APIs for web services.
import hugimport webcolors@hug.get()def hextoname(hex: hug.types.text): return webcolors.hex_to_name('#' + hex)@hug.get()def nametohex(name: hug.types.text): return webcolors.name_to_hex(name)$ curl http://localhost:8000/hextoname?hex=ff0000"red"$ curl http://localhost:8000/nametohex?name=lightskyblue"#87cefa"import arrowt0 = arrow.now()print(t0)t1 = arrow.utcnow()print(t1)difference = (t0 - t1).total_seconds()print('Total difference: %.2f seconds' % difference)2016-06-26T18:43:55.328561+10:002016-06-26T08:43:55.328630+00:00Total difference: -0.00 secondsВремя в человеческом виде
'just now'
>>> t0 = arrow.now()>>> t0.humanize()'just now'
>>> t0.humanize()'seconds ago'>>> t0 = t0.replace(hours=-3,minutes=10)>>> t0.humanize()'2 hours ago'