wukong-robot
wukong-robot copied to clipboard
Project dependencies may have API risk issues
Hi, In wukong-robot, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
pyyaml>=4.2b1
requests==2.21.0
baidu-aip==2.0.0.1
pydub==0.23.1
python-dateutil==2.7.5
watchdog==0.9.0
pytz==2018.9
fire==0.1.3
tornado==5.1.1
markdown==3.0.1
semver==2.8.1
websocket==0.2.1
websocket-client==1.3.2
pypinyin*
jieba*
The version constraint == will introduce the risk of dependency conflicts because the scope of dependencies is too strict. The version constraint No Upper Bound and * will introduce the risk of the missing API Error because the latest version of the dependencies may remove some APIs.
After further analysis, in this project, The version constraint of dependency semver can be changed to >=2.4.2,<=3.0.0.dev1.
The above modification suggestions can reduce the dependency conflicts as much as possible, and introduce the latest version as much as possible without calling Error in the projects.
The invocation of the current project includes all the following methods.
The calling methods from the semver
semver.compare
The calling methods from the all methods
_snowboydetect.SnowboyVad_SetAudioGain self.thread.start self.getDate ret.json RGB_MAP.get urllib3.disable_warnings req.content.decode self.detector.SampleRate tempfile.NamedTemporaryFile timezone hasattr AliSpeech.asr FileSystemEventHandler.__init__ config.get logger.debug self.conversation.tts.say request.content.decode self.init self.cond.notify_all len sign self.detector.RunDetection subclasses.add self.ai.chat _snowboydetect.new_SnowboyDetect self.set_secure_cookie logger.info vc.set wukong.help fromstr.find.fromstr.find.fromstr.strip subclasses.update AipSpeech time.time.dest_path.os.path.join.replace pixels.think conversation.doConverse hashlib.md5 os.path.exists smtplib.SMTP text.replace file_handler.setFormatter self.tts.get_speech pixels.off self.saveMessage ws.send solr_format.append audio.open self.con.say pixels.speak self.onSay self.player.stop self.con.setImmersiveMode self.conversation.say self._buf.clear RotatingFileHandler requests.post stream_out.start_stream snowboydecoder.ActiveListener clear_documents self._pull conversation.getHistory.cond.wait os.path.splitext self.doConverse _swig_getattr res.stdout.replace self.plugin.say file.close msg.encode wukong.restart self.isValidImmersive class_type.__swig_setmethods__.get TencentSpeech.tencentSpeech file_object.read command.append _updater.fetch urllib.request.urlopen self.queue.get os.path.normpath self._onCompleted res.values sys.exit _snowboydetect.SnowboyDetect_NumHotwords help utils.validjson sorted chr constants.getConfigPath os.path.dirname json.loads plugin_list.append _get_error_message upload_documents self.validate command.extend conversation.doResponse enumerate self.spi.xfer2 os.path.basename self.recordedData.append mp3_path.AudioSegment.from_mp3.export random.choice self.conversation.setImmersiveMode plugin.restore self.get_cookie BODY.encode line.decode self.queue.put config.dump self._wakeup.clear hashlib.sha1.sign_bytes.secret_bytes.hmac.new.digest res.stdout.strip.replace datetime.datetime getUUID spidev.SpiDev self.this.append s.pr.pstats.Stats.sort_stats bytes _snowboydetect.SnowboyDetect_GetSensitivity loader.load_module urllib.request.Request self._conversation.interrupt solr_tools.upload_documents self.isValid MusicPlayer dsp.Dispatcher self.next.set getPlayerByFileName list _snowboydetect.SnowboyDetect_SetAudioGain self.audio.get_format_from_width self.write filter robot.get_instance preprocess wf.setsampwidth urlencode object.__setattr__ res.stdout.strip time.strptime utils.clean self.history.add_message result.export date.split.split.strip base64.b64encode plugin.isValid class_type.__swig_getmethods__.get self.stream_in.stop_stream ding_wav.getframerate sensitivity_str.encode snowboydetect.SnowboyDetect query.strip unit.zfill datetime.now self.nlu.hasIntent wavfile.writeframes platform.system replace constants.getQAPath get_unknown_response dparser.parse bytearray osc_process.start time.strftime config_dict.items ulist.append get_robots self.con.play res.stdout.strip.endswith constants.getHotwordModel fp.close os.getenv self.client.asr ttsWsParam.create_url utils.get_do_not_bother_on_hotword int thread.start_new_thread timedelta config.init os.access self.get_argument.encode XunfeiSpeech.synthesize os.path.isdir SnowboyDetect_swigregister self.get_song_list self.formatSignString params.urllib.parse.urlencode.encode textUrlencode.replace self.ring_buffer.get get_path self.this.own ReportThread self.resume parser.parse self.conversation.getImmersiveMode logging.getLogger imaplib.IMAP4 tail MessageBuffer.MessageBuffer self.cache.append result.get items.split self.nlu.getSlotWords Queue.Queue self.run ValueError conversation.getHistory filename.os.path.splitext.lower data.decode tornado.ioloop.IOLoop.instance.start self.APISecret.encode password.str.encode get_robot_by_slug websocket.WebSocketApp self.nlu.getSlots temp.append authorization_origin.encode.base64.b64encode.decode utils.convert_wav_to_mp3 wf.close self.spi.open self.audio.get_sample_size get_subclasses self.brain.pause AIY file_handler.setLevel self.stream_in.close super.play set getSlots response.append ding_wav.readframes wavfile.setparams config.has Observer utils.lruCache SECRET_KEY.encode init range server.serve_forever make_json.run pr.enable wf.setnchannels self.player.appendOnCompleted argArr.append semver.compare email.message_from_string unit.getSlots text.endswith updater.fetch _swig_setattr_nondynamic dict reversed call_function self.player.is_playing self._wakeup self.Plugin.super.__init__ self.con.doResponse self.redirect any self.activeListen BCI.MuseBCI os.path.abspath Path interrupt_check body.set task.setDaemon mutex.release self.dev.set_pixel self.brain.restore self.player.pause self.bci.start self.Text.encode now.timetuple session.close f.read fire.Fire _snowboydetect.SnowboyDetect_UpdateModel AudioSegment.from_wav MIMEText _snowboydetect.SnowboyDetect_SampleRate self.getSender self.player.turnUp self.init_music_player super result.overlay os.execl ERROR_HANDLER_FUNC format_date_time datetime.datetime.now listener.listen get_mac board.button.wait_for_press logger.warning.format fetch self.player.turnDown imp.find_module http.client.HTTPConnection _snowboydetect.SnowboyDetect_ApplyFrontend server.run updater.update binary_data.encode conn.getresponse plugin_loader.get_plugins snowboydecoder.HotwordDetector self.player.play self.fetch_token Pattern.blink self.request.connection.stream.closed hashlib.sha256.signature_origin.encode.self.APISecret.encode.hmac.new.digest self.get_secure_cookie uuid.getnode self._observer.schedule threading.Thread self.render self.update_info.pop atc.num2chinese ding_wav.getnframes getConfigData get_engines f.readlines TTS_Ws_Param re.match self.conversation.asr.transcribe nameSet.add self.doResponse AudioSegment.silent player.play randstr AttributeError multiprocessing.Event ff.write myhmac.digest r.raise_for_status self.spi.close email.header.decode_header Wukong f.write ElementTree.SubElement collections.deque constants.getData self.doPlay utils.get_pcm_from_wav file_object.seek self.brain.printPlugins getConfigPath input getData self.player.resume nd.lstrip.split content.base64.b64encode.decode line.strip.split utils.write_temp_file make_body constants.newConfig sa.append msg.endswith method msg.as_string self.detector.start requests.get self.conversation.doParse self.interrupt random.randint self.set_pixel logger.addHandler intresult.append callback s.getvalue self.audio.terminate self.proc.terminate src.startswith _snowboydetect.SnowboyVad_Reset self.next.clear _plugins_query.append self._conversation.say platform.mac_ver r.json response.getheader os.makedirs pkgutil.walk_packages time.localtime solr_tools.add_engine RingBuffer utils.is_proper_time CFUNCTYPE is_json _plugins_query.sort self.checkRestore self.reInit plugin.pause apa102.APA102 io.StringIO processPOSTRequest getUnit model_str.encode json_file.close self.combine_color sender.decode ConfigMonitor ceil issubclass self.client.synthesis validation.replace asyncio.set_event_loop LED.think engine.get_instance result.append fromstr.find unit.getIntent self.onResp func solr_tools.clear_documents unit.getUnit importlib.util.find_spec utils.check_and_delete json_file.write self._get_version upload_batch osc_server.ThreadingOSCUDPServer shutil.copyfile self.fetchUnreadEmails self.switch_on_do_not_bother self.SoxPlayer.super.__init__ session.login self.match tornado.locks.Condition order.lower utils.validyaml wf.setframerate multiprocessing.Process session.starttls _snowboydetect.new_SnowboyVad itertools.groupby _snowboydetect.SnowboyVad_BitsPerSample exit max cls.__subclasses__ self.clock_end_frame wav_path.AudioSegment.from_wav.export res_data.read logger.critical onCompleted self.onCompleteds.append utils.setRecordable run syllable.replace ws.close urllib.parse.urlencode ai.chat signature_sha.base64.b64encode.decode self.onAsk os.path.isfile mutex.acquire line.strip session.connect self.fetch logger.warning res_data.read.decode tornado.web.Application init_plugins sendEmail asyncio.new_event_loop uuid.uuid1 self.MusicPlayer.super.__init__ upload_file self.engine.ASR getDefaultConfigPath threading.Lock Leds.rgb_pattern subprocess.call hmacstr.base64.b64encode.decode pstats.Stats utils.saveCache constants.getDefaultConfigPath t.ReportThread.start asound.snd_lib_error_set_handler ding_wav.getnchannels self.detector.NumHotwords pr.disable self.finish Leds get_token intresult.revuniq.strip self.SLUG.config.get.strip process _make_smart_hint SnowboyVad_swigregister self.detector.BitsPerSample cdll.LoadLibrary importlib.import_module yes_no.lower _snowboydetect.SnowboyDetect_SetHighSensitivity os.remove solr_tools.delete_engine conn.fetch _snowboydetect.SnowboyVad_NumChannels ff.close LED.off dispatcher.map self.say lazy_pinyin _snowboydetect.SnowboyDetect_RunDetection s.endswith self.isValidated text.lower.replace.replace dates.sort format conn.request audio_recorder_callback os.listdir d.endswith XunfeiSpeech.transcribe ps.print_stats stream_out.stop_stream task.join ding_wav.getsampwidth file.read wukong.run query_arr.items self.self.__class__.super.__init__ json.load asrWsParam.create_url threading.Event plugin.isValidImmersive self.ring_buffer.extend sub.strip self._conversation.reInit password.str.encode.hashlib.md5.hexdigest BaiduSpeech.baiduSpeech TTS.get_engine_by_slug response.read wukong.switch_off_do_not_bother ElementTree.tostring cache.close signal.signal logging.readLog shutil.rmtree fromstr.split swig_import_helper self.player.prev self.show pixels.wakeup results.reverse _snowboydetect.SnowboyVad_RunVad AudioSegment.from_mp3 requests.session MIMEMultipart self.asr.transcribe revuniq wave.open email.get _snowboydetect.SnowboyVad_ApplyFrontend utils.get_do_not_bother_off_hotword mod.Plugin words.append mktime ws.run_forever self.get_argument formatSignString self.nlu.parse self._observer.stop no_alsa_error self.get_argument.encode.hashlib.md5.hexdigest self.oneSentenceRecognition _snowboydetect.SnowboyDetect_BitsPerSample audio.get_format_from_width make_json.convert mp3_path.replace self.getSubject json.dumps utils.isRecordable finder.find_module self.proc.wait _snowboydetect.SnowboyDetect_NumChannels NLU.get_engine_by_slug logger.setLevel self.this.__repr__ logging.Formatter SoxPlayer self.clearImmersive pcmfile.read self.load result.keys re.findall file_object.tell _snowboydetect.SnowboyDetect_SetSensitivity res.stdout.endswith threading.Thread.__init__ stream_out.write text.lower.replace yaml.load wukong.update hmac.new cache.readlines self.brain.query type conversation.getHistory.get_messages_since msgs.append file_object.close self._pip self.detector.SetAudioGain attach.open.read print f.seek text.lower _snowboydetect.SnowboyDetect_Reset self.isImmersive messages.split wf.writeframes subprocess.Popen self._conversation.activeListen utils.stripPunctuation self.player.is_pausing self.detector.terminate logger.off fromstr.find.fromstr.str.strip date.split tornado.ioloop.IOLoop.instance task.start t.start application.listen conn.search TypeError Pattern.breathe os.path.join idx_container.batch_docs.append open self.proc.kill start_server uuid.UUID audio.terminate _swig_setattr Player.SoxPlayer self.clock_start_frame sound_file.is_file ElementTree.Element Updater time.sleep cProfile.Profile unit.getSlotWords Pixels authorization_origin.encode self.textToSpeech urllib.parse.quote_plus ASR.get_engine_by_slug __name__.rpartition imp.load_module self._buf.extend has_path yaml.safe_load self.player.next self.detector.SetSensitivity self._wakeup.wait cls.get_config self.nlu.getSay resource.encode results.append dirname Conversation conn.select logger.error cls signature_origin.encode pkg.join.lstrip self.initDetector doInit call wav.readframes isinstance stream_out.close wav_path.replace float cutlength.str.isdigit self._observer.start statistic.report self.encode_sign self._off base64.b64decode signstr.encode time.time wukong.switch_on_do_not_bother syllable.isdigit self.next.is_set websocket.enableTrace Brain self.detector.NumChannels nd.lstrip self._conversation.doResponse abs self.audio.open AI.get_robot_by_slug pyaudio.PyAudio faq_file.close self.AbstractPlayer.super.__init__ markdown.markdown self.switch_off_do_not_bother config.getText conn.close conn.login conn.logout self.appendHistory subprocess.run self._wakeup_event.set unit.hasIntent self.pardon sys.path.append res.stdout.replace.strip leds.update AliSpeech.tts super.stop f.read.strip ls.str.strip self.engine.TTS code.base64.b64encode.decode LED.wakeup subject.decode wav.getnframes thread_task.append Board ASR_Ws_Param os.kill self.dev.show unit.getSay str msg.encode.hashlib.md5.hexdigest Player.play utils.getCache self.wait_future.cancel join Updater.fetch date.split.split result.split http.client.HTTPSConnection self.con.activeListen fp.read self.play os.path.expanduser self.detector.ApplyFrontend session.sendmail config.reload _snowboydetect.SnowboyVad_SampleRate self.sess.post plugin.handle msg.attach urllib.parse.quote
@developer Could please help me check this issue? May I pull a request to fix it? Thank you very much.