Esempio n. 1
0
async def async_lock(loop: AbstractEventLoop) -> Lock:
    yield Lock(loop=loop)
Esempio n. 2
0
 def __init__(self, timeout):
     self.timeout = timeout
     self.connection_list = []
     self._lock = Lock()
     self.logger = logging.getLogger('hxs2')
Esempio n. 3
0
 def __init__(self):
     self.model = None
     self.lock = Lock()
     self.host_timestamps = {}
     self.no_updates = 0
     self.model_file_path = 'main_model.h5'
Esempio n. 4
0
 def initialize(self, state):
     self.state = state
     if 'proc_lock' not in state:
         state['proc_lock'] = Lock()
Esempio n. 5
0
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.")
Esempio n. 6
0
# "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',
Esempio n. 7
0

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),
Esempio n. 8
0
    def __init__(self) -> None:
        self.__lock = Lock()
        self.__inventory: Dict[Kind, int] = {}

        for kind in Kind:
            self.__inventory[kind] = 0