This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import logging | |
import sys | |
from logging.handlers import QueueHandler, QueueListener | |
from queue import Queue | |
from time import sleep | |
class FlushingHandler(QueueHandler): | |
def flush(self): | |
super().flush() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class ScannedPort: | |
label: str = "" | |
clsas ScannedDevice: | |
hostname: str = "" | |
ports: List[ScannedPort] = [] | |
class Port(Base): | |
hostname = Column(String, ForeignKey("Device.hostname") | |
label = Column(String) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
This module defines additional "IP-Address" type decorators for use with | |
SQLAlchemy and PostgreSQL. These types will convert the PostgreSQL values | |
to/from Python :py:mod:`ipaddress` classes. | |
These classes can be used in model definitions:: | |
class MyTable(Base): | |
... | |
ip = Column(PgIpAddress, ...) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
This file demonstrated using the "FetchedValue" feature of SQLAlchemy for | |
values which are generated by the DB, without knowing *how* they are generated | |
in the DB. | |
""" | |
from sqlalchemy import Column, DateTime, FetchedValue, Unicode, create_engine | |
from sqlalchemy.ext.declarative import declarative_base | |
from sqlalchemy.orm import sessionmaker | |
Base = declarative_base() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# pylint: disable=no-member, no-name-in-module | |
""" | |
This program is inspired on exercise 4.4 from the book for 1CB "CNESC | |
Informatique" (2019-2020): The Mandelbrot set. The exercise demands the | |
following features: | |
* Display the Mandelbrot set on the complex plane. Initially between -2.2-1.2j | |
and 1.0+1.2j and later by coordinates selected by the user (see below). | |
* Points within the set should be drawn in black, points outside of the set | |
should be colored based on the number of iterations necessary to determine |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
This module shows an alternative implementation of the code shown in the SO question | |
https://stackoverflow.com/questions/58188342/looping-through-web-pages | |
Comments marked with a ♫ symbol are possible improvements to this code which were | |
left out to keep concepts out of the code which could make it more difficult to | |
understand for beginners. | |
""" | |
from os.path import exists |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
This module contains helpers to work with the "Accept" request header | |
""" | |
import re | |
from typing import Generator, Iterable, List, NamedTuple, Tuple | |
AcceptType = NamedTuple('AcceptType', [ | |
('media_type', str), | |
('quality', float), | |
]) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
Access windows credentials | |
Credentials must be stored in the Windows Credentials Manager in the Control | |
Panel. This helper will search for "generic credentials" under the section | |
"Windows Credentials" | |
Example usage:: | |
result = get_generic_credential('foobar') |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class IPOccupation: | |
''' | |
Class to visualise which blocks in a IP range are occupied by networks and hosts | |
''' | |
CHARS = { | |
0: '\u22c5', # sdot | |
1: '\u2592', # Medium Shade | |
2: '\u2588' # Full Block | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class NamedRegistry(ABCMeta): | |
''' | |
A metaclass which automatically registers each subclass by name when it is | |
defined. | |
Each subclass must define the class-attribute ``NAME`` | |
The classes can be retrieved using ``NamedRegistry.get_query``. | |
''' |