Project dependencies may have API risk issues
PyDeps opened this issue · comments
Hi, In Moriarty-Project, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
flask
gevent
bs4
requests
phonenumbers
pytz
playwright
pyvirtualdisplay
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 gevent can be changed to >=1.3a2,<=21.12.0.
The version constraint of dependency requests can be changed to >=0.2.1,<=0.2.3.
The version constraint of dependency requests can be changed to >=0.7.0,<=2.24.0.
The version constraint of dependency requests can be changed to ==2.26.0.
The version constraint of dependency phonenumbers can be changed to >=5.9b1,<=8.12.50.
The version constraint of dependency pytz can be changed to >=2011d,<=2013d.
The version constraint of dependency pytz can be changed to >=2011b,<=2022.1.
The version constraint of dependency pyvirtualdisplay can be changed to >=1.0,<=3.0.
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 gevent
subprocess.check_output time.sleep
The calling methods from the requests
requests.get
The calling methods from the phonenumbers
phonenumbers.geocoder.description_for_number phonenumbers.parse phonenumbers.carrier.name_for_number phonenumbers.timezone.time_zones_for_number
The calling methods from the pytz
pytz.timezone
The calling methods from the pyvirtualdisplay
pyvirtualdisplay.Display.start pyvirtualdisplay.Display
The calling methods from the all methods
Investigation.general.returnCountry pyvirtualdisplay.Display flask.render_template run Investigation.socialMedia4.printAll browser.new_page.click Investigation.general.returnOperator GoogleMail url.append page.locator.click page2.click Investigation.getComments.getComments_ re.search runScripts.threading.Thread.start pyvirtualdisplay.Display.start page2.locator.click os.system context.new_page.text_content comment.append getName phonenumbers.geocoder.description_for_number browser.new_page.text_content threadFunction flask.redirect featureOnProgress bs4.BeautifulSoup phonenumbers.timezone.time_zones_for_number flask.url_for command.re.search.group firefox.launch.close asyncio.set_event_loop Investigation.socialMedia2.printAll Investigation.spamControl2.getSpam Investigation.getComments.printAll threading.Thread Investigation.socialMedia3.printAll bye.threading.Thread.start subprocess.check_output.decode.strip _getComments_.threading.Thread.start functionName func datetime.datetime.now page.BeautifulSoup.find_all Investigation.socialMedia5.printAll asyncio.new_event_loop.run_until_complete browser.new_context.new_page print firefox.launch Investigation.getComments2.printAll bs4.BeautifulSoup.select flask.Flask Investigation.FindOwner.printName requests.get time.sleep page2.wait_for_load_state browser.new_page.locator subprocess.check_output.decode type flask.Flask.run datetime.datetime.now.strftime str phonenumbers.parse Investigation.spamControl.spamMain Investigation.socialMedia1.printAll range Investigation.getLinks.getLinks_ subprocess.check_output context.new_page.locator context.new_page.click phonenumbers.carrier.name_for_number Investigation.getLinks.printAll page2.fill firefox.launch.new_context Investigation.FindOwner2.printName phone_number.split.split Investigation.general.returnCurrentTime context.new_page.goto asyncio.new_event_loop page.locator.fill Investigation.spamControl.printAll Investigation.general.return_errNumber_ Investigation.getComments2._getComments2_ Investigation.spamControl2.returnValue page2.locator Investigation.general.returnTimeZone firefox.launch.new_page Investigation.general.location pytz.timezone page2.locator.fill page.keyboard.press playwright.async_api.async_playwright browser.new_context.expect_page flask.Flask.route browser.new_page.goto
@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.