mooder
mooder copied to clipboard
Project dependencies may have API risk issues
Hi, In mooder, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
-ihttps://pypi.tuna.tsinghua.edu.cn/simple
django
markdown
django-markup
django-pure-pagination
django-simple-captcha
django-bootstrap3
django-registration-redux
django-anymail[mailgun]
pytz
psycopg2-binary
python-dotenv
gunicorn
gevent
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-simple-captcha can be changed to >=0.3.3,<=0.3.7. The version constraint of dependency django-simple-captcha can be changed to >=0.5.4,<=0.5.17.
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-simple-captcha
captcha.fields.CaptchaField
The calling methods from the all methods
views.OrderCreateView.as_view views.PostListView.as_view archives.models.Post.posts.values django.http.response.HttpResponseRedirect django.db.models.TextField self.JavascriptView.super.dispatch django.db.migrations.AlterModelOptions self._get_style self.FrontPostManager.super.get_queryset.filter django.db.migrations.AlterField django.db.models.Count.Post.posts.values.annotate.values django.forms.HiddenInput self.normalize_email views.GiftDetailView.as_view User.objects.order_by html.replace.replace django.db.migrations.CreateModel list views.LinkAddView.as_view self.ProfileView.super.dispatch format os.environ.setdefault self.get_object s.get_decoded.get views.LinkDeleteView.as_view User.objects.values context.user.has_perm self._get_style.get views.CoinLogView.as_view django.forms.Textarea archives.models.Comment.objects.all accounts.models.Invitecode.objects.filter mooder.extends.purifier.XssHtml.getHtml os.path.dirname models.Post.posts.all self.node_default django.utils.html.conditional_escape django.db.models.PositiveIntegerField self.get_queryset views.ArchiveDetailView.as_view views.GiftLogListView.as_view urllib.parse.urlparse django.db.models.ImageField django.core.validators.MinValueValidator django.db.models.functions.TruncDay.dweek.Post.posts.filter.annotate.values queryset.update django.forms.IntegerField User.objects.get archives.models.GiftLog.objects.filter django.db.models.Count django.contrib.auth.views.PasswordResetDoneView.as_view archives.models.Post.posts.count django.contrib.admin.register django.utils.timezone.now django.db.models.EmailField views.GiftLogWaitListView.as_view User.objects.create_superuser views.VerifyPostListView.as_view django.http.JsonResponse django.conf.urls.static.static views.BanUserView.as_view views.GiftDeleteView.as_view User.objects.all post.author.save CoinLog.save self.get_success_url django.db.models.Count.User.objects.values.annotate.values forms.CommentForm django.template.Library.filter django.forms.RegexField django.forms.CharField os.path.join self.SignupForm.super.save django.db.models.URLField views.ArchiveView.as_view html.replace.replace.replace views.UserView.as_view self.FrontPostManager.super.get_queryset archives.models.Post.posts.filter self.request.META.get django.db.models.Count.Post.posts.values.annotate.values.order_by form.save.save self.start.pop self.IndexView.super.get_context_data self._get_style.items django.urls.reverse_lazy accounts.models.Invitecode registration.backends.default.views.ResendActivationView.as_view django.utils.crypto.get_random_string abs request.META.get self.result.append token.split_contents django.views.generic.TemplateView.as_view django.db.models.AutoField name.isalpha django.db.migrations.RemoveField self.get_context_data errors.get self.ProfileDetailView.super.get_context_data django.contrib.sessions.models.Session.objects.all django.db.models.functions.TruncDay print django.contrib.auth.views.PasswordResetConfirmView.as_view s.delete self._htmlspecialchars super self._wash_attr self._get_style.startswith accounts.models.Invitecode.save User.objects.filter self._common_attr user.has_perm managements.models.CoinLog.objects.filter self.tags_own_attrs.get request.user.save django.db.migrations.AddField self.AdminPermissionMixin.super.dispatch django.core.validators.MaxValueValidator self.handle_no_permission models.Post.posts.filter re.compile.match views.VerifyView.as_view views.DeleteCommentView.as_view django.db.models.functions.TruncDay.dweek.Post.posts.filter.annotate.values.annotate os.path.splitext registration.backends.default.views.RegistrationView.as_view models.GiftLog.objects.filter views.UploadImageView.as_view XssHtml datetime.timedelta tag.self.getattr django.shortcuts.get_object_or_404 views.JavascriptView.as_view django.contrib.auth.views.LoginView.as_view django.db.models.Manager self.get_queryset.filter PermNode hashlib.md5 django.shortcuts.reverse self.CoinLogView.super.get_context_data django.templatetags.static.static self.create_user.save django.db.models.F self.create_user mooder.extends.purifier.XssHtml.feed self.request.user.save self.cleaned_data.models.Invitecode.objects.filter.exists post.buyers.filter views.IgnoreView.as_view django.core.wsgi.get_wsgi_application archives.models.Post.posts.all archives.models.GiftLog.objects.filter.count ActivationView.as_view views.GiftEditView.as_view views.LinkListView.as_view django.db.models.Count.User.objects.values.annotate.values.order_by forms.CommentForm.is_valid models.Invitecode.objects.get.save views.LinkEditView.as_view self.CommentForm.super.__init__ django.db.models.Count.TruncDay.dweek.Post.posts.filter.annotate.values.annotate.values views.InviteCodeListView.as_view mooder.extends.purifier.XssHtml self.nodelist.render tuple form.save XssHtml.getHtml self._true_url django.shortcuts.get_object_or_404.save django.db.models.BooleanField urllib.parse.urlencode self.node_default.items str post.buyers.add django.db.models.Count.TruncDay.dweek.Post.posts.filter.annotate.values.annotate.values.order_by managements.models.log_coin dotenv.load_dotenv dict.get django.contrib.auth.views.PasswordChangeDoneView.as_view name.isdigit ext.lower.lower views.ArchiveBuyView.as_view self._response_403_template models.Invitecode.objects.get views.GiftListView.as_view forms.PostImageForm hasattr django.urls.path self.data.append query.filter.filter re.sub request.get_full_path FrontPostManager django.shortcuts.redirect self.email.lower.encode captcha.fields.CaptchaField django.db.models.IntegerField self.email.lower.encode.hashlib.md5.hexdigest views.OrderDetailView.as_view parser.delete_first_token join self.handle_starttag re.compile request.user.id.post.buyers.filter.exists queryset.get.save views.HideView.as_view self.create_user.set_password django.contrib.auth.views.PasswordResetView.as_view archives.models.Gift.objects.filter django.contrib.admin.site.register self.email.lower self.kwargs.get self._limit_attr models.CoinLog.objects.filter range errors.as_text os.path.abspath analysis_count.get archives.models.Post.posts.values.annotate self.model self._get_user_chart wsgiref.util.FileWrapper django.shortcuts.render dweek.Post.posts.filter.annotate django.db.models.Q django.dispatch.receiver models.Gift.objects.filter parser.parse uuid.uuid4 self.kwargs.setdefault s.get_decoded request.user.has_perm self.request.POST.get views.ProfileDetailView.as_view views.UserDetailView.as_view views.IndexView.as_view User.objects.count errors.tuple.errors.get.as_text views.DeleteInviteCodeView.as_view self.render_to_response views.ProfileView.as_view views.GenerateInvitecodeView.as_view views.EditPostView.as_view MyUserManager datetime.datetime.now user.id.post.buyers.filter.exists self.request.user.has_perm self.cleaned_data.get getattr self.object.author.save self.request.GET.get views.AttachmentView.as_view models.log_coin django.db.models.DateTimeField self.ArchiveDetailView.super.get_context_data django.template.Library django.utils.timezone.get_current_timezone django.db.models.CharField XssHtml.close views.ProfileOrderView.as_view ImportError django.template.defaultfilters.date self._get_style.append User.objects.filter.exists views.GiftAddView.as_view open archives.models.Post.posts.filter.count forms.CommentForm.save self.object.save dict self.object.user.save django.core.management.execute_from_command_line django.http.StreamingHttpResponse django.db.migrations.DeleteModel enumerate django.db.models.ManyToManyField html.replace django.contrib.auth.views.PasswordResetCompleteView.as_view views.ProfileEditView.as_view views.CoinView.as_view os.path.basename django.db.models.FileField self._true_style models.Invitecode.objects.filter self.PostForm.super.__init__ User.objects.values.annotate django.db.migrations.swappable_dependency self.has_permission XssHtml.feed urllib.parse.quote self._get_post_chart self.start.append self._set_attr_default django.utils.timezone.now.today zip django.db.models.OneToOneField self.form_invalid views.CreateArchiveView.as_view form.add_error Comment.objects.get django.utils.safestring.mark_safe limit.items mooder.extends.purifier.XssHtml.close django.core.exceptions.ValidationError views.GiftLogDetailView.as_view os.path.exists HTMLParser.HTMLParser.__init__ html.replace.replace.replace.replace os.environ.get self.ProfileView.super.get_context_data l.strftime CoinLog archives.models.Link.objects.all request.build_absolute_uri ret.append django.template.Library.simple_tag self.ProfileForm.super.__init__ archives.models.GiftLog.objects.all self._get_link django.forms.ValidationError views.ProfilePostView.as_view archives.models.Comment.objects.all.get url.startswith django.db.models.ForeignKey django.contrib.auth.get_user_model self.OrderCreateView.super.get_context_data django.contrib.auth.validators.UnicodeUsernameValidator f.read os.environ.get.lower ValueError django.urls.include len django.forms.FileInput self._get_analysis_chart django.contrib.auth.views.PasswordChangeView.as_view
@developer Could please help me check this issue? May I pull a request to fix it? Thank you very much.