Project dependencies may have API risk issues
PyDeps opened this issue · comments
Hi, In my-qr.art, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
fontawesome-free==5.15.1
django==3.1.8
pypng==0.0.20
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 django can be changed to >=3.0a1,<=4.1a1.
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 django
django.core.management.execute_from_command_line django.shortcuts.render django.forms.CharField django.setup django.urls.reverse django.urls.path django.urls.set_script_prefix django.core.asgi.get_asgi_application django.utils.encoding.repercent_broken_unicode django.http.JsonResponse django.core.validators.URLValidator django.urls.re_path django.urls.include django.http.parse_cookie django.forms.FileField django.http.QueryDict
The calling methods from the all methods
django.shortcuts.render webbrowser.open_new_tab django.db.models.AutoField get_bytes_from_wsgi.decode self.make_masks models.RedirectItem.objects.filter django.utils.regex_helper._lazy_re_compile self.encode_numeric io.BytesIO.readline self.stream.read qr_app.qrmap.get_qr_map.to_json_rep tuple self.data.decode qr_app.qrmap.create_qr_from_map x.to_char tempfile._get_candidate_names django.urls.path QrMap.read png.Writer.write to_float QrMap png.Writer self._read_limited get_ri_from_secret.first bytearray write int redirect.models.RedirectItem.objects.create ident.decode writeline get_path qr_app.qrmap.QrMap.from_array qr.data.decode self.buffer.write self.delimit_words get_path.append virtual_file.getvalue.base64.b64encode.decode math.ceil self.get_data_length tables.modes.keys write_bytes get_ri_from_secret.count ImportError json.loads self.load_middleware interleave_path data_block_sizes.extend request.POST.upper django.core.signals.request_started.send repr self.terminate_bits self.scores.append urllib.parse.unquote writemeth qr_app.pyqrcode.builder._svg filter qr_app.qrmap.get_qr_map ModuleType.to_color redirect.models.RedirectItem.objects.filter secrets.token_hex qr_app.pyqrcode.builder._get_png_size tmp_row.extend self.environ.get pathlib.Path rgb_to_floats self.data.encode create_qr_from_map django.core.asgi.get_asgi_application to_from_identifier self.encode len environ.upper qr_app.pyqrcode.create.get self._set_content_type_params self.add_position_pattern self.encode_kanji self.add_type_pattern django.db.migrations.AddField self._load_post_and_files __file__.Path.resolve django.core.management.execute_from_command_line self.png self.add_detection_pattern django.urls.set_script_prefix django.shortcuts.HttpResponse qr_app.pyqrcode.builder._text isinstance bitstring_to_bin palette.append line io.StringIO.getvalue scale_code get_path_info self.data.decode.encode len.append valid_characters.encode.encode row.append write_meth super.save my_qr_art.custom_wsgi.WSGIHandler qr_app.pyqrcode.create.png django.urls.reverse django.db.models.DateTimeField join self.add_data QRCode os.unlink os.environ.setdefault mode.lower.lower mp_co.pop main environ tables.ascii_codes.keys ord qr_app.pyqrcode.builder._terminal min super destination.write add_qr_redirect qr_app.pyqrcode.builder._eps io.BytesIO.read next s.bitstring_to_bytes.decode QrMap.set f.close django.core.validators.URLValidator models.RedirectItem.objects.filter.first django.urls.re_path django.shortcuts.redirect get_ri_from_secret list start_response itertools.zip_longest qr_app.pyqrcode.builder.QRCodeBuilder str get_temp_name bytes django.db.models.CharField get_raw_qr_data QrMap.read_file self.add_words f.read two_bytes get_bytes_from_wsgi django.urls.include django.setup django.forms.CharField hasattr tables.error_level.keys errline HttpResponseNotFound _hex_to_rgb qr_app.tables.ascii_codes.items django.utils.regex_helper._lazy_re_compile.sub urllib.parse.urljoin self.make_error_block time.sleep django.db.models.IntegerField itertools.izip_longest xml.sax.saxutils.quoteattr django.http.parse_cookie pattern tempfile.NamedTemporaryFile error_blocks.append self.add_version_pattern iter.append self.get ascii.append getattr self.grouper LimitedStream django.utils.encoding.repercent_broken_unicode get_bytes_from_wsgi.replace content.str.encode models.to_from_identifier django.contrib.admin.site.register virtual_file.getvalue self.encode_bytes property bytearray.append self.make_code content.decode urllib.request.pathname2url request.get_full_path max chr copy.deepcopy io.StringIO get_wsgi_application get_bytes_from_wsgi.rstrip datetime.datetime.now redirect.models.RedirectItem.objects.create.save get_str_from_wsgi s.lower environ.items environ.get qr.data.index tempfile.NamedTemporaryFile.close ValueError qr_app.pyqrcode.builder._png length.format.format bitstring_to_alphanumeric response.cookies.values qr_app.pyqrcode.create.set self._detect_content_type abs unicode_str.encode image.png.from_array.save encoding.content.decode.encode rgba.append mp_co.extend design.get_version find_table_char django.http.JsonResponse get_bytes_from_wsgi.encode iter.extend self.__repr__ draw_border iter range f.png.Reader.read self.request_class qr_app.pyqrcode.builder._xbm functools.partial image.append self.encode_alphanumeric sum next_byte matches.first.save qr_app.pyqrcode.create.save interleave_path.append get_qr_map self.binary_string format self.choose_best_mask self.data.upper path_info.repercent_broken_unicode.decode _get_writable content.str.isdigit super.__init__ time.strftime png_pallete_color base64.b64encode io.BytesIO bitstring_to_bytes itertools.cycle self.buffer.getvalue format.format self.get_response c.output models.RedirectItem.objects.filter.count add_square map add_rect get_qr_map.get _get_png_size open self._pick_best_fit all png.from_array ModuleType.to_char png.Reader f.chunks qr_app.pyqrcode.create redirect.models.RedirectItem.objects.filter.count django.db.migrations.CreateModel get_script_name design.get_with_mask content.encode enumerate textwrap.wrap django.forms.FileField django.http.QueryDict io.StringIO.write
@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.