Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
4a9c6e0d
Commit
4a9c6e0d
authored
Dec 11, 2017
by
wxchan
Committed by
Guolin Ke
Dec 10, 2017
Browse files
[python] add try/except in __del__ (#1095)
* add try/except to __del__ * specify AttributeError
parent
9b07e869
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
7 deletions
+19
-7
python-package/lightgbm/basic.py
python-package/lightgbm/basic.py
+19
-7
No files found.
python-package/lightgbm/basic.py
View file @
4a9c6e0d
...
@@ -346,8 +346,11 @@ class _InnerPredictor(object):
...
@@ -346,8 +346,11 @@ class _InnerPredictor(object):
self
.
pred_parameter
=
param_dict_to_str
(
pred_parameter
)
self
.
pred_parameter
=
param_dict_to_str
(
pred_parameter
)
def
__del__
(
self
):
def
__del__
(
self
):
try
:
if
self
.
__is_manage_handle
:
if
self
.
__is_manage_handle
:
_safe_call
(
_LIB
.
LGBM_BoosterFree
(
self
.
handle
))
_safe_call
(
_LIB
.
LGBM_BoosterFree
(
self
.
handle
))
except
AttributeError
:
pass
def
__getstate__
(
self
):
def
__getstate__
(
self
):
this
=
self
.
__dict__
.
copy
()
this
=
self
.
__dict__
.
copy
()
...
@@ -609,7 +612,10 @@ class Dataset(object):
...
@@ -609,7 +612,10 @@ class Dataset(object):
self
.
params_back_up
=
None
self
.
params_back_up
=
None
def
__del__
(
self
):
def
__del__
(
self
):
try
:
self
.
_free_handle
()
self
.
_free_handle
()
except
AttributeError
:
pass
def
_free_handle
(
self
):
def
_free_handle
(
self
):
if
self
.
handle
is
not
None
:
if
self
.
handle
is
not
None
:
...
@@ -1339,10 +1345,16 @@ class Booster(object):
...
@@ -1339,10 +1345,16 @@ class Booster(object):
raise
TypeError
(
'Need at least one training dataset or model file to create booster instance'
)
raise
TypeError
(
'Need at least one training dataset or model file to create booster instance'
)
def
__del__
(
self
):
def
__del__
(
self
):
try
:
if
self
.
network
:
if
self
.
network
:
self
.
free_network
()
self
.
free_network
()
except
AttributeError
:
pass
try
:
if
self
.
handle
is
not
None
:
if
self
.
handle
is
not
None
:
_safe_call
(
_LIB
.
LGBM_BoosterFree
(
self
.
handle
))
_safe_call
(
_LIB
.
LGBM_BoosterFree
(
self
.
handle
))
except
AttributeError
:
pass
def
__copy__
(
self
):
def
__copy__
(
self
):
return
self
.
__deepcopy__
(
None
)
return
self
.
__deepcopy__
(
None
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment