Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
LimaGroup
Lima-camera-frelon
Commits
4edce4af
Commit
4edce4af
authored
May 10, 2012
by
Alejandro Homs Puron
Browse files
* Using module_helper to handle link dependency version control
parent
01b81653
Changes
1
Hide whitespace changes
Inline
Side-by-side
python/__init__.py
View file @
4edce4af
...
...
@@ -19,62 +19,24 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
############################################################################
import
os
,
sys
,
imp
,
glob
,
DLFCN
from
Lima
import
module_helper
root_name
=
__path__
[
0
]
mod_name
=
os
.
path
.
basename
(
root_name
)
mod_path
=
__path__
depends_on
=
'Espia'
has_dependent
=
False
def
version_code
(
s
):
return
map
(
int
,
s
.
strip
(
'v'
).
split
(
'.'
))
def
version_cmp
(
x
,
y
):
return
cmp
(
version_code
(
x
),
version_code
(
y
))
env_var_name
=
'LIMA_%s_VERSION'
%
mod_name
.
upper
()
if
env_var_name
in
os
.
environ
:
version
=
os
.
environ
[
env_var_name
]
else
:
version
=
'LAST'
req_version
=
version
if
version
.
upper
()
==
'LAST'
:
version_dirs
=
[
x
for
x
in
os
.
listdir
(
root_name
)
if
x
.
startswith
(
'v'
)]
version_dirs
.
sort
(
version_cmp
)
version
=
version_dirs
[
-
1
]
del
version_dirs
,
x
else
:
if
version
[
0
]
!=
'v'
:
version
=
'v'
+
version
mod_path
=
os
.
path
.
join
(
root_name
,
version
)
if
not
(
os
.
path
.
isdir
(
mod_path
)
or
os
.
path
.
islink
(
mod_path
)):
raise
ImportError
(
'Invalid %s: %s'
%
(
env_var_name
,
req_version
))
if
os
.
environ
[
'LIMA_LINK_STRICT_VERSION'
]
==
'FULL'
:
espia_version_fname
=
os
.
path
.
join
(
mod_path
,
'ESPIA_VERSION'
)
espia_version_file
=
open
(
espia_version_fname
,
'rt'
)
espia_version
=
espia_version_file
.
readline
().
strip
()
os
.
environ
[
'LIMA_ESPIA_VERSION'
]
=
espia_version
del
espia_version_fname
,
espia_version_file
,
espia_version
cleanup_data
=
module_helper
.
load_prepare
(
mod_path
,
depends_on
,
has_dependent
)
from
Lima
import
Espia
sys
.
path
.
insert
(
0
,
mod_path
)
ld_open_flags
=
sys
.
getdlopenflags
()
sys
.
setdlopenflags
(
ld_open_flags
|
DLFCN
.
RTLD_GLOBAL
)
from
limafrelon
import
*
sys
.
setdlopenflags
(
ld_open_flags
)
cleanup_data
=
module_helper
.
load_dep_cleanup
(
cleanup_data
)
from
Lima.Frelon.limafrelon
import
*
globals
().
update
(
Frelon
.
__dict__
)
from
Lima.Frelon.FrelonAcq
import
FrelonAcq
from
FrelonAcq
import
FrelonAcq
module_helper
.
load_cleanup
(
cleanup_data
)
sys
.
path
.
remove
(
mod_path
)
del
mod_path
,
depends_on
,
has_dependent
,
cleanup_data
del
module_helper
del
root_name
,
mod_name
,
mod_path
,
env_var_name
,
ld_open_flags
del
version
,
req_version
,
version_code
,
version_cmp
del
os
,
sys
,
imp
,
glob
,
DLFCN
Write
Preview
Supports
Markdown
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