async def async_lock(loop: AbstractEventLoop) -> Lock: yield Lock(loop=loop)
def __init__(self, timeout): self.timeout = timeout self.connection_list = [] self._lock = Lock() self.logger = logging.getLogger('hxs2')
def __init__(self): self.model = None self.lock = Lock() self.host_timestamps = {} self.no_updates = 0 self.model_file_path = 'main_model.h5'
def initialize(self, state): self.state = state if 'proc_lock' not in state: state['proc_lock'] = Lock()
from websockets import serve, WebSocketServerProtocol from asyncio import get_event_loop, Lock from ujson import loads, dumps from logging import getLogger, basicConfig, DEBUG, WARNING # Listeners listeners = [] select_listeners = {} # Logging logger = getLogger("bridge.server") basicConfig(level=WARNING) logger.setLevel(DEBUG) # Locks connection_lock = Lock() async def broadcast(message, path="*"): message["p"] = path encoded = dumps(message) if path == "*": receivers = listeners else: receivers = select_listeners.get(path, []) for listener in receivers: await listener.send(encoded) async def server(websocket: WebSocketServerProtocol, _): logger.info(f"A service connected.")
# "msg_id": indice da mensagem que foi enviada with open('courses.json', 'r', encoding='utf-8') as file: courses = json.load(file) # O formato de embed pode ser gerado com ferramentas online e umas pequenas alterações. # De momento o parsing deste json apenas suporta: # - title # - description # - color # - fields com name e value (a propriedade inline é ignorada) # Caso se adicionem embeds mais complexos no json será necessário alterar parse_embed with open('embeds.json', 'r', encoding='utf-8') as file: embeds = json.load(file) bot = commands.Bot(command_prefix='$') lock = Lock() # embed: key do embed no embed.json a que se pretende aceder def parse_embed(embed): if embed not in embeds: print('Warning: the key {} isn\'t in embed.json'.format(embed)) return parse_embed('error') ret = Embed(title=embeds[embed]['title'], description=embeds[embed]['description'], color=embeds[embed]['color']) for field in embeds[embed]['fields']: ret.add_field(value=field['value'].replace( '$veterano',
async def serial_communication(app): if app["serial"] is None: logger.info("No serial interface selected") return rx, tx = await serial_asyncio.open_serial_connection( url=app["serial"], baudrate=app["serial_bauds"]) app["process_messages"] = create_task(process_messages(rx, tx)) app["serial_lock"] = Lock() logging.basicConfig(level=logging.INFO) logger = logging.getLogger("third-i-backend") app = web.Application() app["lock"] = Lock() app.on_startup.append(get_config) app.on_startup.append(serial_communication) app.add_routes([ web.get('/list-networks', route_list_networks), web.post('/connect', route_connect), web.get('/portal', route_portal), web.post('/start-ap', route_start_ap), web.patch('/config', route_config_update), web.get('/config', route_get_config), web.get('/files', route_list_files), web.get('/files/{path:.+}', route_get_file), web.patch('/files/{path:.+}', route_rename_file), web.delete('/files/{path:.+}', route_delete_file), web.post('/make-photo', route_make_photo), web.get('/disk-usage', route_disk_usage),
def __init__(self) -> None: self.__lock = Lock() self.__inventory: Dict[Kind, int] = {} for kind in Kind: self.__inventory[kind] = 0