zengyh1900 / 3D-Human-Body-Shape

[ICIMCS'2017] Official Code for 3D Human Body Reshaping with Anthropometric Modeling
https://doi.org/10.1007/978-981-10-8530-7_10
MIT License
340 stars 105 forks source link

Project dependencies may have API risk issues #42

Open PyDeps opened 1 year ago

PyDeps commented 1 year ago

Hi, In 3D-Human-Body-Shape, inappropriate dependency versioning constraints can cause risks.

Below are the dependencies and version constraints that the project is using

cython==0.29.7
numpy==1.16.1
scipy==1.2.1
openpyxl==2.6.2
ecos==2.0.7.post1
vtk==8.1.2
traits==5.1.1
cvxpy==1.0.21
fancyimpute==0.3.2
mayavi==4.7.1
pyopengl==3.1.0
pyqt5==5.10.1
scikit-learn==0.21.3

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 numpy can be changed to >=1.8.0,<=1.23.0rc3. The version constraint of dependency scipy can be changed to >=0.12.0,<=1.7.3. The version constraint of dependency openpyxl can be changed to >=1.5.7,<=1.8.6. The version constraint of dependency scikit-learn can be changed to >=0.9,<=0.21.3.

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 numpy
numpy.linalg.det
numpy.linalg.svd
numpy.linalg.inv
numpy.linalg.norm
The calling methods from the scipy
scipy.sparse.coo_matrix
scipy.sparse.coo_matrix.transpose
The calling methods from the openpyxl
openpyxl.Workbook.save
openpyxl.Workbook
openpyxl.Workbook.get_active_sheet
The calling methods from the scikit-learn
sklearn.feature_selection.RFE
sklearn.linear_model.LinearRegression
sklearn.feature_selection.RFE.fit
The calling methods from the all methods
self.radio2.setFont
PyQt5.QtWidgets.QAction.__init__
traitsui.api.Item
numpy.zeros.repeat
sys.stdout.write
results.np.array.reshape
self.reset_button.setFont
self.setCentralWidget
self.set_slider
data.np.array.reshape.append
int
maya_widget.IndexedQSlider.setRange
self.setWindowTitle
fancyimpute.MICE.complete
self.mainBox.addLayout
M.transpose.dot
numpy.zeros
scipy.sparse.linalg.spsolve
tmplist.append
line.strip
self.valueChanged.connect
self.body.mapping
i.self.rfemat.dot
utils.M_NUM.body_num.results.np.array.reshape.transpose
self.pre_button.setToolTip
self.statusBar
PyQt5.QtWidgets.QLineEdit
self.label.append
convert_cp.append
PyQt5.QtWidgets.QHBoxLayout
self.radio1.setChecked
PyQt5.QtWidgets.QLabel.setFixedHeight
utils.V_BASIS_NUM.v_basis.np.array.reshape
vertex.mean.np.array.reshape
HumanShapeAnalysisDemo.show
event.accept
tmp.index.tmp.index.tmp.replace
line.replace
numpy.load.std
self.pre_dialog.show
numpy.savez
len
self.t_measure.copy
self.editList.text
i.self.editList.text
numpy.std
line.strip.split
self.radio1.toggled.connect
dets.np.array.reshape.append
numpy.sum
traits.api.on_trait_change
PyQt5.QtWidgets.QSpinBox
PyQt5.QtWidgets.QMainWindow.__init__
v3.v2.v1.assemble_face.dot
PyQt5.QtWidgets.QAction
get_d_basis
L_tosave.append
tmp.np.array.reshape
openpyxl.Workbook.save
measure_list.append
maya_widget.MayaviQWidget
self.valueChangeForwarded.emit
t_measure.transpose
build_equation
utils.calc_measure
self.pre_button.clicked.connect
train
spinBox.valueChanged.connect
DATA_DIR.os.path.join.open.read
Reshaper.mapping
i.self.slider.valueChangeForwarded.disconnect
measure.std.np.array.reshape
self.vertices.astype
self.radio2.toggled.connect
PyQt5.QtWidgets.QLabel.setFont
numpy.linalg.det
openpyxl.Workbook.get_active_sheet
normals.append
PyQt5.QtWidgets.QSlider.__init__
mat.sum
self.d_synthesize
measure_list.np.array.reshape
numpy.linalg.svd
reshaper.Reshaper.mapping
isinstance
d2v.d2v.transpose.dot.tocsc
Reshaper
self.pre_dialog.close
multiprocessing.Pool.map
open.close
numpy.zeros.mean
idx.t_measure.reshape
self.menuBar.addMenu
numpy.zeros.transpose
self.pre_dialog.setLayout
numpy.row_stack
PyQt5.QtWidgets.QPushButton.setFont
numpy.mean
self.set_radio
PyQt5.QtWidgets.QRadioButton
self.radio1.isChecked
data.np.array.reshape
open
construct_coeff_mat
self.mapping_mask
tmp.replace.split
PyQt5.QtWidgets.QSpinBox.setRange
self.visualization.edit_traits
PyQt5.QtWidgets.QWidget.show
PyQt5.QtWidgets.QApplication
i.self.local_mat.dot
flag.sum
obj2npy.std
tmp.max
self.button_box.addWidget
self.viewer3D.setSizePolicy
self.local_mat.append
convert_measure.std
mat.tmp.np.row_stack.transpose
v1.v0.np.cross.dot
obj2npy
openpyxl.Workbook
scipy.sparse.coo_matrix
multiprocessing.Pool.join
utils.V_BASIS_NUM.v_basis.np.array.reshape.transpose
numpy.cross
rfe_local
self.myact.emit
self.m2d.dot
numpy.matmul
maya_widget.IndexedQSlider
i.self.editList.clear
numpy.dot.copy
self.viewer3D.predict
round
map
PyQt5.QtWidgets.QWidget.setLayout
i.face.vertexNormalLists.append
float
i.self.editList.setText
self.setToolTip
PyQt5.QtWidgets.QWidget.setWindowTitle
self.body.get_predict
time.time
print
utils.save_obj
sklearn.feature_selection.RFE
utils.PART.index
rfe.support_.np.array.reshape
multiprocessing.Pool
vertex.np.array.reshape
slider.valueChanged.connect
t_mask.repeat.repeat
in_data.copy
i.self.rfemask.np.array.reshape
maya_widget.myAction
line.split
PyQt5.QtWidgets.QLabel.setText
list
self.reset_button.clicked.connect
get_inv_mean
i.self.slider.valueChangeForwarded.connect
build_equation.transpose
results.ele.ele.np.array.reshape
set.index
PyQt5.QtWidgets.QGridLayout
self.update
dialogOK.clicked.connect
calc_measure
mayavi.mlab.clf
convert_measure.mean
self.ui.setParent
maya_widget.IndexedQSlider.setStatusTip
numpy.linalg.norm
numpy.zeros.std
load_d_data
convert_measure
self.d2v.transpose
self.slider.append
show_app
numpy.sqrt
traitsui.api.View
self.minimum
set.replace
numpy.load.mean
maya_widget.IndexedQSlider.setFixedWidth
d2v.transpose.dot
mayavi.mlab.triangular_mesh
self.mainBox.addWidget
numpy.column_stack
weight.np.array.reshape
self.dialogBox.addLayout
obj2npy.append
PyQt5.QtWidgets.QWidget
PyQt5.QtWidgets.QAction.setStatusTip
utils.M_NUM.utils.F_NUM.results.ele.ele.np.array.reshape.transpose
menubar.addMenu.addAction
PyQt5.QtWidgets.QApplication.exec_
PyQt5.QtGui.QFont
utils.D_BASIS_NUM.d_basis.np.array.reshape.transpose
format
self.spin.append
self.editList.setText
self.lu.solve
abs
reshaper.Reshaper
PyQt5.QtWidgets.QPushButton
self.set_menu
multiprocessing.Pool.close
convert_cp
deform.flat.np.array.reshape
mode.myact.connect
self.triggered.connect
self.visualization.update_plot
convert_template
wb.get_active_sheet.cell
set
self.set_button
self.mapping_global
run
PyQt5.QtWidgets.QVBoxLayout.addWidget
self.pre_dialog.setWindowTitle
float.tolist
sys.stdout.flush
self.set_dialog
dets.np.array.reshape
self.reset_button.setStatusTip
PyQt5.QtWidgets.QDialog
mayavi.core.ui.api.SceneEditor
PyQt5.QtWidgets.QVBoxLayout.setContentsMargins
os.path.join
color_list.append
self.maximum
output.tmp.np.column_stack.transpose
self.menuBar
numpy.float64
measure.mean.np.array.reshape
save.triggered.connect
self.d2v.self.d2v.transpose.dot.tocsc
obj2npy.transpose
PyQt5.QtCore.pyqtSignal
traits.api.Instance
numpy.array
numpy.linalg.inv
PyQt5.QtWidgets.QHBoxLayout.addWidget
self.viewer3D.select_mode
scipy.sparse.linalg.splu
utils.D_BASIS_NUM.d_basis.np.array.reshape
PyQt5.QtWidgets.QLabel.setFixedWidth
os.listdir
obj2npy.mean
enumerate
self.d2v.transpose.dot
self.pre_button.setFont
numpy.load
slider.valueChangeForwarded.connect
numpy.save
PyQt5.QtWidgets.QWidget.__init__
PyQt5.QtWidgets.QVBoxLayout
Visualization
i.self.mask.np.array.reshape
PyQt5.QtWidgets.QAction.setShortcut
HumanShapeAnalysisDemo
range
multiprocessing.Pool.starmap
PyQt5.QtWidgets.QLabel
random.sample
self.resize
tmp.min
open.write
sys.exit
self.editList.append
PyQt5.QtWidgets.QVBoxLayout.setSpacing
self.box.addLayout
vertex.std.np.array.reshape
i.self.slider.setValue
PyQt5.QtWidgets.QGridLayout.addWidget
sklearn.feature_selection.RFE.fit
numpy.dot
clearButton.clicked.connect
fancyimpute.MICE
dets.np.array.reshape.ravel
self.radio1.setFont
set.add
self.imputate
exit.triggered.connect
d.np.array.reshape
assemble_face
scipy.sparse.coo_matrix.transpose
self.statusBar.showMessage
sklearn.linear_model.LinearRegression
self.mapping_rfemat

@developer Could please help me check this issue? May I pull a request to fix it? Thank you very much.