Project dependencies may have API risk issues
PyDeps opened this issue · 1 comments
Hi, In mongoengine, inappropriate dependency versioning constraints can cause risks.
Below are the dependencies and version constraints that the project is using
Sphinx==3.3.0
sphinx-rtd-theme==0.5.0
readthedocs-sphinx-ext==2.1.1
docutils==0.17.1
Jinja2<3.1
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 sphinx-rtd-theme can be changed to >=0.1.3,<=1.0.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 sphinx-rtd-theme
sphinx_rtd_theme.get_html_theme_path
The calling methods from the all methods
document._delta super.put mongoengine.base.BaseDict bson.SON separator.join object_id.queryset.filter.first cls._get_db.create_collection mongoengine.base.common.get_document._unique_with_indexes sys.exit query.self._qs.filter.update_one self._document self._cursor_obj.skip self._format_errors self.BaseDocument.super.__hash__ join kwargs.pop self._document._translate_field_name document_cls.objects.count i.self.children.accept StringField.prepare_query_value set.update self.slice.keys f.document_type._cached_reference_fields.append doc_cls._disconnect collection.options.get document._meta.get self.document_type._get_db.dereference self.document_type.to_mongo queryset._cursor_obj.skip frozenset self.field.lookup_member _geo_operator ListField self.build_lazyref.strip _get_items_from_dict.items bson.int64.Int64 self._populate_cache self.rewind eval cls._db_field_map.get self.__dict__.copy mongoengine.base.get_document._get_db self._has_data io.BytesIO _get_items_from_list tuple operator_map.get uuid.UUID getattr._clear_changed_fields f.split bson.DBRef self._data.get self.db.command warnings.warn queryset._document._translate_field_name list.items mongoengine.context_managers.switch_collection doc_cls._get_db.dereference self._sub_js_fields self.validate self.document_type.__subclasses__ base_cls._get_collection id_field.self._fields.to_python instance bytes super.__setattr__ self._validate_polygon self._cursor_obj.batch_size mongoengine.signals.pre_init.send self._result_cache.append collection.get_db.find value.to_dbref.strftime value self.update mongoengine.base.fields.ObjectIdField self.document_type._get_collection_name.find_one instance._fields.get._from_son mongoengine.connect self.to_mongo.copy queryset._cursor.distinct queryset._cursor_obj.sort self.__expand_dynamic_values self.clean operator.itemgetter initial_pipeline.append doc._data.pop existing.append self.document_type._fields.get connection_class super.prepare_query_value doc_fields.items queryset._cursor_obj.hint field.prepare_query_value self.build_lazyref.to_mongo merge_index_specs.append self.clone._fields_to_dbfields index_spec.copy.copy items.get_document._from_son self._attach_objects mongoengine.signals.post_init.send self._dereference ref.get_document._from_son unique_indexes.append func value.split.lower read_pf_mode.lower.lower alias._connection_settings.copy _document_registry.get PIL.ImageOps.fit.copy field.to_mongo attrs.get _get_connection_settings mongoengine.signals.post_delete.has_receivers_for self.USER_REGEX.match doc_type._fields.get self.clone.rewind field_list.update PIL.ImageOps.fit.thumbnail field.choices.dict.get _prepare_query_for_iterable self.build_lazyref.split bson.ObjectId.to_mongo data._get_changed_fields.split super_new TextPost mongoengine.signals.pre_delete.send delattr v._get_collection_name self._document._from_son kwargs.keys self._cursor_obj.hint wc_collection.insert_one source.items strip GridFSError self._cursor_obj.sort mongoengine.context_managers.switch_db blinker.Namespace self._iter_results self._chainable_method os.path.abspath wc_collection.find_one_and_replace set.item.collection.reference_map.setdefault.add int new_options.items self.clone.filter self._fetch_objects datetime.datetime self.build_lazyref.quantize getattr.validate mcs._import_classes getattr.items doc.__class__.objects.as_pymongo.get super.count match.group _find_existing_connection cls.__match_all key.split.insert re.compile _infer_geometry sphinx_rtd_theme.get_html_theme_path self.__unicode__ attrs.items self.choices.append mongoengine.base.common.get_document attrs.pop pymongo.uri_parser.parse_uri self.clone mongoengine.pymongo_support.list_collection_names pymongo.database._check_name pymongo.common.validate_read_preference self._fields.items weakref.proxy mongoengine.errors.DoesNotExist mongoengine.signals.pre_save.send Q cls._lookup_field.pop map self.cls._fields.items mongoengine.queryset.transform.update self.document_type._get_collection_name.find_one_and_update get_classes index_spec.copy.pop self._meta.get self.document_type._from_son missing.remove ref_cls._get_db.dereference QuerySetManager info.get.keys mongoengine.errors.InvalidDocumentError self._get_collection self._lookup_field self.UTF8_USER_REGEX.match bson.json_util.LEGACY_JSON_OPTIONS.with_options other.items super_new.mro insert_func NotImplementedError bool queryset._document._get_collection_name.delete_many field_classes.reverse x.capitalize self.get_finalized_command settings.copy k.merge_query.append disconnect mongoengine.base.datastructures.EmbeddedDocumentList self.fields os.path.join self.build_lazyref.items mongoengine.signals.pre_save_post_validation.send mongoengine.base.get_document base.getattr.get self.exec_js self._nestable_types_changed_fields self.build_lazyref subcls._lookup_field._validate self.fs.new_file self._dynamic_fields.get instance._data.get.delete fields.self._object_key.ReadPreference.PRIMARY.self._qs.read_preference.filter.only.limit key.split.isdigit MetaDict.get self._document._fields.get index_opts.copy.update update.items field.field.lookup_member self.field._to_mongo_safe_call mongo_query.keys cls._get_collection.index_information BaseDict GenericReferenceField mongo_query.update b._meta.get key.mongo_update.update mongoengine.errors.NotRegistered self._integrate_shard_key self.build_lazyref.update QueryCompilerVisitor collection cls._meta.get.copy mongoengine.context_managers.set_write_concern mongoengine.errors.SaveConditionError db.list_collection_names field_cls._geo_indices cleaned_fields.append cls._build_index_spec l.startswith img.copy.save self.field._to_mongo_safe_call.items mongoengine.connection.get_connection base_cls._meta.get super.__getstate__ super.__setstate__ self.clone._get_order_by socket.inet_pton mongoengine.errors.NotUniqueError spec_fields.get.update TextPost.save re.match QCombination self.document_type._get_collection_name super.__set__ rename_fields.get blinker.Namespace.signal self._validate_linestring queryset._cursor_obj.collation kwargs.update mongoengine.base.datastructures.StrictDict.create self.newfile.close cls._get_db self._data.get.save hasattr doc_cls._unique_with_indexes self.build_lazyref.keys setuptools.command.test.test.initialize_options collection.get_db.find.items name.startswith v.generate_key.error_dict.append super.__setitem__ os.path.dirname unique_with.append mcs.get_auto_id_names self._combine spec.copy.copy data.items.get self._clean_slice StringField values.pop setattr set.add self._delta any self.__only_matches self._type.lower fields.code.db.command.get mongoengine.base.utils.LazyRegexCompiler query.accept.accept all key.split.pop self._changed_fields.append reversed list.split self._get_count k.startswith op.lstrip.lstrip new_class._fields.values mongoengine.base.get_document._get_collection_name info.info.db.client.find self._qs.filter mongoengine.connection.get_connection.server_info self.newfile.writelines info.get self.validation owner._class_name.c.c.c.c.isupper.join.strip.lower document.to_mongo d.get.get self._get_scalar super.__init__ self.fs.put f.start_listener cls mongoengine.base.common.get_document.__subclasses__ name.c.c.c.c.isupper.join.strip pytest.skip self._reload pymongo.read_preferences.ReadPreference.PRIMARY.self._qs.read_preference.filter self._object_key.self._qs.filter.delete mongoengine.base.BaseList self.to_mongo.to_query cls.__subclasses__ DuplicateQueryConditionsError self._clone_into bson.ObjectId subcls._lookup_field.to_python self._fields_to_dbfields self.document_type.validate mongoengine.queryset.visitor.Q self.instance._mark_as_changed super._validate_choices bson.Binary ImproperlyConfigured self.get queryset._document._get_db.command cls._get_collection.options key_starts_with_dollar get_doc_alias ValueError subcls._lookup_field.startswith mongoengine.common._import_class.to_mongo self.proxy_class field_names.items merge_index_specs self.clone.first cls._meta.get pkg_resources.normalize_path set.field.document_type.reference_map.setdefault.add img.info.get self._item_frequencies_map_reduce self.fs.get self.error self._set_owner_document cls._get_db.drop_collection index_list.insert output.get collection.find_one.items document_cls.objects.delete mongoengine.base.EmbeddedDocumentList name.split hash self._object_key.self._qs.filter.update_one domain_part.encode.decode BaseList KeyError itertools.zip_longest re.escape d._reverse_db_field_map.get.isdigit self._parse_datetime self.DOMAIN_REGEX.match bson.code.Code self.__dict__.copy._get_collection self.clone._sub_js_fields queryset._document._get_collection_name.aggregate entity.startswith self._document._get_collection generate_key self.document_type.id.to_python join.items data.items.items User.save cls._get_collection build_dict self.new_file time.strptime mongoengine.errors.FieldDoesNotExist functools.partial errors_dict.items self._document._from_son.delete str self.field.to_python gridfs.GridFS mongoengine.base.common.get_document._lookup_field format set.key.reference_map.setdefault.update cls._fields.items self.__class__ self._cursor.rewind value_dict.update super.__delattr__ open self._cursor_obj.comment mongoengine.queryset.field_list.QueryFieldList get_connection self.accept mark_key_as_changed_wrapper sorted value_dict.items document_cls._meta.get _get_items_from_dict self.__call__ ConnectionFailure DictField parent_method self.document_type._get_db mongoengine.base.common.get_document._geo_indices repr_type bson.dbref.DBRef self._get_collection_name isinstance PIL.ImageOps.fit self.build_lazyref.rsplit self.children.append queryset._cursor_obj.batch_size k.endswith.pop issubclass doc._meta.get collection._get_collection_name mongoengine.base.get_document.append super.to_python subcls._lookup_field.generate getattr.join filter item._fields.items db.collection_names pickle.dumps pymongo.read_concern.ReadConcern self.fetch f.document_type.register_delete_rule key.merge_query.append field.to_python v.to_python self._db_field_map.get cls._geo_indices.append LinkPost mongoengine.signals.pre_bulk_insert.send self._cursor_obj.collation kwargs.setdefault self.fs.delete collection.split super.validate kwargs.get self.field.prepare_query_value klass._meta.get resolved_hosts.append mongoengine.base.common.get_document._from_son instance._data.get GridFSProxy cls._fields.values BasesTuple join.rsplit queryset._collection.find_one_and_update owner._get_collection mcs.__get_bases mongoengine.pymongo_support.count_documents dict mongoengine.base.get_document._from_son EmbeddedClass _create_connection super.__get__ mongoengine.base.BaseList.items subcls._lookup_field.to_mongo dynamic_data.items mongoengine.base.datastructures.BaseDict self.validate_domain_part base.__dict__.items document.document_type._get_collection_name ref_cls._get_db DeReference self._name.self._instance.remove self.clone.all_fields cls._get_collection.create_index dir mongo_query.extend mongoengine.signals.post_save.connect _connections.keys self.value_decorator collection.with_options QuerySet self._object_key.ReadPreference.PRIMARY.self._qs.read_preference.filter.only self._find_references op.join entity.replace self._get_order_by super self.generate self.regex.match subcls._lookup_field.lookup_member self.cascade_save super.to_mongo cls._connection.drop_database son.items IntField mcs._get_bases visitor.visit_combination kwargs.get.append _field_list_cache.extend tuple.get setuptools.command.test.test.finalize_options register_connection self.get.read self.db.system.profile.drop collection.objects.in_bulk self.clone.order_by mongoengine.base.LazyReference super.__getitem__ field_names.get self.to_dict.items del_modules.append LinkPost.save dict.update self.field_name.document_cls.objects.update self.clone._get_scalar self.__copy__ copy.copy collections.defaultdict self.to_dict mongoengine.queryset.OperationError preference.name.lower join.startswith self._cursor_obj.limit repr self._instance._mark_as_changed EmbeddedDocumentList self._cursor.explain warn_empty_is_deprecated queryset._document.MultipleObjectsReturned part.isdigit mongoengine.signals.post_bulk_insert.send mongoengine.errors.BulkWriteError self.validate_user_part getattr._get_changed_fields get_version data._reverse_db_field_map.get getattr.get cls._get_collection.index_information.values changed_fields.append self.owner_document.objects self.db_field.startswith getattr self._cursor_obj.where mongoengine.connection.disconnect_all mongoengine.queryset.QuerySetManager _class_registry_cache.get mongoengine.errors.ValidationError dict.pop self._document._lookup_field self._document._translate_field_name.split mongoengine.mongodb_support.get_mongodb_version _connections.get User self.to_python invalid_choices.append mongoengine.errors.LookUpError _decorated_with_ver_requirement img.copy.thumbnail pymongo.write_concern.WriteConcern parent_doc_cls._meta.get base._meta.get self._collection.with_options self._qs self._document._translate_field_name.replace settings_dict.items self.get_proxy_obj son.get self._document.objects.with_id next p.isdigit key.split.reverse mongoengine.base.common.get_document._build_index_spec self.url_regex.match fin.read self._collection.find mongo_update.update mongoengine.errors.OperationError self.get_sequence_name bson.ObjectId.items collection.find_one.split query self.in_bulk.get combined_query.update self.delete filter_kwargs.self.owner_document.objects.update PIL.ImageOps.fit.save document._delta.items key.lower mongoengine.errors.DeprecatedError self.__class__._meta.get property self.__dict__.update self.build_lazyref.validate includes_cls queryset._collection.find_one_and_delete sys.path.insert wc_collection.update_one.get DateTimeField mark_as_changed_wrapper.items default sum bson.ObjectId.keys self.__class__._get_collection_name dateutil.parser.parse instance._mark_as_changed self._cursor_obj.clone doc_cls._meta.get mongoengine.queryset.NotUniqueError dict.get self.__getattribute__ query.accept.keys self.__getitem__ index_list.append setuptools.find_packages self.field._validate AttributeError self._convert_from_string _check_db_name self.__str__ self._validate_point new_items.append values.keys float.items self._put_thumbnail self.test_args.split mongoengine.signals.post_delete.send self._item_frequencies_exec_js self.build_lazyref.get owner._meta.get subcls._lookup_field.split list attrs.update cls.ensure_indexes self._loaded_fields.as_dict method_name.cursor.getattr Post.objects.count self.reference_map.items set.item.get_document.reference_map.setdefault.add self._save_create itertools.count owner._get_collection_name queryset._document._from_son document_choice.__subclasses__ doc.__class__.objects.as_pymongo range obj._data.get other_name.split subclass._get_collection d._reverse_db_field_map.get object.__getattribute__ mongoengine.context_managers.set_read_write_concern _FakeSignal self._name.self._instance.append ref_cls._from_son self.get_queryset self.__getstate__ collections.defaultdict.items self._mongo_query.update self._enum_cls self.__set_field_display QuerySetNoCache set_data.items i.startswith mark_as_changed_wrapper mongoengine.signals.post_delete.connect set self._fields.keys mongoengine.queryset.transform.query TypeError collection.read_concern.document.items db_field_paths.append self.DoesNotExist id_field_type data.append oper set.intersection self.__class__._from_son bson.ObjectId.to_python self.items reference_map.setdefault FileField domain_part.encode.decode.encode _document_registry.values query.self._qs.modify self._get_changed_fields lookup v.to_mongo self.as_pymongo itertools.groupby docs.sort.sort self.document_type.objects.get collection.find BaseDocument._nestable_types_clear_changed_fields zip mongoengine.get_version inspected.append document._get_collection_name self.build_lazyref.decode document_cls.objects.limit mongoengine.errors.InvalidQueryError self._lazy_load_ref self.to_mongo.update item._data.get data.items._get_changed_fields cls._lookup_field.items join.split update_func cls.create_index self._qs.read_preference self.put self._lazy_load_refs subcls._lookup_field seen.append lookup.items key.instance._data.put super_new._build_index_specs self.clone._dereference owner._class_name.c.c.c.c.isupper.join.strip extra_args.items pymongo.uri_parser.parse_uri.get d._fields.get new_class._fields.items self.build_lazyref.to_dbref alias.get_connection.close _doc_cls._lookup_field queryset.order_by.limit self._document._from_son.to_mongo setuptools.setup i.replace queryset_class visitor.visit_query mongoengine.base.datastructures.BaseList super.__iter__ match.group.split mongoengine.errors.MultipleObjectsReturned collection.count_documents type result.db.find Post.objects io.BytesIO.seek _clean_settings.pop self.field.build_lazyref pipeline.insert InvalidCollectionError self._instance.save class_name.append self._query_obj.to_query key_not_string len BaseDocument._nestable_types_changed_fields pytest.main name.self.getattr.delete RuntimeError self._query_conjunction copied.__dict__.update connect self._clear_changed_fields self._document._get_collection.aggregate float.values new_class._meta.get k.split data.get.keys iter subdoc._lookup_field self.order_by cls.list_indexes callable cls._get_collection_name self._get_update_doc collection.doc_type._get_db.find fields.self._object_key.ReadPreference.PRIMARY.self._qs.read_preference.filter.only.limit.select_related self.__eq__ self._turn_on_profiling MetaDict.merge EmbeddedDocumentField DynamicField name.c.c.c.c.isupper.join.strip.lower kwargs.self._document.save MapReduceDocument mongoengine.common._import_class wc_collection.update_one c.startswith _connection_settings.items values.items super.delete Exception self._resets_profiling bson.json_util.dumps self._mark_as_changed k.data._data.get value_dict.get self.ensure_indexes getattr.to_mongo bson.json_util.loads cls._lookup_field.append data.items.pop set.v.get_document.reference_map.setdefault.add key_list.append field.self._fields_to_dbfields.pop new_path.append float validate k.endswith collection.split.x.x.capitalize.join.get_document._from_son self.object_map.get remove PIL.Image.open _clean_settings copy.deepcopy instance._fields.get op.lstrip.startswith self._fields.get instance._fields.get._get_db self.fields.union re.sub inspect.isclass self.in_bulk mongoengine.signals.pre_delete.has_receivers_for datetime.date self.map_reduce collection.write_concern.document.items cursor_method self._validate_choices db.authenticate self._document._meta.get queryset._cursor_obj.limit SimplificationVisitor cls._get_capped_collection self.scalar self._save_update print ReferenceField mongoengine.base.common._get_documents_by_db queryset._document._get_collection_name self._fields_ordered.StrictDict.create self.to_mongo index_spec.copy.update super.__getattribute__ d.items kwargs.items cursor_method.count MetaDict field_classes.index doc_fields.values ordered_output.append _get_items_from_dict.values self.__dict__.copy.pop spec.copy.pop enumerate queryset._document._get_db document_cls.objects errors.append get_indexes_spec Post.drop_collection list_type self.document_type._meta.get key.mongo_query.update doc_fields.update types.get decimal.Decimal _dereference refs.limit.count _clean_settings.update self._read_concern.self._read_preference.self._collection.with_options.find indexes.append self.clone.only mongoengine.connection.get_db mongoengine.signals.post_save.send self._convert_from_datetime key.split.append self.newfile.write c.isupper queryset._document.DoesNotExist
@developer
Could please help me check this issue?
May I pull a request to fix it?
Thank you very much.
Hi, these things are used only during development and aren't installed when MongoEngine gets installed so I don't think something is wrong with a strict pinning here.
Thanks for your interest though