def create_socket_from_positive_road(road: Road) -> PGBlockSocket:
        """
        We usually create road from positive road, thus this func can get socket easily.
        Note: it is not recommended to generate socket from negative road
        """
        assert road.start_node[0] != Road.NEGATIVE_DIR and road.end_node[0] != Road.NEGATIVE_DIR, \
            "Socket can only be created from positive road"
        positive_road = Road(road.start_node, road.end_node)
        return PGBlockSocket(positive_road, -positive_road)

        We usually create road from positive road, thus this func can get socket easily.
        Note: it is not recommended to generate socket from negative road
        
metadrive/component/pgblock/pg_block.py