Esempio n. 1
0
def funct1():
    while True:
        try:
            account = Class.Player("*****@*****.**", "130206")
            enter_result = account.gui_enter_account()[0]
            fetch_results = account.fetch_reports()[0]
            print(enter_result)
            print(fetch_results)
            reports = account.reports_result["Data"]["Report"]
            world_datetime = account.reports_result["time"]
            for report in reports:
                report_datetime = report["date"]
                if Tool.compare_GMT_time(world_datetime, report_datetime):
                    if report[
                            "type"] == "8" and "ownOffenderUnitDictionary" not in report[
                                "content"]:  # только доклады битв и только оборона
                        if Tool.losses_ratio_counter(
                                report
                        ):  # если в докладах битвы что то стоющее
                            res = tripwire_real_detected(
                                account, report["id"], report["habitat"])
                            print("sent message for report {} with result {}".
                                  format(report["id"], res[1]))
                        else:
                            res = account.delete_report(report["id"])
                            print("deleted report {} with result {}".format(
                                report["id"], res[0]))
            print("waiting 10 mins...\n")
            time.sleep(60 * 10)
        except:
            pass
Esempio n. 2
0
 def install(self, destDir=None, downloadDir=None, redownload=False, updateLocalSettings=False):
     url = Settings.URL["BLLIP_SOURCE"]
     if downloadDir == None:
         downloadDir = os.path.join(Settings.DATAPATH) + "/tools/download"
     if destDir == None:
         destDir = Settings.DATAPATH + "/tools/BLLIP"
     items = Download.downloadAndExtract(url, destDir, downloadDir + "/bllip.zip", None, False)
     print >> sys.stderr, "Installing BLLIP parser"
     Tool.testPrograms("BLLIP parser", ["make", "flex"], {"flex":"flex --version"})
     parserPath = Download.getTopDir(destDir, items)
     cwd = os.getcwd()
     os.chdir(parserPath)
     print >> sys.stderr, "Compiling first-stage parser"
     subprocess.call("make", shell=True)
     print >> sys.stderr, "Compiling second-stage parser"
     subprocess.call("make reranker", shell=True)
     os.chdir(cwd)
     print >> sys.stderr, "Installing the McClosky biomedical parsing model"
     url = "http://bllip.cs.brown.edu/download/bioparsingmodel-rel1.tar.gz"
     Download.downloadAndExtract(url, destDir, downloadDir, None)
     bioModelDir = os.path.abspath(destDir + "/biomodel")
     # Check that everything works
     Tool.finalizeInstall(["first-stage/PARSE/parseIt", "second-stage/programs/features/best-parses"], 
                          {"first-stage/PARSE/parseIt":"first-stage/PARSE/parseIt " + bioModelDir + "/parser/ < /dev/null",
                           "second-stage/programs/features/best-parses":"second-stage/programs/features/best-parses -l " + bioModelDir + "/reranker/features.gz " + bioModelDir + "/reranker/weights.gz < /dev/null"},
                          parserPath, {"BLLIP_PARSER_DIR":os.path.abspath(parserPath), 
                                       "MCCLOSKY_BIOPARSINGMODEL_DIR":bioModelDir}, updateLocalSettings)         
Esempio n. 3
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.FAILURE

        target = "map"
        GlobalInfo.tf_listener.waitForTransform(target,base,rospy.Time(0),rospy.Duration(3.0))
        (point,orientation) = GlobalInfo.tf_listener.lookupTransform(target,base,rospy.Time(0))

        robotPos = Point(point[0],point[1],0)
        robotYaw = Tool.yawFromTfQuaternion(orientation)

        ballPos = GlobalInfo.ball.pose.pose.position
        angleToBall = Tool.getAngle(robotPos,ballPos)

        trans = Tool.Trans(robotPos, angleToBall)
        trBallPos = trans.transform(ballPos)
        distToBall = Tool.getSizeFromCenter(trBallPos)
        trRobotYaw = trans.transformAngle(robotYaw)

        if distToBall < self._threshDist \
                and abs(trRobotYaw) < self._threshAngle:
            return TaskStatus.SUCCESS

        return TaskStatus.RUNNING
Esempio n. 4
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.FAILURE

        target = "map"
        GlobalInfo.tf_listener.waitForTransform(target,base,rospy.Time(0),rospy.Duration(3.0))
        (myPoint,myOrientation) = GlobalInfo.tf_listener.lookupTransform(target,base,rospy.Time(0))
        myYaw = Tool.yawFromTfQuaternion(myOrientation)
        
        poseStamped = GlobalInfo.tf_listener \
            .transformPose("map",GlobalInfo.controls[self._number].target_pose)
        targetPoint = poseStamped.pose.position
        targetYaw = Tool.yawFromQuaternion(poseStamped.pose.orientation)

        diff_x = abs(targetPoint.x - myPoint[0])
        diff_y = abs(targetPoint.y - myPoint[1])
        diff_yaw = abs(Tool.normalize(targetYaw - myYaw))


        if diff_x < self._reachingPosThreshold \
                and diff_y < self._reachingPosThreshold \
                and diff_yaw < self._reachingAngleThreshold:
            
            if rospy.get_time() - self.approach_time > self._keeping_time:
                return TaskStatus.SUCCESS
            else:
                return TaskStatus.RUNNING
        else:
            self.approach_time = rospy.get_time()
            
            return TaskStatus.RUNNING
Esempio n. 5
0
def install(destDir=None, downloadDir=None, redownload=False, updateLocalSettings=False):
    url = Settings.URL["BLLIP_SOURCE"]
    if downloadDir == None:
        downloadDir = os.path.join(Settings.DATAPATH) + "/tools/download"
    if destDir == None:
        destDir = Settings.DATAPATH + "/tools/BLLIP"
    items = Download.downloadAndExtract(url, destDir, downloadDir + "/bllip.zip", None, False)
    print >> sys.stderr, "Installing BLLIP parser"
    Tool.testPrograms("BLLIP parser", ["make", "flex"], {"flex":"flex --version"})
    parserPath = Download.getTopDir(destDir, items)
    cwd = os.getcwd()
    os.chdir(parserPath)
    print >> sys.stderr, "Compiling first-stage parser"
    subprocess.call("make", shell=True)
    print >> sys.stderr, "Compiling second-stage parser"
    subprocess.call("make reranker", shell=True)
    os.chdir(cwd)
    print >> sys.stderr, "Installing the McClosky biomedical parsing model"
    url = "http://bllip.cs.brown.edu/download/bioparsingmodel-rel1.tar.gz"
    Download.downloadAndExtract(url, destDir, downloadDir, None)
    bioModelDir = os.path.abspath(destDir + "/biomodel")
    # Check that everything works
    Tool.finalizeInstall(["first-stage/PARSE/parseIt", "second-stage/programs/features/best-parses"], 
                         {"first-stage/PARSE/parseIt":"first-stage/PARSE/parseIt " + bioModelDir + "/parser/ < /dev/null",
                          "second-stage/programs/features/best-parses":"second-stage/programs/features/best-parses -l " + bioModelDir + "/reranker/features.gz " + bioModelDir + "/reranker/weights.gz < /dev/null"},
                         parserPath, {"BLLIP_PARSER_DIR":os.path.abspath(parserPath), 
                                      "MCCLOSKY_BIOPARSINGMODEL_DIR":bioModelDir}, updateLocalSettings)
Esempio n. 6
0
    def draw(self, sheet):
        if self.buttonPressed:
            self.currentsize = (self.pressed_gfx.get_width(),
                                self.pressed_gfx.get_height())
            sheet.blit(self.pressed_gfx, self.rect)
            self.draw_relief(sheet, self.rect, "pressed")

        elif self.buttonHovered:
            self.currentsize = (self.hover_gfx.get_width(),
                                self.hover_gfx.get_height())
            sheet.blit(self.hover_gfx, self.rect)
            self.draw_relief(sheet, self.rect, "hover")

        else:
            self.currentsize = (self.normal_gfx.get_width(),
                                self.normal_gfx.get_height())
            sheet.blit(self.normal_gfx, self.rect)
            self.draw_relief(sheet, self.rect, "normal")

        if self.overlay_gfx is not None:
            sheet.blit(self.overlay_gfx,
                       Tool.center(self.overlay_gfx, self.rect))

        if self.text is not None:
            sheet.blit(self.text.obj, Tool.center(self.text.obj, self.rect))
Esempio n. 7
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.FAILURE

        nearestID = GlobalInfo.nearestEnemyID
        if nearestID is None:
            return TaskStatus.FAILURE

        enemyBase = Tool.getEnemyBase(nearestID)
        target = "map"
        GlobalInfo.tf_listener.waitForTransform(target, enemyBase,
                                                rospy.Time(0),
                                                rospy.Duration(3.0))
        (point, orientation) = GlobalInfo.tf_listener.lookupTransform(
            target, enemyBase, rospy.Time(0))

        yaw = Tool.yawFromTfQuaternion(orientation)

        x = Constants.GoalFriend.x + 0.05
        y = math.sin(yaw)
        yLimit = Constants.GoalHalfSize - (Constants.RobotRadius + 0.05)
        if y > yLimit:
            y = yLimit
        elif y < -yLimit:
            y = -yLimit

        targetYaw = 0

        GlobalInfo.controls[self._number].setTargetPose(x, y, targetYaw, "map")
        GlobalInfo.controls[self._number].setKickVelocity(0.0)

        return TaskStatus.RUNNING
Esempio n. 8
0
def BruteForce(pointList):
    if len(pointList)<=3:
        return pointList
    #去重
    pointList=list(set(pointList))
    #固定A点
    A = Tool.findIth(0,len(pointList)-1,pointList,1,lambda x,y:cmp(x[1],y[1]))
    pointList.remove(A)
    #枚举B,C,P
    while 1:
        dropList=[]
        for b in range(0,len(pointList)-1):
            for c in range(b+1,len(pointList)):
                for p in range(0,len(pointList)):
                    if p==b or p==c:
                        continue
                    B=pointList[b]
                    C=pointList[c]
                    P=pointList[p]
                    if Tool.isInTriangle(A,B,C,P)==1:
                        dropList.append(P)
        if len(dropList)==0:
            break
        #去重
        dropList=list(set(dropList))
        for p in dropList:
            pointList.remove(p)
    pointList.append(A)
    return pointList
Esempio n. 9
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.FAILURE

        ballPos = GlobalInfo.ball.pose.pose.position
        goalPos = Constants.GoalFriend

        angleGoalToBall = Tool.getAngle(goalPos, ballPos)
        angleGoalToBall *= -1.0
        defensePos = self._calcu.calcuDefensePos(goalPos, angleGoalToBall)

        defensePos, canReceive = Tool.convertToReceivePos(defensePos)

        x = defensePos.x
        y = defensePos.y
        yaw = -Tool.getAngle(defensePos, ballPos)

        GlobalInfo.controls[self._number].setTargetPose(x, y, yaw, "map", True)

        shootVel = 0.0
        dribblePower = 0.0
        if canReceive:
            shootVel = 8.0
            dribblePower = 8.0
        GlobalInfo.controls[self._number].setKickVelocity(
            shootVel, dribblePower)

        return TaskStatus.RUNNING
Esempio n. 10
0
def send_message(account, reports_list, discussion_id, list_index):
    message = ""
    counter = 0
    for report in reports_list:
        index = list_index * Data.tripwire_data[
            "reports_in_message"] + counter + 1
        counter += 1
        report_link = "l+k://report?" + str(report["id"]) + "&" + str(
            report["habitat"]) + "&193"
        try:
            habitat_name = Tool.surrogate_decoding(
                report["content"]["destinationHabitat"]["name"])
        except:
            habitat_name = "(/)название(/)"
        try:
            player_name = Tool.surrogate_decoding(
                report["content"]["destinationHabitat"]["nick"])
        except:
            player_name = "(/)имя(/)"

        message += "{}. {}\n{}\n{}\n{}\n\n".format(
            index, Tool.current_time_in_msc(report["date"]), player_name,
            habitat_name, report_link)
    telegram.send_message(message)
    print(message)
    result = account.send_message(message, discussion_id)
    print(result)
    return result
Esempio n. 11
0
    def __init__(self,
                 x=0,
                 y=0,
                 overlay=None,
                 text=None,
                 font=pygame.font.SysFont(None, 12),
                 normal="gfx/UI/Natural/BtnNormal.png",
                 pressed="gfx/UI/Natural/BtnNormal.png",
                 hover="gfx/UI/Natural/BtnHover.png"):
        self.pos = (x, y)
        self._font = font
        self.normal_gfx = Tool.load_image(normal)
        self.pressed_gfx = Tool.load_image(pressed)
        self.hover_gfx = Tool.load_image(hover)
        self.currentsize = (self.normal_gfx.get_width(),
                            self.normal_gfx.get_height())
        self.place(x, y)
        self.overlay_gfx = overlay

        self.buttonPressed = False
        self.buttonHovered = False
        self.lastMouseevent = False
        self.text = None
        self.reliefsize = 3

        if overlay is not None:
            self.load_overlay(overlay)
        if text is not None:
            self.set_text(text)
Esempio n. 12
0
 def on_init(self):
     self.id = "denoise"
     self.name = "Denoise"
     self.icon_path = "ui/PF2_Icons/Denoise.png"
     self.properties = [
         # Detailer
         Tool.Property("enabled",
                       "Denoise",
                       "Header",
                       False,
                       has_toggle=True,
                       has_button=False),
         Tool.Property("strength", "Strength", "Slider", 0, max=100, min=0),
         Tool.Property("w_strength",
                       "White Strength",
                       "Slider",
                       20,
                       max=100,
                       min=0),
         Tool.Property("b_strength",
                       "Black Strength",
                       "Slider",
                       70,
                       max=100,
                       min=0),
         Tool.Property("method",
                       "Method",
                       "Combo",
                       0,
                       options=[
                           "Mean",
                           "Gaussian",
                       ]),
     ]
Esempio n. 13
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.RUNNING

        ballPos = GlobalInfo.ball.pose.pose.position
        defensePos = self._calcu.calcuDefensePos()

        defensePos, canReceive = Tool.convertToReceivePos(defensePos)

        angleToBall = Tool.getAngle(defensePos, ballPos)

        x = defensePos.x
        y = defensePos.y
        yaw = angleToBall

        GlobalInfo.controls[self._number].setTargetPose(x,y,yaw,"map",True)

        shootVel = 0.0
        if canReceive:
            shootVel = 8.0
        GlobalInfo.controls[self._number].setKickVelocity(shootVel)

        return TaskStatus.RUNNING
Esempio n. 14
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.FAILURE

        target = "map"
        GlobalInfo.tf_listener.waitForTransform(target,base,rospy.Time(0),rospy.Duration(3.0))
        (point,orientation) = GlobalInfo.tf_listener.lookupTransform(target,base,rospy.Time(0))

        robotYaw = Tool.yawFromTfQuaternion(orientation)
        ballPos = GlobalInfo.ball.pose.pose.position
        kickTarget = GlobalInfo.controls[self._number].getKickTarget()

        angleToTarget = Tool.getAngle(ballPos, kickTarget)
        x,y = ballPos.x, ballPos.y

        diffAngle = Tool.normalize(angleToTarget - robotYaw)
        kickVelocity = 0.0
        if abs(diffAngle) < self._threshKickAngle:
            kickVelocity = self._velocity

        GlobalInfo.controls[self._number].setTargetPose(x,y,angleToTarget,"map")
        GlobalInfo.controls[self._number].setKickVelocity(kickVelocity)

        return TaskStatus.RUNNING
Esempio n. 15
0
def takePhotos(ID, name, message):
    """
        Function to take the photo
        This function will detect the faces and
    """
    # Check the validity of id and name
    if o_tl.checkInteger(ID) and name.isalpha():
        # Default webcam
        cam = Camera(0)
        count = 1

        while True:
            # Prepare camera and get frames (images)
            img, gray = cam.getFrames()

            # Using built-in function detectMultiScale for face detection
            faces = detector.detectMultiScale(gray, 1.05, 5)

            for (x, y, w, h) in faces:
                # Draw rectangle around face
                cv2.rectangle(img, (x, y), (x + w, y + h), (0, 128, 255), 2)

                # Incrementing number of sample
                count = count + 1

                # Saving the captured face in the dataset folder RawCapturedPicture
                cv2.imwrite(
                    '../RawCapturedPicture/' + str(name) + "_" + str(ID) +
                    '_' + str(count) + ".jpg", gray[y:y + h, x:x + w])

                # Display the frame
                cv2.imshow('Capture', img)

            # Wait for 100 miliseconds
            if cv2.waitKey(100) & 0xFF == ord('q'):
                break
            # Break if the number of frames is more than 100
            elif count > 100:
                break

        # Release and destroy all windows
        cam.releaseCam()

        # Store data in the excel
        res = str(ID) + " - " + str(name) + " - " + "Success!"
        row = [ID, name]
        with open('../Students/StudentsList.csv', 'a+') as csvFile:
            writer = csv.writer(csvFile)
            writer.writerow(row)
        csvFile.close()
        message.configure(text=res)
    else:
        if o_tl.checkInteger(ID):
            res = "Enter The Right Name"
            message.configure(text=res)
        if name.isalpha():
            res = "Enter Right Numerical ID"
            message.configure(text=res)
Esempio n. 16
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.RUNNING

        ballPos = GlobalInfo.ball.pose.pose.position
        goalPos = Constants.GoalFriend

        shootVel = 0.0
        avoidBall = True

        angleBallToGoal = Tool.getAngle(ballPos, goalPos)

        # ボールが敵ディフェンスエリアにあれば離れる
        dist = self._distToBall
        defensePos = ballPos
        if AnalystTool.isInDefenceArea(False, ballPos, 1.25):
            dist = self._longDistToBall

            trans = Tool.Trans(ballPos, angleBallToGoal)
            trDefensePos = Point(dist, 0, 0)
            defensePos = trans.invertedTransform(trDefensePos)
        else:
            target = "map"
            GlobalInfo.tf_listener.waitForTransform(target, base,
                                                    rospy.Time(0),
                                                    rospy.Duration(3.0))
            (point, orientation) = GlobalInfo.tf_listener.lookupTransform(
                target, base, rospy.Time(0))
            robotPos = Point(point[0], point[1], 0)

            trans = Tool.Trans(ballPos, angleBallToGoal)
            trRobotPos = trans.transform(robotPos)

            # 味方ゴールとボールの直線上にいれば、ボールに向かう
            if abs(trRobotPos.y) < 0.3:
                dist = 0
                shootVel = 8.0
                avoidBall = False
            trDefensePos = Point(dist, 0, 0)
            defensePos = trans.invertedTransform(trDefensePos)

        defensePos, canReceive = Tool.convertToReceivePos(defensePos)

        x = defensePos.x
        y = defensePos.y
        yaw = Tool.ivertAngle(angleBallToGoal)

        GlobalInfo.controls[self._number] \
            .setTargetPose(x,y,yaw,"map",avoidBall)

        if canReceive:
            shootVel = 8.0
        GlobalInfo.controls[self._number].setKickVelocity(shootVel)

        return TaskStatus.RUNNING
Esempio n. 17
0
def resampling(jp2_images_dir, resampled_images_dir, zip_path_list):
    tl.extract_zip(jp2_images_dir, zip_path_list)
    band_name = ''
    for jp2_directory in os.listdir(jp2_images_dir):
        resampled_images_specprod_dir = resampled_images_dir + jp2_directory
        os.mkdir(resampled_images_specprod_dir)
        jp2_files_list = []
        for root, dirnames, filenames in os.walk(jp2_images_dir +
                                                 jp2_directory):
            for filename in filenames:
                jp2_files_list.append(os.path.join(root, filename))
        height_10m, width_10m = tl.get10mFeatures(jp2_files_list)
        for jp2_image in jp2_files_list:
            if '10m' in jp2_image:
                tl.convertJP2toTIF(jp2_image, resampled_images_specprod_dir)
                print 'Copied file: ', jp2_image
                continue
            else:
                for band_name in resizing_band_list:
                    if band_name in jp2_image:
                        break
            dataset = rasterio.open(
                jp2_image, driver='JP2OpenJPEG'
            )  # Immagine di cui devo fare il resampling
            src_arr = dataset.read(1)  # Array di cui devo fare il resampling
            aff = dataset.transform
            resampled_arr = np.empty(
                (height_10m, width_10m),
                dtype=src_arr.dtype)  # Array di destinazione
            x = height_10m / src_arr.shape[1]  # Upsampling
            newaff = Affine(aff.a / x, aff.b, aff.c, aff.d, aff.e / x, aff.f)
            reproject(
                # source parameters
                source=src_arr,
                src_crs=dataset.crs,
                src_transform=dataset.transform,
                # dest parameters
                destination=resampled_arr,
                dst_crs=dataset.crs,
                dst_transform=newaff,
                resampling=Resampling.nearest)
            resampled_file_name = resampled_images_specprod_dir + '/' + 'resampled_image_' \
                                  + str(band_name) + '_10m.tif'
            resampled_image = rasterio.open(resampled_file_name,
                                            'w',
                                            height=resampled_arr.shape[0],
                                            width=resampled_arr.shape[1],
                                            count=1,
                                            dtype=resampled_arr.dtype,
                                            driver='GTiff',
                                            crs=dataset.crs,
                                            transform=newaff)
            resampled_image.write(resampled_arr, 1)
            resampled_image.close()
            dataset.close()
            print 'Resampled file: ', resampled_file_name
Esempio n. 18
0
def Init():
    global background_photo
    background_photo = pygame.image.load('BackgroundIce.png')
    background_photo = pygame.transform.scale(
        background_photo, (int(display_width * 0.6), display_height))

    Tool.Init(game_display, display_width, display_height, clock)
    Tool.AddSound("Hurt", pygame.mixer.Sound('短慘叫.wav'))
    Tool.AddSound("Death", pygame.mixer.Sound('長慘叫.wav'))
    Tool.AddSound("Yay", pygame.mixer.Sound('耶.wav'))
Esempio n. 19
0
 def load(self, source):
     """
     读取json格式数据,source为json字符串。若遇到json格式错误,抛出异常。
     """
     start = Tool.escape_whitespace(source, 0)
     obj, end = self._decode(source, start)
     end = Tool.escape_whitespace(source, end)
     if end != len(source):
         raise ValueError(Tool.errmsg("Extra data", source, end, len(source)))
     return obj
Esempio n. 20
0
def generate_usecase_infomation():
    for root, dirs, files in os.walk(input_usecase_directory):
        for file in files:
            information = ""
            output_filename = ""
            foRead = open(os.path.join(root, file), "r", encoding="UTF-8")

            for line in foRead:
                line_array = line.split(" : ")
                if len(line_array) != 2:
                    continue
                # print(file, "array length =", len(line_array))
                title = line_array[0].strip()
                content = line_array[1].strip()

                if title == "file name":
                    information += "file name : " + content + "\n"
                    output_filename = content
                    continue

                content = content.lower()

                content = content.replace("(none)", "")

                remove_list = Tool.get_remove_list()
                for item in remove_list:
                    content = content.replace(item, "")

                content_array = content.split(" ")

                convert_dict = Tool.get_convert_dict()
                for index in range(len(content_array)):
                    if content_array[index] in convert_dict:
                        content_array[index] = convert_dict[
                            content_array[index]]
                for index in range(len(content_array)):
                    if content_array[index] in convert_dict:
                        content_array[index] = convert_dict[
                            content_array[index]]

                stopword_list = Tool.get_stopword_list()
                content_array = [
                    word for word in content_array if word not in stopword_list
                ]

                content_array = [
                    word for word in content_array if not Tool.is_number(word)
                ]

                information += title + " : " + str(content_array) + "\n"

            output_path = output_usecase_directory + output_filename + ".txt"
            foWrite = open(output_path, "w", encoding="UTF-8")
            foWrite.write(information)
            foWrite.close()
Esempio n. 21
0
def install(destDir=None, downloadDir=None, redownload=False, updateLocalSettings=False):
    print >> sys.stderr, "Installing Stanford Parser"
    if downloadDir == None:
        downloadDir = os.path.join(Settings.DATAPATH, "tools/download/")
    if destDir == None:
        destDir = os.path.join(Settings.DATAPATH, "tools/")
    items = Download.downloadAndExtract(Settings.URL["STANFORD_PARSER"], destDir, downloadDir)
    stanfordPath = Download.getTopDir(destDir, items)
    Tool.finalizeInstall(["stanford-parser.jar"], 
                         {"stanford-parser.jar":"java -cp stanford-parser.jar:slf4j-api.jar edu.stanford.nlp.trees.EnglishGrammaticalStructure"},
                         stanfordPath, {"STANFORD_PARSER_DIR":stanfordPath}, updateLocalSettings)
Esempio n. 22
0
 def install(self, destDir=None, downloadDir=None, redownload=False, updateLocalSettings=False):
     print >> sys.stderr, "Installing Stanford Parser"
     if downloadDir == None:
         downloadDir = os.path.join(Settings.DATAPATH, "tools/download/")
     if destDir == None:
         destDir = os.path.join(Settings.DATAPATH, "tools/")
     items = Download.downloadAndExtract(Settings.URL["STANFORD_PARSER"], destDir, downloadDir)
     stanfordPath = Download.getTopDir(destDir, items)
     Tool.finalizeInstall(["stanford-parser.jar"], 
                          {"stanford-parser.jar":"java -cp stanford-parser.jar edu.stanford.nlp.trees.EnglishGrammaticalStructure"},
                          stanfordPath, {"STANFORD_PARSER_DIR":stanfordPath}, updateLocalSettings)
Esempio n. 23
0
 def on_init(self):
     self.id = "exposure"
     self.name = "Exposure"
     self.icon_path = "ui/PF2_Icons/Exposure.png"
     self.properties = [
         # Detailer
         Tool.Property("enabled", "Exposure", "Header", False, has_toggle=False, has_button=False),
         Tool.Property("exposure", "Overall Exposure", "Slider", 0, max=50, min=-50),
         Tool.Property("h_exposure", "Highlight Exposure", "Slider", 0, max=50, min=-50),
         Tool.Property("m_exposure", "Midtone Exposure", "Slider", 0, max=50, min=-50),
         Tool.Property("s_exposure", "Shadow Exposure", "Slider", 0, max=50, min=-50),
     ]
Esempio n. 24
0
 def testDecisionBoundary(self):
     print("\n\n>> Display the decision boundary to classify an iris in one of the two classes: setosa, versicolor")
     df=self.loadIrisData()
     # build training set with 100 records: the label is in column 5
     y=df.iloc[0:100,4].values
     # transform the classed to numerical value
     y = np.where( y == 'Iris-setosa', -1, 1)
     # take the columns 0,1: sepal and petal length as variables
     X=df.iloc[0:100,[0,2]].values
     ppn = Perceptron(0.01,10)
     ppn.fit(X,y)
     tool.displayDecisionRegions( X, y, classifier = ppn,
     xlabel='sepal length [std]',ylabel='petal length [std]',label0='Setosa',label1='Versicolor')
Esempio n. 25
0
    def init_game(self, dictstate):

        self.cardname_list = [
            "card_sunflower",
            'card_peashooter',
            'card_snowpea',
            'card_wallnut',
            'card_cherrybomb',
            'card_threepeater',
            'card_squash',
            'card_jalapeno',
        ]
        if 'select_cards' in dictstate:
            self.card_list = dictstate['select_cards']
        self.money = 30000
        if "money" in dictstate:
            self.money = dictstate['money']
        self.done = False
        self.current_time = dictstate['current_time']

        card_x_length = 53
        card_y_length = 74

        grid_x = 9
        grid_y = 5

        #self.UpperCard_TotalOffSet_X = C.Constant_PlantSelection_LayOut.Upper_Panel_Card_Offset_X + C.Constant_PlantSelection_LayOut.Upper_Panel_Offset_X
        self.UpperCard_TotalOffSet_X = 78
        #self.UpperCard_TotalOffSet_Y=C.Constant_PlantSelection_LayOut.Upper_Panel_Offset_Y+ C.Constant_PlantSelection_LayOut.Upper_Panel_Card_Offset_y
        self.UpperCard_TotalOffSet_Y = 8

        #下面的是用来选牌用的
        self.card_grid = Tool.Grid(1, 8, self.UpperCard_TotalOffSet_X,
                                   self.UpperCard_TotalOffSet_Y, card_x_length,
                                   card_y_length)
        #
        self.map_grid = Tool.Grid(grid_y, grid_x, 30, 80, 80, 100)
        self.plant_position_map = [[True for j in range(grid_x)]
                                   for i in range(grid_y)]
        for i, card_name in enumerate(self.cardname_list):
            single_card_image = Tool.All_Images[card_name]
            single_card_image = Tool.get_surface_from_image_samesize(
                single_card_image)
            card_spirte_info = Tool.get_plant_info_from_card_name(card_name)
            plant_name, plant_freezetime, plant_cost = card_spirte_info
            plant_sprite_images = Tool.All_Images[plant_name]

            single_card = Card(self.card_grid, i, card_name, single_card_image,
                               plant_cost, plant_freezetime, self.current_time)
            self.card_list.append(single_card)
            self.card_to_sprite_image[card_name] = plant_sprite_images
Esempio n. 26
0
def main_func():

    print "Welcome to the Monitor state"

    keyboard.Path()

    print "Select Menu:\n1. Monitor State\n2. Manual Mode\n3. Exit\n"

    c = keyboard.Choice()
    if c == 1:
        Tool.start_tool()
    else:
        print "Bye Bye "
        sys.exit(0)
Esempio n. 27
0
    def on_init(self):
        self.id = "blur"
        self.name = "Blur"
        self.icon_path = "ui/PF2_Icons/Blur.png"
        self.properties = [
            # Detailer
            Tool.Property("enabled", "Blur", "Header", False, has_toggle=True, has_button=False),
            Tool.Property("method", "Method", "Combo", 1, options=[
                "Guassian",
                "Average",
                "Median"
            ]),
            Tool.Property("strength", "Strength", "Slider", 5, max=100, min=0),

        ]
def Loss_SpatialSmooth(X, W, Ind):
    '''
    function to return spatial smoothness constraint loss
    :param X: Input point cloud  float B*N*3
    :param W: Input knn weight matrix  float B*N*Knn
    :param Ind: Input knn index  int B*N*Knn
    :return: spatial smooth loss
    '''

    knn = W.get_shape()[-1].value
    # unstacked_X = tf.unstack(X,axis=0)
    # unstacked_Ind = tf.unstack(Ind,axis=0)
    #
    # X_tilde = []
    # for X_b, Ind_b in zip(unstacked_X,unstacked_Ind):
    #
    #     X_tilde.append(tf.gather(X_b,Ind_b))

    X_tilde = Tool.batch_gather_v1(X, Ind)  # indexed X B*N*Knn*3

    # X_tilde = tf.stack(X_tilde,axis=0)  # indexed X B*N*Knn*3
    X_expand = tf.tile(X[:, :, tf.newaxis, :],
                       [1, 1, knn, 1])  # expanded X B*N*Knn*3
    loss = tf.reduce_mean(W * tf.reduce_sum((X_expand - X_tilde)**2, axis=-1))

    return loss
Esempio n. 29
0
    def DoGCodeCallsForPass(self, finishing_pass):
        failure = self.CheckToolExists()
        if failure: return failure
        tool = Tool.FindTool(self.tool_number)

        depthparams = self.GetDepthParams()
        if not finishing_pass or self.only_finishing_pass:
            SpeedOp.DoGCodeCalls(self)

        if self.auto_roll_on or self.auto_roll_off:
            roll_radius = self.auto_roll_radius / wx.GetApp().program.units
        else:
            roll_radius = None

        depth_params = self.GetDepthParams()
        tool_diameter = tool.CuttingRadius(True) * 2.0
        cutting_edge_angle = tool.cutting_edge_angle

        if finishing_pass:
            feedrate_hv(self.finishing_h_feed_rate / wx.GetApp().program.units,
                        self.vertical_feed_rate / wx.GetApp().program.units)
            flush_nc()
            offset_extra = 0.0
            depth_params.step_down = self.finishing_step_down
            depth_params.z_finish_depth = 0.0
        else:
            offset_extra = self.offset_extra / wx.GetApp().program.units

        cut_mode = self.finishing_cut_mode if finishing_pass else self.cut_mode

        self.DoEachSketch(self.DoGCodeCallsForSketch,
                          (cut_mode, depth_params, tool_diameter, roll_radius,
                           offset_extra, cutting_edge_angle))
Esempio n. 30
0
 def StartButton():
     button_width_factor = 0.18
     button_height_factor = 0.1
     Tool.Button(game_display, "START", display_width / 2 * 0.8,
                 display_height * 0.65, display_width * button_width_factor,
                 display_height * button_height_factor, Tool.green,
                 Tool.bright_green, StartGame)
Esempio n. 31
0
 def EnableAndSetCornerFlatAndAngle(self):
     type = Tool.GetToolTypeValues()[self.cmbToolType.GetSelection()]
     if type == TOOL_TYPE_DRILL or type == TOOL_TYPE_CENTREDRILL:
         self.lgthCornerRadius.Enable(False)
         self.lgthCornerRadius.SetLabel("")
         self.lgthFlatRadius.Enable(False)
         self.lgthFlatRadius.SetLabel("")
         self.lgthCuttingEdgeAngle.Enable()
         self.lgthCuttingEdgeAngle.SetValue(self.object.cutting_edge_angle)
     elif type == TOOL_TYPE_ENDMILL or type == TOOL_TYPE_SLOTCUTTER:
         self.lgthCornerRadius.Enable()
         self.lgthCornerRadius.SetValue(self.object.corner_radius)
         self.lgthFlatRadius.Enable(False)
         self.lgthFlatRadius.SetLabel("")
         self.lgthCuttingEdgeAngle.Enable(False)
         self.lgthCuttingEdgeAngle.SetLabel("")
     elif type == TOOL_TYPE_BALLENDMILL:
         self.lgthCornerRadius.Enable(False)
         self.lgthCornerRadius.SetLabel("")
         self.lgthFlatRadius.Enable(False)
         self.lgthFlatRadius.SetLabel("")
         self.lgthCuttingEdgeAngle.Enable(False)
         self.lgthCuttingEdgeAngle.SetLabel("")
     elif type == TOOL_TYPE_CHAMFER or type == TOOL_TYPE_ENGRAVER:
         self.lgthCornerRadius.Enable(False)
         self.lgthCornerRadius.SetLabel("")
         self.lgthFlatRadius.Enable()
         self.lgthFlatRadius.SetValue(self.object.flat_radius)
         self.lgthCuttingEdgeAngle.Enable()
         self.lgthCuttingEdgeAngle.SetValue(self.object.cutting_edge_angle)
Esempio n. 32
0
    def __init__(self, name, tool, models=None, claims=None):

        global maxnamelen, maxclaimlen

        self.name = name
        if len(name) > maxnamelen:
            maxnamelen = len(name)

        self.toolname = tool
        self.claims = claims
        for cl in self.claims:
            if len(cl) > maxclaimlen:
                maxclaimlen = len(cl)
        self.models = models

        Tool.register(self.toolname, self)
Esempio n. 33
0
    def run(self):
        base = GlobalInfo.controls[self._number].get_base()

        if base is None:
            return TaskStatus.RUNNING


        ballPos = GlobalInfo.ball.pose.pose.position
        
        waitPos = Point()
        waitPos.y = -ballPos.y

        if waitPos.y > self._waitPosYLimit:
            waitPos.y = self._waitPosYLimit
        elif waitPos.y < -self._waitPosYLimit:
            waitPos.y = -self._waitPosYLimit

        # ボールとwaitPos間に敵ロボットがいないかチェック
        for waitX in self._waitPosXList:
            waitPos.x = waitX
            if AnalystTool.isNoObstacle(ballPos, waitPos):
                break
        
        x = waitPos.x
        y = waitPos.y
        yaw = Tool.getAngle(waitPos, ballPos)

        GlobalInfo.controls[self._number] \
                .setTargetPose(x, y, yaw, "map", True)
        GlobalInfo.controls[self._number].setKickVelocity(0.0)

        return TaskStatus.RUNNING
Esempio n. 34
0
def merge():
    gr_df = pd.DataFrame(pd.read_csv('OutputGSAT.csv', dtype='str'))
    citypp_df = pd.DataFrame(pd.read_csv('OutputGrVsCityPP.csv', dtype='str'))
    dd_df = pd.DataFrame(pd.read_csv('OutputGrVsDurl.csv', dtype='str'))
    salary_df = pd.DataFrame(pd.read_csv('OutputGrVsSalary.csv', dtype='str'))
    ud_df = pd.DataFrame(pd.read_csv('OutputGrVsUurl.csv', dtype='str'))

    for x in range(len(gr_df)):
        for y1 in range(len(citypp_df)):
            if gr_df['DID'][x] == citypp_df['DID'][y1]:
                gr_df['City'][x] = citypp_df['City'][y1]
                gr_df['PP'][x] = citypp_df['PP'][y1]
        for y2 in range(len(dd_df)):
            if gr_df['DID'][x] == dd_df['DID'][y2]:
                gr_df['DURL'][x] = dd_df['DURL'][y2]
        for y3 in range(len(salary_df)):
            if gr_df['DID'][x] == salary_df['DID'][y3]:
                gr_df['Salary'][x] = salary_df['Salary'][y3]
                gr_df['SalaryURL'][x] = salary_df['SalaryURL'][y3]
        for y4 in range(len(ud_df)):
            if gr_df['DID'][x] == ud_df['DID'][y4]:
                gr_df['UURL'][x] = ud_df['UURL'][y4]

    gr_df.to_csv("D.csv", encoding="utf_8_sig", index=False)
    Tool.SaveDatabase(gr_df, "D")
Esempio n. 35
0
def install(destDir=None, downloadDir=None, redownload=False, updateLocalSettings=False):
    print >> sys.stderr, "Installing GENIA Sentence Splitter"
    if downloadDir == None:
        downloadDir = os.path.join(Settings.DATAPATH, "tools/download/")
    if destDir == None:
        destDir = os.path.join(Settings.DATAPATH, "tools/geniass")
    Download.downloadAndExtract(Settings.URL["GENIA_SENTENCE_SPLITTER"], destDir, downloadDir, "geniass")
    print >> sys.stderr, "Compiling GENIA Sentence Splitter"
    Tool.testPrograms("Genia Sentence Splitter", ["make", "ruby"])
    cwd = os.getcwd()
    os.chdir(destDir)
    print >> sys.stderr, "Compiling Genia Sentence Splitter"
    subprocess.call("make", shell=True)
    os.chdir(cwd)
    Tool.finalizeInstall(["./run_geniass.sh"], 
                         {"./run_geniass.sh":"./run_geniass.sh README /dev/null " + Settings.RUBY_PATH},
                         destDir, {"GENIA_SENTENCE_SPLITTER_DIR":destDir}, updateLocalSettings)
Esempio n. 36
0
def install(destDir=None, downloadDir=None, redownload=False, compile=False, javaHome=None, updateLocalSettings=False):
    print >> sys.stderr, "Installing BANNER"
    if downloadDir == None:
        downloadDir = os.path.join(Settings.DATAPATH, "tools/download")
    if destDir == None:
        destDir = Settings.DATAPATH
    if compile:
        Download.downloadAndExtract(Settings.URL["BANNER_SOURCE"], destDir + "/tools/BANNER", downloadDir + "/banner.tar.gz", "trunk", False, redownload=redownload)
        print >> sys.stderr, "Compiling BANNER with ANT"
        Tool.testPrograms("BANNER", ["ant"], {"ant":"ant -version"})
        #/usr/lib/jvm/java-6-openjdk
        if javaHome == None or javaHome.strip() == "":
            subprocess.call("cd " + destDir + "/tools/BANNER; ant -f build_ext.xml", shell=True)
        else:
            subprocess.call("cd " + destDir + "/tools/BANNER; export JAVA_HOME=" + javaHome + "; ant -f build_ext.xml", shell=True)
    else:
        print >> sys.stderr, "Downloading precompiled BANNER"
        Download.downloadAndExtract(Settings.URL["BANNER_COMPILED"], destDir + "/tools", downloadDir, redownload=redownload)
    Tool.finalizeInstall([], None, destDir + "/tools/BANNER", {"BANNER_DIR":destDir + "/tools/BANNER"}, updateLocalSettings)
Esempio n. 37
0
 def gvimRunning(self):
     """Check if Gvim is still running."""
     if self.gvim_open:
         if gvimHasNetbeans(self.topmodel):
             # gvim_open flag is set and reset appropriately.
             return 1
         # No netbeans connection: need to check if the process is still
         # there.
         if Tool.stillRunning(self.gvim_open):
             return 1
         self.gvim_open = 0
     return 0
Esempio n. 38
0
    def fileOpened(self, name):
        """Invoked when a fileOpened event was received from Gvim, passed on to
           the main thread."""
        # Let the generic stuff find a node for this name and add the tool to
        # the item.
        node = Tool.toolOpenedFile(self, name)

        # Add a buffer for the node.
        buf = self.buffers.get(node)
        if not buf:
            self.lastbuffer = self.lastbuffer + 1
            buf = GvimBuffer(self.lastbuffer)
            self.buffers[node] = buf
            if self.handler:
                # Let Gvim know which buffer number we use for this file.
                self.handler.sendCmd(buf.nr, "putBufferNumber", ' "%s"' % self.escapeStringArg(node.fullName()))
                # We don't want changes to be reported
                self.handler.sendCmd(buf.nr, "stopDocumentListen")

        # May show breakpoints in the newly opened file.
        Tool.updateBreakpoints(self, node)
Esempio n. 39
0
    def _decode_list(self, string, index):
        values = []
        nextchar = string[index:index + 1]
        if nextchar in Tool.WhiteSpace:
            index = Tool.escape_whitespace(string, index + 1)
            nextchar = string[index:index + 1]

        if nextchar == ']':
            return values, index + 1

        while True:
            try:
                value, index = self._decode(string, index)
            except StopIteration:
                raise ValueError(Tool.errmsg("Expecting object", string, index))

            values.append(value)
            nextchar = string[index:index + 1]
            if nextchar in Tool.WhiteSpace:
                index = Tool.escape_whitespace(string, index + 1)
                nextchar = string[index:index + 1]
            index += 1
            if nextchar == ']':
                break
            elif nextchar != ',':
                raise ValueError(Tool.errmsg("Expecting , delimiter", string, index))

            try:
                if string[index] in Tool.WhiteSpace:
                    index += 1
                    if string[index] in Tool.WhiteSpace:
                        index = Tool.escape_whitespace(string, index + 1)
            except IndexError:
                pass

        return values, index
Esempio n. 40
0
    def foreground(self, item, node=None, lnum=None):
        """Move this Tool to the foreground, with the current activity.
           When "item" is not None edit this item.
           When "node" is not None edit this node."""
        winposarg = '"+winpos %d %d" "+set lines=30 columns=82" ' % (self.topmodel.view.GetSize().width + 10, 0)
        if item:
            node = item.node

        # Start a Vim server on the file.
        if gvimHasNetbeans(self.topmodel):
            self.gvimRunNetbeans(winposarg)
        if self.handler:
            if node:
                self.currentnode = node
                self.gvimOpenFile(node)
            else:
                self.handler.sendCmd(0, "raise")
        else:
            running = self.gvimRunning()
            cmd = "%s -f --servername AAPGVIM " % gvimProgName(self.topmodel)

            # Jump to the node when it's specified, the user may have started
            # editing another file.
            if not running or node:
                # Position the Vim window next to ours and bring it to the
                # front.
                cmd = cmd + winposarg

                if node:
                    if lnum:
                        pos = "+%d " % lnum
                    else:
                        pos = ""
                    cmd = cmd + ('--remote-silent %s"%s"' % (pos, node.fullName()))
                if item:
                    self.setCurrentItem(item)
                else:
                    self.currentnode = node
            else:
                cmd = cmd + '--remote-send "<C-\\><C-N>:call foreground()<CR>"'
            if not running:
                self.gvim_start_time = time.time()
                self.gvim_open = Tool.spawn(cmd)
            else:
                self.gvimWait()
                os.system(cmd)
Esempio n. 41
0
    def _decode_float_int(self, string, index):
        integer = ''
        frac = ''
        exp = ''
        isInt = True
        isFrac = False
        isExp = False

        while True:
            if len(string) == index:
                break
            nextchar = string[index]

            if nextchar in Tool.WhiteSpace:
                index = Tool.escape_whitespace(string, index)
            elif nextchar == '-' or nextchar == '+' or ('0' <= nextchar <= '9'):
                if isInt:
                    integer += nextchar
                    index += 1
                elif isFrac and not isExp:
                    frac += nextchar
                    index += 1
                elif isExp:
                    exp += nextchar
                    index += 1
            elif nextchar == '.':
                isInt = False
                isFrac = True
                frac += nextchar
                index += 1
            elif nextchar == 'e' or nextchar == 'E':
                isExp = True
                exp += nextchar
                index += 1
            else:
                break

        if isFrac:
            res = float(integer + frac + exp)
        else:
            res = int(integer)

        return res, index
Esempio n. 42
0
def Graham_Scan(pointlist):
	#构造有序list
	point = Tool.findIth(0,len(pointlist)-1,pointlist,1,comparePointX)#获取最左边点
	uplist = []
	downlist=[]
	otherlist=[]
	for w in pointlist:
		if w[0]==point[0] and w[1]==point[1]:
			continue
		elif w[0]==point[0] and w[1]>point[1]:
			uplist.append((w,'+'))
		elif w[0]==point[0] and w[1]<point[1]:
			downlist.append((w,'-'))
		else:
			otherlist.append((w,float(w[1]-point[1])/(w[0]-point[0])))
	#排序
	uplist.sort(cmp=lambda x,y:comparePointY(x[0],y[0]),reverse=True)#降序
	downlist.sort(cmp=lambda x,y:comparePointY(x[0],y[0]))#升序
	otherlist.sort(cmp=lambda x,y:cmp(x[1],y[1]))#按斜率升序
	#合并为一个有序list
	list=[]
	list.append(point)
	for w in downlist:
		list.append(w[0])
	for w in otherlist:
		list.append(w[0])
	for w in uplist:
		list.append(w[0])
	#Graham-Scan
	stack = []
	if len(list)<3:
	    return list
	for w in range(3):
	    stack.append(list.pop(0))
	for w in range(len(list)):
	    next = list.pop(0)
	    while isLeftMove(stack[-2],stack[-1],next,point)=='right':
	        stack.pop()
	        if len(stack)<=2:
	            break
	    stack.append(next)
	return stack
Esempio n. 43
0
	def cfg_host(self, nameport, *args):
		np   = Tool.hostport(nameport, Defaults.PORT)
		name = np[0]
		port = len(np)>1 and Tool.intval(np[1]) or _PORT
		pw   = len(np)>2 and np[2] or ''
		sa   = socket.getaddrinfo(name, port)
		if not sa:
			Log.err("cannot resolve %s",name)
			return

		for a in sa:
			if a[0] != socket.AF_INET and a[0] != socket.AF_INET6:
				Log.warn("wrong family {0} for {1}", Tool.sockfam(a[0]), name)
				continue
			if a[1] != socket.SOCK_DGRAM:
				Log.info("ignore type {0} for {1}", Tool.socktype(a[1]), name)
				continue
			if a[2] != socket.IPPROTO_UDP:
				Log.info("ignore proto {0} for {1}", Tool.sockproto(a[2]), name)
				continue
			Log.info("host {0}: {2} {1}", name, a[4], Tool.sockfam(a[0]))
			self.target.add(a[0], a[4], pw)
Esempio n. 44
0
    def _decode_dict(self, string, index):
        values = []
        nextchar = string[index:index + 1]

        if nextchar != '"':
            if nextchar in Tool.WhiteSpace:
                index = Tool.escape_whitespace(string, index)
                nextchar = string[index:index + 1]

            if nextchar == '}':
                values = {}
                return values, index + 1
            elif nextchar != '"':
                raise ValueError(Tool.errmsg("Expecting property name", string, index))

        index += 1

        while True:
            key, index = self._decode_string(string, index)

            if string[index: index + 1] != ':':
                index = Tool.escape_whitespace(string, index)
                if string[index:index + 1] != ':':
                    raise ValueError(Tool.errmsg("Expecting : delimiter", string, index))

            index += 1

            try:
                if string[index] in Tool.WhiteSpace:
                    index += 1
                    if string[index] in Tool.WhiteSpace:
                        index = Tool.escape_whitespace(string, index + 1)
            except IndexError:
                pass

            try:
                value, index = self._decode(string, index)
            except StopIteration:
                raise ValueError(Tool.errmsg("Expecting object", string, index))

            values.append((key, value))

            try:
                nextchar = string[index]
                if nextchar in Tool.WhiteSpace:
                    index = Tool.escape_whitespace(string, index)
                    nextchar = string[index]
            except IndexError:
                nextchar = ''
            index += 1

            if nextchar == '}':
                break
            elif nextchar != ',':
                raise ValueError(Tool.errmsg("Expecting , delimiter", string, index))

            try:
                nextchar = string[index]
                if nextchar in Tool.WhiteSpace:
                    index += 1
                    nextchar = string[index]
                    if nextchar in Tool.WhiteSpace:
                        index = Tool.escape_whitespace(string, index + 1)
                        nextchar = string[index]
            except IndexError:
                nextchar = ''

            index += 1
            if nextchar != '"':
                raise ValueError(Tool.errmsg("Expecting property name", string, index))

        values = dict(values)

        return values, index
Esempio n. 45
0
class TBMMSpider:

	# 页面初始化
	def __init__(self):
		self.siteUrl = u'http://mm.taobao.com/json/request_top_list.htm'
		self.tool = Tool()
		self.user_agent = u'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
		# 初始化headers
		self.headers = {u'User-Agent': self.user_agent}

	# 获取索引页面的内容
	def getPage(self,pageIndex):
		url = self.siteUrl+u'?page='+str(pageIndex)
		print(url)
		request = urllib2.Request(url,headers = self.headers)
		response = urllib2.urlopen(request)
		return response.read().decode(u'gbk')

	# 获取索引页面所有MM的信息,list格式
	def getContents(self,pageIndex):
		page = self.getPage(pageIndex)
		patter = re.compile(u'<div class="list-item.*?pic-word.*?<a href="(.*?)".*?<img src="(.*?)" .*?<a class="lady-name.*?>(.*?)</a>.*?<strong>(.*?)</strong>.*?<span>(.*?)</span>',re.S)
		items = re.findall(patter,page)
		contents = []
		for item in items:
			# item[0]是MM详情页,item[1]是MM头像地址,item[2]是MM姓名,item[3]是MM年龄,item[4]是MM居住地
			# print u'http:'+item[0],u'http:'+item[1],item[2],item[3],item[4]
			contents.append([u'http:'+item[0],u'http:'+item[1],item[2],item[3],item[4]])
		return contents

	# 获取MM个人详情页面
	def getDetailPage(self,infoUrl):
		request = urllib2.Request(infoUrl,headers=self.headers)
		response = urllib2.urlopen(request)
		return response.read().decode(u'gbk')

	# 获取个人文字简介
	def getBrief(self,page):
		patter = re.compile(u'<div class="mm-aixiu-content".*?>(.*?)<!--',re.S)
		result = re.search(patter,page)
		if result:
			return self.tool.replaceHTMLTag(result.group(1))
		else:
			return None

	# 获取页面所有图片
	def getAllImg(self,page):
		patter = re.compile(u'<div class="mm-aixiu-content".*?>(.*?)<!--',re.S)
		# 个人信息页面所有代码
		content = re.search(patter,page)
		# 从代码中提取图片
		patterImg = re.compile(u'<img.*?src="(.*?)".*?>',re.S)
		print(content)
		if content:
			images = re.findall(patterImg,content.group(1))
			return images
		else:
			return None

	# 保存多张写真图片
	def saveImgs(self,images,name):
		number = 1
		print(u'发现'+name+u'共有'+len(images)+u'张照片')
		for imageUrl in images:
			splitPath = imageUrl.split(u'.')
			fTail = splitPath.pop()
			if len(fTail)>3:
				fTail = 'jpg'
			fileName = name+u'/'+str(number)+u'.'+fTail
			self.saveImg(imageUrl,fileName)
			number+=1

	# 保存头像
	def saveIcon(self,iconURL,name):
		splitPath = iconURL.split(u'.')
		fTail = splitPath.pop()
		fileName = name+u'/icon.'+fTail
		self.saveImg(iconURL,fileName)

	# 写入图片【传入图片地址,文件名,保存单张图片】
	def saveImg(self,imgUrl,fileName):
		u = urllib.urlopen(imgUrl)
		data = u.read()
		f = open(fileName,u'wb')
		f.write(data)
		f.flush()
		f.close()

	# 写入文本
	def saveBrief(self,content,name):
		fileName = name+u'/'+name+u'.txt'
		f = open(fileName,u'w+')
		print(u'正在偷偷保存她的个人信息为'+fileName)
		f.write(content.encode('utf-8'))
		f.flush()
		f.close()

	# 创建新目录
	def mkdir(self,path):
		path = path.strip()
		# 判断路径是否存在,存在为True,不存在为False
		isExist = os.path.exists(path)
		# 判断结果
		if not isExist:
			# 如果不存在则创建目录
			# 创建目录操作函数
			os.makedirs(path)
			return True
		else:
			# 如果目录存在则不创建,并提示目录已存在
			return False

	def savePageInfo(self,pageIndex):
		contents = self.getContents(pageIndex)
		for item in contents:
			print u'发现一位模特,名字叫',item[2],u',芳龄',item[3],u',她在',item[4]
			print u'正在偷偷地保存',item[2],u'的信息'
			print u'又意外地发现她的个人地址是',item[0]
			# 个人详情页面的URL
			detailURL = item[0]
			print(detailURL)
			# 得到个人详情页面代码
			detailPage = self.getDetailPage(detailURL)
			# 获取个人简介
			brief = self.getBrief(detailPage)
			self.mkdir(item[2])
			# 判断个人简介是否为空
			if brief:
				print(brief)
				# 保存个人简介
				self.saveBrief(brief,item[2])
				# 获取所有图片列表
				images = self.getAllImg(detailPage)
				print(len(images))
				# 保存图片
				self.saveImgs(images,item[2])
			# 保存头像
			self.saveIcon(item[1],item[2])

	def savePagesInfo(self,start,end):
		for i in range(start,end+1):
			print u'正在偷偷寻找第',i,u'个地方,看看MM们在不在'
			self.savePageInfo(i)
Esempio n. 46
0
	def __init__(self):
		self.siteUrl = u'http://mm.taobao.com/json/request_top_list.htm'
		self.tool = Tool()
		self.user_agent = u'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
		# 初始化headers
		self.headers = {u'User-Agent': self.user_agent}
Esempio n. 47
0
	def cfg_listen4(self, nameport):
		np = Tool.hostport(nameport, Defaults.PORT)
		self.port.add(socket.AF_INET, np)
Esempio n. 48
0
#!/usr/bin/env python
import Tool
from knox import Knox
import cPickle

# Load homicides from 2012
d1 = Tool.load_data_from_db(\
  'SELECT x, y, ts FROM crime.crimes '+\
  'WHERE year=2012 AND ptype=%s', \
  'tplagge', 'tplagge', 'dssgpg',select_args=('HOMICIDE',))

# Load graffiti reports from 2012
d2 = Tool.load_data_from_db(\
  'SELECT x, y, casedate FROM threeoneone.graffiti '+\
  'WHERE extract(Year from casedate)=%s', \
  'tplagge','tplagge','dssgpg',select_args=(2012,))

# Extract x, y, time
x1, y1, t1 = d1['x'], d1['y'], d1['ts']
x2, y2, t2 = d2['x'], d2['y'], d2['casedate']

# Run the Knox test with characteristic distance = 1/8 mile
# and characteristic time = 7 day
k = Knox(x1, y1, t1, x2, y2, t2)
X,randdist = k.compute_test_statistic(5280.0/8.0,7.0)
print X

# Save the output to a pickle file
#with open('knox_example.pkl','wb') as f:
#  cPickle.dump(X, f)
#  cPickle.dump(randdist, f)